Basic Invocation
In general, a basic invocation on MSPC Core consists of three steps:
- Parse input samples;
- Setup a Configobject, specifying basic analysis parameters;
- Initialize an instance of Mspcclass, add all input samples, and callRunfunction.
// First;
// parse input samples using Genometric.GeUtilities
// available on NuGet:  https://www.nuget.org/packages/Genometric.GeUtilities/
// you may use a code similar to the following:
var bedParser = new BedParser();
var sample = bedParser.Parse(fileName);
// Second;
// Configure options
var config = new Config(
    c: 2,
    tauW: 1E-4,
    tauS: 1E-8,
    gamma: 1E-8,
    alpha: 0.05F,
    replicateType: ReplicateType.Biological,
    multipleIntersections: MultipleIntersections.UseLowestPValue);
//
// Third;
// Initialize and call MSPC Core; you may use 
// a code similar to the following:
var mspc = new Mspc();
mspc.AddSample(sample.FileHashKey, sample);
var results = mspc.Run(config);
Remarks
The afore-mentioned example uses conceret versions of the
BedParser and Mspc class:
- BedParserparses each peak in the given input sample file as a- Peakobject, and returns a- Bedobject representing the sample file;
- Mspcprocesses- Peakobjects in a- Bedobject per sample, and returns analysis results in as- ReadOnlyDictionary<uint,- Result- <Peak>>.
This design is to facilitate using MSPC for developers, since they do not need to define/implement mspc-specific models and can benefit from simpler function invocations.
However, each of these classes implement generic versions that allow developers to define their own types, which makes it simpler to integrate MSPC into their application. For instance, if your peaks are represented in a different type (you use a different class for your peaks), you can still use MSPC to analyze your peaks without having to convert them to a different type, if your objects implement the same interface as MSPC requires.