Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stability Update #2455

Open
wants to merge 15 commits into
base: master
Choose a base branch
from

Conversation

Alexander-Sol
Copy link
Contributor

@Alexander-Sol Alexander-Sol commented Jan 7, 2025

This PR is intended to address longstanding instability in MetaMorpheus results. Specifically, Calibration can produce different outputs with identical inputs.

Unfortunately, even with this PR, variable results from Calibration were observed

Changes

  • Fixed locks in DataPointAcquisitionEngine

    • I believe this is the main issue. Previously, improper locking led to race conditions when adding to the lists of LabeledDataPoint
  • Created a Resolve method for List and call it in SpectralMatch.ResolveAllAmbiguities

    • Previously, the first element of the BioPolymerWithSetModsToMatchingFragments dictionary was used. As dictionaries aren't ordered, this could lead to stochastic results
    • CrosslinkSpectralMatch keeps the legacy version of ResolveAllAmbiguities because I don't understand how XL search works and the new method broke things
  • Changed MsDataFileManager to use ConcurrentDictionary to eliminate warnings about race conditions caused by asynchronous loading

    • (To be clear, I don't think race conditions could have arisen with how FileManagers are currently used, but better safe than sorry)

Copy link

codecov bot commented Jan 7, 2025

Codecov Report

Attention: Patch coverage is 95.34884% with 4 lines in your changes missing coverage. Please review.

Project coverage is 93.90%. Comparing base (e6cf8e7) to head (8833d48).

Files with missing lines Patch % Lines
...ineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs 92.30% 0 Missing and 3 partials ⚠️
MetaMorpheus/TaskLayer/MetaMorpheusTask.cs 0.00% 1 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #2455   +/-   ##
=======================================
  Coverage   93.89%   93.90%           
=======================================
  Files         146      146           
  Lines       22206    22255   +49     
  Branches     3059     3067    +8     
=======================================
+ Hits        20851    20898   +47     
  Misses        906      906           
- Partials      449      451    +2     
Files with missing lines Coverage Δ
...ineLayer/Calibration/DataPointAcquisitionEngine.cs 94.84% <100.00%> (ø)
...heus/EngineLayer/FdrAnalysis/SpectralMatchGroup.cs 86.66% <100.00%> (+0.95%) ⬆️
MetaMorpheus/EngineLayer/PsmTsv/PsmTsvWriter.cs 97.62% <100.00%> (+0.08%) ⬆️
.../SpectralLibrarySearch/CrosslinkLibrarySpectrum.cs 94.38% <100.00%> (ø)
MetaMorpheus/EngineLayer/SpectralMatch.cs 97.83% <100.00%> (+0.01%) ⬆️
...pheus/TaskLayer/CalibrationTask/CalibrationTask.cs 88.73% <100.00%> (ø)
MetaMorpheus/TaskLayer/MyFileManager.cs 96.55% <100.00%> (+0.89%) ⬆️
MetaMorpheus/TaskLayer/SearchTask/SearchTask.cs 95.84% <100.00%> (+0.01%) ⬆️
MetaMorpheus/TaskLayer/MetaMorpheusTask.cs 89.13% <0.00%> (ø)
...ineLayer/CrosslinkSearch/CrosslinkSpectralMatch.cs 95.98% <92.30%> (-0.38%) ⬇️

trishorts
trishorts previously approved these changes Jan 17, 2025
nbollis
nbollis previously approved these changes Jan 23, 2025
pcruzparri
pcruzparri previously approved these changes Jan 27, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants