返回Skills库

ZINC数据库

MIT
📊 数据知识
K-Dense-AI数据库

访问ZINC(2.3亿+可购买化合物)。通过ZINC ID/SMILES搜索、相似性搜索、用于对接的3D就绪结构、类似物发现、虚拟筛选和药物发现。

ZINC数据库

概述

ZINC是由UCSF维护的可自由访问的2.3亿+可购买化合物库。通过ZINC ID或SMILES搜索,执行相似性搜索,下载用于对接的3D就绪结构,发现用于虚拟筛选和药物发现的类似物。

何时使用此技能

此技能应在以下情况使用:

  • 虚拟筛选:为分子对接研究寻找化合物
  • 先导发现:识别可商购的药物开发化合物
  • 结构搜索:通过SMILES执行相似性或类似物搜索
  • 化合物检索:通过ZINC ID或供应商代码查找分子
  • 化学空间探索:探索可购买的化学多样性
  • 对接研究:访问3D就绪的分子结构
  • 类似物搜索:基于结构相似性寻找相似化合物
  • 供应商查询:识别来自特定化学供应商的化合物
  • 随机采样:获取用于筛选的随机化合物集

数据库版本

ZINC经历了多个版本:

  • ZINC22(当前):最大版本,包含2.3亿+可购买化合物和数十亿规模的按需合成化合物
  • ZINC20:仍在维护,专注于类先导和类药物化合物
  • ZINC15:前身版本,传统但仍有文档

此技能主要关注ZINC22,最当前和全面的版本。

访问方法

Web界面

主要访问点:https://zinc.docking.org/

交互式搜索:https://cartblanche22.docking.org/

API访问

所有ZINC22搜索都可以通过CartBlanche22 API以编程方式执行:

基础URLhttps://cartblanche22.docking.org/

所有API端点以文本或JSON格式返回数据,具有可自定义字段。

核心功能

1. 通过ZINC ID搜索

使用ZINC标识符检索特定化合物。

Web界面:https://cartblanche22.docking.org/search/zincid

API端点

curl "https://cartblanche22.docking.org/[email protected]_fields=smiles,zinc_id"

多个ID

curl "https://cartblanche22.docking.org/substances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=smiles,zinc_id,tranche"

响应字段zinc_idsmilessub_idsupplier_codecatalogstranche(包括H计数、LogP、MW、phase)

2. 通过SMILES搜索

使用SMILES表示法按化学结构查找化合物,具有用于类似物搜索的可选距离参数。

Web界面:https://cartblanche22.docking.org/search/smiles

API端点

curl "https://cartblanche22.docking.org/[email protected]=4-Fadist=4"

参数

  • smiles:查询SMILES字符串(必要时URL编码)
  • dist:Tanimoto距离阈值(默认:0表示精确匹配)
  • adist:用于更广泛搜索的替代距离参数(默认:0)
  • output_fields:所需输出字段的逗号分隔列表

示例 - 精确匹配

curl "https://cartblanche22.docking.org/smiles.txt:smiles=c1ccccc1"

示例 - 相似性搜索

curl "https://cartblanche22.docking.org/smiles.txt:smiles=c1ccccc1&dist=3&output_fields=zinc_id,smiles,tranche"

3. 通过供应商代码搜索

查询来自特定化学供应商的化合物或检索特定目录中的所有分子。

Web界面:https://cartblanche22.docking.org/search/catitems

API端点

curl "https://cartblanche22.docking.org/catitems.txt:catitem_id=SUPPLIER-CODE-123"

用例

  • 验证来自特定供应商的化合物可用性
  • 检索目录中的所有化合物
  • 将供应商代码与ZINC ID交叉引用

4. 随机化合物采样

生成用于筛选或基准测试的随机化合物集。

Web界面:https://cartblanche22.docking.org/search/random

API端点

curl "https://cartblanche22.docking.org/substance/random.txt:count=100"

参数

  • count:要检索的随机化合物数量(默认:100)
  • subset:按子集筛选(例如,'lead-like'、'drug-like'、'fragment')
  • output_fields:自定义返回数据字段

示例 - 随机类先导分子

curl "https://cartblanche22.docking.org/substance/random.txt:count=1000&subset=lead-like&output_fields=zinc_id,smiles,tranche"

常见工作流程

