How to read this page

IChem is a single executable that dispatches on its first non-option argument. Run it with no arguments and it prints the menu reproduced below:

IChem
IChem Version : 5.3.9
Date : 2026-09-16

Nine commands share that executable. Six are the modules proper; pdbconv, sims and AtomProps are companion tools that prepare inputs or post-process outputs. Each entry below gives the synopsis, the arguments, every option with its default, and a worked example. For step-by-step walk-throughs on real structures, see the tutorials.

Options come before the command Every option is parsed by the top-level driver, so it must appear before the command keyword: IChem --wMob realign …, not IChem realign … --wMob. Put an option after the keyword and it is silently swallowed as a filename (realign) or rejected with Not enough parameters (grim). The built-in help states this rule only under IFP, and two of its own examples break it — the examples on this page are the corrected forms.
Before your first run Most commands read the shared data folder and abort with No ICHEM_LIB DEFINED without it. Point ICHEM_LIB at the directory containing datas/ before anything else — see Installation.
Module

realignMolecular alignment

Align mobilM onto rigidM and apply the resulting transformation to one or more applied molecules.

Usage

IChem [options] realign rigidM mobilM applied1 [applied2 ...]

Arguments

ArgumentMeaning
rigidMReference molecule to align to
mobilMMolecule to align from
appliedMolecule(s) to apply the rotation and translation to

Options

OptionDefaultEffect
-gmatch N NAME Use graph matching to align, where N is one of: NAME atom-name matching, ATMN atomic-name matching, MOL2 MOL2-type matching, CALP C-alpha matching (protein only)
--wMobAlso output the aligned mobilM
-rule RUse rule R for matching
-i 'pairs'Match specific atom pairs, e.g. '2-3|1-6|23-160'
Default matching With no matching option the program pairs atoms strictly in file order, ignoring atom types — so the two molecules must have the same atom count in the same order. Use -gmatch or -i to restrict matches instead.

Example

IChem -gmatch MOL2 --wMob realign ref.mol2 mob.mol2 target.mol2

Writes rot_target.mol2, plus rot_mob.mol2 because of --wMob. Worked example: Realign tutorial.

Module

IFPInteraction fingerprint

Encode a protein–ligand complex as a residue-based interaction fingerprint, and compute Tanimoto similarities between fingerprints.

Usage

IChem [options] IFP protein ligand
IChem [options] IFP protein ligand ligand_ref
IChem [options] IFP protein1 ligand1 protein2 ligand2

One complex, a complex scored against a reference ligand, or two complexes compared with each other.

A mode flag is mandatory Since 5.3.7 IChem refuses to guess. Without one of the main options below it exits with You must specify one of --all, --basic, --weakh, --picat, --metal or --old. Scripts written against earlier releases need updating. Note also that distance thresholds accept at most three decimals.

Fingerprint formats

FormatLayout
--oldLegacy 7-bit format: [basic]
Default11-bit format: [basic][pi-cation][metal][weakh]. The structure is always kept — unused bits are set to 0

Main options — one at a time

OptionComputes
--allAll interactions
--basicOnly basic interactions; all other bits 0
--picatOnly the pi-cation bit; all other bits 0
--metalOnly the metal/acceptor bit; all other bits 0
--weakhOnly the weak H-bond bits; all other bits 0
--oldLegacy 7-bit output

Distance thresholds (Å)

InteractionMaximumMinimum
H-bond-D_Hb (3.5)-d_Hb (2.3)
Hydrophobic-D_Hyd (4.5)-d_Hyd (3.2)
Ionic-D_Io (4.0)-d_Io (2.3)
Metal / acceptor-D_Me (2.8)-d_Me (1.8)
Aromatic-D_Ar (5.0)-d_Ar (3.2)
Pi-cation-D_Pic (5.0)-d_Pic (2.3)
Weak H-bond-D_WHb (3.5)-d_WHb (2.3)

Angles (degrees)

GeometryAngleTolerance
H-bond-a_H (180°)-at_H (60°)
Aromatic face-to-face-a_ArFF (180°)-at_ArFF (30°)
Aromatic edge-to-face-a_ArEF (90°)-at_ArEF (60°)
Pi-cation-a_Pic (180°)-at_Pic (30°)

Examples

IChem --old IFP protein.mol2 ligand.mol2
IChem --weakh IFP protein.mol2 ligand.mol2 ligand_ref.mol2
IChem -d_Hyd 3.34 -D_Hyd 4.81 --basic IFP protein1.mol2 ligand1.mol2 protein2.mol2 ligand2.mol2

Worked example: IFP tutorial.

