我从这个链接上传了一个完整的基因本体术语文件http://www.geneontology.org/GO.downloads.ontology.shtml
我用图形表示数据,其中 GO 术语是节点,isA 和 PartOf 关系是边。根据我的研究,该图中应该只有一个根,即 GO Term,加入“GO:0008150”。
现在,我希望为每个 GO Term 分配一个级别,以便执行一些算法。我假设节点的级别是从根开始到要分配级别的节点结束的最长路径上的节点数。
问题是,在大约 60,000 个术语中,我发现只有大约 30,000 个节点可以从根访问。所以,剩下的30000个条款不能有一个级别。这使我无法执行我的算法。
这个问题的解决方案是什么?
这是我想到的一个解决方案,您认为这是一个好主意吗?
不能平级的 GO 项没有父项。然而,几乎所有的,(除了叶子)都有儿子,因此,我的想法是为这些节点中的每一个检查具有最深层次的儿子,然后将最深层次的节点分配其儿子级别减1。例如,如果我们在 1 - 3 - 5 层有 3 个儿子,我们将父亲分配给 4 层,因为它是最深儿子的层减去 1 层。