21

Linux服务器基础知识

想了想,既然是菜鸟教程,那就索性再介绍点更基础的东西,基本上只要是大学毕业的都能看懂,不需要懂计算机了。首先讲讲linux服务器吧,因为生物信息也算是半个大数据分析,所以我们平常的办公电脑一般都是不能满足需求的,大部分实验室及公司都会自己配置好服务器给菜鸟们用,菜鸟们首先要拿到服务器的IP和高手给你的用户名和密码。

一般我们讲服务器,大多是linux系统,而我这里所讲的linux系统呢,特指ubuntu,其余的我懒得管了,大家也不要耗费无谓的时间纠结那些名词的不同!

登录到服务器有两种方法,一种是ssh,传输你的命令给服务器执行,另一种是ftp,和服务器交换文件。而ssh我们通常用putty,xshell等等。ftp呢,我们可以用winscp,xshell,所以我一直都用xshell,因为它两者都能搞定!

Xshell软件自行搜索下载,打开之后新建一个连接,然后登陆即可。

Linux服务器基础知识405

然后输入以下命令,可以查看服务器配置,包括cpu。内存,还有硬盘

cat /proc/cpuinfo |grep pro|wc -l

free -g

df -h

Linux服务器基础知识488

 

这个服务器配置好一点,有80个cpu,内存256G,硬盘有2个11T的,是比较成熟的配置。

Linux服务器基础知识536

 

这个是一个小型服务器。也就24个核,64G的内存,但是存储量有点小呀,其实可以随便花几百块钱买个1T的硬盘挂载上去的。

然后linux的其它命令大家就得自己去搜索一个个使用,然后熟悉,记牢,然后创新啦!

我随便敲几个我常用的吧: ls cd mkdir rm cp cat head tail more less diff grep awk sed grep perl 等等!

呀,突然间发现我才介绍了ssh的方法登陆服务器并且发送命令在服务器上面运行,下面贴图如何传输文件。一般xshell的菜单里面有绿的文件夹形式的标签就是打开ftp文件传输,这种可视化的软件,大家慢慢摸索吧!

Linux服务器基础知识830

 

 

 

 

20

自己动手写bowtie第一讲:BWT算法详解并建立索引

首先,什么是BWT,可以参考博客

http://www.cnblogs.com/xudong-bupt/p/3763814.html

他讲的非常好。

一个长度为n的串A1A2A3...An经过旋转可以得到

A1A2A3...An

A2A3...AnA1

A3...AnA1A2

...

AnA1A2A3...

n个串,每个字符串的长度都是n。

对这些字符串进行排序,这样它们之前的顺序就被打乱了,打乱的那个顺序就是index,需要输出。

首先我们测试一个简单的字符串acaacg$,总共六个字符,加上一个$符号,下次再讲$符号的意义。

BWT算法详解之一建立索引348

实现以上功能是比较简单的,代码如下

BWT算法详解之一建立索引563

但是这是对于6个字符串等小片段字符串,如果是是几千万个字符的字符串,这样转换就会输出千万的平方个字符串组成的正方形数组,是很恐怖的数据量。所以在转换的同时就不能把整个千万字符储存在内存里面。

在生物学领域,是这样的,这千万个 千万个碱基的方阵,我们取每个字符串的前20个字符串就足以对它们进行排序,当然这只是近视的,我后面会讲精确排序,而且绕过内存的方法。

Perl程序如下

[perl]

while (<>){

next if />/;

chomp;

$a.=$_;

}

$a.='$';

$len=length $a;

$i=0;

print "first we transform it !!!\n";

foreach (0..$len-1){

$up=substr($a,0,$_);

$down=substr($a,$_);

#print "$down$up\n";

#$hash{"$down$up"}=$i;

$key=substr("$down$up",0,20);

$key=$key.”\t”.substr("$down$up",$len-1);

$hash{$key}=$i;

$i++;

}

print "then we sort it\n";

foreach  (sort keys  %hash){

$first=substr($_,0,1);

$len=length;

$last=substr($_,$len-1,1);

#print "$first\t$last\t$hash{$_}\n";

print "$_\t$hash{$_}\n";

}

