2个版本
0.2.1 | 2023年6月7日 |
---|---|
0.2.0 | 2023年6月7日 |
#148 在 生物学
62KB
1K SLoC
strif
安装
下载二进制文件
该工具的二进制文件可以在 "发行版" 标签下找到。
Cargo
- 按照此指南安装rust工具链,以安装cargo。
- 运行
cargo install strif
用法
序列图对齐
要生成样本与STR位点的序列图对齐,请使用ExpansionHunter。该工具将为每个样本生成一个.realigned.bam
文件。运行ExpansionHunter的说明可在此处找到。
提取重复序列
要从ExpansionHunter BAMlet (.realigned.bam
)中提取重复序列,请运行以下命令。如果未指定输出,则输出将保存为与BAMlet相同的目录,并以.repeat_seqs.tsv
后缀。
strif extract <BAMLET> [OUTPUT]
分析STR中断
要从提取的重复序列(strif extract
的输出)分析STR中断,请运行以下命令。STR目录需要与这些目录相同格式。如果未指定输出路径,则输出将保存为与重复序列文件相同的目录,并以.strif_profile.tsv
后缀。
strif profile [OPTIONS] <REPEAT_SEQS> <STR_CATALOG> [OUTPUT] [OUTPUT_ALIGNMENTS]
选项
-z Output visual alignments. Default is false
-f, --filter <FILTER> Filter locus IDs using a regular expression. Defaults to None. This is useful for filtering out loci that are not of interest
-A <MATCH_SCORE> [default: 1]
-B <MISMATCH_PENALTY> [default: 8]
-O <GAP_OPEN_PENALTY> [default: 10]
-E <GAP_EXTEND_PENALTY> [default: 1]
合并STR中断配置文件
要合并多个样本的STR中断配置文件,请运行以下命令。如果未指定输出路径,输出将被保存在与清单文件相同的目录中,文件名以.merged_profiles.tsv
后缀。
strif merge [OPTIONS] <MANIFEST> <READ_DEPTHS> [OUTPUT]
- 清单
- 以下列的制表符分隔文件
- 样本ID,样本状态(病例或对照),STRIF配置文件路径
- 不要包含标题行
- 示例
-
DO45195_case case output/DO45195_case.strif_profile.tsv DO45195_control control output/DO45195_control.strif_profile.tsv DO45231_case case output/DO45231_case.strif_profile.tsv DO45231_control control output/DO45231_control.strif_profile.tsv
-
- 以下列的制表符分隔文件
- 读取深度
- 以下列的制表符分隔文件
- 样本ID,读取深度
- 不要包含标题行
- 示例
-
DO219580_case 73.15 DO219580_control 34.47 DO22836_case 69.76 DO22836_control 35.62
-
- 以下列的制表符分隔文件
选项
-f, --filter <FILTER>
Filter locus IDs using a regular expression. Defaults to None. This is useful for filtering out loci that are not of interest
-m, --min-read-count <MIN_READ_COUNT>
Minimum read count to include in the merged profile. Defaults to 1. This is useful for filtering out loci with low coverage [default: 1]
-l, --read-length <READ_LENGTH>
The sequencing read length. Used for normalizing the interruption counts [default: 150]
-h, --help
优先处理中断
要找到在病例和对照样本之间存在显著差异的中断,您可以使用位于scripts
目录中的prioritize.py
。
优先化脚本期望样本ID按以下格式格式化:<INDIVIDUAL>_<case/control>
。如果使用-t
选项运行配对测试,则预期每个个体恰好有一个病例和一个对照文件。
python prioritize.py <merged_profile> <output_file> <sig_output_file>
- 输出文件
- 包含所有测试中断信息的文件,包括p值和效应大小
- 不包括中断计数
- 显著性输出文件
- 包含p值低于阈值的所有中断信息的文件
- 包括中断计数(有助于绘图)
注意:当前,该脚本不执行多假设检验校正。强烈建议独立执行此步骤。
选项
-n MIN_SAMPLES, --min-samples MIN_SAMPLES
Minimum number of samples per group (case or control)
-p P_VALUE_CUTOFF, --p-value-cutoff P_VALUE_CUTOFF
P-value cutoff
-t, --paired-test Enable paired test
-c CHUNK_SIZE, --chunk-size CHUNK_SIZE
Chunk size for reading merged profile
--no-progress Disable progress bars
生成验证数据集
您可以使用generate_validation_sets.py
在scripts
目录中生成模拟重复序列以验证和测试STRIF。唯一的参数是目录路径,例如datasets/
,生成数据集将在此处创建。
python generate_validation_sets.py <DATASET_DIR>
- 生成数据集
简单
- 小型数据集,有助于调试
no_interruption
- 不包含中断的重复序列
basic_<1-6>
- 小型数据集,有助于开发
comprehensive_<test, train, valid>
- 综合数据集,有助于优化参数、验证和测试
disjoint_<1-6>
- 不包含重复序列中任何碱基的中断序列的不相交数据集
intersect_<1-6>
- 包含至少一个重复序列碱基的中断序列的相交数据集
insert_<1-6>
- 已插入重复序列的中断数据集
substitute_<1-6>
- 替换一个或多个重复序列碱基的中断数据集
计算性能指标
您可以使用metrics.py
在scripts
目录中对生成数据集进行指标计算。唯一的参数是创建生成数据集的目录路径,例如datasets/
。
python metrics.py <DATASET_DIR>
脚本将在数据集目录中输出一个文件overall_stats.tsv
,其中包含每个数据集的指标摘要。
优化对齐参数
您可以通过在scripts
目录中运行optimize.py
来找到strif profile
的最佳对齐参数。唯一的参数是数据集路径。这将是数据集目录内的任何目录。建议在datasets/comprehensive_train
上运行此操作。
python optimize.py <DATASET_DIR>/<NAME_OF_DATASET>
许可
根据您的选择许可
- Apache License,版本2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确声明,否则您根据Apache-2.0许可证定义的,有意提交以包含在作品中的任何贡献,将按上述方式双授权,不附加任何额外条款或条件。
请参阅CONTRIBUTING.md。
依赖项
~23–34MB
~564K SLoC