다음과 같은 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 $10
gene_id와 동일하기 때문에++count[$3]
엑손의 발생 횟수를 인쇄합니다(세 번째 필드).
NF!=10
라인을 인쇄하면 됩니다.