RNA-seq全流程分析

2023-05-16

RNA-seq 数据处理记录(2)

原始数据的处理

去除adapter

  1. 找到接头序列
    可以通过建库的试剂盒在Illumina官网查找,也可以通过trim_galore自动找到接头并去除。
conda install trim-galore
trim_galore -q 25 --phred33 --stringency 3 --length 36  --paired *_1.fq.gz *_2.fq.gz --gzip -o ./cleandata/trim_galoredata/

参数解释:
–quality:设定Phred quality score阈值,默认为20,一般设为25.
–phred33::选择-phred33或者-phred64,表示测序平台使用的Phred quality score。具体怎么选择,看你用什么测序平台。
–adapter:输入adapter序列。也可以不输入,Trim Galore!会自动寻找可能性最高的平台对应的adapter。自动搜选的平台三个,也直接显式输入这三种平台,即–illumina、–nextera和–small_rna。
–stringency:设定可以忍受的前后adapter重叠的碱基数,默认为1(非常苛刻)。可以适度放宽,因为后一个adapter几乎不可能被测序仪读到。
–length:设定输出reads长度阈值,小于设定值会被抛弃。
–paired:对于双端测序结果,一对reads中,如果有一个被剔除,那么另一个会被同样抛弃,而不管是否达到标准。
–retain_unpaired:对于双端测序结果,一对reads中,如果一个read达到标准,但是对应的另一个要被抛弃,达到标准的read会被单独保存为一个文件。
–gzip和–dont_gzip:清洗后的数据zip打包或者不打包。
–output_dir:输入目录。需要提前建立目录,否则运行会报错。
– trim-n : 移除read一端的reads
代码示例:

trim_galore -q 25 --phred33 --stringency 3 --length 36  --paired CK-4_1.fq.gz CK-4_2.fq.gz --gzip -o ./cleandata/trim_galoredata/

去除random barcode

通过上面的步骤我们去除了原始序列中的adapter,但是在原始的read中还存在随机的random barcode或者是reads前面由于测序机器刚开始启动,会导致测序的碱基出现问题,这时候我们需要将其切除。

在这里插入图片描述
比如这里的前10个碱基

zcat xxx.fq.gz| fastx_trimmer -f 11    -l 125 -z -o ./cut_fastq/xxx.fq.gz

通过 fastx_trimmer 对前面的序列进行切割。(这里的序列虽然质量很高但是不是我们真正想要的序列而是加上去的,或者是机器的误读)
zcat 读取 压缩的文件
| 管道符,通过将zcat读取的文件传递给 fastx_trimmer
-f 截取序列的起始位置
-l 截取序列的末端
-z 为输出的文件是压缩形式的
-o 为输出的的文件名称

去除rRNA

  1. 原理
    对于测序获得的原始的fastq由于接头序列的存在以及测序平台导致低质量的reads需要去除,这样才能保证最后的mapping质量。
    目前有两种不同的建库方法,一种是直接通过polyA直接提取出mRNA,另一种建库方法是通过对rRNA进行去除(total RNA 中含量最多的就是rRNA),第二种方法得到的RNA其中包括了mRNA以及一些ncRNA,对于第二种建库的方法不一定能够保证对rRNA全部去除所以我们在建完库后仍然会有rRNA的存在这就会影响到我们下游的分析,所以我们需要在正式的mapping前,把reads中的rRNA去除。
  2. 操作
    首先我们需要获取物种的rRNA,并建立索引,然后将原始的reads(已经去过接头的)比对到rRNA上,通过比对我们获取到没有比对上的reads,这样就可以获得去除rRNA的reads。
  • 下载物种的rRNA序列
  • 建立index
  • mapping得到没有比对上的序列

下载物种的rRNA序列
ncbi
从NCBI中下载数据
从NCBI中下载选择核酸数据库
在这里插入图片描述
下载rRNA文件(原核生物:16SrRNA 23SrRNA 5SrRNA 真核生物: 18SrRNA)将其合并为一个fasta文件。
注:有时候NCBI中的16s 或者是18s可能不是很完整,所以需要通过另外一个数据库寻找完整的16s或者是18srRNA,silva通过这个数据库,可以找到完整的18srRNA以及16srRNA
在这里插入图片描述
可以通过物种名进行搜索,在左上角可以看到是SSU(核糖体小亚基的数据库,16srRNA和18srRNA都是小亚基)搜索后就可以得到物种的16srRNA(原核生物),18srRNA(真核生物). 在这里插入图片描述
选中下载
在这里插入图片描述
下载FASTA withoutgaps即可,点击start export

在这里插入图片描述
数据库会找寻一段时间状态显示为 Waiting
在这里插入图片描述
数据库状态显示为 finished 点击 Downloads file 下载即可

构建rRNA的index
构建rRNA的index使用bowtie2

conda install bowtie2
bowtie2-build rRNA.fa -p rRNA_index

