Releases: rusteomics/mzcore
mzcv v0.2.0
- Added support parents of
CVDatajustis_aandpart_ofrelationships for now - Added CURIE accessions to
CVData - More support functions for
OboIdentifier(tuple struct that replaces the typeOboID)
v0.12.0 - the breakup
- Breaks up rustyms into 6 smaller crates each specialised in their own field. See the main readme for an overview.
- mzannotate (handling fragmentation and spectrum annotation) now is tied closer to mzdata and is extended to support mzspeclib files (reading and writing)
- A fully new system for handling ontologies is introduced (mzcv) which allows updating the databases at runtime to allow software that uses the library to have a much longer shelf live
- Restructure of many of the APIs, allowing much better errors, fixing many small problems
This does mean that it will need a bit of manual work to update to this new swarm of crates. Although, it should basically be replace use rustyms::XX with use mzcore::XX and replace the align submodule of rustyms with the mzalign crate, the ident for mzident, imgt for imgt, and fragment and spectrum for those modules in mzannotate. Most parsing functions have changed to a standard format having Structure::spec_name(&str, &Ontologies) where &Ontologies is the new runtime access to the modification databases. Additionally, a function Structure::spec_name(&Context, &str, Range<usize>, &Ontologies) which allows you to pass through a base, the line of text, a subrange, and the ontologies (note that the base context needs to already be populated with the line of text). This form allows you to create rich error messages that contain all known context and are located correctly on the full line.
This release is both a public notification, an entry in the changelog, and a release of a new version of rustyms-py. I need to see how to handle these releases for the subcrates going forwards.
v0.11.0
This release adds the following major points:
- Added standard proteases (thanks to @aukeheerdink)
- Refactored and updated identified peptidoform files
- Added support for opening specific versions and reporting which version was detected
- Moved all metadata functions to a new trait
MetaData - Added support for CSV files with a byte order mark (BOM)
- Added and updated many specific identified peptidoform file formats
- Added support for more FragPipe and MSFragger output files and versions and parsed more of the data
- Added support for Peaks 13 DIA data
- Added support for proteoscape
- Added support for pUniFind
- Added support for AdaNovo (thanks to @aukeheerdink)
- Added support for InstaNovo v1.1.4 (thanks to @aukeheerdink)
- Added support for π-HelixNovo (thanks to @aukeheerdink)
- Added support for π-PrimeNovo (thanks to @aukeheerdink)
- Added support for Casanovo v5 specific flavoured mzTab files
- Fully parse the de novo sequences from MaxNovo
- Expanded support for mzTab files, modifications, ambiguous modifications, and proteins
- Added
AsRefimplementations forPeptidoformto allow more flexibility in the mixing of different complexity levels - Added a
HasPeptidoformtrait and used this in the alignments allowing for flexibility in the exact data structures used during the alignment - Extended neutral losses to allow for multiples, for example two times a water loss can now be expressed as
-2H2Oinstead of-H4O2 - Refactored ppm calculation for higher performance
- Refactored mass based alignment for higher performance (~2x faster!) (thanks to @gritukan)
- Bumped msrv to 1.88
- Added ambiguous nucleotides to the codon translation code
- Factored out the error handling code into a separate crate, this does change the API slightly but also makes the errors much more correct
- Lots of refactoring and reorganising
v0.10.0 (Python version)
Try again for the python build.
v0.10.0
This release adds the following major points:
- Added glycan rendering
- Added some missing information in glycans and fixed some bugs
- Added trait
IsAminoAcid(note that this renamed some of the methods onAminoAcid) - Split
ModelinFragmentationModelandMatchingParameters - Added much more complexity in
FragmentationModel- More complex satellite ions
- More neutral loss types, based on the amino acid/monosaccharide and side chain losses
- Added options for glycan fragmentation on peptide fragments
- Added pKA and isoelectric point estimations for peptides (thanks to @aukeheerdink)
- Updated built in fragmentation models to use the added complexity and added ones for EAD, EACID, and UVPD
- Added basic CSV format
- Added the options to keep all CSV lines when parsing an identified peptides file
- Added mzPAF exporting for fragments
- Restructured some parts of the API surface
- Updated all databases
- Fixed many bugs and performance issues
Many of these introduce breaking changes so any code written for earlier version will needs some (minor to medium) revisions. If there is anything unclear please reach out.
For a full run down of the changed API use 'cargo-public-api' (this changelog is too big for inclusion here).
v0.9.0
This release adds the following major points:
- Integration with mzdata for raw file handling
- Full ProForma 2.0 compliance by adding support for cross-links, note that many functions and types are renamed
- More control over fragmentation model
- Many more identified peptide file formats
- Updated and somewhat expanded Python bindings
- More reliability thanks to fuzzing efforts
- Updated complexity API, any Peptidoform (formerly LinearPeptide), SequenceElement, and CheckedAminoAcid now has its maximal complexity tracked. This changes many functions on these elements, but should be straightforward to change.
- Added a simple function to open any identified peptides file (see open_identified_peptides_file)
- Updated Unimod, GNOme, and IMGT to the newest versions
- Updated the documentation
- Many many bug fixes
- Optimised memory usage, mostly for identified peptides file (should expect ~20% of the original memory usage)
Many of these introduce breaking changes so any code written for earlier version will needs some (minor to medium) revisions. If there is anything unclear please reach out.
For a full run down of the changed API use 'cargo-public-api' (this changelog is too big for inclusion here).
v0.9.0-alpha.3p
This is a retry of alpha 3 as the last time the Python release failed.
v0.9.0-alpha.3
Third alpha release for v0.9.0. This release adds the following major points:
- Safer API for peptides, peptidoforms, and compound peptidoforms
- Added general open peptides file function
- Added many new identified peptides file formats (MZTab, more peaks versions, deepnovo, powernovo, novob, pgpointnovo, pointnovo, plink, instanovo)
- Many many bug fixes
- Optimised memory usage, mostly for identified peptides file (should expect ~20% of the original memory usage)
For a full run down of the changed API use 'cargo-public-api' (this changelog is too big for inclusion here).
v0.9.0-alpha.2
This is the second alpha release for v0.9.0. Below are the changes compared to v0.9.0-alpha.1.
- Updated complexity API, any
LinearPeptide,SequenceElement, andCheckedAminoAcidnow has its maximal complexity tracked. This changes many functions on these elements, but should be straightforward to change. - Added a simple function to open any identified peptides file (see
open_identified_peptides_file) - Updated Unimod, GNOme, and IMGT to the newest versions
- Updated the documentation
- Fixed some bugs
For all changes since v0.8.3 also see the previous alpha release.
v0.9.0-alpha.1
Alpha release for v0.9.0. This release adds the following major points:
- Integration with mzdata for raw file handling
- Full ProForma 2.0 compliance by adding support for cross-links
- More control over fragmentation model
- More identified peptide file formats (now allows Fasta, MaxQuant, MSFragger, Novor, OPair, Peaks, and Sage)
- Updated and somewhat expanded Python bindings
- More reliability thanks to fuzzing efforts
Many of these introduce breaking changes so any code written for earlier version will needs some (minor to medium) revisions. If there is anything unclear please reach out.
For a full run down of the changed API use 'cargo-public-api' (this changelog is too big for inclusion here).
This is an alpha release with the intent to release a stable version in a couple of weeks. The major fields of potential breaking changes in the mean time are:
- Integration with mzdata, where more tight integration with the spectrum types will be experimented with.
- The API for linear peptides, this will be changed to enforce the peptide simplicity rules.
- There might be more identified peptide file formats added which might need some small changes to the underlying structures.
- The Python API is not envisioned to change but requests for adding bindings to more of the Rust side logic could be accepted.