(PF.table)などのファイルが複数あります。
Pyrococcus_furiosus_COM1_XCP003685_1 5 15
Pyrococcus_furiosus_COM1_XCP003685_2 20 24
Pyrococcus_furiosus_COM1_XCP003685_3 40 58
および関連シーケンスファイル(PF.seq):
ctgaggcgacatacgtttgagatacctggcaggtgatatgcaatgaggaaaaaacttgttggaatattgacaatattggttgctttgggcatgttagtaagccc....
私は最初のファイルの値で示された文字位置から始めて、長さ5の部分文字列を分離するファイルを出力するコマンドを書こうとしました。完璧な出力は次のとおりです。
>Pyrococcus_furiosus_COM1_XCP003685_1_up
cgaca
>Pyrococcus_furiosus_COM1_XCP003685_1_down
gtttg
>Pyrococcus_furiosus_COM1_XCP003685_2_up
agata
...
表の数字はシーケンスの特定の機能位置に対応し、その機能の上流と下流の5文字を抽出したいと思います。 awkを介してこれら2つのファイルを渡す方法を見つけるのは本当に難しいです!ありがとう
ベストアンサー1
awk '
NR==FNR{ seq=$0; next }
{
print ">" $1 "_up"
print substr(seq, $2, 5)
print ">" $1 "_down"
print substr(seq, $3, 5)
}
' PF.seq PF.table
出力:
>Pyrococcus_furiosus_COM1_XCP003685_1_up
ggcga
>Pyrococcus_furiosus_COM1_XCP003685_1_down
gtttg
>Pyrococcus_furiosus_COM1_XCP003685_2_up
agata
>Pyrococcus_furiosus_COM1_XCP003685_2_down
acctg
>Pyrococcus_furiosus_COM1_XCP003685_3_up
gcaat
>Pyrococcus_furiosus_COM1_XCP003685_3_down
gttgg