Changelog
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.1] - 2024-08-28
Fixed
io.percolator: Fix and improve ScanNr inferring and writingio.percolator: Infer style from file extension if not provided (enables dynamic style determination in, for instance,convertfunction).
[1.0.0] - 2024-08-14
Added
Peptidoform: Allow comparison between a peptidoform and a peptidoform string; allow direct indexing with square brackets, which indexes or slices parsed_sequence (in #89)
Fixed
TSV: Avoid flooding logs when reading a different file format by raising exception when three consecutive rows could not be parsed (in #88)
[0.9.1] - 2024-07-17
Fixed
io.xtandem: Fix parsing PSMs and complete protein names in XTandem (by @julianu in #83)io.tsv: Fix warning formatting when parsing TSV (by @paretje in #85)io: Fix support for mzIdentML and pepXML files from Comet (by @paretje in #87)
[0.9.0] - 2024-05-01
Added
io: Read and write support for writing PSMs to Apache Parquet for efficient storage of PSM lists.io.sage: Support for Sage results in Parquet format (newSageParquetReader, renamedSageReadertoSageTSVReader).
Changed
Upgrade Pydantic dependency to v2. The PSM
spectrum_idfield is now always coerced to a string.io.proteoscape: Use pyarrow to iteratively read from Parquet instead of first reading an entire dataframe with Pandas.io.sage: Update compatibility to Sage v0.14Remove temporary patch for caching Proforma modification resolvers (now in Pyteomics v4.7.2).
[0.8.3] - 2024-04-16
Added
Speed up mass calculation for large datasets by caching Proforma modification resolvers. Temporary patch until implemented in Pyteomics (see levitsky/pyteomics#147).
[0.8.2] - 2024-04-05
Added
io.proteoscape: Parse filename into PSMrunfield.
[0.8.1] - 2024-03-29
Added
io.proteoscape: Allow ProteoScapeReader instantiation from Pandas DataFrame and access PSM by index.
Fixed
Remove accidental print statement.
io.idxml: Fixed parenthesis in type hint
Changed
io.idxml: Filter OPENMS_DATA_PATH warnings (see compomics/ms2rescore#129 and OpenMS/OpenMS#7418)io.proteoscape: Rename module from TIMScore to ProteoScape.io.proteoscape: Use correct search engine score (x_corr_scoreinstead oftims_score)
[0.8.0] - 2024-03-27
Added
io.timscore: Add support for TIMScore Parquet files.
Fixed
Fixed
_csv.Error: field larger than field limit (131072)for very large fields when reading CSV-based PSM files.Pinned Pyteomics version to avoid pickling issues in multithreading (to be investigated)
[0.7.4] - 2024-03-18
Added
Peptidoform: Support adding and applying global terminal modifications. For now using a workaround while waiting for official support and an implementation in Pyteomics. See HUPO-PSI/ProForma#6.
[0.7.3] - 2024-03-04
Changed
io.xtandem: Parse double mass modifications as double modification instead of merging and summing mass shifts into a single modification.io.xtandem: Avoid float formatting issues when parsing modification mass label.io.xtandem: Parse all proteins intoprotein_listinstead of only the first one.io.tsv: Log error instead of raising exception when a TSV row cannot be parsed.
[0.7.2] - 2023-11-29
Fixed
io.xtandem: Fixed bug when extracting run name (introduced in v0.7.0)
[0.7.1] - 2023-10-30
Added
Tests: Added tests for _format_number_as_string function
Tests: Added more test cases for
peptidoform.rename_modificationsfor mass modificationsio.xtandem: To parserunvalue, fall back to PSM file name if run name cannot be parsed fromlabelfield
Fixed
peptidoform.rename_modifications: Fixed mapping of negative mass modificationsio.xtandem: Fixed regular expression to parserunvalue fom XMLlabelfieldio.idxml: Fix handling multiple types inrescoring_featureswhen writing (fixes #60)
[0.7.0] - 2023-10-25
Added
io.idxml: Write support for idXML files, including merging an existing idXML with aPSMList🎉io.xtandem: New argumentscore_keyto select which score to parse asPSM.score.io.xtandem: Parserunname from X!Tandem PSM filesDocs: Add intersphinx links to other package documentation pages.
Changed
io.idxml: Use pyOpenMS instead of Pyteomics for reading idXML (~5x faster⚡)
Fixed
Fix reading of pepXML files without RT
Fixed Black formatting throughout project
[0.6.1] - 2023-10-25
Fixed
io.pepxml: Fix reading pepXML files without retention time information.
[0.6.0] - 2023-10-19
Added
io: Added newio.pepxmlreader
Fixed
Docs: Add ionbot to README.rst, fix order in API docs
[0.5.0] - 2023-09-20
Added
Peptidoform: Added support foriter()andlen()methodsPeptidoform: Added support for initialization from apyteomics.proforma.ProFormaobjectPSM: Addprecursor_mz_errorpropertyPSMList: Added support forappend()andextend()methods.io: Added newio.ionbotreaderio: Added support for Proteome Discoverer MSF filesio.mzid: Parse inverse reduced ion mobility from mzid files (e.g. from PEAKS)io.mzid: Add support for user to define custom score keyio.mzid: AddProteome Discoverer Delta Scoreto known scores (with spaces, no colons)io.mzid: Allow inconsistent presence of score in PSMs in a single mzid file
Changed
PSM: Values of therescoring_featuresdictionary are now coerced to floatsio: Raise
PSMUtilsIOExceptionwhen passed filetype is not knownio: Make io readerread_filemethod inheritable (code cleanup)io.mzid: Throw warning when no known score can be parsed from mzid file instead of errorio.mzid: Move spectrum level parsing of rt and ion mobility to functionio.mzid: GivePeptideShaker PSM scorepriority over other potential search engine scores (required for correct PeptideShaker mzid parsing)io.percolator: Add option to writePSMScoreandChargeNas features to PIN file. Default is nowFalse.Formatting: Increase max line length to 99 (code formatting)
Fixed
PSMList: Fix issue wherepsm_list["protein_list"]resulted in a Numpy error due to the inconsistent shape of the lists.io.tsv: Throw more descriptivePSMUtilsIOExceptionwhen handeling tsv errorsio.msamanda: Fix support for N/C-terminal modificationsio.Percolator.PercolatorTabWriter: Allow rescoring features that are not infeature_names(extrasactionis now specified inDictWriter)Use raw strings for escape characters where needed
Fix compatibility with sqlalchemy 2.0 (move of
declarative_base)online: Remove useless == True
docs: Set newer
build>osconfiguration for readthedocs.orgCI: Upgrade Github action versions
[0.4.1] - 2023-07-06
Fixed
PSMList: Revert comparison operator change from v0.4.0 that results in brokencalculate_qvalues()method (E711; Numpy array, not singleton)
[0.4.0] - 2023-07-06
Added
Add + operator support for
PSMListAdd utility functions for m/z-mass conversion in new module
psm_utils.utilspeptidoform: CatchProFormaErrorand reraisePeptidoformExceptionwith invalid peptidoform in message
Changed
io.msamanda: ChangedREQUIRED_COLUMNSto include new features from the MS Amanda output CSV fileio.peptide_record``Catch the ``IndexErrorwhen a modification has a position that is out of range for the peptide, and raise anInvalidPeprecModificationErrorinstead.Rename optional dependency
doctodocsImplement “raise from e” when applicable throughout package
Fixed
Added missing
io.msamandaAPI docs
[0.3.1] - 2023-06-19
Changed
io.sage: Changespectrum_fdrtospectrum_q(crf. lazear/sage#64).
[0.3.0] - 2023-06-08
Added
Add reader for Sage PSM files.
io.mzid: Add reading/writing of PEP and q-values
Changed
psm: The default values ofPSM.provenance_data,PSM.metadataandPSM.rescoring_featuresare nowdict()instead ofNone.PSMList: Also allow Numpy integers for indexing a single PSMio.mzid.MzidReader: Attempt to parseretention timeorscan start timecvParams from both SpectrumIdentificationResult as SpectrumIdentificationItem levels. Note that according to the mzIdentML specification document (v1.1.1) neither cvParams are expected to be present at either level.io.mzid.MzidReader: Preferspectrum titlecvParam overspectrumIDattribute forPSM.spectrum_idas these titles always match to the peak list files. In this case,spectrumIDis saved inmetadata["mzid_spectrum_id"]. Fall back tospectrumIDifspectrum titleis absent.io.mzid.MzidWriter:PSM.retention_timeis now written as cvParamretention timeinstead ofscan start time, and to theSpectrumIdentificationItemlevel instead of theSpectrumIdentificationResultlevel, as theoretically in psm_utils, multiple PSMs for the same spectrum can have different values forretention_time.io.mzid.MzidWriter: Write PSM score as cvParamsearch engine specific scoreinstead of userParamscore.io.percolator.PercolatorTabWriter: For PIN-style files: Use
SpecIdinstead ofPSMIdand writePSMScoreandChargeNcolumns by default.Filter warnings from
psims.mzmlbon import, asmzmlbis not used
Fixed
psm: Fix missing qvalue and pep in docstringpeptidoform: ProForma mass modifications are now correctly parsed within therename_modificationsfunction.io.maxquant.MSMSReader: Correctly parse emptyProteinscolumn toNoneio.percolator.PercolatorTabReader: Correctly parse Percolator peptidoform notation if no leading or trailing amino acids are present (e.g..ACDK.instead ofK.ACDK.E).io.percolator.PercolatorTabWriter: ScanNr is now correctly written as an integer counting from the first PSM in the file.io.percolator.PercolatorTabWriter: If no protein information is present, write the peptidoform preceded byPEP_to the Proteins column.io.idxml: Read metadata as stringsio.mzid.MzidReader: SetPSM.retention_timetoNoneinstead offloat('nan')if missing from the PSM file.io.mzid: Fix reading of file if charge is missingio.mzid: Fix writing if protein_list is Noneio.mzid: Consider allPeptideEvidenceentries for aSpectrumIdentificationItemto determineis_decoyio.mzid: Fix handling of mzIdentML files whenis_decoyfield is not present (fixes #30)io.tsv: RaisePSMUtilsIOExceptionwith clear error message when TSVprotein_listcannot be read
[0.2.3] - 2023-03-08
Fixed
Fix bug in
io._base_classes(introduced in v0.2.2)Fix bug in TSVReader for reading TSV files with empty protein_list
[0.2.2] - 2023-03-08
Fixed
io.peptide_record: Fix bug where provenance itemfilenamewas not a stringVarious minor fixes after linting
[0.2.1] - 2023-01-17
Added
Peptidoform: Addis_modifiedproperty
Fixed
io.mzid: Fix issues when parsing Comet or MSAmanda-generated mzIdentML files and certain fields are missing.
[0.2.0] - 2022-11-12
Added
PSM: Addion_mobilityfieldPSMList: Allow slicing with bool arrays (e.g.,psm_df[psm_df["retention_time"] < 2000])rename_modifications: Add support for fixed modificationsAdd example files
Online: Add support for GZipped files
Online: Add support for logarithmic score (e.g. e-values)
Docs: Extend contributing with example contributions
Docs: Add notes to
PSM.get_usi()methodDocs: Extend quickstart on PSMList
Docs: Add “psm_utils tags” for file formats, as used in high-level read/write/convert functions
Docs: Peptide Record: add notes on unsupported modification types; add example for C-terminal modification
Docs: More clearly document conversion to DataFrame
Docs: Add bioconda install instructions
Docs: Add citation for preprint
Tests: Added tests for PSMList
set_ranksandget_rank1_psmsmethods
Changed
PSMList: Refactorset_ranksandget_rank1_psmsmethodsUpdate
.vscode/settings.jsonTyping: Replace Union with OR operator
|Online: Use percentiles instead of randomly sampling for PP plot
Docs: Force TOC-tree max depth
Tests: Expand unit tests in general
Fixed
PSMList: Truncate__repr__to first five entries only, avoiding crashing notebook outputPeptidoform: Minor typing fixadd_fixed_modifications: Allow input as dict as well as list of tuplesio: Fix issue where theNamedTemporaryFilefor_supports_write_psmwas seen as invalid Percolator fileio.convert: passprogressbarargument to class, notwrite_fileio.mzid: Add more supported MS-GF score names, make SpecEValue defaultio.peptide_record:spec_idis now a required column (spectrum_idis also required in PSM)io.peptide_record: Fix parsing of C-terminal modifications from proforma to peprecio.percolator: Fix Percolator peptide notation writing (fixes #18)io.tsv: Fix issue whereTSVReaderwould not use string type for metadataio.xtandem: Fix issue where optional arguments were not accepted byXTandemReaderio.xtandem: Do not split spectrum title on spaceio.xtandem: Fix issue where optional arguments were not accepted byXTandemReaderOnline: Fix pi-0 diagonal calculation
Remove obsolete to do comments in code
[0.1.0] - 2022-10-14
Added
Initial version