CDSとエクソン座標を変更せずにgff座標を修正する[閉じる]

CDSとエクソン座標を変更せずにgff座標を修正する[閉じる]

gffで遺伝子とmRNAの座標を変えようとしています。 CDSやmRNAのような他の項目は、私のコードの影響を受けずに私の出力にそのまま表示されることを望みます。使用中のコードで構文エラーが発生します。必要な出力を取得する方法を知る必要があります。

私の入力gff:

Chr01  xyz     gene    210262  212819  .       -       .       ID=Chr01.g13944
Chr01  xyz     mRNA    210262  212819  .       -       .       ID=Chr01.g13944;Parent=Chr01.g13944
Chr01  xyz     CDS     210262  210528  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210262  210528  .       -       .       ID=Chr01.g13944.exon4;Parent=Chr01.g13944
Chr01  xyz     CDS     210622  210728  .       -       2       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210622  210728  .       -       .       ID=Chr01.g13944.exon3;Parent=Chr01.g13944
Chr01  xyz     CDS     210933  212121  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210933  212121  .       -       .       ID=Chr01.g13944.exon2;Parent=Chr01.g13944
Chr01  xyz     CDS     212730  212819  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz    exon    212730  212819  .       -       .       ID=Chr01B.g13944.exon1;Parent=Chr01B.g13944

希望の出力:

Chr01  xyz     gene    210162  212919  .       -       .       ID=Chr01.g13944
Chr01  xyz     mRNA    210162  212919  .       -       .       ID=Chr01.g13944;Parent=Chr01.g13944
Chr01  xyz     CDS     210262  210528  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210262  210528  .       -       .       ID=Chr01.g13944.exon4;Parent=Chr01.g13944
Chr01  xyz     CDS     210622  210728  .       -       2       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210622  210728  .       -       .       ID=Chr01.g13944.exon3;Parent=Chr01.g13944
Chr01  xyz     CDS     210933  212121  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz     exon    210933  212121  .       -       .       ID=Chr01.g13944.exon2;Parent=Chr01.g13944
Chr01  xyz     CDS     212730  212819  .       -       0       ID=Chr01.g13944.cds;Parent=Chr01.g13944
Chr01  xyz    exon    212730  212819  .       -       .       ID=Chr01B.g13944.exon1;Parent=Chr01B.g13944

awk -F '\t' '{if ($3 ~ /gene/ || $3 ~ /mRNA/) print $1,$2,$3,$4-100,$5+100,$6,$7,$8,$9 || if ($3 ~ /CDS/ || $3 ~ /exon/) print$0}' input.gff > out.gff

答え1

努力する:

awk 'BEGIN{ FS=OFS="\t" }
 ($3=="gene" || $3=="mRNA"){ $4-=100; $5+=100 }1' infile

これは、「遺伝子」および「mRNA」型ゲノムの座標のみを変更し、他の型は変更されません。

関連情報