十一 23

java环境变量的问题

有篇文章提到了cytoscape,想着一直没用过这个神器对不起我生信大神的称号呀,就下载了准备安装,居然报错了,简直不可思议,因为一直以为它是java软件,一般不需要安装,结果是exe的,只是依赖于java,报错是EXE4J_JAVA_HOME, No JVM could be found on your system,这是个很常见的错误,我 简单搜索了解决方案https://wincrunch.com/exe4j-java-home-no-jvm-could-be-found-on-your-system/ 居然无效,但是里面有句话引起了我的注意,通常64位的window电脑的java是安装在Program Files 而不是Program Files (x86),这才是问题所在,我当初图简单,直接用了JDK来安装JRE,所以导致软件安装目录错误。有非常多的生物信息学软件都依赖与java,比如IGV,GSEA,cytoscape,一般来说window电脑安装好了java之后这些软件都挺好用的。那么关于java问题,我整理了3个:

Continue reading

十一 23

【直播】我的基因组(八):原始测序数据质量报告

由于我是分期付款,所以我先拿到了我的测序数据的质控结果和比对情况分析报告,需要补齐全款后才能拿到原始测序数据!(中间还出了个小意外,打款的时候不小心多打了30块钱!(⊙o⊙)…不过多打的30块钱想拿回来估计不太可能了,需要填写书面申请表格并且自费快递到公司,这边跨境快递费都不止这个数了) Continue reading

十一 23

【直播】我的基因组(七):从整体理解全基因组测序数据的变异位点

首先记住一个很重要的知识点,变异是相对的!

简单说一下什么是找变异,变异跟突变有什么区别呢?举个栗子:有国际组织规定了人类的参考基因组(如UCSC,ENSEMBL,NCBI等,前面帖子都有讲),就是 AAAAA(这里简化一下,就5个碱基,其实人类基因组多达30亿个)  。现在通过给自己测序得知,我与之对应的是AGCAA,那么我相比国际基因组来说,就是2个变异位点,位于基因组的坐标2和3,但是它们还不能说就是突变。 Continue reading

十一 23

【直播】我的基因组(六):变异位点注释数据库的准备

通常一个人的全基因组测序数据可以挖掘到四百万个SNVs(跟参考基因组不一样的单碱基位点),还有五十万的indels(insertions or deletions),但是得到的数据通常是以vcf文件格式给出的(自行搜索什么是vcf格式),比如下面:

很明显,正常人是看不懂这些变异位点有啥子一样的,只知道第20条染色体的1230237坐标上面本来是一个T碱基的,但是突变成了G,那么我们必然还想知道,这个位点是在某个基因上面吗?如果是,在基因的外显子还是内含子?它的突变有没有改变该基因的功能呢?有没有影响它的转录和翻译呢?还有世界上有没有其他正常人也是这个位点变异呢?如果有,是哪些人种呢?有没有癌症病人也发现了这个变异呢?如果有,是什么癌症呢?所以我们必须下载一系列的变异位点注释数据库,来全方位的解释我们自己找到那四百万个SNVs和五十万的indels。下面我们一起进行数据库准备。

Continue reading

十一 15

htseq-counts跟bedtools的区别

我以前写过bedtools和htseq-counts的教程,它们都可以用来对比对好的bam文件进行计数,正好群里有小伙伴问我它们的区别,我就简单做了一个比较,大家可以先看看我以前写的软件教程。写的有的挫:

使用Bedtools对RNA-seq进行基因计数 ,

转录组HTseq对基因表达量进行计数

言归正传,我这里没精力去探究它们的具体原理,只是看看它们数一个read是否属于某个基因的时候,区别在哪里,大家看下图: Continue reading

十一 14

TPM值就是RPKM的百分比嘛!

很久以前就有人问过这个问题啦,虽然目前主流还是用RPKM/FPKM来形容一个基因的表达量。但是既然大家都说TPM更好,我也来探究一下吧!

我不喜欢看公式,直接说事情,我有一个基因A,它在这个样本的转录组数据中被测序而且mapping到基因组了 5000个的reads,而这个基因A长度是10K,我们总测序文库是50M,所以这个基因A的RPKM值是 5000除以10,再除以50,为10. 就是把基因的reads数量根据基因长度和样本测序文库来normalization 。 Continue reading

