特定の末尾を持つ行を抽出し、それを使用して別のファイルから抽出します。

特定の末尾を持つ行を抽出し、それを使用して別のファイルから抽出します。

コンテンツを抽出する必要がある2つのファイルがあります。最初のファイルにはバーコード行が含まれており、OTU番号で終わります。特定のOTU番号を持つ行を抽出する必要があります。

行を抽出するファイルがある場合は、次のファイルから最初のファイルのバーコードと一致する行を抽出する必要があります。

たとえば、このファイルからOTU_1を含むすべての行を抽出したいとします。ここに画像の説明を入力してください。

OTU 1を含む各行には固有のバーコードがあります。この例では、5が表示されます。

907.2::M02542:207:000000000-AWDAH:1:1115:18838:201661:N:0:GTGAAA
905.2::M02542:207:000000000-AWDAH:1:1101:24324:103291:N:0:GTGAAA
1205.2::M02542:207:000000000-AWDAH:1:2115:22195:238121:N:0:GTGAAA
906.2::M02542:207:000000000-AWDAH:1:1115:24086:126561:N:0:GTGAAA
910.2::M02542:207:000000000-AWDAH:1:1112:26236:215801:N:0:GTGAAA

次のファイルからシーケンスを抽出するには、次のバーコードを使用する必要があります。

ここに画像の説明を入力してください。

ご覧のように、バーコードは>の後に始まり、>の間のすべての情報(たとえば、私のシーケンス)が必要です。

スプレッドシートタイプのソフトウェアを使用してOTU#でソートするための確実な方法を試しましたが、ファイルが大きすぎます(〜数十億行の長さ)。

ベストアンサー1

そして牛に似た一種の栄養 grep、次のように動作する必要があります。

grep -o '\S\+\s\+OTU_1$' Fasta.readmap.uc | \
grep -o '^\S\+' | \
grep -f - -A 1 092016MABits-pr.fasta | \
grep -v '^>'

一致するテキストのみが-o出力されます。パイプから入力されたパターンを検索するように指示grepします-f -grep標準入力。ゲームが終わったら、このセリフを見せ-A 1てください。grepFinalgrepは「なしの行のみ一致します。>」。

おすすめ記事