[/perl]

运行的结果如下

BWT算法详解之一建立索引1289

个人觉得这样排序是极好的,但是暂时还没想到如何解决不够精确的问题!!!

参考:

http://tieba.baidu.com/p/1504205984

http://www.cnblogs.com/xudong-bupt/p/3763814.html

 

20

bowtie简单使用

首先进入bowtie的主页,千万要谷歌!!!

http://bowtie-bio.sourceforge.net/bowtie2/index.shtml

image001

主页里面有下载链接,也有索引文件,当然索引文件只有人类等模式生物

下载之后是个压缩包,解压即可使用

image003

可以看到绿色的就是命令,可以添加到环境变量使用,也可以直接用全路径使用它!!!

然后example文件夹里面有所有的测试文件。

二、准备数据

我们就用软件自带的测试数据

image005

三、运行命令

分为两步,首先索引,然后比对!!!

  • 索引,bowtie2-build your-fastq-file.fa your-index-name

image008

然后你的目录就产生了六个索引文件,我给索引取名是tmp,你们可以随便取名字

  • 然后比对,分两种,一是单端测序数据,二是双端数据

重点参数的-x 和 –S ,单端是-U 双端是-1 -2

Bowtie –x tmp –U reads.fa –S hahahhha.sam

Bowtie –x tmp -1 reads1.fa -2 reads2.fa –S hahahha.sam

四:输出文件解读

就是输出了sam文件咯,这个就看我的sam文件格式讲解哈

 

 

20

perl实现二分法查找

perl实现二分法查找

在perl里面字符串跟数字是不区分的,所以写代码需要考虑到它们的区别!

首先是对数字查找来说,所有的操作符都是 < ,> ,==等等

@a=1..1000;
$b=56; #just a example
sub half_search{
 my($ref,$key,$low,$high)=@_;
 $high=@{$ref}-1 unless $high;
 if ($key < $ref->[$low] or $key > $ref->[$high]){
 print "not exists !!!\n";
 last;
 }
 if ($ref->[$low] > $ref->[$high]){
 print "not sort array !!!\n" ;
 last;
 }
 $mid=int (($low+$high)/2);
 if ($ref->[$mid] == $key) { 
 return $mid+1;
 }
 elsif ($ref->[$mid] < $key) {
 &half_search($ref,$key,$mid+1,$high);
 }
 else{
 &half_search($ref,$key,$low,$mid-1);
 }
}
print &half_search(\@a,$b);

对排序好的数字数组来说,是非常简单的,非常快速。

接下来是字符串数组的查找。

@a=qw(a b c d e f g h );
$b='d';
sub half_search{
 my($ref,$key,$low,$high)=@_;
 $high=@{$ref}-1 unless $high;
 if ($key lt $ref->[$low] or $key gt $ref->[$high]){
 print "not exists !!!\n";
 last;
 }
 if ($ref->[$low] gt $ref->[$high]){
 print "not sort array !!!\n" ;
 last;
 }
 $mid=int (($low+$high)/2);
 if ($ref->[$mid] eq $key) { 
 return $mid+1;
 }
 elsif ($ref->[$mid] gt $key) {
 &half_search($ref,$key,$mid+1,$high);
 }
 else{
 &half_search($ref,$key,$low,$mid-1);
 }
}
print &half_search(\@a,$b);

本人亲测可用,就不贴图啦!

19

个人网站的计划

转录组方向:

数据来源是NCBI里面的一个文献

网站的计划32

其中转录组方向的那些软件流程大多已经跑完了,大家可以见我的转录组总结。

trinity,tophat,cufflinks,RseQC,RNAseq,GOseq,MISO,RSEM,khmer,screed,trimmomatic,transDecoder,vast-tools,picard-tools,htseq,cuffdiff,edgeR,DEseq,funnet,davidgo,wego,kobas,KEGG,Amigo,go

 

基因组方向:

数据来源是strawberry草莓的文献

网站的计划282

velvet,SOAPdenovo2,repeatmasker,repeatscount,piler,

