生信星球转录组培训第一期Day4--善良土豆

今天将会用到第二天建立的rnaseq环境及对应文件路径和Day3下载好的.sra数据
rnaseq分析路径

完成现在.sra数据(在raw文件路径中)

今天主要学习内容是配置相关软件环境,开始数据转换,质量控制,了解参考基因组及注释文件

数据转换:其实这一步就是将下载好的.sra文件转换成fq文件,因为研究者需要将下机的fq文件压缩成sra上传到ncbi,我们这一步的工作就是再将其还原。主要用到的工具是fastq-dump,它和Day3天的perfetch同样数据sratools工具包,所以直接调用就可以。
数据质控:这一步的目的就是通过查看有无接头和低质量碱基等,得知原始数据质量咋样,不好就要进行处理,处理之后再不好那可能就是要重新检测,主要用到的软件是fastqcmultiqc,其中当我们分析数据存在多个样本时,为了方便同时查看质量信息我们将使用multiqc进行多样本合并呈现结果。
数据过滤:通过数据质控知道了数据所存在的问题,那么接下来我们要开始对原始数据进行过滤,因为接头盒低质量的碱基都会影响后续的比对、定量准确性,及下游分析。主要用到的工具为trim_galore或者trimmomaticSOAPfilter(这三个区别)
比对:比对的软件有很多,主要有三种类型:基于基因组比对:star,hisat2;基于转录组比对:bowtie,bwa;不基于比对:salmon
定量:推荐使用featureCounts,它是subread软件下的一个小软件

开始!

第一步-软件环境

依然是使用conda进行配置,主要软件包括:数据转换,质量控制,数据过滤,比对和定量

#激活之前设置好的rnaseq环境
conda activate rnaseq 或 source activate rnaseq
#安装所需软件; -y:默认安装过程全部yes,当conda把所有软件都安装好之后才会给反馈
conda install fastqc multiqc trim-galore trimmomatic hisat2 bowtie2 subread salmon -y

请注意软件名称大小写,很重要,错了容易报错;同时还有可能存在软件依赖性,比如这里的featurecounts找不到并报错,此处的意思是找遍了所有conda下载channel也没找到它,这是我们就网页搜索一下,根据正确答案将代码替换就ok啦

conda featurecounts

根据提供的新命令重新安装一遍

当我将fastqc multiqc trim-galore trimmomatic hisat2 bowtie2 subread salmon这些软件都安装好后,每一个软件我都检测一下到底安装好没,通过:输入软件名直接回车、软件名 --help、软件名 -h、软件名 -help,以上方法均为查看该软件帮助文件,当帮助文件显示后则表示为安装成功。

但!请看(学习不认真就要入深坑)

这两个软件没有显示帮助文件,可能是安装出了问题,那么我通过网页搜索其安装方法,进行重新安装,如下,但还是出现问题:
问题一:

subread

