wdcp新建网站,佛山网站建设联系,产品推广员,手机商城毕业设计对 fastq 和 bam 进行 downsample 一、Fastq1、seqtk二、Bam1、samtools2、Picard DownsampleSam3、比较 并行采样模板 一、Fastq
1、seqtk
Seqtk 是一种快速轻量级的工具#xff0c;用于处理 FASTA 或 FASTQ 格式的序列。 它可以无缝解析 FASTA 和 FASTQ 文件#xff0c;这… 对 fastq 和 bam 进行 downsample 一、Fastq1、seqtk二、Bam1、samtools2、Picard DownsampleSam3、比较 并行采样模板 一、Fastq
1、seqtk
Seqtk 是一种快速轻量级的工具用于处理 FASTA 或 FASTQ 格式的序列。 它可以无缝解析 FASTA 和 FASTQ 文件这些文件也可以通过 gzip 进行压缩。其中的seqtk sample可以用来从fastq中采样。具体用法如下
#对于pair-end数据需保证R1/R2的随机种子相同
seqtk sample -s 100 R1.fq.gz 0.5 R1.0_5.fq.gz
seqtk sample -s 100 R2.fq.gz 0.5 R2.0_5.fq.gz#!/bin/bash
set -e
input$1
output$2
frac$3 # 0.2seqtk sample -s 1011 ${input} ${frac} ${output}
可以指定一个整数提取一定数目的reads也可以指定一个小数提取一定比例的reads。
二、Bam
1、samtools
samtools view提供了一个参数可以用于downsample方法如下
samtools view -s seed.freq input.bam -b -o downsample.bam其中seed表示随机种子int类型的整数freq为downsample的频率float类型的小数。100.5表示以随机种子为100取出50%的数据。
2、Picard DownsampleSam
该工具对SAM或BAM文件应用下采样算法。该算法中Pair-end的reads要么都保留要么都丢弃。标记为non-primary的reads pair取将全部丢弃。每次读取被保留的概率为P因此使用完全相同的输入以相同的顺序和RANDOM_SEED的相同值执行的运行将产生相同的结果。
其使用方法与常规Picard的方法一致Picard的一些公共参数该算法也包括。该算法主要有以下参数
java -jar picard.jar DownsampleSam \Iinput.bam \Odownsampled.bam \P0.5 \R100 \ACCURACY0.00001 \STRATEGYConstantMemory –INPUT/-I, 指定输入bam文件 –OUTPUT/-O, 指定输出bam文件 –ACCURACY/-A, 算法的精度误差尽可能保证在该精度范围默认1e-4 –RANDOM_SEED/-R, 设定随机种子默认1 –PROBABILITY/-P, downsample的比例默认1.0 –STRATEGY/-S, 采用策略默认ConstantMemory 使用STRATEGY选项可以支持许多不同的下采样策略:
ConstantMemory使用哈希投影策略在固定内存中运行。适用大量的输入。准确性会随着输出数据的降低而降低。HighAccuracy尽可能的保证准确性即做到降采样的比例接近约定的比例。因此该策略需要与输入的数据流中模板名称数量成比例的内存因此在运行大型输入文件时将需要大量内存。适用于较小的数据输入Chained是一个折衷的策略综合了ConstantMemory和HighAccuracy的一些优点。使用 ConstantMemory策略downsample到大约期望的比例然后使用HighAccuracy策略精确完成。在一次传递中工作将提供接近(但往往不如)HighAccuracy的精度同时需要与从ConstantMemory策略到HighAccuracy策略发出的读取集成比例的内存。当对大的输入进行小比例的下采样时(例如对数亿次读取进行下采样只保留2%)效果很好。当输入包含 50,000个reads-pair时应该有99.9%的准确率。适用于从大数据中取较低比例的数据。 3.两种方式的比较 我们测试了两种从bam中downsample的的方法从相同的bam出发设定不同的梯度和随机种子进行测试。
3、比较
首先计算了每个梯度的数据量与理论上的数据量。两种方法得到的数据与理论值具有很好的一致性。但是对于相同频率不同随机种子之间得到的数据量会存在细微的差距。
其次比较了两个重复之间的一致性发现设置相同的随机种子和频率时得到的两个文件完全一致MD5检验值相同。
最后比较了时间上的差异采用相同的计算资源Picard要比samtools至少节约80%的时间。
并行采样模板
#!/bin/bash
set -e
input_dir$1
out_dir$2
frac$3 # 0.5i1
for fq1 in ls ${input_dir} |grep R1.fastq.gz
dofastq_nameecho $fq1 |sed s/.R1.fastq.gz// fq2echo $fq1 | sed s/R1/R2/ #echo $fq1 $fq2seqtk sample -s 1011 ${input_dir}/${fq1} ${frac} |gzip ${out_dir}/${fastq_name}.R1.fastq.gz seqtk sample -s 1011 ${input_dir}/${fq2} ${frac} |gzip ${out_dir}/${fastq_name}.R2.fastq.gz n$[ i % 5 ]if [ $n -eq 0 ]; thenwaitfii$[ i 1 ]wait
done
参考 https://www.cnblogs.com/Sunny-King/p/Bioinformatics-Downsample.html