This is a test version of Biostars. For the public version, visit https://www.biostars.org.
How Was This Go Hierarchical Map Generated?

I saw this kind of GO map before. I wonder what tools can produce this kind of map. Hope it does not require much effort in programming.

gene

Please don't forget to accept the answer if it fits.

1 answer

I would say it's graphviz-dot output: http://www.graphviz.org

It's a (simple) script oriented program so, there is no programming required. See the gallery: http://www.graphviz.org/Gallery.php

EDIT: The following XSLT stylesheet would transform the GeneOntology (in RDF/XML format) to an input for dot:


<xsl:stylesheet xmlns:xsl="&lt;a href="http://www.w3.org/1999/XSL/Transform" "="" rel="nofollow">http://www.w3.org/1999/XSL/Transform'
    xmlns:go="http://www.geneontology.org/dtds/go.dtd#"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        version='1.0'
        >
<xsl:output method="text"/>

<xsl:template match="/">
<xsl:text>digraph G {</xsl:text>
<xsl:apply-templates select="/go:go/rdf:RDF/go:term[not(go:is_a/@rdf:resource='&lt;a href=" http:="" www.geneontology.org="" go#obsolete_molecular_function')"="" rel="nofollow">http://www.geneontology.org/go#obsolete_molecular_function')]"/>
<xsl:text>}</xsl:text>
</xsl:template>

<xsl:template match="go:term">
<xsl:variable name="acn" select="concat('go_',substring-after(go:accession,'GO:'))"/>
<xsl:value-of select="$acn"/>
<xsl:text>[label="</xsl:text>
<xsl:value-of select="go:accession"/>
<xsl:text>"];
</xsl:text>
<xsl:for-each select="go:is_a">
<xsl:value-of select="$acn"/>
<xsl:text> -> </xsl:text>
<xsl:value-of select="concat('go_',substring-after(@rdf:resource,'GO:'))"/>
<xsl:text>;
</xsl:text>
</xsl:for-each>

</xsl:template>

</xsl:stylesheet>

xsltproc go2dot.xsl go_as_rdf.xml > input.dot

(not tested: the whole GO database is taking too much time/memory for dot to compute, but you get the idea... )

It really looks like dot indeed

Log in to answer this question.