Recent Releases of https://github.com/compomics/psm_utils
https://github.com/compomics/psm_utils - v1.4.1
Fixed
- Restored compatibility with older Sage versions that have no ion mobility columns (introduced in v1.4.0) (by @rodvrees in #120)
Full Changelog: https://github.com/compomics/psm_utils/compare/v1.4.0...v1.4.1
- Python
Published by RalfG 11 months ago
https://github.com/compomics/psm_utils - v1.4.0
Added
- β¨
io.sage: Add parsing of ion mobility values (PR #113)
Fixed
- π
io.percolator: Fix bug inPercolatorTabWriterwhere style parameter was not propagated (fixes #114, PR #117) - π Docs: Explicitly set Sphinx configuration path for Read the Docs (fixes #115, PR #118)
New Contributors
- @singjc made their first contribution in https://github.com/compomics/psm_utils/pull/113
Full Changelog: https://github.com/compomics/psm_utils/compare/v1.3.0...v1.4.0
- Python
Published by RalfG 12 months ago
https://github.com/compomics/psm_utils - v1.3.0
Added
- β¨
io.idxml: Parse ion mobility from idXML files if present. - π Added support for Python 3.12 and 3.13
Removed
- π Removed support for Python 3.7
Fixed
- π Fix bug introduced in #102 where dtypes were not coerced anymore by Numpy, which lead to unexpected behavior downstream (e.g.,
psm_list["is_decoy"]would return an array of objects instead of bools) - π©Ή Fix potential downstream issues because pepxml-read PSM had
rescoring_features=None(partially fixes #108)
Full Changelog: https://github.com/compomics/psm_utils/compare/v1.2.0...v1.3.0
- Python
Published by RalfG about 1 year ago
https://github.com/compomics/psm_utils - v1.2.0
Added
- β¨
io.alphadia: Read support for AlphaDIAprecursors.tsv(#103 by @rodvrees) - β¨
io.fragpipe: Read support for FragPipepsm.tsv(#103 by @rodvrees) - β¨
io.diann: Read support for DIA-NN TSV (#103 by @rodvrees)
Changed
- π₯
psm_list: When returning a PSM property across the full PSMList (e.g.psm_list["peptidoform"]),np.fromiteris now used instead ofnp.array. This fixes an issue where if all peptidoforms have the same length, a 3D array of parsed sequences (amino acids and modifications) was be returned instead of an array ofPeptidoformobject. However, this does mean that all resulting arrays will have theobjectdtype instead of the previously coerced dtypes. This might lead to issues downstream. (#102) - β
io.idxml: Make pyOpenMS an optional dependency, working around https://github.com/OpenMS/OpenMS/issues/7600 for now. Foridxmlsupport, install psm_utils with theidxmlextra dependencies. (#107 by @paretje)
Fixed
- π
io.pepxml: Fix modification location and mass parsing. Position had an off-by-one error and the reported mass was the sum of the residue and modification instead of the modification alone. (fixes #100, #104)
New Contributors * @levitsky made their first contribution in https://github.com/compomics/psmutils/pull/101 * @rodvrees made their first contribution in https://github.com/compomics/psmutils/pull/103
Full Changelog: https://github.com/compomics/psm_utils/compare/v1.1.1...v1.2.0
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v1.1.1
Fixed
io: Fix Sage filename pattern for automatic file type inference by @RalfG in https://github.com/compomics/psm_utils/pull/98io.flashlfq: Fix writing PSMs without protein accession by @RalfG in https://github.com/compomics/psm_utils/pull/98io.flashlfq: Fix column namesPeptide Monoisotopic MassandProtein Accessionby @RalfG in https://github.com/compomics/psm_utils/pull/97io.idxml: Fix parsing if spectra file name not present by @jonasscheid in https://github.com/compomics/psm_utils/pull/99
Full Changelog: https://github.com/compomics/psm_utils/compare/v1.1.0...v1.1.1
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v1.1.0
Added
Peptidoform: Addmodified_sequenceproperty to return the modified sequence in ProForma format, but without charge state.io: Add support for reading and writing FlashLFQ generic TSV files.
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v1.0.1
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).
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v1.0.0
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
io.tsv: Avoid flooding logs when reading a different file format by raising exception when three consecutive rows could not be parsed (in #88)
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v0.9.1
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)
New Contributors
- @julianu made their first contribution in https://github.com/compomics/psm_utils/pull/83
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.9.0...0.9.1
- Python
Published by RalfG over 1 year ago
https://github.com/compomics/psm_utils - v0.9.0
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.14- Remove temporary patch for caching Proforma modification resolvers (now in Pyteomics v4.7.2).
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.8.3...v0.9.0
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.9.0
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.14- Remove temporary patch for caching Proforma modification resolvers (now in Pyteomics v4.7.2).
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.8.3...v0.9.0
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.8.3
Added
- Speed up mass calculation for large datasets by caching Proforma modification resolvers. Temporary patch until implemented in Pyteomics (see levitsky/pyteomics#147).
Changed
- Project infrastructure changes: Switch from Flit to Setuptools, use Ruff for linting on GitHub Actions, fix CodeCov.
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.8.2...v0.8.3
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.8.2
Added
io.proteoscape: Parse filename into PSMrunfield.
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.8.1...v0.8.2
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.8.1
Added
io.proteoscape: AllowProteoScapeReaderinstantiation from Pandas DataFrame and access PSM by index.
Fixed
- Remove accidental print statement.
io.idxml: Fixed parenthesis in type hint
Changed
io.idxml: FilterOPENMS_DATA_PATHwarnings (see compomics/ms2rescore#129 and OpenMS/OpenMS#7418)io.proteoscape: Rename module fromTIMScoretoProteoScape.io.proteoscape: Use correct search engine score (x_corr_scoreinstead oftims_score)
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.8.0...v0.8.1
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.8.0
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)
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.7.4...v0.8.0
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.7.4
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.
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.7.3...v0.7.4
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.7.3
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.
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.7.2...v0.7.3
- Python
Published by RalfG almost 2 years ago
https://github.com/compomics/psm_utils - v0.7.2
Fixed
io.xtandem: Fixed bug when extracting run name (introduced in v0.7.0) (#63)
- Python
Published by RalfG about 2 years ago
https://github.com/compomics/psm_utils - v0.7.1
Added
- Tests: Added tests for
_format_number_as_stringfunction - Tests: Added more test cases for
peptidoform.rename_modificationsfor mass modifications io.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)
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.7.0...v0.7.1
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.7.0
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 files- Docs: 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
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.6.1
Fixed
io.pepxml: Fix reading pepXML files without retention time information.
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.6.0
Added
io: Added newio.pepxmlreader
Fixed
- Docs: Add ionbot to README.rst, fix order in API docs
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.5.0
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 floats- io: Raise
PSMUtilsIOExceptionwhen passed filetype is not known io: 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.org - CI: Upgrade Github action versions
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.4.1
Changelog
Fixed
PSMList: Revert comparison operator change from v0.4.0 that results in brokencalculate_qvalues()method (E711; Numpy array, not singleton)
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.4.0...v0.4.1
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.4.0
Changelog
Added
- Add + operator support for
PSMList - Add utility functions for m/z-mass conversion in new module
psm_utils.utils peptidoform: CatchProFormaErrorand reraisePeptidoformExceptionwith invalid peptidoform in message
Changed
io.msamanda: ChangedREQUIRED_COLUMNSto include new features from the MS Amanda output CSV file (thanks, @louisebuur!)io.peptide_recordCatch theIndexErrorwhen a modification has a position that is out of range for the peptide, and raise anInvalidPeprecModificationErrorinstead. (thanks, @paretje!)- Rename optional dependency
doctodocs - Implement "raise from e" when applicable throughout package
Fixed
- Added missing
io.msamandaAPI docs
New Contributors
- @louisebuur made their first contribution in https://github.com/compomics/psm_utils/pull/37
- @paretje made their first contribution in https://github.com/compomics/psm_utils/pull/39
Full Changelog: https://github.com/compomics/psm_utils/compare/v0.3.1...v0.4.0
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.3.1
Changed
io.sage: Changespectrum_fdrtospectrum_q(crf. lazear/sage#64).
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.3.0
Added
io: Add reader for Sage PSM files.io.mzid: Add reading/writing of PEP and q-values (might not always work yet due to the many ways of encoding these values in mzIdentML; please provide feedback)
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 psmutils, multiple PSMs for the same spectrum can have different values for `retentiontime`.io.mzid.MzidWriter: Write PSM score as cvParamsearch engine specific scoreinstead of userParamscore.io.percolator.PercolatorTabWriter: For PIN-style files: UseSpecIdinstead 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
- Python
Published by RalfG over 2 years ago
https://github.com/compomics/psm_utils - v0.2.3
Fixed
- Fix bug in
io._base_classes(introduced in v0.2.2) - Fix bug in
io.TSVReaderfor reading TSV files with empty protein_list
- Python
Published by RalfG almost 3 years ago
https://github.com/compomics/psm_utils - v0.2.2
Fixed
io.peptide_record: Fix bug where provenance itemfilenamewas not a string- Various minor fixes after linting
- Python
Published by RalfG almost 3 years ago
https://github.com/compomics/psm_utils - v0.2.1
Added
Peptidoform: Addis_modifiedproperty
Fixed
io.mzid: Fix issues when parsing Comet or MSAmanda-generated mzIdentML files and certain fields are missing.
- Python
Published by RalfG about 3 years ago
https://github.com/compomics/psm_utils - v0.2.0
Added
PSM: Addion_mobilityfieldPSMList: Allow slicing with bool arrays (e.g.,psm_df[psm_df["retention_time"] < 2000])rename_modifications: Add support for fixed modifications- Add 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()method - Docs: 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_psmsmethods- Update
.vscode/settings.json - Typing: 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 byXTandemReader- Online: Fix pi-0 diagonal calculation
- Remove obsolete to do comments in code
- Python
Published by RalfG over 3 years ago
https://github.com/compomics/psm_utils - v0.1.0
Added
- Initial version
- Python
Published by RalfG over 3 years ago