Skip to content
/ fsplit Public

for split fastq from mix bcl or fastq data by barcode/index

License

Notifications You must be signed in to change notification settings

yodeng/fsplit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fsplit

fsplit是用于根据barcode信息从BCLfastq混合数据中拆分样本数据的软件。

软件环境

  • python >=2.7.10, <=3.11
  • bcl2fastq
  • linux

安装

pip install git+https://github.com/yodeng/fsplit.git

用法

fsplit可用于fastqbcl数据拆分。

fastq数据拆分

对于含有barcode的fastq混合数据,可根据barcode信息将其拆分为样本信息数据。

需提前为fastq数据创建索引文件,加快程序运行速度。

1) fsplit index

1.0.3之前版本采用索引多进程方式实现,1.0.4及以后版本不在需要索引。

fastq文件创建fai索引文件,输出test.fastq.fai文件,自动识别gzip压缩格式。

fsplit index -i test.fastq.gz

也可以使用samtools建立索引,fsplit兼容samtools fqidx的索引输出格式.

2) fsplit split

根据barcode序列,从fastq文件中拆分属于各样本的fastq数据。若fastq索引文件不存在,会先创建索引文件,然后运行split程序。

1.0.4及以后版本不在需要索引,直接读取fastq并处理。

fsplit split --help查看帮助:

参数 描述
-i/--input 输入的fastq文件
-I/--Input 输入的paired fastq文件, read2
-b/--barcode barcode信息文件,两列或三列,第一列为样本名,第二列为barcode1序列,第三列为barcode2序列
-m/--mismatch barcode拆分时运行的错配碱基数,默认0,不允许错配
-o/--output 结果输出目录,不存在会自动创建
-d/--drup 输出结果中是否去除barcode序列,默认不去除
-rc1/--rc-bc1 对barcode1进行反向互补查找
-rc2/--rc-bc2 对barcode2进行反向互补查找
--output-gzip 输出gzip压缩的fastq文件,使用python zlib接口,会减慢运行速度。

BCL数据拆分

支持BCL原始芯片测序数据的拆分,封装bcl2fastq软件,根据barcode信息拆分为各自样本的fastq数据,兼容单端或双端index拆分。

参数说明

使用fsplit bcl2fq命令,拆分bcl数据,相关参数如下:

参数 描述
-i/--input 输入的BCL数据flowcell目录
-s/--sample sample sheet信息文件,两列或三列,空白隔开,第一列为样本名,第二列为indel1(i7)序列,第三列为index2(i5)序列
-m/--mismatch barcode拆分时运行的错配碱基数,默认1,允许1个碱基错配
-t/--threads 运行使用的cpu核数
-o/--output 结果输出目录,不存在会自动创建
-rc1/--rc-index1 将index1(i7)序列反向互补
-rc2/--rc-index2 将index2(i5)序列反向互补
--bcl2fq 指定bcl2fastq软件路径,不指定会自动从$PATH或sys.prefix中查找

版本更新记录

version 1.0.0

  • 设计多进程并发读取和运行方式
  • 仅支持fastq数据拆分
  • 需建立fastq索引

version 1.0.1

  • 添加运行时间记录
  • 优化进程共享队列,批量处理输出

version 1.0.2

  • 新增BCL数据单端index拆分功能
  • fastq读取索引优化

version 1.0.3

  • 新增BCL双端index拆分功能
  • 新增屏幕输出logging日志记录
  • 优化fastq index步骤,采用稀疏索引,减小索引文件大小,加快读取速度
  • 采用互斥锁取代进程共享队列

version 1.0.4

  • 单线程读取,子进程解压,处理后序列直接写入文件,取消建立索引步骤,取消多进程处理,取消文件互斥锁
  • split步骤同时添加golang实现gsplit.

version 1.0.5

  • 新增bcl2fq子命令封装bcl2fastq软件,用于bcl数据拆分

version 1.0.6

  • 新增split子命令对双端paired fastq拆分支持