このリンクから完全な遺伝子オントロジー用語ファイルをアップロードしましたhttp://www.geneontology.org/GO.downloads.ontology.shtml
GO タームがノードであり、isA と PartOf の関係がエッジであるグラフでデータを表現しました。私の調査によると、このグラフには、「GO:0008150」というアクセッションを持つ GO 用語であるルートが 1 つだけあるはずです。
ここで、いくつかのアルゴリズムを実行するために、各 GO Term にレベルを割り当てたいと考えています。ノードのレベルは、ルートから始まり、レベルが割り当てられるノードで終わる最長パス上のノードの数であると仮定しました。
問題は、約 60,000 の用語のうち、約 30,000 のノードしかルートから到達できないことがわかりました。したがって、残りの 30,000 語はレベルを持つことができません。これにより、アルゴリズムを実行できなくなります。
この問題の解決策は何ですか?
これが私が考えた解決策です、これは良い考えだと思いますか?
平準化できない GO タームには親がありません。ただし、それらのほとんどすべて (葉を除く) には息子がいます。したがって、私の考えは、これらのノードごとに最も深いレベルの息子をチェックし、最も深いレベルから 1 を引いた息子レベルをノードに割り当てることです。たとえば、レベル 1 - 3 - 5 の 3 人の息子がいる場合、最も深い息子のレベルから 1 レベルを引いたレベルであるため、父親にレベル 4 を割り当てます。