工作流程1:准备对接库

  1. 基于目标属性或所需化学空间定义搜索条件
  1. 使用适当的搜索方法查询ZINC22
   # 示例:获取具有特定LogP和MW的类药物化合物
   curl "https://cartblanche22.docking.org/substance/random.txt:count=10000&subset=drug-like&output_fields=zinc_id,smiles,tranche" > docking_library.txt
  1. 解析结果以提取ZINC ID和SMILES
   import pandas as pd

   # 加载结果
   df = pd.read_csv('docking_library.txt', sep='\t')

   # 按tranche数据中的属性筛选
   # Tranche格式:H##P###M###-phase
   # H = H键供体,P = LogP*10,M = MW
  1. 使用ZINC ID下载3D结构或从文件存储库下载用于对接

工作流程2:寻找命中化合物的类似物

  1. 获取命中化合物的SMILES
   hit_smiles = "CC(C)Cc1ccc(cc1)C(C)C(=O)O"  # 示例:布洛芬
  1. 执行带距离阈值的相似性搜索
   curl "https://cartblanche22.docking.org/smiles.txt:smiles=CC(C)Cc1ccc(cc1)C(C)C(=O)O&dist=5&output_fields=zinc_id,smiles,catalogs" > analogs.txt
  1. 分析结果以识别可购买的类似物
   import pandas as pd

   analogs = pd.read_csv('analogs.txt', sep='\t')
   print(f"找到 {len(analogs)} 个类似物")
   print(analogs[['zinc_id', 'smiles', 'catalogs']].head(10))
  1. 为最有前景的类似物检索3D结构

工作流程3:批量化合物检索

  1. 从文献、数据库或先前的筛选中编译ZINC ID列表
   zinc_ids = [
       "ZINC000000000001",
       "ZINC000000000002",
       "ZINC000000000003"
   ]
   zinc_ids_str = ",".join(zinc_ids)
  1. 查询ZINC22 API
   curl "https://cartblanche22.docking.org/substances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=zinc_id,smiles,supplier_code,catalogs"
  1. 处理结果用于下游分析或采购

工作流程4:化学空间采样

  1. 根据筛选目标选择子集参数
  • 片段:MW < 250,适合基于片段的药物发现
  • 类先导:MW 250-350,LogP ≤ 3.5
  • 类药物:MW 350-500,遵循Lipinski五规则
  1. 生成随机样本
   curl "https://cartblanche22.docking.org/substance/random.txt:count=5000&subset=lead-like&output_fields=zinc_id,smiles,tranche" > chemical_space_sample.txt
  1. 分析化学多样性并为虚拟筛选做准备

输出字段

使用output_fields参数自定义API响应:

可用字段

  • zinc_id:ZINC标识符
  • smiles:SMILES字符串表示
  • sub_id:内部物质ID
  • supplier_code:供应商目录号
  • catalogs:提供化合物的供应商列表
  • tranche:编码的分子属性(H计数、LogP、MW、反应性阶段)

示例

curl "https://cartblanche22.docking.org/substances.txt:zinc_id=ZINC000000000001&output_fields=zinc_id,smiles,catalogs,tranche"

Tranche系统

ZINC根据分子属性将化合物组织为"tranche":

格式H##P###M###-phase

  • H##:氢键供体数量(00-99)
  • P###:LogP × 10(例如,P035 = LogP 3.5)
  • M###:分子量(道尔顿)(例如,M400 = 400 Da)
  • phase:反应性分类

示例trancheH05P035M400-0

  • 5个H键供体
  • LogP = 3.5
  • MW = 400 Da
  • 反应性阶段0

使用tranche数据按药物相似性标准筛选化合物。

下载3D结构

对于分子对接,3D结构可通过文件存储库获取:

文件存储库:https://files.docking.org/zinc22/

结构按tranche组织,有多种格式可用:

  • MOL2:带3D坐标的多分子格式
  • SDF:结构数据文件格式
  • DB2.GZ:DOCK的压缩数据库格式

有关下载协议和批量访问方法,请参阅ZINC文档:https://wiki.docking.org

Python集成

使用curl与Python

import subprocess
import json

def query_zinc_by_id(zinc_id, output_fields="zinc_id,smiles,catalogs"):
    """通过ZINC ID查询ZINC22。"""
    url = f"https://cartblanche22.docking.org/[email protected]_id={zinc_id}&output_fields={output_fields}"
    result = subprocess.run(['curl', url], capture_output=True, text=True)
    return result.stdout

def search_by_smiles(smiles, dist=0, adist=0, output_fields="zinc_id,smiles"):
    """通过SMILES搜索ZINC22,带有可选距离参数。"""
    url = f"https://cartblanche22.docking.org/smiles.txt:smiles={smiles}&dist={dist}&adist={adist}&output_fields={output_fields}"
    result = subprocess.run(['curl', url], capture_output=True, text=True)
    return result.stdout

