別のファイルを使用して、grep と次の行に一致する行の一部を抽出し、新しいファイルに保存します。

別のファイルを使用して、grep と次の行に一致する行の一部を抽出し、新しいファイルに保存します。

1行にはDNA配列識別子があり、その直下の次の行にはDNA配列を含むファイルがあります。 DNA配列は長いが整列している。

ファイル1.fasta:

>AB244308.1.1447 233_28379 1..292

------------------------------------- ------------- ------------------------ -------------------------- ----------- GTGCAG -CCGC-CGC-GGTAATAC-GG-AGGAT-GCG-A-GCG-TTATC-CGG-ATTCATT-GG-GT-TTA--AAGGGTGCGCAGG-CGG-GCGT-AT- ---------- - -------AA------GTCA--------- -- - ------------ ----GGG--G--TG--A-AA-TG--CC- AC- GG ------------------------- ------------------------ - ------------------------- ------------------------ - ------------------------- ------------------------ ---------CT- C-AA------------ ------------- -------------- ---------- ------------- --- ---------------------------------- ----- -------- --- ---CCGTGGA--AC----TG--CC---T-- T---- ---------- T--GA-TA---C- ----------- ---- ---------- ---------- --T--GT--AT--GTC--- -- ---------- ---------- ----- ---------- --------- ---- -- ---------- --TTGAGT--T-- ---T-AG------TT-GA---- ------AGTG---GG- C - - - - - - - - - - - - - - - - - - - - - - - - - - - - ---------------------- ------- -------- - --------------- ------GG--A--ATG------ --- -- -------------- ------------- -- --------- ----- -- ------TAGC-AT--GT-AG-CG- GT--G--- ------- ----A--AA----------- ---- ------- ----------------- ------------ ------- --- ----TG-C-AT-AG--AG-A-TG---------- ------------ ----- --CT-- ----AC------AGA-AC- A-CC--------- -------- ---- ----------- --- ---GA--T--A--GC-GAA-G--GC----A----- -G--CTCA- --CTA-------- -A- -GT-TA------------------- -------- ------ ---------- ----------- ------ ------- -------------- ------ -----AG ---------ACT--GA--CG-----C--- -------------- ------ ----- -----TC--A-TG- -CA-CG-A--AA-GC---- G-TG--GG -G-AT-CA-AA-CA--GG-AT-- ------TA-G-ATA- -------CC-CCC-GTA--GT -CC---- ---------------- - ----------------------------------------------------------- -------- ------ ------- -------------- ------ ---- ----- ------------ ------ -------------- ------------------ -- ------ ----------- ----------------------- ------ --

このファイルには、この形式に従う約112,000のシーケンスがあります。約20個のシーケンス識別子があり、これをfastaファイルから抽出して別のファイルに保存したいと思います。

シーケンス識別子は以下のようにtxtファイルにあります。

ファイル2.txt:

AB244308.1.1447
New.ReferenceOTU151 
New.CleanUp.ReferenceOTU19 
New.ReferenceOTU59
New.CleanUp.ReferenceOTU6

シーケンス識別子を持つ行を抽出するだけでなく、DNAシーケンスを含む次の行を抽出してすべての新しいテキストファイルに印刷したいと思います。

この答えで知りました(別のファイルリストの文字列を含むテキストファイルから行を抽出するには?)grepとsedを使用する必要があります。別の答えも見つかりました(https://stackoverflow.com/questions/7103531/how-to-get-the-part-of-file-after-the-line-that-matches-grep-expression-first)はgrepに一致する行を取得することに関連しています。

残念ながら、これらの答えを組み合わせて何をしたいのかわかりません。

ベストアンサー1

彼らが言ったように、猫の皮をむく方法はいくつかあります。

grep -F -f File2.txt -A 1 File1.fasta > File3.log

< File2.txt sed -e 's|[.]|\\&|g; s|.*|g/^>&/.,.+1W File3.log|' | ed -s - File1.fasta

edここでは、動的に生成されたバッチスクリプトにシーケンス識別子を適用します。次にedそれを渡してfastaファイルを処理し、結果を保存するために使用します。File3.log

おすすめ記事