Chip-seq方向:

网站的计划348

这个群里有高手说要跟我合作,他来帮我写,希望是真的!

免疫组库方向:

网站的计划385

这个其实没有成熟软件,也就是一个igblastn, 然后是IMGT数据库,但是是我主打的产品,所以我会详细介绍一下。

全外显子组方向:

网站的计划455

这方面我不是很懂,。好像主要就是snp-calling

Snp-calling方向:

这个我准备自己写软件,不仅仅是用别人的软,它的数据本身也是前面几个方向的数据

bwa,bowtie,samtools,GATK,VarScan.jar,annovar

进化方向:

数据就是基因组数据

orthMCL,inparanoid, clustw,muscle,MAFFT,quickparanoid,blast2go,RAxML,phyML

 

 

19

Linux基础之shell脚本的批处理

脚本类似于下面的样子,大家可以读懂之后就仿写

for i in *sra

do

echo $i

/home/jmzeng/bio-soft/sratoolkit.2.3.5-2-ubuntu64/bin/fastq-dump --split-3 $i

Done

这个脚本是把当前目录下所有的NCBI下载的sra文件都加压开来成测序fastq格式文件

有这些数据,分布在不同的目录,如果是写命令一个个文件处理,很麻烦,如果有几百个那就更麻烦了,所以需要用shell脚本

Linux基础之shell脚本的批处理254

这样只需要bash这个脚本即可一次性处理所有的数据

Linux基础之shell脚本的批处理282

还有很多类似的脚本,非常简单的

for i in *fq

do

echo $i

bowtie2 -p 13 -x ../../RNA.fa -U $i -S  $i.sam

done

 

for i in */accepted_hits.bam

do

echo $i

out=`echo $i |cut -d'/' -f 1`_clout

samtools mpileup -guSDf  /home/immune/refer_genome/hg19/hg19.fa $i  | bcftools view -cvNg - >snp-vcf/$out.vcf

done

 

 

while read id

do

echo $id

out=`echo $id |cut -d'/' -f 2`

reads=`echo $id |cut -d'/' -f 3|sed 's/\r//g'`

tophat2 -p 13 -o $out /home/immune/refer_genome/hg19/hg19 $reads

done <$1

 

等等

19

转录组总结

网站成立也快一个月了,总算是完全搞定了生信领域的一个方向,当然,只是在菜鸟层面上的搞定,还有很多深层次的应用及挖掘,仅仅是我所讲解的这些软件也有多如羊毛的参数可以变幻,复杂的很。其实我最擅长的并不是转录组,但是因为一些特殊的原因,我恰好做了三个转录组项目,所以手头上关于它的资料比较多,就分享给大家啦!稍后我会列一个网站更新计划,就好谈到我所擅长的基因组及免疫组库。我这里简单对转录组做一个总结:

首先当然是我的转录组分类网站啦

转录组总结317

http://www.bio-info-trainee.com/?cat=18

 

 

同样的我用脚本总结一下给大家

转录组总结335

 

http://www.bio-info-trainee.com/?p=370阅读更多关于《转录组-GO和KEGG富集的R包clusterProfiler》

http://www.bio-info-trainee.com/?p=359阅读更多关于《转录组-GO通路富集-WEGO网站使用》

http://www.bio-info-trainee.com/?p=346阅读更多关于《转录组-TransDecoder-对trinity结果进行注释》

http://www.bio-info-trainee.com/?p=271阅读更多关于《转录组cummeRbund操作笔记》

http://www.bio-info-trainee.com/?p=255阅读更多关于《转录组edgeR分析差异基因》

http://www.bio-info-trainee.com/?p=244阅读更多关于《转录组HTseq对基因表达量进行计数》

http://www.bio-info-trainee.com/?p=166阅读更多关于《转录组cufflinks套装的使用》

http://www.bio-info-trainee.com/?p=156阅读更多关于《转录组比对软件tophat的使用》

http://www.bio-info-trainee.com/?p=125阅读更多关于《Trinity进行转录组组装的使用说明》

http://www.bio-info-trainee.com/?p=113阅读更多关于《RSeQC对 RNA-seq数据质控》

