生信需求:
你有fastq文件,想按照5%,10%,20%,40%,60%,80%,截取fastq的数据量,或按照固定一个自定义比例截取数据量。
特点与功能:
1,随机截取,不是按照原始fastq中的顺序截取。
2,支持PE,和SE reads,
3,仅支持fastq格式。
4,默认按固定比例。(5%,10%,20%,40%,60%,80%)。
5,支持指定比例。比如只想截取45%,则使用-s 45参数既可
6,支持压缩或非压缩文件,自动识别(.fq或.fq.gz)
缺点:
1,随机截取时,会产生大list,导致内存偏高,耗时。
更新:
2019-06-25: 更新了算法,速度提升,
2019-06-25:新增识别压缩与非压缩文件功能
待更新:update to 2019-06-16
1,增加参数使能够不随机截取,按照原始fastq顺序截取,缩短程序运行时间。
2,优化算法,降低内存消耗。
用法:
usage: downsampling.py [-h] [-r1 READ1] [-r2 READ2] [-p PREFIX]
This is description
optional arguments:
-h, --help show this help message and exit
-r1 READ1, --rd1 READ1
input read1 file
-r2 READ2, --rd2 READ2
input read2 file
-p PREFIX, --prefix PREFIX
prefix
举例 -p为输出文件的前缀。
python downsampling.py -r1 16E1L1_R1.fastq.gz -r2 16E1L1_R2.fastq.gz -p 16E1L1
得到如下结果,输出结果的命名为:前缀+ 固定的后缀(xxpct_Rx.fq.gz)。
案例2:
按照指定的比例,截取fastq,只想截取45%的数据。
python downsampling.py -r1 16E1L1_R1.fastq.gz -r2 16E1L1_R2.fastq.gz -p 16E1L1 -s 45
则只会输出16E1L1_45pct_R1.fq.gz 和16E1L1_45pct_R2.fq.gz 两个文件。
案例3:
我的数据只有一个fastq,不是PE数据:
python downsampling.py -r1 16E1L1_R1.fastq.gz -p 16E1L1 -s 45
则只会输出16E1L1_45pct_R1.fq.gz 一个文件。