PhIP-seq分析工具
项目描述
phip-stat: 分析PhIP-seq数据的工具
注意:该项目不再维护。请参阅由Erick Matsen小组维护的phippery、phip-flow和相关项目:[https://github.com/matsengrp/phippery](https://github.com/matsengrp/phippery) [https://github.com/matsengrp/phip-flow](https://github.com/matsengrp/phip-flow)
PhIP-seq检测首次在Larman et. al.中被描述。此存储库包含将原始PhIP-seq数据转换为分析准备就绪的富集分数的代码。
此代码还实现了多个统计模型以处理PhIP-seq数据,包括原始Larman et al论文中描述的模型(generalized-poisson-model
)。我们目前推荐使用这里实现的较新模型之一(例如,gamma-poisson-model
)。
请提交问题来报告任何问题。
安装
phip-stat在Python 3.6+上运行,并至少依赖于click、tqdm、numpy、scipy和pandas。矩阵分解模型还需要tensorflow。
pip install phip-stat
或者从GitHub安装最新开发版本
pip install git+https://github.com/lasersonlab/phip-stat.git
用法
管道的整体流程是
-
align —— 对于每个样本计算来自每个可能的库成员的读取数量
-
merge —— 将所有样本的计数值合并到一个单个计数矩阵中
-
model —— 标准化计数并训练一个模型来计算富集分数/击中次数
在具有500M读取的整个NextSeq运行中,在具有4个核心的笔记本电脑上(如果使用kallisto等工具进行对齐)可以在 <30 分钟内进行处理。
命令行界面
所有管道工具都可以通过phip
可执行文件访问。可以通过传递-h
获取所有(子)命令用法/选项。
$ phip -h
Usage: phip [OPTIONS] COMMAND [ARGS]...
phip -- PhIP-seq analysis tools
Options:
-h, --help Show this message and exit.
Commands:
align-parts align fastq files to peptide reference
compute-counts compute counts from aligned bam file
compute-pvals compute p-values from counts
groupby-sample group alignments by sample
join-barcodes annotate Illumina reads with barcodes Some...
merge-columns merge tab-delim files
split-fastq split fastq files into smaller chunks
示例管道1:kallisto对齐后跟Gamma-Poisson模型
此管道将使用kallisto将读取伪对齐到参考。因为每个对齐步骤的输出都是一个目录,所以合并步骤使用为这种目录结构设计的CLI工具。计数也预先标准化。
# 1. align
kallisto quant --single --plaintext --fr-stranded -l 75 -s 0.1 -t 4 \
-i reference.idx -o sample_counts/sample1 sample1.fastq.gz
# ...
kallisto quant --single --plaintext --fr-stranded -l 75 -s 0.1 -t 4 \
-i reference.idx -o sample_counts/sampleN sampleN.fastq.gz
# 2. merge
phip merge-kallisto-tpm -i sample_counts -o cpm.tsv
# 3. model
phip gamma-poisson-model -t 99.9 -i cpm.tsv -o gamma-poisson
示例流程 2:精确匹配读段随后进行矩阵分解
此流程将每个读段与参考序列精确匹配(或选择读段的一部分)然后合并成一个矩阵。接着用低秩近似(允许剪裁)对矩阵进行分解,并用启发式算法调用“命中”。
# 1. align
phip count-exact-matches -r reference.fasta -l 75 -o sample_counts/sample1.counts.tsv sample1.fastq.gz
# ...
phip count-exact-matches -r reference.fasta -l 75 -o sample_counts/sampleN.counts.tsv sampleN.fastq.gz
# 2. merge
phip merge-columns -m iter -i sample_counts -o counts.tsv
# 3. model
phip clipped-factorization-model --rank 2 -i counts.tsv -o residuals.tsv
phip call-hits -i residuals.tsv -o hits.tsv --beads-regex ".*BEADS_ONLY.*"
示例流程 3:使用 bowtie2 进行比对随后进行归一化和伽马泊松
此示例使用 bowtie2,虽然牺牲了速度,但应能提供最大的敏感性。主要的 bowtie2 命令完成以下任务:将读段与参考序列进行比对,排序并转换为 BAM 格式,计算每个克隆在每个位置的覆盖深度,对每个克隆只取观察到的最大值,最后按克隆标识符排序。
# 1. align
echo "id\tsample1" > sample_counts/sample1.tsv
bowtie2 -p 4 -x reference_index -U sample1.fastq.gz \
| samtools sort -O BAM \
| samtools depth -aa -m 100000000 - \
| awk 'BEGIN {OFS="\t"} {counts[$1] = ($3 < counts[$1]) ? counts[$1] : $3} END {for (c in counts) {print c, counts[c]}}' \
| sort -k 1 \
>> sample_counts/sample1.tsv
# ...
echo "id\tsampleN" > sample_counts/sampleN.tsv
bowtie2 -p 4 -x reference_index -U sampleN.fastq.gz \
| samtools sort -O BAM \
| samtools depth -aa -m 100000000 - \
| awk 'BEGIN {OFS="\t"} {counts[$1] = ($3 < counts[$1]) ? counts[$1] : $3} END {for (c in counts) {print c, counts[c]}}' \
| sort -k 1 \
>> sample_counts/sampleN.tsv
# 2. merge -- NOTE: this performs a pandas outer join and loads all counts into memory
phip merge-columns -m outer -i sample_counts -o counts.tsv
# 3. model
phip normalize-counts -m size-factors -i counts.tsv -o normalized_counts.tsv
phip gamma-poisson-model -t 99.9 -i normalized_counts.tsv -o gamma-poisson
Snakemake 菜谱
我们包含了一些 Snakemake 菜谱示例,以便轻松一次性处理大量样本,例如,workflows/example-kallisto-GamPois-factorization.snakefile
。通常需要编辑配置部分以指定原始测序数据的位置。
运行单元测试
单元测试使用 nose
包,可以使用以下方式运行:
$ pip install nose # if not already installed
$ nosetests -sv test/
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建分发
phip-stat-0.5.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ebf405bbede636f34a26e9d4cf0201a2d4603ca504492338078d43a3cd62c2fc |
|
MD5 | c8c74b4b646755cc3fe857626398d9bf |
|
BLAKE2b-256 | 301067885e116322b1859ab20a34076581b55b929bee338f0bda24d8f4187125 |
phip_stat-0.5.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 257502939ea7884659a66f27165cabd1cc0fe44f4651eb1b904989819efeae7b |
|
MD5 | a3a998603c0cc6acd60635cbebb50848 |
|
BLAKE2b-256 | 11a4fc0e5e42a48c7bc25186a45ea540b348dca69c54692410b33f291b052bc0 |