半径为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
编码为:CS
rj
|TP
jk
|CS
rk
,其中两个CS
按字母顺序注释,为每个原子对产生n个Shingles。
使用唯一的映射SHA-1
将生成的Shingles列表散列到一系列整数S
i
,并对其对应的转置向量s
T
i
进行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 |