按比例合并两个fastq
2018-05-11 本文已影响102人
11的雾
按比例合并两个fastq
代码:https://github.com/levinyi/work/blob/master/script/merge_two_fastq/mix_two_fastq_together.py
使用场景:
introduction:
闲来无事,想讲两个物种的fastq按照不同比列合并在一起,再去比对,看比对率如何。
需求:
按比例将fastq,按一定数据量随机混合。需要设定一个比列:10:90,需要设定一个总数据量(总共产生多少条reads)
方法:
fastq1 + fastq2
根据设定的模拟总量和比列,先随机出reads序列的位置,和数量。并取出来合并即可。
比如:需要混合成500条,按照10:90的比例,则需要50条fastq1,和90条fastq2,那么就从fastq1中的总reads数中随机挑选出50条,如果不够则可以重复某条read,同理
用法:
python mix_two_fastq_together.py -a CL100000999_L02_1_1.fq.gz -b CL100000100_L02_5_1.fq.gz -c 10:90 -d 5000000 -o CL100000444_L02_1_1.fq.gz
说明:
脚本用到了python的biopython包去读取fastq格式文件。
脚本用到了python的threading多线程去处理fastq,节省了读取两个fastq的时间。
脚本用到了python 的argparse管理参数。
更新:
20180529:修改了多线程写入时逻辑,避免了写入时的乱码。