#genomics #file-format #bioinformatics #command-line-tool #10x #read #pipseq

app pipspeak

将PIPSeq文件转换为10X Genomics兼容的FASTQ文件的工具

5个版本

0.1.9 2023年10月16日
0.1.8 2023年8月9日
0.1.7 2023年6月16日
0.1.6 2023年6月16日
0.1.5 2023年6月16日

生物学分类中排名第94

MIT许可证

60KB
957

pipspeak

一个命令行工具,用于白名单过滤pipseq读取并转换为10X风格格式。

概述

此工具用于对PIPSeq读取与其相应的条码白名单进行过滤,然后输出类似于10X读取的fastq文件格式。

它将解析PIPSeq格式,识别细胞条码,并写入一个新文件,以类似于10X序列构造,用于与其他尚未采用PIPSeq格式的工具一起使用。

它还将输出所有发现的细胞条码的白名单,以供下游映射工具使用。

PIPSeq v3 序列构造

PIPSeq序列构造以以下方式组织

                                        ┌─'illumina_p5:29'
                                        ├─I2.fastq.gz────── ──'index5:8'
                                        ├─'truseq_read1:33'
                                        │                   ┌─'cb1:8'
                                        │                   ├─'linker1:3'
                                        │                   ├─'cb2:6'
                                        │                   ├─'linker2:3'
                                        ├─R1.fastq.gz───────┤
                                        │                   ├─'cb3:6'
─────────────────── ──RNA───────────────┤                   ├─'linker3:5'
                                        │                   ├─'cb4:8'
                                        │                   └─'umi:12'
                                        │                   ┌─'cDNA:98'
                                        ├─R2.fastq.gz───────┤
                                        │                   └─'ligationT:1'
                                        │                   ┌─'ME2:19'
                                        ├─nextera_read2─────┤
                                        │                   └─'s7:15'
                                        ├─I1.fastq.gz────── ──'index7:8'
                                        └─'illumina_p7:24'

因此,生成的R1和R2文件简化为

# R1
[barcode]ATG[barcode]GAG[barcode]TCGAG[barcode][UMI]

# R2
[cDNA]

细胞条码来自4个不同的白名单。最终的细胞条码是这些列表的组合之一。

10X 文件格式

10X序列构造以以下方式组织

                                        ┌─'illumina_p5:29'
                                        ├─'truseq_read1:10'
                                        │                   ┌─'barcode:16'
                                        ├─R1.fastq.gz───────┤
                                        │                   └─'umi:12'
─────────────────── ──RNA───────────────┤
                                        ├─R2.fastq.gz────── ──'cDNA:98'
                                        ├─'truseq_read2:34'
                                        ├─I1.fastq.gz────── ──'index7:8'
                                        └─'illumina_p7:24'

因此,生成的R1和R2文件简化为

# R1
[barcode][UMI]

# R2
[cDNA]

用法

这是一个单命令CLI工具。它需要R1和R2文件路径以及一个配置yaml,该yaml提供了条码的文件路径并描述了间隔符。

对于v3条码,您可以使用此GitHub仓库中data/下的配置和条码文件。

pipspeak -c data/config_v3.yaml \
    -i data/example_v3/example_R1.fq.gz \
    -I data/example_v3/example_R1.fq.gz

输出

此程序每次运行将输出3个文件

  1. <args.prefix>_R1.fq.gz:一个fastq文件,其中包含所有通过白名单的读取的[barcode][UMI]构造。
  2. <args.prefix>_R2.fq.gz:所有通过白名单的R2的未修改fastq文件。
  3. <args.prefix>_whitelist.txt:数据集中找到的所有条码的白名单。
  4. <args.prefix>_log.yaml:包含运行过滤统计信息的日志文件。

配置

配置yaml非常简陋,如下所示。它提供了条码的文件路径,然后设置间隔序列。

barcodes:
  bc1: "data/barcodes_v3/fb_v3_bc1.tsv"
  bc2: "data/barcodes_v3/fb_v3_bc2.tsv"
  bc3: "data/barcodes_v3/fb_v3_bc3.tsv"
  bc4: "data/barcodes_v3/fb_v3_bc4.tsv"
spacers:
  s1: "ATG"
  s2: "GAG"
  s3: "TCGAG"

依赖项

~9–18MB
~190K SLoC