[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XFGKPXMJSCHA0A913ZEBTX":3,"skill-same:01M6XFGKPXMJSCHA0A913ZEBTX":116},{"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":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":14,"repositoryHtmlUrl":61,"repositoryHomepageUrl":6,"ownerHtmlUrl":62,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":63,"install":64,"resources":77},"01M6XFGKPXMJSCHA0A913ZEBTX","diffdock",null,"Diffusion-based molecular docking. Predict protein-ligand binding poses from PDB\u002FSMILES, confidence scores, virtual screening, for structure-based drug design. Not for affinity prediction.","fadrienne\u002FMyGitHub","fadrienne","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F197874571?v=4","01M6X64V8VWCRSMFZ4EPS2BWXG","Francesca Adrienne","01M6X64VD5MW4F9PHDWQKS7ZAF",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"deep","Protein","prediction","for","screening","pdb","virtual screening","synthetic","molecular","docking","design","structure","virtual","learning","discovery","rdkit","biopython","pypi","deep learning","2026-11-10 10:12:30",false,"---\nname: diffdock\ndescription: Diffusion-based molecular docking. Predict protein-ligand binding poses from PDB\u002FSMILES, confidence scores, virtual screening, for structure-based drug design. Not for affinity prediction.\ncategory: chemistry\nlicense: MIT license\nmetadata:\n    skill-author: Synthetic Sciences\nversion: 1.0.0\nauthor: Synthetic Sciences\ntags: [Molecular Docking, Drug Discovery, Deep Learning, Protein-Ligand]\ndependencies: [\"torch>=1.12.0\", \"fair-esm\", \"torch-geometric\", \"rdkit-pypi\", \"biopython\"]\n---\n\n# DiffDock: Molecular Docking with Diffusion Models\n\n## Overview\n\nDiffDock is a diffusion-based deep learning tool for molecular docking that predicts 3D binding poses of small molecule ligands to protein targets. It represents the state-of-the-art in computational docking, crucial for structure-based drug discovery and chemical biology.\n\n**Core Capabilities:**\n- Predict ligand binding poses with high accuracy using deep learning\n- Support protein structures (PDB files) or sequences (via ESMFold)\n- Process single complexes or batch virtual screening campaigns\n- Generate confidence scores to assess prediction reliability\n- Handle diverse ligand inputs (SMILES, SDF, MOL2)\n\n**Key Distinction:** DiffDock predicts **binding poses** (3D structure) and **confidence** (prediction certainty), NOT binding affinity (ΔG, Kd). Always combine with scoring functions (GNINA, MM\u002FGBSA) for affinity assessment.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- \"Dock this ligand to a protein\" or \"predict binding pose\"\n- \"Run molecular docking\" or \"perform protein-ligand docking\"\n- \"Virtual screening\" or \"screen compound library\"\n- \"Where does this molecule bind?\" or \"predict binding site\"\n- Structure-based drug design or lead optimization tasks\n- Tasks involving PDB files + SMILES strings or ligand structures\n- Batch docking of multiple protein-ligand pairs\n\n\n### Related Skills\n- **molecular-docking**: Full end-to-end pipeline including target prep, pocket detection, AutoDock Vina, scoring, and interaction analysis. Use when you need the complete workflow, not just DiffDock.\n- **denovo-design**: For generating new molecules (not docking). Use diffdock afterwards to dock generated molecules.\n\n## Running DiffDock on Modal (Recommended for openscience)\n\nUse Modal for on-demand GPU access without local GPU setup.\n\n### Prerequisites\n\n```bash\n# Verify Modal credentials (auto-injected by openscience)\n[ -n \"$MODAL_TOKEN_ID\" ] && echo \"MODAL_TOKEN_ID set\" || echo \"NOT SET\"\n[ -n \"$MODAL_TOKEN_SECRET\" ] && echo \"MODAL_TOKEN_SECRET set\" || echo \"NOT SET\"\n```\n\nIf not set: connect Modal at https:\u002F\u002Fapp.syntheticsciences.ai -> Services, then restart openscience.\n\n### Modal DiffDock Wrapper\n\n```python\nimport modal\n\napp = modal.App(\"diffdock\")\n\ndiffdock_image = (\n    modal.Image.from_registry(\"rbgcsail\u002Fdiffdock\")\n    .pip_install(\"rdkit-pypi\", \"pandas\", \"biopython\")\n)\n\nvol = modal.Volume.from_name(\"diffdock-results\", create_if_missing=True)\n\n@app.function(\n    image=diffdock_image,\n    gpu=\"A10G\",\n    timeout=3600,\n    volumes={\"\u002Fresults\": vol},\n)\ndef dock(protein_path: str, ligand_smiles: str, samples: int = 10):\n    \"\"\"Run DiffDock docking on Modal GPU.\"\"\"\n    import subprocess\n\n    cmd = [\n        \"python\", \"-m\", \"inference\",\n        \"--config\", \"default_inference_args.yaml\",\n        \"--protein_path\", protein_path,\n        \"--ligand\", ligand_smiles,\n        \"--samples_per_complex\", str(samples),\n        \"--out_dir\", \"\u002Fresults\u002Fdocking_output\u002F\",\n    ]\n    result = subprocess.run(cmd, capture_output=True, text=True)\n    vol.commit()\n    return {\"stdout\": result.stdout, \"stderr\": result.stderr, \"returncode\": result.returncode}\n\n@app.function(\n    image=diffdock_image,\n    gpu=\"A10G\",\n    timeout=7200,\n    volumes={\"\u002Fresults\": vol},\n)\ndef batch_dock(csv_path: str, samples: int = 10):\n    \"\"\"Run DiffDock batch docking on Modal GPU.\"\"\"\n    import subprocess\n\n    cmd = [\n        \"python\", \"-m\", \"inference\",\n        \"--config\", \"default_inference_args.yaml\",\n        \"--protein_ligand_csv\", csv_path,\n        \"--samples_per_complex\", str(samples),\n        \"--out_dir\", \"\u002Fresults\u002Fbatch_output\u002F\",\n    ]\n    result = subprocess.run(cmd, capture_output=True, text=True)\n    vol.commit()\n    return {\"stdout\": result.stdout, \"stderr\": result.stderr, \"returncode\": result.returncode}\n\n@app.local_entrypoint()\ndef main():\n    result = dock.remote(\"protein.pdb\", \"CC(=O)Oc1ccccc1C(=O)O\", samples=10)\n    print(result)\n```\n\n### GPU Selection\n\n| Scenario | GPU | VRAM |\n|----------|-----|------|\n| Single docking (1 pair) | T4 or A10G | 16-24 GB |\n| Batch docking (\u003C50 complexes) | A10G | 24 GB |\n| Large virtual screening (>100) | A100 40GB | 40 GB |\n| Very large screening + embeddings | A100 80GB | 80 GB |\n\n### Cost Estimate\n\n- Single docking: ~2-5 min on A10G = ~$0.04-0.09\n- Batch of 50 compounds: ~30-60 min on A10G = ~$0.55-1.10\n- Screen 1000 compounds: ~4-8 hrs on A100 = ~$13-27\n\n**CRITICAL**: Present cost estimate to user before launching any GPU job.\n\n## Local Installation and Environment Setup\n\n### Check Environment Status\n\nBefore proceeding with DiffDock tasks, verify the environment setup:\n\n```bash\n# Use the provided setup checker\npython scripts\u002Fsetup_check.py\n```\n\nThis script validates Python version, PyTorch with CUDA, PyTorch Geometric, RDKit, ESM, and other dependencies.\n\n### Installation Options\n\n**Option 1: Conda (Recommended)**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgcorso\u002FDiffDock.git\ncd DiffDock\nconda env create --file environment.yml\nconda activate diffdock\n```\n\n**Option 2: Docker**\n```bash\ndocker pull rbgcsail\u002Fdiffdock\ndocker run -it --gpus all --entrypoint \u002Fbin\u002Fbash rbgcsail\u002Fdiffdock\nmicromamba activate diffdock\n```\n\n**Important Notes:**\n- GPU strongly recommended (10-100x speedup vs CPU)\n- First run pre-computes SO(2)\u002FSO(3) lookup tables (~2-5 minutes)\n- Model checkpoints (~500MB) download automatically if not present\n\n## Core Workflows\n\n### Workflow 1: Single Protein-Ligand Docking\n\n**Use Case:** Dock one ligand to one protein target\n\n**Input Requirements:**\n- Protein: PDB file OR amino acid sequence\n- Ligand: SMILES string OR structure file (SDF\u002FMOL2)\n\n**Command:**\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_path protein.pdb \\\n  --ligand \"CC(=O)Oc1ccccc1C(=O)O\" \\\n  --out_dir results\u002Fsingle_docking\u002F\n```\n\n**Alternative (protein sequence):**\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_sequence \"MSKGEELFTGVVPILVELDGDVNGHKF...\" \\\n  --ligand ligand.sdf \\\n  --out_dir results\u002Fsequence_docking\u002F\n```\n\n**Output Structure:**\n```\nresults\u002Fsingle_docking\u002F\n├── rank_1.sdf          # Top-ranked pose\n├── rank_2.sdf          # Second-ranked pose\n├── ...\n├── rank_10.sdf         # 10th pose (default: 10 samples)\n└── confidence_scores.txt\n```\n\n### Workflow 2: Batch Processing Multiple Complexes\n\n**Use Case:** Dock multiple ligands to proteins, virtual screening campaigns\n\n**Step 1: Prepare Batch CSV**\n\nUse the provided script to create or validate batch input:\n\n```bash\n# Create template\npython scripts\u002Fprepare_batch_csv.py --create --output batch_input.csv\n\n# Validate existing CSV\npython scripts\u002Fprepare_batch_csv.py my_input.csv --validate\n```\n\n**CSV Format:**\n```csv\ncomplex_name,protein_path,ligand_description,protein_sequence\ncomplex1,protein1.pdb,CC(=O)Oc1ccccc1C(=O)O,\ncomplex2,,COc1ccc(C#N)cc1,MSKGEELFT...\ncomplex3,protein3.pdb,ligand3.sdf,\n```\n\n**Required Columns:**\n- `complex_name`: Unique identifier\n- `protein_path`: PDB file path (leave empty if using sequence)\n- `ligand_description`: SMILES string or ligand file path\n- `protein_sequence`: Amino acid sequence (leave empty if using PDB)\n\n**Step 2: Run Batch Docking**\n\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv batch_input.csv \\\n  --out_dir results\u002Fbatch\u002F \\\n  --batch_size 10\n```\n\n**For Large Virtual Screening (>100 compounds):**\n\nPre-compute protein embeddings for faster processing:\n```bash\n# Pre-compute embeddings\npython datasets\u002Fesm_embedding_preparation.py \\\n  --protein_ligand_csv screening_input.csv \\\n  --out_file protein_embeddings.pt\n\n# Run with pre-computed embeddings\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv screening_input.csv \\\n  --esm_embeddings_path protein_embeddings.pt \\\n  --out_dir results\u002Fscreening\u002F\n```\n\n### Workflow 3: Analyzing Results\n\nAfter docking completes, analyze confidence scores and rank predictions:\n\n```bash\n# Analyze all results\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F\n\n# Show top 5 per complex\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --top 5\n\n# Filter by confidence threshold\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --threshold 0.0\n\n# Export to CSV\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --export summary.csv\n\n# Show top 20 predictions across all complexes\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --best 20\n```\n\nThe analysis script:\n- Parses confidence scores from all predictions\n- Classifies as High (>0), Moderate (-1.5 to 0), or Low (\u003C-1.5)\n- Ranks predictions within and across complexes\n- Generates statistical summaries\n- Exports results to CSV for downstream analysis\n\n## Confidence Score Interpretation\n\n**Understanding Scores:**\n\n| Score Range | Confidence Level | Interpretation |\n|------------|------------------|----------------|\n| **> 0** | High | Strong prediction, likely accurate |\n| **-1.5 to 0** | Moderate | Reasonable prediction, validate carefully |\n| **\u003C -1.5** | Low | Uncertain prediction, requires validation |\n\n**Critical Notes:**\n1. **Confidence ≠ Affinity**: High confidence means model certainty about structure, NOT strong binding\n2. **Context Matters**: Adjust expectations for:\n   - Large ligands (>500 Da): Lower confidence expected\n   - Multiple protein chains: May decrease confidence\n   - Novel protein families: May underperform\n3. **Multiple Samples**: Review top 3-5 predictions, look for consensus\n\n**For detailed guidance:** Read `references\u002Fconfidence_and_limitations.md` using the Read tool\n\n## Parameter Customization\n\n### Using Custom Configuration\n\nCreate custom configuration for specific use cases:\n\n```bash\n# Copy template\ncp assets\u002Fcustom_inference_config.yaml my_config.yaml\n\n# Edit parameters (see template for presets)\n# Then run with custom config\npython -m inference \\\n  --config my_config.yaml \\\n  --protein_ligand_csv input.csv \\\n  --out_dir results\u002F\n```\n\n### Key Parameters to Adjust\n\n**Sampling Density:**\n- `samples_per_complex: 10` → Increase to 20-40 for difficult cases\n- More samples = better coverage but longer runtime\n\n**Inference Steps:**\n- `inference_steps: 20` → Increase to 25-30 for higher accuracy\n- More steps = potentially better quality but slower\n\n**Temperature Parameters (control diversity):**\n- `temp_sampling_tor: 7.04` → Increase for flexible ligands (8-10)\n- `temp_sampling_tor: 7.04` → Decrease for rigid ligands (5-6)\n- Higher temperature = more diverse poses\n\n**Presets Available in Template:**\n1. High Accuracy: More samples + steps, lower temperature\n2. Fast Screening: Fewer samples, faster\n3. Flexible Ligands: Increased torsion temperature\n4. Rigid Ligands: Decreased torsion temperature\n\n**For complete parameter reference:** Read `references\u002Fparameters_reference.md` using the Read tool\n\n## Advanced Techniques\n\n### Ensemble Docking (Protein Flexibility)\n\nFor proteins with known flexibility, dock to multiple conformations:\n\n```python\n# Create ensemble CSV\nimport pandas as pd\n\nconformations = [\"conf1.pdb\", \"conf2.pdb\", \"conf3.pdb\"]\nligand = \"CC(=O)Oc1ccccc1C(=O)O\"\n\ndata = {\n    \"complex_name\": [f\"ensemble_{i}\" for i in range(len(conformations))],\n    \"protein_path\": conformations,\n    \"ligand_description\": [ligand] * len(conformations),\n    \"protein_sequence\": [\"\"] * len(conformations)\n}\n\npd.DataFrame(data).to_csv(\"ensemble_input.csv\", index=False)\n```\n\nRun docking with increased sampling:\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv ensemble_input.csv \\\n  --samples_per_complex 20 \\\n  --out_dir results\u002Fensemble\u002F\n```\n\n### Integration with Scoring Functions\n\nDiffDock generates poses; combine with other tools for affinity:\n\n**GNINA (Fast neural network scoring):**\n```bash\nfor pose in results\u002F*.sdf; do\n    gnina -r protein.pdb -l \"$pose\" --score_only\ndone\n```\n\n**MM\u002FGBSA (More accurate, slower):**\nUse AmberTools MMPBSA.py or gmx_MMPBSA after energy minimization\n\n**Free Energy Calculations (Most accurate):**\nUse OpenMM + OpenFE or GROMACS for FEP\u002FTI calculations\n\n**Recommended Workflow:**\n1. DiffDock → Generate poses with confidence scores\n2. Visual inspection → Check structural plausibility\n3. GNINA or MM\u002FGBSA → Rescore and rank by affinity\n4. Experimental validation → Biochemical assays\n\n## Limitations and Scope\n\n**DiffDock IS Designed For:**\n- Small molecule ligands (typically 100-1000 Da)\n- Drug-like organic compounds\n- Small peptides (\u003C20 residues)\n- Single or multi-chain proteins\n\n**DiffDock IS NOT Designed For:**\n- Large biomolecules (protein-protein docking) → Use DiffDock-PP or AlphaFold-Multimer\n- Large peptides (>20 residues) → Use alternative methods\n- Covalent docking → Use specialized covalent docking tools\n- Binding affinity prediction → Combine with scoring functions\n- Membrane proteins → Not specifically trained, use with caution\n\n**For complete limitations:** Read `references\u002Fconfidence_and_limitations.md` using the Read tool\n\n## Troubleshooting\n\n### Common Issues\n\n**Issue: Low confidence scores across all predictions**\n- Cause: Large\u002Funusual ligands, unclear binding site, protein flexibility\n- Solution: Increase `samples_per_complex` (20-40), try ensemble docking, validate protein structure\n\n**Issue: Out of memory errors**\n- Cause: GPU memory insufficient for batch size\n- Solution: Reduce `--batch_size 2` or process fewer complexes at once\n\n**Issue: Slow performance**\n- Cause: Running on CPU instead of GPU\n- Solution: Verify CUDA with `python -c \"import torch; print(torch.cuda.is_available())\"`, use GPU\n\n**Issue: Unrealistic binding poses**\n- Cause: Poor protein preparation, ligand too large, wrong binding site\n- Solution: Check protein for missing residues, remove far waters, consider specifying binding site\n\n**Issue: \"Module not found\" errors**\n- Cause: Missing dependencies or wrong environment\n- Solution: Run `python scripts\u002Fsetup_check.py` to diagnose\n\n### Performance Optimization\n\n**For Best Results:**\n1. Use GPU (essential for practical use)\n2. Pre-compute ESM embeddings for repeated protein use\n3. Batch process multiple complexes together\n4. Start with default parameters, then tune if needed\n5. Validate protein structures (resolve missing residues)\n6. Use canonical SMILES for ligands\n\n## Graphical User Interface\n\nFor interactive use, launch the web interface:\n\n```bash\npython app\u002Fmain.py\n# Navigate to http:\u002F\u002Flocalhost:7860\n```\n\nOr use the online demo without installation:\n- https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Freginabarzilaygroup\u002FDiffDock-Web\n\n## Resources\n\n### Helper Scripts (`scripts\u002F`)\n\n**`prepare_batch_csv.py`**: Create and validate batch input CSV files\n- Create templates with example entries\n- Validate file paths and SMILES strings\n- Check for required columns and format issues\n\n**`analyze_results.py`**: Analyze confidence scores and rank predictions\n- Parse results from single or batch runs\n- Generate statistical summaries\n- Export to CSV for downstream analysis\n- Identify top predictions across complexes\n\n**`setup_check.py`**: Verify DiffDock environment setup\n- Check Python version and dependencies\n- Verify PyTorch and CUDA availability\n- Test RDKit and PyTorch Geometric installation\n- Provide installation instructions if needed\n\n### Reference Documentation (`references\u002F`)\n\n**`parameters_reference.md`**: Complete parameter documentation\n- All command-line options and configuration parameters\n- Default values and acceptable ranges\n- Temperature parameters for controlling diversity\n- Model checkpoint locations and version flags\n\nRead this file when users need:\n- Detailed parameter explanations\n- Fine-tuning guidance for specific systems\n- Alternative sampling strategies\n\n**`confidence_and_limitations.md`**: Confidence score interpretation and tool limitations\n- Detailed confidence score interpretation\n- When to trust predictions\n- Scope and limitations of DiffDock\n- Integration with complementary tools\n- Troubleshooting prediction quality\n\nRead this file when users need:\n- Help interpreting confidence scores\n- Understanding when NOT to use DiffDock\n- Guidance on combining with other tools\n- Validation strategies\n\n**`workflows_examples.md`**: Comprehensive workflow examples\n- Detailed installation instructions\n- Step-by-step examples for all workflows\n- Advanced integration patterns\n- Troubleshooting common issues\n- Best practices and optimization tips\n\nRead this file when users need:\n- Complete workflow examples with code\n- Integration with GNINA, OpenMM, or other tools\n- Virtual screening workflows\n- Ensemble docking procedures\n\n### Assets (`assets\u002F`)\n\n**`batch_template.csv`**: Template for batch processing\n- Pre-formatted CSV with required columns\n- Example entries showing different input types\n- Ready to customize with actual data\n\n**`custom_inference_config.yaml`**: Configuration template\n- Annotated YAML with all parameters\n- Four preset configurations for common use cases\n- Detailed comments explaining each parameter\n- Ready to customize and use\n\n## Best Practices\n\n1. **Always verify environment** with `setup_check.py` before starting large jobs\n2. **Validate batch CSVs** with `prepare_batch_csv.py` to catch errors early\n3. **Start with defaults** then tune parameters based on system-specific needs\n4. **Generate multiple samples** (10-40) for robust predictions\n5. **Visual inspection** of top poses before downstream analysis\n6. **Combine with scoring** functions for affinity assessment\n7. **Use confidence scores** for initial ranking, not final decisions\n8. **Pre-compute embeddings** for virtual screening campaigns\n9. **Document parameters** used for reproducibility\n10. **Validate results** experimentally when possible\n\n## Citations\n\nWhen using DiffDock, cite the appropriate papers:\n\n**DiffDock-L (current default model):**\n```\nStärk et al. (2024) \"DiffDock-L: Improving Molecular Docking with Diffusion Models\"\narXiv:2402.18396\n```\n\n**Original DiffDock:**\n```\nCorso et al. (2023) \"DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking\"\nICLR 2023, arXiv:2210.01776\n```\n\n## Additional Resources\n\n- **GitHub Repository**: https:\u002F\u002Fgithub.com\u002Fgcorso\u002FDiffDock\n- **Online Demo**: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Freginabarzilaygroup\u002FDiffDock-Web\n- **DiffDock-L Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.18396\n- **Original Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.01776\n\n","# DiffDock: Molecular Docking with Diffusion Models\n\n## Overview\n\nDiffDock is a diffusion-based deep learning tool for molecular docking that predicts 3D binding poses of small molecule ligands to protein targets. It represents the state-of-the-art in computational docking, crucial for structure-based drug discovery and chemical biology.\n\n**Core Capabilities:**\n- Predict ligand binding poses with high accuracy using deep learning\n- Support protein structures (PDB files) or sequences (via ESMFold)\n- Process single complexes or batch virtual screening campaigns\n- Generate confidence scores to assess prediction reliability\n- Handle diverse ligand inputs (SMILES, SDF, MOL2)\n\n**Key Distinction:** DiffDock predicts **binding poses** (3D structure) and **confidence** (prediction certainty), NOT binding affinity (ΔG, Kd). Always combine with scoring functions (GNINA, MM\u002FGBSA) for affinity assessment.\n\n## When to Use This Skill\n\nThis skill should be used when:\n\n- \"Dock this ligand to a protein\" or \"predict binding pose\"\n- \"Run molecular docking\" or \"perform protein-ligand docking\"\n- \"Virtual screening\" or \"screen compound library\"\n- \"Where does this molecule bind?\" or \"predict binding site\"\n- Structure-based drug design or lead optimization tasks\n- Tasks involving PDB files + SMILES strings or ligand structures\n- Batch docking of multiple protein-ligand pairs\n\n\n### Related Skills\n- **molecular-docking**: Full end-to-end pipeline including target prep, pocket detection, AutoDock Vina, scoring, and interaction analysis. Use when you need the complete workflow, not just DiffDock.\n- **denovo-design**: For generating new molecules (not docking). Use diffdock afterwards to dock generated molecules.\n\n## Running DiffDock on Modal (Recommended for openscience)\n\nUse Modal for on-demand GPU access without local GPU setup.\n\n### Prerequisites\n\n```bash\n# Verify Modal credentials (auto-injected by openscience)\n[ -n \"$MODAL_TOKEN_ID\" ] && echo \"MODAL_TOKEN_ID set\" || echo \"NOT SET\"\n[ -n \"$MODAL_TOKEN_SECRET\" ] && echo \"MODAL_TOKEN_SECRET set\" || echo \"NOT SET\"\n```\n\nIf not set: connect Modal at https:\u002F\u002Fapp.syntheticsciences.ai -> Services, then restart openscience.\n\n### Modal DiffDock Wrapper\n\n```python\nimport modal\n\napp = modal.App(\"diffdock\")\n\ndiffdock_image = (\n    modal.Image.from_registry(\"rbgcsail\u002Fdiffdock\")\n    .pip_install(\"rdkit-pypi\", \"pandas\", \"biopython\")\n)\n\nvol = modal.Volume.from_name(\"diffdock-results\", create_if_missing=True)\n\n@app.function(\n    image=diffdock_image,\n    gpu=\"A10G\",\n    timeout=3600,\n    volumes={\"\u002Fresults\": vol},\n)\ndef dock(protein_path: str, ligand_smiles: str, samples: int = 10):\n    \"\"\"Run DiffDock docking on Modal GPU.\"\"\"\n    import subprocess\n\n    cmd = [\n        \"python\", \"-m\", \"inference\",\n        \"--config\", \"default_inference_args.yaml\",\n        \"--protein_path\", protein_path,\n        \"--ligand\", ligand_smiles,\n        \"--samples_per_complex\", str(samples),\n        \"--out_dir\", \"\u002Fresults\u002Fdocking_output\u002F\",\n    ]\n    result = subprocess.run(cmd, capture_output=True, text=True)\n    vol.commit()\n    return {\"stdout\": result.stdout, \"stderr\": result.stderr, \"returncode\": result.returncode}\n\n@app.function(\n    image=diffdock_image,\n    gpu=\"A10G\",\n    timeout=7200,\n    volumes={\"\u002Fresults\": vol},\n)\ndef batch_dock(csv_path: str, samples: int = 10):\n    \"\"\"Run DiffDock batch docking on Modal GPU.\"\"\"\n    import subprocess\n\n    cmd = [\n        \"python\", \"-m\", \"inference\",\n        \"--config\", \"default_inference_args.yaml\",\n        \"--protein_ligand_csv\", csv_path,\n        \"--samples_per_complex\", str(samples),\n        \"--out_dir\", \"\u002Fresults\u002Fbatch_output\u002F\",\n    ]\n    result = subprocess.run(cmd, capture_output=True, text=True)\n    vol.commit()\n    return {\"stdout\": result.stdout, \"stderr\": result.stderr, \"returncode\": result.returncode}\n\n@app.local_entrypoint()\ndef main():\n    result = dock.remote(\"protein.pdb\", \"CC(=O)Oc1ccccc1C(=O)O\", samples=10)\n    print(result)\n```\n\n### GPU Selection\n\n| Scenario | GPU | VRAM |\n|----------|-----|------|\n| Single docking (1 pair) | T4 or A10G | 16-24 GB |\n| Batch docking (\u003C50 complexes) | A10G | 24 GB |\n| Large virtual screening (>100) | A100 40GB | 40 GB |\n| Very large screening + embeddings | A100 80GB | 80 GB |\n\n### Cost Estimate\n\n- Single docking: ~2-5 min on A10G = ~$0.04-0.09\n- Batch of 50 compounds: ~30-60 min on A10G = ~$0.55-1.10\n- Screen 1000 compounds: ~4-8 hrs on A100 = ~$13-27\n\n**CRITICAL**: Present cost estimate to user before launching any GPU job.\n\n## Local Installation and Environment Setup\n\n### Check Environment Status\n\nBefore proceeding with DiffDock tasks, verify the environment setup:\n\n```bash\n# Use the provided setup checker\npython scripts\u002Fsetup_check.py\n```\n\nThis script validates Python version, PyTorch with CUDA, PyTorch Geometric, RDKit, ESM, and other dependencies.\n\n### Installation Options\n\n**Option 1: Conda (Recommended)**\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fgcorso\u002FDiffDock.git\ncd DiffDock\nconda env create --file environment.yml\nconda activate diffdock\n```\n\n**Option 2: Docker**\n```bash\ndocker pull rbgcsail\u002Fdiffdock\ndocker run -it --gpus all --entrypoint \u002Fbin\u002Fbash rbgcsail\u002Fdiffdock\nmicromamba activate diffdock\n```\n\n**Important Notes:**\n- GPU strongly recommended (10-100x speedup vs CPU)\n- First run pre-computes SO(2)\u002FSO(3) lookup tables (~2-5 minutes)\n- Model checkpoints (~500MB) download automatically if not present\n\n## Core Workflows\n\n### Workflow 1: Single Protein-Ligand Docking\n\n**Use Case:** Dock one ligand to one protein target\n\n**Input Requirements:**\n- Protein: PDB file OR amino acid sequence\n- Ligand: SMILES string OR structure file (SDF\u002FMOL2)\n\n**Command:**\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_path protein.pdb \\\n  --ligand \"CC(=O)Oc1ccccc1C(=O)O\" \\\n  --out_dir results\u002Fsingle_docking\u002F\n```\n\n**Alternative (protein sequence):**\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_sequence \"MSKGEELFTGVVPILVELDGDVNGHKF...\" \\\n  --ligand ligand.sdf \\\n  --out_dir results\u002Fsequence_docking\u002F\n```\n\n**Output Structure:**\n```\nresults\u002Fsingle_docking\u002F\n├── rank_1.sdf          # Top-ranked pose\n├── rank_2.sdf          # Second-ranked pose\n├── ...\n├── rank_10.sdf         # 10th pose (default: 10 samples)\n└── confidence_scores.txt\n```\n\n### Workflow 2: Batch Processing Multiple Complexes\n\n**Use Case:** Dock multiple ligands to proteins, virtual screening campaigns\n\n**Step 1: Prepare Batch CSV**\n\nUse the provided script to create or validate batch input:\n\n```bash\n# Create template\npython scripts\u002Fprepare_batch_csv.py --create --output batch_input.csv\n\n# Validate existing CSV\npython scripts\u002Fprepare_batch_csv.py my_input.csv --validate\n```\n\n**CSV Format:**\n```csv\ncomplex_name,protein_path,ligand_description,protein_sequence\ncomplex1,protein1.pdb,CC(=O)Oc1ccccc1C(=O)O,\ncomplex2,,COc1ccc(C#N)cc1,MSKGEELFT...\ncomplex3,protein3.pdb,ligand3.sdf,\n```\n\n**Required Columns:**\n- `complex_name`: Unique identifier\n- `protein_path`: PDB file path (leave empty if using sequence)\n- `ligand_description`: SMILES string or ligand file path\n- `protein_sequence`: Amino acid sequence (leave empty if using PDB)\n\n**Step 2: Run Batch Docking**\n\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv batch_input.csv \\\n  --out_dir results\u002Fbatch\u002F \\\n  --batch_size 10\n```\n\n**For Large Virtual Screening (>100 compounds):**\n\nPre-compute protein embeddings for faster processing:\n```bash\n# Pre-compute embeddings\npython datasets\u002Fesm_embedding_preparation.py \\\n  --protein_ligand_csv screening_input.csv \\\n  --out_file protein_embeddings.pt\n\n# Run with pre-computed embeddings\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv screening_input.csv \\\n  --esm_embeddings_path protein_embeddings.pt \\\n  --out_dir results\u002Fscreening\u002F\n```\n\n### Workflow 3: Analyzing Results\n\nAfter docking completes, analyze confidence scores and rank predictions:\n\n```bash\n# Analyze all results\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F\n\n# Show top 5 per complex\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --top 5\n\n# Filter by confidence threshold\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --threshold 0.0\n\n# Export to CSV\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --export summary.csv\n\n# Show top 20 predictions across all complexes\npython scripts\u002Fanalyze_results.py results\u002Fbatch\u002F --best 20\n```\n\nThe analysis script:\n- Parses confidence scores from all predictions\n- Classifies as High (>0), Moderate (-1.5 to 0), or Low (\u003C-1.5)\n- Ranks predictions within and across complexes\n- Generates statistical summaries\n- Exports results to CSV for downstream analysis\n\n## Confidence Score Interpretation\n\n**Understanding Scores:**\n\n| Score Range | Confidence Level | Interpretation |\n|------------|------------------|----------------|\n| **> 0** | High | Strong prediction, likely accurate |\n| **-1.5 to 0** | Moderate | Reasonable prediction, validate carefully |\n| **\u003C -1.5** | Low | Uncertain prediction, requires validation |\n\n**Critical Notes:**\n1. **Confidence ≠ Affinity**: High confidence means model certainty about structure, NOT strong binding\n2. **Context Matters**: Adjust expectations for:\n   - Large ligands (>500 Da): Lower confidence expected\n   - Multiple protein chains: May decrease confidence\n   - Novel protein families: May underperform\n3. **Multiple Samples**: Review top 3-5 predictions, look for consensus\n\n**For detailed guidance:** Read `references\u002Fconfidence_and_limitations.md` using the Read tool\n\n## Parameter Customization\n\n### Using Custom Configuration\n\nCreate custom configuration for specific use cases:\n\n```bash\n# Copy template\ncp assets\u002Fcustom_inference_config.yaml my_config.yaml\n\n# Edit parameters (see template for presets)\n# Then run with custom config\npython -m inference \\\n  --config my_config.yaml \\\n  --protein_ligand_csv input.csv \\\n  --out_dir results\u002F\n```\n\n### Key Parameters to Adjust\n\n**Sampling Density:**\n- `samples_per_complex: 10` → Increase to 20-40 for difficult cases\n- More samples = better coverage but longer runtime\n\n**Inference Steps:**\n- `inference_steps: 20` → Increase to 25-30 for higher accuracy\n- More steps = potentially better quality but slower\n\n**Temperature Parameters (control diversity):**\n- `temp_sampling_tor: 7.04` → Increase for flexible ligands (8-10)\n- `temp_sampling_tor: 7.04` → Decrease for rigid ligands (5-6)\n- Higher temperature = more diverse poses\n\n**Presets Available in Template:**\n1. High Accuracy: More samples + steps, lower temperature\n2. Fast Screening: Fewer samples, faster\n3. Flexible Ligands: Increased torsion temperature\n4. Rigid Ligands: Decreased torsion temperature\n\n**For complete parameter reference:** Read `references\u002Fparameters_reference.md` using the Read tool\n\n## Advanced Techniques\n\n### Ensemble Docking (Protein Flexibility)\n\nFor proteins with known flexibility, dock to multiple conformations:\n\n```python\n# Create ensemble CSV\nimport pandas as pd\n\nconformations = [\"conf1.pdb\", \"conf2.pdb\", \"conf3.pdb\"]\nligand = \"CC(=O)Oc1ccccc1C(=O)O\"\n\ndata = {\n    \"complex_name\": [f\"ensemble_{i}\" for i in range(len(conformations))],\n    \"protein_path\": conformations,\n    \"ligand_description\": [ligand] * len(conformations),\n    \"protein_sequence\": [\"\"] * len(conformations)\n}\n\npd.DataFrame(data).to_csv(\"ensemble_input.csv\", index=False)\n```\n\nRun docking with increased sampling:\n```bash\npython -m inference \\\n  --config default_inference_args.yaml \\\n  --protein_ligand_csv ensemble_input.csv \\\n  --samples_per_complex 20 \\\n  --out_dir results\u002Fensemble\u002F\n```\n\n### Integration with Scoring Functions\n\nDiffDock generates poses; combine with other tools for affinity:\n\n**GNINA (Fast neural network scoring):**\n```bash\nfor pose in results\u002F*.sdf; do\n    gnina -r protein.pdb -l \"$pose\" --score_only\ndone\n```\n\n**MM\u002FGBSA (More accurate, slower):**\nUse AmberTools MMPBSA.py or gmx_MMPBSA after energy minimization\n\n**Free Energy Calculations (Most accurate):**\nUse OpenMM + OpenFE or GROMACS for FEP\u002FTI calculations\n\n**Recommended Workflow:**\n1. DiffDock → Generate poses with confidence scores\n2. Visual inspection → Check structural plausibility\n3. GNINA or MM\u002FGBSA → Rescore and rank by affinity\n4. Experimental validation → Biochemical assays\n\n## Limitations and Scope\n\n**DiffDock IS Designed For:**\n- Small molecule ligands (typically 100-1000 Da)\n- Drug-like organic compounds\n- Small peptides (\u003C20 residues)\n- Single or multi-chain proteins\n\n**DiffDock IS NOT Designed For:**\n- Large biomolecules (protein-protein docking) → Use DiffDock-PP or AlphaFold-Multimer\n- Large peptides (>20 residues) → Use alternative methods\n- Covalent docking → Use specialized covalent docking tools\n- Binding affinity prediction → Combine with scoring functions\n- Membrane proteins → Not specifically trained, use with caution\n\n**For complete limitations:** Read `references\u002Fconfidence_and_limitations.md` using the Read tool\n\n## Troubleshooting\n\n### Common Issues\n\n**Issue: Low confidence scores across all predictions**\n- Cause: Large\u002Funusual ligands, unclear binding site, protein flexibility\n- Solution: Increase `samples_per_complex` (20-40), try ensemble docking, validate protein structure\n\n**Issue: Out of memory errors**\n- Cause: GPU memory insufficient for batch size\n- Solution: Reduce `--batch_size 2` or process fewer complexes at once\n\n**Issue: Slow performance**\n- Cause: Running on CPU instead of GPU\n- Solution: Verify CUDA with `python -c \"import torch; print(torch.cuda.is_available())\"`, use GPU\n\n**Issue: Unrealistic binding poses**\n- Cause: Poor protein preparation, ligand too large, wrong binding site\n- Solution: Check protein for missing residues, remove far waters, consider specifying binding site\n\n**Issue: \"Module not found\" errors**\n- Cause: Missing dependencies or wrong environment\n- Solution: Run `python scripts\u002Fsetup_check.py` to diagnose\n\n### Performance Optimization\n\n**For Best Results:**\n1. Use GPU (essential for practical use)\n2. Pre-compute ESM embeddings for repeated protein use\n3. Batch process multiple complexes together\n4. Start with default parameters, then tune if needed\n5. Validate protein structures (resolve missing residues)\n6. Use canonical SMILES for ligands\n\n## Graphical User Interface\n\nFor interactive use, launch the web interface:\n\n```bash\npython app\u002Fmain.py\n# Navigate to http:\u002F\u002Flocalhost:7860\n```\n\nOr use the online demo without installation:\n- https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Freginabarzilaygroup\u002FDiffDock-Web\n\n## Resources\n\n### Helper Scripts (`scripts\u002F`)\n\n**`prepare_batch_csv.py`**: Create and validate batch input CSV files\n- Create templates with example entries\n- Validate file paths and SMILES strings\n- Check for required columns and format issues\n\n**`analyze_results.py`**: Analyze confidence scores and rank predictions\n- Parse results from single or batch runs\n- Generate statistical summaries\n- Export to CSV for downstream analysis\n- Identify top predictions across complexes\n\n**`setup_check.py`**: Verify DiffDock environment setup\n- Check Python version and dependencies\n- Verify PyTorch and CUDA availability\n- Test RDKit and PyTorch Geometric installation\n- Provide installation instructions if needed\n\n### Reference Documentation (`references\u002F`)\n\n**`parameters_reference.md`**: Complete parameter documentation\n- All command-line options and configuration parameters\n- Default values and acceptable ranges\n- Temperature parameters for controlling diversity\n- Model checkpoint locations and version flags\n\nRead this file when users need:\n- Detailed parameter explanations\n- Fine-tuning guidance for specific systems\n- Alternative sampling strategies\n\n**`confidence_and_limitations.md`**: Confidence score interpretation and tool limitations\n- Detailed confidence score interpretation\n- When to trust predictions\n- Scope and limitations of DiffDock\n- Integration with complementary tools\n- Troubleshooting prediction quality\n\nRead this file when users need:\n- Help interpreting confidence scores\n- Understanding when NOT to use DiffDock\n- Guidance on combining with other tools\n- Validation strategies\n\n**`workflows_examples.md`**: Comprehensive workflow examples\n- Detailed installation instructions\n- Step-by-step examples for all workflows\n- Advanced integration patterns\n- Troubleshooting common issues\n- Best practices and optimization tips\n\nRead this file when users need:\n- Complete workflow examples with code\n- Integration with GNINA, OpenMM, or other tools\n- Virtual screening workflows\n- Ensemble docking procedures\n\n### Assets (`assets\u002F`)\n\n**`batch_template.csv`**: Template for batch processing\n- Pre-formatted CSV with required columns\n- Example entries showing different input types\n- Ready to customize with actual data\n\n**`custom_inference_config.yaml`**: Configuration template\n- Annotated YAML with all parameters\n- Four preset configurations for common use cases\n- Detailed comments explaining each parameter\n- Ready to customize and use\n\n## Best Practices\n\n1. **Always verify environment** with `setup_check.py` before starting large jobs\n2. **Validate batch CSVs** with `prepare_batch_csv.py` to catch errors early\n3. **Start with defaults** then tune parameters based on system-specific needs\n4. **Generate multiple samples** (10-40) for robust predictions\n5. **Visual inspection** of top poses before downstream analysis\n6. **Combine with scoring** functions for affinity assessment\n7. **Use confidence scores** for initial ranking, not final decisions\n8. **Pre-compute embeddings** for virtual screening campaigns\n9. **Document parameters** used for reproducibility\n10. **Validate results** experimentally when possible\n\n## Citations\n\nWhen using DiffDock, cite the appropriate papers:\n\n**DiffDock-L (current default model):**\n```\nStärk et al. (2024) \"DiffDock-L: Improving Molecular Docking with Diffusion Models\"\narXiv:2402.18396\n```\n\n**Original DiffDock:**\n```\nCorso et al. (2023) \"DiffDock: Diffusion Steps, Twists, and Turns for Molecular Docking\"\nICLR 2023, arXiv:2210.01776\n```\n\n## Additional Resources\n\n- **GitHub Repository**: https:\u002F\u002Fgithub.com\u002Fgcorso\u002FDiffDock\n- **Online Demo**: https:\u002F\u002Fhuggingface.co\u002Fspaces\u002Freginabarzilaygroup\u002FDiffDock-Web\n- **DiffDock-L Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2402.18396\n- **Original Paper**: https:\u002F\u002Farxiv.org\u002Fabs\u002F2210.01776\n\n",{"name":5,"tags":43,"author":48,"license":49,"version":50,"category":51,"metadata":52,"description":7,"dependencies":53},[44,45,46,47],"Molecular Docking","Drug Discovery","Deep Learning","Protein-Ligand","Synthetic Sciences","MIT license","1.0.0","chemistry",{"skill-author":48},[54,55,56,57,35],"torch>=1.12.0","fair-esm","torch-geometric","rdkit-pypi","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add fadrienne\u002FMyGitHub --skill diffdock",{"tool":70,"command":71},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill diffdock",{"tool":73,"command":74},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill diffdock","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002FSKILL.md",true,[78,84,88,94,98,102,108,112],{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"assets\u002Fbatch_template.csv","ASSET","资产文件",410,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Fassets\u002Fbatch_template.csv",{"path":85,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":86,"sourceHtmlUrl":87},"assets\u002Fcustom_inference_config.yaml",2846,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Fassets\u002Fcustom_inference_config.yaml",{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fconfidence_and_limitations.md","REFERENCE","参考文档",6900,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Freferences\u002Fconfidence_and_limitations.md",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Fparameters_reference.md",5072,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Freferences\u002Fparameters_reference.md",{"path":99,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":100,"sourceHtmlUrl":101},"references\u002Fworkflows_examples.md",10520,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Freferences\u002Fworkflows_examples.md",{"path":103,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":106,"sourceHtmlUrl":107},"scripts\u002Fanalyze_results.py","SCRIPT","脚本",11036,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Fscripts\u002Fanalyze_results.py",{"path":109,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":110,"sourceHtmlUrl":111},"scripts\u002Fprepare_batch_csv.py",8730,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Fscripts\u002Fprepare_batch_csv.py",{"path":113,"resourceType":104,"resourceTypeDesc":105,"sizeBytes":114,"sourceHtmlUrl":115},"scripts\u002Fsetup_check.py",8016,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fchemistry\u002Fdiffdock\u002Fscripts\u002Fsetup_check.py",[117,148,174,206,233,260],{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":128,"publishedAt":38},"01M7167B28PK20HP7R7ZED2DY0","statistical-power","Sample size calculation, power analysis, and effect size conversion for scientific studies. Use BEFORE data collection (a priori) to determine required N, or after (post-hoc) to compute achieved power. Covers parametric tests (t-test, ANOVA, chi-square, proportions, correlation, regression), simulation-based power for complex\u002Fclustered\u002Fnested designs, and power curves. Use this skill when someone asks 'how many samples do I need', 'what is my power', 'what effect size can I detect', or any variant. Pairs with \u002Fexperimental-design (choose design first, then compute power) and \u002Fstatistical-analysis (analyze data after collection).","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-power\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[129,130,131,132,133,134,29,135,136,137,138,139,140,141,142,143,144,145,146,147],"power","statistical power","effect","scipy","regression","choose","uv","when","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":157,"publishedAt":38},"01M71677EBCM8EPCE9BZCK8505","statistical-analysis","Guided statistical analysis with test selection and reporting. Use when you need help choosing appropriate tests for your data, assumption checking, power analysis, and APA-formatted results. Best for academic research reporting, test selection guidance. For implementing specific models programmatically use statsmodels.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[154],{"categoryNo":155,"categoryName":156,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000008","测试与质量",[139,158,129,159,160,161,136,162,163,164,22,165,166,167,168,169,170,171,172,173],"statistical analysis","academic research","implementing","selection","you","reporting","data","tests","use","with","test","research","results","statsmodels","models","help",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":189,"publishedAt":38},"01M71673R93XAHFH81DBNVNG7H","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-writing\u002FSKILL.md",[180,183,184],{"categoryNo":181,"categoryName":182,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},{"categoryNo":185,"categoryName":186,"taxonomyType":187,"taxonomyTypeDesc":188},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[190,191,192,193,19,194,195,196,197,198,137,199,200,30,201,202,203,204,163,205],"writing","scientific","scientific writing","Citations","deep research","never","papers","journal","false","api","prisma","openrouter","Outlines","core skill","read","features",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":216,"publishedAt":38},"01M7166ZPKXBF4EBPHVTJPQBB1","scientific-visualization","Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib\u002Fseaborn\u002Fplotly with publication styles. For quick exploration use seaborn or plotly directly.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-visualization\u002FSKILL.md",[212,215],{"categoryNo":213,"categoryName":214,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},[217,191,218,219,220,221,222,223,224,197,136,225,226,227,228,229,230,231,22,232],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":234,"name":235,"nameZh":6,"description":236,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":245,"publishedAt":38},"01M7166VXJWQSSC3RQZP60WBGR","research-code","Debug, profile, review, and restructure Python research and analysis code. Use when analysis scripts crash, produce wrong results, run too slowly, or need a correctness review. Covers: reading tracebacks and diagnosing root causes, hypothesis-driven debugging, reviewing code for common statistical\u002Fnumerical errors, profiling data pipelines, improving reproducibility (seeds, environments, determinism), and structuring analysis scripts for sharing. Distinct from \u002Fexploratory-data-analysis (which understands data) and \u002Fstatistical-analysis (which chooses and runs tests) — this skill focuses on the code itself.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fresearch-code\u002FSKILL.md",[239,242],{"categoryNo":240,"categoryName":241,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":243,"categoryName":244,"taxonomyType":187,"taxonomyTypeDesc":188},"01JBSEEDCAT000000000000030","开发工程师",[246,247,169,248,249,250,251,135,252,136,137,139,253,254,255,256,257,258,204,259],"code","research code","which","memory","data-analysis","errors","debugging","common","review","data pipelines","run","scripts","line","write",{"skillNo":261,"name":262,"nameZh":6,"description":263,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":264,"licenseFileUrl":6,"sourceHtmlUrl":265,"categories":266,"keywords":273,"publishedAt":38},"01M7166CF5HSR7SVZYZFWTDX55","markdown-mermaid-writing","Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fmarkdown-mermaid-writing\u002FSKILL.md",[267,270,271,272],{"categoryNo":268,"categoryName":269,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":181,"categoryName":182,"taxonomyType":126,"taxonomyTypeDesc":127},{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},{"categoryNo":185,"categoryName":186,"taxonomyType":187,"taxonomyTypeDesc":188},[190,274,275,276,277,278,217,279,280,136,137,139,281,282,283,284,285,286,191,204],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]