mySNVs <- GRanges(
seqnames=c('chr1', 'chr2', 'chr2', 'chr2'),
ranges=IRanges(start=c(1000, 20020, 20285, 21114), width=1),
aseID=c('gene1', rep('gene2', 3)),
allele1=c('G', 'A', 'C', 'A'),
allele2=c('T', 'C', 'T', 'G')
)
names(mySNVs) <- paste0('SNV', 1:4)
## RangedSummarizedExperiment object with data to run tumor vs. normal comparison
mySE_TumorVsNormal <- SummarizedExperiment(
assays=list(
lociAllele1Counts=matrix(
c(
c(25,10,22,14),
c(18,17,14,28)
),
ncol=2,
dimnames=list(
names(mySNVs),
c('tumor', 'normal')
)
),
lociAllele2Counts=matrix(
c(
c(20,16,15,16),
c(23,9,24,17)
),
ncol=2,
dimnames=list(
names(mySNVs),
c('tumor', 'normal')
)
),
lociAllele1CountsNoASEProbs=matrix(
c(
c(0.48, 0.51, 0.55, 0.45),
c(0.52, 0.43, 0.52, 0.43)
),
ncol=2,
dimnames=list(
names(mySNVs),
c('tumor', 'normal')
)
),
lociCountsDispersions=matrix(
c(
c(0.005, 0.007, 0.003, 0.01),
c(0.001, 0.004, 0.02, 0.006)
),
ncol=2,
dimnames=list(
names(mySNVs),
c('tumor', 'normal')
)
)
),
rowRanges=mySNVs
)
twoSampleAnalysisTumorVsNormal <- runMBASED(
ASESummarizedExperiment=mySE_TumorVsNormal,
numSim=10^6,
BPPARAM=SerialParam(),
isPhased=FALSE
)
rowRanges(twoSampleAnalysisTumorVsNormal)
assays(twoSampleAnalysisTumorVsNormal)$majorAlleleFrequencyDifference
assays(twoSampleAnalysisTumorVsNormal)$pValueASE
assays(twoSampleAnalysisTumorVsNormal)$pValueHeterogeneity
assays(metadata(twoSampleAnalysisTumorVsNormal)$locusSpecificResults)$MAFDifference
assays(metadata(twoSampleAnalysisTumorVsNormal)$locusSpecificResults)$allele1IsMajor
## exchanging the order of the columns will allow us to run normal vs. tumor comparison
## Note that while results are the same for single-locus gene1, they differ for multi-locus gene2
mySE_NormalVsTumor <- SummarizedExperiment(
assays=lapply(names(assays(mySE_TumorVsNormal)), function(matName) {
curMat <- assays(mySE_TumorVsNormal)[[matName]]
modifiedMat <- curMat[,c('normal','tumor')]
return(modifiedMat)
}),
colData=colData(mySE_TumorVsNormal)[2:1,],
rowRanges=rowRanges(mySE_TumorVsNormal)
)
names(assays(mySE_NormalVsTumor )) <- names(assays(mySE_TumorVsNormal))
twoSampleAnalysisNormalVsTumor <- runMBASED(
ASESummarizedExperiment=mySE_NormalVsTumor,
numSim=10^6,
BPPARAM=SerialParam(),
isPhased=FALSE
)
rowRanges(twoSampleAnalysisNormalVsTumor)
assays(twoSampleAnalysisNormalVsTumor)$majorAlleleFrequencyDifference
assays(twoSampleAnalysisNormalVsTumor)$pValueASE
assays(twoSampleAnalysisNormalVsTumor)$pValueHeterogeneity
assays(metadata(twoSampleAnalysisNormalVsTumor)$locusSpecificResults)$MAFDifference
assays(metadata(twoSampleAnalysisNormalVsTumor)$locusSpecificResults)$allele1IsMajor
## we can also do separate one-sample analysis on tumor and normal samples
mySE_Tumor <- SummarizedExperiment(
assays=lapply(names(assays(mySE_TumorVsNormal)), function(matName) {
curMat <- assays(mySE_TumorVsNormal)[[matName]]
modifiedMat <- curMat[,'tumor',drop=FALSE]
return(modifiedMat)
}),
colData=colData(mySE_TumorVsNormal)[1,],
rowRanges=rowRanges(mySE_TumorVsNormal)
)
names(assays(mySE_Tumor)) <- names(assays(mySE_TumorVsNormal))
oneSampleAnalysisTumor <- runMBASED(
ASESummarizedExperiment=mySE_Tumor,
numSim=10^6,
BPPARAM=SerialParam(),
isPhased=FALSE
)
rowRanges(oneSampleAnalysisTumor)
assays(oneSampleAnalysisTumor)$majorAlleleFrequency
assays(oneSampleAnalysisTumor)$pValueASE
assays(oneSampleAnalysisTumor)$pValueHeterogeneity
assays(metadata(oneSampleAnalysisTumor)$locusSpecificResults)$MAF
assays(metadata(oneSampleAnalysisTumor)$locusSpecificResults)$allele1IsMajor
mySE_Normal <- SummarizedExperiment(
assays=lapply(names(assays(mySE_TumorVsNormal)), function(matName) {
curMat <- assays(mySE_TumorVsNormal)[[matName]]
modifiedMat <- curMat[,'normal',drop=FALSE]
return(modifiedMat)
}),
colData=colData(mySE_TumorVsNormal)[1,],
rowRanges=rowRanges(mySE_TumorVsNormal)
)
names(assays(mySE_Normal)) <- names(assays(mySE_TumorVsNormal))
oneSampleAnalysisNormal <- runMBASED(
ASESummarizedExperiment=mySE_Normal,
numSim=10^6,
BPPARAM=SerialParam(),
isPhased=FALSE
)
rowRanges(oneSampleAnalysisNormal)
assays(oneSampleAnalysisNormal)$majorAlleleFrequency
assays(oneSampleAnalysisNormal)$pValueASE
assays(oneSampleAnalysisNormal)$pValueHeterogeneity
assays(metadata(oneSampleAnalysisNormal)$locusSpecificResults)$MAF
assays(metadata(oneSampleAnalysisNormal)$locusSpecificResults)$allele1IsMajor
Run the code above in your browser using DataLab