Script to parse a NCBI GFF based on transcript IDs (e.g., XM_000..). These transcript IDs must not include the version suffix (.1, .2, etc.).
Columns returned:
- chromosome/scaffold
- start position of transcript
- end position of transcript
- transcript number
- gene number
- gene ID (NCBI)
- transcript ID (same as query)
- transcript ID/version
- gene symbol
cut -f 1 GCF_000186305.1_Python_molurus_bivittatus-5.0.2_rna_metadata_parsed.tsv | \
while read tx; do grep -m 1 -w "$tx" \
<(cat GCF_000186305.1_Python_molurus_bivittatus-5.0.2_genomic.gff | awk '{ if ($3 != "exon") print $0 }') | \
cut -f 1,4,5,7,9 | awk -v OFS="\t" -F ';' '{ print $1, $2, $3, $6 }' | tr ',' '\t' | \
sed -e 's/ID=//g' -e 's/Parent=//g' -e 's/Dbxref=//g' -e 's/GeneID://g' -e 's/Genbank://g' -e 's/gene=//g' | \
awk -v OFS="\t" -F '.' '{ print $1, $2, $3 }' | \
awk -v OFS="\t" '{ print $1"."$2, $3, $4, $5, $6, $7, $8, $9, $9"."$10, $11 }'; \
done \
> GCF_000186305.1_Python_molurus_bivittatus-5.0.2_genomic_rna_metadata_parsed.tsv