[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6AFR5F65NB1YSM2KK56W494":3,"skill-same:01M6AFR5F65NB1YSM2KK56W494":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":53,"ownerHtmlUrl":54,"ownerBlogUrl":55,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6AFR5F65NB1YSM2KK56W494","zinc-database",null,"Access ZINC (230M+ purchasable compounds). Search by ZINC ID\u002FSMILES, similarity searches, 3D-ready structures for docking, analog discovery, for virtual screening and drug discovery.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33481,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fzinc-database\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"database","zinc database","search","3D","discovery","access","virtual","ready","docking","id","drug discovery","virtual screening","similarity","screening","for","SMILES","2026-11-10 10:12:30",false,"---\nname: zinc-database\ndescription: \"Access ZINC (230M+ purchasable compounds). Search by ZINC ID\u002FSMILES, similarity searches, 3D-ready structures for docking, analog discovery, for virtual screening and drug discovery.\"\n---\n\n# ZINC Database\n\n## Overview\n\nZINC is a freely accessible repository of 230M+ purchasable compounds maintained by UCSF. Search by ZINC ID or SMILES, perform similarity searches, download 3D-ready structures for docking, discover analogs for virtual screening and drug discovery.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- **Virtual screening**: Finding compounds for molecular docking studies\n- **Lead discovery**: Identifying commercially-available compounds for drug development\n- **Structure searches**: Performing similarity or analog searches by SMILES\n- **Compound retrieval**: Looking up molecules by ZINC IDs or supplier codes\n- **Chemical space exploration**: Exploring purchasable chemical diversity\n- **Docking studies**: Accessing 3D-ready molecular structures\n- **Analog searches**: Finding similar compounds based on structural similarity\n- **Supplier queries**: Identifying compounds from specific chemical vendors\n- **Random sampling**: Obtaining random compound sets for screening\n\n## Database Versions\n\nZINC has evolved through multiple versions:\n\n- **ZINC22** (Current): Largest version with 230+ million purchasable compounds and multi-billion scale make-on-demand compounds\n- **ZINC20**: Still maintained, focused on lead-like and drug-like compounds\n- **ZINC15**: Predecessor version, legacy but still documented\n\nThis skill primarily focuses on ZINC22, the most current and comprehensive version.\n\n## Access Methods\n\n### Web Interface\n\nPrimary access point: https:\u002F\u002Fzinc.docking.org\u002F\nInteractive searching: https:\u002F\u002Fcartblanche22.docking.org\u002F\n\n### API Access\n\nAll ZINC22 searches can be performed programmatically via the CartBlanche22 API:\n\n**Base URL**: `https:\u002F\u002Fcartblanche22.docking.org\u002F`\n\nAll API endpoints return data in text or JSON format with customizable fields.\n\n## Core Capabilities\n\n### 1. Search by ZINC ID\n\nRetrieve specific compounds using their ZINC identifiers.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fzincid\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]_fields=smiles,zinc_id\"\n```\n\n**Multiple IDs**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=smiles,zinc_id,tranche\"\n```\n\n**Response fields**: `zinc_id`, `smiles`, `sub_id`, `supplier_code`, `catalogs`, `tranche` (includes H-count, LogP, MW, phase)\n\n### 2. Search by SMILES\n\nFind compounds by chemical structure using SMILES notation, with optional distance parameters for analog searching.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fsmiles\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]=4-Fadist=4\"\n```\n\n**Parameters**:\n- `smiles`: Query SMILES string (URL-encoded if necessary)\n- `dist`: Tanimoto distance threshold (default: 0 for exact match)\n- `adist`: Alternative distance parameter for broader searches (default: 0)\n- `output_fields`: Comma-separated list of desired output fields\n\n**Example - Exact match**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=c1ccccc1\"\n```\n\n**Example - Similarity search**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=c1ccccc1&dist=3&output_fields=zinc_id,smiles,tranche\"\n```\n\n### 3. Search by Supplier Codes\n\nQuery compounds from specific chemical suppliers or retrieve all molecules from particular catalogs.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fcatitems\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fcatitems.txt:catitem_id=SUPPLIER-CODE-123\"\n```\n\n**Use cases**:\n- Verify compound availability from specific vendors\n- Retrieve all compounds from a catalog\n- Cross-reference supplier codes with ZINC IDs\n\n### 4. Random Compound Sampling\n\nGenerate random compound sets for screening or benchmarking purposes.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Frandom\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=100\"\n```\n\n**Parameters**:\n- `count`: Number of random compounds to retrieve (default: 100)\n- `subset`: Filter by subset (e.g., 'lead-like', 'drug-like', 'fragment')\n- `output_fields`: Customize returned data fields\n\n**Example - Random lead-like molecules**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=1000&subset=lead-like&output_fields=zinc_id,smiles,tranche\"\n```\n\n## Common Workflows\n\n### Workflow 1: Preparing a Docking Library\n\n1. **Define search criteria** based on target properties or desired chemical space\n\n2. **Query ZINC22** using appropriate search method:\n   ```bash\n   # Example: Get drug-like compounds with specific LogP and MW\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=10000&subset=drug-like&output_fields=zinc_id,smiles,tranche\" > docking_library.txt\n   ```\n\n3. **Parse results** to extract ZINC IDs and SMILES:\n   ```python\n   import pandas as pd\n\n   # Load results\n   df = pd.read_csv('docking_library.txt', sep='\\t')\n\n   # Filter by properties in tranche data\n   # Tranche format: H##P###M###-phase\n   # H = H-bond donors, P = LogP*10, M = MW\n   ```\n\n4. **Download 3D structures** for docking using ZINC ID or download from file repositories\n\n### Workflow 2: Finding Analogs of a Hit Compound\n\n1. **Obtain SMILES** of the hit compound:\n   ```python\n   hit_smiles = \"CC(C)Cc1ccc(cc1)C(C)C(=O)O\"  # Example: Ibuprofen\n   ```\n\n2. **Perform similarity search** with distance threshold:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=CC(C)Cc1ccc(cc1)C(C)C(=O)O&dist=5&output_fields=zinc_id,smiles,catalogs\" > analogs.txt\n   ```\n\n3. **Analyze results** to identify purchasable analogs:\n   ```python\n   import pandas as pd\n\n   analogs = pd.read_csv('analogs.txt', sep='\\t')\n   print(f\"Found {len(analogs)} analogs\")\n   print(analogs[['zinc_id', 'smiles', 'catalogs']].head(10))\n   ```\n\n4. **Retrieve 3D structures** for the most promising analogs\n\n### Workflow 3: Batch Compound Retrieval\n\n1. **Compile list of ZINC IDs** from literature, databases, or previous screens:\n   ```python\n   zinc_ids = [\n       \"ZINC000000000001\",\n       \"ZINC000000000002\",\n       \"ZINC000000000003\"\n   ]\n   zinc_ids_str = \",\".join(zinc_ids)\n   ```\n\n2. **Query ZINC22 API**:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=zinc_id,smiles,supplier_code,catalogs\"\n   ```\n\n3. **Process results** for downstream analysis or purchasing\n\n### Workflow 4: Chemical Space Sampling\n\n1. **Select subset parameters** based on screening goals:\n   - Fragment: MW \u003C 250, good for fragment-based drug discovery\n   - Lead-like: MW 250-350, LogP ≤ 3.5\n   - Drug-like: MW 350-500, follows Lipinski's Rule of Five\n\n2. **Generate random sample**:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=5000&subset=lead-like&output_fields=zinc_id,smiles,tranche\" > chemical_space_sample.txt\n   ```\n\n3. **Analyze chemical diversity** and prepare for virtual screening\n\n## Output Fields\n\nCustomize API responses with the `output_fields` parameter:\n\n**Available fields**:\n- `zinc_id`: ZINC identifier\n- `smiles`: SMILES string representation\n- `sub_id`: Internal substance ID\n- `supplier_code`: Vendor catalog number\n- `catalogs`: List of suppliers offering the compound\n- `tranche`: Encoded molecular properties (H-count, LogP, MW, reactivity phase)\n\n**Example**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001&output_fields=zinc_id,smiles,catalogs,tranche\"\n```\n\n## Tranche System\n\nZINC organizes compounds into \"tranches\" based on molecular properties:\n\n**Format**: `H##P###M###-phase`\n\n- **H##**: Number of hydrogen bond donors (00-99)\n- **P###**: LogP × 10 (e.g., P035 = LogP 3.5)\n- **M###**: Molecular weight in Daltons (e.g., M400 = 400 Da)\n- **phase**: Reactivity classification\n\n**Example tranche**: `H05P035M400-0`\n- 5 H-bond donors\n- LogP = 3.5\n- MW = 400 Da\n- Reactivity phase 0\n\nUse tranche data to filter compounds by drug-likeness criteria.\n\n## Downloading 3D Structures\n\nFor molecular docking, 3D structures are available via file repositories:\n\n**File repository**: https:\u002F\u002Ffiles.docking.org\u002Fzinc22\u002F\n\nStructures are organized by tranches and available in multiple formats:\n- MOL2: Multi-molecule format with 3D coordinates\n- SDF: Structure-data file format\n- DB2.GZ: Compressed database format for DOCK\n\nRefer to ZINC documentation at https:\u002F\u002Fwiki.docking.org for downloading protocols and batch access methods.\n\n## Python Integration\n\n### Using curl with Python\n\n```python\nimport subprocess\nimport json\n\ndef query_zinc_by_id(zinc_id, output_fields=\"zinc_id,smiles,catalogs\"):\n    \"\"\"Query ZINC22 by ZINC ID.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]_id={zinc_id}&output_fields={output_fields}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n\ndef search_by_smiles(smiles, dist=0, adist=0, output_fields=\"zinc_id,smiles\"):\n    \"\"\"Search ZINC22 by SMILES with optional distance parameters.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles={smiles}&dist={dist}&adist={adist}&output_fields={output_fields}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n\ndef get_random_compounds(count=100, subset=None, output_fields=\"zinc_id,smiles,tranche\"):\n    \"\"\"Get random compounds from ZINC22.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count={count}&output_fields={output_fields}\"\n    if subset:\n        url += f\"&subset={subset}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n```\n\n### Parsing Results\n\n```python\nimport pandas as pd\nfrom io import StringIO\n\n# Query ZINC and parse as DataFrame\nresult = query_zinc_by_id(\"ZINC000000000001\")\ndf = pd.read_csv(StringIO(result), sep='\\t')\n\n# Extract tranche properties\ndef parse_tranche(tranche_str):\n    \"\"\"Parse ZINC tranche code to extract properties.\"\"\"\n    # Format: H##P###M###-phase\n    import re\n    match = re.match(r'H(\\d+)P(\\d+)M(\\d+)-(\\d+)', tranche_str)\n    if match:\n        return {\n            'h_donors': int(match.group(1)),\n            'logP': int(match.group(2)) \u002F 10.0,\n            'mw': int(match.group(3)),\n            'phase': int(match.group(4))\n        }\n    return None\n\ndf['tranche_props'] = df['tranche'].apply(parse_tranche)\n```\n\n## Best Practices\n\n### Query Optimization\n\n- **Start specific**: Begin with exact searches before expanding to similarity searches\n- **Use appropriate distance parameters**: Small dist values (1-3) for close analogs, larger (5-10) for diverse analogs\n- **Limit output fields**: Request only necessary fields to reduce data transfer\n- **Batch queries**: Combine multiple ZINC IDs in a single API call when possible\n\n### Performance Considerations\n\n- **Rate limiting**: Respect server resources; avoid rapid consecutive requests\n- **Caching**: Store frequently accessed compounds locally\n- **Parallel downloads**: When downloading 3D structures, use parallel wget or aria2c for file repositories\n- **Subset filtering**: Use lead-like, drug-like, or fragment subsets to reduce search space\n\n### Data Quality\n\n- **Verify availability**: Supplier catalogs change; confirm compound availability before large orders\n- **Check stereochemistry**: SMILES may not fully specify stereochemistry; verify 3D structures\n- **Validate structures**: Use cheminformatics tools (RDKit, OpenBabel) to verify structure validity\n- **Cross-reference**: When possible, cross-check with other databases (PubChem, ChEMBL)\n\n## Resources\n\n### references\u002Fapi_reference.md\n\nComprehensive documentation including:\n\n- Complete API endpoint reference\n- URL syntax and parameter specifications\n- Advanced query patterns and examples\n- File repository organization and access\n- Bulk download methods\n- Error handling and troubleshooting\n- Integration with molecular docking software\n\nConsult this document for detailed technical information and advanced usage patterns.\n\n## Important Disclaimers\n\n### Data Reliability\n\nZINC explicitly states: **\"We do not guarantee the quality of any molecule for any purpose and take no responsibility for errors arising from the use of this database.\"**\n\n- Compound availability may change without notice\n- Structure representations may contain errors\n- Supplier information should be verified independently\n- Use appropriate validation before experimental work\n\n### Appropriate Use\n\n- ZINC is intended for academic and research purposes in drug discovery\n- Verify licensing terms for commercial use\n- Respect intellectual property when working with patented compounds\n- Follow your institution's guidelines for compound procurement\n\n## Additional Resources\n\n- **ZINC Website**: https:\u002F\u002Fzinc.docking.org\u002F\n- **CartBlanche22 Interface**: https:\u002F\u002Fcartblanche22.docking.org\u002F\n- **ZINC Wiki**: https:\u002F\u002Fwiki.docking.org\u002F\n- **File Repository**: https:\u002F\u002Ffiles.docking.org\u002Fzinc22\u002F\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fdocking-org\u002F\n- **Primary Publication**: Irwin et al., J. Chem. Inf. Model 2020 (ZINC15)\n- **ZINC22 Publication**: Irwin et al., J. Chem. Inf. Model 2023\n\n## Citations\n\nWhen using ZINC in publications, cite the appropriate version:\n\n**ZINC22**:\nIrwin, J. J., et al. \"ZINC22—A Free Multi-Billion-Scale Database of Tangible Compounds for Ligand Discovery.\" *Journal of Chemical Information and Modeling* 2023.\n\n**ZINC15**:\nIrwin, J. J., et al. \"ZINC15 – Ligand Discovery for Everyone.\" *Journal of Chemical Information and Modeling* 2020, 60, 6065–6073.\n","# ZINC Database\n\n## Overview\n\nZINC is a freely accessible repository of 230M+ purchasable compounds maintained by UCSF. Search by ZINC ID or SMILES, perform similarity searches, download 3D-ready structures for docking, discover analogs for virtual screening and drug discovery.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- **Virtual screening**: Finding compounds for molecular docking studies\n- **Lead discovery**: Identifying commercially-available compounds for drug development\n- **Structure searches**: Performing similarity or analog searches by SMILES\n- **Compound retrieval**: Looking up molecules by ZINC IDs or supplier codes\n- **Chemical space exploration**: Exploring purchasable chemical diversity\n- **Docking studies**: Accessing 3D-ready molecular structures\n- **Analog searches**: Finding similar compounds based on structural similarity\n- **Supplier queries**: Identifying compounds from specific chemical vendors\n- **Random sampling**: Obtaining random compound sets for screening\n\n## Database Versions\n\nZINC has evolved through multiple versions:\n\n- **ZINC22** (Current): Largest version with 230+ million purchasable compounds and multi-billion scale make-on-demand compounds\n- **ZINC20**: Still maintained, focused on lead-like and drug-like compounds\n- **ZINC15**: Predecessor version, legacy but still documented\n\nThis skill primarily focuses on ZINC22, the most current and comprehensive version.\n\n## Access Methods\n\n### Web Interface\n\nPrimary access point: https:\u002F\u002Fzinc.docking.org\u002F\nInteractive searching: https:\u002F\u002Fcartblanche22.docking.org\u002F\n\n### API Access\n\nAll ZINC22 searches can be performed programmatically via the CartBlanche22 API:\n\n**Base URL**: `https:\u002F\u002Fcartblanche22.docking.org\u002F`\n\nAll API endpoints return data in text or JSON format with customizable fields.\n\n## Core Capabilities\n\n### 1. Search by ZINC ID\n\nRetrieve specific compounds using their ZINC identifiers.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fzincid\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]_fields=smiles,zinc_id\"\n```\n\n**Multiple IDs**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=smiles,zinc_id,tranche\"\n```\n\n**Response fields**: `zinc_id`, `smiles`, `sub_id`, `supplier_code`, `catalogs`, `tranche` (includes H-count, LogP, MW, phase)\n\n### 2. Search by SMILES\n\nFind compounds by chemical structure using SMILES notation, with optional distance parameters for analog searching.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fsmiles\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]=4-Fadist=4\"\n```\n\n**Parameters**:\n- `smiles`: Query SMILES string (URL-encoded if necessary)\n- `dist`: Tanimoto distance threshold (default: 0 for exact match)\n- `adist`: Alternative distance parameter for broader searches (default: 0)\n- `output_fields`: Comma-separated list of desired output fields\n\n**Example - Exact match**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=c1ccccc1\"\n```\n\n**Example - Similarity search**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=c1ccccc1&dist=3&output_fields=zinc_id,smiles,tranche\"\n```\n\n### 3. Search by Supplier Codes\n\nQuery compounds from specific chemical suppliers or retrieve all molecules from particular catalogs.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Fcatitems\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fcatitems.txt:catitem_id=SUPPLIER-CODE-123\"\n```\n\n**Use cases**:\n- Verify compound availability from specific vendors\n- Retrieve all compounds from a catalog\n- Cross-reference supplier codes with ZINC IDs\n\n### 4. Random Compound Sampling\n\nGenerate random compound sets for screening or benchmarking purposes.\n\n**Web interface**: https:\u002F\u002Fcartblanche22.docking.org\u002Fsearch\u002Frandom\n\n**API endpoint**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=100\"\n```\n\n**Parameters**:\n- `count`: Number of random compounds to retrieve (default: 100)\n- `subset`: Filter by subset (e.g., 'lead-like', 'drug-like', 'fragment')\n- `output_fields`: Customize returned data fields\n\n**Example - Random lead-like molecules**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=1000&subset=lead-like&output_fields=zinc_id,smiles,tranche\"\n```\n\n## Common Workflows\n\n### Workflow 1: Preparing a Docking Library\n\n1. **Define search criteria** based on target properties or desired chemical space\n\n2. **Query ZINC22** using appropriate search method:\n   ```bash\n   # Example: Get drug-like compounds with specific LogP and MW\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=10000&subset=drug-like&output_fields=zinc_id,smiles,tranche\" > docking_library.txt\n   ```\n\n3. **Parse results** to extract ZINC IDs and SMILES:\n   ```python\n   import pandas as pd\n\n   # Load results\n   df = pd.read_csv('docking_library.txt', sep='\\t')\n\n   # Filter by properties in tranche data\n   # Tranche format: H##P###M###-phase\n   # H = H-bond donors, P = LogP*10, M = MW\n   ```\n\n4. **Download 3D structures** for docking using ZINC ID or download from file repositories\n\n### Workflow 2: Finding Analogs of a Hit Compound\n\n1. **Obtain SMILES** of the hit compound:\n   ```python\n   hit_smiles = \"CC(C)Cc1ccc(cc1)C(C)C(=O)O\"  # Example: Ibuprofen\n   ```\n\n2. **Perform similarity search** with distance threshold:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles=CC(C)Cc1ccc(cc1)C(C)C(=O)O&dist=5&output_fields=zinc_id,smiles,catalogs\" > analogs.txt\n   ```\n\n3. **Analyze results** to identify purchasable analogs:\n   ```python\n   import pandas as pd\n\n   analogs = pd.read_csv('analogs.txt', sep='\\t')\n   print(f\"Found {len(analogs)} analogs\")\n   print(analogs[['zinc_id', 'smiles', 'catalogs']].head(10))\n   ```\n\n4. **Retrieve 3D structures** for the most promising analogs\n\n### Workflow 3: Batch Compound Retrieval\n\n1. **Compile list of ZINC IDs** from literature, databases, or previous screens:\n   ```python\n   zinc_ids = [\n       \"ZINC000000000001\",\n       \"ZINC000000000002\",\n       \"ZINC000000000003\"\n   ]\n   zinc_ids_str = \",\".join(zinc_ids)\n   ```\n\n2. **Query ZINC22 API**:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001,ZINC000000000002&output_fields=zinc_id,smiles,supplier_code,catalogs\"\n   ```\n\n3. **Process results** for downstream analysis or purchasing\n\n### Workflow 4: Chemical Space Sampling\n\n1. **Select subset parameters** based on screening goals:\n   - Fragment: MW \u003C 250, good for fragment-based drug discovery\n   - Lead-like: MW 250-350, LogP ≤ 3.5\n   - Drug-like: MW 350-500, follows Lipinski's Rule of Five\n\n2. **Generate random sample**:\n   ```bash\n   curl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count=5000&subset=lead-like&output_fields=zinc_id,smiles,tranche\" > chemical_space_sample.txt\n   ```\n\n3. **Analyze chemical diversity** and prepare for virtual screening\n\n## Output Fields\n\nCustomize API responses with the `output_fields` parameter:\n\n**Available fields**:\n- `zinc_id`: ZINC identifier\n- `smiles`: SMILES string representation\n- `sub_id`: Internal substance ID\n- `supplier_code`: Vendor catalog number\n- `catalogs`: List of suppliers offering the compound\n- `tranche`: Encoded molecular properties (H-count, LogP, MW, reactivity phase)\n\n**Example**:\n```bash\ncurl \"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstances.txt:zinc_id=ZINC000000000001&output_fields=zinc_id,smiles,catalogs,tranche\"\n```\n\n## Tranche System\n\nZINC organizes compounds into \"tranches\" based on molecular properties:\n\n**Format**: `H##P###M###-phase`\n\n- **H##**: Number of hydrogen bond donors (00-99)\n- **P###**: LogP × 10 (e.g., P035 = LogP 3.5)\n- **M###**: Molecular weight in Daltons (e.g., M400 = 400 Da)\n- **phase**: Reactivity classification\n\n**Example tranche**: `H05P035M400-0`\n- 5 H-bond donors\n- LogP = 3.5\n- MW = 400 Da\n- Reactivity phase 0\n\nUse tranche data to filter compounds by drug-likeness criteria.\n\n## Downloading 3D Structures\n\nFor molecular docking, 3D structures are available via file repositories:\n\n**File repository**: https:\u002F\u002Ffiles.docking.org\u002Fzinc22\u002F\n\nStructures are organized by tranches and available in multiple formats:\n- MOL2: Multi-molecule format with 3D coordinates\n- SDF: Structure-data file format\n- DB2.GZ: Compressed database format for DOCK\n\nRefer to ZINC documentation at https:\u002F\u002Fwiki.docking.org for downloading protocols and batch access methods.\n\n## Python Integration\n\n### Using curl with Python\n\n```python\nimport subprocess\nimport json\n\ndef query_zinc_by_id(zinc_id, output_fields=\"zinc_id,smiles,catalogs\"):\n    \"\"\"Query ZINC22 by ZINC ID.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002F[email protected]_id={zinc_id}&output_fields={output_fields}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n\ndef search_by_smiles(smiles, dist=0, adist=0, output_fields=\"zinc_id,smiles\"):\n    \"\"\"Search ZINC22 by SMILES with optional distance parameters.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002Fsmiles.txt:smiles={smiles}&dist={dist}&adist={adist}&output_fields={output_fields}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n\ndef get_random_compounds(count=100, subset=None, output_fields=\"zinc_id,smiles,tranche\"):\n    \"\"\"Get random compounds from ZINC22.\"\"\"\n    url = f\"https:\u002F\u002Fcartblanche22.docking.org\u002Fsubstance\u002Frandom.txt:count={count}&output_fields={output_fields}\"\n    if subset:\n        url += f\"&subset={subset}\"\n    result = subprocess.run(['curl', url], capture_output=True, text=True)\n    return result.stdout\n```\n\n### Parsing Results\n\n```python\nimport pandas as pd\nfrom io import StringIO\n\n# Query ZINC and parse as DataFrame\nresult = query_zinc_by_id(\"ZINC000000000001\")\ndf = pd.read_csv(StringIO(result), sep='\\t')\n\n# Extract tranche properties\ndef parse_tranche(tranche_str):\n    \"\"\"Parse ZINC tranche code to extract properties.\"\"\"\n    # Format: H##P###M###-phase\n    import re\n    match = re.match(r'H(\\d+)P(\\d+)M(\\d+)-(\\d+)', tranche_str)\n    if match:\n        return {\n            'h_donors': int(match.group(1)),\n            'logP': int(match.group(2)) \u002F 10.0,\n            'mw': int(match.group(3)),\n            'phase': int(match.group(4))\n        }\n    return None\n\ndf['tranche_props'] = df['tranche'].apply(parse_tranche)\n```\n\n## Best Practices\n\n### Query Optimization\n\n- **Start specific**: Begin with exact searches before expanding to similarity searches\n- **Use appropriate distance parameters**: Small dist values (1-3) for close analogs, larger (5-10) for diverse analogs\n- **Limit output fields**: Request only necessary fields to reduce data transfer\n- **Batch queries**: Combine multiple ZINC IDs in a single API call when possible\n\n### Performance Considerations\n\n- **Rate limiting**: Respect server resources; avoid rapid consecutive requests\n- **Caching**: Store frequently accessed compounds locally\n- **Parallel downloads**: When downloading 3D structures, use parallel wget or aria2c for file repositories\n- **Subset filtering**: Use lead-like, drug-like, or fragment subsets to reduce search space\n\n### Data Quality\n\n- **Verify availability**: Supplier catalogs change; confirm compound availability before large orders\n- **Check stereochemistry**: SMILES may not fully specify stereochemistry; verify 3D structures\n- **Validate structures**: Use cheminformatics tools (RDKit, OpenBabel) to verify structure validity\n- **Cross-reference**: When possible, cross-check with other databases (PubChem, ChEMBL)\n\n## Resources\n\n### references\u002Fapi_reference.md\n\nComprehensive documentation including:\n\n- Complete API endpoint reference\n- URL syntax and parameter specifications\n- Advanced query patterns and examples\n- File repository organization and access\n- Bulk download methods\n- Error handling and troubleshooting\n- Integration with molecular docking software\n\nConsult this document for detailed technical information and advanced usage patterns.\n\n## Important Disclaimers\n\n### Data Reliability\n\nZINC explicitly states: **\"We do not guarantee the quality of any molecule for any purpose and take no responsibility for errors arising from the use of this database.\"**\n\n- Compound availability may change without notice\n- Structure representations may contain errors\n- Supplier information should be verified independently\n- Use appropriate validation before experimental work\n\n### Appropriate Use\n\n- ZINC is intended for academic and research purposes in drug discovery\n- Verify licensing terms for commercial use\n- Respect intellectual property when working with patented compounds\n- Follow your institution's guidelines for compound procurement\n\n## Additional Resources\n\n- **ZINC Website**: https:\u002F\u002Fzinc.docking.org\u002F\n- **CartBlanche22 Interface**: https:\u002F\u002Fcartblanche22.docking.org\u002F\n- **ZINC Wiki**: https:\u002F\u002Fwiki.docking.org\u002F\n- **File Repository**: https:\u002F\u002Ffiles.docking.org\u002Fzinc22\u002F\n- **GitHub**: https:\u002F\u002Fgithub.com\u002Fdocking-org\u002F\n- **Primary Publication**: Irwin et al., J. Chem. Inf. Model 2020 (ZINC15)\n- **ZINC22 Publication**: Irwin et al., J. Chem. Inf. Model 2023\n\n## Citations\n\nWhen using ZINC in publications, cite the appropriate version:\n\n**ZINC22**:\nIrwin, J. J., et al. \"ZINC22—A Free Multi-Billion-Scale Database of Tangible Compounds for Ligand Discovery.\" *Journal of Chemical Information and Modeling* 2023.\n\n**ZINC15**:\nIrwin, J. J., et al. \"ZINC15 – Ligand Discovery for Everyone.\" *Journal of Chemical Information and Modeling* 2020, 60, 6065–6073.\n",{"name":5,"description":7},"main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fzinc-database",3931,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-14 06:14:46",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add davila7\u002Fclaude-code-templates --skill zinc-database",{"tool":64,"command":65},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill zinc-database",{"tool":67,"command":68},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill zinc-database","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fzinc-database\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fapi_reference.md","REFERENCE","参考文档",19517,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fzinc-database\u002Freferences\u002Fapi_reference.md",[79,106,133,162,197,221],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":86,"publishedAt":43},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[85],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[87,88,89,90,91,41,92,93,94,95,96,97,98,99,100,101,102,103,104,105],"scoring","pool","wealthville pool scoring","liquidity","which","exit","now","use","when","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":43},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[112],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[114,115,116,117,118,119,120,121,122,123,124,95,125,126,127,128,129,130,131,132],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":146,"publishedAt":43},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[139,140,141],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":142,"categoryName":143,"taxonomyType":144,"taxonomyTypeDesc":145},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[147,148,149,150,151,152,153,41,154,155,156,157,158,159,160,94,32,27,95,161],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","query",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":166,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":173,"publishedAt":43},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[170],{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,41,196],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":166,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":208,"publishedAt":43},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[204,207],{"categoryNo":205,"categoryName":206,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},[209,210,211,212,213,175,214,184,185,215,216,217,218,41,219,97,220],"webapp testing","testing","webapp","browser","playwright","applications","debugging","toolkit","logs","screenshots","local","behavior",{"skillNo":222,"name":223,"nameZh":6,"description":224,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":166,"licenseFileUrl":225,"sourceHtmlUrl":226,"categories":227,"keywords":235,"publishedAt":43},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[228,231,232],{"categoryNo":229,"categoryName":230,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":233,"categoryName":234,"taxonomyType":144,"taxonomyTypeDesc":145},"01JBSEEDCAT000000000000036","内容创作者",[236,237,238,239,240,241,242,243,177,244,187,125,245,246,247,248,249,159,250,95,251,252,253,254,255,103,256],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]