Skip to content

Remove dead code: 150 unused classes, -22K lines#7

Open
ypriverol wants to merge 1 commit intodevfrom
refactor/dead-code-removal
Open

Remove dead code: 150 unused classes, -22K lines#7
ypriverol wants to merge 1 commit intodevfrom
refactor/dead-code-removal

Conversation

@ypriverol
Copy link
Copy Markdown
Member

@ypriverol ypriverol commented Apr 13, 2026

Summary

  • Removed 150 unused classes (~22,131 lines) that are not referenced by the core MSGF+ search pipeline
  • Deleted 10 entirely dead packages: ims/, ipa/, msgf2d/, msdictionary/, mstag/, scripts/, msutil/test/, msgf/test/, msgf/analysis/
  • Cleaned 8 mixed packages: removed standalone scripts, legacy format parsers (InsPecT, Mascot, PepXML, OMSSA), deprecated UI entry points (MSGF, MSGFLib, MSProfile, PRMSpecGen), and unused utility classes
  • Kept core pipeline intact: all 5 essential misc/ utilities (ProgressData, ProgressReporter, ThreadPoolExecutorWithExceptions, ExceptionCapturer, TextParsingUtils) preserved

Benchmark (vs original master baseline)

Metric Baseline (master) Dead Code Removal (dev) Change
Wall Time 1,004s 957s -4.7%
PSMs @ 1% FDR 6,654 6,936 +4.2%
Output Size 176M 143M -18.8%
Score Completeness 100% 100%
JAR Size 39.4MB 39.0MB -1.0%

Note: The runtime improvement (-4.7%) and PSM gain (+4.2%) come from PRs #4-5 already merged into dev, not from this dead code removal. This PR is a pure code hygiene change that reduces JAR size and improves maintainability.

Test plan

  • mvn compile — clean compilation
  • mvn test — 119 tests run, 0 failures, 0 errors
  • Benchmark — no regression, identical results to dev branch
  • No functional changes to the core MSGF+ pipeline

🤖 Generated with Claude Code

Remove standalone scripts, legacy tools, and unused classes that are
not referenced by the core MSGF+ search pipeline, reducing codebase
by ~22,000 lines.

Deleted entire packages:
- ims/ (9 files) — legacy IMS utilities
- ipa/ (5 files) — unused isotope pattern analysis
- msgf2d/ (8 files) — abandoned 2D scoring experiment
- msdictionary/ (7 files) — unused genome dictionary tool
- mstag/ (3 files) — unused sequence tagging
- scripts/ (6 files) — standalone CLI utilities
- msutil/test/ (3 files) — misplaced test classes
- msgf/test/ (2 files) — legacy test stubs
- msgf/analysis/ (1 file) — unused ROC generator

Cleaned mixed packages:
- misc/: removed 59 standalone scripts, kept 5 core utilities
- msgf/: removed 6 unused graph/scoring classes
- msutil/: removed 9 unused filter/annotation classes
- msdbsearch/: removed 4 standalone DB tools
- parser/: removed 9 legacy format parsers (InsPecT, Mascot, etc.)
- ui/: removed 6 legacy entry points (MSGF, MSGFLib, etc.)
- mzid/: removed 1 unused adapter stub
- msscorer/: removed 1 unused stats class
- suffixarray/: removed 1 unused mass array class

Also removed dead test methods and cleaned dangling imports.
Tests: 119 run, 0 failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 13, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5ca4769d-8a43-4e07-89b8-88300b538c90

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/dead-code-removal

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Removes large amounts of dead/legacy code that’s not used by the core MSGF+ pipeline, reducing maintenance surface area and slightly shrinking the build output.

Changes:

  • Deleted numerous unused CLI scripts, misc utilities, and ad-hoc “test” drivers under src/main/java.
  • Removed legacy/unused parsers and supporting classes (e.g., OMSSA/MSGFDB-related and other analysis helpers).
  • Cleaned up ParamManager by removing a deprecated main entry point and its dependency on the legacy MSGF UI class.

Reviewed changes

