04

用 SHRiMP 来比对color space的数据

无意中接触了AB 5500xl Genetic Analyzer这个测序仪的数据,就是传说中的solid格式,也就是color space的测序数据 ,虽然拿到的测序数据也是fastq格式的, 4行代表一条read,但是第二行已经不是在是碱基序列啦,而是color的编码。Colors may be encoded either as numbers (0=blue, 1=green, 2=orange, 3=red) or as characters A/C/G/T (A=blue, C=green, G=orange, T=red).我们通常称为csfastq格式。
对于这种数据的处理,一般的比对软件是hold 不住的,我查了一下,SHRiMP,sequel和BFAST ,bowtie,是可以处理这种csfastq格式数据的比对的, 我这里简单使用了最出名的SHRiMP 。

Continue reading

04

终于碰到color space的测序数据啦!

看了illumina的测序仪市场份额的确很夸张,像我这样在生信数据分析领域身经百战的老鸟,都是直到今天才碰到color space的测序数据。测序平台是AB 5500xl Genetic Analyzer,就是传说中的solid格式。主要是我在学习一篇关于tp53转录因子结合能力的文章的时候碰到的 ,我查看了下载的数据虽然还是fastq格式,但很诡异,我完全不认识里面的序列。这里总结一下,下面是我的学习过程及思路,有点乱,大家随便看看!

首先:测序仪给的数据应该是 (.csfasta & .qual) 这两个后缀名的文件
然后,可以用脚本把数据转为csfastq格式, 与普通fastq数据格式是没有区别,但是里面包含的不是序列,是color的编码。
其次,color space不允许转为base space数据!!!
最后,之所以转为csfastq格式,是为了适应很多软件,fastqc,cutadap,SHRiMP,sequel和BFAST ,bowtie等等

Continue reading

12

转录组 de novo流程–包括转录本完整注释

有网友咨询过对于没有参考基因组或者转录组的物种,如何做RNA-seq分析。我觉得这个问题太大了,而且我还真的对这个没有经验。但是我以前看到过一篇文献,里面提到过一个非常全面的转录组 de novo组装注释流程,所以我摘抄了文章里面的生物信息学处理部分,分享给大家: Continue reading

08

基因组标准注释文件-Gencode数据库

Gencode数据库是ENCODE计划的衍生品,也是由大名鼎鼎的sanger研究所负责整理和维护,主要记录了基因组的功能注释,比如基因组每条染色体上面有哪些编码蛋白的基因,哪些假基因,哪些lncRNA的基因,它们坐标是什么,基因上面的外显子内含子坐标是什么,UTR区域坐标是什么?我以前通常是在EBI的ENSEMBL的FTP服务器下载,后来才发现了这个Gencode数据库,现在以这个为金标准啦!

Continue reading

07

使用CEAS软件来对CHIP-seq的peaks进行

哈佛刘小乐实验室出品的软件,可以跟MACS软件call到的peaks文件无缝连接,实现peaks的注释以及可视化分析
该软件的主页里面很清楚的介绍了它可以做的图,以及每个图的意义:http://liulab.dfci.harvard.edu/CEAS/usermanual.html
我这里简单讲一下该软件如何安装以及使用,我这里还是使用我们的CHIP-seq分析系列教程的测试数据。

Continue reading

07

用网页版工具GREAT来对CHIP-seq的peaks进行下游功能分析

一般做完一个CHIP-seq测序,如果实验设计没有问题,测序质量也OK的话,很容易了根据序列call到符合要求的peaks,或者可以去很多文章或者roadmap里面下载到非常多有意义的peaks文件, 一般是BED格式文件,这是就需要对这些peaks进行各种各样的注释以及可视化了,还有根据peaks相关的基因可以做各种各样的下游分析,包括各种pathway数据库的富集,MsigDB数据库注释,gene ontology的注释等等,此时不得不强烈推荐一款网页版工具,是斯坦福大学的学者开发的GREAT。
此工具的出现主要是为了解决基因组上面的非编码区域注释缺乏的问题,而我们CHIP-seq实验得到的peaks结果通常就是在非编码区域
该工具每次只能上传一个文件,就是我们call出来的peaks记录文件,支持bed格式的:

Continue reading

07

用网页版工具ChIPseek来可视化CHIP-seq的peaks结果

一般做完一个CHIP-seq测序,如果实验设计没有问题,测序质量也OK的话,很容易了根据序列call到符合要求的peaks,或者可以去很多文章或者roadmap里面下载到非常多有意义的peaks文件, 一般是BED格式文件,这是就需要对这些peaks进行各种各样的注释以及可视化了,此时不得不强烈推荐一款网页版工具,是台湾学者开发的ChIPseek:

