一、從GTF文件下載開始
下載GTFF(Gene Transfer Format)文件可以通過很多網站進行,只需通過基因或基因組名稱搜索即可。一般來說,GTFF文件在生物醫學研究的基因分析中經常被使用。
以下是Python腳本的實例,可通過指定基因名自動下載GTF文件:
import urllib.request def download_gtf(gene): url = "https://ftp.ncbi.nih.gov/genomes/refseq/vertebrate_other/Homo_sapiens/annotation_releases/109.20210212/GCF_000001405.39_GRCh38.p13/GCF_000001405.39_GRCh38.p13_genomic.gtf.gz" file_name = gene + ".gtf.gz" urllib.request.urlretrieve(url, file_name) download_gtf("TP53")
二、GTFF文件中的mRNA
GTFF文件中包含了所有的mRNA(編碼一條蛋白質基因),基因型和外顯子組(exon)信息等,因此,它的解析對於研究生物信息學非常重要。
在下面的Python腳本中,我們從下載下來的GTF文件中尋找出第一個mRNA,並打印出來:
def find_first_mrna(gtf_file): with open(gtf_file, 'r') as f: for line in f: if "mRNA" in line: print(line) break find_first_mrna("TP53.gtf")
三、打開並製作GTFF文件
GTFF文件可以使用文本編輯器(如Sublime Text和Notepad++)打開。為了製作自己的GTFF文件,只需按照GFF(General Feature Format)的格式編寫一個文本文件即可。以下是一個簡單的例子:
##gff-version 3 chr1 Ensembl gene 11869 14409 . + . gene_id "ENSG00000223972"; gene_name "OR4F5"; gene_source "ensembl"; gene_biotype "protein_coding"; chr1 miRNA exon 11869 12227 . + . gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "1"; chr1 miRNA exon 12613 12721 . + . gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "2"; chr1 miRNA exon 13221 14409 . + . gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; exon_number "3"; chr1 Ensembl transcript 11869 14409 . + . gene_id "ENSG00000223972"; transcript_id "ENST00000456328"; gene_name "OR4F5"; gene_source "ensembl"; gene_biotype "protein_coding"; transcript_name "OR4F5-202"; transcript_source "ensembl"; transcript_biotype "protein_coding";
四、GTFF文件是什麼
GTFF文件是一個用於描述生物進化基因組特性的通用文件格式,其中包含了有關DNA序列的注釋信息。在研究生物信息學方面,對GTFF文件的處理是至關重要的,並且它常常與GFF文件進行比較使用,這兩個文件格式都被廣泛應用於基因組注釋和數據規整。
五、使用GTFF文件
GTFF文件在生物醫學研究中經常被使用,可以通過 BioPython 庫進行解析及數據分析。以下是一個簡單的示例程序,可以將GTF文件轉換成CSV表格:
import csv from collections import defaultdict from typing import List def parse_gtf(gtf_file_path: str): """ :param gtf_file_path: path to the input GTF file :return: parsed GTF data, as a dictionary """ gtf_data = defaultdict(list) with open(gtf_file_path) as gtf_file: gtf_reader = csv.reader(gtf_file, delimiter='\t') for row in gtf_reader: if row[0].startswith("#"): continue gtf_data[row[2]].append(row) return dict(gtf_data) def write_to_csv(data: List[dict], csv_file_path: str): """ :param data: list of data dictionaries, each representing a row :param csv_file_path: path to the output CSV file :return: None """ with open(csv_file_path, mode='w') as csv_file: fieldnames = data[0].keys() writer = csv.DictWriter(csv_file, fieldnames=fieldnames) writer.writeheader() for row in data: writer.writerow(row) gtf_data = parse_gtf('TP53.gtf') write_to_csv(gtf_data['exon'], 'TP53_exons.csv')
六、如何打開和查看GTFF文件
GTFF文件可以使用文本編輯器(例如 Sublime Text 和 Notepad++)打開和查看。一些命令行工具,例如Gffread,也可以對GTFF文件進行解析和查看。
七、GTFF文件轉換成表格
在研究生物信息學方面,需要將GTFF文件轉換為表格進行數據分析和可視化。以下是一個簡單的Python腳本示例,用於將GTF文件轉換為表格形式:
import csv def gtf_to_table(gtf_file): with open(gtf_file, 'r') as f, open('output.txt', 'w') as out: writer = csv.writer(out, delimiter='\t') for line in f: if not line.startswith('#'): feature = line.split('\t') info = feature[8] gene_id = "" transcript_id = "" gene_name = "" info = info.split('; ') for i in range(len(info)): if 'gene_id' in info[i]: gene_id = info[i].split()[-1][1:-1] elif 'transcript_id' in info[i]: transcript_id = info[i].split()[-1][1:-1] elif 'gene_name' in info[i]: gene_name = info[i].split()[-1][1:-1] writer.writerow([feature[0], feature[3], feature[4], feature[2], gene_id, transcript_id, gene_name]) gtf_to_table('TP53.gtf')
八、GFF文件和GTFF文件的選擇
GFF(General Feature Format)和GTFF文件格式都被廣泛應用於基因組注釋和數據規整方面。GFF文件是GFF格式的文本文件,其目的是為了描述一個物種的基因組結構信息。GTFF文件是GFF格式的子集,它描述的是參考基因組序列的注釋信息,由於其包含比GFF文件更多的富信息,因此在許多基因組注釋任務中得以廣泛應用。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/301922.html