同时我也讲了如何下载数据

http://www.bio-info-trainee.com/?p=32

转录组总结1058

 

原始SRA数据首先用SRAtoolkit数据解压,然后进行过滤,评估质量,然后trinity组装,然后对组装好的进行注释,然后走另一条路进行差异基因,差异基因有tophat+cufflinks+cummeRbund,也有HTseq 和edgeR等等,然后是GO和KEGG通路注释,等等。

在我的群里面共享了所有的代码及帖子内容,欢迎加群201161227,生信菜鸟团!

http://www.bio-info-trainee.com/?p=1

线下交流-生物信息学
同时欢迎下载使用我的手机安卓APP

http://www.cutt.com/app/down/840375

19

转录组-GO和KEGG富集的R包clusterProfiler

PS: 请不要在问我关于这个包的任何问题,直接联系Y叔,我就两年前用过一次而已,再也没有用过。

Y叔的包更新太频繁了,这个教程已经作废,请不要再照抄了,可以去我们论坛看新的教程:http://www.biotrainee.com/thread-1084-1-1.html

一:下载安装该R包

clusterProfiler是业界很出名的YGC写的R包,非常通俗易懂,也很好用,可以直接根据cuffdiff等找差异的软件找出的差异基因entrez ID号直接做好富集的所有内容; Continue reading

19

转录组-GO通路富集-WEGO网站使用

一,所谓的网站,其实就是一个网页版的可视化软件接口而已

看看网站主页,看看它需要什么数据

http://wego.genomics.org.cn/cgi-bin/wego/index.pl

转录组-GO通路注释-WEGO网站使用181

二,所需要的数据

1,human.all.go.entrez,需要自己制作,每个基因名entrez ID号,对应着一堆GO通路,人有两万多个基因,所以应该有两万多行的文件。

转录组-GO通路注释-WEGO网站使用247

2,差异基因的GO通路,需要用cuffdiff得到差异基因名,然后用然后用脚本做成下面的样子。记住,上面的那个人类的背景GO文件也是一样的格式,基因名是entrez ID号,与GO通路用制表符隔开,然后每个基因所对应的GO直接用空格隔开。格式要求很准确才行。

转录组-GO通路注释-WEGO网站使用379

 

三,上传数据,出图

转录组-GO通路注释-WEGO网站使用391

点击plot画图即可,就可以出来了一个GO通路富集图

转录组-GO通路注释-WEGO网站使用420

顺便贴上wego上传数据制作的几个脚本,脚本这种东西都很难看,随便意思一下啦,用一下脚本处理就可以得到wego需要上传的数据了

1,得到差异基因名,并且转换为entrez ID号
grep yes gene_exp.diff |cut -f 3 |sort -u >diff.gene.name
cat diff.gene.name  ../Homo_sapiens.gene_info  |perl -alne '{$hash{$_}=1;print $F[1] if exists $hash{$F[2]}}' |sort -u >diff.gene.entrez
2,根据找到的差异基因的entrez ID号来找到它的GO信号,输出文件给wego网站
cat diff.gene.entrez ../gene2go |perl -alne '{$hash{$_}=1;print "$F[1]\t$F[2]" if exists $hash{$F[1]}}' |perl -alne '{$hash{$F[0]}.="$F[1] "}END{print "$_\t$hash{$_}" foreach keys %hash}' >diff.gene.entrez.go
3,得到entrez ID号跟ensembl ID号的转换hash表
perl -alne '{if (/Ensembl:(ENSG\d+)/) {print "$1=>$F[1]"} }' Homo_sapiens.gene_info >entrez.ensembl
4,得到人类entrez ID的go背景
grep '^9606' gene2go |perl -alne '{$hash{$F[1]}.="$F[2] "}END{print "$_\t$hash{$_}" foreach sort keys %hash}' >human.all.go.entrez
5,把人类entrez ID的go背景转换成ensembl的go背景
cat entrez.ensembl human.all.go.entrez |perl -F"=>" -alne  '{$hash{$F[1]}=$F[0];print "$hash{$F[0]}\t$F[1]" if exists $hash{$F[0]}}' >human.all.go.ensembl

