Primer3 Boulder IO出力の並べ替え

Primer3 Boulder IO出力の並べ替え

primer3_core出力を並べ替えようとしています。

たとえば、

SEQUENCE_ID=ID_1
PRIMER_LEFT_0_SEQUENCE=ACGTGTAGCGGTTCAGACG
PRIMER_RIGHT_0_SEQUENCE=ACCATGCATGATCCATCCAGG
PRIMER_LEFT_1_SEQUENCE=CACAGCCACAGCAGCACAC
PRIMER_RIGHT_1_SEQUENCE=ATGCAGGTGATCAAGTTACGCC
=
SEQUENCE_ID=ID_2
PRIMER_LEFT_0_SEQUENCE=CACAGCCACAGCAGCACAC
PRIMER_RIGHT_0_SEQUENCE=GCAGGTGATCAAGTTACGCCATT
=

したがって、各IDは0〜20の範囲の異なる数のプライマーを生成できます。

出力は次のとおりです。

ID_1 ACGTGTAGCGGTTCAGACG
ID_1 ACCATGCATGATCCATCCAGG
ID_1 CACAGCCACAGCAGCACAC
ID_1 ATGCAGGTGATCAAGTTACGCC
ID_2 CACAGCCACAGCAGCACAC
ID_2 GCAGGTGATCAAGTTACGCCATT

ベストアンサー1

awk -F= '$0 ~ "^SEQUENCE" {SEQ=$2} $0 !~ "^SEQUENCE" { print SEQ" "$2 }' filename

awkを使用し、=をフィールド区切り文字として使用します。次に、行はSEQUENCEで始まり、SEQ変数を2番目の区切られたフラグメントと同じに設定します。他のすべての場合は、2番目に区切られたデータでSEQを印刷します。

おすすめ記事