Module

intsInteraction generator — triplet interaction fingerprints

Detect protein–ligand interactions and encode them as pseudoatoms in a MOL2 file (TIFPs: triplet interaction fingerprints). Each interaction becomes a pseudoatom whose position depends on the selected -type mode. Optionally generates interaction fingerprints (*.fgp) in several formats.

Usage

IChem [options] ints prot lig outfile

Positioning mode — -type

ValuePseudoatom sits on
PROTThe interacting protein atom
LIGThe interacting ligand atom
CENTMidpoint between the protein and ligand atoms (default)
MERGAll three positions above

Fingerprint format — -fgps

ValueOutput
STDStandard numeric format, e.g. 0 1 0 0 132 0 ...
SVMSparse SVM format, e.g. 2:1 5:132 7:1 ...
CMPCompressed format, e.g. [1 1 [2 132 [1 ...
--smallUse the reduced 210-integer fingerprint instead of the full 12 510 integers

General options

OptionDefaultEffect
-name NprotMolecule name in the output
-logf FILEWrite a log file listing every interaction
--noMergeDo not merge overlapping hydrophobic interactions
--newHStricter hydrophobic definition: kept only if more than 50% of nearby protein atoms are hydrophobic
--stdoutWrite results to standard output

Thresholds and angles

OptionDefaultMeaning
-D_Hb3.5H-bond length (Å)
-D_Hyd4.5Hydrophobic length (Å)
-D_Io4.0Ionic length (Å)
-D_Me2.8Metal/acceptor length (Å)
-D_Ar5.0Aromatic interaction length (Å)
-D_Pic5.0Pi-cation interaction length (Å)
-a_HπH-bond angle (rad)
-at_Hπ/3H-bond tolerance (rad)
-a_ArFFπAromatic face-to-face angle (rad)
-at_ArFFπ/6Aromatic face-to-face tolerance (rad)
-a_ArEFπ/2Aromatic edge-to-face angle (rad)
-at_ArEFπ/3Aromatic edge-to-face tolerance (rad)
-a_PicπPi-cation angle (rad)
-at_Picπ/6Pi-cation tolerance (rad)
Radians here, degrees in IFP ints takes its angles in radians while IFP takes the same quantities in degrees. The distance thresholds share both names and defaults between the two.

Examples

IChem -logf 2rh1_ints.txt -type CENT ints site.mol2 ligand.mol2
IChem --small -fgps STD ints site.mol2 ligand.mol2 2rh1_small.fgp

Worked example: INTS tutorial.

Module

grimGraph interaction matching

Compare and align protein–ligand complexes on their interaction pseudoatoms. GRIM builds interaction graphs and finds matching cliques between a reference and a comparison complex, then outputs the alignment, the similarity scores and the fitted structures — ligand, protein and interactions.

Usage

IChem [options] grim refProt refLig compProt compLig
IChem [options] grim refInts compInts
IChem [options] grim refProt refFile dockFile

Two complexes from their structures, two complexes from pre-computed ints pseudoatom files, or a whole docking pose file screened against one reference.

General options

OptionDefaultEffect
-rn NRefReference name
-cn NCompComparison name
--valuesOutput only the score, with no alignment files
-sim N0Similarity flag (0/1) for the reference–comparison pair
-outIntMERGOutput interaction positioning: MERG, LIG, CENT, PROT
-matchMERGAlign using only one interaction position: MERG, LIG, PROT, CENT
-scoreFCTScoring method: STD (SumCl/RMSD) or FCT (function-based)
--newHStricter hydrophobic definition: kept only if more than 50% of nearby protein atoms are hydrophobic

Alignment options

OptionDefaultEffect
-max N1Maximum number of output cliques
-size N3Minimum clique size
--all_cliquesDetect all cliques, not only maximal ones
-dsame N0.5Maximum distance difference between similar points, e.g. LIG–LIG
-dclose N0.75Maximum distance difference between close points, e.g. LIG–CENT
-dfar N1.0Maximum distance difference between far points, e.g. LIG–PROT

Examples

IChem -sim 1 -rn 2rh1 -cn 4amj -score STD grim 2rh1_prot.mol2 2rh1_lig.mol2 4amj_prot.mol2 4amj_lig.mol2
IChem -sim 1 -rn 2rh1 -cn 4amj grim 2rh1_INTS_M.mol2 4amj_INTS_M.mol2
Option placement The built-in help prints the first example with -score STD trailing after the four filenames. That form fails with Not enough parameters: like every other option, -score must come before the grim keyword, as shown above.

Worked example: GRIM tutorial.

Module

volsiteCavity detection and druggability prediction

Detect cavities on the protein surface and estimate their druggability. If a ligand is provided, VolSite restricts detection to its binding site. Optionally outputs descriptors, SVM features, or cavity-based pharmacophores.

Usage

IChem [options] volsite prot [lig]

Detection parameters

OptionDefaultEffect
-step N1.5Grid spacing (Å)
-boxS N20Main box edge length (Å)
-b N55Minimal buriedness threshold
-name NPrefix for output cavity names
-n N5Minimum neighbours for buried boxes
-nPTS N70Minimum number of cubes to define a cavity
-NPTS N400Maximum number of cubes to define a cavity
-drog NSet the observed druggability value

What to include

OptionEffect
--dnaInclude DNA in the protein
--cofactorInclude cofactors
--solventInclude solvent molecules
--hydrogenInclude hydrogens in detection

Extra output

OptionEffect
--descOutput cavity descriptors to descriptor.txt
--svmOutput SVM features for the druggability model
--pharmGenerate cavity-based pharmacophores (.chm, .mol2, .pml, .plp)
--outExcluAdd exclusion spheres to the pharmacophore output

Examples

IChem volsite protein.mol2
# Detect all cavities
IChem volsite protein.mol2 ligand.mol2
# Detect ligand-binding site cavities
IChem --pharm volsite protein.mol2 ligand.mol2
# Generate the cavity pharmacophore

Worked example: VolSite tutorial.

Companion tool

pdbconvPDB / MOL2 processing

Parse and process PDB files, automatically detect bound ligands by HET code along with their cavity, and estimate their druggability. This is the usual entry point: it turns a raw PDB entry into the typed MOL2 files every other module expects.

Usage

IChem [options] pdbconv protein[.pdb|.mol2] output_dir pdb_id

Global options

OptionEffect
--wMOL2Use MOL2 as input, which disables the PDB options
--wUnDrugOutput undruggable cavities
--noLigExclude the ligand

PDB options

OptionEffect
--HARMSIZEHarmonize SIZE lines to 80 characters
--MSEMETChange MSE to MET
--CSECYSChange CSE to CYS
--MOVHETMove HETATM records to the end of the file
--ALTATMSelect alternative atoms
--NUMATMRenumber atoms
--UPDMASUpdate the MASTER line
--TOMOL2Convert to MOL2 representation

MOL2 options — require --TOMOL2 or --wMOL2

OptionEffect
--RESTYPApply residue classification
--BONDSERecreate bonds
--CLNUNWClean unwanted residues
--MOL2TYApply MOL2 atom types
--SPLITMSplit into protein, ligand and solvent
-SelChain NKeep only the specified chains
--SELWATInclude water molecules
--SELLIGInclude ligands

Example

IChem pdbconv 2RH1.pdb output 2rh1

With no options the full default pipeline runs. Worked example: Quick start.

Module

utilsGeneral utilities

A small family of helpers that operate on a protein and its bound ligand.

Usage

IChem utils [subcommand] protein.mol2 ligand.mol2

Subcommands

SubcommandDoes
bsaCompute the buried surface area between protein and ligand
fragFragment the ligand within its protein context, following RECAP rules

Examples

IChem utils bsa protein.mol2 ligand.mol2
IChem utils frag protein.mol2 ligand.mol2

Worked examples: Utils tutorial.

Companion tool

simsFingerprint similarity

Compute similarity between fingerprints or interaction fingerprints. Given two files it prints one score; given a single file it prints the full pairwise matrix.

Usage

IChem [options] sims ref comp
IChem sims file
IChem [options] sims RefInt CompInt

Options

OptionDefaultEffect
--wIntsUse interactions instead of fingerprints, for the RefInt CompInt form
--smallUse the small fingerprint, for the RefInt CompInt form
--binaryDeclare that the input fingerprints are binary
-metric NTCSimilarity metric: TC, HM, RT, FT, DI, SO

Examples

IChem --binary sims FP1.txt FP2.txt > sim.txt
IChem --binary sims FP.txt > matrix.txt

Worked example: Companion tools.

Companion tool

AtomPropsPrint atom properties from MOL2 files

Print atom properties — ID, MOL2 type, properties and charge — for each MOL2 file given. The file can be a protein, a ligand, or any molecule. This is the first place to look when an expected interaction fails to show up: it shows exactly how IChem typed every atom.

Usage

IChem AtomProps file1 file2 ... fileN

Examples

IChem AtomProps protein.mol2
IChem AtomProps ligandA.mol2 ligandB.mol2

Worked example: Companion tools.