他の列の指示に従って、1列の文字を変更します。

他の列の指示に従って、1列の文字を変更します。

NGSデータで見つかったバリアントに基づいて、あるコドンシーケンスを別のコドンシーケンスに変換するスクリプトを設定しようとしています。

現在私のスクリプトは、6つの列を持つタブで区切られた出力ファイルを生成します。各列は次を示します。

  • 最初:ゲノムの位置
  • 第二:ヌクレオチド塩基
  • 3番目の場所:コドン
  • 第四:コドンのゲノム位置配列
  • 5番目:SNP頻度
  • 6位:SNPベース

出力データは次のとおりです。

2289     G       GTG    3        0.0346505      A

2478     G       ATG    2        0.0054087      C

出力ファイルの7列を設定して、4列の番号に基づいてコドンのヌクレオチド配列をSNPヌクレオチド(6列)に変更することは可能ですか?

例えば、

  • ゲノム位置2289の場合:

GTGコドンはGTAになります。 SNPヌクレオチドAは、列4に記載されているコドン配列の3番目のヌクレオチド配列を置き換えます。

  • ゲノム位置2478の場合

ATGコドンはACGになります。 SNPヌクレオチドCは、コドンの第2のヌクレオチド配列を置き換える。

この操作を使用awkまたは実行できますか?sed

ベストアンサー1

「できるか…」という質問に「はい」と答えるのはあまりにも誘惑的です。

そんなことが起こりますか?

awk '{l=substr($3,1,$4-1); r=substr($3,$4+1); print $0"\t"l $6 r}' genome > mutated

おすすめ記事