R语言批量爬取ensembl基因序列

ensembl的biomart可以批量下载基因序列,但是有时候会无法访问,不知道是不是对我们封锁的问题。干脆自己写一个

rm(list = ls())#清除环境
#加载程序包
library('biomaRt')
library("curl")
library(tidyverse)

#主要利用getSequence函数,下面有注释

#getSequence(chromosome, #染色体名称
#            start,  序列在染色体上的起始位置
#            end, 序列在染色体上的末端位置
#            id, 标识符或标识符向量。
#            type, 使用的标识符类型。支持的类型包括 hugo、ensembl、embl、entrezgene、refseq、ensemblTrans 和 unigene。
#或者,也可以使用筛选器来指定类型。可能的过滤器由函数给出。listFilters()
#            seqType, 要检索的序列的类型。允许的 seqTypes 在详细信息部分中给出。
#            upstream, 将指定数量的碱基对的上游序列添加到输出中。
#            downstream,将指定数量的碱基对的下游序列添加到输出中。
#            mart, 使用 useMart 函数创建的 Mart 类的对象
#            verbose = FALSE)#如果 verbose = TRUE,则将显示发送到 Web 服务的 XML 查询。

#返回的序列类型可以通过 seqType 参数指定,该参数采用以下值:
#“cdna”:用于核苷酸序列
#“peptide”:用于蛋白质序列
#'3utr':用于 3' UTR 序列
#'5utr':用于 5' UTR 序列
#“gene_exon”:仅适用于外显子序列
#'transcript_exon_intron':给出完整的未拼接转录本,即外显子+内含子
#'gene_exon_intron'给出了基因的外显子+内含子;coding' 仅给出编码序列
#“coding_transcript_flank”:给出脚本的侧翼区域,包括 UTR,这必须伴随着上游或下游属性的给定值
#'coding_gene_flank':给出基因的侧翼区域,包括UTR,这必须伴随着上游或下游属性的给定值
#“transcript_flank”:给出去除 UTR 的成绩单的侧翼区域,这必须伴随着上游或下游属性的给定值
#'gene_flank':给出基因的侧翼区域,不包括UTR,这必须伴随着上游或下游属性的给定值

mart <- useMart("ensembl", dataset="drerio_gene_ensembl")#如果是人或者小鼠请自行修改dataset

#下载单个基因5utr序列

seq = getSequence(id = "ENSDARG00000006791", 
                  type = "ensembl_gene_id", 
                  seqType = "5utr", 
                   mart = mart)
show(seq)

#下载单个基因上游5000bp序列

seq = getSequence(id="ENSDARG00000006791", 
                  type="ensembl_gene_id", 
                  seqType="gene_flank",
                  upstream = 5000, 
                  mart = mart)
show(seq)

#批量下载基因序列
setwd("C:\\Users\\admin\\Desktop")#自行修改文件地址
genes <- read_csv("genes.csv") #自行修改txt文件名
seq <- getSequence(id=genes$ensembl_gene_id, 
                  type = "ensembl_gene_id", 
                  seqType = "5utr", 
                  mart = mart)
write.csv(seq,file ="genes_5utr.csv" )

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值