Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1054 commits
Select commit Hold shift + click to select a range
a2ee72e
Merge pull request #2214 from jamesmkrieger/revert_scipion_parse_write
jamesmkrieger Feb 10, 2026
c0fc537
fixed stuck search
AnthonyBogetti Feb 10, 2026
a67ae71
still trying to fix serach
AnthonyBogetti Feb 10, 2026
c72acfd
finishing touches
AnthonyBogetti Feb 10, 2026
8d074cc
add readthedocs button to readme
AnthonyBogetti Feb 10, 2026
60d3a56
make readme shields side by side
AnthonyBogetti Feb 10, 2026
2e53bfc
readme formatting
AnthonyBogetti Feb 10, 2026
30d6360
Merge pull request #2217 from AnthonyBogetti/website
AnthonyBogetti Feb 10, 2026
6bcccb5
updated README shield with correct link
AnthonyBogetti Feb 10, 2026
ab8c2e1
Merge pull request #2218 from AnthonyBogetti/website
AnthonyBogetti Feb 10, 2026
25cabae
Update gui.py
Cventura18 Feb 12, 2026
c5dd484
Merge pull request #2219 from Cventura18/Cventura18-patch-1-updated-w…
AnthonyBogetti Feb 13, 2026
ea786d2
Initial plan
Copilot Feb 13, 2026
6a6e325
Fix StopIteration error in getAlignedMapping for Biopython > 1.79
Copilot Feb 13, 2026
e94c4af
Add logging and fix length mismatch in StopIteration handling
Copilot Feb 13, 2026
122c8ce
Use LOGGER.warning instead of deprecated LOGGER.warn
Copilot Feb 13, 2026
63800d3
fix alignBioPairwise for truncation
jamesmkrieger Feb 18, 2026
7d47dd4
fix for same length of excluded
jamesmkrieger Feb 18, 2026
6e88959
simplify test
jamesmkrieger Feb 18, 2026
3e85b1e
updated spring constants
anupam-banerjee Feb 19, 2026
17b01e3
import Bio Phylo BaseTree and _DistanceMatrix inside
jamesmkrieger Feb 24, 2026
1880a81
remove from all
jamesmkrieger Feb 24, 2026
e60e937
calcTree import from bio phylo directly
jamesmkrieger Feb 24, 2026
9b735e0
add calcTree tests to confirm not broken
jamesmkrieger Feb 25, 2026
3b84b0f
add more tree tests
jamesmkrieger Feb 25, 2026
b8aca22
restore TEMPDIR to tests datafiles
jamesmkrieger Feb 25, 2026
13d606e
Merge pull request #2228 from anupam-banerjee/genanm_check
AnthonyBogetti Mar 5, 2026
96caa25
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Mar 5, 2026
2a85428
Excluding hydrogens from calcChannels()
karolamik13 Mar 5, 2026
bd211ab
MOLE 2.0 publication update
karolamik13 Mar 6, 2026
4088599
Docs improvements for calcChannels()
karolamik13 Mar 6, 2026
3649c89
Docs minor change in selectChannelBySelection
karolamik13 Mar 8, 2026
8bce624
bug fix for PQR format in calcChannelSurfaceOverlaps
karolamik13 Mar 8, 2026
6ee0e32
parsePQR import added
karolamik13 Mar 9, 2026
aebffdb
fixed bug in Python 3.12 multiprocessing
AnthonyBogetti Mar 9, 2026
ae6f39f
Merge pull request #2232 from AnthonyBogetti/wf-fix
AnthonyBogetti Mar 9, 2026
ff307c8
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Mar 9, 2026
da9f7b3
selectChannelBySelection - PQR parser and docs changes
karolamik13 Mar 9, 2026
cb5a8ca
Changes in docs
karolamik13 Mar 9, 2026
42c595d
additions for docs calcChannelSurfaceOverlaps
karolamik13 Mar 11, 2026
57229f2
few changes in docs (cavitracer)
karolamik13 Mar 11, 2026
c1fab4c
CaviTracer - getChannelAtoms - fix for multimodel PDB analysis
karolamik13 Mar 15, 2026
581c083
CaviTracer docs improvements
karolamik13 Mar 19, 2026
99488ef
fix pdbe emdb ftp
jamesmkrieger May 1, 2026
b425aa0
Merge pull request #2018 from karolamik13/prody-cavifinder-reorg
karolamik13 May 24, 2026
27d5667
CaviTracer - start_point option added to calcChannels
karolamik13 Jun 5, 2026
15e6353
CaviTracer - calcChannels docs
karolamik13 Jun 5, 2026
a0bec57
CaviTracer - start_point checking
karolamik13 Jun 5, 2026
e948f0c
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Jun 5, 2026
053a908
CaviTracer - start_point in calcChannelsMultipleFrames (ensemble, tra…
karolamik13 Jun 5, 2026
e6bf814
CaviTracer - docs for calcChannelsMultipleFrames()
karolamik13 Jun 5, 2026
4268c1b
Merge pull request #2237 from karolamik13/prody-cavifinder-reorg
karolamik13 Jun 8, 2026
01cfca2
CaviTracer docs improvements - James K suggestions
karolamik13 Jun 8, 2026
5959e2b
CaviTracer - start_point - separate errors; isListLike
karolamik13 Jun 8, 2026
b36fc4a
CaviTracer - calcSurfaceCavities - ver 1
karolamik13 Jun 9, 2026
5a529db
CaviTracer - large changes in calcChannels etc to include max_dept
karolamik13 Jun 9, 2026
7a5aac8
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Jun 10, 2026
63b87df
CaviTracer - save_cavities_to_pdb, calcSurfaceCavities with output, s…
karolamik13 Jun 10, 2026
fefac4e
Merge branch 'prody-cavifinder-reorg' of github.com:karolamik13/ProDy…
karolamik13 Jun 10, 2026
f67a1a2
Fix PDB sequence clusters: migrate off deprecated RCSB bc-*.out files
jamesmkrieger Jun 17, 2026
44744e8
test_pdbclusters: set package path so tests don't prompt on stdin
jamesmkrieger Jun 17, 2026
8db982e
Merge pull request #2239 from jamesmkrieger/fix/pdbclusters-rcsb-enti…
jamesmkrieger Jun 19, 2026
f134f71
Merge branch 'prody:main' into jamesk/fix-alignchains-biopython-error
jamesmkrieger Jun 19, 2026
dc5b8d6
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Jun 22, 2026
d54efd1
CaviTracer - showSurfaceCavities
karolamik13 Jun 10, 2026
15267fb
CaviTracer - showSurfaceCavities - first version
karolamik13 Jun 19, 2026
18d0a5c
Merge pull request #2225 from jamesmkrieger/jamesk/fix-alignchains-bi…
jamesmkrieger Jun 22, 2026
27c7094
Merge branch 'prody:main' into prody-cavifinder-reorg
karolamik13 Jun 23, 2026
f5355f2
CaviTracer - docs for calcSurfaceCavities()
karolamik13 Jun 22, 2026
bd57c74
CaviTracer - calcChannels docs
karolamik13 Jun 22, 2026
be025a6
CaviTracer - min_tetrahedra/max_tetrahedra added
karolamik13 Jun 22, 2026
cc10f92
CaviTracer - calcSurfaceCavities min/max_tetrahedra, volume
karolamik13 Jun 23, 2026
2ce30e3
calcSurfaceCavities - min/max volume added
karolamik13 Jun 23, 2026
99df3c9
calcSurfaceCavities - improved save_cavities_to_pdb
karolamik13 Jun 23, 2026
5e21dbd
calcSurfaceCavities - changes in default criteria, docs
karolamik13 Jun 23, 2026
1f40359
CaviTracer - showSurfaceCavities - docs and cavity_atoms
karolamik13 Jun 24, 2026
b4b7462
CaviTracer - getVmdModel (new representations), showSurfaceCavities (…
karolamik13 Jun 24, 2026
2ae6084
CaviTracer - showSurfaceCavities - docs improvements, examples
karolamik13 Jun 24, 2026
c8f8563
CaviTracer - getVmdModel() - high resolution in Surf
karolamik13 Jun 24, 2026
c2f19dd
CaviTracer - docs - open3D info
karolamik13 Jul 1, 2026
f5a34f5
CaviTracer - removing imports that are not used
karolamik13 Jul 2, 2026
6524e08
CaviTracer - cavities_only in one block
karolamik13 Jul 2, 2026
3368dee
typo in the comment fix
karolamik13 Jul 2, 2026
7b06f6f
CaviTracer - calcSurfaceCavitiesMultipleFrames for trajectory/multi-m…
karolamik13 Jul 2, 2026
534718e
CaviTracer - getSurfaceCavityParameters is added
karolamik13 Jul 2, 2026
b3cf51f
CaviTracer - getSurfaceCavityResidueNames added
karolamik13 Jul 2, 2026
06e42f6
CaviTracer - selectSurfaceCavityBySelection added, modifications in s…
karolamik13 Jul 3, 2026
0585a7c
CaviTracer - calcSurfaceCavityOverlaps added
karolamik13 Jul 3, 2026
ba5d159
CaviTracer - start_point modification to include protein selection
karolamik13 Jul 3, 2026
3b13ce4
CaviTracer - docs, example for the start_point
karolamik13 Jul 3, 2026
90e38f8
CaviTracer - getSurfaceCavityResidueNames - LOGGER info
karolamik13 Jul 3, 2026
ce5ed46
CaviTracer - getChannelResidueNames - LOGGER and small change
karolamik13 Jul 3, 2026
2c4c5a5
CaviTracer - getSurfaceCavityResidueNames - fix with output
karolamik13 Jul 3, 2026
c3322ea
CaviTracer - getSurfaceCavityResidueNamesMultipleFrames is now added
karolamik13 Jul 4, 2026
0fe1fb3
CaviTracer - getSurfaceCavityResidueNamesMultipleFrames docs
karolamik13 Jul 4, 2026
ce71906
CaviTracer - getSurfaceCavityParametersMultipleFrames added
karolamik13 Jul 4, 2026
49b9771
CaviTracer - getChannelParametersMultipleFrames is added
karolamik13 Jul 4, 2026
2969c40
CaviTracer - getChannelResidueNamesMultipleFrames added
karolamik13 Jul 4, 2026
2446fb0
Merge pull request #2240 from karolamik13/prody-cavifinder-reorg
karolamik13 Jul 4, 2026
f914353
Merge pull request #2235 from jamesmkrieger/jamesk/pdbe_emdb_ftp
jamesmkrieger Jul 6, 2026
f473084
channels: homogeneous-ball atom substitution to approximate weighted …
briza81 Jul 7, 2026
4a3f588
channels: vectorize tessellation filtering and pathfinding by vectori…
briza81 Jul 7, 2026
0504b5b
channels: per-stage LOGGER timing in calcChannels with unified report…
briza81 Jul 7, 2026
d53d53f
channels: cleaning comments
briza81 Jul 7, 2026
7a86bdb
channels: add restrict_channels_to_start_point flag (default False) w…
briza81 Jul 7, 2026
17c1dcc
channels: restrict surface-erosion sphere_fit to the boundary shell i…
briza81 Jul 7, 2026
f30fcc7
channels: record per-channel cost (Dijkstra path weight) and curvatur…
briza81 Jul 7, 2026
4f2e013
channels: truncate channels at surface mouths to avoid their duplicat…
briza81 Jul 8, 2026
64271bd
channels: rename homogenize bool → diagram ("homogenized"/"simple"/"w…
briza81 Jul 9, 2026
540bba6
channels: bounded r2 surface peel (max_peel_depth) to strip the r1 "m…
briza81 Jul 9, 2026
1c9f29d
channels: update of calcChannels parameters pre-optimized to resemble…
briza81 Jul 9, 2026
63dfdd7
channels: update of style to better align with styleguide.rst by rena…
briza81 Jul 9, 2026
2cdbfa2
channels: cleaning unused imports
briza81 Jul 10, 2026
bab843e
channels: add diagram="weighted" (additively-weighted/Apollonius) Vor…
briza81 Jul 10, 2026
32ba552
Initial plan
Copilot Jul 13, 2026
f76446d
Handle non-numeric mmCIF auth_seq_id values
Copilot Jul 13, 2026
cd97e1e
Add label_seq_id fallback option for mmCIF residue numbers
Copilot Jul 13, 2026
2df9b68
Initial plan
Copilot Jul 13, 2026
9c416c3
feat: use MODRES records for correct ncAA to canonical AA conversion …
Copilot Jul 13, 2026
53ffce8
fix: remove incorrect sequence caching in Chain.getSequence (issue #2…
Copilot Jul 13, 2026
aa60882
Initial plan
Copilot Jul 13, 2026
94c010f
Initial plan
Copilot Jul 13, 2026
692e02c
Fix integer type mismatch in get_KDTree_indices (issue #2173)
Copilot Jul 13, 2026
164a3d0
Fix writeNMD for large systems: renumber residues > 9999 for NMWiz/VM…
Copilot Jul 13, 2026
6d405d0
fix: use AAMAP.get() with X fallback in _getUnobservedSeq (issue #2174)
Copilot Jul 13, 2026
934410e
Initial plan
Copilot Jul 13, 2026
8921b5d
fix: support atoms in showOccupancies
Copilot Jul 13, 2026
7bfcc9c
Initial plan
Copilot Jul 13, 2026
e372069
Handle extended PDB IDs in fetch and mirror paths
Copilot Jul 13, 2026
b9ca70d
channels: additively weighted VD are run in serial to avoid complicat…
briza81 Jul 13, 2026
62482c7
fix: add missing MODRES ncAA test fixture
Copilot Jul 13, 2026
4601f77
fix: support threeLetter sequence alias
Copilot Jul 13, 2026
35dadde
Make bioexcel tests optional (skip unless PRODY_BIOEXCEL_TESTS=1)
Copilot Jul 13, 2026
b8cbcf6
fix: drop .gitignore exception for MODRES fixture
Copilot Jul 13, 2026
a1a59f4
channels: local (enclosure-based) surface peel, removing the r1 depen…
briza81 Jul 13, 2026
5b1f3a3
channels: single sparsity, retire the inert one from calcSurfaceCavit…
briza81 Jul 14, 2026
5bd2cb7
channels: fix the peel eating wide pores, like porine. Default drops…
briza81 Jul 14, 2026
da909eb
channels: optimize the start_point seed instead of taking the nearest…
briza81 Jul 14, 2026
e1d5c52
channels: cache Voronoi clearances on the calculator as a single sour…
briza81 Jul 15, 2026
3dd61fe
channels: report the edge bottleneck radius, not circumcenter clearan…
briza81 Jul 15, 2026
ddaff8b
channels: cost the Dijkstra edges on the gate clearance, not the ente…
briza81 Jul 15, 2026
9e5311c
channels: match the volume tube at the gates — processChannel now inj…
briza81 Jul 15, 2026
c809ece
channels: measure cavity/mouth depth in geodesic Angstrom, not tetrah…
briza81 Jul 15, 2026
0afa489
channels: vectorize buildSparseGraph — build the weighted CSR adjacen…
briza81 Jul 15, 2026
7e97fed
channels: fix CONECT and same residue IDs in the combined channel PQR…
briza81 Jul 15, 2026
0d307c3
channels: add edge_cost='integral', a mesh-invariant clearance-profil…
briza81 Jul 16, 2026
436ba9c
Initial plan
Copilot Jul 16, 2026
2359bed
test: add SEP MODRES test based on 5FC2 scenario
Copilot Jul 16, 2026
72059ce
fix: force-add pdb5fc2_sep_modres.pdb fixture with PDB ID in name
Copilot Jul 16, 2026
1ed3ab6
fix: add MODRES line for 6L3 ligand in pdb5fc2_sep_modres.pdb fixture
Copilot Jul 16, 2026
3ff1959
Merge pull request #2250 from prody/copilot/use-pdb-modres-conversion
jamesmkrieger Jul 16, 2026
458ce04
Merge pull request #2243 from prody/copilot/feature-request-correct-a…
jamesmkrieger Jul 16, 2026
b96635a
channels: fix docstring typos and wrapping
briza81 Jul 16, 2026
6862b7b
channels: extract sphereFit from deleteSimplices3d + documenting both
briza81 Jul 16, 2026
f74421a
Merge pull request #2242 from prody/copilot/fix-valueerror-when-parsi…
jamesmkrieger Jul 16, 2026
a4ca149
Merge pull request #2248 from prody/copilot/account-for-extended-pdb-ids
jamesmkrieger Jul 16, 2026
4be6430
Update channels.py
karolamik13 Jul 17, 2026
5d61cdf
CaviTracer - calcChannelSurfaceOverlaps() - improved with multiproc calc
karolamik13 Jul 17, 2026
3e91bdd
CaviTracer - calcSurfaceCavityOverlaps and channels docs
karolamik13 Jul 17, 2026
2c9efde
Merge pull request #2244 from prody/copilot/fix-inferbonds-runtime-ex…
jamesmkrieger Jul 18, 2026
888bfd4
CaviTracer (#1 in TODO list; input atoms filtering) - _reportAtomsInp…
karolamik13 Jul 18, 2026
dc71097
capture directional perturb response vectors
jamesmkrieger Jul 19, 2026
5efc0f0
bug fix discovered from directional prs
jamesmkrieger Jul 19, 2026
0a085b9
bug fix 2
jamesmkrieger Jul 19, 2026
1c8b337
fix directional prs output
jamesmkrieger Jul 19, 2026
6fc0f71
fix prs no-turbo logger
jamesmkrieger Jul 19, 2026
419c199
fix prs no-turbo
jamesmkrieger Jul 19, 2026
b3f818f
fix showAtomicMatrix
jamesmkrieger Jul 19, 2026
e80e15f
fix showAtomicMatrix
jamesmkrieger Jul 19, 2026
6529bdd
Add ref_model option to calcSignatureOverlaps with tests
jamesmkrieger Jul 19, 2026
f4c2e3d
Add force/perturb_node knobs and comparePerturbResponses
jamesmkrieger Jul 19, 2026
201bd26
Merge branch 'jamesk/prs-fixes' into jamesk/prs-directional-2
jamesmkrieger Jul 19, 2026
aff2a14
fix: route showOccupancies through showAtomicLines
Copilot Jul 19, 2026
2fcbae9
Merge pull request #2245 from prody/copilot/fix-system-size-limitation
jamesmkrieger Jul 19, 2026
cdb0be2
fix: restore showOccupancies auto_show behavior
Copilot Jul 19, 2026
440d539
test: remove showOccupancies plotting tests
Copilot Jul 19, 2026
6f0d937
Merge pull request #2246 from prody/copilot/show-occupancies-support-…
jamesmkrieger Jul 19, 2026
fae4cc6
CaviTracer - mainly docs improvements (vorpy, dash & cosmetic)
karolamik13 Jul 20, 2026
ea1c046
CaviTracer - typo found in showSurfaceCavities() func [fix]
karolamik13 Jul 20, 2026
cabe03d
Merge pull request #2249 from briza81/channels-refactor
karolamik13 Jul 20, 2026
ab60298
Thread biopython alignment arguments through mapping functions
jamesmkrieger Jul 21, 2026
5461b0f
ClustENM: multi-start (setAtoms accepts a list of AtomGroups) + fix=F…
jamesmkrieger Jul 21, 2026
1221349
ClustENM: parallelise minimise/MD across conformers + build-once impl…
jamesmkrieger Jul 21, 2026
8066718
ClustENM: round-robin Pool workers across visible GPUs for multi-GPU …
jamesmkrieger Jul 21, 2026
c8cad9c
prody clustenm app: accept comma-separated structures for multi-start
jamesmkrieger Jul 21, 2026
5223f34
ClustENM: use 'spawn' for the parallel minimise/MD pool (OpenMM+CUDA …
jamesmkrieger Jul 21, 2026
ec93297
ClustENM: separate parallel_sim + sim_devices (multi-GPU DeviceIndex)…
jamesmkrieger Jul 21, 2026
b3fb98a
ClustENM: record a starting CC per seed for multi-start fitting
jamesmkrieger Jul 21, 2026
23b98cb
CaviTracer - scanChannelParameters() is added
karolamik13 Jul 22, 2026
2f9aa9f
Merge pull request #2256 from jamesmkrieger/jamesk/prs-directional-2
jamesmkrieger Jul 22, 2026
3475efb
CaviTracer - calcChannels - return_details is added
karolamik13 Jul 23, 2026
a801617
CaviTracer - initial version of calcPoresFromChannels() is added
karolamik13 Jul 23, 2026
78c8a52
CaviTracer - calcPoresFromChannels() docs
karolamik13 Jul 23, 2026
66a0888
CaviTracer - calcPoresFromChannels - more docs
karolamik13 Jul 23, 2026
8dcb2c6
CaviTracer - showPores() is added
karolamik13 Jul 23, 2026
d534320
CaviTracer - showPores as alias instead of separate func
karolamik13 Jul 23, 2026
f355764
CaviTracer - getPoreParameters() is added
karolamik13 Jul 24, 2026
b9eae69
CaviTracer - getChannelResidueNames() - HSE, and Amber names of his a…
karolamik13 Jul 24, 2026
9dd33a7
CaviTracer - getObjectResidueNames() is created as a supporting funct…
karolamik13 Jul 24, 2026
22f32c9
CaviTracer - calcPoresFromChannels - filters by min/max_end_to_end
karolamik13 Jul 24, 2026
2977065
CaviTracer - calcPoresFromChannels - min/max_bottleneck filter & docs
karolamik13 Jul 24, 2026
a02fef2
CaviTracer - calcPoresFromChannels() - min/max_length [filter]
karolamik13 Jul 24, 2026
f3cfae2
CaviTracer - calcPoresFromChannels - min/max_volume filter & docs
karolamik13 Jul 24, 2026
6c335df
CaviTracer - calcPoresFromChannelsMultipleFrames() & calcChannelsMult…
karolamik13 Jul 27, 2026
90b464f
CaviTracer - PORES - getPoreParametersMultipleFrames()
karolamik13 Jul 27, 2026
7b96a58
CaviTracer - getObjectResidueNamesMultipleFrames() is created to handle
karolamik13 Jul 27, 2026
9e21ef6
CaviTracer - output_path (to save pores as PQR/PDB) in calcPoresFromC…
karolamik13 Jul 27, 2026
47fc906
CaviTracer - PORES - output_path fix for calcPoresFromChannelsMultipl…
karolamik13 Jul 27, 2026
5cf5850
CaviTracer - docs comments
karolamik13 Jul 27, 2026
a9c0819
CaviTracer - calcPoresFromChannelsMultipleFrames() - multiprocessing …
karolamik13 Jul 28, 2026
d90a119
CaviTracer - calcPoresFromChannelsMultipleFrames() - mp_context - added
karolamik13 Jul 28, 2026
0bb62e2
CaviTracer - multiprocessing for calcChannelsMultipleFrames()
karolamik13 Jul 28, 2026
adbf3d3
CaviTracer - calcChannelSurfaceOverlaps() - handling empty files & Wi…
karolamik13 Jul 28, 2026
66f672b
Merge pull request #2255 from jamesmkrieger/jamesk/signature-overlaps…
jamesmkrieger Jul 28, 2026
6c9eec6
Merge branch 'main' of github.com:prody/ProDy into jamesk/bio_phylo_i…
jamesmkrieger Jul 28, 2026
cc7dfab
Merge pull request #2257 from jamesmkrieger/jamesk/thread-biopython-a…
jamesmkrieger Jul 28, 2026
e3b2e73
Merge pull request #2259 from karolamik13/cavitracer-parameter-grid
karolamik13 Jul 28, 2026
0b7cfc3
Merge pull request #1922 from jamesmkrieger/sel_numChains
jamesmkrieger Jul 29, 2026
a9ad755
Merge branch 'main' into ProDy-CaviTracer-PoresFromChannels
karolamik13 Jul 29, 2026
46a4f6e
Merge pull request #2260 from karolamik13/ProDy-CaviTracer-PoresFromC…
karolamik13 Jul 29, 2026
e456186
Merge pull request #2229 from jamesmkrieger/jamesk/bio_phylo_imports
jamesmkrieger Jul 29, 2026
9be07c1
Cavitracer - changeing r1 and r2 parameter names to surf_radius and …
briza81 Aug 4, 2026
b2dc322
Cavitracer: channel truncation at surface is now unconditional, as th…
briza81 Aug 4, 2026
5ed4427
CaviTracer: small typo in variable name
briza81 Aug 4, 2026
a3cef7e
CaviTracer: several advanced/unusuall arguments are now keyword-only
briza81 Aug 4, 2026
b08824a
New clustering functions - Hierarchical, KMedoids
kontheodosiadis Aug 4, 2026
6171d87
CaviTracer: channel/pore/cavity lining is now read per residue, not p…
briza81 Aug 4, 2026
26b71fe
CaviTracer: lining distance is now measured from the object surface, …
briza81 Aug 4, 2026
aad9d4f
CaviTracer: per-object output files are now named with Path.with_name…
briza81 Aug 4, 2026
db3c918
CaviTracer: removing fogotten comments
briza81 Aug 4, 2026
eaf54d4
New clustering function - DBSCAN, OPTICS for Reachability Plot
kontheodosiadis Aug 6, 2026
4484614
Merge pull request #2263 from briza81/CaviTracer-parameters-update
karolamik13 Aug 9, 2026
b91f0e7
Created rmsd_clustering module - Relocated functions - Cleaned up Red…
kontheodosiadis Aug 10, 2026
b080692
CaviTracer - multiprocessing in calcSurfaceCavitiesMultipleFrames()
karolamik13 Aug 10, 2026
aa9b6d8
CaviTracer - calcFrequentObjectResidues() for channels, pores and sur…
karolamik13 Aug 10, 2026
3d5a2f8
CaviTracer - showFrequentObjectResidues()
karolamik13 Aug 10, 2026
e09413d
Fixed title bug in showPairwiseRMSDHeatmap
kontheodosiadis Aug 11, 2026
e7a4768
CaviTracer - improvements for showFrequentObjectResidues()
karolamik13 Aug 11, 2026
af40a30
CaviTracer - scanSurfaceCavityParameters()
karolamik13 Aug 11, 2026
00154d9
Changes accoridng to James K. suggestions
karolamik13 Aug 11, 2026
b15f246
CaviTracer - changes in showFrequentObjectResidues() [James K suggest…
karolamik13 Aug 11, 2026
7969f49
Merge pull request #2266 from karolamik13/prody__main
karolamik13 Aug 11, 2026
b594caf
Fixed int appearence on showClusterStatisticsTable - General minor fi…
kontheodosiadis Aug 12, 2026
cb41a01
Revert changes to interactions.py
kontheodosiadis Aug 12, 2026
488be89
Matplotlib fallback for Seaborn histograms
kontheodosiadis Aug 12, 2026
474e0d1
Fixed colormap bug on showReachabilityPlot
kontheodosiadis Aug 12, 2026
19d8ed8
Added warning for cluster ID 0 handling
kontheodosiadis Aug 12, 2026
e58c920
Merge pull request #2258 from jamesmkrieger/clustenm-multistart
jamesmkrieger Aug 13, 2026
1cd37b9
Added two new functions for tracking the clusters in the trajectory
kontheodosiadis Aug 13, 2026
a9fef5f
Merge pull request #2264 from kontheodosiadis/main
karolamik13 Aug 13, 2026
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
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
blank_issues_enabled: false
31 changes: 31 additions & 0 deletions .github/ISSUE_TEMPLATE/prody-bug-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
---
name: ProDy Bug Report
about: Please let us know about a bug you encountered when using ProDy.
title: ''
labels: ''
assignees: AnthonyBogetti

---

**Note: *Our GitHub Issues are for bug reports ONLY*. Please post any feature requests and other topics to the Discussions tab. Thank you.**

**Please read the following before posting an issue.**
Hello, we are sorry that you have run into a problem while using ProDy. We will do our best to address your issues in a timely and comprehensive manner. In return, we ask that you completely fill out this bug report. Do not leave any section blank. Filling this form out ensures that we can help you most efficiently and saves us (and you) time and energy. Also, please search old issues and discussions before opening a new Issue. Chances are, someone in the past had your issue and the solution was described there.

## Description of the bug.
Below, please describe the error you encountered and what you were trying to do with ProDy.

## Do you have any error messages or logs?
Below, please post the error you got and text from any relevant log files.

## What is your setup?
Below, please describe your setup. What operating system are you using (MacOS, Linux, etc.).

## How did you install ProDy?
Below, please say whether you installed from source, with conda or with pip. Please also add what version of ProDy you are using.

## What did your code look like?
Below, if possible, please post the exact code you ran that led to the error you received. Please also attach any relevant input files. This will help us more quickly respond you your issue.

## Anything else?
Below, please write any other details you would like us to know about.
121 changes: 88 additions & 33 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,42 +1,97 @@
# This is a basic workflow to help you get started with Actions

name: CI
on:
- push
- pull_request
- workflow_dispatch

# Controls when the action will run.
on: [push, pull_request, workflow_dispatch]

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
runs-on: ubuntu-latest
runs-on: ${{ matrix.os }}

# ENVIRONMENT SETTINGS TO PREVENT HANGS
env:
OMP_NUM_THREADS: "1"
MKL_NUM_THREADS: "1"
OPENBLAS_NUM_THREADS: "1"
VECLIB_MAXIMUM_THREADS: "1"
NUMEXPR_NUM_THREADS: "1"
# Agg backend is critical for headless CI
MPLBACKEND: "Agg"
# Prevent ProDy from checking online for updates during import
PRODY_NO_UPDATE_CHECK: "1"

strategy:
fail-fast: false
matrix:
python-version: ["2.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
os: [ubuntu-latest, macos-latest]
python-version: ["3.10", "3.11", "3.12"]

steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: MatteoH2O1999/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Add conda to system path
run: |
echo $CONDA/bin >> $GITHUB_PATH
- name: Install dependencies
run: |
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 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
- name: Test with pytest
run: |
source activate test
conda install --yes pytest
pytest

- name: Checkout
uses: actions/checkout@v4

- name: Cache Matplotlib
uses: actions/cache@v4
with:
path: ~/.cache/matplotlib
key: ${{ runner.os }}-matplotlib-${{ hashFiles('environment.yml') }}
restore-keys: |
${{ runner.os }}-matplotlib-

- name: Set up Micromamba
uses: mamba-org/setup-micromamba@v1
with:
environment-file: environment.yml
cache-environment: true
create-args: >-
python=${{ matrix.python-version }}

- name: Verify Environment
shell: bash -l {0}
run: |
micromamba info
micromamba list

- name: Build & compile HPB (Linux)
if: runner.os == 'Linux'
shell: bash -l {0}
run: |
pip install -e .
python setup.py build_ext --inplace --force
ls -lh prody/proteins/hpb.so || { echo "hpb.so missing"; exit 1; }

- name: Build & compile HPB (macOS)
if: runner.os == 'macOS'
shell: bash -l {0}
run: |
export CFLAGS="${CFLAGS} -D__NO_FLOAT16"
export CPPFLAGS="${CPPFLAGS} -D__NO_FLOAT16"

pushd prody/proteins/hpbmodule

gfortran -O3 -fPIC -c reg_tet.f || exit 1

PYINC=$(python -c "import sysconfig; print(sysconfig.get_path('include'))")
PYLIBDIR=$(python -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
export LIBRARY_PATH="$CONDA_PREFIX/lib:$PYLIBDIR:$LIBRARY_PATH"

g++ -O3 -g -fPIC -I"${PYINC}" -c hpbmodule.cpp -o hpbmodule.o || exit 1

g++ -dynamiclib -undefined dynamic_lookup \
-o hpb.so hpbmodule.o reg_tet.o \
-L"${PYLIBDIR}" -L"$CONDA_PREFIX/lib" -lgfortran || exit 1

cp hpb.so ../
popd

pip install -e .
python setup.py build_ext --inplace --force

- name: Run tests
shell: bash -l {0}
run: |
# Warm up imports to trigger font cache build (if needed) before tests start
python -c "import matplotlib.pyplot"

# Run tests without debug flags
pytest -v -k "not testCommandExample19 and not testCommandExample20"
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ sdist
develop-eggs
.installed.cfg
__pycache__
.DS_Store

# ProDy
*.nmd
Expand Down
17 changes: 17 additions & 0 deletions .readthedocs.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
version: 2

build:
os: ubuntu-22.04
tools:
python: "3.12"

python:
install:
- method: pip
path: .
extra_requirements:
- docs # Ensure setup.py has this or use requirements.txt
- requirements: docs/requirements.txt

sphinx:
configuration: docs/conf.py
37 changes: 8 additions & 29 deletions INSTALL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Installation
Required Software
-----------------

* `Python`_ 2.7, 3.6 or later. We recommend using `Anaconda`_, which provides the conda package and environment manager as well as many useful packages.
* `Python`_ 3.10 or later. We recommend using `Anaconda`_, which provides the conda package and environment manager as well as many useful packages.

.. _Anaconda: https://www.anaconda.com/products/individual

Expand All @@ -32,24 +32,14 @@ this package.
Quick Install
-------------

If you have pip_ installed, type the following::

pip install -U ProDy
We officially recommend installing through conda::

If you don't have pip_, please download an installation file and
follow the instructions.
conda install -c conda-forge prody

If you have conda installed, you can also type the following instead::

conda install ProDy


Download & Install
------------------

After installing the required packages, you will need to download a suitable
ProDy source or installation file from http://python.org/pypi/ProDy.
For changes and list of new features see :ref:`changes`.
Installing From Source (not recommended)
----------------------------------------

**Linux**

Expand All @@ -72,23 +62,9 @@ schemes in `Installing Python Modules`_.

For installing ProDy, please follow the Linux installation instructions.

**Windows**

Remove previously installed ProDy release from :program:`Uninstall a program`
in :guilabel:`Control Panel`.

Download :file:`ProDy-1.{x}.{y}.win32-py2.{z}.exe` and run to install ProDy.

To be able use :ref:`prody-apps` and :ref:`evol-apps` in command prompt
(:program:`cmd.exe`), append Python and scripts folders (e.g.
:file:`C:\\Python27` and :file:`C:\\Python27\\Scripts`) to :envvar:`PATH`
environment variable.

Recommended Software
--------------------

* `Scipy`_, when installed, replaces linear algebra module of Numpy.
Scipy linear algebra module is more flexible and can be faster.
* `IPython`_ is a must have for interactive ProDy sessions.
* `PyReadline`_ for colorful IPython sessions on Windows.
* `MDAnalysis`_ or `MDTraj`_ for reading molecular dynamics trajectories.
Expand All @@ -109,6 +85,9 @@ Following software is included in the ProDy installation packages:
* `argparse`_ is used to implement applications and provided for
compatibility with Python 2.6.

* `Scipy`_, when installed, replaces linear algebra module of Numpy.
Scipy linear algebra module is more flexible and can be faster.

.. _argparse: http://code.google.com/p/argparse/


Expand Down
3 changes: 2 additions & 1 deletion MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,5 @@ include prody/utilities/datafiles/*.dat
include prody/utilities/datafiles/*.txt
include scripts/prody*
include scripts/evol*
include prody/protein/tabulated_energies.txt
include prody/protein/tabulated_energies.txt
recursive-include prody/drugui/DruGUI-script *
4 changes: 1 addition & 3 deletions PKG-INFO
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Metadata-Version: 1.1
Name: ProDy
Version: 2.5.0
Version: 2.6.1
Summary: A Python Package for Protein Dynamics Analysis
Home-page: http://www.csb.pitt.edu/ProDy
Author: James Krieger, She Zhang, Hongchun Li, Cihan Kaya, Ahmet Bakan, and others
Expand Down Expand Up @@ -84,10 +84,8 @@ Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: MacOS
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Chemistry
Expand Down
89 changes: 89 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
[![ProDy workflow status](https://img.shields.io/github/actions/workflow/status/prody/prody/main.yml)](https://github.com/prody/ProDy/actions/workflows/main.yml)
[![ProDy conda-forge page](https://anaconda.org/conda-forge/prody/badges/version.svg)](https://anaconda.org/conda-forge/prody)
[![ProDy pypi page](https://img.shields.io/pypi/v/ProDy.svg)](https://pypi.org/project/ProDy/)
[![Docs](https://img.shields.io/readthedocs/prody-official.svg?logo=read-the-docs&logoColor=white)](https://prody-official.readthedocs.io/en/latest/)

## Synopsis

ProDy is a free and open-source Python package for protein structure, dynamics, and sequence analysis. It allows for comparative analysis and modeling of protein structural dynamics and sequence co-evolution. The fast and flexible ProDy API is designed 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.

## Installing ProDy

We recommend downloading and installing the Anaconda package manager to handle dependencies in controlled environments. ProDy can be installed with the following command:

```bash
conda install -c conda-forge ProDy
```

ProDy is under active development. Install it from the source on GitHub if you want the most recent fixes.

First, download the ProDy code either as a zipped folder or using Git. For example, if you have Git installed, you can do the following:

```bash
git clone https://github.com/prody/ProDy.git
```

Then, change into the ProDy directory and install it by running the following commands:

```bash
cd ProDy
python setup.py build\_ext \--inplace \--force
pip install \-Ue .
```

More instructions can be found at [http://bahargroup.org/prody/downloads/](http://bahargroup.org/prody/downloads/) and [http://bahargroup.org/prody/manual/devel/develop.html](http://bahargroup.org/prody/manual/devel/develop.html).

## MODULES

ProDy has a modular structure with modules inside various subpackages.

The main ones are:

* **prody.atomic**: handles all Atomic objects including AtomGroup and Selection
* **prody.database**: interfaces with databases such as CATH, DALI, UniProt and Pfam
* **prody.dynamics**: provides all the modules for normal mode analysis with various elastic network models, as well as PCA, SignDy (prody.dynamics.signature), hybrid methods such as prody.dynamics.clustenm, allosteric signal propagation methods prody.dynamics.perturb (PRS) and calcHitTime (Markovian hitting time), and various analysis and plotting functions.
* **prody.ensemble**: enables construction of heterogeneous structural ensembles for exploring dynamics from experiments and simulations
* **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 prody.proteins.interactions within and between proteins (InSty) and find prody.proteins.waterbridges (WatFinder).
* **prody.sequence**: has all the sequence alignment and evolutionary analysis tools of Evol

Smaller ones include:

* **prody.chromatin**: specific to chromatin dynamics (ChromDy) including prody.chromatin.hic and prody.chromatin.cluster
* **prody.compounds**: for parsing small molecule compounds/ligands from the PDB and related databases
* **prody.domain\_decomposition**: for Spectrus dynamical domain decomposition
* **prody.trajectory**: for trajectories in DCD format
* **prody.utilities**

## GETTING PRODY

You can run ProDy on all major platforms. For download and installation instructions see: [http://www.bahargroup.org/prody/downloads/](http://www.bahargroup.org/prody/downloads/)

## DOCUMENTATION

* **Homepage**: [http://www.bahargroup.org/prody/](http://www.bahargroup.org/prody/)
* **Tutorials**: [http://www.bahargroup.org/prody/tutorials](http://www.bahargroup.org/prody/tutorials)
* **Reference**: [http://www.bahargroup.org/prody/manual](http://www.bahargroup.org/prody/manual)
* **Applications**: [http://www.bahargroup.org/prody/manual/apps](http://www.bahargroup.org/prody/manual/apps)
* **NMWiz GUI**: [http://www.bahargroup.org/prody/nmwiz](http://www.bahargroup.org/prody/nmwiz)
* **Changes**: [http://www.bahargroup.org/prody/manual/release](http://www.bahargroup.org/prody/manual/release)
* See also [https://github.com/prody/ProDy-website](https://github.com/prody/ProDy-website) for latest versions.

## SOURCE CODE

* **Source code**: [https://github.com/prody/ProDy](https://github.com/prody/ProDy)
* **Issue tracker**: [https://github.com/prody/ProDy/issues](https://github.com/prody/ProDy/issues)

## LICENSE

ProDy is available under the MIT License. See LICENSE.txt for more details.

* **Biopython**: ([http://biopython.org/](http://biopython.org/)) KDTree and TreeConstruction modules are distributed with ProDy. Biopython is developed by The Biopython Consortium and is available under the Biopython license ([http://www.biopython.org/DIST/LICENSE](http://www.biopython.org/DIST/LICENSE)).
* **Pyparsing**: ([https://github.com/pyparsing/pyparsing](https://github.com/pyparsing/pyparsing)) module is distributed with ProDy. Pyparsing is developed by Paul T. McGuire and is available under the MIT license ([http://www.opensource.org/licenses/mit-license.php](http://www.opensource.org/licenses/mit-license.php)).
* **CEalign module**: ([https://pymolwiki.org/index.php/Cealign\_plugin](https://pymolwiki.org/index.php/Cealign_plugin)) is distributed with ProDy. The original CE method was developed by Ilya Shindyalov and Philip Bourne. The Python version which is used by ProDy is developed by Jason Vertrees and available under the New BSD license.
* **Hbp module**: The calculation of hydrophobic interactions, solvent accessible surface area (SASA) and volume for each residue is using geometric methods based on the information of the atoms in the molecule. The methods have been programmed in C++ and can be compiled as a python module “hpb.so” which is then used by ProDy. Files for compilation are stored at prody/proteins/hpbmodule folder and required C++ and Fortran compiler. After compilation hpb.so file can be stored in prody/proteins folder in ProDy or in the local directory which is used to perform calulations. The precompiled versions for Python 2.7, 3.8, 3.9, and 3.10 are availabe in prody/proteins/hpbmodule. The user can choose the correct version of hpb.so and copy to the prody/proteins or local directory. C++ code of hpb.so was developed by Xin Cao and Fortran code by Xin Cao, Michelle H. Hummel, Bihua Yu, and Evangelos A. Coutsias (License in prody/proteins/hpbmodule folder). Details of the method can be found in the Supplementary Material of InSty manuscript ([https://doi.org/10.1016/j.jmb.2025.169009](https://doi.org/10.1016/j.jmb.2025.169009)).
Loading
Loading