makeに似たシステムを構築し、頻繁に例えば複雑なワークフローを作成するために使用されているバイオインフォマティクスにおける  snakemakeは一緒に、高速で快適な実行環境で、Pythonのスタイルで清潔でモダンドメイン固有の仕様言語(DSL)を提供することで、ワークフローを作成するの複雑さを軽減することを目指しています。
<強い>インストールの
- Ubuntuの12.04では、私たちのランチパッド·リポジトリで利用可能なDebianパッケージのpython3-snakemakeをインストールすることができます。
- 他のシステムでは、Pythonの> = 3.2の作業インストールが必要です。お使いのシステムに応じて、その後、コマンドラインでeasy_installをsnakemakeまたはeasy_install3 snakemakeのいずれかを発行してsnakemakeをインストールすることができます。管理者priviledgesを持っていない場合は、easy_installをの--user引数を見てみましょう。
- 最後に、snakemake手動PyPIのからのソースコードアーカイブをダウンロードしてインストールすることができます。
の使用法の
Snakemakeは、いくつかの後続のステップでファイルを作成するワークフローを記述するための簡単なDSLを提供しています。
サンプル= ["01"、 "02"]
#必要に応じて作業が行われるディレクトリを定義します。
WORKDIR:「パス/に/ WORKDIR "
#同じような、作るビルドターゲットとして機能するダミーのルールを定義します。
すべてのルール:
&NBSP;入力: "diffexpr.tsv」、...
ルールまとめたものです。
&NBSP;入力: "{サンプル} .mapped.bam」.format(サンプル= sの)sのサンプル中の
&NBSP;出力: "diffexpr.tsv"
&NBSP;実行します。
&NBSP;#...入力ファイルからの出力を生成するためにいくつかのPythonコードを提供
&NBSP;#e.g。インデックスによるアクセスの入力ファイル
&NBSP;入力[1]
&NBSP;#アクセスワイルドカード値
&NBSP; wildcards.sample
&NBSP;#簡単に直接アクセスを持ちながら、自動的にデフォルトのシェルを使用して、シェルコマンドを実行する
&NBSP;形式のミニ言語を経由して、すべてのローカルおよびグローバル変数へ#
&NBSP;スレッド= 6
&NBSP;シェル(「somecommandの--threads {スレッド} {入力[0]} {出力[0]} ")
ルールmap_reads:
&NBSP;#入力ファイルと出力ファイルの名前を割り当てる
&NBSP;入力は:= "{サンプル} .fastq」、hg19 =" hg19.fasta」を読み出す
&NBSP;#マーク出力ファイルが書き込み禁止に作成後にすべき
&NBSP;出力:マップされた=保護された( "{サンプル} .mapped.sai」)
&NBSPは;#は、必要に応じて代わりにルールの実行に関する一般的なルールの説明の表示されるメッセージを定義します。
&NBSP;メッセージ:「マッピングへの読み込み{input.hg19} "
&NBSP;スレッド:8
&NBSP;シェル:
&NBSP; Pythonの構文が必要ない場合は、#を直接(マルチまたは単一行の文字列で)シェルコマンドを提供する。
&NBSP;#は、再び、グローバルとローカル変数は、フォーマットのミニ言語を介してアクセスすることができます。
&NBSP;#さらに、ルールが使用するスレッドの数を指定することができます。 snakemakeスケジューラは、十分なコアが-jコマンドラインオプションを経由して利用可能になる場合は、ルールは、スレッドの指定された数を使用して実行されることを保証します。
&NBSP; "" "
&NBSP; BWAのAlN -t {スレッド} {input.hg19} {input.reads}> {output.mapped}
&NBSP;いくつか - その他--command
&NBSP; "" "
そのような構文で「Snakefile」を考えると、ワークフローはissueingによって(例えば、6並列処理まで使用して)実行することができます:
&NBSP; snakemake -J6 -s Snakefile
詳細についてはチュートリアルを参照してください。
の特長の:ます。
- は、出力を作成する方法のルールを書き込むことによって、テキストの方法でワークフローを定義シンプルなPythonベースの構文で入力ファイルからファイル。 (主にビルドシステムである)を作るGNUとは対照的に、snakemakeは、ルールが複数の出力ファイルを作成することができます。
- 両方のシェルベースのルールだけでなく、ルール内部の完全なPythonの構文がサポートされています。シェルコマンドは、すべてのローカルおよびグローバルPython変数に直接アクセスすることができません。
- はGNU makeに似可能、snakemakeが並列ルール実行をスケジュールすることができます。さらに、インタールール並列イントラルール並列と組み合わせる(例えばスレッド)とsnakemake使用済みコアの数が所定値を超えないことを保証することができます。
- ファイルの一時的なとしてマークすることができます(つまり、彼らが書く作成後に保護されます)(つまり、彼らはもはや必要ではない、一度削除することができます)、または保護されます。
- 入力および出力ファイルは複数の名前付きのワイルドカードを含めることができます。
- 入力および出力ファイルは名前を付けることができます。
- の機能のようにマップが-減らすPythonのリスト内包構文を読みやすいを使用することによって達成されるます。
- 実験的な機能としては、snakemake(たとえばqsubのSun Grid Engineのために)提出するコマンドを指定することで、クラスタ上で実行することができます。
<李> Snakemakeが自動的にルールが所望の出力を生成するために実行する必要がある計算します。
ルールの中にそれらに対処することは便利になるように、
の要件の
- のPythonます。
コメントが見つかりません