Skip to content

Commit

Permalink
Merge branch 'main' of github.com:prody/ProDy into lda_fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesmkrieger committed Aug 14, 2024
2 parents 8a00b1d + 34fa7be commit 281a09a
Show file tree
Hide file tree
Showing 61 changed files with 87,026 additions and 271 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
fail-fast: false
matrix:
python-version: ["2.7", "3.8", "3.9", "3.10"]
python-version: ["2.7", "3.8", "3.9", "3.10", "3.11"]

steps:
- uses: actions/checkout@v2
Expand All @@ -29,8 +29,8 @@ jobs:
if [[ ${{ matrix.python-version }} != "2.7" ]]; then conda config --add channels conda-forge; fi
conda create --yes -n test python=${{ matrix.python-version }}
source activate test
conda install --yes numpy scipy nose pyparsing requests
if [[ ${{ matrix.python-version }} == "2.7" ]]; then conda install --yes unittest2; else conda install --yes pdbfixer; fi
conda install --yes numpy scipy nose requests
if [[ ${{ matrix.python-version }} == "2.7" ]]; then conda install --yes unittest2; else conda install --yes pdbfixer mdtraj; fi
pip install mmtf-python scikit-learn
pip install .
python setup.py build_ext --inplace --force
Expand Down
4 changes: 2 additions & 2 deletions PKG-INFO
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires: numpy (>=1.10)
Requires: pyparsing
Requires: pyparsing (<=3.1.1)
Requires: biopython
Requires: scipy
Provides: prody (2.1.2)
Provides: prody
53 changes: 53 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,57 @@ API is for interactive usage as well as application development. ProDy also
comes with several analysis applications and a graphical user interface for
visual analysis.

Further details are described in the ProDy papers:

| Bakan A, Meireles LM, Bahar I.
| *ProDy*: Protein Dynamics Inferred from Theory and Experiments.
| *Bioinformatics* **2011** 27(11):1575-1577.
| Bakan A, Dutta A, Mao W, Liu Y, Chennubhotla C, Lezon TR, Bahar I.
| *Evol* and *ProDy* for Bridging Protein Sequence Evolution and Structural Dynamics.
| *Bioinformatics* **2014** 30(18):2681-2683.
| Zhang S, Krieger JM, Zhang Y, Kaya C, Kaynak B, Mikulska-Ruminska K, Doruker P, Li H, Bahar I.
| *ProDy* 2.0: Increased Scale and Scope after 10 Years of Protein Dynamics Modelling with Python.
| *Bioinformatics* **2021** 37(20):3657-3659.
MODULES
--------

ProDy has a modular structure with modules inside various subpackages.

The main ones are:

- :mod:`~prody.atomic`` handles all :class:`~prody.atomic.Atomic` objects including :class:`~prody.atomic.AtomGroup` and :class:`.Selection`

- :mod:`~prody.database` interfaces with databases such as CATH, DALI, UniProt and Pfam

- :mod:`~prody.dynamics` provides all the modules for normal mode analysis with various elastic network models,
as well as PCA, SignDy (:mod:`~prody.dynamics.signature`), hybrid methods such as :mod:`~prody.dynamics.clustenm`,
allosteric signal propagation methods :mod:`~prody.dynamics.perturb` (PRS) and :func:`~prody.dynamics.analysis.calcHitTime` (Markovian hitting time),
and various analysis and plotting functions.

- :mod:`~prody.ensemble` enables construction of heterogeneous structural ensembles for exploring dynamics from experiments and simulations

- :mod:`~prody.proteins` provides various modules for parsing different kinds of protein structure files including PDB, mmCIF, MMTF and maps,
as well as tools to align and compare structures, and analysis of :mod:`~prody.proteins.interactions` within and between proteins (InSty) and
find :mod:`~prody.proteins.waterbridges` (WatFinder).

- :mod:`~prody.sequence` has all the sequence alignment and evolutionary analysis tools of Evol


Smaller ones include:

- :mod:`~prody.chromatin` specific to chromatin dynamics (ChromDy) including :mod:`~prody.chromatin.hic` and :mod:`~prody.chromatin.cluster`

- :mod:`~prody.compounds` for parsing small molecule compounds/ligands from the PDB and related databases

- :mod:`~prody.domain_decomposition` for Spectrus dynamical domain decomposition

- :mod:`~prody.trajectory` for trajectories in DCD format

- :mod:`~prody.utilities`


GETTING PRODY
-------------
Expand All @@ -45,6 +96,8 @@ DOCUMENTATION

* Changes: http://prody.csb.pitt.edu/manual/release

See also https://github.com/prody/ProDy-website for latest versions.


SOURCE CODE
-----------
Expand Down
27 changes: 20 additions & 7 deletions docs/about/people.rst
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,15 @@ including *SignDy* and Adaptive ANM.
the *cryo-EM* module, :mod:`.protein.emdmap`.

`Burak Kaynak`_ contributed significantly to the development of
:mod:`.domain_decomposition` and :mod:`.dynamics.essa`,
and is in the process of adding other modules too.
:mod:`.domain_decomposition`, :mod:`.dynamics.essa`, and
:mod:`.dynamics.clustenm`.

`Karolina Mikulska-Ruminska`_ contributed significantly to the development of
:mod:`.protein.interactions` (*InSty*), :mod:`.protein.waterbridges`
(*WatFinder*), and :mod:`.dynamics.mechstiff` (*MechStiff*).

`Anthony Bogetti`_ is overseeing the overall development of *ProDy* since
2024.

`Anindita Dutta`_ contributed to the development of *Evol*,
:mod:`.database` and :mod:`.sequence` modules.
Expand All @@ -52,26 +59,32 @@ contributions and feedback from the following individuals:

`Ying Liu`_ provided the code for Perturbation Response Scanning method.

`Frane Doljanin`_ provided the code for the water bridge detection.

`Kian Ho`_ contributed with bug fixes and unit tests for DSSP functions.

`Gökçen Eraslan`_ contributed with bug fixes and development and maintenance
insights.



.. _Ahmet Bakan: https://scholar.google.com/citations?user=-QAYVgMAAAAJ&hl=en
.. _Cihan Kaya: https://www.linkedin.com/in/cihan-kaya/
.. _Bahar Lab: http://www.ccbb.pitt.edu/faculty/bahar/
.. _Bahar Lab: http://www.bahargroup.org/Faculty/bahar/
.. _University of Pittsburgh: http://www.pitt.edu/
.. _Anindita Dutta: http://www.linkedin.com/pub/anindita-dutta/5a/568/a90
.. _Wenzhi Mao: http://www.linkedin.com/pub/wenzhi-mao/2a/29a/29
.. _Lidio Meireles: http://www.linkedin.com/in/lidio
.. _Ying Liu: http://www.linkedin.com/pub/ying-liu/15/48b/5a9
.. _Kian Ho: https://github.com/kianho
.. _Gökçen Eraslan: http://blog.yeredusuncedernegi.com/
.. _Tim Lezon: http://www.csb.pitt.edu/Faculty/Lezon/
.. _Tim Lezon: https://scholar.google.pl/citations?user=1MwNI3EAAAAJ&hl=pl&oi=ao
.. _Chakra Chennubhotla: http://www.csb.pitt.edu/Faculty/Chakra/
.. _She (John) Zhang: https://www.linkedin.com/in/she-zhang-49164399/
.. _Hongchun Li: http://www.pitt.edu/~hongchun/
.. _James Krieger: http://www.csb.pitt.edu/Faculty/bahar/lab.html
.. _Yan Zhang: https://www.csb.pitt.edu/Faculty/bahar/lab.html
.. _Burak Kaynak: https://www.csb.pitt.edu/Faculty/bahar/lab.html
.. _James Krieger: https://scholar.google.pl/citations?user=DoiCjkUAAAAJ&hl=pl
.. _Yan Zhang: https://scholar.google.pl/citations?user=VxwU0pgAAAAJ&hl=pl&oi=sra
.. _Burak Kaynak: https://scholar.google.pl/citations?user=gP8RokwAAAAJ&hl=pl&oi=ao
.. _Karolina Mikulska-Ruminska: https://scholar.google.pl/citations?user=IpyPHRwAAAAJ&hl=pl
.. _Anthony Bogetti: https://scholar.google.pl/citations?hl=pl&user=9qQClIcAAAAJ
.. _Frane Doljanin: https://github.com/fdoljanin
2 changes: 1 addition & 1 deletion docs/docs
4 changes: 2 additions & 2 deletions docs/reference/dynamics/signature.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Signature Dynamics of Protein Families
======================================
Signature Dynamics of Protein Families (SignDy)
===============================================

.. automodule:: prody.dynamics.signature
:members:
4 changes: 2 additions & 2 deletions docs/reference/proteins/interactions.rst
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Interactions Tools
======================
Interactions and Stability (InSty)
===================================

.. automodule:: prody.proteins.interactions
:members:
Expand Down
6 changes: 6 additions & 0 deletions docs/reference/proteins/waterbridges.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Water bridge finder (WatFinder)
===================================

.. automodule:: prody.proteins.waterbridges
:members:
:undoc-members:
4 changes: 4 additions & 0 deletions docs/release/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ Release Notes
:maxdepth: 2
:glob:

v2.4_series
v2.3_series
v2.2_series
v2.1_series
v2.0_series
v1.11_series
v1.10_series
Expand Down
5 changes: 3 additions & 2 deletions prody/apps/prody_apps/prody_catdcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,9 @@ def prody_catdcd(*dcd, **kwargs):
out = prody.DCDFile(output, 'w')
count = 0
stride = kwargs.get('stride', 1)
goto = stride != 1
slc = slice(kwargs.get('first', 0), kwargs.get('last', -1),
first = kwargs.get('first', 0)
goto = stride != 1 or first != 0
slc = slice(first, kwargs.get('last', -1),
stride).indices(len(traj)+1)
for i in range(*slc):
if goto:
Expand Down
2 changes: 1 addition & 1 deletion prody/apps/prody_apps/prody_clustenm.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def prody_clustenm(pdb, **kwargs):
model = kwargs.pop('model')
altloc = kwargs.pop('altloc')
turbo = kwargs.pop('turbo')
nproc = kwargs.get('nproc')
nproc = kwargs.pop('nproc')

ngens = kwargs.pop('ngens')
nconfs = kwargs.pop('nconfs')
Expand Down
34 changes: 29 additions & 5 deletions prody/atomic/flags.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,15 @@

'nucleobase': set(['GUN', 'ADE', 'CYT', 'THY', 'URA']),
'nucleotide': set(['DA', 'DC', 'DG', 'DT', 'DU', 'A', 'C', 'G', 'T', 'U']),
'nucleoside': set(['AMP', 'ADP', 'ATP', 'CDP', 'CTP', 'GMP', 'GDP', 'GTP',
'TMP', 'TTP', 'UMP', 'UDP', 'UTP']),
'nucleoside': set(['ADN', 'AMP', 'ADP', 'ATP',
'CMP', # cyclic AMP
'A2P', 'A3P', # multi site diphosphates
'AGS', # ATP-gamma-S
'CTN', 'C5P', 'CDP', 'CTP',
'C2P', 'C3P', # other site monophosphates
'GMP', '5GP', 'GDP', 'GTP',
'THM', 'TMP', 'TPP', 'TTP',
'URI', 'UMP', 'UDP', 'UTP']),

'at': set(['ADE', 'A', 'THY', 'T']),
'cg': set(['CYT', 'C', 'GUN', 'G']),
Expand Down Expand Up @@ -418,19 +425,36 @@ def changeBackbone(flag, names):
======= ==================================
nucleoside
indicates following nucleoside derivatives that are recognized by *PDB*:
indicates following nucleosides and their derivatives that are recognized by *PDB*:
======= ================================
`AMP`_ adenosine monophosphate
`ADN`_ adenosine
`AMP`_ adenosine-5'-monophosphate
`ADP`_ adenosine-5'-diphosphate
`ATP`_ adenosine-5'-triphosphate
`AGS`_ adenosine-5'-triphosphate-gamma-S
`CMP`_ cyclic adenosine-3',5'-monophosphate
`A2P`_ adenosine-2',5'-diphosphate
`A3P`_ adenosine-3',5'-diphosphate
`CTN`_ cytidine
`C2P`_ cytidine-2'-monophosphate
`C3P`_ cytidine-3'-monophosphate
`C5P`_ cytidine-5'-monophosphate
`CDP`_ cytidine-5'-diphosphate
`CTP`_ cytidine-5'-triphosphate
`GMP`_ guanosine
`5GP`_ guanosine-5'-monophosphate
`GDP`_ guanosine-5'-diphosphate
`GTP`_ guanosine-5'-triphosphate
`TMP`_ thymidine-5'-phosphate
`THM`_ thymidine
`TMP`_ thymidine-5'-monophosphate
`TPP`_ thymidine-5'-diphosphate
`TTP`_ thymidine-5'-triphosphate
`URI`_ uridine (uracil plus ribose)
`UMP`_ 2'-deoxyuridine 5'-monophosphate
`UDP`_ uridine 5'-diphosphate
`UTP`_ uridine 5'-triphosphate
Expand Down
6 changes: 3 additions & 3 deletions prody/compounds/pdbligands.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,9 +158,9 @@ def fetchPDBLigand(cci, filename=None):
resnums = np.ones(n_atoms, dtype=ATOMIC_FIELDS['charge'].dtype)

alternate_atomnames = np.zeros(n_atoms, dtype=ATOMIC_FIELDS['name'].dtype)
leaving_atom_flags = np.zeros(n_atoms, np.bool)
aromatic_flags = np.zeros(n_atoms, np.bool)
stereo_configs = np.zeros(n_atoms, np.bool)
leaving_atom_flags = np.zeros(n_atoms, bool)
aromatic_flags = np.zeros(n_atoms, bool)
stereo_configs = np.zeros(n_atoms, bool)
ordinals = np.zeros(n_atoms, int)

name2index = {}
Expand Down
18 changes: 16 additions & 2 deletions prody/database/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,21 @@
Interpro
====
The following functions can be used to search and retrieve Pfam_ data:
The following functions can be used to search and retrieve Interpro_ data:
* :func:`.searchInterpro` - search for domain families of a protein
.. _Pfam: https://www.ebi.ac.uk/interpro/
.. _Interpro: https://www.ebi.ac.uk/interpro/
BioExcel-CV19
====
The following functions can be used to retrieve BioExcel-CV19_ data:
* :func:`.fetchBioexcelPDB` - fetch PDB files for starting structures for trajectories
.. _BioExcel-CV19: https://bioexcel-cv19-dev.bsc.es/
"""

__all__ = []
Expand Down Expand Up @@ -108,3 +118,7 @@
from . import interpro
from .interpro import *
__all__.extend(interpro.__all__)

from . import bioexcel
from .bioexcel import *
__all__.extend(bioexcel.__all__)
Loading

0 comments on commit 281a09a

Please sign in to comment.