Conversation
…lomics Comprehensive catalog of standalone pyopenms CLI tools organized into 13 categories, scored by popularity, uniqueness, and utility. Includes niche paper-level tools for phosphoproteomics, HDX-MS, XL-MS, metaproteomics, lipidomics, fluxomics, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive collection of standalone CLI tools for proteomics and metabolomics, each self-contained with argparse CLI, tests, and README: Spectrum Analysis (15): theoretical_spectrum_generator, spectrum_similarity_scorer, spectrum_annotator, xic_extractor, tic_bpc_calculator, neutral_loss_scanner, etc. Peptide & Protein (16): peptide_property_calculator, peptide_uniqueness_checker, protein_coverage_calculator, modification_mass_calculator, transition_list_generator, etc. FASTA Database (8): fasta_subset_extractor, contaminant_database_merger, fasta_statistics_reporter, fasta_cleaner, fasta_decoy_validator, etc. File Conversion (10): mzml_to_mgf_converter, spectral_library_builder, consensus_map_to_matrix, idxml_to_tsv_exporter, sirius_exporter, etc. QC & Metrics (8): lc_ms_qc_reporter, mzqc_generator, mass_error_distribution_analyzer, precursor_isolation_purity, acquisition_rate_analyzer, etc. Metabolomics (29): adduct_calculator, molecular_formula_finder, mass_decomposition_tool, drug_metabolite_screener, kendrick_mass_defect_analyzer, van_krevelen_data_generator, spectral_entropy_scorer, formula_validator_golden_rules, blank_subtraction_tool, etc. Niche Proteomics (22): phosphosite_class_filter, phospho_motif_analyzer, hdx_deuterium_uptake, xl_distance_validator, metapeptide_lca_assigner, immunopeptidome_qc, silac_halflife_calculator, scp_reporter_qc, etc. Specialized (14): crosslink_mass_calculator, glycopeptide_mass_calculator, sequence_tag_generator, peptide_mass_fingerprint, etc. RNA (3): rna_mass_calculator, rna_digest, rna_fragment_spectrum_generator Statistics (7): missing_value_imputation, differential_expression_tester, etc. Integration (7): maxquant_result_converter, diann_result_converter, etc. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reorganize 123 tools into topic sub-directories within proteomics/ and metabolomics/: Proteomics (89 tools across 12 topics): spectrum_analysis (7), peptide_analysis (12), protein_analysis (5), fasta_utils (8), file_conversion (8), quality_control (15), targeted_proteomics (7), identification (7), ptm_analysis (5), structural_proteomics (5), specialized (7), rna (3) Metabolomics (34 tools across 8 topics): formula_tools (8), feature_processing (7), spectral_analysis (6), compound_annotation (4), drug_metabolism (2), isotope_labeling (2), lipidomics (2), export (3) Removed 20 tools that had zero pyopenms usage (pure stats/math or format parsers that don't need mass spectrometry libraries): volcano_plot_data_generator, sample_correlation_calculator, biomarker_panel_roc, maxquant_result_converter, diann_result_converter, fragpipe_result_converter, missing_value_imputation, etc. Updated AGENTS.md and CLAUDE.md to reflect new 3-level directory structure: scripts/<domain>/<topic>/<tool_name>/ Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Rewrite README.md: explain repo purpose, why it exists, how to contribute agentic, AI-generated disclaimer, tool structure documentation, and full catalog of all 123 tools organized by topic - Update AGENTS.md: use "tool" terminology throughout, add rule against non-pyopenms tools - Update CLAUDE.md: use "tool" terminology, update paths for 3-level structure Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR expands the repository’s “tool catalog” by adding many new standalone pyopenms-based tools (plus per-tool docs/deps) and establishes a consistent per-tool testing pattern and directory taxonomy documentation.
Changes:
- Added README/requirements and pytest suites for a large set of new proteomics/metabolomics tools.
- Introduced several new tool implementations (e.g., mzML subsetter, MGF→mzML converter, ML feature exporter, FASTA utilities, RDBE calculator).
- Updated repository contributor/docs guidance (topics-based tool layout, example commands).
Reviewed changes
Copilot reviewed 273 out of 602 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/proteomics/peptide_analysis/modification_mass_calculator/tests/test_modification_mass_calculator.py | Adds unit tests for modification search and modified peptide mass calculations. |
| scripts/proteomics/peptide_analysis/modification_mass_calculator/tests/conftest.py | Adds pyopenms availability gating and test-time sys.path adjustment. |
| scripts/proteomics/peptide_analysis/modification_mass_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/peptide_analysis/modification_mass_calculator/README.md | Documents CLI usage for modification mass calculator. |
| scripts/proteomics/peptide_analysis/isoelectric_point_calculator/tests/test_isoelectric_point_calculator.py | Adds unit tests for pI and charge curve calculations. |
| scripts/proteomics/peptide_analysis/isoelectric_point_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/peptide_analysis/isoelectric_point_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/peptide_analysis/isoelectric_point_calculator/README.md | Documents CLI usage and available pKa sets. |
| scripts/proteomics/peptide_analysis/charge_state_predictor/tests/test_charge_state_predictor.py | Adds unit tests for basic-site counting and charge distribution prediction. |
| scripts/proteomics/peptide_analysis/charge_state_predictor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/peptide_analysis/charge_state_predictor/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/peptide_analysis/charge_state_predictor/README.md | Documents CLI usage for charge state prediction. |
| scripts/proteomics/peptide_analysis/amino_acid_composition_analyzer/tests/test_amino_acid_composition_analyzer.py | Adds unit tests for AA composition analysis and FASTA processing. |
| scripts/proteomics/peptide_analysis/amino_acid_composition_analyzer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/peptide_analysis/amino_acid_composition_analyzer/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/peptide_analysis/amino_acid_composition_analyzer/README.md | Documents CLI usage for AA composition analysis. |
| scripts/proteomics/identification/sequence_tag_generator/tests/test_sequence_tag_generator.py | Adds tests for sequence tagging from peak differences and TSV output. |
| scripts/proteomics/identification/sequence_tag_generator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/sequence_tag_generator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/sequence_tag_generator/README.md | Documents CLI usage for de novo sequence tag generation. |
| scripts/proteomics/identification/semi_tryptic_peptide_finder/tests/test_semi_tryptic_peptide_finder.py | Adds tests for tryptic classification and TSV output. |
| scripts/proteomics/identification/semi_tryptic_peptide_finder/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/semi_tryptic_peptide_finder/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/semi_tryptic_peptide_finder/README.md | Documents CLI usage for semi-tryptic classification. |
| scripts/proteomics/identification/psm_feature_extractor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/psm_feature_extractor/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/psm_feature_extractor/README.md | Documents CLI usage and expected TSV format for PSM feature extraction. |
| scripts/proteomics/identification/peptide_spectral_match_validator/tests/test_peptide_spectral_match_validator.py | Adds tests for theoretical spectrum generation, validation, batching, and TSV output. |
| scripts/proteomics/identification/peptide_spectral_match_validator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/peptide_spectral_match_validator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/peptide_spectral_match_validator/README.md | Documents CLI usage for PSM validation. |
| scripts/proteomics/identification/mzml_spectrum_subsetter/tests/test_mzml_spectrum_subsetter.py | Adds tests for mzML subsetting behavior and RT preservation. |
| scripts/proteomics/identification/mzml_spectrum_subsetter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/mzml_spectrum_subsetter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/mzml_spectrum_subsetter/mzml_spectrum_subsetter.py | Implements mzML scan-index subsetting and synthetic mzML generator. |
| scripts/proteomics/identification/mzml_spectrum_subsetter/README.md | Documents CLI usage for mzML spectrum subsetting. |
| scripts/proteomics/identification/mzml_metadata_extractor/tests/test_mzml_metadata_extractor.py | Adds tests for extracting/formatting mzML metadata and JSON writing. |
| scripts/proteomics/identification/mzml_metadata_extractor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/mzml_metadata_extractor/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/identification/mzml_metadata_extractor/README.md | Documents CLI usage for mzML metadata extraction. |
| scripts/proteomics/identification/feature_detection_proteomics/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/identification/feature_detection_proteomics/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/mztab_summarizer/tests/test_mztab_summarizer.py | Adds tests for mzTab parsing, summarization, and TSV output. |
| scripts/proteomics/file_conversion/mztab_summarizer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/mztab_summarizer/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/mztab_summarizer/README.md | Documents install and CLI usage for mzTab summarization. |
| scripts/proteomics/file_conversion/mzml_to_mgf_converter/tests/test_mzml_to_mgf_converter.py | Adds tests for synthetic mzML creation and mzML→MGF conversion. |
| scripts/proteomics/file_conversion/mzml_to_mgf_converter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/mzml_to_mgf_converter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/mzml_to_mgf_converter/README.md | Documents install and CLI usage for mzML→MGF conversion. |
| scripts/proteomics/file_conversion/ms_data_to_csv_exporter/tests/test_ms_data_to_csv_exporter.py | Adds tests for exporting mzML peaks/summaries and featureXML exports. |
| scripts/proteomics/file_conversion/ms_data_to_csv_exporter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/ms_data_to_csv_exporter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/ms_data_to_csv_exporter/README.md | Documents install and CLI usage for mzML/featureXML exports. |
| scripts/proteomics/file_conversion/ms_data_ml_exporter/tests/test_ms_data_ml_exporter.py | Adds tests for ML feature extraction and CSV writing. |
| scripts/proteomics/file_conversion/ms_data_ml_exporter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/ms_data_ml_exporter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/ms_data_ml_exporter/ms_data_ml_exporter.py | Implements per-spectrum ML feature extraction and CSV export. |
| scripts/proteomics/file_conversion/ms_data_ml_exporter/README.md | Documents CLI usage for ML matrix export. |
| scripts/proteomics/file_conversion/mgf_to_mzml_converter/tests/test_mgf_to_mzml_converter.py | Adds tests for MGF parsing and MGF→mzML conversion behavior. |
| scripts/proteomics/file_conversion/mgf_to_mzml_converter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/mgf_to_mzml_converter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/mgf_to_mzml_converter/mgf_to_mzml_converter.py | Implements MGF parsing and conversion to mzML. |
| scripts/proteomics/file_conversion/mgf_to_mzml_converter/README.md | Documents install and CLI usage for MGF→mzML conversion. |
| scripts/proteomics/file_conversion/idxml_to_tsv_exporter/tests/test_idxml_to_tsv_exporter.py | Adds tests for generating synthetic idXML and exporting TSV. |
| scripts/proteomics/file_conversion/idxml_to_tsv_exporter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/idxml_to_tsv_exporter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/idxml_to_tsv_exporter/README.md | Documents install and CLI usage for idXML→TSV export. |
| scripts/proteomics/file_conversion/featurexml_merger/tests/test_featurexml_merger.py | Adds tests for featureXML merging and RT sorting. |
| scripts/proteomics/file_conversion/featurexml_merger/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/featurexml_merger/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/featurexml_merger/featurexml_merger.py | Implements featureXML loading/merging/saving and synthetic data generation. |
| scripts/proteomics/file_conversion/featurexml_merger/README.md | Documents install and CLI usage for featureXML merging. |
| scripts/proteomics/file_conversion/consensus_map_to_matrix/tests/test_consensus_map_to_matrix.py | Adds tests for consensusXML→matrix conversion. |
| scripts/proteomics/file_conversion/consensus_map_to_matrix/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/file_conversion/consensus_map_to_matrix/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/file_conversion/consensus_map_to_matrix/README.md | Documents install and CLI usage for consensus matrix generation. |
| scripts/proteomics/fasta_utils/fasta_taxonomy_splitter/tests/test_fasta_taxonomy_splitter.py | Adds tests for taxonomy extraction, splitting, and filename sanitization. |
| scripts/proteomics/fasta_utils/fasta_taxonomy_splitter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_taxonomy_splitter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_taxonomy_splitter/fasta_taxonomy_splitter.py | Implements taxonomy extraction and FASTA splitting. |
| scripts/proteomics/fasta_utils/fasta_taxonomy_splitter/README.md | Documents install and CLI usage for taxonomy splitting. |
| scripts/proteomics/fasta_utils/fasta_subset_extractor/tests/test_fasta_subset_extractor.py | Adds tests for FASTA filtering by accession/keyword/length and roundtrip extraction. |
| scripts/proteomics/fasta_utils/fasta_subset_extractor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_subset_extractor/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_subset_extractor/README.md | Documents install and CLI usage for subset extraction. |
| scripts/proteomics/fasta_utils/fasta_statistics_reporter/tests/test_fasta_statistics_reporter.py | Adds tests for FASTA statistics, AA frequency, and JSON output. |
| scripts/proteomics/fasta_utils/fasta_statistics_reporter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_statistics_reporter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_statistics_reporter/README.md | Documents install and CLI usage for FASTA statistics reporting. |
| scripts/proteomics/fasta_utils/fasta_merger/tests/test_fasta_merger.py | Adds tests for FASTA merge and deduplication modes. |
| scripts/proteomics/fasta_utils/fasta_merger/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_merger/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_merger/fasta_merger.py | Implements FASTA merging with deduplication by identifier/sequence. |
| scripts/proteomics/fasta_utils/fasta_merger/README.md | Documents install and CLI usage for FASTA merging. |
| scripts/proteomics/fasta_utils/fasta_in_silico_digest_stats/tests/test_fasta_in_silico_digest_stats.py | Adds tests for in-silico digestion stats and TSV output. |
| scripts/proteomics/fasta_utils/fasta_in_silico_digest_stats/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_in_silico_digest_stats/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_in_silico_digest_stats/README.md | Documents install and CLI usage for digest statistics. |
| scripts/proteomics/fasta_utils/fasta_decoy_validator/tests/test_fasta_decoy_validator.py | Adds tests for decoy detection, prefix validation, and reversed matching. |
| scripts/proteomics/fasta_utils/fasta_decoy_validator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_decoy_validator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_decoy_validator/README.md | Documents install and CLI usage for decoy validation. |
| scripts/proteomics/fasta_utils/fasta_cleaner/tests/test_fasta_cleaner.py | Adds tests for FASTA cleaning steps and roundtrips. |
| scripts/proteomics/fasta_utils/fasta_cleaner/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/fasta_cleaner/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/fasta_cleaner/README.md | Documents install and CLI usage for FASTA cleaning. |
| scripts/proteomics/fasta_utils/contaminant_database_merger/tests/test_contaminant_database_merger.py | Adds tests for builtin contaminant merge/deduplication and custom contaminants. |
| scripts/proteomics/fasta_utils/contaminant_database_merger/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/proteomics/fasta_utils/contaminant_database_merger/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/proteomics/fasta_utils/contaminant_database_merger/README.md | Documents install and CLI usage for contaminant merging. |
| scripts/metabolomics/spectral_analysis/spectral_entropy_scorer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/spectral_entropy_scorer/requirements.txt | Declares dependencies for spectral entropy scoring tool. |
| scripts/metabolomics/spectral_analysis/spectral_entropy_scorer/README.md | Documents install and CLI usage for entropy scoring. |
| scripts/metabolomics/spectral_analysis/neutral_loss_scanner/tests/test_neutral_loss_scanner.py | Adds tests for neutral loss scanning and output generation. |
| scripts/metabolomics/spectral_analysis/neutral_loss_scanner/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/neutral_loss_scanner/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/spectral_analysis/neutral_loss_scanner/README.md | Documents CLI usage for neutral loss scanning. |
| scripts/metabolomics/spectral_analysis/massql_query_tool/tests/test_massql_query_tool.py | Adds tests for parsing/executing MassQL-style queries on experiments. |
| scripts/metabolomics/spectral_analysis/massql_query_tool/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/massql_query_tool/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_scorer/tests/test_isotope_pattern_scorer.py | Adds tests for isotope pattern parsing, theory generation, and scoring. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_scorer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_scorer/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_matcher/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_matcher/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_fit_scorer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_fit_scorer/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/spectral_analysis/isotope_pattern_fit_scorer/README.md | Documents CLI usage and output fields for isotope fit scoring. |
| scripts/metabolomics/lipidomics/lipid_species_resolver/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/lipidomics/lipid_species_resolver/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/lipidomics/lipid_species_resolver/README.md | Documents CLI usage and expected input/output for lipid resolving. |
| scripts/metabolomics/lipidomics/lipid_ecn_rt_predictor/tests/test_lipid_ecn_rt_predictor.py | Adds tests for ECN computation, calibration models, prediction, and full pipeline. |
| scripts/metabolomics/lipidomics/lipid_ecn_rt_predictor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/lipidomics/lipid_ecn_rt_predictor/requirements.txt | Declares dependencies for ECN-RT predictor. |
| scripts/metabolomics/lipidomics/lipid_ecn_rt_predictor/README.md | Documents CLI usage and input formats for ECN-RT prediction. |
| scripts/metabolomics/isotope_labeling/mid_natural_abundance_corrector/tests/test_mid_natural_abundance_corrector.py | Adds tests for tracer atom counts, correction matrix, and MID correction behavior. |
| scripts/metabolomics/isotope_labeling/mid_natural_abundance_corrector/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/isotope_labeling/mid_natural_abundance_corrector/requirements.txt | Declares dependencies for MID correction tool. |
| scripts/metabolomics/isotope_labeling/mid_natural_abundance_corrector/README.md | Documents CLI usage and TSV formats for MID correction. |
| scripts/metabolomics/isotope_labeling/isotope_label_detector/tests/test_isotope_label_detector.py | Adds tests for element counting and labeled feature pairing. |
| scripts/metabolomics/isotope_labeling/isotope_label_detector/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/isotope_labeling/isotope_label_detector/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/isotope_labeling/isotope_label_detector/README.md | Documents CLI usage and TSV formats for label detection. |
| scripts/metabolomics/formula_tools/rdbe_calculator/tests/test_rdbe_calculator.py | Adds unit tests covering RDBE calculations and batch outputs. |
| scripts/metabolomics/formula_tools/rdbe_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/rdbe_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/rdbe_calculator/rdbe_calculator.py | Implements element parsing via pyopenms and RDBE calculations + TSV batch CLI. |
| scripts/metabolomics/formula_tools/rdbe_calculator/README.md | Documents install, input/output, and CLI usage for RDBE tool. |
| scripts/metabolomics/formula_tools/molecular_formula_finder/tests/test_molecular_formula_finder.py | Adds tests for formula enumeration and golden-rule filters. |
| scripts/metabolomics/formula_tools/molecular_formula_finder/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/molecular_formula_finder/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/molecular_formula_finder/README.md | Documents CLI usage for formula enumeration with constraints. |
| scripts/metabolomics/formula_tools/metabolite_formula_annotator/tests/test_metabolite_formula_annotator.py | Adds tests for mass→formula candidate enumeration and isotope-fit scoring. |
| scripts/metabolomics/formula_tools/metabolite_formula_annotator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/metabolite_formula_annotator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/mass_decomposition_tool/tests/test_mass_decomposition_tool.py | Adds tests for mass decomposition and TSV writing. |
| scripts/metabolomics/formula_tools/mass_decomposition_tool/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/mass_decomposition_tool/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/mass_decomposition_tool/README.md | Documents CLI usage for mass decomposition. |
| scripts/metabolomics/formula_tools/mass_accuracy_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/mass_accuracy_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/formula_validator_golden_rules/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/formula_validator_golden_rules/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/formula_validator_golden_rules/README.md | Documents Seven Golden Rules CLI usage and rule meanings. |
| scripts/metabolomics/formula_tools/formula_mass_calculator/tests/test_formula_mass_calculator.py | Adds tests for formula mass and adduct m/z calculations. |
| scripts/metabolomics/formula_tools/formula_mass_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/formula_mass_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/formula_tools/adduct_calculator/tests/test_adduct_calculator.py | Adds tests for adduct list generation and m/z calculations. |
| scripts/metabolomics/formula_tools/adduct_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/formula_tools/adduct_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/targeted_feature_extractor/tests/test_targeted_feature_extractor.py | Adds tests for EIC extraction, peak integration, and target extraction. |
| scripts/metabolomics/feature_processing/targeted_feature_extractor/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/targeted_feature_extractor/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/metabolite_feature_detection/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/metabolite_feature_detection/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/mass_defect_filter/tests/test_mass_defect_filter.py | Adds tests for mass defect/Kendrick computations and TSV I/O. |
| scripts/metabolomics/feature_processing/mass_defect_filter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/mass_defect_filter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/mass_defect_filter/README.md | Documents CLI usage for mass defect filtering. |
| scripts/metabolomics/feature_processing/isf_detector/tests/test_isf_detector.py | Adds tests for ISF neutral loss detection and multi-feature annotation. |
| scripts/metabolomics/feature_processing/isf_detector/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/isf_detector/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/isf_detector/README.md | Documents install, I/O formats, and CLI usage for ISF detection. |
| scripts/metabolomics/feature_processing/duplicate_feature_detector/tests/test_duplicate_feature_detector.py | Adds tests for duplicate grouping and deduplication behavior. |
| scripts/metabolomics/feature_processing/duplicate_feature_detector/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/duplicate_feature_detector/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/blank_subtraction_tool/tests/test_blank_subtraction_tool.py | Adds tests for blank subtraction filtering across tolerances. |
| scripts/metabolomics/feature_processing/blank_subtraction_tool/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/blank_subtraction_tool/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/feature_processing/adduct_group_analyzer/tests/test_adduct_group_analyzer.py | Adds tests for adduct-based grouping logic. |
| scripts/metabolomics/feature_processing/adduct_group_analyzer/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/feature_processing/adduct_group_analyzer/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/export/sirius_exporter/tests/test_sirius_exporter.py | Adds tests for loading feature TSVs, matching MS2 spectra, and writing .ms format. |
| scripts/metabolomics/export/sirius_exporter/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/export/sirius_exporter/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/export/sirius_exporter/README.md | Documents install, CLI usage, and expected feature TSV schema. |
| scripts/metabolomics/export/kovats_ri_calculator/tests/conftest.py | Adds pyopenms gating and sys.path adjustment for tests. |
| scripts/metabolomics/export/kovats_ri_calculator/requirements.txt | Declares pyopenms dependency for the tool. |
| scripts/metabolomics/export/kovats_ri_calculator/README.md | Documents Kovats RI calculation and input formats. |
| scripts/metabolomics/export/gnps_fbmn_exporter/README.md | Documents GNPS FBMN export format and CLI usage. |
| scripts/metabolomics/drug_metabolism/mass_difference_network_builder/tests/test_mass_difference_network_builder.py | Adds tests for reaction edge building and defaults. |
| scripts/metabolomics/drug_metabolism/drug_metabolite_screener/tests/test_drug_metabolite_screener.py | Adds tests for metabolite prediction and mzML screening workflow. |
| scripts/metabolomics/drug_metabolism/drug_metabolite_screener/README.md | Documents CLI usage and built-in reaction sets for metabolite screening. |
| scripts/metabolomics/compound_annotation/van_krevelen_data_generator/README.md | Documents Van Krevelen ratio generation and classification options. |
| scripts/metabolomics/compound_annotation/suspect_screener/README.md | Documents suspect list screening workflow and file formats. |
| scripts/metabolomics/compound_annotation/metabolite_class_predictor/README.md | Documents heuristic formula-based class prediction rules. |
| scripts/metabolomics/compound_annotation/kendrick_mass_defect_analyzer/tests/test_kendrick_mass_defect_analyzer.py | Adds tests for KMD computation, base masses, and homologous series grouping. |
| scripts/metabolomics/compound_annotation/kendrick_mass_defect_analyzer/README.md | Documents KMD computation and homologous series grouping CLI usage. |
| CLAUDE.md | Updates architecture/taxonomy documentation and example commands for topic-based tool layout. |
| AGENTS.md | Updates contributor guide to topic-based tool layout and validation commands. |
Comments suppressed due to low confidence (1)
scripts/proteomics/file_conversion/ms_data_ml_exporter/ms_data_ml_exporter.py:1
- When
recordsis empty,write_csv()returns without creating an output file, butmain()still prints “ML matrix written…”. That’s misleading and can break downstream pipelines expecting the file to exist. Consider either (a) writing an empty CSV with a header, or (b) makingwrite_csv()return a boolean/row count and only printing the “written” message (or exiting non-zero) when a file is actually produced.
"""
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
...ics/peptide_analysis/modification_mass_calculator/tests/test_modification_mass_calculator.py
Outdated
Show resolved
Hide resolved
tools/metabolomics/formula_tools/rdbe_calculator/rdbe_calculator.py
Outdated
Show resolved
Hide resolved
...rug_metabolism/mass_difference_network_builder/tests/test_mass_difference_network_builder.py
Outdated
Show resolved
Hide resolved
Rename the top-level scripts/ directory to tools/ to better reflect that these are standalone CLI tools, not scripts. Update all references in CLAUDE.md, AGENTS.md, README.md, CI workflow, Claude Code skills, and design docs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Convert every tool's main() from argparse.ArgumentParser to click decorators (@click.command, @click.option). Add click to all requirements.txt files. Fix 13 line-length violations from long click decorator lines. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ino acid H:C range - Replace EmpiricalFormula.getNumberOf() (nonexistent) with getElementalComposition() which returns a dict of element counts - Widen amino acid/peptide H:C upper bound from 2.2 to 2.5 so small amino acids like alanine (H:C=2.33) are classified correctly Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ation pyopenms API fixes: - metabolite_class_predictor: use getElementalComposition() instead of getNumberOf() - sirius_exporter: use Precursor.getActivationEnergy() not getActivation().getEnergy() - consensus_map_to_matrix: use ConsensusFeature.insert(map_idx, peak, element_idx) - mzml_metadata_extractor: iterate spectra for getDataProcessing() - modification_mass_calculator: searchModifications returns Set[ResidueModification] - peptide_modification_analyzer: Residue.isModified() takes no arguments - ptm_site_localization_scorer: same isModified() and searchModifications fixes - missed_cleavage_analyzer: countInternalCleavageSites takes str not AASequence - spectral_library_format_converter: use oms.Protein/Peptide with bytes ids - lipid_species_resolver: use EmpiricalFormula addition instead of string concat Logic and test fixes: - van_krevelen_data_generator: non-overlapping amino_acid/nucleotide regions - kovats_ri_calculator: handle exact alkane RT matches - molecular_formula_finder: add odd-valence-count parity check to senior rule - semi_tryptic_peptide_finder: fix test protein to avoid C-term match - phospho_motif_analyzer: fix expected window for near-start sites - nterm_modification_annotator: fix test protein for signal peptide detection - hdx_deuterium_uptake: fix proline counting at positions >= 2 - idxml_to_tsv_exporter: fix column count with empty spectrum_reference - run_comparison_reporter: return 1.0 for identical constant TIC vectors Click migration test fixes: - 4 CLI roundtrip tests: use click.testing.CliRunner instead of sys.argv Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…e.store The pyopenms IdXMLFile.store() requires a document_id string as the 4th argument. Pass empty string for synthetic test data. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
pyopenms 3.5.0 requires PeptideIdentificationList instead of plain Python lists for IdXMLFile.load() and store(). Add _make_peptide_id_list() helper that uses PeptideIdentificationList when available, falling back to plain list for older versions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 284 out of 611 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
tools/proteomics/peptide_analysis/charge_state_predictor/tests/test_charge_state_predictor.py
Outdated
Show resolved
Hide resolved
| @click.option("--peaks", multiple=True, | ||
| help="Observed peaks as 'mz,intensity' pairs for similarity scoring") |
There was a problem hiding this comment.
With click.option(..., multiple=True), users must repeat --peaks for each value (e.g., --peaks 181.0,100 --peaks 182.0,6.7), but the module docstring usage example shows a single --peaks followed by multiple values. Either update the documented usage/help text to reflect repeated options, or change the CLI to accept a single option value that can contain multiple peaks (e.g., a comma/semicolon-separated string) so the example remains valid.
| @click.option("--sequence", default=None, help="Peptide sequence (e.g. PEPTIDEK)") | ||
| @click.option("--formula", default=None, help="Molecular formula (e.g. C6H12O6)") | ||
| @click.option("--charge", type=int, default=1, help="Charge state (default: 1)") | ||
| @click.option("--observed", multiple=True, type=float, required=True, help="Observed m/z value(s)") |
There was a problem hiding this comment.
This changes the CLI behavior from --observed 554.2478 554.2480 ... (argparse nargs='+') to requiring repeated options (--observed 554.2478 --observed 554.2480 ...). If maintaining the original UX is important, consider accepting a single string/list argument and parsing it, or adjust the tool’s README/module docstring examples to match the new click semantics.
tools/proteomics/identification/mzml_spectrum_subsetter/mzml_spectrum_subsetter.py
Outdated
Show resolved
Hide resolved
docs/superpowers/specs/2026-03-24-ai-contributor-skills-design.md
Outdated
Show resolved
Hide resolved
- Fix isotope_pattern_matcher path in CLAUDE.md example - Guard .decode() on getElementalComposition keys for cross-version safety - Add per-tool requirements.txt install loop in CI workflow - Fix click multiple=True docstring examples (isotope_pattern_matcher, mass_accuracy_calculator) - Rename input -> input_path in mzml_spectrum_subsetter to avoid shadowing - Add <topic> segment to all doc paths (skills, design spec) - Replace __import__() with direct import in test - Use math.isclose() for float comparison in kovats_ri_calculator Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…/test_charge_state_predictor.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…/tests/test_modification_mass_calculator.py Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
- Replace `from conftest import requires_pyopenms` anti-pattern with
`pytest.importorskip("pyopenms")` across 123 test files and simplify
all conftest.py files to only contain sys.path setup
- Fix unsafe `k.decode()` in rdbe_calculator with isinstance guard
- Fix `input` shadowing builtin in mzml_spectrum_subsetter CLI
- Replace `__import__()` with direct import in network builder test
- Fix isotope_pattern_matcher path in CLAUDE.md (formula_tools -> spectral_analysis)
- Fix --peaks and --observed CLI docstrings for click multiple=True semantics
- Add missing <topic>/ segment in design spec doc path
- Update validate.yml to install per-tool requirements.txt instead of
hardcoded global package list
- Update AGENTS.md, CLAUDE.md, and contribute-script.md for new test pattern
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
No description provided.