基于barcode拆分二代序列

为了节约成本,研究者们通常会把多个样品混在一个文库,并给不同样品加上一段 Barcode 序列。在后续的生物信息分析中,根据 Barcode 序列即可将不同样品的序列拆分开来。
我们可以利用cutadpat或者fastq-multx来进行拆分,前者可以直接conda install下载,接下来主要介绍后者的使用。

git clone https://github.com/brwnj/fastq-multx
cd fastq-multx
make

fastq-multx 参数

-o, 输出文件,一个输入文件一个输出文件流,格式: %.R1.fq.gz, %为barcode对应的样本名
-m, barcod允许的主要错配个数,一般设置为0, 默认1
-B, barcode文件,允许单端和双端barcode
-n, 打印barcode序列
-b, 从序列的5'端碱基开始匹配barcode
-e, 从序列3'端开始匹配序列
-q, 控制barcode碱基的最小phred quality值,默认为0,不控制
-d, 控制匹配的最佳barcode位置和此佳barcode位置的位置,两个匹配距离不能超过2个碱基

barcode 文件格式 (制表符分隔:单端 barcode 只需要提供两列数据,双端 barcode 需要中间加上 ‘-”)

$ head barcode.txt
1_ddda_8c_T5_1  GCGT-GCGT
1_ddda_8c_T5_2  GCGT-GTAG
1_ddda_8c_T5_3  GCGT-ACGC
2_ddda_8c_T5_1  GCGT-CTCG
2_ddda_8c_T5_2  GCGT-GCTC
2_ddda_8c_T5_3  GCGT-AGTC

使用Demultiplexing:

mkdir fastq_multx_output-1
../soft/fastq-multx/fastq-multx -B barcode.txt -m 1 -b \
raw_data/Y1_L1_701D01.R1.fastq.gz \
raw_data/Y1_L1_701D01.R2.fastq.gz \
-o %.R1.fastq -o %.R2.fastq
mv *fastq fastq_multx_output-1/
# 因为桥式PCR测序过程中双端序列方向不一定一致,因此需要颠倒两测序文件进行二次拆分
mkdir fastq_multx_output-2
../soft/fastq-multx/fastq-multx -B barcode.txt -m 1 -b raw_data/Y1_L1_701D01.R1.fastq.gz \
raw_data/Y1_L1_701D01.R2.fastq.gz \
-o %.R1.fastq -o %.R2.fastq
mv *fastq fastq_multx_output-2/

# 合并两次拆分的结果
mkdir fastq_multx_output
for i in `ls fastq_multx_output-1/*R1.fastq`; do a=${i/.R1.fastq/}; a=${a/fastq_multx_output-1\//}; echo "$a"; done > sample.list
for i in `cat sample.list`; do echo "cat fastq_multx_output-1/$i.R1.fastq fastq_multx_output-2/$i.R2.fastq > ./fastq_multx_output/$i.R1.fastq";done > command.combine.R1.list
for i in `cat sample.list`; do echo "cat fastq_multx_output-1/$i.R2.fastq fastq_multx_output-2/$i.R1.fastq > ./fastq_multx_output/$i.R2.fastq";done > command.combine.R2.list
sh command.combine.R1.list
sh command.combine.R2.list

你可能感兴趣的:(基于barcode拆分二代序列)