問題タブ [snakemake]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
385 参照

python-3.x - snakemake LSF の問題

コマンドラインで問題なく動作するパイプラインがあります

クラスターで使用できるようにしたいと思います。パイプラインはサンプル (構成ファイルで指定) を取得し、いくつかの処理ステップを実行します。これが RNA-Seq パイプラインです。これらの2つの異なる方法を使用してクラスターに送信しようとしました

初挑戦

2 回目の試行

次の出力が得られました

提供されるクラスターノード: 48
ジョブ数: count
jobs
1 all
2 collat​​e_barcodes 2
correct_counts
2 count_reads
2 dedup_counts
2 extract_gz_samples
2 mark_duplicaticates
2 move_bc
2 run_cutadapt
2 star_mapping
19 R2.fastq.gz 出力: cluster_fastq/Zelzer_M_Spindle_M_1.R1.fastq、cluster_fastq/Zelzer_M_Spindle_M_1.R2.fastq ワイルドカード: sample=cluster_fastq/Zelzer_M_Spindle_M_1




メモリ予約は (MB): 2048
メモリ制限は (MB) : 2048
ルールcluster_fastq/WT_M_DT_T_393.R2.fastq ワイルドカード: sample=cluster_fastq/WT_M_DT_T_393 メモリ予約は (MB): 2048 メモリ制限は (MB): 2048 不足しているファイルを最大 5 秒間待機しています。 スレッド スレッド 1 の例外: トレースバック (最新の呼び出しが最後): ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/site-packages/snakemake/dag.py"、257 行目、check_and_touch_output 内 wait_for_files(expanded_output, latency_wait=wait)










ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/site-packages/snakemake/io.py"、341 行目、wait_for_files
latency_wait 内、"\n".join(get_missing())))
OSError: 5 秒後にファイルが見つかりません:
cluster_fastq/Zelzer_M_Spindle_M_1.R1.fastq
cluster_fastq/Zelzer_M_Spindle_M_1.R2.fastq

上記の例外の処理中に、別の例外が発生しました:

トレースバック (最新の呼び出しが最後):
ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/threading.py"、914 行目、_bootstrap_inner
self.run()
ファイル "/apps/RH6U4/python /3.5.2/lib/python3.5/threading.py"、862 行目、実行中の self._target(*self._args, **self._kwargs)
ファイル "/apps/RH6U4/python/3.5.2/lib /python3.5/site-packages/snakemake/executors.py"、517 行目、_wait_for_jobs self.finish_job(active_job.job)
ファイル"/apps/RH6U4/python/3.5.2/lib/python3.5/site- packages/snakemake/executors.py", line 426, in finish_job
super().finish_job(job, upload_remote=False) ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/site-packages/snakemake /executors.py"、153 行目、finish_job 内
super().finish_job(job, upload_remote=upload_remote) ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/site-packages/snakemake/executors.py"、111 行目、finish_job
self.dag 内.check_and_touch_output(job, wait=self.latency_wait)
ファイル "/apps/RH6U4/python/3.5.2/lib/python3.5/site-packages/snakemake/dag.py"、259 行目、check_and_touch_output で
MissingOutputException(str (e), rule=job.rule)
snakemake.exceptions.MissingOutputException: 5 秒後にファイルが見つからない:
cluster_fastq/Zelzer_M_Spindle_M_1.R1.fastq
cluster_fastq/Zelzer_M_Spindle_M_1.R2.fastq

^C^H^Cユーザーの要求に応じてプロセスを終了します。
現在実行中のジョブが終了すると終了します。
失敗したジョブ extract_gz_samples の出力ファイルが破損している可能性があるため 削除: cluster_fastq/
Zelzer_M_Spindle_M_1.R1.fastq 、cluster_fastq/Zelzer_M_Spindle_M_1.R2.fastq /WT_M_DT_T_393.R2.fastq

この時点で、プログラムがスタックしているように見えます (「^C^H^C休憩」を参照)。 を使用して (別のセッションで) ジョブをチェックするとbjobs、キューにジョブがありません。

なぜこれが起こっているのか、それをデバッグする方法はありますか?

0 投票する
0 に答える
375 参照

snakemake - 逆多重化のためのSnakemakeのベストプラクティス