我以为的真的不是我以为的,我以为所有的软件的帮助文件都是这样看的,结果我错了,首先subread不是单独的软件,它还包括subread-align,subjunc,其官网:(http://subread.sourceforge.net/),下这个软件的目的是为了使用其下面的featureCounts,所以我们直接输入 featureCounts回车,也可以证明我们这个软件安装成功

问题二:
trim-galore

trim_galore

trim-galore也不显示帮助文件,也重新安装了,没报错,去安装的路径(home/miniconda3/envs/rnaseq/bin)下看它也在里面呀,那这又咋了啊!真让人头大!
我的天!这是我们可以vi ~/.bashrc,将其添加到变量中export PATH=~/miniconda3/envs/rnaseq/bin:$PATH,source ~/.bashrc激活一下,只是再trim_galore回车就会显示帮助文件信息了

所以基于以上,当我们遇到安装软件之后不显示帮助文件信息时处理方式有三种(目前我遇到的,谁知道以后还会遇见啥呢)
1.搜索conda 软件名:根据网站提示重新安装
2.通过1没有报错,安装成功,但还是不显示帮助文件,那我们就要了解这个软件是不是唯一的,其内部会不会还有其他软件(类似问题一)
3.查看软件安装路径内是否有该软件,有的话直接添加变量就OK了(类似问题二)

Ok!配置相关软件环境完成

第二步-数据转换

由于目前测序都是双末端测序,因此将sra转换成fq后会出现两个fq文件,read1和read2,将下列脚本写入名字为sra2fq.sh中(vi sra2fq.sh)

cat srr.ids | while read I ;do
echo $i
#time fastq-dump –gzip –split-3 -A $i 路径/${i}.sra -O 输出路径 &;
done

首先在做循环脚本时,真正要运行的命令先用#注释掉(小泽提的好建议),用echo $i可以先看看这个循环是否是可行的,运行一下,看结果:


cat nohup.out

确认是我们要分析的数据列表,好了,这时回到脚本将注释打开
当我们在使用某一个软件时,帮助软件时非常有用的,因为很多参数我们没有必要都要记住,可能也记不住,所以我们要充分利用好帮助信息,查看某个软件的帮助信息的命令前面已经说了太多了(-help)

如何可以让一个安装好的软件被我们所用,也就是将它运行起来,这里用featureCounts举例(因为我终于弄明白了subread的帮助文件怎么显示了);主要三因素,主程序+选项+参数:featureCounts [option] -a <annotation_file>,[]里内容表示可选,<>里内容为必选选项,不可忽略,在写命令时是不需要写上[]和<>。
此外,在帮助文件中你会看到有一个连字符+大/小写字母,和两个连字符+单词,两个连字符+单词要比一个连字符+大/小写字母说的更详细。这两种方式主要是对选项的调用,后面才是选项的详细描述内容。

featureCounts

数据转换命令详述:

time fastq-dump –gzip –split-3 -A $i 路径/${i}.sra -O 输出路径 1>sra2fq.log 2>&1 &
#time:表示计时,就是转换这个过程用了多久,可有可无
#fastq-dump:主程序
#--gzip:表示将解压出来的fq还是压缩成gzip格式,目的是节省空间内存
#--split-3:https://www.biostars.org/p/156909/,虽然其中有个3,但其实结果一般也就出2个文件
#-A指定输出结果名
#i:SRRxxxx
#-O:指出输出文件路径
#1>sra2fq.log:将结果的正确日志文件输出到sra2fq.log
#2>&1:2表示将错误信息,并将其追加到1的正确日志中。也可以将2错误信息丢弃到linux黑洞中去:2>/dev/null
#&:实现并行运算的意思,说白了就是同时跑这个循环,对i进行同时数据转换

--split-3说白了就是输出3个结果文件如下,但是我们往下分析的时候只用read1和read2,所以如果只想要2个结果文件,可以用--split-files;


--split-3

好了,现在可以投任务了 nohup sh sra2fq.sh &,投任务这个时间可以准备下载参考基因组和注释文件了

第三步-参考文件

为什么需要参考文件?都有哪些参考文件?

第一个参考文件:参考基因组
转录组最终的结果就是要比较表达量的差异,那么一堆随机排列的碱基怎么看表达量差异呢?就需要一个“标准”,我们测到的不同数据都和这个标准去做比较,比上的多,我们就认为表达量高,相反表达量少,对于比对不上的,我们认为不表达。其实这里说的“标准”也就是第一个参考文件指的就是参考基因组,人类基因组经历了从hg16、hg17、hg18、hg19、hg38版本,最新版本即为hg38。
人类参考基因组:gz压缩文件800多M,解压后3G。
有3种主流的数据库可供使用下载不同物种基因组数据:NCBI、UCSC、Ensembl;
-NCBI:ftp://ftp.ncbi.nlm.nih.gov/genomes/
-UCSC:http://hgdownload.cse.ucsc.edu/downloads.html
-Ensembl:ftp://ftp.ensembl.org/pub/
第二个参考文件:基因组注释文件
有了基因组,可以让我们去探索得到的数据reads中哪些序列匹配到基因组上的对应位置,但是我们还是不知道对应的是什么,如果我们把基因组比作“寻路”的过程,那么注释文件就是给找好的路指定“路牌”,主要使用两个数据库:Gencode:Ensembl,下载得到的文件主要是GTF和GFF:
Gencode:https://www.gencodegenes.org/,包括人和小鼠的
Ensembl:ftp://ftp.ensembl.org/pub/current_gtf
关于GTF和GFF文件的信息请学习:小泽分享的GTF与GFF的小趣事

那么现在开始下载两个参考文件吧!

请将两个参考文件下载到之前创建的ref文件目录下(cd ref)

#genome(从ensembl下载)
wget -c ftp://ftp.ensembl.org/pub/current_fasta/homo_sapiens/dna/Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz
#annotation(从ensembl下载)
wget -c ftp://ftp.ensembl.org/pub/current_gtf/homo_sapiens/Homo_sapiens.GRCh38.96.gtf.gz
# -c的含义是断点续传
# 如果下载速度慢,可以放后台
两个参考文件下载成功
#解压
gzip -d Homo_sapiens.GRCh38.96.gtf.gz
gzip -d Homo_sapiens.GRCh38.dna.primary_assembly.fa.gz
两个参考文件解压成功

第四步-利用fastqc进行质控

通过fastq-dump将.sra文件转换成fq后,共生成8对SRRxxxxxx_1.fastq.gz和SRRxxxxxx_2.fastq.gz,接下来对其进行fastqc质控,在qc文件目录下进行(cd qc)

fastqc 路径/raw/*.gz -o ./ -t 10
#  -t --threads 选择程序运行的线程数,越多越快哦;-o输出路径;*.gz表示该目录下所有的.gz文件;

因为我的fastq-dump命令还没有跑完,所以我单独跑已完成的.fastq.gz(此处我跑两个SRRxxxxx数据文件,方便后面multiqc使用及结果演示),如下:


fastqc操作流程
fastqc结果输出

运行结果会按照每个fq文件以html格式输出,然后利用filezilla导出结果(我用的导出结果是WinSCP)如下:


WinSCP

右键.html即可查看结果,如下:

FastQC Report

至于这个Report怎么解读,请学习继续小泽的优秀文章====不要"太重视“fastqc的结果
FastQC Report详解:http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/

因为我们最终会输出16个.html,一个一个看实在是太麻烦,所以我们利用multiqc可以将结果合并呈现
额外说明一下multiqc安装有两种方法:官网:https://multiqc.info/docs/
# pip安装
pip install git+https://github.com/ewels/MultiQC.git  #Installation with pip
# conda安装
conda install -c bioconda multiqc  # Installing with conda

插播:在等待安装multiqc时,所有数据fastqc结束,如下;


fastqc
运行MultiQC

直接指定MultiQC要分析的文件路径即可,若数据在当前目录下输入multiqc .即可。

multiqc .
#使用--ignore忽略掉某些文件
#multiqc . --ignore *_R2*

multiqc结果解析,请学习:https://www.jianshu.com/p/f83626fd1fa1

坑!坑!关于multiqc

我以为的又不是我以为的,2个小时出坑
一定要清楚multiqc是干啥的,我一直以为是和fastqc一样的进行质控,错!我以为错了,其实它是将fastqc质检后生成的.zip文件进行质量信息结果合并呈现,所以我们应该在qc这个路径下对.zip文件进行multiqc .
顿悟这个问题的心里路程:

警告

当我第一次运行multiqc .最先出现这个报错,下面继续出错显示WARNING
WARNING

顿时蒙圈了,别人也没这个情况呀,我就开始搜索,搜呀搜呀搜呀搜,第一个警告解决,帮助来自https://github.com/yaml/pyyaml/wiki/PyYAML-yaml.load(input)-Deprecation#footnotes

找到config.py文件,对其进行编辑,vi 路径/config.py
在vi编辑器中查找yaml.load,一般都是yaml.load(f),这是我们要在其后面加上Loader=yaml.FullLoader,把所有的yaml.load中都加上,之后保存wq,退出vi

yaml.load (f, Loader=yaml.FullLoader)

接下来我们开始解决WARNING,用了1个小时解决的,我都想爆粗口,现在想想就一句话,multiqc处理的是fastqc质控后生成的.zip,找对路径找对文件执行就完事了,要被自己蠢哭了,最后生成multiqc_data和.html,使用WinSCP打开.html

multiqc_data

multiqc_report.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容