05

Bioconductor的数据包library(biomaRt)简介

 

这是发布在bioconductor平台上面的一个数据库文件,可以通过R里面下载安装并使用,非常方便。其实在ensembl数据库里面也有一个biomart,我之前也讲过这个平台,非常好用,可以把任意的数据库之间的ID号进行转换。

为了更好的理解和掌握biomaRt,我们可以先通过在线资源来了解一下它的原型biomart (http://www.biomart.org)。 biomart是为生物科研提供数据服务的免费软件,它为数据下载提供打包方案。它有许多成功的应用实例,比如欧洲生物信息学中心(The European Bioinformatics Institute ,EBI)维护的Ensembl数据库(http://www.ensembl.org/)就使用biomart提供数据批量下载服务, 还有COSMIC, Uniprot, HGNC, Gramene, Wormbase以及dbSNP等。

这个就是一个R平台的biomart而已,但是非常好用!

> library(biomaRt)

> head(listMarts(), 3)

biomart                           version

1    ensembl      ENSEMBL GENES 79 (SANGER UK)

2        snp  ENSEMBL VARIATION 79 (SANGER UK)

3 regulation ENSEMBL REGULATION 79 (SANGER UK)

这是这个biomart最具有代表性的三个数据库,用listMarts()可以查看得知,它总共有58个数据库。

ensembl <-  useMart("ensembl", dataset = "hsapiens_gene_ensembl")

这是创建了人的ensembl数据库对象

> head(listFilters(ensembl), 3)

name     description

1 chromosome_name Chromosome name

2           start Gene Start (bp)

3             end   Gene End (bp)

可以看到对人的数据库ensembl来说,有多种字段可以来挑选自己感兴趣的东西,最常用的的当然是染色体号及起始终止坐标啦,用listFilters(ensembl),以查看得知,它总共有284中挑选感兴趣数据的方式。

既然 chromosome_name是其中一个挑选字段,那么我们就可以看看,是如何进行挑选的

用filterOptions(myFilter, ensembl)可以看到它挑选参数非常之多,远不止我们所认为的染色体号码。

染色体号一般是1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,X,Y,MT

还有一堆稀奇古怪的标志,LRG_101,LRG_102,LRG_103,LRG_104,因为我们组装好的人的标准基因组还有很多小的片段不被计入染色体中。

然后还可以看到人的ensembl数据库对象,有很多的属性,最常见的当然是基因ID和转录本ID和蛋白的ID号啦!

> head(listAttributes(ensembl), 3)

name           description

1       ensembl_gene_id       Ensembl Gene ID

2 ensembl_transcript_id Ensembl Transcript ID

3    ensembl_peptide_id    Ensembl Protein ID

用listAttributes(ensembl),,以查看得知,它总共有1166个ID号,太恐怖了,我实在是没有想到!

 

那么接下来我简单讲讲这个包的几个应用吧

首先是根据entrez ID号来找

ensembl <-  useMart("ensembl", dataset = "hsapiens_gene_ensembl")

这样就得到了人的信息,然后我探究以下两个基因的其它信息。

entrzID=c("672","1")

getBM(attributes=c("entrezgene","hgnc_symbol","ensembl_gene_id"), filters = "entrezgene", values =entrzID, mart=ensembl )

entrezgene hgnc_symbol ensembl_gene_id

1          1        A1BG ENSG00000121410

2        672       BRCA1 ENSG00000012048

3        672       BRCA1         LRG_292

 

其实这个函数很简单,就是根据自定义的entrzID这个变量来找到一些数据,数据的属性是我自己定义的entrezgene","hgnc_symbol","ensembl_gene_id",所以它就显示这个信息给我,在我之前弄好的人的数据库里面寻找!listAttributes(ensembl),,以查看得知,它总共有1166个ID号,就是说,你可以挑选你想要的基因的1166种信息,包罗万象!!!

其它功能也是很简单的啦,自己多看帮助文档!

 

从上面的操作来看,使用biomaRt只需要两步,1,指定mart数据库,2,使用getBM获得注释。但是首先,我们如何知道有哪些服务器,以及这些服务器上哪些数据库呢?其次,我们如何获阳getBM中attributes,filters的正确设置呢?

关于第一个问题,我们可以使用biomaRt中的listMarts以及listDatasets两个函数来解决。

> marts <- listMarts(); head(marts) #查看当前可用的数据源 ,总共有58个数据源。

> ensembl <- useMart("ensembl") #使用ensembl数据源

> datasets <- listDatasets(ensembl); datasets[1:10,] #查看ensembl中可用数据库,共有69个物种的数据库!

对于第二个问题,我们使用biomaRt中的listFilters以及listAttributes两个函数来解决。

> mart <- useMart("ensembl", "hsapiens_gene_ensembl")  #首先使用人的数据库

>listAttributes(ensembl) #,以查看得知,它总共有1166个ID号,就是说,人的数据库可供挑选的信息多达1166种。

> filters <- listFilters(mart); filters[grepl("entrez", filters[,1]),] #总共有284中挑选感兴趣数据的方式。

最后的问题是,biomaRt会被如何使用呢?我们做注释的时候,怎么就想到要使用biomaRt呢?因为在注释上,各种ID,symbol, name之间的转换都可以考虑使用biomaRt来做。更重要的是,biomaRt还会有很多SNP, alternative splicing, exon, intron, 5’utr, 3’utr等等信息。当然,只要能做也数据库并使用SQL访问的数据都可以使用biomaRt来获取。所以我们的思路可以更加发散一些。

 

 

 

05

Bioconductor的数据包library(org.Hs.eg.db)简介

 

这是发布在bioconductor平台上面的一个数据库文件,可以通过R里面下载安装并使用,非常方便。而且用的是数据库存储方式,所以搜索起来也是非常快速。

这个包里面有28个主流数据资料文件,这样我们可以用select函数根据我们自己的ID在这28个数据库里面随意转换自己想要的信息!!!

当然我本人是比较喜欢直接下载原文件,然后写脚本自己进行各种数据直接的转换。

首先我们加载这个数据包,可以看到这个数据包依赖于很多其它的包,如果是第一次安装。会耗时很长!

Bioconductor的数据包org.Hs.eg.db269

用这个函数,可以看到这个org.Hs.eg.db数据对象里面包含着各大主流数据库的数据,一般人都比较熟悉的entrez ID 和ensembl 数据库的ID。

keytypes(org.Hs.eg.db)

##  [1] "ENTREZID"     "PFAM"         "IPI"          "PROSITE"

##  [5] "ACCNUM"       "ALIAS"        "ENZYME"       "MAP"

##  [9] "PATH"         "PMID"         "REFSEQ"       "SYMBOL"

##  [13] "UNIGENE"      "ENSEMBL"      "ENSEMBLPROT"  "ENSEMBLTRANS"

##  [17] "GENENAME"     "UNIPROT"      "GO"           "EVIDENCE"

##  [21] "ONTOLOGY"     "GOALL"        "EVIDENCEALL"  "ONTOLOGYALL"

##  [25] "OMIM"         "UCSCKG"

然后,我们用select函数,就可以把任意公共数据库的数据进行一一对应了。

ensids <- c("ENSG00000130720", "ENSG00000103257", "ENSG00000156414",

"ENSG00000144644", "ENSG00000159307", "ENSG00000144485")

cols <- c("SYMBOL", "GENENAME")

select(org.Hs.eg.db, keys=ensids, columns=cols, keytype="ENSEMBL")

比如说,我们有几个ensembl的基因ID号。然后我们想找它所对应的gene名和缩略词简称,就通过select函数来搞定即可!

Bioconductor的数据包org.Hs.eg.db1158

select(org.Hs.eg.db, keys="BRCA1", columns=c("ENSEMBL","UNIGENE","ENTREZID","CHR","GO","GENENAME"), keytype="SYMBOL")

这样得到了这个BRCA1基因的大部分信息,只是它的GO条目太多了,看得有点乱。

Bioconductor的数据包org.Hs.eg.db1318

 

 

 

05

Bioconductor简介

主页:http://www.bioconductor.org/

文字介绍我懒得写了,具体大家参考

http://www.bioconductor.org/about/

http://blog.csdn.net/shmilyringpull/article/details/8542607

这是一个R语言进行生信分析的流程发布平台,每个包都解决生信的一个流程问题。到目前为止2015年5月5日10:57:29已经有了1024个包,所以大家可以看到生信分析是一个海量的任务了。每一个包都有着详尽的说明文档及脚本代码,还附带着数据,非常容易弄懂,接下来我会花一个月的时间好好学习这些包!

这1024个虽然还是R语言的包,但是它的安装方式与常规的R语言包已经有所区别了。

需要用一下代码来安装

source("http://bioconductor.org/biocLite.R")biocLite()

biocLite(c("GenomicFeatures", "AnnotationDbi"))

也是非常easy的。

现在这个平台上面有1024个包,241个实验数据,917个数据库文件!!!

We are pleased to announce Bioconductor 3.1,

consisting of 1024 software packages,

241 experiment data packages,

and 917 up-to-date annotation packages.

在MOOC上面有很多关于这个的公开课

http://bioconductor.org/help/course-materials/

 

这里面有很多生信方向的分析流程,包括了我之前提到了snp-calling,RNA-seq,CHIP-seq等等,当然最主要的还是芯片数据的处理。

Workflows »

Common Bioconductor workflows include:

这些流程基本上涉及到了现在生物信息学的主流方向,所以基本上掌握了这些包,就是一个合格的生物信息学人才啦!

更重要的是它有着917个数据库文件,里面的信息分门别类,几乎可以算作是生物信息学的百科全书啦!

主要的数据库包括以下。

 

Package Description
AnnotationHub Ensembl, Encode, dbSNP, UCSC data objects
biomaRt Ensembl and other annotations
PSICQUIC Protein interactions
uniprot.ws Protein annotations
KEGGREST KEGG pathways
SRAdb Sequencing experiments.
rtracklayer genome tracks.
GEOquery Array and other data
ArrayExpress Array and other data

 

 

 

 

 

 

 

 

 

 

 

 

 

05

RNA-seq完整学习手册!

需耗时两个月!里面网盘资料如果过期了,请直接联系我1227278128,或者我的群201161227,所有的资源都可以在 http://pan.baidu.com/s/1jIvwRD8 此处找到

搜索可以得到非常多的流程,我这里简单分享一些,我以前搜索到的文献。

 

RNA-seq完整学习手册141

北大也有讲RNA-seq的原理

链接:http://pan.baidu.com/s/1kTmWmv9 密码:6yaz

甚至,我还有个华大的培训课程!!!这可是5天的培训教程哦,好像当初还花了五千多块钱的资料!!!

链接:http://pan.baidu.com/s/1nt5OV5B 密码:gyul

RNA-seq完整学习手册294

优酷也有视频,可以自己搜索看看

RNA-seq完整学习手册312

然后还有几个pipeline,就是生信的分析流程,即使你啥都不会,按照pipeline来也不是问题啦

export PATH=/share/software/bin:$PATH

bowtie2-build ./data/GRCh37_chr21.fa  chr21

tophat -p 1 -G ./data/genes.gtf -o P460.thout chr21 ./data/P460_R1.fq  ./data/P460_R2.fq

tophat -p 1 -G ./data/genes.gtf -o C460.thout chr21 ./data/C460_R1.fq  ./data/C460_R2.fq

cufflinks -p 1 -o P460.clout P460.thout/accepted_hits.bam

cufflinks -p 1 -o C460.clout C460.thout/accepted_hits.bam

samtools  view  -h  P460.thout/accepted_hits.bam  >  P460.thout/accepted_hits.sam

samtools  view  -h  C460.thout/accepted_hits.bam  >  C460.thout/accepted_hits.sam

echo ./P460.clout/transcripts.gtf > assemblies.txt

echo ./C460.clout/transcripts.gtf >> assemblies.txt

cuffmerge -p 1 -g ./data/genes.gtf -s ./data/GRCh37_chr21.fa  assemblies.txt

cuffdiff -p 1 -u merged_asm/merged.gtf  -b ./data/GRCh37_chr21.fa  -L P460,C460 -o P460-C460.diffout P460.thout/accepted_hits.bam C460.thout/accepted_hits.bam

samtools  index  P460.thout/accepted_hits.bam

samtools  index  C460.thout/accepted_hits.bam

 

和另外一个

#!/bin/bash

# Approx 75-80m to complete as a script

cd ~/RNA-seq

ls -l data

 

tophat --help

 

head -n 20 data/2cells_1.fastq

 

time tophat --solexa-quals \

-g 2 \

--library-type fr-unstranded \

-j annotation/Danio_rerio.Zv9.66.spliceSites\

-o tophat/ZV9_2cells \

genome/ZV9 \

data/2cells_1.fastq data/2cells_2.fastq                  # 17m30s

 

time tophat --solexa-quals \

-g 2 \

--library-type fr-unstranded \

-j annotation/Danio_rerio.Zv9.66.spliceSites\

-o tophat/ZV9_6h \

genome/ZV9 \

data/6h_1.fastq data/6h_2.fastq                          # 17m30s

 

samtools index tophat/ZV9_2cells/accepted_hits.bam

samtools index tophat/ZV9_6h/accepted_hits.bam

 

cufflinks --help

time cufflinks  -o cufflinks/ZV9_2cells_gff \

-G annotation/Danio_rerio.Zv9.66.gtf \

-b genome/Danio_rerio.Zv9.66.dna.fa \

-u \

--library-type fr-unstranded \

tophat/ZV9_2cells/accepted_hits.bam                  # 2m

 

 

time cufflinks  -o cufflinks/ZV9_6h_gff \

-G annotation/Danio_rerio.Zv9.66.gtf \

-b genome/Danio_rerio.Zv9.66.dna.fa \

-u \

--library-type fr-unstranded \

tophat/ZV9_6h/accepted_hits.bam                      # 2m

 

# guided assembly

time cufflinks  -o cufflinks/ZV9_2cells \

-g annotation/Danio_rerio.Zv9.66.gtf \

-b genome/Danio_rerio.Zv9.66.dna.fa \

-u \

--library-type fr-unstranded \

tophat/ZV9_2cells/accepted_hits.bam                  # 16m

 

 

time cufflinks  -o cufflinks/ZV9_6h \

-g annotation/Danio_rerio.Zv9.66.gtf \

-b genome/Danio_rerio.Zv9.66.dna.fa \

-u \

--library-type fr-unstranded \

tophat/ZV9_6h/accepted_hits.bam                      # 13m

 

 

time cuffdiff -o cuffdiff/ \

-L ZV9_2cells,ZV9_6h \

-T \

-b genome/Danio_rerio.Zv9.66.dna.fa \

-u \

--library-type fr-unstranded \

annotation/Danio_rerio.Zv9.66.gtf \

tophat/ZV9_2cells/accepted_hits.bam \

tophat/ZV9_6h/accepted_hits.bam                        # 7m

 

head -n 20 cuffdiff/gene_exp.diff

 

sort -t$'\t' -g -k 13 cuffdiff/gene_exp.diff \

> cuffdiff/gene_exp_qval.sorted.diff

 

head -n 20 cuffdiff/gene_exp_qval.sorted.diff

05

国外最出名的R语言大会-useR

这是2014年的会议报告以及ppt,但是好像很多ppt都是需要翻墙才能下载

http://user2014.stat.ucla.edu/#tutorials

Morning Tutorials Monday, 9:15

Room Presenter Title
Palisades Salon A+B Max Kuhn Applied Predictive Modeling in R
Palisades Salon C+F Winston Chang Interactive graphics with ggvis
Palisades Salon D+E Yihui Xie Dynamic Documents with R and knitr [Slides] [Examples]
Hermosa Romain Francois C++ and Rcpp11 for beginners [slides]
Venice Bob Muenchen Managing Data with R
Sproul-Landing building, 3rd floor Matt Dowle Introduction to data.table [Tutorial] [Talk]
Sproul-Landing building, 4th floor Virgilio Gomez Rubio Applied Spatial Data Analysis with R
Sproul-Landing building, 5th floor Martin Morgan Bioconductor

Afternoon Tutorials Monday, 14:00

Room Presenter Title
Palisades Salon A+B Hadley Wickham Data manipulation with dplyr
Palisades Salon C+F Garrett Grolemund Interactive data display with Shiny and R
Palisades Salon D+E Drew Schmidt Programming with Big Data in R
Hermosa S繪ren H繪jsgaard Graphical Models and Bayesian Networks with R
Venice John Nash Nonlinear parameter optimization and modeling in R [slides]
Sproul-Landing building, 3rd floor Dirk Eddelbuettel An Example-Driven Hands-on Introduction to Rcpp [slides]
Sproul-Landing building, 4th floor Ramnath Vaidyanathan Interactive Documents with R
Sproul-Landing building, 5th floor Thomas Petzoldt Simulating differential equation models in R

 

然后2015年的也要开始了,有兴趣的朋友可以June 30 - July 3, 2015
Aalborg, Denmark看看,有很多干货分享!

http://user2015.math.aau.dk/#BN

2015的内容如下