Continue reading

05

用R包BayesPeak来对CHIP-seq数据call peaks

BayesPeak也是peaks caller家族一员,用的人也不少,我这次也试了一下,因为是R的bioconductor系列包,所以直接在R里面安装就好,但是有几个点需要注意,我比对的基因组不只是Chr1~22,X,Y,M,还有一些contig和scaffold,需要在bam文件里面去除的,而且BayesPeak比较支持读取BED文件,可以直接转为GRanges对象,虽然它号称可以使用多核,但是计算速度还是非常慢。 Continue reading

05

用PeakRanger软件来对CHIP-seq数据call peaks

此文专门讲这个软件如何用,但是跟我以前写的软件说明书又不大一样,主要是因为我用MACS2这个软件call peaks并没有达到预期的结果,所以就多使用了几个软件,其中PeakRanger尤其值得一提,安装特别简单,而且处理数据的速度特别快,结果也非常容易理解,更重要的是它给出一个网页版的报告,里面有所有找到的符合要求的peaks的可视化图片!!!! Continue reading

04

linux服务器管理–防火墙设置命令iptables

如果我们想新开一个端口给别人访问,我们就需要设置防火墙,比如我想开3838端口给shiny程序使用,下面我重点讲解这个实例,其余开放端口,关闭端口大家继续学习就好。
如果你使用的是ssh远程,而又不能直接操作本机,那么建议你慎重,慎重,再慎重!(一旦你把22端口给搞死了,你就无法登陆你的服务器了!!!)
04

linux服务器管理–系统服务设置命令systemctl

因为买过一个超算云服务器,所以前面我讲过Ubuntu服务器管理系列知识,正好最近要搞了个阿里云,用来做shiny服务器,发现服务器管理居然进化了好多,以前的知识都过时了,再记录一笔吧,真的是学习如逆水行舟,不进则退呀!

我的阿里云服务器版本是CentOS 6.5.,属于(RedHat 7, Ubuntu 15.04+, SLES 12+)  系列,是目前最新版本的服务器管理,所以大家重点是记住这个systemctl 即可:

Continue reading

04

R的shiny 服务器管理-入门

如果你已经安装好了shiny 服务器,(安装教程)要开始使用了,掌握一些基础知识是必须的。这里我简单学习了一些入门资料,分享给大家,慢慢的我会写一个进阶资料。安装成功之后,系统会增加4个目录,是一定要掌握的:

1、这个目录只存放关键配置文件:/etc/shiny-server/shiny-server.conf   初始状态只有一个文件,记录着非常多的默认信息,默认的网站目录是根目录下的srv的shiny-server目录,端口是3838
2、网站运行log日子存放:/var/log/shiny-server  初始状态下该目录为空
3、程序存放目录是:/srv/shiny-server 初始状态,有一个测试程序:
4、最后是/opt/shiny-server/ 目录,这里面也有一个配置文件:/opt/shiny-server/config/default.config

Continue reading

04

安装自己的shiny服务器-实战指南

个人比较欣赏R shiny制作的网页,入门简单,上手极快,多看点例子,制作复杂逻辑的网页也不是问题。这篇实战指南有四个步骤:

至少需要root权限的linux系统  (我测试了阿里云)
安装R   (一般安装最新版,)
在R中安装shiny模块   (一般还可以多安装一些模块)
下载并且安装shiny server安装包    (根据系统选择)

Continue reading

23

读书笔记(R语言)

R与ASReml-R统计分析教程(林元震)中国林业出版社

1-3章简单介绍了R的基本语法,然后第4章着重讲了各种统计方法,第5章讲R的绘图,最后一张讲ASReml-R这个包
语法重点:

1,install.packages(),library(),help(),example(),demo(),length(),attribute(),class(),mode(),dim(),names(),str(),head(),
tail()

2,rep,seq,paste,array,matrix,data.frame,list,c(),factor(),

3,缺失值处理(na.omit,na.rm=T),类型转换(as.numeric(),as.character(),as.factor(),as.logical())

Continue reading

16

假基因资源中心

