問題タブ [fastq]
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.
parallel-processing - 複数回実行すると並列になりますか?
サイズが 5Gb から 35Gb の大きな fastq ファイルを処理するための短い Python スクリプトを作成しました。多くのコアを持つ Linux サーバーでスクリプトを実行しています。スクリプトはまったく並行して書かれておらず、平均して 1 つのファイルを完了するのに約 10 分かかります。
次のような複数のファイルで同じスクリプトを実行すると
& 記号を使用してプロセスを押し戻します。
これらのスクリプトは並行して実行され、時間を節約できますか?
私は top コマンドを使用してプロセッサの使用状況を確認しており、新しい実行を追加するとそれぞれの使用状況が低下するため、そうではないようです。
したがって、それらが並行して実行されていない場合、OS にそれらを並行して実行させる方法はありますか?
回答ありがとうございます
mysql - 文字列が挿入された特別な出力ファイルmysql?
そのようなmysqlテーブルに3つの列があります
次の形式ですべてを出力したい:
(私のような小さな生化学者のために fastq ファイルと呼ばれています..)
だから私はそのような出力を照会することを考えましたが、次の行に移動せず、 /n を文字として出力するだけです..:
bash - bash で文字列内のコマンドを実行する
bash スクリプトで実行したいコマンドを含む文字列があります。どうやってやるの?とても基本的な質問で申し訳ありませんが、私はbashが初めてです。これは私のコードです:
そして、end_cm1 変数にある命令を実行したいと思います。
bioinformatics - Picard SamToFastqは、読み取りを1つだけ抽出し、エラーをスローします
bamファイルからFastQファイルを抽出しようとしています。Picardは、このツールのドキュメントでbamまたはsamファイルのいずれかを受け入れると述べているように、SamToFastqを使用してこれを行うことができます。
しかし、実行すると、読み取りが1つだけ抽出され、終了します。これがエラーメッセージです。どんな助けでも大歓迎です。
biopython - Biopython-一度に固定数のseq_recordsを読み取る
fastqファイルからPHREDスコアを取得し、それらをすべて1つのリストに入れてから、そのリストを別の関数に渡すコードを作成しました。それはそのように見えます:
問題は、すべてのseq_recordsが検索され、対応するPHREDスコアが取得されるまで、このループが続くことです。RAMをより保守的にするために、一度に少数のseq_records(たとえば、100)を読み取り、それぞれの品質スコアを進行中のuberlistにポップするコードが必要です。次に、次の100個のseq_recordsから情報を取得し、ループを再度実行します。これを行う方法を理解するのに苦労しています。何か案は?
python - PythonでPopenパイプラインのストリームをのぞく
背景:
Linux上のPython2.6.6。DNA配列分析パイプラインの最初の部分。
マウントされたリモートストレージ(LAN)からgzipで圧縮された可能性のあるファイルを読み取りたいのですが、gzipで圧縮されている場合は; ストリームにgunzipで圧縮し(つまり、を使用gunzip FILENAME -c
)、ストリーム(ファイル)の最初の文字が「@」の場合は、そのストリーム全体を、標準入力で入力を受け取るフィルタリングプログラムにルーティングします。それ以外の場合は、ローカルのファイルに直接パイプします。ディスク。リモートストレージからのファイルの読み取り/シークの数を最小限に抑えたい(ファイルを1回通過するだけで不可能ではないでしょうか?)。
サンプル入力ファイルの内容、FASTQ形式の1つのレコードに対応する最初の4行:
フィルタリングプログラムにパイプされるべきではないファイルには、次のようなレコードが含まれています(FASTA形式の1つのレコードに対応する最初の2行)。
何人かは、私がやりたいことを視覚化するための半擬似コードの努力をしました(これは私が書いた方法では不可能であることを私は知っています)。私はそれがある程度意味があることを願っています:
ここで書いたようにコードが実行されないという事実や、エラー処理などがないという事実は無視してください。これらはすべて、他のコードにすでに含まれています。ストリームを覗いたり、それを回避する方法を見つけたりするのに助けが必要です。できれば素晴らしいgunzip.stdout.peek(1)
のですが、それは不可能だと思います。
私がこれまでに試したこと:
subprocess.Popenがこれを達成するのに役立つかもしれないと考え、ストリームを書き込むためにある種のio.BufferedRandom()オブジェクトを使用しようとするなど、さまざまなアイデアを試しましたが、それがどのように機能するのか理解できません。ストリームはシークできないことは知っていますが、回避策としては、gunzipストリームの最初の文字を読み取ってから、ファイルの内容に応じて最初に「@」または「>」を入力してから残りを詰め込む新しいストリームを作成することが考えられます。 gunzip.stdout-streamを新しいストリームに追加します。この新しいストリームは、フィルターのPopenstdinに送られます。
ファイルサイズは、使用可能なメモリの数倍になる場合があることに注意してください。リモートストレージからのソースファイルの複数の読み取りを実行したくないし、不要なファイルアクセスを実行したくない。
どんなアイデアでも大歓迎です!十分に明確にしなかったかどうかを明確にするために、質問をしてください。
python - ファイルをメモリにマップする
私が何を望んでいるのかを理解することが重要であるため、最初に私の問題を説明します:-)。
私は、いくつかの外部ツールを使用していくつかのゲノミクス データ分析を実行する Python で記述されたパイプラインに取り組んでいます。このツールの 1 つは非常に巨大な fastq ファイルで動作しますが、最終的にはプレーン テキスト ファイルではなくなります。
通常、この fastq ファイルは gzip 圧縮されており、プレーン テキストであるため、圧縮率が非常に高くなります。ほとんどのデータ分析ツールは gzip ファイルで動作しますが、動作しないものもいくつかあります。そのため、ファイルを解凍し、それらを操作して、最後に再圧縮しています。
ご想像のとおり、このプロセスは次のとおりです。
- もっとゆっくり
- ディスク消費量が多い
- 帯域幅の消費 (NFS ファイルシステムで作業している場合)
そこで私は、ツールのソース コードに手を加えることなく、これらのツールを「だまして」gzip 圧縮されたファイルを直接操作する方法を見つけようとしています。
FIFO ファイルを使用することを考え、それを試してみましたが、ツールがファイルを複数回読み取ったり、ツールがファイルをシークしたりすると機能しません。
だから基本的に私は質問する必要があります:
次のようなことができるように、ファイルをメモリにマップする方法はありますか?
./tool mapped_file
(ここで、mapped_file は実際にはファイルではなく、メモリ マップ ファイルへの参照です。どうすれば目標を達成できるかについて、他に何か提案はありますか?
みなさん、本当にありがとうございました!
bioinformatics - samtoolsmpileupの結果「^F」の意味は何ですか
これはsamtoolsmpileupの結果の一部です:
「^F」の意味がわかりません。mpileupの司令官の助けを借りて調べました。記号「^」は読み取りの開始を示します。'^'から33を引いた文字のASCIIは、マッピング品質を示します。記号「$」は、読み取りセグメントの終わりを示します。「F」については何も言われていませんが、この結果の「F」の意味を誰かが知っていますか。
python - 特定の行に移動し、Python で次のいくつかを読む
この巨大な (61GB) FASTQファイルがあり、ランダムなサブセットを作成したいのですが、メモリにロードできません。FASTQ の問題は、4 行ごとに 1 つに属していることです。それ以外の場合は、ランダムな整数のリストを作成し、これらの整数の行のみをサブセット ファイルに書き込みます。
これまでのところ、私はこれを持っています:
次のランダム整数に進む前に、ファイル内の次の 3 行に到達する方法がわかりません。誰かが私を助けることができますか?
bash - 名前が別の変数から取得された変数からコンテンツを取得する
私はいくつかのシェルスクリプトをやっています。
この構造を使用して、新しい変数を作成します。
新しく作成した変数を次のように直接使用できるため、これは非常にうまく機能します。
次に、extension という変数に値を割り当てます。
割り当てられる値は、変数 ${ARG}_ext にある値でなければなりません。どうすればそれができますか?
私が試してみました
しかし、これにより変数の名前がわかり、その値が必要です。ありがとう。