問題タブ [bam]
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.
python - Samtools を使用して「配置フィールド/列」全体を NumPy 配列に保存する方法はありますか?
SAM 形式では、各アライメント ラインはセグメントの線形アライメントを表し、各ラインには 11 個の必須フィールド (QNAME、FLAG、RNAME、POS、MAPQ など) があります。
特定の BAM ファイル内のすべての「QNAMES」の NumPy 配列が必要だとしましょう。または、複数の列を取得して Pandas Dataframe にインポートすることもできます。
この機能は pysam で可能ですか?
自然に特定の BAM ファイルを で開き、pysam.AlignmentFile()
個々のセグメントにアクセスするpysam.AlignmentSegment()
ことができます。
ただし、すべての QNAMES を NumPy 配列に保存できますか?
python - CIGAR を使用してシーケンスの長さを推測する
コンテキストを少し説明すると、sam ファイルを bam に変換しようとしています。
次のエラーで終了します
問題のある行は次のようになります。
私のシーケンスの長さは 98 文字ですが、CIGAR で 101 と報告された sam ファイルを作成する際のバグの可能性があります。いくつかの読み取りを失う余裕があり、現時点では sam ファイルを生成したソース コードにアクセスできないため、バグを見つけてアライメントを再実行する機会はありません。言い換えれば、先に進むには実用的な解決策が必要です (今のところ)。したがって、ヌクレオチドの文字列の長さを数え、それを CIGAR に登録されているものと比較し、「正常な」行を新しいファイルに保存する Python スクリプトを考案しました。
ご覧のとおり、CIGAR を長さを示す整数に変換するために、モジュールCIGARを使用しています。正直なところ、私はその行動に少し警戒しています。このモジュールは、非常に明白なケースで長さを誤って計算しているようです。CIGAR をシーケンスの長さに変換するための別のモジュールまたはより明確な戦略はありますか?
補足:興味深いことに、控えめに言っても、この問題は広く報告されていますが、インターネットで実用的な解決策が見つかりません。以下のリンクを参照してください。