ここに最初に投稿すると、それは awk の質問です。
次のようなファイルがあります。
Motif name class from to strand sequence score
>ENSBTAG00000000436
MA0079.2 SP1 Zinc-coordinating 29 38 - agggggtggg 6.33
... (50 similar lines)
>ENSBTAG00000000380
MA0113.1 NR3C1 Zinc-coordinating 92 109 - ccagaaagtgcttctccc 7.03
... (57 similar lines)
等々。>ENSBTA 行は一連のレコードの「ラベル」であることに注意してください。だから私が望むのは、 >ENSBTA 行が MA で始まる行のフィールドとして追加されることです...つまり
MA0079.2 SP1 Zinc-coordinating 29 38 - agggggtggg 6.33 >ENSBTAG00000000436
これまでのところ、
awk '{if (NR>1&&NF==1) genename=$1; if (NR>1&&NF>1) print $0, genename}'
これは非常に近いですが、ENST 識別子を正しい行に保持していません。したがって、上記の例を参照すると、ファイルの 2 番目の部分の 57 行すべてが正しい識別子 (ENSBTAG00000000380) を取得するわけではありません。
誰かがこれについて最善の方法を提案してもらえますか?
ありがとう
イアン