Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add input module #137

Merged
merged 20 commits into from
Apr 20, 2021
Merged
Show file tree
Hide file tree
Changes from 14 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions docs/releasehistory.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ Releases follow the ``major.minor.micro`` scheme recommended by `PEP440 <https:/
* ``minor`` increments add features but do not break API compatibility
* ``micro`` increments represent bugfix releases or improvements in documentation

1.3.0 - Current development
---------------------------

New features
""""""""""""
- `PR #137 <https://github.com/martimunicoy/peleffy/pull/137>`_: New PDB class that allows to handle an input PDB file with multiple molecules.

Tests added
"""""""""""
- `PR #137 <https://github.com/martimunicoy/peleffy/pull/137>`_: Adds tests to validate the new PDB class that allows to handle an input PDB file with multiple molecules.


1.2.1 - API Documentation and improvements
------------------------------------------
Expand Down
13 changes: 13 additions & 0 deletions docs/usage.rst
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@ arguments. To obtain the full list of flags you can type:
The name of the method to use to compute charges
--charges_from_file PATH
The path to the file with charges
--chain CHAIN Chain of the molecule to parameterize
--include_terminal_rotamers
Not exclude terminal rotamers when building the
rotamer library
Expand Down Expand Up @@ -221,6 +222,18 @@ It sets the method to load external partial charges.
$ python -m peleffy.main path/to/my_ligand.pdb --charges_from_file path/to/my_ligand.mae
Chain
-----
It defines the chain of the molecule to parameterize from the input PDB file.

- Flag: ``--chain``
- Default: ``None``
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since the default is None we should explain here the behaviour of the algorithm when this parameter is not initialized. What will happen when no chain is supplied? Then do we need to supply a PDB with a single chain?

- Example: the code below will parameterize the hetero molecule in the chain L of the input file

.. code-block:: bash
$ python -m peleffy.main path/to/my_system.pdb --chain L
Include terminal rotamers
-------------------------
It always includes terminal rotamers, even if they belong to a terminal methyl group whose rotation is trivial in PELE.
Expand Down
2,986 changes: 2,986 additions & 0 deletions peleffy/data/complexes/LIG1_LIG2.pdb

Large diffs are not rendered by default.

29 changes: 29 additions & 0 deletions peleffy/data/ligands/BNZ.pdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
TITLE BNZ
REMARK 4 COMPLIES WITH FORMAT V. 3.0, 1-DEC-2006
REMARK 888
REMARK 888 WRITTEN BY MAESTRO (A PRODUCT OF SCHRODINGER, LLC)
HETATM 1 C1 BNZ L 1 -32.969 6.196 2.877 1.00 15.06 C
HETATM 2 C2 BNZ L 1 -32.945 7.046 3.973 1.00 12.84 C
HETATM 3 C3 BNZ L 1 -33.719 6.798 5.113 1.00 12.24 C
HETATM 4 C4 BNZ L 1 -34.540 5.680 5.143 1.00 13.09 C
HETATM 5 C5 BNZ L 1 -34.545 4.825 4.044 1.00 12.54 C
HETATM 6 C6 BNZ L 1 -33.787 5.069 2.915 1.00 14.23 C
HETATM 7 H1 BNZ L 1 -32.360 6.413 2.012 1.00 0.00 H
HETATM 8 H2 BNZ L 1 -32.318 7.925 3.961 1.00 0.00 H
HETATM 9 H3 BNZ L 1 -33.672 7.473 5.955 1.00 0.00 H
HETATM 10 H4 BNZ L 1 -35.158 5.487 6.007 1.00 0.00 H
HETATM 11 H5 BNZ L 1 -35.156 3.935 4.055 1.00 0.00 H
HETATM 12 H6 BNZ L 1 -33.823 4.399 2.069 1.00 0.00 H
CONECT 1 2 6 7
CONECT 2 1 3 8
CONECT 3 2 4 9
CONECT 4 3 5 10
CONECT 5 4 6 11
CONECT 6 1 5 12
CONECT 7 1
CONECT 8 2
CONECT 9 3
CONECT 10 4
CONECT 11 5
CONECT 12 6
END
131 changes: 131 additions & 0 deletions peleffy/data/ligands/LIG1.pdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
HEADER HYDROLASE 03-JUL-17 5OCO
TITLE DISCOVERY OF SMALL MOLECULES BINDING TO KRAS VIA HIGH
TITLE 2 AFFINITY ANTIBODY FRAGMENT COMPETITION METHOD.
EXPDTA X-RAY DIFFRACTION
REMARK 2 RESOLUTION. 1.66 ANGSTROMS
REMARK 3 R VALUE : 0.179000
REMARK 3 FREE R VALUE : 0.205000
REMARK 4 5OCO COMPLIES WITH FORMAT V. 3.30,
REMARK 200 TEMPERATURE (KELVIN) : 100.00
REMARK 200 PH : 5.50
REMARK 350 BIOMOLECULE: 1
REMARK 350 APPLY THE FOLLOWING TO CHAINS: B, A, C, D, E, F
REMARK 350 BIOMT1 1 1.000000 0.000000 0.000000 0.000000
REMARK 350 BIOMT2 1 0.000000 1.000000 0.000000 0.000000
REMARK 350 BIOMT3 1 0.000000 0.000000 1.000000 0.000000
REMARK 888
REMARK 888 WRITTEN BY MAESTRO (A PRODUCT OF SCHRODINGER, LLC)
CRYST1 63.600 118.760 156.900 90.00 90.00 90.00 P 21 21 21 24
HETATM 1 P1 GNP L 201 32.389 94.396 10.220 1.00 20.26 P
HETATM 2 O1 GNP L 201 32.279 93.040 9.397 1.00 20.53 O
HETATM 3 O2 GNP L 201 33.162 94.027 11.482 1.00 20.86 O
HETATM 4 O3 GNP L 201 31.128 95.122 10.341 1.00 21.39 O
HETATM 5 N1 GNP L 201 33.417 95.394 9.267 1.00 18.39 N
HETATM 6 P2 GNP L 201 34.135 96.811 9.883 1.00 16.72 P
HETATM 7 O4 GNP L 201 33.153 97.970 9.782 1.00 17.01 O
HETATM 8 O5 GNP L 201 34.751 96.499 11.218 1.00 15.89 O
HETATM 9 O6 GNP L 201 35.276 97.111 8.791 1.00 17.42 O
HETATM 10 P3 GNP L 201 36.854 96.842 8.923 1.00 17.61 P
HETATM 11 O7 GNP L 201 37.051 95.387 9.053 1.00 18.25 O
HETATM 12 O8 GNP L 201 37.402 97.741 9.997 1.00 16.59 O
HETATM 13 O9 GNP L 201 37.295 97.460 7.553 1.00 17.62 O
HETATM 14 C1 GNP L 201 36.873 96.901 6.292 1.00 19.34 C
HETATM 15 C2 GNP L 201 37.854 97.073 5.177 1.00 18.40 C
HETATM 16 O10 GNP L 201 37.966 98.449 4.888 1.00 18.36 O
HETATM 17 C3 GNP L 201 39.198 96.590 5.588 1.00 19.78 C
HETATM 18 O11 GNP L 201 39.894 96.085 4.367 1.00 20.56 O
HETATM 19 C4 GNP L 201 39.939 97.865 5.969 1.00 17.45 C
HETATM 20 O12 GNP L 201 41.359 97.940 5.736 1.00 18.70 O
HETATM 21 C5 GNP L 201 39.305 98.916 5.108 1.00 17.48 C
HETATM 22 N2 GNP L 201 39.273 100.270 5.727 1.00 17.29 N
HETATM 23 C6 GNP L 201 38.716 100.638 6.928 1.00 15.36 C
HETATM 24 N3 GNP L 201 38.869 101.861 7.226 1.00 17.70 N
HETATM 25 C7 GNP L 201 39.512 102.409 6.155 1.00 17.17 C
HETATM 26 C8 GNP L 201 39.933 103.733 5.832 1.00 17.90 C
HETATM 27 O13 GNP L 201 39.718 104.702 6.557 1.00 18.86 O
HETATM 28 N4 GNP L 201 40.610 103.875 4.688 1.00 18.94 N
HETATM 29 C9 GNP L 201 40.803 102.817 3.828 1.00 20.65 C
HETATM 30 N5 GNP L 201 41.537 103.080 2.735 1.00 22.91 N
HETATM 31 N6 GNP L 201 40.454 101.550 4.010 1.00 18.20 N
HETATM 32 C10 GNP L 201 39.754 101.336 5.205 1.00 17.23 C
HETATM 33 H1 GNP L 201 31.799 93.198 8.581 1.00 0.00 H
HETATM 34 H2 GNP L 201 33.267 94.806 12.033 1.00 0.00 H
HETATM 35 H3 GNP L 201 33.613 95.147 8.307 1.00 0.00 H
HETATM 36 H4 GNP L 201 33.561 98.767 10.130 1.00 0.00 H
HETATM 37 H5 GNP L 201 37.988 95.197 9.134 1.00 0.00 H
HETATM 38 H6 GNP L 201 35.918 97.341 6.004 1.00 0.00 H
HETATM 39 H7 GNP L 201 36.656 95.841 6.422 1.00 0.00 H
HETATM 40 H8 GNP L 201 37.516 96.531 4.294 1.00 0.00 H
HETATM 41 H9 GNP L 201 39.162 95.858 6.395 1.00 0.00 H
HETATM 42 H10 GNP L 201 40.768 95.766 4.605 1.00 0.00 H
HETATM 43 H11 GNP L 201 39.738 98.094 7.016 1.00 0.00 H
HETATM 44 H12 GNP L 201 41.686 98.796 6.023 1.00 0.00 H
HETATM 45 H13 GNP L 201 39.831 98.967 4.155 1.00 0.00 H
HETATM 46 H14 GNP L 201 38.200 99.905 7.531 1.00 0.00 H
HETATM 47 H15 GNP L 201 40.994 104.775 4.437 1.00 0.00 H
HETATM 48 H16 GNP L 201 41.718 102.350 2.061 1.00 0.00 H
HETATM 49 H17 GNP L 201 41.908 104.008 2.587 1.00 0.00 H
CONECT 1 2 3 4 5
CONECT 1 4
CONECT 2 1 33
CONECT 3 1 34
CONECT 4 1
CONECT 4 1
CONECT 5 1 6 35
CONECT 6 5 7 8 9
CONECT 6 8
CONECT 7 6 36
CONECT 8 6
CONECT 8 6
CONECT 9 6 10
CONECT 10 9 11 12 13
CONECT 10 12
CONECT 11 10 37
CONECT 12 10
CONECT 12 10
CONECT 13 10 14
CONECT 14 13 15 38 39
CONECT 15 14 16 17 40
CONECT 16 15 21
CONECT 17 15 18 19 41
CONECT 18 17 42
CONECT 19 17 20 21 43
CONECT 20 19 44
CONECT 21 16 19 22 45
CONECT 22 21 23 32
CONECT 23 22 24 46
CONECT 23 24
CONECT 24 23 25
CONECT 24 23
CONECT 25 24 26 32
CONECT 25 32
CONECT 26 25 27 28
CONECT 26 27
CONECT 27 26
CONECT 27 26
CONECT 28 26 29 47
CONECT 29 28 30 31
CONECT 29 31
CONECT 30 29 48 49
CONECT 31 29 32
CONECT 31 29
CONECT 32 22 25 31
CONECT 32 25
CONECT 33 2
CONECT 34 3
CONECT 35 5
CONECT 36 7
CONECT 37 11
CONECT 38 14
CONECT 39 14
CONECT 40 15
CONECT 41 17
CONECT 42 18
CONECT 43 19
CONECT 44 20
CONECT 45 21
CONECT 46 23
CONECT 47 28
CONECT 48 30
CONECT 49 30
END
95 changes: 95 additions & 0 deletions peleffy/data/ligands/LIG2.pdb
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
HEADER HYDROLASE 03-JUL-17 5OCO
TITLE DISCOVERY OF SMALL MOLECULES BINDING TO KRAS VIA HIGH
TITLE 2 AFFINITY ANTIBODY FRAGMENT COMPETITION METHOD.
EXPDTA X-RAY DIFFRACTION
REMARK 2 RESOLUTION. 1.66 ANGSTROMS
REMARK 3 R VALUE : 0.179000
REMARK 3 FREE R VALUE : 0.205000
REMARK 4 5OCO COMPLIES WITH FORMAT V. 3.30,
REMARK 200 TEMPERATURE (KELVIN) : 100.00
REMARK 200 PH : 5.50
REMARK 350 BIOMOLECULE: 1
REMARK 350 APPLY THE FOLLOWING TO CHAINS: B, A, C, D, E, F
REMARK 350 BIOMT1 1 1.000000 0.000000 0.000000 0.000000
REMARK 350 BIOMT2 1 0.000000 1.000000 0.000000 0.000000
REMARK 350 BIOMT3 1 0.000000 0.000000 1.000000 0.000000
REMARK 888
REMARK 888 WRITTEN BY MAESTRO (A PRODUCT OF SCHRODINGER, LLC)
CRYST1 63.600 118.760 156.900 90.00 90.00 90.00 P 21 21 21 24
HETATM 1 C1 9RK G 202 30.021 99.531 25.675 0.80 33.28 C
HETATM 2 C2 9RK G 202 31.224 99.146 26.213 0.80 31.38 C
HETATM 3 C3 9RK G 202 31.360 97.893 26.794 0.80 37.68 C
HETATM 4 C4 9RK G 202 30.294 96.993 26.757 0.80 40.25 C
HETATM 5 C5 9RK G 202 29.057 97.402 26.229 0.80 40.26 C
HETATM 6 C6 9RK G 202 28.923 98.669 25.703 0.80 38.63 C
HETATM 7 C7 9RK G 202 29.366 94.918 27.434 0.80 51.79 C
HETATM 8 C8 9RK G 202 29.810 93.473 27.621 0.80 63.29 C
HETATM 9 O1 9RK G 202 32.451 93.365 26.630 0.80 69.88 O
HETATM 10 C9 9RK G 202 31.212 90.683 24.455 0.80 69.94 C
HETATM 11 O2 9RK G 202 30.554 95.683 27.113 0.80 40.50 O
HETATM 12 C10 9RK G 202 28.191 95.158 26.504 0.80 47.37 C
HETATM 13 O3 9RK G 202 27.983 96.549 26.125 0.80 46.61 O
HETATM 14 N1 9RK G 202 30.279 92.746 26.444 0.80 66.98 N
HETATM 15 C11 9RK G 202 31.575 92.667 26.105 0.80 66.99 C
HETATM 16 C12 9RK G 202 31.937 91.648 25.074 0.80 69.03 C
HETATM 17 C13 9RK G 202 32.112 90.015 23.547 0.80 68.42 C
HETATM 18 C14 9RK G 202 33.295 90.617 23.666 0.80 64.11 C
HETATM 19 O4 9RK G 202 33.229 91.634 24.604 0.80 61.73 O
HETATM 20 H1 9RK G 202 29.918 100.508 25.225 1.00 0.00 H
HETATM 21 H2 9RK G 202 32.068 99.819 26.185 1.00 0.00 H
HETATM 22 H3 9RK G 202 32.288 97.617 27.272 1.00 0.00 H
HETATM 23 H4 9RK G 202 27.970 98.995 25.313 1.00 0.00 H
HETATM 24 H5 9RK G 202 29.045 95.262 28.417 1.00 0.00 H
HETATM 25 H6 9RK G 202 29.004 92.910 28.091 1.00 0.00 H
HETATM 26 H7 9RK G 202 30.576 93.432 28.395 1.00 0.00 H
HETATM 27 H8 9RK G 202 30.167 90.554 24.696 1.00 0.00 H
HETATM 28 H9 9RK G 202 27.282 94.770 26.964 1.00 0.00 H
HETATM 29 H10 9RK G 202 28.313 94.554 25.605 1.00 0.00 H
HETATM 30 H11 9RK G 202 29.580 92.291 25.875 1.00 0.00 H
HETATM 31 H12 9RK G 202 31.758 89.193 22.942 1.00 0.00 H
HETATM 32 H13 9RK G 202 34.132 90.286 23.069 1.00 0.00 H
CONECT 1 2 6 20
CONECT 1 6
CONECT 2 1 3 21
CONECT 2 3
CONECT 3 2 4 22
CONECT 3 2
CONECT 4 3 5 11
CONECT 4 5
CONECT 5 4 6 13
CONECT 5 4
CONECT 6 1 5 23
CONECT 6 1
CONECT 7 8 11 12 24
CONECT 8 7 14 25 26
CONECT 9 15
CONECT 9 15
CONECT 10 16 17 27
CONECT 10 16
CONECT 11 4 7
CONECT 12 7 13 28 29
CONECT 13 5 12
CONECT 14 8 15 30
CONECT 15 9 14 16
CONECT 15 9
CONECT 16 10 15 19
CONECT 16 10
CONECT 17 10 18 31
CONECT 17 18
CONECT 18 17 19 32
CONECT 18 17
CONECT 19 16 18
CONECT 20 1
CONECT 21 2
CONECT 22 3
CONECT 23 6
CONECT 24 7
CONECT 25 8
CONECT 26 8
CONECT 27 10
CONECT 28 12
CONECT 29 12
CONECT 30 14
CONECT 31 17
CONECT 32 18
END
18 changes: 16 additions & 2 deletions peleffy/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ def parse_args(args):
parser.add_argument('--charges_from_file', metavar="PATH",
type=str, help="The path to the file with charges",
default=None)
parser.add_argument("--chain", metavar="CHAIN",
type=str, help="Chain of the molecule to parameterize",
default=None)
parser.add_argument('--include_terminal_rotamers',
dest="include_terminal_rotamers",
action='store_true',
Expand Down Expand Up @@ -98,6 +101,7 @@ def run_peleffy(pdb_file,
resolution=DEFAULT_RESOLUTION,
charge_method=DEFAULT_CHARGE_METHOD,
charges_from_file=None,
chain=None,
exclude_terminal_rotamers=True,
output=None, with_solvent=False,
as_datalocal=False):
Expand All @@ -118,6 +122,8 @@ def run_peleffy(pdb_file,
charges_from_file : str
The file containing the partial charges to assign to the
molecule. Default is None
chain : str
Chain to the molecule if the PDB contains multiple molecules.
exclude_terminal_rotamers : bool
Whether to exclude terminal rotamers or not
output : str
Expand Down Expand Up @@ -159,13 +165,20 @@ def run_peleffy(pdb_file,
from peleffy.forcefield import ForceFieldSelector
from peleffy.topology import Topology
from peleffy.utils import parse_charges_from_mae
from peleffy.utils.input import PDB

if not output:
output = os.getcwd()

# Initialize molecule
molecule = Molecule(pdb_file, rotamer_resolution=resolution,
if chain is not None:
PDBreader = PDB(pdb_file)
molecule = PDBreader.get_molecule_from_chain(selected_chain=chain,
rotamer_resolution=resolution,
exclude_terminal_rotamers=exclude_terminal_rotamers)
else:
molecule = Molecule(pdb_file, rotamer_resolution=resolution,
exclude_terminal_rotamers=exclude_terminal_rotamers)

# Initialize force field
ff_selector = ForceFieldSelector()
Expand Down Expand Up @@ -256,7 +269,8 @@ def main(args):
output=args.output,
with_solvent=args.with_solvent,
as_datalocal=args.as_datalocal,
charges_from_file=args.charges_from_file)
charges_from_file=args.charges_from_file,
chain=args.chain)


if __name__ == '__main__':
Expand Down
27 changes: 27 additions & 0 deletions peleffy/tests/test_main.py
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,33 @@ def test_peleffy_argparse(self):
assert parsed_args.with_solvent is False, \
'Unexpected with_solvent settings were parsed'

# Test chain argument
parsed_args = parse_args(['LYS_BNZ.pdb',
'--chain', 'L'])

assert parsed_args.as_datalocal is False, \
'Unexpected as_datalocal settings were parsed'
assert parsed_args.charge_method == 'am1bcc', \
'Unexpected charge_method settings were parsed'
assert parsed_args.debug is False, \
'Unexpected debug settings were parsed'
assert parsed_args.forcefield == 'openff_unconstrained-1.3.0.offxml', \
'Unexpected forcefield settings were parsed'
assert parsed_args.include_terminal_rotamers is False, \
'Unexpected include_terminal_rotamers settings were parsed'
assert parsed_args.output is None, \
'Unexpected output settings were parsed'
assert parsed_args.pdb_file == 'LYS_BNZ.pdb', \
'Unexpected pdb_file settings were parsed'
assert parsed_args.resolution == 30, \
'Unexpected resolution settings were parsed'
assert parsed_args.silent is False, \
'Unexpected silent settings were parsed'
assert parsed_args.with_solvent is False, \
'Unexpected with_solvent settings were parsed'
assert parsed_args.chain == 'L',\
'Unexpected chain settings were parsed'

# Test silent argument
parsed_args = parse_args(['methane.pdb',
'-s'])
Expand Down
Loading