Command line interface
PoseBusters provides the command bust for checking generated molecules
and optionally taking a conditioning protein or ligands into account.
Use bust to check a series of molecules within one .sdf file.
>>> bust generated_molecules.sdf --outfmt long
Long summary for generated_molecules.sdf molecule_1 0
MOL_PRED loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals Fail
Bond lengths Fail
Bond angles Fail
Internal steric clash .
Aromatic ring flatness .
Non-aromatic ring non-flatness .
Double bond flatness .
Internal energy .
Long summary for generated_molecules.sdf molecule_2 1
MOL_PRED loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals Fail
Bond lengths .
Bond angles .
...
Check a docked ligand or generated molecule conditioned on a protein.
>>> bust generated_ligands.sdf -p protein.pdb --outfmt long
Long summary for generated_ligands.sdf conformation_1 0
MOL_PRED loaded .
MOL_COND loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Non-aromatic ring non-flatness .
Double bond flatness .
Internal energy .
Protein-ligand maximum distance .
Minimum distance to protein .
Minimum distance to organic cofactors .
Minimum distance to inorganic cofactors .
Minimum distance to waters .
Volume overlap with protein .
Volume overlap with organic cofactors .
...
Check a series of re-docked ligands against the crystal ligand and protein.
>>> bust redocked_ligand.sdf -l crystal_ligand.sdf -p protein.pdb --outfmt long
Long summary for redocked_ligand.sdf redocked_ligand 0
MOL_PRED loaded .
MOL_TRUE loaded .
MOL_COND loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals .
Molecular formula .
Molecular bonds .
Double bond stereochemistry .
Tetrahedral chirality .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Non-aromatic ring non-flatness .
Double bond flatness .
Internal energy .
Protein-ligand maximum distance .
Minimum distance to protein .
...
Use the -t option to bulk check multiple sets of files.
>>> bust -t molecule_table.csv --outfmt long
Long summary for 1ia1/1ia1_ligand.sdf TQ3 0
MOL_PRED loaded .
MOL_TRUE loaded .
MOL_COND loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals .
Molecular formula .
Molecular bonds .
Double bond stereochemistry .
Tetrahedral chirality .
Bond lengths .
Bond angles .
Internal steric clash .
Aromatic ring flatness .
Non-aromatic ring non-flatness .
Double bond flatness .
Internal energy .
Protein-ligand maximum distance .
Minimum distance to protein .
...
Output format options
The short format is the default output format.
>>> bust generated_molecules.sdf --outfmt short
generated_molecules.sdf molecule_1 0 passes (9 / 12)
generated_molecules.sdf molecule_2 1 passes (11 / 12)
generated_molecules.sdf molecule_3 2 passes (11 / 12)
The long format lists each test result for each molecule/conformation.
>>> bust generated_molecules.sdf --outfmt long
Long summary for generated_molecules.sdf molecule_1 0
MOL_PRED loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals Fail
Bond lengths Fail
Bond angles Fail
Internal steric clash .
Aromatic ring flatness .
Non-aromatic ring non-flatness .
Double bond flatness .
Internal energy .
Long summary for generated_molecules.sdf molecule_2 1
MOL_PRED loaded .
Sanitization .
InChI convertible .
All atoms connected .
No radicals Fail
Bond lengths .
Bond angles .
...
For copying and saving the output use the csv option.
>>> bust generated_molecules.sdf --outfmt csv
file,molecule,position,mol_pred_loaded,sanitization,inchi_convertible,all_atoms_connected,no_radicals,bond_lengths,bond_angles,internal_steric_clash,aromatic_ring_flatness,non-aromatic_ring_non-flatness,double_bond_flatness,internal_energy
generated_molecules.sdf,molecule_1,0,True,True,True,True,False,False,False,True,True,True,True,True
generated_molecules.sdf,molecule_2,1,True,True,True,True,False,True,True,True,True,True,True,True
generated_molecules.sdf,molecule_3,2,True,True,True,True,False,True,True,True,True,True,True,True
For the csv and long option, the --full-report option can
be used to show extra information beyond the pass/fail status of each test.
>>> bust generated_molecules.sdf --outfmt csv --full-report
file,molecule,position,mol_pred_loaded,sanitization,inchi_convertible,all_atoms_connected,no_radicals,bond_lengths,bond_angles,internal_steric_clash,aromatic_ring_flatness,non-aromatic_ring_non-flatness,double_bond_flatness,internal_energy,mol_true_loaded,mol_cond_loaded,passes_valence_checks,passes_kekulization,no_radicals_before_sanitization,number_bonds,shortest_bond_relative_length,longest_bond_relative_length,number_short_outlier_bonds,number_long_outlier_bonds,number_angles,most_extreme_relative_angle,number_outlier_angles,number_noncov_pairs,shortest_noncovalent_relative_distance,number_clashes,number_valid_bonds,number_valid_angles,number_valid_noncov_pairs,number_aromatic_rings_checked,number_aromatic_rings_pass,aromatic_ring_maximum_distance_from_plane,number_non-aromatic_rings_checked,number_non-aromatic_rings_pass,non-aromatic_ring_maximum_distance_from_plane,number_double_bonds_checked,number_double_bonds_pass,double_bond_maximum_distance_from_plane,num_h_added,mol_pred_energy,ensemble_avg_energy,energy_ratio
generated_molecules.sdf,molecule_1,0,True,True,True,True,False,False,False,True,True,True,True,True,False,False,True,True,True,27,0.8567948530292413,1.2797521607839486,0,1,38,1.3092992455795367,2,235,0.7738421740224927,0,26,36,235,0,0,,0,0,,0,0,,25,1571.008942997294,524.6487784135377,2.9944012216092424
generated_molecules.sdf,molecule_2,1,True,True,True,True,False,True,True,True,True,True,True,True,False,False,True,True,True,27,0.8951618398686666,1.0410778462688173,0,0,38,1.1090396233249729,0,260,0.9498773674061802,0,27,38,260,1,1,0.078918752427676,0,0,,0,0,,28,370.15699800483134,56.01487481280712,6.608191114268088
generated_molecules.sdf,molecule_3,2,True,True,True,True,False,True,True,True,True,True,True,True,False,False,True,True,True,28,0.8337212356590878,1.0705087667583508,0,0,40,1.1485967900513152,0,257,0.9115215657793475,0,28,40,257,1,1,0.09186620947420679,0,0,,0,0,,22,530.2912874063929,76.23635333247108,6.955884748235037
...
Saving the output
The --out option can be used to save the output to a file:
bust generated_molecules.sdf --outfmt csv --out results.csv
Help
Running with the --help option prints information about the command line options.
>>> bust --help
usage: bust [-l MOL_TRUE] [-p MOL_COND] [-t TABLE] [--outfmt {short,long,csv}]
[--output OUTPUT] [--full-report] [--no-header] [--config CONFIG]
[--top-n TOP_N] [--max-workers MAX_WORKERS]
[--chunk-size CHUNK_SIZE] [-v] [-h]
[mol_pred ...]
PoseBusters: Plausibility checks for generated molecule poses.
Input:
mol_pred molecule(s) to check
-l MOL_TRUE true molecule, e.g. crystal ligand
-p MOL_COND conditioning molecule, e.g. protein
-t TABLE run multiple inputs listed in a .csv file
Output:
--outfmt {short,long,csv}
output format
--output OUTPUT output file (default: stdout)
--full-report print details for each test
--no-header print output without header
Configuration:
--config CONFIG configuration file
--top-n TOP_N run on TOP_N results in MOL_PRED only (default: all)
--max-workers MAX_WORKERS
number workers for parallel processing. (0: single
thread, None: all available cores)
--chunk-size CHUNK_SIZE
chunk size for parallel processing of SDF files
(default: 100)
Information:
-v, --version show program's version number and exit
-h, --help show this help message and exit
>>> bust --version
bust 0.6.3