在我的群里面共享了所有的代码及帖子内容,欢迎加群201161227,生信菜鸟团!

http://www.bio-info-trainee.com/?p=1

线下交流-生物信息学
同时欢迎下载使用我的手机安卓APP

http://www.cutt.com/app/down/840375

19

免疫组库igblastn软件的使用

一:下载安装该软件

软件:NCBI提供的igblastn(linux环境)

需要自己去NCBI的ftp里面下载

ftp://ftp.ncbi.nlm.nih.gov/blast/executables/igblast/release/

要保证igblastn程序文件和以下三个文件夹在同一目录,可以自行下载ncbi的igblast程序,同时要下载这些东西。 Continue reading

19

转录组-TransDecoder-对trinity结果进行注释

   一:下载安装该软件

下载安装该软件:  wget https://codeload.github.com/TransDecoder/TransDecoder/tar.gz/2.0.1

解压进入该目录,查看里面的文件

make一下就可以用了,看起来好像是依赖于perl模块的

转录组-TransDecoder-预测ORF420

这个TransDecoder.LongOrfs就是我们这次需要的程序,查看该程序,的确真是一个perl程序,看来perl还是蛮有用的。

二:准备数据

它里面有个测试数据,是比较全面的,也比较复杂,我就不贴出来了,反正我是那trinity组装好的fasta格式的转录组数据来预测ORF的。

三:运行命令

它给的测试命令也很复杂

## generate alignment gff3 formatted output

../util/cufflinks_gtf_to_alignment_gff3.pl transcripts.gtf > transcripts.gff3

 

## generate transcripts fasta file

../util/cufflinks_gtf_genome_to_cdna_fasta.pl transcripts.gtf test.genome.fasta > transcripts.fasta 

 

## Extract the long ORFs

../TransDecoder.LongOrfs -t transcripts.fasta

当然我们只需要看最后一步,这是重点

我这里是直接对我们的trinity组装好的转录本进行预测ORF

/home/jmzeng/bio-soft/TransDecoder/TransDecoder.LongOrfs  -t Trinity.fasta

命令很简单

转录组-TransDecoder-预测ORF1471

输出来的文件就有预测的蛋白文件,这个文件是trinotate对转录本进行注释所必须的文件

转录组-TransDecoder-预测ORF1714

 

四:输出文件解读

longest_orfs.cds  这个是预测到的cds碱基序列,

longest_orfs.gff3  这个是预测得到的gff文件

longest_orfs.pep   这个就是预测得到的蛋白文件

18

查某个基因家族在某物种的具体信息

查某个基因家族在某物种的具体信息

我很伤心,不知道是不是我写的教程还是不够人性化,一个朋友在群里面问如何知道NAC基因家族在拟南芥里面的105个基因信息,我随便给他示范了一下在人类里面如何找,希望他能触类旁通,结果他不会linux,啥生信基础都没有,我只会诱导他简单学习一下,希望他至少明白什么的taxid。所以我给了他我之前写的教程,只希望他告诉我拟南芥的taxid我就帮他把那105个基因找出来。 Continue reading

18

生信常用论坛seq-answer里面所有帖子爬取

生信常用论坛seq-answer里面所有帖子爬取

这个是爬虫专题第二集,主要讲如何分析seq-answer这个网站并爬去所有的帖子列表,及标签列表等等,前提是读者必须掌握perl,然后学习perl的LWP模块,可以考虑打印那本书读读,挺有用的!

其实爬虫是个人兴趣啦,跟这个网站没多少关系,本来一个个下载,傻瓜式的重复也能达到目的。我只是觉得这样很有技术范,哈哈,如何大家不想做傻瓜式的操作可以自己学习学习,如果不懂也可以问问我!

http://seqanswers.com/这个是主页

http://seqanswers.com/forums/forumdisplay.php?f=18 这个共570个页面需要爬取

其中f=18 代表我们要爬去的bioinformatics板块里面的内容

http://seqanswers.com/forums/forumdisplay.php?f=18&order=desc&page=1