首先使用conda 安装 bowtie2,然后使用bowtie2-build命令构建rRNA_index
参数:
rRNA.fa 为rRNA的序列
-p 为建立的index 命名,不加这个参数,会自动的将输入的fasta格式的文件作为index的名称。
rRNA_index 为 index的名字

去除原始数据中的rRNA_reads

bowtie2 -x ./rRNA/rRNA_index -1 ./clear_data/SRR8138826.man_1_val_1.fq.gz   -2 ./clear_data/SRR8138826.man_2_val_2.fq.gz -p 16 -S ./sam_file/sam_out_bowie2.sam  --un-conc-gz unmap_c_26

参数:
-x 指定bowtie2所需要的索引文件
-1 为双端测序文件中的reads1 (去除adapter)
-2 为双端测序文件中的reads2 (去除adapter)
-S 输入的sam文件名
–un-conc-gz 以压缩的形式输出没有比对上的文件(我们需要的去除rRNA的reads)

mapping 将处理过的reads比对到参考基因组上

这里我们使用的软件为tophat,tophat 是基于python2的,所以我们需要构建一个python2的环境,这里我们使用conda命令进行构建。

conda create -n py2env python=2.7

构建完环境后就可以开始比对了

首先构建索引:

bowtie2-build -f /public/Reference/GCF_020463755.1_ASM2046375v1_genomic.fa --threads 24 GCF_020463755.1_ASM2046375v1_genomic

-f 基因组序列文件
– threads 为调用的核心数
GCF_020463755.1_ASM2046375v1_genomic index的名称

tophat  -o tophatout  -G ./ref/ref.gtf  -p 16 ./ref/GCF_020463755.1_ASM2046375v1_genomic unmap_c_24.1.gz unmap_c_24.2.gz

参数:
-o 为结果输出的文件夹
-G 需要的GTF格式的注释文件

  • p 调用的核心数
    ./ref/GCF_020463755.1_ASM2046375v1_genomic bowtie2构建的index
    unmap_c_24.1.gz read1(已经去除过adapt random barcode rRNA)
    unmap_c_24.2.gz read2(已经去除过adapt random barcode rRNA)

使用cufflinks计算各个样本的FPKM

cufflinks -o {output} -p 16 -G {GTF}  {input}

-o 输出目录
-p 核心数
-G 注释文件
{input} 上一步输出的SAM文件

cufflinks输出的结果:
(参考:

  1. transcripts.gtf

该文件包含Cufflinks的组装结果isoforms。前7列为标准的GTF格式,最后一列为attributes。其每一列的意义:

列数 列的名称 例子 描述

1 序列名 chrX 染色体或contig名;
2 来源 Cufflinks 产生该文件的程序名;
3 类型 exon 记录的类型,一般是transcript或exon;
4 起始 1 1-base的值;
5 结束 1000 结束位置;
6 得分 1000 ;
7 链 + Cufflinks猜测isoform来自参考序列的那一条链,一般是’+‘,’-‘或’.';
8 frame . Cufflinks不去预测起始或终止密码子框的位置;
9 attributes … 详见下

每一个GTF记录包含如下attributes:

Attribute 例子 描述

gene_idCUFF.1Cufflinks的gene id;
transcript_idCUFF.1.1 Cufflinks的转录子 id;
FPKM 101.267 isoform水平上的丰度,FragmentsPerKilobase of exon model perMillion mapped fragments; frac 0.7647 保留着的一项,忽略即可,以后可能会取消这个;conf_lo 0.07 isoform丰度的95%置信区间的下边界,即 下边界值 = FPKM * ( 1.0 - conf_lo );conf_hi 0.1102 isoform丰度的95%置信区间的上边界,即 上边界值 = FPKM * ( 1.0 + conf_hi ); cov 100.765 计算整个transcript上read的覆盖度;full_read_support yes 当使用 RABT assembly 时,该选项报告所有的introns和exons是否完全被reads所覆盖

  1. ispforms.fpkm_tracking

isoforms(可以理解为gene的各个外显子)的fpkm计算结果

  1. genes.fpkm_tracking
    gene的fpkm计算结果Cuffmerge简介
    Cuffmerge将各个Cufflinks生成的transcripts.gtf文件融合称为一个更加全面的transcripts注释结果文件merged.gtf。以利于用Cuffdiff来分析基因差异表达。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RNA-seq全流程分析 的相关文章

  • java 无需SSL验证的HTTP请求

    实例 如果有用请给我个赞好吗 public static Map lt String Object gt doPost String url Map lt String String gt paramaters HttpPost httpR
  • Kafta原理

    消息队列通信的模式 通过上面的例子我们引出了消息中间件 xff0c 并且介绍了消息队列出现后的好处 xff0c 这里就需要介绍消息队列通信的两种模式了 xff1a 一 点对点模式 如上图所示 xff0c 点对点模式通常是基于拉取或者轮询的消
  • MapStruct简介简单应用

    1 MapStruct 是什么 xff1f 1 1 JavaBean 的困扰 对于代码中 code JavaBean code 之间的转换 xff0c 一直是困扰我很久的事情 在开发的时候我看到业务代码之间有很多的 code JavaBea
  • SpringBoot入门案例

    基础项目该包含哪些东西 Swagger在线接口文档 CodeGenerator 代码生成器 统一返回 通用的分页对象 常用工具类 全局异常拦截 错误枚举 自定义异常 多环境配置文件 Maven多环境配置 日志配置 JenkinsFile S
  • Spring事务管理机制

    一 Spring事务管理的几种方式 xff1a Spring事务在具体使用方式上可分为两大类 xff1a 1 声明式 基于 TransactionProxyFactoryBean的声明式事务管理 基于 lt tx gt 和 lt aop g
  • SpringBoot 注解大全

    一 注解 annotations 列表 1 64 SpringBootApplication 包含了 64 ComponentScan 64 Configuration和 64 EnableAutoConfiguration注解 其中 64
  • Spring 中的bean 是否线程安全

    结论 xff1a 不是线程安全的 Spring容器中的Bean是否线程安全 xff0c 容器本身并没有提供Bean的线程安全策略 xff0c 因此可以说Spring容器中的Bean本身不具备线程安全的特性 xff0c 但是具体还是要结合具体
  • SpringBoot使用PageHelper分页

    一 开发准备 1 开发工具 IntelliJ IDEA 2020 2 3 2 开发环境 Red Hat Open JDK 8u256 Apache Maven 3 6 3 3 开发依赖 SpringBoot lt dependency gt
  • Windows Server 出现多个匿名登陆用户的问题解决

    1 起因 工作中需要在同一台 windows server的机器上多个用户同时使用 xff0c 遂建立多个账号 xff0c 供大家进行使用 2 问题 一段时间后发现系统特别卡顿并会死机 xff0c 查询原因后发现 xff0c 如图所示 xf
  • java锁 synchronized的使用及原理剖析

    synchronized用法有三个 修饰实例方法 修饰静态方法 修饰代码块 1 修饰实例方法 synchronized关键词作用在方法的前面 xff0c 用来锁定方法 xff0c 其实默认锁定的是this对象 public class Th
  • 面试HashMap的原理

    一般来说 xff0c java面试必不可少的菜品 xff0c 那就是 来 xff0c 讲一下HashMap的原理 那么今天就来讲一下HashMap的原理 先说一下JDK1 7跟JDK1 8对它的改变 JDK1 7之前使用的是数组加链表 xf
  • JAVA开发环境配置

    1 自己在网上下载JDK xff0c 本教程使用JDK1 6 下载好JDK后双击运行 xff0c 然后根据提示进行安装 安装好JDK后 bin xff1a 存放java可执行文件 如 xff1a javac exe java exe等等 d
  • MyEcplise_Maven搭建SSM框架

    Maven源码 链接 xff1a https pan baidu com s 1eTQMJQy 密码 xff1a 8j1q 博文中的MyEcplise 链接 xff1a https pan baidu com s 1dEdQYa 密码 xf
  • 怎么使用Linux常用命令大全

    系统信息 arch 显示机器的处理器架构 1 uname m 显示机器的处理器架构 2 uname r 显示正在使用的内核版本 dmidecode q 显示硬件系统部件 SMBIOS DMI hdparm i dev hda 罗列一个磁盘的
  • MySQL常用语句详解

    Winfrom连接网页 第一种方法 xff1a 调用本地浏览器System Diagnostics Process Start 34 https www microsoft com zh cn 34 第二种方法 xff1a 连接 strin
  • Maven搭建SSH连接Oracle数据库

    Maven工程搭建SSH连接Oracle数据库 首先在pom xml里引入jar lt project xmlns 61 34 http maven apache org POM 4 0 0 34 xmlns xsi 61 34 http
  • MyBatis简介与运用

    1 Mybatis简介 1 1 Mybatis是什么 Mybatis是一个java的持久层框架 xff0c 保存到数据库 持久化 xff1a 保存到本地文件 1 2 Mybatis的作用 操作数据库 1 3 为什么要学习mybatis 1
  • SpringMVC入门原理

    1 Springmvc原理 1 1 什么是springmvc SpringMVC是一个Spring框架内置的对MVC模式的实现 xff0c 就spring的一个子模块 1 2 什么是mvc Model view controller 模型
  • MyBatis逆向工程建立实体

    下面是用MyEcplise开发工具 为例 使用Ecplise操作步骤雷同于MyEcplise 1 第一步 2 搜索MyBatis 等待装载完成 xff0c 完成后 3 创建一个web项目 创建包 xff0c 创建generatorConfi
  • python apscheculer 报错 skipped: maximum number of running instances reached (1)

    apscheduler定时任务报错skipped maximum number of running instances reached 1 原因是默认max instances最大定时任务是1个 xff0c 可以通过在add job中调m

随机推荐