生物信息-测序数据的获取、 格式转换和质控

一,下载软件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常用参数:

  1. -T ---- 取消加密。若不添加此参数,可能会下载不了。 
  2. -i ---- 输入私钥,一般不要少。安装 aspera 后在目录 ~/.aspera/connect/etc/ 下有几个私钥, 使用 linux 服务器的时候一般使用 asperaweb_id_dsa.openssh 文件作为私钥。 
  3. -l string ----- 设置最大传输速度,比如设置为 200M 则表示最大传输速度为 200m/s。 若不设置该参数,则一般可达到10m/s的速度,而设置了,传输速度可以更高。
  4. -k ---- 断点续传 ,一般设置为1
  5. -v ---- 可以实时知道程序在做什么,方便查错
  6. -Q --- 一般加上吧
  7. --host=string --- ftp的host名,NCBI的为ftp-private.ncbi.nlm.nih.gov;EBI的为 fasp.sra.ebi.ac.uk。 
  8. --user=string --- 用户名,NCBI的为anonftp,EBI的为era-fasp。 
  9. --mode=string --- 选择模式,上传为 send,下载为 recv。 
  10. --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数据:

  1. 首先知道SRA数据库数据的存放地址是ftp-private.ncbi.nlm.nih.gov,使用时加上ftp://或者http://,SRA在Aspera的用户名是anonftp
  2. 通过输入上述链接(这是已知accession no.的情况下可以直接查找,不知道accession no.的可以去SRA主页查找)然后逐步定位到需要查找的accession no,获得链接。
  3. 以 SRR6208854为例,可以得到链接ftp://ftp.ncbi.nlm.nih.gov/sra/srainstant/reads/ByRun/sra/SRR/SRR620/SRR6208854/SRR6208854.sra
    ftp://ftp.ncbi.nlm.nih.gov改为[email protected]:/注意不要少了:
  4. 完整代码如下:
ascp -v -i ~/.aspera/connect/etc/asperaweb_id _dsa.openssh -T -k 1 -l 200m [email protected]:/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格式:是序列格式中常见的一种,一般都包含有四行。
  1. 第一行由'@'开始,后面跟着序列的描述信息,这点跟fasta格式是一样的。
  2. 第二行是序列。
  3. 第三行由'+'开始,后面也可以跟着序列的描述信息。
  4. 第四行是第二行序列的质量评价字符数跟第二行的序列是相等的。
  • 解压单个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介绍

  • 简介:
  1. 二代测序技术(NGS--next generation sequencing):也叫下一代测序技术,相较于第一代测序技术测序通量提高了不少。基本原理是边合成边测序,在Sanger测序方法的基础上,通过技术创新,用不同颜色的荧光标记四种不同的dNTP,当DNA聚合酶合成时,每添加一种dNTP就会释放出不同的荧光,根据捕捉的荧光信号并经过特定的计算机软件处理,从而获得待测DNA的序列信息。
    其中illumina的测序,可以有single end和paired end两种,分别从一端和两端进行测序。具体情况可以查看www.bio-info-trainee.com/298.html这篇文章
  2. 基本概念介绍:
  • flowcell:指illumina测序时,测序反应发生的位置,一个flowcell有8个lane(泳道)
  • tail:每一次测序荧光扫描的最小单位,每个tile上分布数 目繁多的簇结合位点
  • reads:指测序的结果,一条序列称作一条reads
  • junction:指进行双端测序时,中间会有200bp测不到的序列
  • adapter:测序时需要的一段特定序列
  • Pair-end 和 single-end:双端和单端测序
  1. 基本流程介绍:
  • 构建样本文库--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
  1. 测序读长短的原因:
  • 测序时会有不同步的情况。当测序长度不断延 长,这个杂信号会越来越多,最后很有可能出 现,50个红,50个绿色,这时候我们判断不出 来到底是什么碱基被合成。
  • 测序过程中,使用的碱基是特殊处理的,有一 个非常大的荧光基团修饰。在使用DNA polymerase的时候,酶的状态也会受到底物的 影响,越来越差。
  1. 质量评分:
    指的是一个碱基的错误概率的对数值。
    为了便于序列存储,通常采用单字符来标示序列的质量值。其质量得分与错误概率的对应关系见下表
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

  1. 下载jdk8
  • Windows下载后可以通过ssh传给linux
  • linux使用火狐浏览器,输入链接http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html便可以下载
  1. 登录linux系统,进到usr目录下建立Java目录
sudo mkdir  java (要先进入usr目录)
  1. 解压缩
  • 一种方法是将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/  
 (注意路径要根据情况变化)
  1. 进入/uer/java/目录(注意:可能使用ls命令找不到Java目录,可以尝试使用find命令查找,如find -name java,然后进去的时候输入相应路径就可以)
sudo cd /usr/java(路径可能会有不同) 
  1. 建立链接,节省目录长度
sudo ln -s jdk1.8.0_172   latest 
sudo ln -s /usr/java/latest  default  
  1. 加入环境变量
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

  1. 使其生效
source /etc/profile  
  1. 检查
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

  • 介绍参数
  1. -o --outdir FastQC生成的报告文件的储存路径,生成的报告的文件名是根据输入来定的
  2. --extract 生成的报告默认会打包成1个压缩文件,使用这个参数是让程序不打包
  3. -t --threads 选择程序运行的线程数,每个线程会占用250MB内存,越多越快
  4. -c --contaminants 污染物选项,输入的是一个文件,格式是Name [Tab] Sequence,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析,一般用不到
  5. -a --adapters 也是输入一个文件,文件的格式Name [Tab] Sequence,储存的是测序的adpater序列信息,如果不输入,目前版本的FastQC就按照通用引物来评估序列时候有adapter的残留
  6. -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可以将这些位点位置列出来。

你可能感兴趣的:(生物信息-测序数据的获取、 格式转换和质控)