系統発生ファイルからDNA配列名をコピーし、種名を追加します。

系統発生ファイルからDNA配列名をコピーし、種名を追加します。

次のファイルから:

(AJirio_TR15329|c4_g1_i4|m.30470:0.00230,(AJama_TR16613|c5_g2_i2|m.30203:0.00171,(AJkago_TR11651|c5_g2_i1|m.3847:0.00057,AJtok_TR11413|c7_g1_i1|m.3527:0.00033)1.00    :0.00080)0.94    :0.00085,Atab_TR15364|c0_g1_i1|m.4073:0.27697);

このファイルをインポートする必要があります。

AJirio_TR15329|c4_g1_i4|m.30470"AJirio"  
AJama_TR16613|c5_g2_i2|m.30203"AJama"
AJkago_TR11651|c5_g2_i1|m.3847"AJkago"
AJtok_TR11413|c7_g1_i1|m.3527"AJtok"
Atab_TR15364|c0_g1_i1|m.4073"Atab"

したがって、基本的に系統発生水からDNA配列の名前を抽出し、ここに種名を引用符(AJirio、AJkama..)として追加します。

ベストアンサー1

Awk解決策:

awk -v RS=',' -F':' '{ 
           sub(/^\(/, "", $1); 
           printf "%s\042%s\042\n", $1, substr($1, 1, index($1,"_")-1) 
       }' file
  • RS=','-,レコード区切り文字として扱われます。
  • -F':'-:フィールド区切り文字として扱われます。
  • sub(/^\(/, "", $1)- 最初のフィールドから先行する角かっこを削除します。$1
  • \042- 二重引用符文字の8進数ASCIIコード"
  • substr($1, 1, index($1,"_")-1)- 抜粋種名最初のフィールドで始まる(開始位置からchar1の最初の発生まで_

出力:

AJirio_TR15329|c4_g1_i4|m.30470"AJirio"
AJama_TR16613|c5_g2_i2|m.30203"AJama"
AJkago_TR11651|c5_g2_i1|m.3847"AJkago"
AJtok_TR11413|c7_g1_i1|m.3527"AJtok"
Atab_TR15364|c0_g1_i1|m.4073"Atab"

おすすめ記事