3

fastaファイルを並列に解析する方法を考えています。fasta-formatの例を知らない人のために:

>SEQUENCE_1  
MTEITAAMVKELRESTGAGMMDCKNALSETNGDFDKAVQLLREKGLGKAAKKADRLAAEG  
LVSVKVSDDFTIAAMRPSYLSYEDLDMTFVENEYKALVAELEKENEERRRLKDPNKPEHK  
IPQFASRKQLSDAILKEAEEKIKEELKAQGKPEKIWDNIIPGKMNSFIADNSQLDSKLTL  
MGQFYVMDDKKTVEQVIAEKEKEFGGKIKIVEFICFEVGEGLEKKTEDFAAEVAAQL  
>SEQUENCE_2  
SATVSEINSETDFVAKNDQFIALTKDTTAHIQSNSLQSVEELHSSTINGVKFEEYLKSQI  
ATIGENLVVRRFATLKAGANGVVNGYIHTNGRVGVVIAAACDSAEVASKSRDLLRQICMH  

したがって、「>」で始まる行は、識別子に続くシーケンスの識別子を含むヘッダー行です。

ファイル全体をメモリにロードすると思いますが、この後、これらのデータを処理する方法を見つけるのに問題があります。

問題は次のとおりです。スレッドはこの方法でシーケンスを切断する可能性があるため、任意の位置から開始することはできません。

行が相互に依存しているときに、誰かがファイルを並行して解析した経験はありますか?どんなアイデアでも大歓迎です。

4

2 に答える 2

2

この場合、行の相互依存は非常に単純なので、十分に簡単なはずです。スレッドを任意の位置から開始し、「>」で始まる行に到達するまで行をスキップします(つまり、開始します)。新しいシーケンス)。

シーケンスが2回処理されないようにするには、処理されたすべてのシーケンスIDのセットを保持します(または、シーケンスIDが一意でない場合は行番号で処理できますが、実際には一意である必要があります)。

于 2011-11-27T20:23:11.790 に答える
1

前処理ステップを実行し、データを1回ウォークスルーして、すべての有効な開始点を決定します。これらのタスクを呼び出しましょう。次に、各ワーカーがタスク(開始点)を繰り返し要求し、それを解析する、ワーカークルーモデルを使用できます。

于 2011-11-24T15:21:24.790 に答える