day16ChIP-seq下载数据
要实战之前,要有数据和软件两样。
一、数据
从网上下载数据,最好的办法是本节最后的方法直接用sratoolkit里的fastq-dump命令。
下面的是学习过程,但是走弯路了,——按照day18更新版本操作更简便,而且直接能转换成样本名称
1. jimmy大神早前的帖子里用了ChIP-seq实战
和视频里不一样。
2.从GEO下载数据
可以详见手把手教你如何从GEO下载数据。
方法一:从网页下,需要在NCBI的GEO数据库中进入相应的GEO Series (GSE) study ID,如GSE42466。再选择要下载的样本GEO Sample (GSM) 样本ID,如GSM1041372 Ring1B_ChIPSeq。再点击RSA格式的文件编号,如| SRP017311。在右上角sent里面选择File,format选择run info。就会下载一个scv文件,里面有 download_path选项。copy到浏览器里就会自动下载啦。看下载进程600多M的文件大约0.5-4小时。
SRA为了节省空间,一般上传的数据都是.sra的压缩文件,那我们如何将sra文件转化成常用的双端数据呢?这里就要用到SRA提供的一个工具:fastq-dump,
这个软件需要在Linux系统下进行操作,命令行如下:
fastq-dump *.sra --split-3
这里的--split-3会把原来双端拆分成两个文件,但是原来单端并不会保存成两个文件。运行完成后就能获得原始数据了。
方法二:从Linux系统直接下载,也需要提前在网页的GEO数据库中找到GSE42466,再点击SRA对应的ID:SRP017311 ,会出现6个文件。全部选中之后,点击sent to,选择File 和runinfo,会把这六个数据的信息全都保存在csv文件中。
image.png
发现这个地址和jimmy大神写指南时不一样了哦。
for ((i=204;i<=209;i++)) ;do wget https://sra-pub-run-odp.s3.amazonaws.com/sra/SRR620$i/SRR620$i;done
3. 把下载的sra数据转成fq格式文件,需要用Sratoolkit
找到下载地址为:https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.0/sratoolkit.3.0.0-ubuntu64.tar.gz
可以在linux里面下载直接安装哦。
$ wget -c --no-check-certificate https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.0/sratoolkit.3.0.0-ubuntu64.tar.gz # --no-check-certificates 使用“不检查证书”,这样就能下载成功。且option要放到地址的前面哦。
$ tar -xzvf sratoolkit.3.0.0-ubuntu64.tar.gz #解压缩
$ echo 'export PATH=$PATH:~/software/sratoolkit/sratoolkit.3.0.0-ubuntu64/bin' >> ~/.bashrc
$ source ~/.bashrc
试图运行程序,提示"libc.so.6: version `GLIBC_2.14’ not found",原因是系统的glibc版本太低,软件编译时使用了较高版本的glibc引起的:
查看系统glibc支持的版本:
$strings /lib64/libc.so.6 | grep GLIBC
二、尝试升级一下GLIBC(经历很复杂,结局却反转)
http://ftp.gnu.org/gnu/glibc/找2.14
$wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz #从ftp下载加了-n这个参数怎么就不行了呢?删掉就可以了。
$wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.14.tar.gz
$tar -xvf glibc-2.14.tar.gz
$tar -xvf glibc-ports-2.14.tar.gz
$mv glibc-ports-2.14 glibc-2.14/ports
$mkdir glibc-2.14/build
$cd glibc-2.14/build
#下面运行configure配置,make && make install
$~/glibc-2.14/configure --prefix=/data/zds209/usr/local/glibc-2.14/lib--disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
#configure 一定要指定路径。上面这一步在运行了glibc-2.14文件夹里面的configure文件。该条命令会在工作目录~/glibc-2.14/build生成Makefile和其他文件。没有root权限,要把prefix设定成自己指定的。
$make #在工作目录~/glibc-2.14/build下进行编译。要挺长时间约2小时,看着一行行跳动的字符,由衷佩服这些代码的创作者。。有人用参数-j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
$make install #安装,就是把编译出来的二进制文件,库,配置文件等等放到相应目录下-就是configuration里面指定的prefix吧。
没有root权限,需要添加路径到.bashrc,在bashrc里面填下面一行。
export LD_LIBRARY_PATH=/home/username/usr/local/glibc-2.14/lib:$LD_LIBRARY_PATH
#这里PATH后面的路径应该就是configuration时候的prefix啦。
结局:
在我折腾第二次make的时候等待中,实在忍不住了,给网管大神发了求助信息。他只回了一句:执行一下这个 export LD_LIBRARY_PATH=/data/software/glibc-2.141/lib:$LD_LIBRARY_PATH
原来大神在公共文件夹下已经放了2.14在里面,我只要做网上教程里最后一个操作——添加环境变量就行了,简直不要太爽。要不要请大神吃个饭?
三、make命令-编译
在前面make的长时间等待中加餐点儿知识。代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。
Make可以从一个名为makefile的文件中获得如何构建你所写程序的依赖关系,Makefile中列出了每个目标文件以及如何由其他文件来生成它。 当你编写一个程序时,你可以为它编写一个makefile文件,这样你就可以使用Make来编译和安装这个程序。
四、configure命令-配置
参数解释
--prefix:指定生成的lib库运行时保存的路径(要写绝对路径)。最终一直glibc交付件时存放位置必须要和prefix指定路径保持一致。
五、继续Sratoolkit的使用
5.1 配置
使用前在sratoolkit的安装目录下,先输入这个命令vdb-config --interactive
,按入字母x。即可。
5.2 执行
单个文件下载+格式转换
#定义存放输出数据的文件夹,需要先创建这个文件夹‘fastq’
mkdir fastq
$fqdir=~/ChIP-seqtest/data/fastq
$fastq-dump --gzip --split-3 -X 25000 -O ${fqdir} SRR1039510 #转换单个文件,而且不用下载sra数据,直接输入SRR号码就可以啦。完美。25000这是测试用的,只转换前25000条数据。实际操作中不用这个参数。
批量下载+格式转换
建立样本名文件sample.ID
建立sh文件,vim。
fqdir=~/ChIP-seqtest/data/fastq
cat ~/ChIP-seqtest/data/sample.ID | while read id
do
fastq-dump --gzip --split-3 -O ${fqdir} ${id}
done
#保存为sh脚本 提交后台运行命令,脚本文件后缀为.sh
sra2fq.sh 文件放到software/sratoolkit下面,以后就可以调用啦。第一次独立写脚本,开心。