The dip scoring function for MIRA scores. This will take a data.table that has the methylation level in each bin in the MIRA profile and return a single score summarizing how large the 'dip' in methylation is at the center of that methylation profile. A column for sample ID/name and a column for region set ID/name should be included in the data.table because a separate score will be given for each sample/region set combination.
See `method` parameter for details on scoring calculations.
scoreDip(binnedDT, shoulderShift = "auto", method = "logRatio", usedStrand = FALSE, regionSetIDColName = "featureID", sampleIDColName = "sampleName")
binnedDT | A data.table with columns for: bin ("bin"), methylation level ("methylProp"), region set ID/name (default expected column name is "featureID" but this is configurable via a parameter), sample name (default expected column name is "sampleName" but this is configurable via a parameter). The bin column is not used for calculations since it is assumed by the function that the rows will be in the order of the bins (so the function will work without a bin column although the bin column assists in human readability of the input data.table) |
---|---|
shoulderShift | Used to determine the number of bins away from the center to use as the shoulders. Default value "auto" optimizes the shoulderShift variable for each sample/region set combination to try find the outside edges of the dip. shoulderShift may be manually set as an integer that will be used for all sample/region set combinations. "auto" does not currently work with region sets that include strand info. |
method | The scoring method. "logRatio" is the log of the ratio of outer edges to the middle. This ratio is the average of outside values of the dip (shoulders) divided by the center value if it is lower than the two surrounding values (lower for concave up profiles or higher for concave down profiles) or if it is not lower (higher for concave down profiles), an average of the three middle values. For an even binNum, the middle four values would be averaged with the 1st and 4th being weighted by half (as if there were 3 values). A higher score with "logRatio" corresponds to a deeper dip. "logRatio" is the only scoring method currently but more methods may be added in the future. |
usedStrand | If strand information is included as part of an input region set when aggregating methylation, the MIRA signature will probably not be symmetrical. In this case, the automatic shoulderShift sensing (done when shoulderShift="auto") needs to be done for both sides of the dip instead of just one side so set usedStrand=TRUE if strand was included for a region set. usedStrand=TRUE only has an effect on the function when shoulderShift="auto". |
regionSetIDColName | A character object. The name of the column that has region set names/identifiers. |
sampleIDColName | A character object. The name of the column that has sample names/identifiers. |
A data.table with a column for region set ID (default name is featureID), sample ID (default name is sampleName), and MIRA score (with name "score"). There will be one row and MIRA score for each sample/region set combination. The MIRA score quantifies the "dip" of the MIRA signature which is an aggregation of methylation over all regions in a region set.
data("exampleBins") scoreDip(exampleBins)#> Warning: essentially perfect fit: summary may be unreliable#> Warning: essentially perfect fit: summary may be unreliable#> featureID sampleName score #> 1: RegionSet1 Sample1 0.9808293 #> 2: RegionSet1 Sample2 0.2876821