假基因是原来的能翻译成蛋白的基因经过各种突变导致丧失功能的基因。
比如
PTEN-->PTENP1
KRAS-->KRASP1
NANOG-->NANOGP1
很好理解,一般来说看到结尾是P1,等字眼的都是假基因,现在共有一万多假基因,我一般以http://www.genenames.org/cgi-bin/statistics (人类基因命名委员会)为标准参考。
研究的时候可能需要更全面一点,所以我又谷歌了一下,发现了一个还算比较全面的收集。
就是 http://pseudogene.org/Human/  (中心网站)
现在主要是 ENCODE计划的GENCODE 21. 和 耶鲁大学的Ensembl genome release 79.
Human Pseudogene Annotation

GENCODE Annotation

- Data: The current human pseudogene annotation is in GENCODE 21. .

- Description: The GENCODE annotation of pseudogenes contains models that have been created by the Human and Vertebrate Analysis and Annotation (HAVANA) team, an expert manual annotation team at the Wellcome Trust Sanger Institute. This is informed by, and checked against, computational pseudogene predictions by thePseudoPipe and RetroFinder pipelines.

PseudoPipe Output

- Data: The current PseudoPipe results are on Ensembl genome release 79. .

- Description: Genome-wide human pseudogene annotation predicted by PseudoPipe. PseudoPipe is a homology-based computational pipeline that searches a mammalian genome and identifies pseudogene sequences.

- Reference:

Other Human Pseudogene Sets

- Data: .

- Description: Archived pseudogene annotation on previous human genome releases from PseudoPipe. Genome-wide annotation or specific subset.

06

用SomaticSignatures包来解析maf突变数据获得mutation signature

mutation signature这个概念提出来还不久,我看了看文献,最早见于2013年的一篇nature文章,主要是用来描述癌症患者的somatic mutation情况的。

首先要自己分析癌症样本数据,拿到somatic mutation,TCGA计划发展到现在已经有非常多的somatic mutation结果啦,大家可以自行选择感兴趣的癌症数据拿来研究,解析一下mutation signature 。

我这里给大家推荐一个工具,是R语言的Bioconductor系列包中的一个,SomaticSignatures

其实它的说明书写的非常详细了已经,如果你理解了mutation signature的概念,很容易用那个包,其实你自己写一个脚本也是非常任意的,就是根据mutation的位置在基因组中找到它的前后一个碱基,然后组成三碱基突变模式,最后统计一下那96种突变模式的分布状况!

我这里简单讲一讲这个包如何用吧!

首先下载并加载几个必须的包:

library(SomaticSignatures)  ## 程序
library(SomaticCancerAlterations) ## 自带测试数据
library(BSgenome.Hsapiens.1000genomes.hs37d5)  ## 我们的参考基因组
library(VariantAnnotation)
## 这个对象很重要: GRanges class of the GenomicRanges package
##其中SomaticCancerAlterations这个包提供了测试数据,来自于8个不同癌症的外显子测序的项目。
sca_metadata = scaMetadata()
###可以查看关于这8个项目的介绍,每个项目都测了好几百个样本。但是我们只关心突变数据,而且只关心somatic的突变数据。
sca_data = unlist(scaLoadDatasets())

然后根据突变数据做好一个GRanges对象,这个可以看我以前的博客

sca_data$study = factor(gsub("(.*)_(.*)", "\\1", toupper(names(sca_data))))
sca_data = unname(subset(sca_data, Variant_Type %in% "SNP"))
sca_data = keepSeqlevels(sca_data, hsAutosomes())
## 这个对象就是我们软件的输入数据
sca_vr = VRanges(
    seqnames = seqnames(sca_data),
    ranges = ranges(sca_data),
    ref = sca_data$Reference_Allele,
    alt = sca_data$Tumor_Seq_Allele2,
    sampleNames = sca_data$Patient_ID,
    seqinfo = seqinfo(sca_data),
    study = sca_data$study
)
## 这里还可以直接用readVcf或者readMutect 来读取本地somatic mutation文件
## 提取突变数据,并且构造成一个Range对象。
sca_vr
###可以简单看看每个study都有多少somatic mutation
sort(table(sca_vr$study), decreasing = TRUE)
    LUAD   SKCM   HNSC   LUSC   KIRC    GBM   THCA     OV
   208724 200589  67125  61485  24158  19938   6716   5872
##用mutationContext函数来根据Range对象和下载好的参考基因组文件来获取突变的上下文信息。
sca_motifs = mutationContext(sca_vr, BSgenome.Hsapiens.1000genomes.hs37d5)
head(sca_motifs)
##可以看到Range对象,增加了两列:alteration        context
## 接下来根据做好的上下文突变数据矩阵来构建 the matrix MM of the form {motifs × studies}
sca_mm = motifMatrix(sca_motifs, group = "study", normalize = TRUE)
## 根据96种突变的频率,而不是次数来构造矩阵
head(round(sca_mm, 4))
## 然后直接画出每个study的Mutation spectrum 图
plotMutationSpectrum(sca_motifs, "study")
 mutation spectrum
