902afe0d |
# run the full algorithm
CoGAPS <- function(data, unc, GStoGenes,
outputDir, outputBase="",
sep = "\t", isPercentError=FALSE,
numPatterns,
MaxAtomsA=2^32, alphaA=0.01,
MaxAtomsP=2^32, alphaP=0.01,
SAIter=1000000000, iter = 500000000, thin=-1,
nPerm=500, verbose=TRUE, plot=FALSE, keepChain=FALSE) {
# decompose the data
matrixDecomp <- GAPS(data=data, unc=unc,
outputDir=outputDir, outputBase=outputBase,
sep=sep, isPercentError=isPercentError,
numPatterns=numPatterns, MaxAtomsA=MaxAtomsA,
alphaA=alphaA, MaxAtomsP=MaxAtomsP,
alphaP=alphaP, SAIter=SAIter, iter=iter, thin=thin,
verbose=verbose, keepChain=keepChain)
# plot patterns and show heatmap of Anorm
if (plot) {
plotGAPS(matrixDecomp$Amean, matrixDecomp$Pmean)
}
# compute the gene set scores
GSP <- calcCoGAPSStat(matrixDecomp$Amean, matrixDecomp$Asd, GStoGenes, nPerm)
# output gene set results
if (outputDir != "") {
outputGSPBase <- paste(outputDir, outputBase, sep="/")
} else {
outputGSPBase <- outputBase
}
if (outputBase != "") {
outputGSPBase <- paste(outputGSPBase, "_", sep="")
}
UpFile <- paste(outputGSPBase, "GSUpStat.txt", sep="")
DownFile <- paste(outputGSPBase, "GSDownStat.txt", sep="")
ActEstFile <- paste(outputGSPBase, "GSActEst.txt", sep="")
write.table(GSP$GSUpreg, file=UpFile, sep=sep)
write.table(GSP$GSDownreg, file=DownFile, sep=sep)
write.table(GSP$GSActEst, file=ActEstFile, sep=sep)
return(list(meanChi2=matrixDecomp$meanChi2,
D=matrixDecomp$D, Sigma=matrixDecomp$Sigma,
Amean=matrixDecomp$Amean, Asd=matrixDecomp$Asd,
Pmean=matrixDecomp$Pmean, Psd=matrixDecomp$Psd,
meanMock=matrixDecomp$meanMock,
GSUpreg=GSP$GSUpreg, GSDownreg=GSP$GSDownreg, GSActEst=GSP$GSActEst))
}
|