marr-output-object-manipulation
License: restricted — no clear open-source license detected for the underlying tool; verify licensing before commercial use or redistribution.
Summary
Extract, filter, and subset high-dimensional biological replicate data using the MarrFilterData() function to isolate reproducible features, reproducible sample pairs, or both simultaneously based on reproducibility thresholds. This skill enables targeted downstream analysis by removing non-reproducible signals from Marr() output objects.
When to use
When you have a Marr() output object containing reproducibility statistics computed across replicate experiments and need to reduce dimensionality by retaining only features or sample pairs that meet reproducibility criteria (percentage of reproducible signals exceeding feature-level threshold 100c_s% or sample-pair-level threshold 100c_m%), or when you need to apply both filters simultaneously to obtain a doubly-filtered high-confidence subset for visualization or publication.
When NOT to use
- Input is a raw data matrix or SummarizedExperiment that has not been processed through Marr() — use Marr() first to compute reproducibility statistics.
- You require unfiltered reproducibility distributions for exploratory analysis or method validation — use accessor methods on the original Marr() object without calling MarrFilterData().
- Your experiment has only a single replicate or lacks sufficient pairwise replicates to compute meaningful reproducibility scores — Marr() requires multiple replicate experiments.
Inputs
- Marr() output object (S4 object with reproducibility statistics slots)
- filtering mode parameter: 'features', 'samplePairs', or 'both'
- optional: feature-level reproducibility threshold (c_s, default 0.75)
- optional: sample-pair-level reproducibility threshold (c_m, default 0.75)
Outputs
- Feature-filtered SummarizedExperiment (by='features')
- Sample-pair-filtered SummarizedExperiment (by='samplePairs')
- Doubly-filtered SummarizedExperiment (by='both')
- Extracted slot vectors via accessor methods (MarrSamplepairs, MarrFeatures, etc.)
- Serialized filtered data objects (.rds or equivalent format)
How to apply
Load the Marr() output object containing reproducibility statistics. Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level reproducibility threshold (100c_s%), producing a feature-filtered SummarizedExperiment. Alternatively, apply by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100c_m%), producing a sample-pair-filtered subset. For maximum stringency, apply by='both' to apply both filtering criteria simultaneously. Extract individual slots from the filtered objects using accessor methods (MarrSamplepairs(), MarrFeatures(), MarrSamplepairsfiltered(), MarrFeaturesfiltered()) and serialize the resulting subsets for downstream analysis or visualization with MarrPlotFeatures() or MarrPlotSamplepairs().
Related tools
- marr (R/Bioconductor package containing Marr() function to compute reproducibility statistics and MarrFilterData() to filter output; required for this skill) — https://github.com/Ghoshlab/marr
- devtools (R package utility used to install the latest development version of marr from GitHub repository) — https://github.com/r-lib/devtools
- BiocManager (R package for installing marr and other Bioconductor packages)
- SummarizedExperiment (Bioconductor class used to store filtered output data objects with assay, row, and column metadata)
Examples
MarrOutput <- Marr(object = dataSE, pSamplepairs=0.75, pFeatures=0.75, alpha=0.05); filtered_features <- MarrFilterData(MarrOutput, by='features'); filtered_pairs <- MarrFilterData(MarrOutput, by='samplePairs'); doubly_filtered <- MarrFilterData(MarrOutput, by='both')
Evaluation signals
- Verify output SummarizedExperiment has reduced dimensionality compared to input Marr() object (fewer features or sample pairs retained).
- Check that all retained features in by='features' output have percentage reproducible signals ≥ 100*c_s% when inspected via MarrFeaturesfiltered().
- Check that all retained sample pairs in by='samplePairs' output have percentage reproducible signals ≥ 100*c_m% when inspected via MarrSamplepairsfiltered().
- Verify by='both' output is a strict subset of both by='features' and by='samplePairs' outputs (intersection, not union).
- Confirm plots generated by MarrPlotFeatures() and MarrPlotSamplepairs() show only the filtered signals without missing data artifacts.
Limitations
- MarrFilterData() thresholds (c_s, c_m) are user-specified with defaults of 0.75; no automated threshold selection method is provided in the article.
- Filtering may be too stringent if thresholds are set too high (c_s, c_m > 0.9), resulting in empty or near-empty outputs; conversely, low thresholds retain too much noise.
- The method assumes independence of reproducibility between features and sample pairs; strong feature-sample correlations may violate this assumption.
- Reproducibility assessment depends on experimental design and replicate structure; insufficient replicate samples or unbalanced designs may yield unstable reproducibility estimates.
Evidence
- [other] MarrFilterData() accepts three filtering modes: by='features' to retain only reproducible features, by='samplePairs' to retain only reproducible sample pairs, and by='both' to apply both filtering criteria simultaneously.: "MarrFilterData() accepts three filtering modes: by='features' to retain only reproducible features, by='samplePairs' to retain only reproducible sample pairs, and by='both' to apply both filtering"
- [other] Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level threshold (100c_s%), producing a feature-filtered subset.: "Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level threshold (100c_s%), producing a feature-filtered"
- [other] Apply MarrFilterData() with by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100c_m%), producing a sample-pair-filtered subset.: "Apply MarrFilterData() with by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100c_m%), producing"
- [readme] Individual slots can be extracted using accessor methods: MarrSamplepairs() extract the distribution of percent reproducible features (column-wise) per sample pair; MarrFeatures() extract the distribution of percent reproducible sample pairs (row-wise) per feature.: "Individual slots can be extracted using accessor methods: MarrSamplepairs() extract the distribution of percent reproducible features (column-wise) per sample pair; MarrFeatures() extract the"
- [readme] The main function in the marr package is
Marr(). The Marr() function needs one required object and three optional objects: (1) object: a data frame or a matrix or a Summarized Experiment with one assay object with observations (e.g., metabolites or genes) on the rows and samples as the columns.: "The main function in the marr package is Marr(). The Marr() function needs one required object and three optional objects: (1) object: a data frame or a matrix or a Summarized Experiment with"
1---2name: marr-output-object-manipulation3description: Use when when you have a Marr() output object containing reproducibility statistics computed across replicate experiments and need to reduce dimensionality by retaining only features or sample pairs that meet reproducibility criteria (percentage of reproducible signals exceeding feature-level.4license: CC-BY-4.05---67# marr-output-object-manipulation89> **License: restricted** — no clear open-source license detected for the underlying tool; verify licensing before commercial use or redistribution. <!-- asb-license-banner -->10## Summary1112Extract, filter, and subset high-dimensional biological replicate data using the MarrFilterData() function to isolate reproducible features, reproducible sample pairs, or both simultaneously based on reproducibility thresholds. This skill enables targeted downstream analysis by removing non-reproducible signals from Marr() output objects.1314## When to use1516When you have a Marr() output object containing reproducibility statistics computed across replicate experiments and need to reduce dimensionality by retaining only features or sample pairs that meet reproducibility criteria (percentage of reproducible signals exceeding feature-level threshold 100*c_s% or sample-pair-level threshold 100*c_m%), or when you need to apply both filters simultaneously to obtain a doubly-filtered high-confidence subset for visualization or publication.1718## When NOT to use1920- Input is a raw data matrix or SummarizedExperiment that has not been processed through Marr() — use Marr() first to compute reproducibility statistics.21- You require unfiltered reproducibility distributions for exploratory analysis or method validation — use accessor methods on the original Marr() object without calling MarrFilterData().22- Your experiment has only a single replicate or lacks sufficient pairwise replicates to compute meaningful reproducibility scores — Marr() requires multiple replicate experiments.2324## Inputs2526- Marr() output object (S4 object with reproducibility statistics slots)27- filtering mode parameter: 'features', 'samplePairs', or 'both'28- optional: feature-level reproducibility threshold (c_s, default 0.75)29- optional: sample-pair-level reproducibility threshold (c_m, default 0.75)3031## Outputs3233- Feature-filtered SummarizedExperiment (by='features')34- Sample-pair-filtered SummarizedExperiment (by='samplePairs')35- Doubly-filtered SummarizedExperiment (by='both')36- Extracted slot vectors via accessor methods (MarrSamplepairs, MarrFeatures, etc.)37- Serialized filtered data objects (.rds or equivalent format)3839## How to apply4041Load the Marr() output object containing reproducibility statistics. Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level reproducibility threshold (100*c_s%), producing a feature-filtered SummarizedExperiment. Alternatively, apply by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100*c_m%), producing a sample-pair-filtered subset. For maximum stringency, apply by='both' to apply both filtering criteria simultaneously. Extract individual slots from the filtered objects using accessor methods (MarrSamplepairs(), MarrFeatures(), MarrSamplepairsfiltered(), MarrFeaturesfiltered()) and serialize the resulting subsets for downstream analysis or visualization with MarrPlotFeatures() or MarrPlotSamplepairs().4243## Related tools4445- **marr** (R/Bioconductor package containing Marr() function to compute reproducibility statistics and MarrFilterData() to filter output; required for this skill) — https://github.com/Ghoshlab/marr46- **devtools** (R package utility used to install the latest development version of marr from GitHub repository) — https://github.com/r-lib/devtools47- **BiocManager** (R package for installing marr and other Bioconductor packages)48- **SummarizedExperiment** (Bioconductor class used to store filtered output data objects with assay, row, and column metadata)4950## Examples5152```53MarrOutput <- Marr(object = dataSE, pSamplepairs=0.75, pFeatures=0.75, alpha=0.05); filtered_features <- MarrFilterData(MarrOutput, by='features'); filtered_pairs <- MarrFilterData(MarrOutput, by='samplePairs'); doubly_filtered <- MarrFilterData(MarrOutput, by='both')54```5556## Evaluation signals5758- Verify output SummarizedExperiment has reduced dimensionality compared to input Marr() object (fewer features or sample pairs retained).59- Check that all retained features in by='features' output have percentage reproducible signals ≥ 100*c_s% when inspected via MarrFeaturesfiltered().60- Check that all retained sample pairs in by='samplePairs' output have percentage reproducible signals ≥ 100*c_m% when inspected via MarrSamplepairsfiltered().61- Verify by='both' output is a strict subset of both by='features' and by='samplePairs' outputs (intersection, not union).62- Confirm plots generated by MarrPlotFeatures() and MarrPlotSamplepairs() show only the filtered signals without missing data artifacts.6364## Limitations6566- MarrFilterData() thresholds (c_s, c_m) are user-specified with defaults of 0.75; no automated threshold selection method is provided in the article.67- Filtering may be too stringent if thresholds are set too high (c_s, c_m > 0.9), resulting in empty or near-empty outputs; conversely, low thresholds retain too much noise.68- The method assumes independence of reproducibility between features and sample pairs; strong feature-sample correlations may violate this assumption.69- Reproducibility assessment depends on experimental design and replicate structure; insufficient replicate samples or unbalanced designs may yield unstable reproducibility estimates.7071## Evidence7273- [other] MarrFilterData() accepts three filtering modes: by='features' to retain only reproducible features, by='samplePairs' to retain only reproducible sample pairs, and by='both' to apply both filtering criteria simultaneously.: "MarrFilterData() accepts three filtering modes: by='features' to retain only reproducible features, by='samplePairs' to retain only reproducible sample pairs, and by='both' to apply both filtering"74- [other] Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level threshold (100*c_s%), producing a feature-filtered subset.: "Apply MarrFilterData() with by='features' to retain only features where the percentage of reproducible pairwise signals exceeds the feature-level threshold (100*c_s%), producing a feature-filtered"75- [other] Apply MarrFilterData() with by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100*c_m%), producing a sample-pair-filtered subset.: "Apply MarrFilterData() with by='samplePairs' to retain only sample pairs where the percentage of reproducible signals across all features exceeds the sample-pair-level threshold (100*c_m%), producing"76- [readme] Individual slots can be extracted using accessor methods: MarrSamplepairs() extract the distribution of percent reproducible features (column-wise) per sample pair; MarrFeatures() extract the distribution of percent reproducible sample pairs (row-wise) per feature.: "Individual slots can be extracted using accessor methods: MarrSamplepairs() extract the distribution of percent reproducible features (column-wise) per sample pair; MarrFeatures() extract the"77- [readme] The main function in the **marr** package is `Marr()`. The `Marr()` function needs one required object and three optional objects: (1) object: a data frame or a matrix or a Summarized Experiment with one assay object with observations (e.g., metabolites or genes) on the rows and samples as the columns.: "The main function in the **marr** package is `Marr()`. The `Marr()` function needs one required object and three optional objects: (1) object: a data frame or a matrix or a Summarized Experiment with"