Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Orange3 CmDock Docking Widgets

Custom Orange3 add‑on developed for Task 2 – Molecular Docking in OCART (Chemoinformatics+ Hackathon 2025).

This plugin bundles two production‑ready widgets that let you execute CmDock inside an Orange workflow and inspect the resulting poses in 3‑D – perfect for quick‑and‑dirty (yet reproducible) virtual screening during the hackathon.

Widget Purpose
OWCMDock Batch‑docks ligands with CmDock, writing results to a timestamped folder and returning an Orange.data.Table with scores + mol blocks.
OW3DPoseViewer Displays one docked pose at a time, overlaid on a protein cartoon + VDW surface via 3Dmol.js.

🔧 Installation (5‑minute setup)

# 1 — clone the repo
git clone https://gitlab.com/CrtomirP/hackathon_cheminfor_2025.git
cd hackathon_cheminfor_2025/OrangeWidgets  # folder that contains setup.py

# 2 — create & activate environment (RDKit + Orange)
conda env create -f environment.yml   # provided in the repo
conda activate hackathon_docking

# 3 — install the add‑on in editable mode
pip install -e .

# 4 — launch Orange3
orange-canvas

After restart, you’ll find the widgets under Chemoinformatics ▶ Docking in the Orange toolbox.

CmDock binary must be on your $PATH (or callable as cmdock). For local tests grab the latest pre‑compiled release from https://github.com/CristobalAlzate/CmDock.


🚀 Quick‑start workflow

  1. Ligand table → any Orange data source with SMILES or MolBlock meta/feature.
  2. OWCMDock
    • Set Working Directory (results are saved here per run).
    • Point to Receptor PRM and Docking PRM files.
    • Choose number of poses → Run Docking.
  3. OW3DPoseViewer
    • Browse to the protein .pdb/.mol2 structure.
    • Connect the Docked Poses output from the previous widget.
    • Use the dropdown to flip through poses/evaluate clashes.
  4. Pipe the docked table downstream to Orange’s Scatter Plot, Data Table.
Ligands 🡒 OWCMDock 🡒 OW3DPoseViewer / Orange Analytic Widgets

📂 Repo layout (relevant bits)

OrangeWidgets/
├── chem_inf_widgets/
│   ├── ow_cmdock.py      # docking widget
│   └── ow_3dpose_viewer.py
├── icons/                # SVG/PNG toolbar icons
├── environment.yml       # conda spec (Python 3.11, Orange 3.36, RDKit 2025.03)
└── setup.py              # entry‑points for Orange add‑on

⚙️ Key runtime details

  • Input detectionOWCMDock auto‑detects the first string‑type column containing "smiles" or "mol" in its name. If none, it falls back to the first StringVariable.
  • 3‑D embedding – ligands missing conformers are embedded on‑the‑fly with AllChem.ETKDG().
  • Output props – every numeric SDF property becomes a feature column; non‑numeric props become meta variables; the full pose MolBlock is stored in a "Molecule" meta column.
  • Viewer colouring – protein uses a rainbow spectrum cartoon; ligand sticks radius 0.25 Å; current pose is labelled with “ – pose N”.

🛠️ Troubleshooting

Symptom Fix
“RDKit is required for this widget.” Conda did not resolve correctly; reinstall environment or conda install -c conda-forge rdkit
cmdock: command not found Ensure CmDock binary is on PATH or symlinked as cmdock.
Docking finishes but viewer shows blank Check that protein_path points to a valid .pdb/.mol2 and that the MolBlock column exists in the docked table.

License

MIT – see LICENSE file. Hackathon organisers & participants can reuse and extend freely.


Developed for the EMJM Chemoinformatics+ 2025 Hackathon.

About

Orange3 add-on providing CmDock docking workflow and 3D pose visualization widgets.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages