一、过滤与质控
测序获得一对fastq文件,命名为treatment和control,各含两个生物学重复,即:treatment_1、treatment_2;control_1、control_2
首先,回贴测序reads到参考基因组,但是我们都知道测序reads中可能存在测序接头和低质量的序列,故需要截去接头序列和低质量序列以保留高质量的序列。
而目前针对数据过滤、质控的软件也非常的多,为了在最大程度长挽救分析的reads,可以采用trim的方式进行过滤处理,即仅把接头序列和低质量的碱基/序列截掉,故最终的高质量reads的长度一定是长短不一的,但不会对后续的分析带来影响。
推荐使用trim_galore进行处理:
trim_galore -q 10 --stringency 8 -o ${out} --paired ${sample}_R1.fastq.gz ${sample}_R2_001.fastq.gz
生成${sample}_R1_val_1.fq.gz和${sample}_R2_val_2.fq.gz
对于免疫共沉淀测序数据后续检峰的需要,需要同时测序一个对照样本,即input样本。
trim_galore官网:http://www.bioinformatics.babraham.ac.uk/projects/trim_galore/
类似的有trimmomatic等
trimmomatic官网:http://www.usadellab.org/cms/index.php?page=trimmomatic
二、比对
针对比对的话,常用的短序列比对软件均可,如bwa,bowtie2等等
这里以bwa为例:
# alignment & sort
bwa mem -M -t 8 ${reference} ${sample}_R1_val_1.fq.gz ${sample}_R2_val_2.fq.gz | samtools sort -@ 8 - -o ${sample}.bam
# index
samtools index ${sample}.bam
生成比对后的bam文件及其索引文件:
${sample}.bam
${sample}.bam.bai
三、Deduplication
由于PCR扩增会产生序列完全一样的测序reads从而产生了重复比对,需要去除这些重复比对到同一位置的reads,使用picard-tools里的MarkDuplicates功能进行标记处理:
# 标记重复
java
-Xmx3G -jar picard.jarMarkDuplicates VALIDATION_STRINGENCY=SILENT
I={sample}.bam O=${sample}.dedup.bam M=${sample}.markdup.txt
# flag过滤 & sort
samtools view {sample}.dedup.bam -f 3 -F 3840 -q 10 -b | samtools sort -@ 20 -T /tmp/ -o ${sample}.clean.bam -
# index
samtools index ${sample}.clean.bam
最终,得到去重复的,同时过滤低质量比对的、多重比对的reads,得到高质量比对的用于下游分析的reads。
保留flag=3,即read paired、 read mapped in proper pair;
过滤 flag=3840。即 not primary alignment、 read fails platform/vendor quality checks和 read is PCR or optical duplicate.
四、检 峰
一般,对于免疫共沉淀测序的数据,采用macs2等检峰工具,python编写、使用方便、出来速度较快:
macs2 callpeak --keep-dup all --bdg -f BAMPE -t {sample}.clean.bam -c control.bam -g hs -n ${sample}
其中,control.bam比对文件为本文开头提到的input样本,用于检峰扣除背景信号。
最终,本步骤会产生barrowPeak文件,如果存在生物学重复,需要合并重复样本的peak(80%的重叠),可以使用bedtools
merge配合awk命令进行筛选,得到重复样本的一致性peak。或者,可以使用IDR软件得到重复样本内的consensus peaks。
MACS2软件: https://pypi.org/project/MACS2/