自动构建抗生素耐药性相关突变目录的工具
项目描述
catomatic
Python代码,算法性地构建耐药性突变目录。
介绍
该方法基于以下逻辑:不引起耐药性的突变可以与引起耐药性的突变同时出现,如果一个突变单独存在时(单独)不引起耐药性,那么它也不会在非单独存在时对表型产生影响。
跨越指定基因的孤立突变按顺序遍历,如果它们的药物敏感性(与耐药性相比)的比例通过了指定的统计检验,则将其特征化为良性并从数据集中移除。只要存在孤立的可感突变,此步骤就会重复。一旦数据集已经“清洁”了良性突变,就会通过指定的测试来分类耐药突变,如果测试失败,则将其添加到目录中作为“未分类”。
构建可以依赖于特定突变的一致性敏感性(并且不执行显式表型分析,除了解锁可感变异之外),使用二项式检验,其中耐药性的比例与指定的背景率进行比较,或者使用费舍尔检验,其中耐药性的比例与计算的背景率进行比较。
尽管该方法完全基于算法,但有两个干预入口点。首先,可以将中性突变(如文献搜索中收集的突变——如果基因包含高频率的进化突变,这通常很有帮助,这些突变会增加噪声)作为“种子”加入方法中,其次,可以添加或覆盖目录中的分类和条目,尽管除非聚合,否则不推荐这样做。
因为该方法使用并理解GARC1语法,因此可以在事后向目录提供“规则”,例如为rpoB中的移码突变提供{rpoB@*_fs:R}
,这可以简单添加(并且相对于更精细的突变(如rpoB@44_ins
)具有较低的预测优先级),或者可以替换任何符合该规则的突变,从而有效地聚合相关变异。
生成的目录可以作为字典返回,也可以作为Pandas数据框返回,可以导出为Piezo兼容格式,以便快速解析和耐药性预测。
在目录的“证据”列中记录了列联表、比例、p值和威尔逊置信区间。
带有示例参数的工作流程
安装
使用Conda
建议通过Conda管理Python环境和依赖关系。您可以通过以下步骤在Conda环境中安装Catomatic:
创建和激活环境
首先,确保您已安装Conda。然后,创建并激活一个新环境,并安装catomatic。
conda env create -f env.yml
conda activate catomatic
pip install .
运行catomatic
在基本层面,该方法需要两个输入数据框:一个包含“R”与“S”二元表型的每个样本一行数据的samples数据框
,以及一个包含每个突变一行数据的mutations数据框
。它们必须在UNIQUEID
列上可连接。
如果导出为Piezo格式,则MUTATION
列必须包含GARC1语法(即gene@mutation
)。还必须提供一个指向wildcards.json
文件的路径,该文件应包含json对象/字典中的Piezo占位符(示例文件位于/data/bdq_wildcards.json
)。
如果播种或更新目录,突变语法必须与MUTATION
列匹配。
CLI
安装后,通过命令行界面运行catomatic目录构建器的最简单方法是。需要指定 --to_piezo
或--to_json
标志来保存目录(如果使用--to_piezo,则需要额外的参数)。
BuildCatalogue --samples path/to/samples.csv --mutations path/to/mutations.csv --to_json --outfile path/to/out/catalogue.json
或
BuildCatalogue --samples path/to/samples.csv --mutations path/to/mutations.csv --to_piezo --outfile path/to/out/catalogue.csv --genbank_ref '...' --catalogue_name '...' --version '...' --drug '...' --wildcards path/to/wildcards.json
Python/Jupyter笔记本
如果您希望在笔记本中运行catomatic,例如,可以在导入后简单调用BuildCatalogue。
from catomatic.CatalogueBuilder import BuildCatalogue
#instantiate a catalogue object - this will build the catalogue
catalogue = BuildCatalogue(samples = samples_df, mutations = mutations_df)
#return the catalogue as a dictionary in order of variant addition
catalogue.return_catalogue()
#return the catalogue as a piezo-structured dataframe
catalogue.build_piezo(genbank_ref='...', catalogue_name='...', version='...', drug='...', wildcards='path/to/wildcards.json')
有关运行catomatic的更详细示例,请参阅examples/demo.ipynb
。
CLI参数
参数 | 类型 | 描述 |
---|---|---|
--samples |
str |
样本文件路径。必需。 |
--mutations |
str |
突变文件路径。必需。 |
--FRS |
float |
读支持阈值。可选。 |
--seed |
list |
使用GARC语法的种子突变列表。可选。 |
--test |
str |
要运行的统计测试类型:None 、Binomial 或Fisher 。可选。 |
--background |
float |
二项式测试的背景突变率。如果使用test = Binomial,则为必需。可选。 |
--p |
float |
统计测试的显著性水平。可选。默认为0.95 。 |
--strict_unlock |
bool |
强制对分类执行严格解锁,这需要p < 0.05。可选。 |
--to_json |
bool |
将目录导出为JSON格式。可选。 |
--outfile |
str |
输出目录文件的路径。与 --to_json 或 --to_piezo 一起使用。可选。 |
--to_piezo |
bool |
将目录导出为 Piezo 格式。可选。 |
--genbank_ref |
str |
目录的 GenBank 参考。如果 to_piezo = True 则必需。可选。 |
--catalogue_name |
str |
目录名称。如果 to_piezo = True 则必需。可选。 |
--version |
str |
目录版本。如果 to_piezo = True 则必需。可选。 |
--drug |
str |
与突变相关的药物。如果 to_piezo = True 则必需。可选。 |
--wildcards |
str |
包含通配符规则的 JSON 文件。如果 to_piezo = True 则必需。可选。 |
--grammar |
str |
目录中使用的语法。可选。默认为 GARC1 。 |
--values |
str |
目录中用于预测的值。可选。默认为 RUS 。 |
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分布
构建分布
catomatic-0.1.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e9d35ebce57e09333f708a97e51728b34e2e690c9ac72ed4a1d1f1261457c684 |
|
MD5 | 0b1a0efd37e414e9fbf5806baf802f2a |
|
BLAKE2b-256 | 0a39138e734d7f1fefcebcb45017feeca7332ec4aa6cd0a1b98f0034c2fdbfbf |
catomatic-0.1.1-py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 256b81d4dfe04dfea4e9092e3c454ecc663f2b75491b1600a45e3a7323e0f632 |
|
MD5 | 389abbac2354a357ac8c926626b90399 |
|
BLAKE2b-256 | 1dde1c0fd70b91a2cb2b7f2dcb8cf028fa475aea3172ccb040132aca9b3aa0b8 |