Utilities
In [ ]:
Copied!
import sys
import os
sys.path.insert(0, os.path.abspath('..'))
from docksuitex.utils import (
fetch_pdb, fetch_sdf,
convert, get_supported_formats,
parse_vina_log, parse_ad4_dlg,
view_molecule, view_grid_box, view_docked_poses
)
import sys
import os
sys.path.insert(0, os.path.abspath('..'))
from docksuitex.utils import (
fetch_pdb, fetch_sdf,
convert, get_supported_formats,
parse_vina_log, parse_ad4_dlg,
view_molecule, view_grid_box, view_docked_poses
)
1. Molecule Fetching¶
DockSuiteX can download structures by ID from RCSB PDB, PubChem, and ChEMBL. It supports both single-molecule and batch downloads.
In [ ]:
Copied!
# Batch download proteins (PDB)
protein_files = fetch_pdb(pdbid=["1M17", "1HVR"], save_to="data/proteins")
# Batch download ligands from different sources (PubChem CID and ChEMBL ID)
ligand_files = fetch_sdf(molecule_id=["2244", "CHEMBL25"], save_to="data/ligands")
print(f"Proteins: {protein_files}")
print(f"Ligands: {ligand_files}")
# Batch download proteins (PDB)
protein_files = fetch_pdb(pdbid=["1M17", "1HVR"], save_to="data/proteins")
# Batch download ligands from different sources (PubChem CID and ChEMBL ID)
ligand_files = fetch_sdf(molecule_id=["2244", "CHEMBL25"], save_to="data/ligands")
print(f"Proteins: {protein_files}")
print(f"Ligands: {ligand_files}")
2. Format Conversion (Open Babel)¶
The convert utility is a powerful wrapper for Open Babel, supporting single files, lists, or entire directories.
In [ ]:
Copied!
# 1. Convert a single file (e.g., SDF to PDB)
pdb_file = convert(input="data/ligands/2244.sdf", output_format="pdb")
# 2. Convert an entire directory of SDFs to PDBQT for docking
pdbqt_files = convert(input="data/ligands", output_format="pdbqt", output_dir="data/pdbqt_ligands")
# 3. Split a multi-model PDB into individual residue/model files
models = convert(input="multi_model.pdb", output_format="pdb", split=True)
# 4. Check what formats are supported locally
formats = get_supported_formats()
print(f"Supported formats: {len(formats)}")
print(f"Example: {formats['sdf']}")
# 1. Convert a single file (e.g., SDF to PDB)
pdb_file = convert(input="data/ligands/2244.sdf", output_format="pdb")
# 2. Convert an entire directory of SDFs to PDBQT for docking
pdbqt_files = convert(input="data/ligands", output_format="pdbqt", output_dir="data/pdbqt_ligands")
# 3. Split a multi-model PDB into individual residue/model files
models = convert(input="multi_model.pdb", output_format="pdb", split=True)
# 4. Check what formats are supported locally
formats = get_supported_formats()
print(f"Supported formats: {len(formats)}")
print(f"Example: {formats['sdf']}")
3. Advanced Visualization¶
Grid Box Visualization¶
Visualize the docking search space overlayed on your receptor.
In [ ]:
Copied!
# View 1M17 with a custom 20x20x20 grid box
view_grid_box(
protein_file="data/proteins/1M17.pdb",
grid_center=(25.0, 1.5, 53.0),
grid_size=(20, 20, 20)
)
# View 1M17 with a custom 20x20x20 grid box
view_grid_box(
protein_file="data/proteins/1M17.pdb",
grid_center=(25.0, 1.5, 53.0),
grid_size=(20, 20, 20)
)
Interactive Pose Browser¶
Step through docking poses with full animation controls.
In [ ]:
Copied!
# This requires a docking output file (pdbqt)
view_docked_poses(protein_file="receptor.pdb", ligand_file="output.pdbqt")
# This requires a docking output file (pdbqt)
view_docked_poses(protein_file="receptor.pdb", ligand_file="output.pdbqt")
4. Log Parsing¶
Analyze logs from both AutoDock Vina and AutoDock4.
In [ ]:
Copied!
# Parse Vina result summary
df_vina = parse_vina_log("vina_log.txt")
# Parse AutoDock4 DLG clusters
df_ad4 = parse_ad4_dlg("dock.dlg")
# Parse Vina result summary
df_vina = parse_vina_log("vina_log.txt")
# Parse AutoDock4 DLG clusters
df_ad4 = parse_ad4_dlg("dock.dlg")