Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
827cc76
first draft
Nov 21, 2025
8d8c460
Database with reactions and states disentangled
Nov 25, 2025
6b336b5
first complete draft of the database for particles
Nov 25, 2025
1e12202
add all pmb_types
Dec 2, 2025
308894f
clean up and document storage code
Dec 3, 2025
ecc776d
start refactoring pyMBE to use the new database
Dec 4, 2025
5f735ed
updated residue and bond management in pyMBE
Dec 5, 2025
03c8bd7
finish refactoring of residues, molecules and peptides
Dec 6, 2025
c17ca90
updated create_protein
Dec 6, 2025
741e318
refactor hydrogels
Dec 8, 2025
7739970
update delete methods to work with the new database
Dec 9, 2025
4dbc0c3
fix added_salt and counterion methods and get_id_map
Dec 9, 2025
25b3381
update methods to work with the new database
Dec 17, 2025
fd65b14
fix test for define and create molecules
Jan 10, 2026
ae6c3c1
modernize molecule tests, start cleaning lj tests
Jan 11, 2026
e733218
implement lj templates, fix tests
Jan 13, 2026
b71bb42
add demo, add functions to load/save the database to the pyMBE API
Jan 16, 2026
c202151
fix unit test
Jan 18, 2026
052c414
fix bug in create_counterions, fix unittest
Jan 18, 2026
ca1f34a
update copyright
Jan 18, 2026
947e684
disentagle particle states from particle templates
Jan 20, 2026
1e684ea
fix wrong handling of espresso types and acidity test
Jan 21, 2026
2796085
fix molecule position test
Jan 21, 2026
f8c9bd1
fix test
Jan 21, 2026
fd8c6fb
fix seed test and load_interaction_parameters
Jan 21, 2026
42c9000
add metadata management, small cleanup
Jan 22, 2026
5c06fae
clean up gcmc functional test
Jan 22, 2026
aa94f9c
fix bugs in setup bond, fix unittest
Jan 22, 2026
1b52ad3
fix net charge test
Jan 22, 2026
aa7019e
fix parameter test
Jan 22, 2026
0359470
fix HH functions and tests, improve the functionality of calculate_ne…
Jan 23, 2026
81a4295
start refactoring protein unit test
Jan 23, 2026
ddcbab3
fix protein framework and unit test
Jan 24, 2026
334bb85
adapt cpH method
Jan 24, 2026
66bc9c2
adapt reaction methods to the new database, fix docs
Jan 25, 2026
461ec7b
standarize docs
Jan 25, 2026
f85e0d3
clean up repo, fix bug in setup of rigid object
Jan 28, 2026
c753860
increase coverage
Jan 28, 2026
eb5e126
improve coverage, clean docs
Jan 29, 2026
1879159
add missing test
Jan 30, 2026
af7e760
increase coverage manager io, fix bug in lj
Jan 30, 2026
ea0799a
remove dead ends in database io
Feb 4, 2026
7aca4bb
improve docs
Feb 4, 2026
7af71fa
increase coverage of the database manager
Feb 4, 2026
3ef0e93
reach full coverage
Feb 6, 2026
302e823
solve issues detected by pylint
Feb 6, 2026
9fd511f
fix bug
Feb 6, 2026
281ea6f
solve dependency issues on the CI
Feb 6, 2026
4069473
fix new bug in unit test
Feb 6, 2026
d2c9f9b
lower requierements for pydantic to comply with current EESSI
Feb 6, 2026
8ccef18
fix hydrogel matplotlib representation, fix bug in collect_particle_t…
Feb 9, 2026
8abf3ee
fix general samples
Feb 9, 2026
2d6817a
all functional tests run now, started fixing the tutorial
Feb 9, 2026
1aa5c5d
clean up tutorial
Feb 10, 2026
3147a11
update changelog
Feb 10, 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
27 changes: 23 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
- Methods that interact directly with the pyMBE dataframe are now private and stored in a dedicated module in `storage/df_management`. These methods also have been refactored to be stateless methods, i.e. making it impossible for them to change behavior during the pyMBE object lifetime or for the user to change the pyMBE dataframe unless explicitely calling them. This includes the methods: `add_bond_in_df`, `add_value_to_df`, `assign_molecule_id`, `check_if_df_cell_has_a_value`, `check_if_name_is_defined_in_df`, `check_if_multiple_pmb_types_for_name`, `clean_df_row`, `clean_ids_in_df_row`, `copy_df_entry`, `create_variable_with_units`, `convert_columns_to_original_format`, `convert_str_to_bond_object`, `delete_entries_in_df`, `find_bond_key`, `setup_df`. (#145)
- `define_particle_entry_in_df` is now a private method in pyMBE, as it is a convenience method for internal use. (#145)
- The custom `NumpyEncoder` is now a private class in the private module `storage/df_management` because it is only internally used in pyMBE for serialization/deserialization. (#145)
## Added
- Introduced a canonical pyMBE database backend replacing the previous monolithic Pandas DataFrame storage approach. This lays the foundation for more robust, extensible, and normalized data handling across pyMBE. (#147)
- Added support to define reaction templates in the pyMBE database. (#147)
- Utility functions to cast information about templates and instances in the pyMBE database into pandas dataframe `pmb.get_templates_df`, `pmb.get_instances_df` and `pmb.get_reactions_df`. (#147)
- Utility functions to load and save the new database via the pyMBE API, `pmb.save_database` and `pmb.load_database`. (#147)
- Added functions to define particle states: `pmb.define_particle_states` and `pmb.define_monoprototic_particle_states`. (#147)
- Added utility functions in `lib/handy_functions` to define residue and particle templates for aminoacids en peptides and residues: `define_protein_AA_particles`, `define_protein_AA_residues` and `define_peptide_AA_residues`. (#147)

## Changed
- Refactored core modules to use the new database schema based on templates and instances for particles, residues, molecules, hydrogels, proteins and peptides. (#147)
- Particle states now are independent templates and are now disentangled from particle templates. (#147)
- Pka values are now stored as part of chemical reactions and no longer an attribute of particle templates. (#147)
- Amino acid residue templates are no longer defined internally in `define_peptide` and `define_protein`. Those definitions are now exposed to the user. (#147)
- Molecule templates now need to be defined to be used as templates for hydrogel chains in hydrogels. (#147)

## Fixed
- Utility methods `get_particle_id_map`, `calculate_HH`, `calculate_net_charge`, `center_object_in_simulation_box` now support all template types in pyMBE, including hydrogels. Some of these methods have been renamed to expose directly in the API this change in behavior.

### Removed
- Methods that interact directly with the pyMBE dataframe. These methods have been replaced by private methods that instead interact with the new canonical pyMBE database in (`pyMBE/storage/manager`). This includes the methods: `add_bond_in_df`, `add_value_to_df`, `assign_molecule_id`, `check_if_df_cell_has_a_value`, `check_if_name_is_defined_in_df`, `check_if_multiple_pmb_types_for_name`, `clean_df_row`, `clean_ids_in_df_row`, `copy_df_entry`, `create_variable_with_units`, `convert_columns_to_original_format`, `convert_str_to_bond_object`, `delete_entries_in_df`, `find_bond_key`, `setup_df`, `define_particle_entry_in_df`, custom `NumpyEncoder`. (#145, #147)
- Method `add_bonds_to_espresso` has been removed from the API. pyMBE now adds bonds internally to ESPResSo when molecule instances are created into ESPResSo. (#147)
- Tutorial `lattice_builder.ipynb` has been removed because its content is redundant with sample script `build_hydrogel.py`. (#147)


## [1.0.0] - 2025-10-08

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,7 @@ If you use pyMBE in your research, please cite our paper:

When using a released version of pyMBE, we recommend citing the corresponding
[Zenodo record](https://doi.org/10.5281/zenodo.12102634) in addition to the pyMBE paper,
for example: "We set up our coarse-grained models using pyMBE v0.8.0
for example: "We set up our coarse-grained models using pyMBE v1.0.0
\cite{beyer2024pymbe,zenodo2024pymbe}".

Please also make sure to properly cite the original authors if you use the resources provided in the `pyMBE/parameters/` folder.
Expand All @@ -247,7 +247,7 @@ contribute to pyMBE and find our authorship policy and code of conduct.

## License

Copyright (C) 2023-2025 pyMBE-dev team
Copyright (C) 2023-2026 pyMBE-dev team

pyMBE is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
Expand Down
Loading