def get_random_compounds(count=100, subset=None, output_fields="zinc_id,smiles,tranche"):
    """从ZINC22获取随机化合物。"""
    url = f"https://cartblanche22.docking.org/substance/random.txt:count={count}&output_fields={output_fields}"
    if subset:
        url += f"&subset={subset}"
    result = subprocess.run(['curl', url], capture_output=True, text=True)
    return result.stdout

解析结果

import pandas as pd
from io import StringIO

# 查询ZINC并解析为DataFrame
result = query_zinc_by_id("ZINC000000000001")
df = pd.read_csv(StringIO(result), sep='\t')

# 提取tranche属性
def parse_tranche(tranche_str):
    """解析ZINC tranche代码以提取属性。"""
    # 格式:H##P###M###-phase
    import re
    match = re.match(r'H(\d+)P(\d+)M(\d+)-(\d+)', tranche_str)
    if match:
        return {
            'h_donors': int(match.group(1)),
            'logP': int(match.group(2)) / 10.0,
            'mw': int(match.group(3)),
            'phase': int(match.group(4))
        }
    return None

df['tranche_props'] = df['tranche'].apply(parse_tranche)

最佳实践

查询优化

  • 开始具体:在扩展到相似性搜索之前,先进行精确搜索
  • 使用适当的距离参数:小的dist值(1-3)用于接近类似物,大的(5-10)用于多样化类似物
  • 限制输出字段:仅请求必要的字段以减少数据传输
  • 批量查询:尽可能在单个API调用中组合多个ZINC ID

性能考虑

  • 速率限制:尊重服务器资源;避免快速连续请求
  • 缓存:在本地存储频繁访问的化合物
  • 并行下载:下载3D结构时,对文件存储库使用并行wget或aria2c
  • 子集筛选:使用类先导、类药物或片段子集来减少搜索空间

数据质量

  • 验证可用性:供应商目录会变化;在大量订单前确认化合物可用性
  • 检查立体化学:SMILES可能未完全指定立体化学;验证3D结构
  • 验证结构:使用化学信息学工具(RDKit、OpenBabel)验证结构有效性
  • 交叉引用:可能时,与其他数据库(PubChem、ChEMBL)交叉检查

资源

references/api_reference.md

综合文档包括:

  • 完整的API端点参考
  • URL语法和参数规范
  • 高级查询模式和示例
  • 文件存储库组织和访问
  • 批量下载方法
  • 错误处理和故障排除
  • 与分子对接软件的集成

请参考此文档获取详细的技术信息和高级使用模式。

重要免责声明

数据可靠性

ZINC明确声明:"我们不保证任何分子用于任何目的的质量,对使用本数据库引起的错误不承担任何责任。"

  • 化合物可用性可能会随时更改,恕不通知
  • 结构表示可能包含错误
  • 供应商信息应独立验证
  • 在实验工作前使用适当的验证

适当使用

  • ZINC旨在用于药物发现的学术和研究目的
  • 验证商业使用的许可条款
  • 处理专利化合物时尊重知识产权
  • 遵循您机构的化合物采购指南

其他资源

  • ZINC网站:https://zinc.docking.org/
  • CartBlanche22界面:https://cartblanche22.docking.org/
  • ZINC Wiki:https://wiki.docking.org/
  • 文件存储库:https://files.docking.org/zinc22/
  • GitHub:https://github.com/docking-org/
  • 主要出版物:Irwin et al., J. Chem. Inf. Model 2020 (ZINC15)
  • ZINC22出版物:Irwin et al., J. Chem. Inf. Model 2023

引用

在出版物中使用ZINC时,请引用适当的版本:

ZINC22

Irwin, J. J., et al. "ZINC22—A Free Multi-Billion-Scale Database of Tangible Compounds for Ligand Discovery." *Journal of Chemical Information and Modeling* 2023.

ZINC15

Irwin, J. J., et al. "ZINC15 – Ligand Discovery for Everyone." *Journal of Chemical Information and Modeling* 2020, 60, 6065–6073.

兼容工具

Claude CodeOpenClawHermes Agent

数据来源:claude-scientific-skillsMIT 许可) | 查看上游来源

上游项目:K-Dense-AI/scientific-agent-skills / claude-scientific-skills | 收录时间:2026-08-18 | 更新:2026-08-18

本页面内容基于上游开源许可项目整理,仅供学习参考。AI铺子不对第三方内容承担责任, 详情请参阅免责声明