Skip to content

Releases: rusteomics/mzcore

mzcv v0.2.0

03 Dec 14:30
0bbe01e

Choose a tag to compare

  • Added support parents of CVData just is_a and part_of relationships for now
  • Added CURIE accessions to CVData
  • More support functions for OboIdentifier (tuple struct that replaces the type OboID)

v0.12.0 - the breakup

12 Nov 21:48
cdb0986

Choose a tag to compare

  • 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

25 Sep 15:15
b1a6d91

Choose a tag to compare

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 AsRef implementations for Peptidoform to allow more flexibility in the mixing of different complexity levels
  • Added a HasPeptidoform trait 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 -2H2O instead 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)

12 Aug 13:53
a601558

Choose a tag to compare

Try again for the python build.

v0.10.0

11 Apr 12:48
a46afae

Choose a tag to compare

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 on AminoAcid)
  • Split Model in FragmentationModel and MatchingParameters
  • 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

20 Jan 11:41
3ea728b

Choose a tag to compare

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

26 Nov 16:30
7627fe5

Choose a tag to compare

v0.9.0-alpha.3p Pre-release
Pre-release

This is a retry of alpha 3 as the last time the Python release failed.

v0.9.0-alpha.3

22 Nov 11:28
a51301c

Choose a tag to compare

v0.9.0-alpha.3 Pre-release
Pre-release

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

13 Sep 14:49
f1e65ac

Choose a tag to compare

v0.9.0-alpha.2 Pre-release
Pre-release

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, 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
  • Fixed some bugs

For all changes since v0.8.3 also see the previous alpha release.

v0.9.0-alpha.1

03 Sep 11:09
9fa6eee

Choose a tag to compare

v0.9.0-alpha.1 Pre-release
Pre-release

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.