Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
b4f02f5
Initial plan
Copilot Oct 24, 2025
499c506
Initial exploration of alignment integration requirement
Copilot Oct 24, 2025
7dd1426
Add alignment integration to export functionality
Copilot Oct 24, 2025
3df1c34
Enhance alignment export to include SCORE_ALIGNMENT data and improve …
Copilot Oct 24, 2025
0132d06
Change use_alignment default to True with auto-detection of alignment…
Copilot Oct 24, 2025
6c545ea
Add alignment integration to split_parquet reader
Copilot Oct 24, 2025
901f25b
Add workflow diagram documentation for alignment integration
Copilot Oct 24, 2025
2e7f217
Merge master branch into alignment integration feature
Copilot Oct 30, 2025
79e110a
Fix: Only add from_alignment column when alignment is actually used
Copilot Oct 30, 2025
247e458
Add alignment reference feature ID and RT to recovered features
Copilot Oct 30, 2025
376399f
Ensure reference features pass MS2 QVALUE threshold for alignment rec…
Copilot Oct 30, 2025
5ee818a
Add alignment_group_id to recovered alignment features
Copilot Oct 30, 2025
6bd270f
Fix ambiguous ALIGNMENT_ID column error in OSW alignment query
Copilot Oct 30, 2025
42bf441
Fix alignment_reference_feature_id displaying as scientific notation …
Copilot Oct 30, 2025
e0c4445
Add alignment info to all features, not just recovered ones
Copilot Oct 30, 2025
bc78c82
Add SCORE_MS2.PEP (MS2_PEAKGROUP_PEP) to standard OpenSWATH exports
Copilot Oct 30, 2025
2300d16
Update output files for pyprophet export tests to include new 'pep' c…
singjc Oct 30, 2025
86e854e
Merge branch 'master' into copilot/integrate-score-alignment-export
singjc Oct 30, 2025
bb15d7f
Merge pull request #1 from singjc/copilot/integrate-score-alignment-e…
singjc Oct 30, 2025
48f603b
Initial plan
Copilot Oct 30, 2025
3558e6e
Fix alignment reference feature ID precision and assign alignment_gro…
Copilot Oct 30, 2025
bbe0149
Add comment clarifying SQLite INTEGER type equivalence
Copilot Oct 30, 2025
c7fc186
Fix performance regression: remove CAST from JOIN conditions
Copilot Oct 31, 2025
71d2c31
Fix precision loss by adding CAST in SELECT clause (not JOIN)
Copilot Oct 31, 2025
7538891
Update ALIGNMENT_INTEGRATION_WORKFLOW.md with precision fixes and gro…
Copilot Oct 31, 2025
cf99318
Merge pull request #7 from singjc/copilot/fix-alignment-reference-id-…
singjc Oct 31, 2025
ccf5f25
Refactor OSWReader and OSWWriter to enhance peptide mapping and align…
singjc Nov 1, 2025
cada53b
Add support for IM boundaries in OSWWriter: include EXP_IM_LEFTWIDTH …
singjc Nov 2, 2025
2477343
fix(tests): fix bug with restructuring of ipf score to precursor mapp…
singjc Nov 3, 2025
ef86895
refactor(parquet): improve alignment group ID assignment and update s…
singjc Nov 16, 2025
bf96ddb
fix(osw): remove debug print statement for temporary table query in O…
singjc Nov 18, 2025
048686b
feat(export): add support for exporting minimal scored-report columns…
singjc Nov 18, 2025
e5510b6
fix(report): ensure axes are consistently indexed in plot_score_distr…
singjc Nov 18, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
416 changes: 416 additions & 0 deletions ALIGNMENT_INTEGRATION_WORKFLOW.md

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions pyprophet/_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,8 @@ class ExportIOConfig(BaseIOConfig):
max_global_peptide_qvalue (float): Filter results to maximum global peptide-level q-value.
protein (bool): Append protein-level error-rate estimates if available.
max_global_protein_qvalue (float): Filter results to maximum global protein-level q-value.
use_alignment (bool): Use alignment results to recover peaks with good alignment scores if alignment data is present (default: True).
max_alignment_pep (float): Maximum PEP to consider for good alignments when use_alignment is True (default: 0.7).

# Quantification matrix options
top_n (int): Number of top intense features to use for summarization
Expand Down Expand Up @@ -688,6 +690,10 @@ class ExportIOConfig(BaseIOConfig):
protein: bool = True
max_global_protein_qvalue: float = 0.01
test: bool = False

# Alignment options
use_alignment: bool = True
max_alignment_pep: float = 0.7

# Quantification matrix options
top_n: int = 3
Expand Down
34 changes: 34 additions & 0 deletions pyprophet/cli/export.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,19 @@ def export():
type=float,
help="[format: matrix/legacy] Filter results to maximum global protein-level q-value.",
)
@click.option(
"--use_alignment/--no-use_alignment",
default=True,
show_default=True,
help="Use alignment results to recover peaks with good alignment scores if alignment data is present in the input file.",
)
@click.option(
"--max_alignment_pep",
default=0.7,
show_default=True,
type=float,
help="[format: matrix/legacy] Maximum PEP to consider for good alignments when use_alignment is enabled.",
)
@measure_memory_usage_and_time
def export_tsv(
infile,
Expand All @@ -161,6 +174,8 @@ def export_tsv(
max_global_peptide_qvalue,
protein,
max_global_protein_qvalue,
use_alignment,
max_alignment_pep,
):
"""
Export Proteomics/Peptidoform TSV/CSV tables
Expand Down Expand Up @@ -190,6 +205,8 @@ def export_tsv(
max_global_peptide_qvalue=max_global_peptide_qvalue,
protein=protein,
max_global_protein_qvalue=max_global_protein_qvalue,
use_alignment=use_alignment,
max_alignment_pep=max_alignment_pep,
)

reader = ReaderDispatcher.get_reader(config)
Expand Down Expand Up @@ -278,6 +295,19 @@ def export_tsv(
type=float,
help="[format: matrix/legacy] Filter results to maximum global protein-level q-value.",
)
@click.option(
"--use_alignment/--no-use_alignment",
default=True,
show_default=True,
help="Use alignment results to recover peaks with good alignment scores if alignment data is present in the input file.",
)
@click.option(
"--max_alignment_pep",
default=0.7,
show_default=True,
type=float,
help="[format: matrix/legacy] Maximum PEP to consider for good alignments when use_alignment is enabled.",
)
@click.option(
"--top_n",
default=3,
Expand Down Expand Up @@ -312,6 +342,8 @@ def export_matrix(
max_rs_peakgroup_qvalue,
max_global_peptide_qvalue,
max_global_protein_qvalue,
use_alignment,
max_alignment_pep,
top_n,
consistent_top,
normalization,
Expand Down Expand Up @@ -344,6 +376,8 @@ def export_matrix(
max_global_peptide_qvalue=max_global_peptide_qvalue,
protein=True,
max_global_protein_qvalue=max_global_protein_qvalue,
use_alignment=use_alignment,
max_alignment_pep=max_alignment_pep,
top_n=top_n,
consistent_top=consistent_top,
normalization=normalization,
Expand Down
Loading