GTFF文件詳解

一、從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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-30 16:10
下一篇 2024-12-30 16:10

相關推薦

  • vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常問題的解決

    本文旨在解決vue下載無後綴名的文件被加上後綴.txt,有後綴名的文件下載正常的問題,提供完整的代碼示例供參考。 一、分析問題 首先,需了解vue中下載文件的情況。一般情況下,我們…

    編程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件並生成完整的圖像

    OBJ格式是一種用於表示3D對象的標準格式,通常由一組頂點、面和紋理映射坐標組成。在本文中,我們將討論如何將多個OBJ文件拼接在一起,生成一個完整的3D模型。 一、讀取OBJ文件 …

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • 為什麼用cmd運行Java時需要在文件內打開cmd為中心

    在Java開發中,我們經常會使用cmd在命令行窗口運行程序。然而,有時候我們會發現,在運行Java程序時,需要在文件內打開cmd為中心,這讓很多開發者感到疑惑,那麼,為什麼會出現這…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • Python zipfile解壓文件亂碼處理

    本文主要介紹如何在Python中使用zipfile進行文件解壓的處理,同時詳細討論在解壓文件時可能出現的亂碼問題的各種解決辦法。 一、zipfile解壓文件亂碼問題的根本原因 在P…

    編程 2025-04-29
  • Python將矩陣存為CSV文件

    CSV文件是一種通用的文件格式,在統計學和計算機科學中非常常見,一些數據分析工具如Microsoft Excel,Google Sheets等都支持讀取CSV文件。Python內置…

    編程 2025-04-29
  • Python如何導入py文件

    Python是一種開源的高級編程語言,因其易學易用和強大的生態系統而備受青睞。Python的import語句可以幫助用戶將一個模塊中的代碼導入到另一個模塊中,從而實現代碼的重用。本…

    編程 2025-04-29
  • Python合併多個相同表頭文件

    對於需要合併多個相同表頭文件的情況,我們可以使用Python來實現快速的合併。 一、讀取CSV文件 使用Python中的csv庫讀取CSV文件。 import csv with o…

    編程 2025-04-29
  • Python寫文件a

    Python語言是一種功能強大、易於學習、通用並且高級編程語言,它具有許多優點,其中之一就是能夠輕鬆地進行文件操作。文件操作在各種編程中都佔有重要的位置,Python作為開發人員常…

    編程 2025-04-29

發表回復

登錄後才能評論