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" 유형 게놈의 좌표만 변경하고 다른 유형은 변경되지 않습니다.

관련 정보