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/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

发表回复

登录后才能评论