Fsplit
for split fastq from mix bcl or fastq data by barcode/index
Install / Use
/learn @yodeng/FsplitREADME
fsplit
fsplit是用于根据barcode信息从BCL或fastq混合数据中拆分样本数据的软件。
软件环境
- python >=2.7.10, <=3.11
- bcl2fastq
- linux
安装
pip install git+https://github.com/yodeng/fsplit.git
用法
fsplit可用于fastq或bcl数据拆分。
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拆分支持
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
