一、從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-tw/n/301922.html
微信掃一掃
支付寶掃一掃