http://seqanswers.com/forums/forumdisplay.php?f=18&order=desc&page=570

<tbody id="threadbits_forum_18">这个里面包围这很多<tr>对,

前五个<tr>对可以跳过,里面的内容不需要

Continue reading

18

生信常用论坛bio-star里面所有帖子爬取

生信常用论坛bio-star里面所有帖子爬取

这个是爬虫专题第一集,主要讲如何分析bio-star这个网站并爬去所有的帖子列表,及标签列表等等,前提是读者必须掌握perl,然后学习perl的LWP模块,可以考虑打印那本书读读,挺有用的!

http://seqanswers.com/ 这个是首页

http://seqanswers.com/forums/forumdisplay.php?f=18 这个共570个页面需要爬取

http://seqanswers.com/forums/forumdisplay.php?f=18&order=desc&page=1

http://seqanswers.com/forums/forumdisplay.php?f=18&order=desc&page=570

<tbody id="threadbits_forum_18">这个里面包围这很多<tr>对,

前五个<tr>对可以跳过,里面的内容不需要

生信常用论坛bio_star462

Continue reading

17

草莓基因组文章解读-并下载原始测序数据

找橡胶测序数据无果

所以我只好找了他们所参考的草莓(strawberry, Fragaria vesca (2n = 2x = 14),a small genome (240 Mb),)的文章,是发表是nature genetics上面的

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3326587/

可以看到它的SRA索取号。

研读橡胶的基因组文章1087

草莓组装结果:Over 3,200 scaffolds were assembled with an N50 of 1.3 Mb .

Over 95% (209.8 Mb) of the total sequence is represented in 272 scaffolds.

草莓基因息:Gene prediction modeling identified 34,809 genes, with most being supported by transcriptome mapping.

草莓染色体信息:Paradoxically, the small basic (x = 7) genome size of the strawberry genus, ~240 Mb,

offers substantial advantages for genomic research.

草莓来源:diploid strawberry F. vesca ssp. vesca accession Hawaii 4