Copilot reviewed 141 out of 155 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
src/main/java/edu/ucsd/msjava/scripts/SpecFileValidator.java Removed unused standalone validator script.
src/main/java/edu/ucsd/msjava/scripts/SelectSpectra.java Removed unused standalone spectra-selection script.
src/main/java/edu/ucsd/msjava/scripts/MergeSpectra.java Removed unused standalone spectra-merging script.
src/main/java/edu/ucsd/msjava/scripts/GetDBInfo.java Removed unused standalone FASTA stats script.
src/main/java/edu/ucsd/msjava/scripts/CountSpectra.java Removed unused standalone spectra-count script.
src/main/java/edu/ucsd/msjava/scripts/AgilentCyclicSpecPreProcess.java Removed unused standalone preprocessing script.
src/main/java/edu/ucsd/msjava/parser/SortedSpectraIterator.java Removed unused iterator utility.
src/main/java/edu/ucsd/msjava/parser/SearchParameterParser.java Removed unused parameter parser stub.
src/main/java/edu/ucsd/msjava/parser/PSMList.java Removed legacy PSM container/utilities not used in core pipeline.
src/main/java/edu/ucsd/msjava/parser/OMSSAParser.java Removed legacy OMSSA result parser.
src/main/java/edu/ucsd/msjava/parser/MzXMLToMgfConverter.java Removed unused mzXML→MGF converter.
src/main/java/edu/ucsd/msjava/parser/MSGappedDictionaryParser.java Removed unused MS-Gapped-Dictionary parser.
src/main/java/edu/ucsd/msjava/parser/MSGappedDictionaryPSM.java Removed unused MS-Gapped-Dictionary PSM type.
src/main/java/edu/ucsd/msjava/parser/MSGFDBParser.java Removed legacy MSGFDB text parser.
src/main/java/edu/ucsd/msjava/parser/InsPecTPSM.java Removed legacy InsPecT PSM type.
src/main/java/edu/ucsd/msjava/params/ParamManager.java Removed deprecated main and legacy MSGF dependency.
src/main/java/edu/ucsd/msjava/mzid/MzIdAdapter.java Removed unused mzIdentML adapter stub.
src/main/java/edu/ucsd/msjava/msutil/test/SpectraTest.java Removed ad-hoc main-based test driver.
src/main/java/edu/ucsd/msjava/msutil/test/MzXMLSpectraMapTest.java Removed ad-hoc main-based test driver.
src/main/java/edu/ucsd/msjava/msutil/test/MzXMLSpectraIteratorTest.java Removed ad-hoc main-based test driver.
src/main/java/edu/ucsd/msjava/msutil/TopNFilter.java Removed unused spectrum reshape/filter implementation.
src/main/java/edu/ucsd/msjava/msutil/SpectrumTester.java Removed ad-hoc spectrum parsing tester.
src/main/java/edu/ucsd/msjava/msutil/SpectrumRecalibrator.java Removed incomplete/unused recalibration implementation.
src/main/java/edu/ucsd/msjava/msutil/SpectrumAnnotator.java Removed unused annotation helper.
src/main/java/edu/ucsd/msjava/msutil/ScoringFunction.java Removed unused scoring interface.
src/main/java/edu/ucsd/msjava/msutil/NominalMassAASet.java Removed unused AA-set utility.
src/main/java/edu/ucsd/msjava/msutil/IntMassAASet.java Removed unused AA-set utility.
src/main/java/edu/ucsd/msjava/msutil/GappedPeptide.java Removed unused gapped peptide representation.
src/main/java/edu/ucsd/msjava/msutil/CompositionAASet.java Removed unused AA-set utility.
src/main/java/edu/ucsd/msjava/mstag/TagTester.java Removed ad-hoc tag testing code.
src/main/java/edu/ucsd/msjava/mstag/Tag.java Removed unused tag representation.
src/main/java/edu/ucsd/msjava/msscorer/ListStat.java Removed unused statistics helper.
src/main/java/edu/ucsd/msjava/msgf2d/TestMSGF2D.java Removed unused test stub.
src/main/java/edu/ucsd/msjava/msgf2d/ScoreBound2D.java Removed unused 2D scoring bounds helper.
src/main/java/edu/ucsd/msjava/msgf2d/CombinePairedSpectra.java Removed unused 2D workflow helper.
src/main/java/edu/ucsd/msjava/msgf2d/BacktrackTable2D.java Removed unused 2D backtracking structure.
src/main/java/edu/ucsd/msjava/msgf2d/BacktrackPointer2D.java Removed unused 2D backtracking pointer.
src/main/java/edu/ucsd/msjava/msgf/test/MSGFValidation.java Removed unused/buggy validation CLI.
src/main/java/edu/ucsd/msjava/msgf/SpectrumGraphNode.java Removed unused graph node type.
src/main/java/edu/ucsd/msjava/msgf/ScoredSpectrumSumHP.java Removed unused specialization.
src/main/java/edu/ucsd/msjava/msgf/ReachableNode.java Removed unused reachable-node cache holder.
src/main/java/edu/ucsd/msjava/msgf/PercolatorAdapter.java Removed unused adapter stub.
src/main/java/edu/ucsd/msjava/msgf/LengthPredictor.java Removed unused heuristic predictor.
src/main/java/edu/ucsd/msjava/msgf/DeNovoSequencer.java Removed unused de novo sequencing implementation.
src/main/java/edu/ucsd/msjava/msgf/AminoAcidGraph.java Removed unused graph specialization.
src/main/java/edu/ucsd/msjava/msdictionary/TestMSDictionary.java Removed unused test driver.
src/main/java/edu/ucsd/msjava/msdictionary/ProteinLocator.java Removed unused analysis tool.
src/main/java/edu/ucsd/msjava/msdictionary/MSDicLauncher.java Removed deprecated MS-Dictionary launcher.
src/main/java/edu/ucsd/msjava/msdictionary/GenomeLocator.java Removed unused genome locator utility.
src/main/java/edu/ucsd/msjava/msdictionary/Codon.java Removed unused codon translation table.
src/main/java/edu/ucsd/msjava/msdbsearch/ShuffleDB.java Removed unused database shuffling utility.
src/main/java/edu/ucsd/msjava/msdbsearch/ReverseLibDB.java Removed unused database reverse/concat utility.
src/main/java/edu/ucsd/msjava/msdbsearch/MakePairedSpectra.java Removed unused paired-spectra tool.
src/main/java/edu/ucsd/msjava/msdbsearch/FilterDatabase.java Removed unused database filtering tool.
src/main/java/edu/ucsd/msjava/misc/VennDiagram.java Removed unused results comparison CLI.
src/main/java/edu/ucsd/msjava/misc/TrainScoringParameters.java Removed unused training helper.
src/main/java/edu/ucsd/msjava/misc/TopDownAnalysis.java Removed unused analysis stub.
src/main/java/edu/ucsd/msjava/misc/SuffixArrayTest.java Removed unused suffix-array test tool.
src/main/java/edu/ucsd/msjava/misc/SplitMgf.java Removed unused MGF splitting CLI.
src/main/java/edu/ucsd/msjava/misc/SplitFasta.java Removed unused FASTA splitting CLI.
src/main/java/edu/ucsd/msjava/misc/SpectraSTToTSV.java Removed unused format conversion CLI.
src/main/java/edu/ucsd/msjava/misc/SpectraSTToMSGFInput.java Removed unused format conversion CLI.
src/main/java/edu/ucsd/msjava/misc/RunOMSSAOnCCMS.java Removed unused OMSSA grid helper.
src/main/java/edu/ucsd/msjava/misc/RunMSGFDBOnGrid.java Removed commented-out/unused grid runner.
src/main/java/edu/ucsd/msjava/misc/PepIdxToFasta.java Removed unused conversion CLI.
src/main/java/edu/ucsd/msjava/misc/ParamToTxt.java Removed unused parameter conversion CLI.
src/main/java/edu/ucsd/msjava/misc/PEMMRProcessor.java Removed unused TSV post-processor.
src/main/java/edu/ucsd/msjava/misc/MzXMLToMgf.java Removed duplicate mzXML→MGF CLI.
src/main/java/edu/ucsd/msjava/misc/MultiThreadExercise.java Removed unrelated threading exercise code.
src/main/java/edu/ucsd/msjava/misc/MergeTargetDecoyFiles.java Removed unused results-merging helper.
src/main/java/edu/ucsd/msjava/misc/MassCalc.java Removed interactive mass calculator CLI.
src/main/java/edu/ucsd/msjava/misc/MakePrefixDB.java Removed unused DB transformation tool.
src/main/java/edu/ucsd/msjava/misc/MSGFDBToQSpec.java Removed unused result conversion tool.
src/main/java/edu/ucsd/msjava/misc/MSGFDBToInspect.java Removed unused result conversion tool.
src/main/java/edu/ucsd/msjava/misc/MS2ToMgf.java Removed unused MS2→MGF converter.
src/main/java/edu/ucsd/msjava/misc/ISBETDAnalysis.java Removed unused analysis tool.
src/main/java/edu/ucsd/msjava/misc/IPA.java Removed unused IPA helper (distinct from edu.ucsd.msjava.ipa).
src/main/java/edu/ucsd/msjava/misc/GetSearchParams.java Removed unused CLI stub.
src/main/java/edu/ucsd/msjava/misc/GetProteinLength.java Removed unused conversion helper.
src/main/java/edu/ucsd/msjava/misc/FindPSMIntersection.java Removed unused intersection-finding tool.
src/main/java/edu/ucsd/msjava/misc/FilteringEfficiency.java Removed unused analysis code.
src/main/java/edu/ucsd/msjava/misc/FileFilter.java Removed file filter helpers only used by deleted tools.
src/main/java/edu/ucsd/msjava/misc/Deconvolution.java Removed unused spectrum deconvolution CLI.
src/main/java/edu/ucsd/msjava/misc/DatToTxt.java Removed unused Mascot .dat conversion tool.
src/main/java/edu/ucsd/msjava/misc/CountSequestIDs.java Removed unused stub.
src/main/java/edu/ucsd/msjava/misc/CountID.java Removed unused ID counting CLI.
src/main/java/edu/ucsd/msjava/misc/ConvertToMgf.java Removed unused “convert to MGF” CLI.
src/main/java/edu/ucsd/msjava/misc/ControlNew.java Removed unused dataset-specific tool.
src/main/java/edu/ucsd/msjava/misc/CompositionFirst.java Removed unused stub.
src/main/java/edu/ucsd/msjava/misc/CompareSearchResults.java Removed unused result comparison tool.
src/main/java/edu/ucsd/msjava/misc/CompactSATest.java Removed unused suffix-array read test tool.
src/main/java/edu/ucsd/msjava/misc/CompGraphPaper.java Removed unused analysis script.
src/main/java/edu/ucsd/msjava/misc/Clauser.java Removed unused conversion helper.
src/main/java/edu/ucsd/msjava/misc/ChargePrediction.java Removed unused experimental tool.
src/main/java/edu/ucsd/msjava/misc/CalcFastaDBSize.java Removed duplicate/legacy FASTA stats tool.
src/main/java/edu/ucsd/msjava/misc/AnnotatedMgfToMSGFInput.java Removed unused conversion CLI.
src/main/java/edu/ucsd/msjava/ipa/PSM.java Removed unused IPA model class.
src/main/java/edu/ucsd/msjava/ipa/MSGFPlusResultSet.java Removed unused IPA result wrapper.
src/main/java/edu/ucsd/msjava/ipa/MS1SpectraMap.java Removed unused IPA MS1 map.
src/main/java/edu/ucsd/msjava/ipa/IPA.java Removed unused IPA processing pipeline.
src/main/java/edu/ucsd/msjava/ipa/Feature.java Removed unused IPA feature model.
src/main/java/edu/ucsd/msjava/ims/Summarize.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/SplitDta.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/OptimizeCE.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/Misc.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/MaskSpectra.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/GetTheBestPerScan.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/GetTheBestPerPeptide.java Removed unused IMS utility.
src/main/java/edu/ucsd/msjava/ims/DtaToMSGFInputDB.java Removed unused IMS conversion tool.
src/main/java/edu/ucsd/msjava/ims/DtaToMSGFInput.java Removed unused IMS conversion tool.
Comments suppressed due to low confidence (1)

src/main/java/edu/ucsd/msjava/params/ParamManager.java:1

  • The PR description frames this as “pure code hygiene” with “no functional changes”, but removing the deprecated public static void main(String[]) entry point from ParamManager is a functional/API behavior change for any downstream users that invoked this class directly (even if strongly discouraged). If maintaining backward compatibility matters, consider keeping a minimal main that either delegates to the supported CLI entry point (e.g., MSGFPlus) or prints a clear deprecation message and exits; otherwise, explicitly call this out as a breaking change in the PR description/release notes.
package edu.ucsd.msjava.params;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 4 to 5
import edu.ucsd.msjava.sequences.Constants;
import edu.ucsd.msjava.ui.MSGF;
import edu.ucsd.msjava.ui.MSGFPlus;
Copy link

Copilot AI Apr 13, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR description frames this as “pure code hygiene” with “no functional changes”, but removing the deprecated public static void main(String[]) entry point from ParamManager is a functional/API behavior change for any downstream users that invoked this class directly (even if strongly discouraged). If maintaining backward compatibility matters, consider keeping a minimal main that either delegates to the supported CLI entry point (e.g., MSGFPlus) or prints a clear deprecation message and exits; otherwise, explicitly call this out as a breaking change in the PR description/release notes.

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants