Search-ML Documentation
Search-ML is a streamlined, serial execution pipeline designed to automate the virtual screening of protein-ligand complexes. It integrates structural preparation, feature extraction using AmberTools and RDKit, and machine learning predictions into a single, unified command.
🚀 Key Features
Automated Pre-processing
Automatically extracts coordinates, cleans PDBs, and splits chains without manual intervention.
AmberTools Integration
Seamlessly runs tleap for system parameterization and topology generation.
Smart Feature Extraction
Calculates SASA, pocket volume, and electrostatic properties using robust Python modules.
Targeted Screening
Optimized for rapid screening against DrugBank and FDA libraries.
🛠️ Prerequisites
- OS: Linux, macOS, or Windows (via WSL2)
- Manager: Miniconda or Anaconda installed
- Version Control: Git
📥 Installation Guide
Clone the Repository
git clone https://github.com/dheeraj-scfbio/search-ml.git
cd search-mlDownload the Model
# Move downloaded file to the models directory
mv ~/Downloads/final_rf_model.joblib ./models/Run Installer & Activate
chmod +x install.sh
./install.sh
# 1. Deactivate the conda or other activated environment
conda deactivate
# 2. Check if the variable is set
echo $SEARCH_ML_HOME
# 3. IF the output is empty, run the following to set it:
conda env config vars set SEARCH_ML_HOME="$(pwd)" --name search-ml
# 4. Reload environment to apply changes
conda activate search-ml🪟 Windows Users (WSL2)
Note: AmberTools requires a Unix-based environment. You must use WSL2 (Windows Subsystem for Linux) to run this tool on Windows.
Step 1: Enable WSL2
- Open PowerShell as Administrator.
- Run:
wsl --install - Restart your computer.
- Launch "Ubuntu" from the Start Menu and create a user account.
Step 2: Setup inside Ubuntu
sudo apt-get update && sudo apt-get install git -y
git clone "https://github.com/dheeraj-scfbio/search-ml.git"
cd search-ml📖 Usage & Syntax
Execution Warning
Do NOT use sh to run the script. Use bash or execute directly.
./master.sh | Argument | Description | Example |
|---|---|---|
| PDB_FILENAME | Filename with extension | 1abc.pdb |
| LIGAND_CODE | 3-letter Residue Name | LIG, MOL |
| DATABASE | Target Library | DB, FDA |
Step-by-Step Examples
Scenario A: DrugBank Screening
Screening protein 9kte.pdb containing ligand 9UM against the DrugBank database.
bash master.sh 9kte.pdb 9UM DBScenario B: FDA Screening
Target: target_prot.pdb, Ligand: LIG against approved drugs.
./master.sh target_prot.pdb LIG FDAOutput Explanation
The job creates a directory named after the current timestamp (e.g., 1734177600) to prevent overwriting.
The main file containing predicted affinity scores sorted by rank.
Execution log capturing all STDOUT and STDERR. Check this first if a job fails.
The cleaned and merged complex file used for calculation.
Detailed AmberTools log from the tleap process.
Workflow Logic
-
1
Validation
Checks input PDB existence and validates protein chain length (> 24 AA).
-
2
Preparation
Splits PDB into
PROT.pdband ligand, then merges into a clean complex. -
3
Parameterization
Runs
tleapto generate topology and check for missing atoms. -
4
Featurization & Prediction
Calculates SASA/Volume via RDKit and feeds data into the Random Forest Regressor.
Troubleshooting
Syntax error near unexpected token
Cause: Running with sh instead of bash.
Fix: Use bash master.sh ...
Protein size must be >= 25 amino acids
Cause: PDB fragment is too small.
Fix: Use a larger structure or check for missing residues.
Maintainer: Dheeraj Kumar Chaurasia
SCFBio, IIT Delhi