fastaヘッダーの最初のコロンと2番目のコロンの間の文字を保持しようとしています。私のコーディング技術は非常に限られているので、sedとawkを使用しようとすると失敗しました。
存在する:
>TRINITY_DN10034_c0_g1:TRINITY_DN10034_c0_g1_i1:g.1561:m.1561
CCAGCGCCACGGAGGGCGAAGGCGAAGGCGGTGGTTTTGAACGATGAGGTGCCGCCGGTG
>TRINITY_DN10322_c0_g1:TRINITY_DN10322_c0_g1_i2:g.1424:m.1424
GATCCGCCTTCTATAACTGGAAAAGAAGAGGATGAGGTGCCGCCGATGAGTCTACCTTCT
期待される:
>TRINITY_DN10034_c0_g1_i1
CCAGCGCCACGGAGGGCGAAGGCGAAGGCGGTGGTTTTGAACGATGAGGTGCCGCCGGTG
>TRINITY_DN10322_c0_g1_i2
GATCCGCCTTCTATAACTGGAAAAGAAGAGGATGAGGTGCCGCCGATGAGTCTACCTTCT
助けが必要ですか?
ベストアンサー1
そしてawk
:
awk -F: '{ if (NF==1) { print } else { print ">"$2 } }' file
または少し圧縮してみてください。
awk -F: '{ print (NF==1) ? $1 : ">"$2 }' file
:
行にフィールドが 1 つしかない場合はフィールド区切り文字を使用し、最初のフィールドを印刷し、>
そうでない場合は 2 番目のフィールドを印刷します。
そしてsed
:
sed 's/^>[^:]\+:\([^:]\+\).*/>\1/' file