十一 14

仅仅对感兴趣的基因call variation

有这个需求,是因为我们经常对某些细胞系进行有针对性的设计变异,比如BAF155的R1064K呀,H3F3A的K27呀,那我我们拿到高通量测序数据的时候,就肯定希望可以快速的看看这个基因是否被突变成功了。现在比对几乎不耗费什么时间了,但是得到的sam要sort的时候还是蛮耗费时间的。假设,我们已经得到了所有样本的sort好的bam文件,想看看自己设计的基因突变是否成功了,可以有针对性的只call 某个基因的突变!

1

Continue reading

十一 12

仔细探究picard的MarkDuplicates 是如何行使去除PCR重复reads功能的

本帖紧跟前面的仔细探究samtools的rmdup是如何行使去除PCR重复reads功能的

同样的我们也是分单端和双端测序来看结果,并且比较两个工具的区别!

首先对于那个单端数据,samtools给出的结果是:[bam_rmdupse_core] 25 / 53 = 0.4717 in library Continue reading

十一 12

仔细探究samtools的rmdup是如何行使去除PCR重复reads功能的

在做这个去除PCR重复reads时候必须要明白为什么要做这个呢?WGS?WES?RNA-SEQ?CHIP-SEQ?都需要吗?随机打断测序才需要?特异性捕获不需要?
搞明白了,我们就开始做,首先拿一个小的单端测序数据比对结果来做测试!
samtools rmdup -s tmp.sorted.bam tmp.rmdup.bam
[bam_rmdupse_core] 25 / 53 = 0.4717 in library
我们的测试数据里面有53条records根据软件算出了25条reads都是PCR的duplicate,所以去除了!

Continue reading

十一 11

数据库批量注释不可盲目-annovar数据库错误

我对H3F3A这个基因做了两个突变的cellline,分别是G34V和K27M,现在知道这个基因在hg38上面的坐标是:

Genomic Location for H3F3A Gene
Chromosome:  1
Start:226,061,851 bp from pter  End:226,072,002 bp from pter
Size:10,152 bases    Orientation:Plus strand

然后我用samtools结合bcftools把该基因区域的snp位点call出来:

samtools mpileup -r chr1:226061851-226072001 -t "DP4" -ugf ~/reference/genome/hg38/hg38.fa  *sorted.bam | bcftools call -vmO z -o  H3F3A.vcf.gz

Continue reading

十一 10

一个基因在同一套基因组上面竟然有两个定位!

查了好久的bug,终于搞清楚问题所在了!因为要对基因进行reads计数,所以要拿到基因在基因组上面的染色体起始终止坐标,结果发现了个十分诡异的现象,很多基因有多个坐标,比如下面这个PTPRS 在hg38这个基因组版本,居然有两个定位,因为我是写程序格式化得到的坐标,所以我check了我的程序,http://www.biotrainee.com/thread-472-1-1.html  感兴趣的同学可以点开看看我的代码!

tmp
Continue reading

十一 07

mysql的table居然有最大列限制

想着把TCGA的RPKM值矩阵表格写入到mysql,然后做一个查询网页给生物学家,我下载的是所有TCGA收集的mRNA表达数据集数据集-GSE62944 ,共9264个癌症样本,和741个正常组织的表达数据。当我想写入癌症表达矩阵的时候,报错了:
Error in .local(conn, statement, ...) :
could not run statement: Too many columns
简单搜索了一下,发现是mysql有最大列的限制,但是我不是很懂计算机,所以没太看明白该如何调整参数使得mysql列限制扩充:http://dev.mysql.com/doc/refman/5.7/en/column-count-limit.html 所以就把癌症表达矩阵根据癌症拆分了,癌种数量如下:

Continue reading

十一 07

【直播】我的基因组(五):测试数据及参考基因组的准备

我的全基因组数据还没拿到,而且还会推迟,简单说(tu)明(cao)一下原因(还好当初为了避免广告嫌疑一直没说是哪个公司负责测序,反正用的是illumina的hiseqX10这个测序啦,所以可以尽情的吐槽)。

