MSPC (Multi-Sample Peak Caller)

website·Indexed 30 days ago

https://genometric.github.io/MSPC/docs/

A tool for improving the sensitivity and specificity of peak calling and identifying consensus regions in ChIP-seq samples. Available as a command-line application, a C# library via NuGet, or an R package. It processes tab-delimited BED files to classify peaks into categories such as Background, Weak, Stringent, Confirmed, Discarded, True-Positive, and False-Positive.

Tokens
6.2K
Snippets
38
Records
49
Agent score
72%

What's inside MSPC

  1. Overview of the MSPC CLI

    The mspc command-line interface is a cross-platform application used to analyze ChIP-seq and single-cell peaks by parsing input datasets (such as BED files), applying the MSPC method to evaluate combined evidence from replicates, and persisting the results. It can be run in any standard shell (Windows PowerShell, Linux shell, or macOS Terminal).
  2. Overview of MSPC peak calling improvement

    MSPC is a tool used to improve the sensitivity and specificity of peak calling by utilizing combined evidence from replicated experiments. It evaluates peak calling output to rescue true peaks and reduce false positives. Additionally, it identifies consensus regions across the input samples. It is compatible with both bulk and single-cell resolution data and can scale to hundreds of thousands of inputs on a standard personal computer.
  3. Overview of MSPC for ChIP-seq peak analysis

    MSPC is a tool for the joint analysis of ChIP-seq peaks from biological or technical replicates. It combines the p-values of overlapping enriched regions (peaks) to lower the minimum significance required to accept a peak. This process allows for the 'rescue' of weak peaks that appear in more than one replicate, thereby reducing the number of false-negatives without requiring changes to the initial peak caller (e.g., MACS) used in the analysis pipeline.
  4. Overview of the MSPC joint peak analysis method

    MSPC is a method designed for the joint analysis of enriched regions (ERs), commonly known as 'peaks', from biological or technical ChIP-seq replicate samples. It allows for the 'rescue' of weak peaks—those that would typically be discarded in a single-sample analysis—by combining their p-values across multiple replicates to determine if the collective evidence is sufficiently strong.

    The MSPC workflow follows these primary stages:

    1. Classification: Input ERs for each replicate are classified as stringent (highly significant), weak (moderately significant), or background based on their p-values.
    2. Comparative Analysis: Overlapping regions are analyzed. The statistical significance of overlapping ERs is combined using Fisher's method to produce a global score, which is then compared against an adjustable threshold to classify ERs as confirmed or discarded.
    3. Multiple Testing Correction: The Benjamini-Hochberg procedure is applied to the confirmed ERs to control the false-discovery rate (FDR). ERs are then classified as true-positive or false-positive based on an adjustable FDR threshold.
  5. MSPC Distribution Options Overview

    MSPC is available in three primary forms depending on the developer's needs:

    1. Command-line application (documented in the installation guide).
    2. C# library (distributed via NuGet).
    3. R package (distributed via Bioconductor).
  6. Prepare input BED files for MSPC

    MSPC requires a tab-delimited file in BED format for each replicate. These files should contain enriched regions (peaks) called with a permissive p-value threshold. The p-value must be provided in -Log10(p-value) format. By default, MSPC expects the following column order: Chrom, Start, End, Name, and Value. Additional columns may be present but will be ignored by the parser. If files are stranded, the parser must be manually adjusted; otherwise, they will be read as un-stranded.
    chrom	start	end	name	value
    chr1	1000	2000	peak_1	11
    chr1	3000	4000	peak_2	22
    chr1	5000	6000	peak_3	33
  7. Install and run MSPC via command-line

    MSPC can be run as a self-contained command-line application, meaning .NET or other dependencies are not required. The process involves downloading the release archive, extracting it, and executing the binary with specific parameters for input files and thresholds.
    # 1. Download and extract (Windows x64 example)
    wget -O win-x64.zip https://github.com/Genometric/MSPC/releases/latest/download/win-x64.zip
    unzip win-x64.zip -d mspc
    cd mspc
    
    # 2. Download sample data
    wget -O demo.zip https://github.com/Genometric/Annotations/raw/master/SampleFiles/demo.zip
    unzip demo.zip -d .
    
    # 3. Run MSPC
    # Parameters: -i (input files), -r (replicate type), -w (weak threshold), -s (stringency threshold)
    .\mspc.exe -i .\rep*.bed -r bio -w 1e-4 -s 1e-8
  8. Install MSPC as a framework-dependent command-line application

    To install MSPC as a command-line application using the framework-dependent method, you must first ensure .NET 9.0 (or newer) is installed on your machine. Verify your installation by running dotnet --info in a shell; the version should be 9.0.x. If not installed, download it from the official .NET website.
    # Verify .NET installation
    dotnet --info
  9. Install MSPC as a self-contained command-line application

    If you cannot install .NET 9.0 on your machine, use the self-contained installation method. Download the zip archive corresponding to your operating system runtime (Windows x64, Linux x64, or macOS x64) from the latest GitHub releases.
    # Example for Windows x64
    wget -O mspc.zip "https://github.com/Genometric/MSPC/releases/latest/download/win-x64.zip"
    unzip mspc.zip -d mspc
  10. Handle biological vs technical replicates in MSPC

    MSPC distinguishes between biological and technical replicates during binding site evaluation. It accounts for the fact that technical replicates should have a higher degree of similarity, whereas differences in biological replicates represent true biological variability, and differences in technical replicates are typically treated as signal noise or artifactual bindings.