HUPO-PSI / mzSpecLib

mzSpecLib: A standard format to exchange/distribute spectral libraries
https://hupo-psi.github.io/mzSpecLib/
Apache License 2.0
24 stars 14 forks source link

Add support for clusters and un-crosswire keys from indices, especially in the index data structures #64

Closed mobiusklein closed 1 year ago

mobiusklein commented 1 year ago

Adds support for cluster entries, including a new faceted object for representing them, SpectrumCluster. Added a new set of methods to the backends for retrieving them, and to index implementations for tracking them.

While working on the index data structures, it became apparent that key and index identifiers of spectra had been used interchangeably, which is not how it is spelled out in the spec, so this was fixed, at the cost of a bit more space in exchange for less complexity.

Also contains a sprinkling of documentation and bug fixes, the best of which are the outdated CV parameter names that were hard-coded. Others include:

  1. Proper functioning of AttributeSet objects when reading (writing will be another matter).
  2. Inconsistent state during edge cases of text file indexing.
  3. Slicing behaving inconsistently.
mobiusklein commented 1 year ago

Lest this branch become any more bloated:

  1. SpectrumCluster parsing and indexing
  2. Index by key, index, and name for spectra and by key for clusters
  3. Test substantially more of the library, try to add more test coverage
edeutsch commented 1 year ago

@henryhlam do you want to check this over and mark for approval so that we can merge?