美文网首页ggplot集锦
R批量下载基因的相关功能信息

R批量下载基因的相关功能信息

作者: 哇珍 | 来源:发表于2021-07-07 20:30 被阅读0次

    NCBI的GeneRIF数据库总结了已发表的文章来注释基因的功能,可以找到基因的绝大部分功能信息,帮助我们筛选候选基因。(最全面的信息肯定需要自己慢慢挖掘,但是对于我来说,这个数据库就够够的了

    少数基因功能的查找:直接在NCBI网站上的Gene database进行中搜索

    image.png

    下拉找到GeneRIF,点击see all GeneRIFs

    image.png

    点击Send to可以导出该基因的所有信息

    image.png

    批量下载

    得到基因信息:

    setwd("~/wangzh/批量爬取NCBI基因注释数据")
    rm(list=ls())
    
    library(clusterProfiler)
    library(RCurl)
    library(stringr)
    
    # 读入基因列表:
    library(readr)
    test_genes <- read_csv("test_genes.csv")
    

    基因信息


    image.png
    names(test_genes)[2] <-"gene"#对数据框的列名进行重命名
    test_genes =sapply(strsplit(test_genes$gene,":precursor"),"[",1)#"["代表提取,1代表第一个字符串
    test_genes =paste0("MIR",test_genes)
    class(test_genes)
    
    image.png
    # 将gene symbol转为entrze ID
    genes <- bitr(test_genes, fromType="SYMBOL", toType="ENTREZID", OrgDb="org.Hs.eg.db")
    genes$NCBI_url <- paste("https://www.ncbi.nlm.nih.gov/gene/",genes$ENTREZID,sep="")
    genes=as.matrix(genes)
    write.table(genes,file="genes.txt",sep="\t",quote=F,col.names=F)  
    

    genes.txt的内容


    image.png

    R和Linux中写个简单的脚本就可以批量提取所有候选基因的GeneRIFs信息了,GeneRIFs信息网址如下:https://ftp.ncbi.nlm.nih.gov/gene/GeneRIF/

    首先找到包含GeneRIF所有信息的文件(generifs_basic.gz),下载完成后先将它解压
    脚本如下:

    #Linux上
    cd 批量爬取NCBI基因注释数据
    source activate rna-seq
    wget -c https://ftp.ncbi.nlm.nih.gov/gene/GeneRIF/generifs_basic.gz
    gunzip generifs_basic.gz
    less generifs_basic
    wc -l generifs_basic ##查看一下有多少列
    

    generifs_basic数据太大,R读出来的格式不正确(默认以空格键读取,所以句子会被拆成一个个的单词)\color{red}{只好直接使用Linux来操作}

    通过查看entrze ID,发现与第二列的Gene ID值对应。

    awk '{print $3}' genes.txt > gene_id
    less gene_id
    cat gene_id | while read line; do grep $line generifs_basic >> genefir; done
    

    多次使用>>不会覆盖原文件,多次使用>会覆盖原文件,这里我只跑了一次代码,所以>>和>都可以。
    当然了,最后把所有的基因名称添加上去。我比较笨,使用Excel操作的,先把所有的Gene ID值提出来放入一个新的Excel,然后使用替换的方法将名称手动替换(有些基因:
    724028 MIR658
    100302119 MIR1538
    100302168 MIR1257
    693196 MIR611
    没有功能注释,所以找不到,这时候需要自己重新看文献或选择其他办法,反正我就报告老师,看看他咋处理!!!)genefir文件的Gene ID列前(后)插入新的列,将基因的名称复制到新的列。按照列升序排列,发现有些Gene ID不属于我寻找的范围(可能是由于PubMed ID (PMID) list列中的数字与ENTREZID重合了),确定后删除不需要的行。
    最后得到的数据

    image.png

    参考:一个通过文献注释基因功能的数据库【Gene RIF】
    推荐一个批量从NCBI下载资源的链接:Harvesting Data From NCBI
    批量下载资源还需要了解APIs

    Linux 根据一个文件内容查找另一个文件中的内容

    相关文章

      网友评论

        本文标题:R批量下载基因的相关功能信息

        本文链接:https://www.haomeiwen.com/subject/gpdaultx.html