文字列にさらに情報を追加する

文字列にさらに情報を追加する

次のgtfファイルがあります。

ChrI    Coding_transcript       gene    8451772 8509212 .       -       .       gene_id "UMM-S589-0.12-gene-1"

ChrI    Coding_transcript       exon    8501974 8509212 .       -       .       gene_id "UMM-S589-0.12-gene-1"

ChrI    Coding_transcript       exon    8491643 8501928 .       -       0        gene_id "UMM-S589-0.12-gene-1"

今度は9列にもっと情報を追加したいと思います。これを行うと、次のようになります。

ChrI    Coding_transcript       exon    8501974 8509212 .       -       .       gene_id "UMM-S589-0.12-gene-1"; transcript_id "UMM-S589-0.12-gene-1", exon_id "1";

ChrI    Coding_transcript       exon    8491643 8501928 .       -       0        gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "2";

このファイルを作成するために使用できる簡単なコマンドを知っている人はいますか?とても感謝しています!

ベストアンサー1

この試み:

awk 'NF==10{print $0";transcript_id "$10", exon_id ""\""++count[$3]"\""";"}NF!=10{print $0}' file.gtf

出力:

ChrI    Coding_transcript       exon    8501974 8509212 .       -       .       gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "1";

ChrI    Coding_transcript       exon    8491643 8501928 .       -       0        gene_id "UMM-S589-0.12-gene-1";transcript_id "UMM-S589-0.12-gene-1", exon_id "2";
  • NF==10フィールド数が10であることを確認してください。
    • print $0ライン全体を印刷します。
    • transcript_id $10gene_idと同じだから
    • ++count[$3]エクソンの発生回数を印刷します(3番目のフィールド)。
  • NF!=10ラインを印刷するだけです。

おすすめ記事