sumProduct {fgga} | R Documentation |
msgFGGA operates in Forney Factor Graphs and computes approximate maximum a posteriori (MAP) estimates of hidden GO variable nodes (GO-terms).
msgFGGA(matrixFGGA, obsValueGOs, graphGO, tmax = 200, epsilon = 0.001)
matrixFGGA |
A binary matrix with FGGA model of the class ‘fgga.’ |
obsValueGOs |
A named vector with ‘m’ probabilistic prediction values for a protein coding gene. |
graphGO |
A graphNEL graph with ‘m’ GO node labels. |
tmax |
An integer indicating the maximum number of iterations (defualt: 200). |
epsilon |
An integer that represents the convergence criteria (default: 0.001) |
Starting from GO-term predictions at observable variable nodes, probability distribution functions modelling the learning noise of individual GO-terms, a user-defined number of iterations (maximum 200), a user-defined threshold for the convergence of predictions (maximum 0.001), and the structure of the Forney Factor Graph, the msgFGGA delivers approximate maximum a posteriori (MAP) estimates of hidden GO variable nodes (GO-terms).
A named vector with ‘m’ consistent probabilistic predictions for a protein coding genes.
Flavio E. Spetale and Elizabeth Tapia <spetale@cifasis-conicet.gov.ar>
Kschischang FR, Frey BJ, Loeliger H.-A. Factor graphs and the sum-product algorithm. IEEE Trans. Inf. Theor. 47, 498–519 (2001).
Yedidia JS. Message-passing algorithms for inference and optimization. Journal of Statistical Physics 145, 860–890 (2011).
Spetale FE, Tapia E, Krsticevic F, Roda F, Bulacio P (2016). A Factor Graph Approach to Automated GO Annotation. PLOS ONE 11(1): e0146986
data(CfData) mygraphGO <- as(CfData[["graphCfGO"]], "graphNEL") myTableGO <- CfData[["tableCfGO"]][ CfData[["indexGO"]]$indexTrain[1:500], ] modelSVMs <- lapply(CfData[["nodesGO"]], FUN = svmTrain, tableGOs = myTableGO, dxCharacterized = CfData[["dxCf"]], graphGO = mygraphGO, kernelSVM = "radial") rootGO <- leaves(mygraphGO, "in") varianceGOs <- CfData[["varianceGOs"]] dxTestCharacterized <- CfData[["dxCf"]][ sample(1:dim(CfData[["dxCf"]])[2], 2), ] matrixGOTest <- svmGO(svmMoldel = modelSVMs, dxCharacterized = dxTestCharacterized, rootNode = rootGO, varianceSVM = varianceGOs) modelFGGA <- fgga2bipartite(mygraphGO) matrixFGGATest <- t(apply(matrixGOTest, MARGIN = 1, FUN = msgFGGA, matrixFGGA = modelFGGA, graphGO= mygraphGO, tmax = 50, epsilon = 0.1))