## 还要把spectrum分解成signature!!
## 这个包提供了两种方法,分别是NMF和PCA
n_sigs = 5
sigs_nmf = identifySignatures(sca_mm, n_sigs, nmfDecomposition)
sigs_pca = identifySignatures(sca_mm, n_sigs, pcaDecomposition)
##还提供了很多函数来探索:signatures, samples, observed and fitted.
需要我们掌握的是assessNumberSignatures,用来探索我们到底应该把spectrum分成多少个signature
n_sigs = 2:8
gof_nmf = assessNumberSignatures(sca_mm, n_sigs, nReplicates = 5)
gof_pca = assessNumberSignatures(sca_mm, n_sigs, pcaDecomposition)
plotNumberSignatures(gof_nmf) ## 可视化展现
## 接下来可视化展现具体每个cancer type里面的各个个体在各个signature的占比
library(ggplot2)
plotSignatureMap(sigs_nmf) + ggtitle("Somatic Signatures: NMF - Heatmap")
plotSignatures(sigs_nmf) + ggtitle("Somatic Signatures: NMF - Barchart")
plotObservedSpectrum(sigs_nmf)
plotFittedSpectrum(sigs_nmf)
plotSampleMap(sigs_nmf)
plotSamples(sigs_nmf)
同理,PCA的结果也可以同样的可视化展现:
plotSignatureMap(sigs_pca) + ggtitle("Somatic Signatures: PCA - Heatmap")
plotSignatures(sigs_pca) + ggtitle("Somatic Signatures: PCA - Barchart")
plotFittedSpectrum(sigs_pca)
plotObservedSpectrum(sigs_pca)
mutation signature NMF
值得一提的是,所有的plot系列函数,都是基于ggplot的,所以可以继续深度定制化绘图细节。
p = plotSamples(sigs_nmf)
## (re)move the legend
p = p + theme(legend.position = "none")
## (re)label the axis
p = p + xlab("Studies")
## add a title
p = p + ggtitle("Somatic Signatures in TGCA WES Data")
## change the color scale
p = p + scale_fill_brewer(palette = "Blues")
## decrease the size of x-axis labels
p = p + theme(axis.text.x = element_text(size = 9))
###当然,对上下文突变数据矩阵也可以进行聚类分析
clu_motif = clusterSpectrum(sca_mm, "motif")
library(ggdendro)
p = ggdendrogram(clu_motif, rotate = TRUE)
p
## 最后,由于我们综合了8个不同的study,所以必然会有批次影响,如果可以,也需要去除。
05

华大soap系列的比对软件

也不知道是什么原因,对国产软件总是提不起兴趣,所以尽管SOAP系列都已经发展到了十几个软件了,我依然没有去试用一下。

软件下载:
官网直接找到:http://soap.genomics.org.cn/
SOAPaligner/soap2 is a member of the SOAP (Short Oligonucleotide Analysis Package).
很久以前,大家说soap其实指的是类似于bwa这样的比对工具,但是后来这个工具箱丰富了,所以我们现在如果只看比对工具,要看的是SOAPaligner
我是linux系统,用wget下载:wget http://soap.genomics.org.cn/down/soap2.21release.tar.gz
解压,由于下载是可执行程序,就不需要安装啦!
1
安装之后把该软件添加到环境变量!
输入数据:
这里选择两个网络上的测试数据:
如果是真想用这个软件的话,需要参考基因组和测序数据,这个链接貌似已经年久失修啦~!
# download a test reference genome (TAIR9 Chromosome 1)
wget 
http://biocluster.ucr.edu/~tbackman/query.fastq 
# download some test Illumina reads from Arabidopsis

运行命令:

2bwt-builder genome.fasta
   # create binary of reference genome
soap -a query.fastq -D genome.fasta.index -o output.soap
   # align query to genome and store output

结果解读:

由于测试数据没有下载下来,我安装了软件就懒得玩了,其实正经的来讲,应该写一个详细的测评,包括软件运行速度,比对准确率,等等,不过那样做就是发paper的节奏了,我随便玩玩,就算啦。
不过soap是一直在更新的,所以我相信他比对的结果,肯定是sam格式的。
所以结果就不用解读啦!
05

