\HeaderA{oneGOGraph}{Construct the GO graph given a set of leaves.}{oneGOGraph}
\aliasA{getGoGraph}{oneGOGraph}{getGoGraph}
\aliasA{getGoGraph,GOHyperGParams,character-method}{oneGOGraph}{getGoGraph,GOHyperGParams,character.Rdash.method}
\aliasA{GOGraph}{oneGOGraph}{GOGraph}
\keyword{manip}{oneGOGraph}
\begin{Description}\relax
Given one or more GO identifiers (which indicate the leaves in the
graph) and a set of mappings to the less specific sets of nodes this
function will construct the graph that includes that node and all
children down to the root node for the ontology.
\end{Description}
\begin{Usage}
\begin{verbatim}
oneGOGraph(x, dataenv)
GOGraph(x, dataenv)
getGoGraph(p, goIds)

\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{x}] A character vector of GO identifiers. 
\item[\code{dataenv}] An environment for finding the parents of that
term. 
\item[\code{p}] A \code{GOHyperGParams} instance.
\item[\code{goIds}] A character vector providing the GO term IDs.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
For any set of GO identifiers (from a common ontology) we define the
induced GO graph to be  that graph, based on 
the DAG structure (child - parent) of the GO ontology of terms, which
takes the most specific set of GO terms that apply (for that
ontology) and then joins these to all less specific terms. These
functions help construct such graphs.
\end{Details}
\begin{Value}
The induced GO graph (or NULL) for the given GO identifier.
\end{Value}
\begin{Author}\relax
R. Gentleman
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{makeGOGraph}{makeGOGraph}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}

 library("GO.db")
 g1 <- oneGOGraph("GO:0003680", GOMFPARENTS)
 g2 <- oneGOGraph("GO:0003701", GOMFPARENTS)
 g3 <- join(g1, g2)

 g4 <- GOGraph(c("GO:0003680", "GO:0003701"), GOMFPARENTS)
if( require("Rgraphviz") && interactive() )
  plot(g3)
\end{ExampleCode}
\end{Examples}