心烦意乱的吐槽线 Continue reading

十一 03

热图最佳实践-pheatmap

用pheatmap来绘图首先要安装这个包,它就一个功能,画出热图即可,号称是pretty heatmap,的确比其它的好用很多。我以前写过《一步一步学习heatmap.2》的教程,很简单的那种,所以就没有公布在博客上面,结果发现很多其它博客居然能先我一步发出。其实包括本次的pheatmap指南,都没什么好发,的在R里面也是傻瓜式出图,无法就是自己熟练一下参数而已,又不是开发一个包,没什么技术含量。我这里单独提一下pheatmap是因为它的确非常好用,将会是我画热图的不二之选。比如下面这个,是我最喜欢的: Continue reading

31

用samtools idxstats来对de novo的转录组数据计算表达量

de novo的转录组数据,比对的时候一般用的是自己组装好的trinity.fasta序列(挑选最长蛋白的转录本序列)来做参考,用bowtie2等工具直接将原始序列比对即可。所以比对 sam/bam文件本身就包含了参考序列的每一条转录本序列ID,直接对 sam/bam文件进行counts就知道每一个基因的表达量啦!

本来我是准备自己写脚本对sam文件进行counts就好,但是发现了samtools自带这样的工具:http://www.htslib.org/doc/samtools.html 

如果是针对基因组序列,那么这个功能用处不大,但是针对转录本序列,统计出来的就是我们想要的转录本表达量。 Continue reading

26

【直播】我的基因组(四):计算资源的准备

大家久等了,Jimmy的测序数据还没有拿到手!但是,工欲善其事必先利其器!所以jimmy在等待自己基因组的这段时间里,准备好了自己计算资源!鉴于会有不少同志们会跟着直播来自己动手分析一个公共的全基因组重测序数据(参考数据下载地址详见直播一),我在这里和大家分享一下计算机资源及软件的基本要求。 Continue reading

26

【直播】我的基因组(二):科研和临床分析调研

全基因组重测序,最大的分析点就是在于找到跟参考基因组不一样的地方(科研分析流程),然后通过各种公共数据库来注释这些不一样的地方(snv,indel,cnv,sv)(临床分析流程)。然而对于这些不一样的地方,就需要严格结合质量值、测序深度、重复性等因素进行进一步的过滤及筛选,过滤掉假阳性,从而进行下一步的分析。

那么我们一起来看看科研及临床一般都是进行怎样的分析吧! Continue reading

26

【直播】我的基因组(一):直播的目的及意义

直播的目的及意义
近年来随着“名人效应"的带动,基因测序也逐渐进入大家的视野。基因检测是在分子水平上对人体遗传密码进行破译,通过单核苷酸多态性和GWAS的分析对人体患病风险进行预测,从而进行预防干预及个体化治疗。随着二代测序技术的涌现,使得个人基因组测序成本逐年下降(2016年个人全基因组纯测序,30X,不到一万)。在这样的前景中,有一部分人开始考虑用基因检测来代替普通体检,从而预测预防各项疾病。最近有许多消息冒出来说测序体检报告如同天书看不懂,那么如何看懂测序呢?那让我们一起来看Jimmy的基因组直播。作为一名生信人,能亲自分析自己的测序数据可是再好不过了。Jimmy早在13年就产生了这样的想法,然而条件一直不是很成熟。但是执着的jimmy一直没有放弃这个念头,终于等到了天时地利人和的现在,决定开始和大家一起分享自己基因组的测序分析及解读的全过程。
Continue reading
22

使用trimmomatic对illumina数据做质控-去接头还有去除低质量碱基

因为一直拿到的是公司给的特别好的数据,所以没太关注质控这个问题,最近拿到了raw data,才发现其实里面的门道挺多的。前面都是用cutadapt这个python软件来去除接头的,但是它有一个弊端,需要自己指定接头文件。正好朋友推荐了trimmomatic,是java软件,所以直接Google找到其官网,然后下载二进制版本解压即可使用!
反正对我的illumina测序数据来说,直接用它就可以把raw data 变成 clean data啦!
1

Continue reading