很老的比对软件maq

MAQ在2008年还是蛮火的,但是现在基本都是BWA和bowtie的天下了。
就当怀念一下它吧,给它写一个教程!
软件下载:
官网直接找到:http://maq.sourceforge.net/
解压,很容易观察到是C++源码,所以用源码安装三部曲来安装
tar jxvf software.tar.bz2
cd software
./configure --prefix=$path
make
make test
安装之后把该软件添加到环境变量!
输入数据:
这里选择两个网络上的测试数据:
如果是真想用这个软件的话,需要参考基因组和测序数据,这个链接貌似已经年久失修啦~!
# download a test reference genome (TAIR9 Chromosome 1)
wget 
http://biocluster.ucr.edu/~tbackman/query.fastq 
# download some test Illumina reads from Arabidopsis

运行命令:

maq # inspect command line options
maq fasta2bfa genome.fasta genome.bfa
   # create binary of reference genome
maq fastq2bfq query.fastq readBinary.bfq
   # create a binary of dataset
maq match out.map genome.bfa readBinary.bfq
# align query to genome and store output

结果解读:

我在想,这个MAQ软件发明之前,好像还没有SAM文件格式的定义,那么它的结果out.map肯定不是sam格式的。
哈哈,这个软件我无法安装,换了好几系统也没成功,如果是太老了,很多库文件却是。
我也懒得去解决了。
这种报错,对我这样的非计算机专业来说,简直是天书!
1
05

用samr包对芯片数据做差异分析

本来搞差异分析的工具和包就一大堆了,而且limma那个包已经非常完善了,我是不准备再讲这个的,正好有个同学问了一下这个包,我就随手测试了一下,顺便看看它跟limma有什么差异没有!手痒了就记录了测试流程!

学习一个包其实非常简单,就是找到包的官网看看说明书即可!说明书链接

 

Continue reading

05

用GEMINI来探索vcf格式的突变数据

第一次听说这个软件,是一个香港朋友推荐的:http://davetang.org/muse/2016/01/13/getting-started-with-gemini/ 他写的很棒,但是我当初以为是一个类似于SQLite的数据库浏览模式,所以没在意。实际上,我现在仍然觉得这个软件没什么用!

软件官网有详细的介绍:https://gemini.readthedocs.io/en/latest/

而且提供丰富的教程:

We recommend that you follow these tutorials in order, as they introduce concepts that build upon one another.

  • Introduction to GEMINI, basic variant querying and data exploration. html pdf
  • Identifying de novo mutations underlying Mendelian disease html pdf
  • Identifying autosomal recessive variants underlying Mendelian disease html pdf
  • Identifying autosomal dominant variants underlying Mendelian disease html pdf
  • Other GEMINI tools html pdf

软件本身并不提供注释,虽然它的功能的确包括注释,号称可以利用(ENCODE tracks, UCSC tracks, OMIM, dbSNP, KEGG, and HPRD.)对你的突变位点注释,比如你输入1       861389  .       C       T       ,它告诉你这个突变发生在哪个基因,对蛋白改变如何?是否会产生某些疾病?

虽然它本身没有注释功能,但是它会调用snpEFF或者VEP进行注释,你需要自己先学习它们。

1

软件安装:

GEMINI是用python写的,有一个小脚本可以自动完成安装过程:

7.3K May  4 14:44 gemini_install.py

下载这个脚本,然后安装即可

wget https://github.com/arq5x/gemini/raw/master/gemini/scripts/gemini_install.py

python gemini_install.py $tools $data

PATH=$tools/bin:$data/anaconda/bin:$PATH

where $tools and $data are paths writable on your system.

我把$tools用的就是当前文件夹,$data也是当前文件夹下面的gemini文件夹。

这样就会在当前文件夹下面生成两个文件夹,bin是存储程序,gemini是存储数据用的,而且注意要把bin目录的全路径添加到环境变量!

输入数据:

我们可以直接下载软件作者提供的测试数据

首先是22号染色体的所有突变位点经过WEP注释的文件

然后是一个三口直接的突变ped格式数据

数据存放在亚马逊云,所有的教程pdf也在

http://s3.amazonaws.com/gemini-tutorials

如果是你自己的vcf文件,需要自己用VEP注释一下

1

运行命令:

2

结果解读:

产生是chr22.db就是一个数据库格式的文件,但是需要用gemini 来进行查询,个人认为,并没有多大意思!

你只要熟悉mySQL等SQL语言,完全可以自己来!