生物信息-测序数据的获取、 格式转换和质控
一,下载软件Aspera
- 简介:Aspera是一款高速传输软件,不受文件大小,网络条件等影响,速度比HTP和FTTP协议快数百倍。Windows和Linux系统均可下载使用。
1.Windows下载:浏览器直接搜索Aspera-connect下载浏览器插件。
2.Ubuntu下载:
1.下载Aspera-connec:wget https://download.asperasoft.com/download/sw/connect/3.6.2/aspera-connect-3.6.2.117442-linux-64.tar.gz
2.解压缩:tar zvxf aspera-connect-3.6.2.117442-linux-64.tar.gz
3.运行:sh aspera-connect-3.6.2.117442-linux-64.sh
(此时在home目录下会生成 `.aspera` 的隐藏文件,使用 ls -a 命令可查看)
4.添加环境变量:echo 'export PATH=~/.aspera/connect/bin:$PATH' >>~/.bashrc
5.使其生效:source ~/.bashrc
6.拷贝秘钥文件:cp ~/.aspera/connect/etc/asperaweb_id_dsa.openssh ~/
7.拷贝协议文件:sudo cp ~/.aspera/connect/etc/aspera-license /usr/local/bin/
-
Aspera命令行工具的使用:
ascp [参数] 目标文件 目的地址
-
ascp常用参数:
- -T ---- 取消加密。若不添加此参数,可能会下载不了。
- -i ---- 输入私钥,一般不要少。安装 aspera 后在目录 ~/.aspera/connect/etc/ 下有几个私钥, 使用 linux 服务器的时候一般使用 asperaweb_id_dsa.openssh 文件作为私钥。
- -l string ----- 设置最大传输速度,比如设置为 200M 则表示最大传输速度为 200m/s。 若不设置该参数,则一般可达到10m/s的速度,而设置了,传输速度可以更高。
- -k ---- 断点续传 ,一般设置为1
- -v ---- 可以实时知道程序在做什么,方便查错
- -Q --- 一般加上吧
- --host=string --- ftp的host名,NCBI的为ftp-private.ncbi.nlm.nih.gov;EBI的为 fasp.sra.ebi.ac.uk。
- --user=string --- 用户名,NCBI的为anonftp,EBI的为era-fasp。
- --mode=string --- 选择模式,上传为 send,下载为 recv。
- --file-list --- 批量下载SRA文件的路径
二,在SRA数据库中下载数据
- 简介:SRA数据库是用于存储二代测序的原始数据的数据库。除了原始序列数据外,SRA现在也存在raw reads在参考基因的比对信息。
- 根据SRA数据产生的特点,将SRA数据分为四类:
Studies-- 研究课题,用前缀ERP或SRP表示
Experiments-- 实验设计,用前缀SRS表示
Runs-- 测序结果集,用前缀SRX表示
Samples-- 样品信息。用前缀SRR表示 - SRA中数据结构的层次关系为:Studies->Experiments->Samples->Runs
1、使用Aspera获取单个SRA数据:
- 首先知道SRA数据库数据的存放地址是
ftp-private.ncbi.nlm.nih.gov
,使用时加上ftp://
或者http://
,SRA在Aspera的用户名是anonftp
- 通过输入上述链接(这是已知accession no.的情况下可以直接查找,不知道accession no.的可以去SRA主页查找)然后逐步定位到需要查找的accession no,获得链接。
- 以 SRR6208854为例,可以得到链接
ftp://ftp.ncbi.nlm.nih.gov/sra/srainstant/reads/ByRun/sra/SRR/SRR620/SRR6208854/SRR6208854.sra
将ftp://ftp.ncbi.nlm.nih.gov
改为anonftp@ftp-private.ncbi.nlm.nih.gov:/
注意不要少了: - 完整代码如下:
ascp -v -i ~/.aspera/connect/etc/asperaweb_id _dsa.openssh -T -k 1 -l 200m anonftp@ftp-private.ncbi.nlm.nih.gov:/sra/srainstant/reads/ByRun/sra/SRR/SRR620/SRR62088 54/SRR6208854.sra ./
2、使用Aspera批量下载SRA数据
1. 输入vi sra_list.txt 或 nano sra_list.txt
2. 输入下载链接,并保存,例如/sra/srainstant/reads/ByRun/sra/SRR/SRR623/SRR6232298/ SRR6232298.sra h和/sra/srainstant/reads/ByRun/sra/SRR/SRR623/SRR6232299/ SRR6232299.sra
3. 运行:ascp -T -i ~/.aspera/connect/etc/asperaweb_id_ds a.openssh -k 1 -l 200m --mode recv --host ftpprivate.ncbi.nlm.nih.gov --user anonftp --filelist ./sra_list.txt ./
三、sra toolkit的下载和使用
-
简介:用于下载处理SRA文件,各种数据格式转换的工具包 。
-
常用工具:
--fastq-dump: Convert SRA data into fastq format(将SRA格式转换为fastq格式)
--prefetch: Allows command-line downloading of SRA, dbGaP, and ADSP data -
安装:
1. 下载:wget https://ftptrace.ncbi.nlm.nih.gov/sra/sdk/2.9.2/sratoolkit.2.9.2ubuntu64.tar.gz
不清楚版本可将 2.9.2 替换成 current 。
- 链接的查找方法---在SRA-NCBI主页点击download sra toolkit,进去后选中Ubuntu Linux 64 bit architecture,一种方法是点击右键,选择检查元素,就可以找到链接。另一种方法是选择Ubuntu Linux 64 bit architecture,并复制,粘贴时就可以显示链接(简书里的markdown就可以显现,无意中发现的哈哈)
2. 解压缩:tar zvxf sratoolkit.2.9.2-ubuntu64.tar.gz -C ~/Biosofts/ 解压缩到指定目录
3. 添加环境变量:echo 'export PATH=~/Biosofts/sratoolkit.2.9.2ubuntu64/bin:$PATH' >> ~/.bashrc
4. 使其生效:source ~/.bashrc
5. 检查: prefetch -h
3.1、使用Prefetch下载sra文件
以 SRR6232298为例
prefetch SRR6232298
软件会自动建立~/ncbi/public/sra文件夹,sra文件
3.2、使用fastq-dump,将SRA文件解压为fastq
- 用程序fastq-dump来把文件拆包,从NCBI下下来的数据,双端测序数据是放在一个文件里的,所以需要把它们重新拆解为两个文件
- fastQ格式:是序列格式中常见的一种,一般都包含有四行。
- 第一行由'@'开始,后面跟着序列的描述信息,这点跟fasta格式是一样的。
- 第二行是序列。
- 第三行由'+'开始,后面也可以跟着序列的描述信息。
- 第四行是第二行序列的质量评价字符数跟第二行的序列是相等的。
-
解压单个sra文件:
拆包文件:fastq-dump --split-files SRR6232298.sra
还可以压缩为gzip文件,节省空间:
fastq-dump --gzip --split-files SRR6232298.sra
-
批量解压sra文件:
#!/bin/sh
for i in *sra
do
echo $i
fastq-dump --gzip --split-files $i
done
-
#!/bin/sh是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是此解释此脚本的shell的路径。脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本.
四,NGS介绍
- 简介:
- 二代测序技术(NGS--next generation sequencing):也叫下一代测序技术,相较于第一代测序技术测序通量提高了不少。基本原理是边合成边测序,在Sanger测序方法的基础上,通过技术创新,用不同颜色的荧光标记四种不同的dNTP,当DNA聚合酶合成时,每添加一种dNTP就会释放出不同的荧光,根据捕捉的荧光信号并经过特定的计算机软件处理,从而获得待测DNA的序列信息。
其中illumina的测序,可以有single end和paired end两种,分别从一端和两端进行测序。具体情况可以查看www.bio-info-trainee.com/298.html这篇文章 - 基本概念介绍:
- flowcell:指illumina测序时,测序反应发生的位置,一个flowcell有8个lane(泳道)
- tail:每一次测序荧光扫描的最小单位,每个tile上分布数 目繁多的簇结合位点
- reads:指测序的结果,一条序列称作一条reads
- junction:指进行双端测序时,中间会有200bp测不到的序列
- adapter:测序时需要的一段特定序列
- Pair-end 和 single-end:双端和单端测序
- 基本流程介绍:
-
构建样本文库--Library Preparation
首先将基因组DNA随机打断,片段化成几百碱基或更短的小片段,其次使用酶补平末端不平整的片段,并在两头加上特定的接头Adaptor,adapter包含两部分,分别是测序和建库扩增时的引物序列。然后在进行pcr扩增。 -
桥式pcr,也就是簇生成--Cluster Generation:
将上述DNA样品调整到合适的浓度加入到flowcell中,从而序列的一端与flowcell上面的接头(oligos-p5和p7)进行杂交,连接以后就正式开始桥式PCR。
首先进行第一轮扩增,将序列补成双链,然后加入 NaOH强碱性溶液破坏DNA的双链,并洗脱,洗掉模板链。然后加入缓冲溶液,这时候序列自由端的部分就会和旁边的adpater进行匹配进行一轮PCR,在PCR的过程中,序列是弯成桥状,所以叫桥式PCR,一轮桥式PCR可以使得序列扩增1倍,如此循环下去,然后切掉并冲走一种链,就会得到一个具有完全相同序列的簇,叫cluster (这段可以找NGS测序视频看) -
测序--Sequencing:
单侧测序(SE)、双侧测序(PE)、配对测序(ME)、多重测序
加入特殊处理过的A,T,G,C四种碱基,一轮测序保证只有一个碱基加入当前的测序链,随后加入试剂,使脱氧核糖3号位的的基团变为-OH,然后切掉部分荧光基团,使其在下一轮反应中,不会发出荧光。 - 序列分析--Data Analysis:
- 测序读长短的原因:
- 测序时会有不同步的情况。当测序长度不断延 长,这个杂信号会越来越多,最后很有可能出 现,50个红,50个绿色,这时候我们判断不出 来到底是什么碱基被合成。
- 测序过程中,使用的碱基是特殊处理的,有一 个非常大的荧光基团修饰。在使用DNA polymerase的时候,酶的状态也会受到底物的 影响,越来越差。
-
质量评分:
指的是一个碱基的错误概率的对数值。
为了便于序列存储,通常采用单字符来标示序列的质量值。其质量得分与错误概率的对应关系见下表
Quality Score | Probability of incorrect base call | Base call accuracy |
---|---|---|
10 | 1 in 10 | 90% |
20 | 1 in 100 | 99% |
30 | 1 in 1000 | 99.9 % |
40 | 1 in 10000 | 99.99 % |
50 | 1 in 100000 | 99.999 % |
把这个Quality value加上33或者64转成一个新 的数值,称为Phred,最后把Phred用对应的 ASCII字符表示。
五、质控:
- FastQC介绍:用于测序数据质控的软件,也就是对数据质量进行评估,是一个java软件,下载后可以直接使用(免安 装编译),但是需要自行配置好java环境 。
5.1安装Java
- 下载jdk8
- Windows下载后可以通过ssh传给linux
- linux使用火狐浏览器,输入链接http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html便可以下载
- 登录linux系统,进到usr目录下建立Java目录
sudo mkdir java (要先进入usr目录)
- 解压缩
- 一种方法是将jdk-8u60-linux-x64.tar.gz拷贝到java目录下,再解压缩
1. cp /mnt/hgfs/linux/jdk-8u60-linux-x64.tar.gz /usr/java/
2. tar -zxvf jdk-8u60-linux-x64.tar.gz
*一种方法是直接解压缩,使用参数
sudo tar -zvxf ~/sf_Linux/Biosoft/jdk-8u172-linux-x64.tar.gz -C /usr/java/
(注意路径要根据情况变化)
- 进入/uer/java/目录(注意:可能使用ls命令找不到Java目录,可以尝试使用find命令查找,如
find -name java
,然后进去的时候输入相应路径就可以)
sudo cd /usr/java(路径可能会有不同)
- 建立链接,节省目录长度
sudo ln -s jdk1.8.0_172 latest
sudo ln -s /usr/java/latest default
- 加入环境变量
sudo vi /etc/profile
末尾加上如下几行
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
安装Java可以查看这篇文章:https://www.cnblogs.com/zeze/p/5902124.html
- 使其生效
source /etc/profile
- 检查
java -version
当出现以下情况时说明安装成功:
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) Client VM (build 25.60-b23, mixed mode)
如果没有出现,可能是因为没有安装default,按照屏幕上的命令安装default就可以了,然后在执行Java-version
就行了。
5.2 安装FastQC
5.2.1 安装--按照下列步骤一步步操作
1. 下载:wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/f astqc_v0.11.7.zip
2. 解压到目录下:unzip ~/Biosofts/fastqc_v0.11.7.zip -d ~/Biosofts/ (注意,路径会有所不同)
4. 检查是否解压成功:~/Biosofts/FastQC/fastqc -h
5. 加入环境变量:echo 'export PATH=~/Biosofts/FastQC:$PATH' >>~/.bashrc
6. 使其生效:source ~/.bashrc
7. 检查:fastqc -h
其实也可以直接使用sudo apt-get install fastqc
直接下载。
5.2.2 使用:
可以看这篇文章:https://zhuanlan.zhihu.com/p/20731723
*使用格式:fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
- 介绍参数
- -o --outdir FastQC生成的报告文件的储存路径,生成的报告的文件名是根据输入来定的
- --extract 生成的报告默认会打包成1个压缩文件,使用这个参数是让程序不打包
- -t --threads 选择程序运行的线程数,每个线程会占用250MB内存,越多越快
- -c --contaminants 污染物选项,输入的是一个文件,格式是Name [Tab] Sequence,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析,一般用不到
- -a --adapters 也是输入一个文件,文件的格式Name [Tab] Sequence,储存的是测序的adpater序列信息,如果不输入,目前版本的FastQC就按照通用引物来评估序列时候有adapter的残留
- -q --quiet 安静运行模式,一般不选这个选项的时候,程序会实时报告运行的状况。
- 下面以上课时用的一个例子简单说下:
1.直接分析: fastqc Akle_TTAGGC_L004_R2_001.fastq.gz
2.会生成两个文件,后缀名分别为.html 和.zip
将.html文件传到Windows上查看,可以得到图表化的fastqc报告
5.3数据过滤
-
数据过滤:用来切除接头序列和低质量碱基
目前也已有很多工具:Trimmomatic、seqtk、 cutadapt、 bbduk(BBmap)
5.2.1 Trimmomatic的使用:
- 简介:Trimmomatic 是一个广受欢迎的 Illumina 平台数据过滤工具。Trimmomatic 支持多线程,处理数据速度快,主要用来去除 Illumina 平台的 Fastq 序列中的接头,并根据碱基质量值对 Fastq 进行修剪。
软件有两种过滤模式,分别对应 SE 和 PE 测序数据,同时支持 gzip 和 bzip2 压缩文件,另外也支持 phred-33 和 phred-64 格式互相转化。 - 下载与安装:
1. 下载: –wget http://www.usadellab.org/cms/uploads/supplementary/ Trimmomatic/Trimmomatic-0.38.zip
2. 安装: –unzip Trimmomatic-0.38.zip -d ~/Biosofts/Trimmomatic038/
3. 运行: –java -jar ~/Biosofts/Trimmomatic038/Trimmomatic0.38/trimmomatic-0.38.jar
具体用法可以参考这篇文章:https://www.jianshu.com/p/a8935adebaae
5.2.2 Seqtk 安装与下载
- 安装
sudo apt-get install seqtk
上面这个命令我执行了没用,但是出现了sudo apt autoremove
,我去查了一下资料,发现不要乱使用这个命令,不然系统会删掉很多软件。
然后,我去浏览器直接下载了软件,链接为http://github.com/lh3/seqtk
,接着去解压缩,命令为unzip seqtk-master.zip
- 用途:
seq 主要功能都在这个选项中,也是最常用的一项
sample 用于抽样
subseq 提取序列
fqchk fastq质量评估
mergepe 合并pairend reads
trimfq 很明显是截取fastq
hety 计算某个区域杂合性,筛选杂合位点
gc 识别高低gc区域
mutfa 标记出高变区
mergefa 合并fastq或者fasta文件
famask 屏蔽fasta文件,比如将重复区用字母替换为X,这些区域不参与变异检测
dropse 丢掉不是pair end的reads
rename 修改序列ID,比如将ID中的chr全部去掉
randbase 随机选取碱基
cutN 根据N区域截取序列
listhet 提取杂合位点的位置,DNA序列中,可以用非ATCGN的字母表示杂合位点, listhet可以将这些位点位置列出来。