半径为2的MinHashed AtomPair指纹
项目描述
MAP4
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方法的示例。以下是一个预览
使用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=2,MAP4)的圆形子结构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 
- 运行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的哈希
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | cc8847950d3eb646261414324a206d875103d11ab9acf44277c82b2bcced739d | |
| MD5 | 29f04bb6f5da981c39781bbdeff1d8e2 | |
| BLAKE2b-256 | 2b682df16b390776f7c392a1a3d0c2bdd580c91bf0265176935bb3a6f91ddd81 |