生信需求:
你有fastq文件,想按照5%,10%,20%,40%,60%,80%,截取fastq的數(shù)據(jù)量,或按照固定一個自定義比例截取數(shù)據(jù)量。
特點與功能:
1,隨機截取,不是按照原始fastq中的順序截取。
2,支持PE,和SE reads,
3,僅支持fastq格式。
4,默認按固定比例。(5%,10%,20%,40%,60%,80%)。
5,支持指定比例。比如只想截取45%,則使用-s 45參數(shù)既可
6,支持壓縮或非壓縮文件,自動識別(.fq或.fq.gz)
缺點:
1,隨機截取時,會產(chǎn)生大list,導(dǎo)致內(nèi)存偏高,耗時。
更新:
2019-06-25: 更新了算法,速度提升,
2019-06-25:新增識別壓縮與非壓縮文件功能
待更新:update to 2019-06-16
1,增加參數(shù)使能夠不隨機截取,按照原始fastq順序截取,縮短程序運行時間。
2,優(yōu)化算法,降低內(nèi)存消耗。
用法:
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
得到如下結(jié)果,輸出結(jié)果的命名為:前綴+ 固定的后綴(xxpct_Rx.fq.gz)。

image.png
案例2:
按照指定的比例,截取fastq,只想截取45%的數(shù)據(jù)。
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:
我的數(shù)據(jù)只有一個fastq,不是PE數(shù)據(jù):
python downsampling.py -r1 16E1L1_R1.fastq.gz -p 16E1L1 -s 45
則只會輸出16E1L1_45pct_R1.fq.gz 一個文件。