19 个版本
0.11.1 | 2023 年 9 月 26 日 |
---|---|
0.11.0 | 2023 年 9 月 25 日 |
0.10.0 | 2023 年 9 月 24 日 |
0.9.8 | 2023 年 7 月 25 日 |
0.8.5 | 2021 年 10 月 31 日 |
在 科学 类别中排名第 73
每月下载量 72
125KB
2K SLoC
NGS-Barcode-Count
适用于 DEL(DNA 编码库)、高通量 CRISPR 测序和条形码测序的快速且内存高效的 DNA 条形码计数器和解码器。包括错误处理和测序质量过滤器。适用于 DEL、高吞吐量 CRISPR 测序、条形码测序。如果包含条形码文件,程序将转换为条形码名称并纠正错误。如果包含随机条形码以压缩 PCR 重复,则不会计数这些重复。使用 8 个线程和约 2GB 的 RAM 使用量,解析超过 4 亿个测序读取仅需不到半小时。
对于 DEL 分析,创建了一个配套的 Python 包:DEL-Analysis
多线程和低资源使用。使用一个线程读取数据,其余线程处理数据,因此至少需要一个双线程机器。该程序不会在 RAM 中存储所有数据,而是顺序处理测序数据以保持内存高效。
错误处理默认为每个恒定区域和条形码的最大序列错误为 20%。这可以通过 CLI 参数进行更改。算法通过最佳匹配来修复任何测序的恒定区域或条形码。如果有两个或更多最佳匹配,则不计入。
还可以通过读取质量分数进行过滤。如果使用,则计算每个条形码的读取质量平均值,如果低于设置的阈值,则不计数读取。算法默认不进行过滤,除非调用 --min_quality 参数。请参阅 fastq 文档以了解读取质量分数。使用的分数是在进行 ASCII 转换和减去 33 后的结果。
灵感来自并采用了来自 decode 的某些想法
目录
安装
本地安装 Rust:此处说明
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
下载和编译 NGS-Barcode-Count
cargo install barcode-count
所需文件
目前支持 FASTQ、序列格式、样本条形码转换和构建块条形码转换。
Fastq 文件
接受未解压的 fastq 文件。
接受 gzipped fastq 文件,但如果程序在预期数量的测序读取之前停止,请解压并重新运行。
序列格式文件
序列格式文件应为一个按格式类型换行的文本文件。以下为支持的格式,其中'#'应替换为与条形码相对应的核苷酸数量:
序列类型 | 文件代码 | 所需/允许数量 |
---|---|---|
常数 | ATGCN | 1个或更多 |
样本条形码 | [#] | 0-1 |
计数条形码 | {#} | 1个或更多 |
随机条形码 | (#) | 0-1 |
示例文件可以在这里找到:scheme.example.txt。由于算法使用正则表达式搜索方案,方案可以存在于序列读数的任何位置。
样本条形码文件
可选
sample_barcode_file 是一个以逗号分隔的文件,格式如下:
条形码 | 样本_ID |
---|---|
AGCATAC | 样本名_1 |
AACTTAC | 样本名_2 |
示例文件可以在这里找到:sample_barcode.example.csv。
计数条形码转换文件
可选
barcode_file 是一个以逗号分隔的文件,格式如下:
条形码 | 条形码_ID | 条形码编号 |
---|---|---|
CAGAGAC | 条形码名_1 | 1 |
TGATTGC | 条形码名_2 | 1 |
ATGAAAT | 条形码名_3 | 2 |
GCGCCAT | 条形码名_4 | 2 |
GATAGCT | 条形码名_5 | 3 |
TTAGCTA | 条形码名_6 | 3 |
示例文件可以在这里找到:barcode.example.csv。
其中第一列是DNA条形码,第二列是条形码ID,可以是DEL、CRISPR靶标ID等微笑字符串,但不能包含逗号。最后一列是条形码编号,作为整数。条形码编号与序列格式文件的顺序相同,从1开始。例如,如果有总共3个条形码,这种情况可能出现在DEL中,那么每一行中这个列将只有1、2或3,每个数字代表这三个条形码中的一个。对于CRISPR或条形码序列,其中可能只有一个条形码需要计数,这个列将全部为1。
运行
barcode-count --fastq <fastq_file> \
--sample-barcodes <sample_barcodes_file> \
--sequence-format <sequence_format_file> \
--counted-barcodes <counted_barcodes_file> \
--output-dir <output_dir> \
--prefix <file_prefix> \
--threads <num_of_threads> \
--merge-output \
--min-quality <min_barcode_read_quality>\
--enrich
- --counted-barcodes 是可选的。如果不使用,输出计数将使用DNA条形码进行计数,不对这些条形码进行错误处理。
- --sample-barcodes 是可选的。如果不使用,如果包含在序列格式中,则使用DNA条形码。否则不使用标识符。
- --output-dir 如果不使用,默认为当前目录。
- --prefix 如果不使用,默认为当前日期。所有文件都以 _sample_name_counts.csv 结尾
- --threads 如果不使用,默认为机器上的线程数。
- --merge-output 标志用于合并输出csv文件,以便每个样本有一个列
- --min-quality 将过滤掉任何条形码的平均质量得分低于此处设置的阈值的读取。默认为0,不进行过滤。
- --enrich 参数标志将找到每个条形码的计数,如果有2个或更多计数条形码包含在内,并将文件输出。如果包含3个以上的双条形码,也会做同样的事情。这对于DEL很有用。
输出文件
每个样本名将得到一个文件,默认格式为 year-month-day_<sample_name>_counts.csv,以下格式(对于3个计数条形码):
条形码_1 | 条形码_2 | 条形码_3 | 计数 |
---|---|---|---|
条形码_ID/DNA代码 | 条形码_ID/DNA代码 | 条形码_ID/DNA代码 | # |
条形码_ID/DNA代码 | 条形码_ID/DNA代码 | 条形码_ID/DNA代码 | # |
其中如果存在计数条形码转换文件,则使用条形码_ID,否则使用DNA代码。 #
表示计数数量
如果调用 --merge_output
,则会创建一个额外的文件,格式如下(以3个样本为例):
条形码_1 | 条形码_2 | 条形码_3 | Sample_1 | Sample_2 | Sample_3 |
---|---|---|---|---|---|
条形码_ID/DNA代码 | 条形码_ID/DNA代码 | 条形码_ID/DNA代码 | # | # | # |
条形码_ID/DNA代码 | 条形码_ID/DNA代码 | 条形码_ID/DNA代码 | # | # | # |
还会在输出文件夹中写入或追加一个额外的barcode_stats.txt文件。这可以跟踪运行信息。
如果调用 --enrich
参数,则输出单重和双重条形码计数文件。
用法
DEL
按照本README中使用的所有示例文件进行设置。通常,您会使用3个'[]'来计数条形码,这代表格式文件中的3个构建块。
CRISPR-seq
与DEL相同的设置,但在格式文件中通常只计算一个'[]'条形码。因此,在计数条形码转换文件中,第三列将包含所有'1'。
Barcode-seq
如果目的是计数随机条形码并将其计数与这些随机条形码关联起来,例如在细胞池的bar-seq和谱系进化等情况下,那么在这种情况下,随机条形码就是计数条形码,并在格式文件中以'[]'表示。不会包含计数条形码转换文件。没有计数条形码转换文件,程序将输出计数随机条形码序列及其关联计数。之后,可以进行聚类或其他分析。
测试结果
在8核心i7-4790K CPU @ 4.00GHz和16GB RAM的机器上,这个算法能在大约半小时内解码超过4亿个测序读数。
未解压的fastq
Total sequences: 418,770,347
Correctly matched sequences: 257,807,865
Constant region mismatches: 151,955,695
Sample barcode mismatches: 3,324,481
Counted barcode mismatches: 5,682,306
Duplicates: 0
Low quality barcodes: 0
Compute time: 0 hours, 23 minutes, 43.439 seconds
-WRITING COUNTS-
Total time: 0 hours, 24 minutes, 11.016 seconds
gzip压缩的fastq
Total sequences: 418,770,348
Correctly matched sequences: 257,807,865
Constant region mismatches: 151,955,695
Sample barcode mismatches: 3,324,481
Counted barcode mismatches: 5,682,306
Duplicates: 0
Low quality barcodes: 0
Compute time: 0 hours, 23 minutes, 20.122 seconds
-WRITING COUNTS-
Total time: 0 hours, 23 minutes, 47.645 seconds
依赖项
~8.5MB
~143K SLoC