maximum-score-selection-over-pairs
Summary
Generalize pairwise scoring functions (e.g., BGC-spectrum IOKR scores) to group-level links (e.g., GCF-MF pairs) by computing the maximum score over all possible combinations of elements within each group. This approach enables ranking of composite genomic-metabolomic links when one or both sides contain multiple entities.
When to use
When you have individual pairwise scores (e.g., between BGCs and spectra) and need to rank composite links where one or both sides are collections (e.g., Gene Cluster Families containing multiple BGCs matched against Molecular Families containing multiple spectra), and you want to use the strongest evidence of any single pair within each composite link.
When NOT to use
- Input scores are already aggregated at the group level (e.g., already scored GCF-to-MF).
- You want to use mean, median, or other aggregation functions instead of maximum; this skill specifically applies the max operator.
- Individual pairwise scores are missing or sparse; the max operation will be biased if many combinations lack scores.
Inputs
- Table of pairwise scores (BGC ID, spectrum ID, score value)
- List of Gene Cluster Family (GCF) identifiers with their constituent BGC IDs
- List of Molecular Family (MF) identifiers with their constituent spectrum IDs
Outputs
- Table of composite link scores with columns: GCF_ID, MF_ID, max_score, num_pairs_evaluated
- Ranked list of GCF-MF links sorted by maximum score
How to apply
For each composite link (e.g., a GCF-MF pair), retrieve all constituent elements from both sides (all BGCs in the GCF and all spectra in the MF). Filter to pairs where both elements exist in your input score table (e.g., IOKR predictions). Compute the maximum score across all valid (BGC, spectrum) combinations for that composite link using σ_IOKR(G, M) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}. Output a table with composite identifiers, the maximum score, and the count of pairs evaluated, which allows downstream filtering or ranking of composite links by their strongest internal signal.
Related tools
- IOKR (Generates individual BGC-spectrum pairwise scores that serve as input to the maximum-score aggregation)
- BiG-SCAPE (Clusters BGCs into Gene Cluster Families (GCFs), which are the composite genomic entities aggregated by this skill)
- NPLinker (Software framework that implements the GCF-to-MF link scoring and ranking, including the maximum-score aggregation step) — https://github.com/sdrogers/nplinker
Evaluation signals
- Output table has one row per GCF-MF pair with no duplicates; all GCF_ID and MF_ID values are valid and present in input lists.
- All max_score values lie within the range of individual pairwise scores (e.g., 0–1 for normalized IOKR); no negative or out-of-range values.
- num_pairs_evaluated matches the count of (BGC, spectrum) combinations that existed in the input score table for each GCF-MF pair.
- For any GCF-MF pair, the reported max_score equals the maximum of all scores for that pair's constituent combinations when manually verified.
- Composite links with higher max_score ranks correlate with downstream validation (e.g., known BGC-metabolite relationships) at statistically significant levels.
Limitations
- Maximum-score aggregation ignores the distribution and quantity of high-scoring pairs; two links with the same max value are ranked equally even if one has many supporting pairs and the other only one.
- The method relies on complete or near-complete input score coverage; missing pairwise scores for any BGC-spectrum combination will underestimate the true maximum.
- Maximum selection amplifies noise if individual pairwise scores are unreliable or were computed using methods with low specificity (e.g., IOKR's dependence on MIBiG homology restricts it to BGCs showing considerable homology to curated references).
- Sparse or imbalanced GCF and MF sizes can lead to composite links with very few evaluated pairs, reducing statistical confidence in the aggregated rank.
Evidence
- [other] For a GCF G and MF M, σ_IOKR(M, G) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}, where σ_IOKR scores individual BGC-spectrum links.: "For a GCF G and MF M, σ_IOKR(M, G) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}, where σ_IOKR scores individual BGC-spectrum links."
- [other] For each GCF-MF pair, compute the maximum IOKR score over all matching (BGC, spectrum) pairs: σ_IOKR(G,M) = max σ_IOKR(m, g) for m ∈ M, g ∈ G.: "For each GCF-MF pair, compute the maximum IOKR score over all matching (BGC, spectrum) pairs: σ_IOKR(G,M) = max σ_IOKR(m, g) for m ∈ M, g ∈ G."
- [other] Output a table with columns: GCF_ID, MF_ID, max_IOKR_score, num_pairs_evaluated.: "Output a table with columns: GCF_ID, MF_ID, max_IOKR_score, num_pairs_evaluated."
- [other] How should IOKR BGC-spectrum link scores be generalised to score GCF-MF links when a GCF contains multiple BGCs and a MF contains multiple spectra?: "How should IOKR BGC-spectrum link scores be generalised to score GCF-MF links when a GCF contains multiple BGCs and a MF contains multiple spectra?"
- [other] Filter to (BGC, spectrum) pairs where both elements are present in the input IOKR score table.: "Filter to (BGC, spectrum) pairs where both elements are present in the input IOKR score table."
1---2name: maximum-score-selection-over-pairs3description: Use when when you have individual pairwise scores (e.g., between BGCs and spectra) and need to rank composite links where one or both sides are collections (e.4license: CC-BY-4.05---67# maximum-score-selection-over-pairs89## Summary1011Generalize pairwise scoring functions (e.g., BGC-spectrum IOKR scores) to group-level links (e.g., GCF-MF pairs) by computing the maximum score over all possible combinations of elements within each group. This approach enables ranking of composite genomic-metabolomic links when one or both sides contain multiple entities.1213## When to use1415When you have individual pairwise scores (e.g., between BGCs and spectra) and need to rank composite links where one or both sides are collections (e.g., Gene Cluster Families containing multiple BGCs matched against Molecular Families containing multiple spectra), and you want to use the strongest evidence of any single pair within each composite link.1617## When NOT to use1819- Input scores are already aggregated at the group level (e.g., already scored GCF-to-MF).20- You want to use mean, median, or other aggregation functions instead of maximum; this skill specifically applies the max operator.21- Individual pairwise scores are missing or sparse; the max operation will be biased if many combinations lack scores.2223## Inputs2425- Table of pairwise scores (BGC ID, spectrum ID, score value)26- List of Gene Cluster Family (GCF) identifiers with their constituent BGC IDs27- List of Molecular Family (MF) identifiers with their constituent spectrum IDs2829## Outputs3031- Table of composite link scores with columns: GCF_ID, MF_ID, max_score, num_pairs_evaluated32- Ranked list of GCF-MF links sorted by maximum score3334## How to apply3536For each composite link (e.g., a GCF-MF pair), retrieve all constituent elements from both sides (all BGCs in the GCF and all spectra in the MF). Filter to pairs where both elements exist in your input score table (e.g., IOKR predictions). Compute the maximum score across all valid (BGC, spectrum) combinations for that composite link using σ_IOKR(G, M) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}. Output a table with composite identifiers, the maximum score, and the count of pairs evaluated, which allows downstream filtering or ranking of composite links by their strongest internal signal.3738## Related tools3940- **IOKR** (Generates individual BGC-spectrum pairwise scores that serve as input to the maximum-score aggregation)41- **BiG-SCAPE** (Clusters BGCs into Gene Cluster Families (GCFs), which are the composite genomic entities aggregated by this skill)42- **NPLinker** (Software framework that implements the GCF-to-MF link scoring and ranking, including the maximum-score aggregation step) — https://github.com/sdrogers/nplinker4344## Evaluation signals4546- Output table has one row per GCF-MF pair with no duplicates; all GCF_ID and MF_ID values are valid and present in input lists.47- All max_score values lie within the range of individual pairwise scores (e.g., 0–1 for normalized IOKR); no negative or out-of-range values.48- num_pairs_evaluated matches the count of (BGC, spectrum) combinations that existed in the input score table for each GCF-MF pair.49- For any GCF-MF pair, the reported max_score equals the maximum of all scores for that pair's constituent combinations when manually verified.50- Composite links with higher max_score ranks correlate with downstream validation (e.g., known BGC-metabolite relationships) at statistically significant levels.5152## Limitations5354- Maximum-score aggregation ignores the distribution and quantity of high-scoring pairs; two links with the same max value are ranked equally even if one has many supporting pairs and the other only one.55- The method relies on complete or near-complete input score coverage; missing pairwise scores for any BGC-spectrum combination will underestimate the true maximum.56- Maximum selection amplifies noise if individual pairwise scores are unreliable or were computed using methods with low specificity (e.g., IOKR's dependence on MIBiG homology restricts it to BGCs showing considerable homology to curated references).57- Sparse or imbalanced GCF and MF sizes can lead to composite links with very few evaluated pairs, reducing statistical confidence in the aggregated rank.5859## Evidence6061- [other] For a GCF G and MF M, σ_IOKR(M, G) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}, where σ_IOKR scores individual BGC-spectrum links.: "For a GCF G and MF M, σ_IOKR(M, G) = max{σ_IOKR(m, g) : m ∈ M, g ∈ G}, where σ_IOKR scores individual BGC-spectrum links."62- [other] For each GCF-MF pair, compute the maximum IOKR score over all matching (BGC, spectrum) pairs: σ_IOKR(G,M) = max σ_IOKR(m, g) for m ∈ M, g ∈ G.: "For each GCF-MF pair, compute the maximum IOKR score over all matching (BGC, spectrum) pairs: σ_IOKR(G,M) = max σ_IOKR(m, g) for m ∈ M, g ∈ G."63- [other] Output a table with columns: GCF_ID, MF_ID, max_IOKR_score, num_pairs_evaluated.: "Output a table with columns: GCF_ID, MF_ID, max_IOKR_score, num_pairs_evaluated."64- [other] How should IOKR BGC-spectrum link scores be generalised to score GCF-MF links when a GCF contains multiple BGCs and a MF contains multiple spectra?: "How should IOKR BGC-spectrum link scores be generalised to score GCF-MF links when a GCF contains multiple BGCs and a MF contains multiple spectra?"65- [other] Filter to (BGC, spectrum) pairs where both elements are present in the input IOKR score table.: "Filter to (BGC, spectrum) pairs where both elements are present in the input IOKR score table."