(National Clonal Germplasm Repository accession # PI551572).

然后我去NCBI上面下载这三个数据

研读橡胶的基因组文章1664

 

SRA020125 共有四个数据:

 

http://www.ncbi.nlm.nih.gov/sra/SRX030575[accn] Total: 4 runs, 4.7M spots, 2.6G bases, 5.5Gb
http://www.ncbi.nlm.nih.gov/sra/SRX030576[accn]  (3 KB PE) Total: 2 runs, 2.2M spots, 908.5M bases, 2.1Gb
http://www.ncbi.nlm.nih.gov/sra/SRX030577[accn] (20KB片段) Total: 2 runs, 1.9M spots, 800M bases, 1.8Gb
http://www.ncbi.nlm.nih.gov/sra/SRX030578[accn] Total: 3 runs, 4M spots, 2.2G bases, 4.6Gb

挂在后台自动下载

研读橡胶的基因组文章2877

好了,有了这些数据我们就要进行基因组的一系列分析啦!!!

不过我们可以先看看他们这个研究小组的成果

首先他们建造了一个关于草莓的基因组信息网站

https://strawberry.plantandfood.co.nz/

研读橡胶的基因组文章3091

跟我之前在水科院做鲫鱼鲤鱼的差不多

直接在里面就可以下载他们做好的所有数据,也可以可视化。

 

它的染色体如下,非常简单,就七条染色体

研读橡胶的基因组文章3106

 

http://www.rosaceae.org/species/fragaria/fragaria_vesca/genome_v1.1

我找到了它组装好的草莓基因组地址,用批处理全部下载了

研读橡胶的基因组文章3287

17

研读橡胶的基因组文章-结果没有原始测序数据

研读橡胶的基因组文章

我本科的前两年在海南儋州读书,那时候旁边就是橡胶所,很多同学也在那边做毕业论文什么的,我一直以为那里是全世界的橡胶中心,所有的先进技术都在那里产生,结果,前些天跟一个橡胶所的老师聊天才发现,居然橡胶(Hevea brasiliensis)的基因组已经发表了,可是,跟橡胶所没有半毛钱关系,更搞笑的事情是,堂堂一个基因组文章居然发表在BMC这样的杂志,真不知道是基因组的年代已经过去了还是他们做的实在是太差了,反正我看不过去了,所以研读他们的文章,并且下载数据测试一下。

文章地址如下:http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3575267/

研读橡胶的基因组文章409

可以看到它过于数据的描述都在补充材料1里面,所以我下载了补充材料。

研读橡胶的基因组文章550

可以看到所有的测序数据的描述,45个G的i  llumina的200bp的双端测序,27个G的illumina的200bp的双端测序,约10G左右的长片段(8kb,20kb)罗氏454数据,最后还有一点点solid数据,它这样的测序策略好像是模仿的2011年发布的草莓基因组数据。

 

但是补充材料里面没有列出下载地址,我有点困惑!

按照道理我研读文献的步骤应该没有错,有可能是因为这个文章发表的杂志水平太低,所以不要求他们把测序原始数据上传到NCBI的SRA里面。或者是他们本身觉得文章发的不够档次,不想公布数据,所以先留着自己做精细分析,等发了大文章再公布原始数据。

然后我在NCBI的SRA里面查找了关于橡胶的原始数据,果真没有

研读橡胶的基因组文章727

 

仅有的10个数据,都是别的小组做的RNA-seq的内容。

De novo transcriptome analysis of abiotic stress responsive transcripts of Hevea brasiliensis.

 

所以我只好找了他们所参考的草莓(strawberry, Fragaria vesca (2n = 2x = 14),a small genome (240 Mb),)的文章,是发表是nature genetics上面的

http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3326587/

17

我的APP终于上线啦!!!

我真的不是程序员,也没时间去自己写一个APP,无意中看到了一个APP的弹出页面写着简易APP工厂支持,我试着搜索了一下,才知道,原来他们提供了一个平台,傻瓜式的创建一个自己的APP,当然,现在好像只是免费提供安卓版本,不过也非常实用!!!

我的APP上线啦120

非常easy的节目,大家如果有兴趣,也可以自己下载一个!!!

然后我顺便搜索了一下我的网站效果,发现现在终于被百度搜录了,而且,居然,我很久以前写的菜鸟生物信息学居然还能排名第二,我很久以前的想法就是分享一下自己学习过程中的艰辛曲折,给后学者们借鉴,希望这样可以帮到更多的朋友!

我的APP上线啦263

 

生信菜鸟团 | 欢迎加群201161227,线下交流-深圳大学城

希望有在深圳的生信从业人员或者学生能看到此广播,我们可以组成兴趣小组交流一下各自所学,或者合作翻译一些技术文档或者制作生信常用软件的使用说明书。

 

17

转-NGS测序的几个基本概念-插入片段等

YGC是我非常喜欢的一个博客,但是之前都是英文,所以我没怎么看,余老师还在R领域很有建树,个人发表了5个R在生信方面的包,我后面有空会一个个试用学习。

本文转自http://ygc.name/2014/08/27/insertion-size/

里面详细解释了NGS测序的几个基本概念,也是我之前一直弄混淆的概念,包括插入片段、单端测序,双端测序,配对测序,contig,scaffold等等

在进行测序的时候,需要将DNA打断,构建library,这些fragment需要接上adaptor,好进行扩增,illumina的测序,可以有single end和paired end两种,分别从一端和两端进行测序。

fragment                  ========================================
fragment + adaptors    ~~~========================================~~~
SE read                   --------->
PE reads                R1--------->                    <---------R2
unknown gap                         ....................

insertion并不是指R1和R2之间的unknown gap,早在NGS之前,当我们在使用ecoli构建载体的时候,这个概念就已经形成,它是adaptors之间的序列。而unknown gap则称之为inner mate:

PE reads      R1--------->                    <---------R2
fragment     ~~~========================================~~~
insert          ========================================
inner mate                ....................


显然我们不希望看到大量的unknown gap,所以要制造短的fragment,而且技术不断发展,测序长度也越来越长,于是可以测通fragment:

fragment          ~~~========================================~~~
insert               ========================================
R1                   ------------------------->                    
R2                                   <-----------------------
overlap                              ::::::::::
stitched SE read     --------------------------------------->

这样R1和R2就有overlap,合并一致序列,就可以得到完整的fragment,使用短的fragment,也就是insertion size比较小的library,测序的结果coverage比较大,因为我们可以测通fragment.

虽然adaptor不会被测序,但如果fragment太短,被读通了,则另一端的adaptor就会被测到。

tiny fragment       ~~~~========================~~~~
insert                  ========================
R1                      -------------------------->                    
R2                   <--------------------------
read-through         !!!                        !!!

如果MiSeq设置正确的话,读通的adaptor是会被切除了,这样就会获得长度不一致的short reads,也可以使用N来替换adaptor序列,这样长度一样,但会在5' end看到很多N。如果没设置好,reads里含有adaptor序列,那么必须要通过软件去除,否则后续的分析都会有问题。

所以insertion size小有个好处,测序的genome coverage高,但是在进行de novo assembly的时候,有一个问题,如果基因组含有比read length还要长的重复元件时,就无法拼接,所以得到的是很多的contigs,它们之间的gap要长于insertion size且无法确定。这个问题是相当普遍的,即使是相对简单的ecoli基因组,也有一定数量的重复元件。

这个问题需要使用大的insertion size进行paired end测序来解决。

fragment + adaptors    ~~~========================================~~~
PE reads                R1--------->                    <---------R2
unknown gap                         ....................

在这种insertion size比较大的情况下,我们可以估计R1和R2之间的距离,只要有一个片段能够被mapped到unique position的话,那么另一个片段的大致位置就可以确定。所以为了达到好的拼接效果,长fragment的library也是必须的,它有可能给出 contigs间的相对位置。

所以理想的情况是使用multiple insert libraries,short-insert library可以保证获得足够的coverage,它可以告诉你contigs之间的序列,但信息是local的,它没办法告诉你怎么拼;而long- insert libary则可以告诉你一些相对global的信息。

2014-08-27-194009_712x380_scrot

在上面这个测试的数据中,加了long-insert libary虽然在coverage上没多少变化,但N50和最大的contig都显著提高,4.5Mb已经覆盖了~98%的ecoli基因组。

- See more at: http://ygc.name/2014/08/27/insertion-size/#sthash.fKmWKoaf.dpuf

17

转录组cummeRbund操作笔记

转录组cummeRbund操作笔记

这是跟tophat和cufflinks套装紧密搭配使用的一个R包,能出大部分文章要求的标准化图片。

一:安装并加装该R包

安装就用source("http://bioconductor.org/biocLite.R") ;biocLite("cummeRbund")即可,如果安装失败,就需要自己下载源码包,然后安装R模块。

转录组cummeRbund操作笔记220

然后把cuffdiff输出的文件目录拷贝到R的工作目录,或者自己设置工作目录

 

二:读取FN目录下面的所有文件。

转录组cummeRbund操作笔记239

可以看到把cuffdiff下面的文件夹所有的文件都读取到了,里面有如下文件,包括genes,isoforms,cds,tss这四种差异情况都读取了。

转录组cummeRbund操作笔记316

 

三:表达水平分布图

转录组cummeRbund操作笔记328

转录组cummeRbund操作笔记330
四、表达水平箱线图

csBoxplot(genes(cuff_data))

转录组cummeRbund操作笔记371
五、画基因表达差异热图

转录组cummeRbund操作笔记386

画出热图如下

转录组cummeRbund操作笔记396

 

六、得到差异的genes,isoforms,TSS,CDS等等

 

  • 得到上调下调基因列表

diffData <- diffData(myGenes )

转录组cummeRbund操作笔记430

转录组cummeRbund操作笔记474

 

只有一百个有表达差异的基因

转录组cummeRbund操作笔记490

 

 

最后贴出一个综合性的代码,算了,太浪费空间了,把整个空间搞得不好看,就不贴了。

这个代码可以自动运行出图;

转录组cummeRbund操作笔记3781