0

今日、私は再び問題に遭遇しました。

次のようなファイルがあります。

ファイル A

>chr1
ACGACTGACTGTCGATCGATCGATGCTCGATGCTCGACGATCGTGCTCGATC
>chr2
GTGACGCACACGTGCTAGCGCTGATCGATCGTAGCTCAGTCAG
>chr3
CAGTCGTCGATCGTCGATCGTCG

など (基本的には FASTA ファイル)。

他のファイルには、私の読み取りに関する情報がタブで区切られています。

ファイル B

chr2 0 * 2S3M5I2M1D3M * CACTTTTTGTCTA NM:i:6

どちらのファイルも本当に巨大です

必要なすべてのことを書きたいのですが、問題がある部分だけを書きます。

ファイル B からファイルされた chr2 がファイル A の行 >chr2 と一致する場合、ファイル A のシーケンスで CACTTTTTGTCTA (ファイル B) を探します (>chr2 領域のシーケンスのみ。次の >chr は別の染色体なので、そこを検索したくありません) )。

これを簡単にするために、ファイル A の CACACGTGCTAG シーケンスを探してみましょう。

ファイルAに辞書を使用しようとしていましたが、まったく実行できません。

助言がありますか?

4

2 に答える 2

0

辞書引きは早いので、時間のかかる部分はシーケンス内の検索に違いないようです。string.contains() は C で実装されているため、かなり効率的です。それが十分に高速でない場合は、ここで説明されているように、おそらく効率を高めるために、より特化したアルゴリズムを使用する必要があります:非常に大きな文字列に部分文字列が含まれているかどうかを確認する Python の効率的な方法

于 2013-07-31T15:46:06.327 に答える