跳转到主要内容

半径为2的MinHashed AtomPair指纹

项目描述

MAP4

PyPI python license Downloads Github Actions

Map4是一种基于MinHash的分子指纹。

如何安装

像往常一样,您可以使用pip简单安装该软件包

pip install map4

示例

给定一个SMILES字符串,您可以按如下方式生成MAP4指纹

from rdkit.Chem import MolFromSmiles, Mol # pylint: disable=import-error,no-name-in-module
import numpy as np
from map4 import MAP4

map4 = MAP4(
    # The size of the MinHash-based fingerprint
    dimensions=2048,
    # The radius of the circular substructures to consider
    radius=2,
    # Whether to include duplicated shingles, which we can
    # make unique by extending them with a counter
    include_duplicated_shingles=False,
)

molecule: Mol = MolFromSmiles("CCO")
fingerprint: np.ndarray = map4.calculate(molecule)

assert fingerprint.shape == (2048,)

Map4还提供了一个基于多进程的实现,用于计算分子列表的指纹

from typing import List
import numpy as np
from rdkit.Chem import Mol, MolFromSmiles # pylint: disable=import-error,no-name-in-module
from map4 import MAP4

map4 = MAP4(
    dimensions=2048,
    radius=2,
    include_duplicated_shingles=False,
)

molecules: List[Mol] = [MolFromSmiles("CCO"), MolFromSmiles("CCN")]
fingerprints: List[np.ndarray] = map4.calculate_many(
    molecules,
    # The number of threads to use
    number_of_threads=2,
    # Whether to show a progress bar
    verbose=True,
)

assert len(fingerprints) == 2
assert fingerprints[0].shape == (2048,)
assert fingerprints[1].shape == (2048,)

最后,可以使用visualize方法来可视化指纹,该方法计算提供的分子的TSNE指纹。

您可以在test_visualize.py文件中找到一个使用visualize方法的示例。以下是一个预览

TSNE

使用CLI

Map4还提供了一个名为map4的命令行入口。此命令行界面(CLI)提供了一种使用SMILES输入计算一批分子的MAP4指纹的方法。可以通过各种选项自定义指纹,例如指纹维度、半径和批量大小。一旦安装了软件包,此入口点即可使用,因此无需额外的设置。

map4 --input-path <input_file> --output-path <output_file> [options]

必需参数

  • --input-path, -i:包含分子(SMILES格式)的输入文件路径。
  • --output-path, -o:保存指纹的输出文件路径。

可选参数

  • --dimensions, -d:MinHashed指纹的维度数量。选项:[128, 512, 1024, 2048]。默认:1024
  • --radius, -r:指纹的半径。默认:2
  • --include-duplicated-shingles:是否包含指纹中的重复shingles。默认:False
  • --clean-mols:在指纹计算之前是否清理和规范分子。默认:True
  • --delimiter:输入和输出文件中使用的分隔符。默认:\t
  • --fp-delimiter:指纹输出中数字之间的分隔符。默认:;
  • --batch-size, -b:一批中处理的分子数量。默认:500

示例

map4 -i molecules.smi -o fingerprints.txt -d 1024 -r 2 --clean-mols True --batch-size 1000

此命令处理molecules.smi中的分子,计算1024维MAP4指纹,并将它们输出到fingerprints.txt

仓库结构

文件夹描述

  • Extended-Benchmark:用于肽基准的化合物和查询列表
  • MAP4-Similarity-Search:相似性搜索应用程序的源代码
  • map4:MAP4指纹源代码

设计和文档

为半径从1到用户指定的半径n(默认n=2MAP4)的圆形子结构CS的每个原子生成规范、非同分异构体和根SMILES。提取所有原子对,并计算它们的最小拓扑距离TP。对于每个原子对jk,对于每个考虑的半径r,将一个Shingle编码为:CSrj|TPjk|CSrk,其中两个CS按字母顺序注释,为每个原子对产生n个Shingles。

使用唯一的映射SHA-1将生成的Shingles列表散列到一系列整数Si,并对其对应的转置向量sTi进行MinHash。

MAP4 - ChEMBL、人类代谢组和SwissProt的相似性搜索

绘制结构或粘贴其SMILES,或编写自然肽线性序列。在ChEMBL、人类代谢组数据库(HMDB)或SwissProt的“小于50个残基子集”的MAP4或MHFP6空间中搜索其类似物。

MAP4搜索可以在以下位置找到:http://map-search.gdb.tools/

MAP4相似性搜索的代码可以在本仓库文件夹MAP4-Similarity-Search中找到

要本地运行应用程序

  • 下载MAP4SearchData DOI
  • 运行docker run -p 8080:5000 --mount type=bind,target=/MAP4SearchData,source=/your/absolut/path/MAP4SearchData --restart always --name mapsearch alicecapecchi/map-search:latest
  • MAP4相似性搜索将在http://0.0.0.0:8080/运行

扩展基准

用于扩展Riniker等人的指纹基准(Riniker, G. Landrum, J. Cheminf., 5, 26 (2013), DOI: 10.1186/1758-2946-5-26, URL: http://www.jcheminf.com/content/5/1/26, GitHub页面: https://github.com/rdkit/benchmarking_platform)到肽的化合物和训练列表。

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

map4-1.1.2.tar.gz (13.2 kB 查看哈希)

上传时间

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面