06

用cutadapt软件来对双端测序数据去除接头

一般来讲,我们对测序数据进行QC,就三个大的方向:Quality trimming, Adapter removal, Contaminant filtering,当我们是双端测序数据的时候,去除接头时,也会丢掉太短的reads,就容易导致左右两端测序文件reads数量不平衡,有一个比较好的软件能解决这个问题,我比较喜欢的是cutadapt软件的PE模式来去除接头!尤其是做基因组或者转录组de novo 组装的时候,尤其要去掉接头,去的干干净净!
cutadapt是经典的python软件,但是因为我的linux服务器有点问题 ,可能是root权限问题,没有用pip install cutadapt 安装成功,我懒得搞这些了,其实可以自己去下载cutadapt的源码,然后进入源码文件夹里面 python setup.py install --user 到自己的 ~/.local/bin下面。
所以我用conda安装了cutadapt软件,http://www.bio-info-trainee.com/1906.html 所以我需要 python ~/miniconda2/pkgs/cutadapt-1.10-py27_0/bin/cutadapt --help 才能调用这个软件,不过,问题不大,我也就是试用一下。 Continue reading

06

用sickle软件来对双端测序数据过滤低质量reads

一般来讲,我们对测序数据进行QC,就三个大的方向:Quality trimming, Adapter removal, Contaminant filtering,当我们是双端测序数据的时候,去除低质量的reads就容易导致左右两端测序文件不平衡,有一个比较好的软件能解决这个问题,而且软件使用非常简单! Continue reading

05

大型基因组拼装的乐高软件之MaSuRCA assembler使用指南

本文转载自 生信技能树 论坛特约作者MintMaSuRCA assembler 软件指导书,非常符合我博客的风格,也正式开启了我博客的转载之路。(前面的近400篇文章都是本人原创,手打,但是精力有限,以后文章更新频率会大大降低,但是会引入不少 技能树论坛特约作者的 好文!) Continue reading

05

用Miniconda,Bioconda来安装常见的生物信息学软件

这是生信技能树论坛的朋友推荐的,我试用了一下,的确非常方便~
生信最基础的基本功便是常用软件的安装和配置,但是不是所有软件都可以直接使用的[比如 annovar 等]。除了安装编译,有些软件所需环境的配置同样令人头疼。会不断报错提醒你那些东西没有安装。
    bioconda里面几乎涵盖了引用率较高的,好用的工具的打包资源,一键式安装,并且各自依赖的环境相互分隔,每次使用source activate env_name 来激活。使用source deactivate 来退出。具体软件列表见:https://anaconda.org/bioconda/repo 但是列表不支持搜索,可以去它的github里面去搜索  https://bioconda.github.io/
    而且不需要root权限也可以安装软件。

Continue reading

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

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

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语言,完全可以自己来!

05

用VEP对vcf格式的突变数据进行注释

VEP是国际三大数据库之一的ENSEMBL提供的,也是非常主流和方便,但它是基于perl语言的,所以在模块方面可能会有点烦人。跟snpEFF一样,也是对遗传变异信息提供更具体的注释,而不仅仅是基于位点区域和基因。如果你熟悉外显子联盟这个数据库EXAC(ExAC.r0.3.sites.vep.vcf.gz),你可以下载它所有的突变记录数据,看看它对每个变异位点到底注释了些什么,它就是典型的用VEP来注释的。 Continue reading

05

用snpEFF对vcf格式的突变数据进行注释

这个软件比较重要,尤其是对做遗传变异相关研究的,很多人做完了snp-calling后喜欢用ANNOVAR来进行注释,但是那个注释还是相对比较简单,只能得到该突变位点在基因的哪个区域,那个基因这样的信息,如果想了解更具体一点,就需要更加功能化的软件了,snpEFF就是其中的佼佼者,而且是java平台软件,非常容易使用!而且它的手册写的非常详细:http://snpeff.sourceforge.net/SnpEff_manual.html Continue reading

23

用oligo包来读取affymetix的基因表达芯片数据-CEL格式数据

前面讲到affy处理的芯片平台是有限的,一般是hgu 95系列和133系列,[HuGene-1_1-st] Affymetrix Human Gene 1.1 ST Array这个平台虽然也是affymetrix公司的,但是affy包就无法处理 了,这时候就需要oligo包了!

oligo包是R语言的bioconductor系列包的一个,就一个功能,读取affymetix的基因表达芯片数据-CEL格式数据,处理成表达矩阵!!!

Continue reading

23

用affy包读取affymetix的基因表达芯片数据-CEL格式数据

Affymetrix的探针(proble)一般是长为25碱基的寡聚核苷酸;探针总是以perfect match 和mismatch成对出现,其信号值称为PM和MM,成对的perfect match 和mismatch有一个共同的affyID。
CEL文件:信号值和定位信息。
CDF文件:探针对在芯片上的定位信息

affy包是R语言的bioconductor系列包的一个,就一个功能,读取affymetix的基因表达芯片数据-CEL格式数据,处理成表达矩阵!!!

Continue reading