A tool for categorising and segmenting virtual hits with reference to experimental protein structures and (fragment) hits.


License
MIT
Install
pip install PoseButcher==0.0.22

Documentation

PoseButcher

logo

GitHub Tag GitHub Actions Workflow Status Documentation Status GitHub last commit GitHub Issues or Pull Requests

"A good butcher always trims the fat"

PoseButcher is a tool for categorising and segmenting virtual hits with reference to experimental protein structures and (fragment) hits.

DOCUMENTATION

Ligand atoms are tagged with categories:

- GOOD:

	* fragment space: within the fragment bolus
	* pocket X: in a specified catalytic/allosteric pocket X

- BAD:
	
	* protein clash: Clashing with the protein
	* solvent space: Heading out of the protein/crystal

Usage at a glance

1. Create the butcher (see PoseButcher.__init__):

	from posebutcher import PoseButcher
	butcher = PoseButcher(protein, hits, pockets)

2. Chop up a posed virtual hit (rdkit.ROMol with a conformer):

	result = butcher.chop(mol)

3. Tag a compound based on its pocket occupancy and clashes:

	tags = butcher.tag(mol)

4. Explore the expansion opportunities from a given atom in a virtual hit

	result = butcher.explore(mol)

5. (Coming soon) Trim a parts of a compound that clash with a protein or leave the crystal

	mol = butcher.trim(mol)

6. (Coming soon) Score how well a virtual hit recapitulates shape and colour of the fragment bolus

	score: float = butcher.score(mol)

Sample output

Protein, ligand, and catalytic site pockets with Open3D:

butcher_3d

A chopped up ligand:

butcher_2d

Exploring expansion vector into a desirable pocket

butcher_vector