基因组文件及gtf文件的下载及从GTF中提取注释信息

对于大多数的细菌来说做,查找未知基因的功能都是一个问题,我在做细菌的转录组分析时就碰到了这个问题,得到差异基因之后无法系统的进行下一步分析,GO数据库只提供很少的物种选择,kegg虽然提供了不少这种信息,但是对于大多数的菌群来说还是不够,所以对于部分数据来说直接从NCBI或者Ensemble数据库中给的gtf注释文件中提取基因的注释信息也是一种方法。

一、基因组及注释文件GTF文件的下载

1、NCBI下载

以本次我研究的Staphylococcus aureus为例,从NCBI-Genome中直接搜索Staphylococcus aureus,然后进入下载页面,从下载页面中能看出NCBI提供的Reference数据,包括参考基因组以及GTF注释信息,如果没有的可以复制参考基因组链接然后删除最后的文件名进入到FTP下载页面查看提供的文件信息;

2、Ensemble 下载

Ensemble提供的数据要比NCBI要少一些,可以直接搜索Ensemble进入数据库,然后在下侧导航栏进入到Ensemble Bacteria 数据库或者直接点击链接进入,进入后可以直接根据物种或者基因组信息进行检索,然后直接点击可直接进入FTP下载页面,然后下载所需的信息;Ensembl Bacteriaicon-default.png?t=N7T8http://bacteria.ensembl.org/

二、提取GTF注释信息

以NCBI数据为例,首先在linux中使用shell去除‘#’号开头的说明文件

less GCF_001900185.1_ASM190018v1_genomic.gtf | grep -v '#' > less GCF_001900185.1_ASM190018v1_genomic.txt

然后在R中进行提取信息

#读取文件中包含注释信息的信息
gtf_data <- read.delim("GCF_001900185.1_ASM190018v1_genomic.txt", sep = "\t", header = F)
gtf_data <- gtf_data[gtf_data$V3 == 'CDS', ] 
gtf_data$V9 <- stringr::str_remove(string = gtf_data$V9,pattern = 'gbkey CDS; ')

#构建注释信息表格,首先判断注释文件中GO_term的数量,然后再进行提取
summary_df <- data_frame()
for (i in 1:nrow(gtf_data)){
  GO_num <- stringr::str_count(string = gtf_data[i,'V9'], pattern = 'Ontology_term')
  print(GO_num)
  print(i)
  data <- stringr::str_split(string = gtf_data[i,'V9'], pattern = ";")[[1]]
  df <- data_frame()
  if(GO_num > 0){
    for (j in 1:GO_num){
      gene_ID = stringr::str_remove(data[1], pattern = 'gene_id ')
      GO_ID = stringr::str_remove(data[j+2], pattern = 'Ontology_term ')
      if (isEmpty(data[GO_num+3] %>% stringr::str_subset(pattern = "gene"))) {
        gene = data %>% stringr::str_subset(pattern = "locus_tag") %>% str_remove(pattern = "locus_tag ")
        GO_term = data[j+GO_num+2] 
      }else{
        gene = data[GO_num+3] %>% str_remove(pattern = "gene ")
        GO_term = data[j+GO_num+3]
      }
      inference_COORDINATES = ""
      product = ifelse(isEmpty(data %>% stringr::str_subset(pattern = "product")),"", data %>% stringr::str_subset(pattern = "product")) %>% str_remove(pattern = "product ")
      protein_id = ifelse(isEmpty(data %>% stringr::str_subset(pattern = "protein_id")),"", data %>% stringr::str_subset(pattern = "protein_id")) %>% str_remove(pattern = "protein_id ")
      df <- rbind(df, data.frame(gene_ID, GO_ID, GO_term, inference_COORDINATES,gene,  product, protein_id))
    }
  }else{
    gene_ID = stringr::str_remove(data[1], pattern = 'gene_id ')
    GO_ID = ""
    GO_term = ""
    inference_COORDINATES = ifelse(isEmpty(data %>% stringr::str_subset(pattern = "inference COORDINATES")),"", data %>% stringr::str_subset(pattern = "inference COORDINATES")) %>% str_remove(pattern = "inference COORDINATES: ")
    gene = ifelse(isEmpty(data[3] %>% stringr::str_subset(pattern = "gene")),data %>% stringr::str_subset(pattern = "locus_tag"), data[3]) %>% str_remove(pattern = "gene ") %>% str_remove(pattern = "locus_tag ")
    product = ifelse(isEmpty(data %>% stringr::str_subset(pattern = "product")),"", data %>% stringr::str_subset(pattern = "product")) %>% str_remove(pattern = "product ")
    protein_id = ifelse(isEmpty(data %>% stringr::str_subset(pattern = "protein_id")),"", data %>% stringr::str_subset(pattern = "protein_id")) %>% str_remove(pattern = "protein_id ")
    df <- rbind(df, data_frame(gene_ID, GO_ID, GO_term,inference_COORDINATES,gene, product, protein_id))
  }
  summary_df <- rbind(summary_df, df)
}

最后得到的注释表格,对于有GO_term注释信息的文件,提取其GO信息,没有的则提取其预测的信息,根据此表格能够进一步的对关键基因进行统计,观察这些基因都富集在GO的什么通路上;

  • 27
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基因组注释文件GTF)是一种用于描述基因组上的基因、转录本和外显子等注释信息文件格式。GTF文件通常与基因组序列文件一起使用,用于帮助研究者理解基因组的组成和功能。 GTF文件的结构很简单明了,每一行都代表一个注释区域(feature)。每行包含了一系列字段,用制表符分隔开,依次包括染色体名称、源(即生成该注释的程序或数据库)、注释区域的类型、起始位置、终止位置、分数、方向、相位和其他一些属性等信息。通过这些字段,我们可以了解到基因和转录本在染色体上的位置,并且对于非编码RNA、外显子和剪接变体等也能做到详细描述。 GTF文件的重要性在于它提供了关键的信息,可以用于多种生物信息学研究任务。例如,研究者可以利用GTF文件的基因和转录本注释信息,对已知的基因进行注释,或者对全新的基因进行预测。此外,GTF文件还可以用于分析基因的发育、表达和调控过程,帮助我们理解基因组的功能。 然而,需要注意的是,GTF文件仅仅是基因组注释的一部分,它并不能提供关于表达水平、蛋白质结构和功能的直接信息。因此,在进行基因组研究时,还需要结合其他实验数据,如RNA测序和质谱数据等,来进一步验证和研究基因组的功能。 总而言之,基因组注释文件GTF)提供了基因、转录本和外显子等注释信息的描述,是生物信息学研究不可或缺的一部分。通过分析GTF文件,我们可以加深对基因组的理解,并在基因组研究发挥重要作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值