ベスト プラクティスについて質問があります。具体的には、イルミナシーケンシングからの読み取りを逆多重化するための最適なsnakemakeパターンについて。私たちのワークフローでは、シーケンスの複数のレーンを逆多重化し、これらを 1 つの分析に組み合わせる必要があります。もちろん、レーンとサンプルの名前はわかっていますが、サンプル名はレーン間で同じではありません。レーンが 1 つだけの場合、次のようなことができます。

ただし、複数のレーンがあるため、関数を出力ルールとして使用したくて行き詰まっています。以下はどのように可能なものに変換されますか:

これが以前に回答されている場合、または私が見逃している明らかなアプローチがある場合は、ご容赦ください。

乾杯、 ケビン

0 投票する
1 に答える
1985 参照

python - ワイルドカードの特定の組み合わせが望ましくない場合に、snakemake で expand を使用する方法は?

次のファイルがあり、snakemake を使用して自動的に処理を適用したいとします。

次のスネークexpandファイルは、潜在的な最終結果ファイルをすべて決定するために使用します。

上記のスネークファイルを実行すると、次のエラーが発生します。

このエラーの理由は、内部で をexpand使用itertools.productしてワイルドカードの組み合わせを生成しているためです。そのうちのいくつかはたまたま不足しているファイルに対応しています。

望ましくないワイルドカードの組み合わせを除外するには?

0 投票する
1 に答える
169 参照

snakemake - ワークフローでデータが不十分なサンプルをエレガントに処理しますか?

私たちのラボから送られてくる浅いショットガン メタゲノミクス サンプルに対して簡単な QC と分析を行うための Snakemake パイプラインをセットアップしました。

少量のデータを含むサンプルが入力として配信されると、パイプラインのツールの一部が失敗またはエラーになりますが、これは、中間のフィルタリング手順 (アダプターのトリミングやホストゲノムの削除など) として、生の入力データからは認識できない場合があります。さまざまな数の読み取りを削除できます。

理想的には、入力ファイルの読み取り数を評価し、ワークフロー グラフのその部分を続行するかどうかを選択できる、特定の入力ルールのある種のチェックでこれらのケースを処理できるようにしたいと考えています。誰かがこのようなものをうまく実装しましたか?

どうもありがとう、ジョン

0 投票する
0 に答える
618 参照

snakemake - snakemake ワイルドカードでの正規表現の使用

私はスネークメイクのワイルドカードで正規表現を使用していますが、理解できないエラーに遭遇しました。

この短縮された例では、次のように機能します。

この例では、次のことは行いません。

表示されるエラー メッセージのスクリーン キャプチャを添付します。ご協力いただきありがとうございます。

エラー メッセージのスクリーン キャプチャを次に示します。

0 投票する
1 に答える
258 参照

snakemake - snakemake ルールのパラメーター化された数の出力ファイルを生成する

私のワークフローは、2 つの異なるクラスターで実行する必要があります。最初のクラスターは、リソースの可用性に基づいてジョブをノードにスケジュールします。2 番目のクラスターは、特定のジョブ用にノード全体を予約し、ジョブ スクリプト内でそれらの複数のコアを効率的に使用するようユーザーに要求します。2 番目のクラスターでは、少数のジョブを送信し、プロセスをバックグラウンドでスタックすることが一般的です。

おもちゃの例として、作成したい 4 つのファイルがあるとします。

これは、サンプルごとに 1 つのジョブで並行して実行できます。

それぞれ 1 つのファイルを作成する 4 つのジョブに加えて、それぞれ 2 つのファイルを作成する 2 つのジョブを使用できるようにしたいと考えています。

私はいくつかのアイデアを試しましたが、あまりうまくいきませんでした。次のワークフローは、バッチを作成し、各バッチ内のバックグラウンド プロセスとしてジョブを起動する点を除いて、上記と同じです。

ただし、これでも 4 つのジョブが作成されます。

また、関連するトピックに関するメーリング リストで、Karel Brinda の応答に出くわしました。彼は、Python で動的ルールを作成する自分のプロジェクトを指摘しました。次に、これらの線に沿って何かを試します。

理想的なソリューションは、一連の出力ファイルを生成する単一のルールですが、それらのファイルをバッチで生成できます。バッチの数は、構成パラメーターによって設定されます。

ここで誰かが同様の状況に遭遇しましたか? どんな考えやアイデアでも大歓迎です!