Releases: keiserlab/LUNA
v0.14.0
Major breaking updates: downstream code using the old API must update accordingly.
1) Removed dependency on legacy BioPython version.
LUNA was originally built on top of a forked version of Biopython (MyBio), which restricted compatibility to Biopython 1.72. This created environment resolution issues, particularly on systems like macOS where support to this Biopython version doesn't exist anymore. This commit removes the MyBio dependency entirely. All SMCRA-related classes now reside in the luna.pdb module, where they subclass and extend Biopython’s native classes directly.
As a result, several parts of the LUNA codebase were updated to reflect the new subclass-based SMCRA architecture and preserve all existing features (e.g., CONECT parsing, get_parent_by_level, custom attributes).
This unblocks compatibility with modern Biopython (≥1.80) and improves portability across platforms and environments.
2) Renamed 'target' to 'reference' across namespace to avoid confusion with the term 'target' in receptor-ligand contexts
I renamed all occurrences of 'target' to 'reference' to avoid confusion with 'target' in receptor–ligand contexts. In this codebase, 'target' actually referred to the ligand under evaluation, i.e., the main entity for interaction computations against nearby molecules (protein, ligands, water, ions).
Impacted API:
-
luna.pdb.core.Residue/Chain:
- is_target() → is_reference()
- set_as_target() → set_as_reference()
-
luna.analysis.summary.count_interaction_types():
- arg: must_have_target → must_have_reference
-
luna.config.params:
- add_h2o_pairs_with_no_target → add_h2o_pairs_with_no_ref
-
luna.interaction.calc.InteractionsManager.count_interations():
- arg: must_have_target → must_have_reference
-
luna.interaction.calc.InteractionCalculator:
- arg: add_h2o_pairs_with_no_target → add_h2o_pairs_with_no_ref
-
luna.mol.groups.AtomGroup:
- has_target() → has_reference()
v0.13.0
Most important updates:
-
LUNA is much faster now;
- Average speed improvement in comparison to the previous version varies from 124% to 284% among a set of 50 complexes; -
New interaction type: metal coordination;
-
Improved standardization for residues at PDB files.
-
Residues coordinating metals are standardized differently. For instance, an OH from TYR will be considered deprotonated in these circumstances;
-
Metals and ligands are now standardized as well;
-
New classes to run DOCK6;
-
New classes to prepare ligands: add charges, add hydrogens, generate tautomers and stereoisomers at any pH, generate conformers, and minimize ligand structures;
-
Fixed some minor bugs;
v0.12.0
Most important updates:
-
Now, the main LUNA script (run.py) provides full compatibility with all LUNA parameters;
-
Now, the main LUNA script (run.py) provides full integration between command lines and config files, where the order of precedence is default LUNA config < config file provided through command line < command line modifiers.
-
LUNA now saves config files to <WORKING_PATH>/configs so that config files can be shared between users for reproducibility.
-
Speeded up LUNA: we added a new cache system to store protein information to avoid the recomputation of protein information over and over again when the protein is the same across all entries. This is especially useful for docking/MD campaigns where the same protein is used for all ligands. To activate it sets Project's parameter 'use_cache' to True. This will not provide any gains if the protein structures are different across your list of entries.
v0.11.0
Merge pull request #30 from alexandrefassio/master Latest LUNA version
v0.10.0
Merge pull request #28 from alexandrefassio/master Latest version
v0.9.0
Merge pull request #22 from alexandrefassio/master LUNA 0.9
v0.8.0
Merge pull request #21 from alexandrefassio/master Merge to V0.8.0