From c6843a2df3157594f23684c6c368408cddf520f7 Mon Sep 17 00:00:00 2001 From: Charles Tapley Hoyt Date: Wed, 30 Dec 2020 00:48:57 +0100 Subject: [PATCH] Add utility for loading as a graph References #35 --- docs/graph.md | 9 ++++ docs/img/components.png | Bin 0 -> 104680 bytes setup.cfg | 1 + src/biomappings/graph.py | 72 ++++++++++++++++++++++++++ src/biomappings/resources/__init__.py | 3 +- src/biomappings/utils.py | 4 ++ 6 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 docs/graph.md create mode 100644 docs/img/components.png create mode 100644 src/biomappings/graph.py diff --git a/docs/graph.md b/docs/graph.md new file mode 100644 index 00000000..7fef74f4 --- /dev/null +++ b/docs/graph.md @@ -0,0 +1,9 @@ +--- +layout: page +title: Graph +permalink: /graph/ +--- +This chart shows various aspects of the positive mappings graph. Larger components means that more extensive curation +has been done. Higher density components means that they have been checked multiple times. + +Comparison diff --git a/docs/img/components.png b/docs/img/components.png new file mode 100644 index 0000000000000000000000000000000000000000..5b141af29d156e455635c24188ba42f4708aeeec GIT binary patch literal 104680 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

_U=4h0 zjSl=Q@?I(!9gCVp>6ecjIFt`vuC1roWF#$1{GQvMm8*uq4Xp~+r3zlwgpV;Qqf+Yu zD!K!iD51U(Rp!kg{fI|Tf-1zw*r>rUHC3&EQbQgJCsPZlL*}5y#SEhuI2KY@XK1c> zU56#p0i7ZR_Ina0C{4|_*{4z9O==W|jCv9jg#yT;Gt4V`qk+iFE*xn2h;pd@_)&}0 z|J=}R+y@KKjG5i>ocOBR?<9W1+NyU-oemP_u@`gt9mm{gc?C6YdZqUi=jPc!w^o|w==6qEUQ#_^!YH`xFcKgRlr_$+%uvl&7v z?_6|<0DC|?1p&t@B7)bn+aL;(pC2yeyLBwVA)pvUvIw|CbNp+303;PVNPQAi<#Due zy)vS1OGZ^Q(`8&gLeeE|G~-e{jOK2D^iu}UVeHD!Nihh)LH~ zmj6qHTZfG82znO~Vb7k8CHEwbzPin~EU<(aKU|G=DmtA)XMvam_j_sLPM`@1Am1|3xuiuNNFcgq(lLdYTl!k>k~XrL}S)!)`7)j<#q(`S+&c z`uMrk6STGGv$crAYOG5?`sP@djZa4og1@~?Bvb`AFzV(6LN6C!T*}0ENE(8%U_=C~ zVq?hCWdR0U9t`-Aai{GbEAr_7u`h)GuY`N;xZJOYM2a|IX@lW|rr_;O`0r!n#G;@} z@N*zkVTf?#-Qfitx3Eao%eR*cQB_UXKe*Db0PoF)hjJSN%YGYIdr)7``*)A+MP`2B zTY_Mqz6gcvsOs(8O+d;w{QQXMfanmO+qAcQF#L~mmEZ6GXfFEIY;vNp&Evy=>x}#L zw?+T#L;CfX0{`qWTKUU&tNst)^M60_*Mh+;@_(1-@1^+PP4V|i{J*;?e)#bEevK<- TXze5K<+$9*BWZ`vUjF|8WWewl literal 0 HcmV?d00001 diff --git a/setup.cfg b/setup.cfg index c6e3fe3f..31c9ff80 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,6 +38,7 @@ keywords = [options] install_requires = + networkx requests click pyyaml diff --git a/src/biomappings/graph.py b/src/biomappings/graph.py new file mode 100644 index 00000000..5d101f27 --- /dev/null +++ b/src/biomappings/graph.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- + +"""Load Biomappings as a graph.""" + +import os + +import matplotlib.pyplot as plt +import networkx as nx +import seaborn as sns + +from biomappings.resources import load_mappings +from biomappings.utils import IMG, MiriamValidator + + +def get_positive_graph() -> nx.Graph: + """Get a graph of the positive mappings.""" + v = MiriamValidator() + graph = nx.Graph() + for mapping in load_mappings(): + source_curie = v.get_curie(mapping['source prefix'], mapping['source identifier']) + graph.add_node( + source_curie, + prefix=mapping['source prefix'], + identifier=mapping['source identifier'], + name=mapping['source name'], + ) + target_curie = v.get_curie(mapping['target prefix'], mapping['target identifier']) + graph.add_node( + target_curie, + prefix=mapping['target prefix'], + identifier=mapping['target identifier'], + name=mapping['target name'], + ) + graph.add_edge( + source_curie, + target_curie, + provenance=mapping['source'], + type=mapping['type'], + ) + return graph + + +def _main(): + fig, axes = plt.subplots(1, 3, figsize=(10, 3.5)) + graph = get_positive_graph() + + sizes = [len(c) for c in nx.connected_components(graph)] + sns.histplot(sizes, ax=axes[0]) + axes[0].set_yscale('log') + axes[0].set_title('Component Node Sizes') + + sizes = [graph.subgraph(c).number_of_edges() for c in nx.connected_components(graph)] + sns.histplot(sizes, ax=axes[1]) + axes[1].set_yscale('log') + axes[1].set_title('Component Edge Sizes') + axes[1].set_ylabel('') + + densities = [nx.density(graph.subgraph(c)) for c in nx.connected_components(graph)] + sns.histplot(densities, ax=axes[2], kde=True) + axes[2].set_xlim([0.0, 1.0]) + axes[2].set_title('Component Densities') + axes[2].set_ylabel('') + + path = os.path.join(IMG, 'components.png') + print('saving to', path) + plt.tight_layout() + plt.savefig(path, dpi=300) + plt.close(fig) + + +if __name__ == '__main__': + _main() diff --git a/src/biomappings/resources/__init__.py b/src/biomappings/resources/__init__.py index 068806f9..97393670 100644 --- a/src/biomappings/resources/__init__.py +++ b/src/biomappings/resources/__init__.py @@ -7,9 +7,8 @@ import os from typing import Dict, Iterable, List, Mapping, Sequence, Tuple -from biomappings.utils import get_canonical_tuple +from biomappings.utils import RESOURCE_PATH, get_canonical_tuple -RESOURCE_PATH = os.path.dirname(os.path.abspath(__file__)) MAPPINGS_HEADER = [ 'source prefix', 'source identifier', diff --git a/src/biomappings/utils.py b/src/biomappings/utils.py index e9b8a3a7..77a29a13 100644 --- a/src/biomappings/utils.py +++ b/src/biomappings/utils.py @@ -9,6 +9,10 @@ import requests +HERE = os.path.dirname(os.path.abspath(__file__)) +RESOURCE_PATH = os.path.abspath(os.path.join(HERE, 'resources')) +IMG = os.path.abspath(os.path.join(HERE, os.pardir, os.pardir, 'docs', 'img')) + def get_git_hash() -> Optional[str]: """Get the git hash.