Graph processing method

By determining community hierarchies and using conduits to connect virtual nodes, the method addresses the challenge of processing complex graphs, enhancing computational efficiency and visualization clarity in large-scale networks.

WO2025224171A1PCT designated stage Publication Date: 2025-10-30DEEPLIFE
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/061066
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-04-23
Filing Date
2025-04-23
Publication Date
2025-10-30

AI Technical Summary

Technical Problem

Processing large-scale, complex graphs with highly connected nodes and edges, such as those representing biological systems, is challenging due to the complexity of interaction patterns and the difficulty in minimizing edge crossings, which complicates computational efficiency and interpretation.

Method used

A method that determines a hierarchy of communities at multiple levels, converts these communities into virtual nodes, and connects them with conduits, using a community detection algorithm like Leiden, and applies a force-directed layout to minimize edge crossings, resulting in a simplified final graph representation.

Benefits of technology

The method simplifies the representation of complex graphs by reducing edge crossings and improving computational efficiency, enabling clearer visualization and analysis of large-scale networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025061066_30102025_PF_FP_ABST
    Figure EP2025061066_30102025_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to a method for processing a graph. The method comprise providing (S10) the initial graph, said initial graph comprising a plurality of initial nodes and a plurality of initial edges, each initial edge connecting two initial nodes, determining (S20) a hierarchy of a plurality of communities at a plurality of levels, each community being respective to a level of said plurality of levels and comprising a respective cluster of the initial nodes, determining (S30) one or more conduits, each conduit connecting a first determined community at a first level of said plurality of levels and a second determined community at a second level of said plurality of levels, the first level being different from the second level, each conduit comprising a respective group of the initial edges and connecting the respective cluster of the initial nodes of the first community to the respective cluster of the initial nodes of the second community, and outputting (S40) a final graph based on the initial graph, the determined hierarchy of plurality of communities and the determined one or more conduits; the final graph representing said connectivity of said plurality of entities.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] GRAPH PROCESSING METHOD

[0002] FIELD OF INVENTION

[0003] [1] The present invention relates to the field of computer programs and systems, and more specifically to a method, system and program for processing a graph.

[0004] BACKGROUND OF INVENTION

[0005] [2] Most systems present in real life, including most social, biological, and technological networks are of a large scale. In other words, said systems comprise of large number of members and the interactions among them. For example, a living cell may be undergoing millions of biological processes, signalling cascades, chemical and cellular interactions at any given moment in time. Therefore, a graph representing such system and the interactions thereof has a significant number of nodes and edges.

[0006] [3] In addition, such real-life systems often display highly complex interaction patterns and thereby are to be represented by a complex graph. Scale-free networks are examples of such complex networks. Scale-free networks are characterised by far from uniform distribution of degrees of connections between the nodes, for example a power law distribution. Scale-free networks have few highly connected nodes and many lowly connected nodes. Such a complex structure in combination with large number of nodes and interactions makes processing of such graphs challenging.

[0007] [4] Within this context, there is still a need for an improved method for processing a graph.

[0008] SUMMARY

[0009] [5] This invention thus relates to a computer-implemented method for processing an initial graph. The initial graph represents a connectivity of a plurality of entities. The method comprises providing the initial graph, said initial graph comprising a plurality of initial nodes and a plurality of initial edges, each initial edge connecting two initial nodes. The method further comprises determining a hierarchy of a plurality of communities at a plurality of levels, each community being respective to a level of said plurality of levels and comprising a respective cluster of the initial nodes. The method further comprises determining one or more conduits, each conduit connecting a first determined community at a first level of said plurality of levels and a second determined community at a second level of said plurality of levels, the first level being different from the second level. Each conduit comprises a respective group of the initial edges and connects the respective cluster of the initial nodes of the first community to the respective cluster of the initial nodes of the second community. The method further comprises outputting a final graph based on the initial graph, the determined hierarchy of plurality of communities and the determined one or more conduits. The final graph represents said connectivity of said plurality of entities.

[0010] [6] According to other advantageous aspects of the invention, the method for processing comprises one or more of the features described in the following embodiments, taken alone or in any possible combination.

[0011] [7] According to one embodiment, the determining of the one or more conduits comprises determining a plurality of virtual nodes, each respective to a determined community; and determining at least one conduit between at least one pair of the determined virtual nodes, said at least one pair being respective to a first determined community and a second determined community. In other words, these steps are configured to convert these determined communities into virtual nodes and connect them to one another to create “bundles” (i.e., conduits) through which the edges can pass.

[0012] [8] According to one embodiment, the outputting of the final graph comprises, for each determined conduit, outputting one secondary edge between the two determined virtual nodes of the two respective determined communities of the conduit; for each community at the highest level of said plurality of levels, outputting a subgraph comprising: a subpart of the initial graph consisting of the initial nodes of the community and one or more of the initial edges connecting two initial nodes of said community; and for each initial node of said subpart, one secondary edge which connects the initial node to the respective virtual node of said community. [9] According to one embodiment, the determining of a hierarchy of plurality of communities comprises applying, on the plurality of initial nodes, one or more iterations of a community detection algorithm. In one example, at least two iterations are performed. In one example, the determining of a hierarchy of plurality of communities comprises iteratively applying, on the plurality of initial nodes, a community detection algorithm so to obtain plurality of communities at a plurality of levels.

[0013]

[0010] According to one embodiment, the community detection algorithm is a Leiden algorithm. The Leiden algorithm is a community detection algorithm that optimizes the partitioning of the graph given a resolution parameter, which is intrinsic to the method. However, this Leiden algorithm by itself is not configured to define a localisation of the nodes and edges of a graph in order to minimize edge crossings.

[0014]

[0011] According to one embodiment, the community detection algorithm comprises one or more of the following stopping criteria: a community detection threshold, and a minimum number of initial nodes in the respective cluster of each community. In other words, the community detection algorithm is iteratively applied until the partitioning of the graph is better than a random partitioning.

[0015]

[0012] According to one embodiment, the outputting of the final graph comprises positioning each community using a force-directed graph drawing method using edge weights based on betweenness centrality. In other words, the outputting of the final graph comprises applying a layout algorithm for the positioning of the nodes, force atlas (i.e., force-directed layout algorithm used to visualize graphs by simulating physical forces between nodes and edges), to both the real nodes (i.e., initial nodes) and the virtual nodes, which allows to position the conduits at the same time as the nodes. This approach allows to address the edge placement problem with crossing minimization, which is known to be very time-consuming (similar to the placement of components on electronic circuit boards) and especially difficult to solve for networks with high degrees, as commonly found in biology. This embodiment advantageously allows the placement of edges (e.g., secondary edge and / or initial edges) in order to minimize the number of crossings in high- degree networks.

[0013] According to one embodiment, the initial graph is a directed graph.

[0016]

[0014] This invention further relates to a computer-implemented method of querying the final graph outputted by the method discussed above. The method of querying comprises selecting, by a user, an entity of said plurality of entities; and outputting a subset of said final graph, the subset representing a structure of relationships between a subset of plurality of entities in connection with the selected entity.

[0017]

[0015] According to other advantageous aspects of the invention, the method for querying comprises one or more of the features described in the following embodiments, taken alone or in any possible combination.

[0018]

[0016] According to one embodiment, the outputting further comprises determining, based on the determined hierarchy, at least one path between said selected entity to at least one other entity of said plurality of entities in connection with the selected entity; said at least one determined path comprising one or more determined conduits which connect the respective community of the selected entity to the respective community of the at least one other community via the determined hierarchy.

[0019]

[0017] According to one embodiment, the initial graph is a directed graph, and the outputted subset consists of: a first subset of the final graph representing, for the selected entity, upstream entities and connections; and a second subset of the final graph representing, for the selected entity, downstream entities and connections.

[0020]

[0018] The initial graph in the methods discussed above may represent an interactome network of a cell, and each node of the plurality of initial nodes represents a component of the cell, and each edge of the plurality of initial edges represents a molecular interaction between two components of the cell. Each component of the cell may be one of genes, epigenetic states, mRNA, ncRNA, proteins, PTM states, metabolites.

[0021]

[0019] In addition, the disclosure relates to a computer program comprising instructions for performing the method as above.

[0022]

[0020] The present disclosure further pertains to a (e.g., non-transitory) computer readable storage medium having recorded thereon the computer program.

[0021] Such a non-transitory program storage device can be, without limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor device, or any suitable combination of the foregoing. It is to be appreciated that the following, while providing more specific examples, is merely an illustrative and not exhaustive listing as readily appreciated by one of ordinary skill in the art: a portable computer diskette, a hard disk, a ROM, an EPROM (Erasable Programmable ROM) or a Flash memory, a portable CD-ROM (Compact-Disc ROM).

[0023]

[0022] The present disclosure further pertains to a system comprising a processor coupled to a memory and graphical user interface, the memory having recorded thereon the computer program.

[0024] DEFINITIONS

[0025]

[0023] In the present invention, the following terms have the following meanings:

[0026]

[0024] The terms “adapted” and “configured” are used in the present disclosure as broadly encompassing initial configuration, later adaptation or complementation of the present device, or any combination thereof alike, whether effected through material or software means (including firmware).

[0027]

[0025] The term “processor” should not be construed to be restricted to hardware capable of executing software and refers in a general way to a processing device, which can for example include a computer, a microprocessor, an integrated circuit, or a programmable logic device (PLD). The processor may also encompass one or more Graphics Processing Units (GPU), whether exploited for computer graphics and image processing or other functions. Additionally, the instructions and / or data enabling to perform associated and / or resulting functionalities may be stored on any processor-readable medium such as, e.g., an integrated circuit, a hard disk, a CD (Compact Disc), an optical disc such as a DVD (Digital Versatile Disc), a RAM (Random- Access Memory) or a ROM (Read-Only Memory). Instructions may be notably stored in hardware, software, firmware or in any combination thereof.

[0026] A “hierarchy” refers to an organized structure in which a set of elements — in this case, “communities” formed from nodes in an initial graph — are arranged across multiple levels or stages. Each level represents a different granularity or abstraction of the data, where lower levels typically contain smaller or more specific groups (communities), and higher levels contain broader or more aggregated communities. In context of the present invention, each “community” at a given level consists of a cluster of (initial) nodes from the initial graph, and these communities are connected across different levels by “conduits” that represent relationships or interactions between them, maintaining the underlying connectivity of the original data.

[0028]

[0027] A “community detection algorithm” refers to a method used to identify groups of nodes (called communities or clusters) within a graph that are more densely connected to each other than to the rest of the graph. These communities often represent meaningful structures or functional units, such as social circles in a social network, modules in biological networks, or related documents in information graphs.

[0029] BRIEF DESCRIPTION OF THE DRAWINGS

[0030]

[0028] The present disclosure will be better understood, and other specific features and advantages will emerge upon reading the following description of particular and non-restrictive illustrative embodiments, the description making reference to the annexed drawings wherein:

[0031]

[0029] Figures 1-2 present an example flowchart of the method;

[0032]

[0030] Figures 3-4 present examples of the method;

[0033]

[0031] Figure 5 is an example of grouping in conduits according to an example of the method;

[0034]

[0032] Figure 6 is an example of application of the method in drug target identification;

[0035]

[0033] Figure 7 is an example of different edges in a graph;

[0036]

[0034] Figure 8 is an example of conduits according to the method;

[0035] Figures 9-11 present querying an entity according to an example of the method;

[0037]

[0036] Figure 12 is a comparison of a representation of a network according to the prior art and to the method; and

[0038]

[0037] Figure 13 shows an example of the system.

[0039]

[0038] On the figures, the drawings are not to scale, and identical or similar elements are designated by the same references.

[0040] ILLUSTRATIVE EMBODIMENTS

[0041]

[0039] The present description illustrates the principles of the present disclosure. It will thus be appreciated that those skilled in the art will be able to devise various arrangements that, although not explicitly described or shown herein, embody the principles of the disclosure and are included within its scope.

[0042]

[0040] All examples and conditional language recited herein are intended for educational purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art and are to be construed as being without limitation to such specifically recited examples and conditions.

[0043]

[0041] Moreover, all statements herein reciting principles, aspects, and embodiments of the disclosure, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

[0044]

[0042] Thus, for example, it will be appreciated by those skilled in the art that the block diagrams presented herein may represent conceptual views of illustrative circuitry embodying the principles of the disclosure. Similarly, it will be appreciated that any flow charts, flow diagrams, and the like represent various processes which may be substantially represented in computer readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

[0045]

[0043] The functions of the various elements shown in the figures may be provided through the use of dedicated hardware as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared.

[0046]

[0044] It should be understood that the elements shown in the figures may be implemented in various forms of hardware, software or combinations thereof. Preferably, these elements are implemented in a combination of hardware and software on one or more appropriately programmed general-purpose devices, which may include a processor, memory and input / output interfaces.

[0047]

[0045] It is provided a computer-implemented method for processing an initial graph. The initial graph represents a connectivity of a plurality of entities. The method comprises providing the initial graph. Said initial graph comprises a plurality of initial nodes and a plurality of initial edges. Each initial edge (of the plurality of initial edges) connects two initial nodes (of the plurality of initial nodes). The method further comprises determining a hierarchy of a plurality of communities at a plurality of levels. Each community is respective to a level (or a stage) of said plurality of levels. Each community (of the determined hierarchy of the plurality of communities) comprises a respective cluster (i.e., a group or a set) of the initial nodes (of said plurality of initial nodes). The method further comprises determining one or more conduits. Each conduit connects two respective determined communities (of the plurality of determined communities) of difference levels. In other words, each conduit connects a first determined community at a first level (of said plurality of levels) and a second determined community at a second level (of said plurality of levels) where the first level being different from the second level. The conduit comprises a respective group (i.e., bundle) of said edges (of the plurality of initial edges). Each conduit connects the respective clusters of the initial nodes of the two determined communities. The method further comprises outputting a final graph based on the initial graph, the determined hierarchy of plurality of communities and the determined one or more conduits. The final graph representing said connectivity of said plurality of entities.

[0048]

[0046] By “connectivity of a plurality of entities” or equivalently “structure of relationships between a plurality of entities” it is meant how each entity is in connection to any other entity of the plurality. Such a structure may be represented by a graph in which each node represents an entity, and each edge represents a relationship between the two nodes it connects. Each entity may represent a physical or chemical element, or a living creature like an animal or a human.

[0049]

[0047] Such a graph, for example the initial graph, may be a directed graph, i.e., a graph in which each edge has a direction. A directed graph augments the presentation of the relationship between the entities by distinguishing between causes / effectors and effects / targets. A node (of the two nodes of each directed edge) that represents a cause of the interaction represented by said edge is an upstream node. A node (of the two nodes of each directed edge) that represents an effect of the interaction represented by said edge is a downstream node. Such distinguish between the upstream and downstream nodes improve application of the method, for example in drug target identification tests as discussed in detail below.

[0050]

[0048] The method constitutes an improved solution in processing graphs as it simplifies the provided initial graph via determining the communities and the conduit(s). Such a simplification, while not affecting the represented structure by the graph (as the final graph represents the same connectivity of the plurality of entities of the initial graph), improves any post-processing or any application of the graph.

[0051]

[0049] By “processing of a graph” it is meant any action or computation based on the graph. The method thereby improves any of such an action or a computation by representing a group of edges by a conduit and a group of nodes by a community. Such a representation decreases the repetition in the graph and improves a processing based thereon.

[0052]

[0050] In examples, the processing of the graph (e.g., the initial graph) may comprise clustering the edges of the graph, i.e., the initial edges. In other examples, the processing of the graph may comprise computing a relation (e.g., a distance) between two nodes of the graph. In such examples, the method may output a subset of the initial graph including at least one of the determined communities. Such a subset may comprise the communities to which belong the two nodes as well as any of other determined community or any determined conduit. Thereby, the method enables to provide a subset of the initial graph (which may be of large-scale and complex) by a simpler (i.e., smaller) representation. This improves the computational cost.

[0053]

[0051] In other examples, the processing of the graph may comprise determining the nodes of the provided graph, i.e., one or more (e.g., all) of the initial nodes which are in connection (e.g., a direct connection) with a given node among the initial nodes. In other words, such examples extract a subset of the provided graph which are connected with the given node. The given node may be selected by a user. Such examples enable investigation of a complex graph by allowing to focus on a part of interest thereof. In such examples, the method may output the extracted subset using the outputted at least one of the determined communities.

[0054]

[0052] The initial graph may be a complex graph as known per se. A complex graph may have more than 100 nodes, for example more than 1000 nodes. Furthermore, a complex graph may have a plurality of nodes with a degree higher than 10, for example higher than 100.

[0055]

[0053] In reference to Figure 1, the method comprises, in step S10, providing the initial graph. By “providing” it is meant obtaining or equivalently receiving. In other words, “providing the initial graph” means obtaining or receiving said initial graph by the method. The provided initial graph may also comprise a first piece of data regarding the spatial position of each initial node. The method may use the first piece of data for outputting a graphical representation of the initial nodes (and thereby the initial graph). The providing of the initial graph may comprise accessing to a local storage or a storage on a remote server. The providing of the initial graph may comprise receiving an adjacency matrix by the method. The method may then convert said received adjacency matrix to a graph by any known technique. Additionally, the providing of the initial graph may comprise receiving a first piece of data regarding the spatial position of each initial node as discussed above. Alternatively, the method may set the first piece of data automatically, for example, using random values.

[0054] The method further, in step S20, comprises determining a hierarchy of plurality of communities at a plurality of levels (or stages). By “determining a plurality of communities at a plurality of levels” it is meant clustering the nodes of the initial graph, i.e., the initial nodes, in different levels. In other words, the method obtains a hierarchy of clusters, for example using any known hierarchical clustering method (see Examples of graph-based hierarchical clustering methods include, without limitation, the Louvain method, the Infomap method, multilevel label propagation, hierarchical clustering via graph coarsening, and spectral clustering with recursive bipartitioning. These approaches all generate multilevel or hierarchical structures by progressively grouping nodes or communities based on modularity, information flow, label similarity, graph topology, or spectral properties, thereby producing a hierarchy of communities that represents different levels of abstraction in the graph.

[0056]

[0055] Said hierarchy may have a tree structure and be represented by a dendrogram. For example, the tree hierarchy may attribute all of the initial nodes to one cluster of level 0, two clusters of level 1, four clusters of level 2, and so on. The method may cluster the initial nodes into the plurality of communities using any known clustering method.

[0057]

[0056] The method further, in step S30, comprises determining one or more conduits. Each of the determined one or more conduits connects two (non-identical) communities of the determined hierarchy of a plurality of communities at two different levels. In other words, a conduit connects a first determined community at a first level and a second determined community at a second level which is different from the first level. In other words, each conduit has a role to connect two communities at two different level, same as the role of an edge to connect two nodes. In yet other words, the method funnels intercommunity edges within a conduit. This improves processing the initial graph by enabling a multi-scale connection.

[0058]

[0057] Each of the determined conduit comprises a respective group of the initial edges. Each conduit connects the respective cluster of the initial nodes of the community to the initial nodes of the second community. In other words, each conduit connecting a first community and a second community presents a connection between the two communities. Such a conduit groups all the edges connecting a (i.e., any) first node belonging to the first community and a (i.e., any) second node belonging to the second community. In yet other words, the determining of the one or more conduits forms a clustering of the edges of the initial graph, i.e., the initial edges. Such a clustering is realized by clustering the initial edges into communities and then grouping / bundling all the initial edges that connect any node of the respective cluster of a first community to any node of the respective cluster of the first nodes of a second community.

[0059]

[0058] The method further, at step S40, outputs a final graph representing the same connectivity of said plurality of entities of the initial graph. The method may output said final graph via a graphical representation of the final graph, for example by displaying the initial nodes, at least a subset of the initial edges, and the determined conduit(s). This final graph simplifies the representation and the further processing of the initial graph by regrouping of the initial edges in conduits.

[0060]

[0059] Now, examples of the determining of the one or more conduits are discussed in reference to Figure 2.

[0061]

[0060] In examples, the determining of the one or more conduits comprises, in step S31, determining a plurality of virtual nodes. Each virtual node is respective to a determined community. Similarly to the first piece of data for the initial nodes discussed above, the method may further set a second piece of data for each virtual node. The second piece of data for a virtual node defines a spatial position for said virtual node. The method, in step S32, determines at least one conduit between at least a pair of the determined virtual nodes. Said pair is respective to a first determined community and a second determined community and thereby to the virtual nodes of each community. In other words, the method employs said virtual nodes as binding nodes to define a conduit between two communities of (the initial) nodes. This constitutes an improved solution for clustering edges of a graph which is notoriously computationally costly.

[0062]

[0061] In examples, the determining of a hierarchy of plurality of communities may comprise applying, on the plurality of initial nodes, one or more iterations (e.g., at least two) of a community detection algorithm, i.e., a recursive application of said algorithm. In other words, the method may apply said community detection algorithm on the plurality of initial nodes, thereby obtaining one or more initial communities (respective to a level in said hierarchy). The method may then (e.g., depending on satisfaction of stopping criteria) perform further application(s) of said community detection algorithm on each of communities determined in a preceding iteration to obtain one or more communities of the current iteration.

[0063]

[0062] Said community detection algorithm may be any known community detection algorithm. The community detection algorithm may determine the hierarchy of plurality of communities using one or more stopping criteria. In other words, the method may continue the iteration of said detection algorithm until one or more stopping criteria are satisfied.

[0064]

[0063] A stopping criterion may be a community detection threshold. The community detection threshold is a threshold defining the finest scale of a community, i.e., the smallest continuity. In other words, the detection threshold requires a minimum quality on the determined communities. Higher detection thresholds lead to more determined communities and lower thresholds lead to fewer communities. In other words, the method may perform iterations of the community detection algorithm till this threshold is achieved.

[0065]

[0064] A stopping criterion may be a minimum number of initial nodes in the respective cluster of each community. In examples, the method may stop performing iterations of community detection if a precedent community has a number of nodes less than 20, or less than 10.

[0066]

[0065] In some preferred examples, the community detection algorithm may be a Leiden algorithm according to the article Traag et al. “From Louvain to Leiden: guaranteeing well-connected communities.” Sci Rep 9, 5233 (2019), which is incorporated herein by reference. In such examples, the detection threshold may be defined implicitly via the resolution of the Leiden algorithm.

[0067]

[0066] In examples, the outputting of the final graph comprises, for each determined conduit, outputting one secondary edge between the two determined virtual nodes of the two respective determined communities of the conduit. By a secondary edge it is meant a visual display of an edge of the final graph. A secondary edge may correspond to an initial edge of the initial graph, or to a conduit (i.e., a group of initial edges) of the initial graph. The outputting may further comprise, for each community at the highest level of said plurality of levels, outputting a subgraph. The subgraph comprises a subpart of the initial graph consisting of the initial nodes of the community and one or more of the initial edges connecting two initial nodes of said community. The subgraph further comprises, for each initial node of said subpart, one secondary edge which connects the initial node to the respective virtual node of said community.

[0068]

[0067] In other words, the outputted graph according to these examples, is composed of: a first group of secondary edges, each secondary edge of the first group corresponding to a conduit and connects two virtual nodes (grey edges in Figure 3 part (3) between two virtual nodes 311); a subpart of the initial graph (the black graphs in Figure 3 part (3)); and a second group of secondary edges between the subpart (of the initial graph) and the virtual node at the highest level (grey edges in Figure 3 part (3) which are between a subpart and a virtual node 311).

[0069]

[0068] In outputting said subgraph, the method may set (i.e., attribute) a spatial location to each respective initial node in a vicinity of a spatial location of the virtual node. The spatial location of the virtual node may be according to the second piece of data discussed above. In examples, the method may set the spatial location of respective initial nodes in a circle (i.e., a circular region) around the virtual node.

[0070]

[0069] In one embodiment, outputting of the final graph comprises applying a layout algorithm for the positioning of the initial nodes, the virtual nodes and the edges (i.e., first group of secondary edges and second group of secondary edges). The layout algorithm may be a force-directed layout algorithm used to visualize graphs by simulating physical forces between nodes and edges, such as a force atlas algorithm.

[0071]

[0070] In examples, the outputting of the finial graph further comprises positioning each community using a force-directed graph drawing method using edge weights based on betweenness centrality. This method simulates a physical system where nodes repel each other like charged particles, while edges act as springs holding adjacent nodes together. The layout algorithm iteratively adjusts the positions of the nodes based on the forces until the system reaches a state of equilibrium, thereby achieving an aesthetically pleasing and informative visualisation. The application of this method to the final graph results in a layout with minimal edge intersections, improving visualisation clarity.

[0072]

[0071] The method may remove the virtual nodes before the final outputting. In other words, the outputted final graph may not comprise the virtual nodes determined in step S31 as discussed above.

[0073]

[0072] An example of the method is now discussed in reference to Figure 3.

[0074]

[0073] In step (1), the initial graph 300, comprising of a plurality of nodes 310 (back dots) and a plurality of edges 320 (solid black segments), is provided. In an initial iteration in step (2), the method determines a plurality of communities by clustering the nodes 310 into three communities 330, 340, and 350. The method then, in step (3), generates (i.e., attributes) a virtual node (grey dots, 311) for each community. The virtual node 335 is generated for the community 330, while the virtual nodes 345 and 355 are generated for communities 340, and 350, respectively. The method further defines virtual node 305 which designates a centre. The method then connects the central node 305 to each of virtual nodes 335, 345, and 355. Furthermore, the method outputs three subgraphs by connecting virtual nodes 335, 345, and 355 to each of the initial nodes in their respective communities, i.e., 330, 340, and 350. The several pluralities of communities, each obtained at a different step, form said hierarchy of plurality of communities.

[0075]

[0074] The method continues the iterations, by determining two communities 332 and 333 in the community 330, and two communities 352 and 353 in the community 350. The method sets virtual nodes 336, and 337 for the communities 332, and 333, respectively. The method further sets virtual nodes 356, and 357 for the communities 352, and 353, respectively. Furthermore, the method outputs four subgraphs by connecting virtual nodes 336, 337, 356, and 357 to each of the initial nodes in their respective communities, i.e., 332, 333, 352, and 353.

[0076]

[0075] In reference to Figure 5, it is further provided a computer- implemented method of querying a graph, i.e., the final graph, outputted by the method discussed above. In other words, such a method is related to querying the final graph outputted by the method in examples discussed above. Such a method comprises, in step S60, selecting, by a user, an entity of said plurality of entities. The method further comprises, in step S70, outputting a subset of said final graph. The subset represents a structure of relationships (or connectivity) between a subset of plurality of entities in connection with the selected entity. This enables the user to select a part of interest of the final graph in relation to the selected entity. This is particularly effective when the initial graph (and thereby the outputted final graph) is a complex graph.

[0077]

[0076] The selecting of an entity may comprise inputting a name of said entity to the method or selecting a node of the second graph via a graphical user interface (e.g., by a mouse, a touch screen, or any other haptic device).

[0078]

[0077] In examples, the outputting S70 further comprises determining, based on the determined hierarchy (of plurality of communities), at least one path (e.g., the shortest path) between selected entity to at least one other entity of said plurality of entities in connection with the selected entity. In other words, such examples enable the user to obtain a connection represented by a path between two entities of the graph. Said at least one determined path comprises (e.g., consists of) one or more determined conduits which connect the respective community of the selected entity to the respective community of the at least one other community via the determined hierarchy (of plurality of communities).

[0079]

[0078] By “via the determined hierarchy” it is meant that the method, in order to obtain a path between two nodes / entities, searches among the different levels of the determined hierarchy. An example of this is discussed hereinbelow in reference to Figure 4.

[0080]

[0079] Figure 4(a) shows the initial graph of starting interaction network. A particular node 390 and its interactions are highlighted in blue lines. The partners of the highlighted nodes are shown in black filling (shown as 395). In this representation, interpretation can be challenging as a result of large numbers of overlapping edges. Figure 4(b) shows a representation 380 of the hierarchical community detection, reminiscent of dendrograms. Each branching in the tree-like representation 380 shows a clustering at a respective level. The original highlighted interactions (in blue lines) are represented as passing through the hierarchy branches. Figure 4(c) shows the conversion of the hierarchical clustering branches into graph edges, while Figure 4(d) shows the final outputted graph. The original highlighted interactions are represented as passing through conduits.

[0080] In this example, for finding the path between two nodes, for examples two nodes 395, the method uses the dendrogram to move between different levels of the hierarchy of the clustering. This enables the method to obtain the desired path more efficiently.

[0081]

[0081] Examples of the method with application in cells are now discussed.

[0082]

[0082] In examples, the initial graph represents an interactome network of a cell. Each node of the plurality of initial nodes represents a component of the cell. Furthermore, each edge of the plurality of initial edges represents a molecular interaction or connection between two components (i.e., two initial nodes). Interactions may be any of activation, expression regulation, phosphorylation, or binding. Such an interactome network enables obtaining a digital twin of the cell in order to simulate different modifications in a real cell. For example, the interactome (and the initial graph thereof) enables assessing the effects of a drug, a gene editing process, or any environmental perturbation (e.g., temperature, or radiation) on a living cell.

[0083]

[0083] Each component of the cell may be one of genes, epigenetic states (e.g., DNA methylation), mRNA (e.g., protein coding RNA), ncRNA (i.e., non-coding RNA, including miRNA, IncRNA, siRNA, etc.), proteins (e.g., enzymes, transcription factors, structural proteins, antibodies, etc.), PTM states (i.e., protein with post translational modification, e.g., phosphorylation, acetylation, sumoylation / SUMOylation etc.), or metabolites (small organic molecules like sugars, amino acids, lipids, etc.).

[0084]

[0084] Such interactomes are thereby may be used in drug target identification, In-silico screening, drug repurposing, drug discovery, or cell engineering.

[0085]

[0085] An example application of the method in drug target identification is presented in Figure 6. As known in the field, in such applications, differentially expressed genes (DEGs) 530 are obtained by comparing (step A) a healthy cell 510 and a diseased cell 520. Then the DEGs are mapped (step B) on an interactome. The network of the interactome is analysed (step C) to find potential drug target 580.

[0086]

[0086] Examples of the method as discussed above may form or be a part of such an application in drug target identification. In such examples, the method is provided by a graph of an interactome to be processed. The method processes the provided graph to determine communities and conduits and optionally outputs a second (i.e., simplified graph). Such a second graph is used in the mapping of the DEGs in step B above. Such examples improve the drug target identification as the interactome of a cell is a highly complex and large-scale network. A typical interactome may have about 20k nodes, and 250k (direct) interaction edges. Furthermore, about 220k of said interactions are directed.

[0087]

[0087] Directionality provides information on which of two interacting molecules (nodes) is the effector (i.e., upstream) and which is the target (i.e., downstream). The direction may be represented in the output layout by colouring node edges according to whether that edge is upstream or downstream of a user-selected node. The output layout is also direct. In other words, interactions shown within the output layout are direct interactions, which are not occurring through intermediate molecules. By focusing on interactions that are both direct and directed, the layout yields a concise and meaningful network that helps to prevent saturation and information overload. Examples of directed / undirected, and direct / indirect interaction are showed in Figure 7. In this figure a directed edge is shown with a solid line arrow while an undirected edge is a solid line segment. Furthermore, an indirect edge is shown using a dashed line.

[0088]

[0088] Most available interactomes are undirected. They further ignore the causality between the nodes and impair orientation in the graph. Furthermore, these interactome may comprise indirect interaction (i.e., transitive) edges which result in double counting and inaccuracy in the target identification. However, the output layout of the method is both direct and directed. In other words, interactions shown within said layout are direct interactions, which are not occurring through intermediate molecules.

[0089]

[0089] Thereby replacing an initial graph with a simplified outputted graph improves the analysis of the network and interaction between the components. This, in particular, improves the chance of successful therapeutic drug development by targeting the right drug target or molecule and decreases the risk of failure in trials.

[0090]

[0090] Figure 13 shows an example of the system, wherein the system is a client computer system, e.g., a workstation of a user. The client computer of the example comprises a central processing unit (CPU) 1010 connected to an internal communication BUS 1000, a random-access memory (RAM) 1070 also connected to the BUS. The client computer is further provided with a graphical processing unit (GPU) 1110 which is associated with a video random access memory 1100 connected to the BUS. Video RAM 1100 is also known in the art as frame buffer. A mass storage device controller 1020 manages accesses to a mass memory device, such as hard drive 1030. Mass memory devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks 1040. Any of the foregoing may be supplemented by, or incorporated in, specially designed ASICs (application- specific integrated circuits). A network adapter 1050 manages accesses to a network 1060. The client computer may also include a haptic device 1090 such as cursor control device, a keyboard or the like. A cursor control device is used in the client computer to permit the user to selectively position a cursor at any desired location on display 1080. In addition, the cursor control device allows the user to select various commands, and input control signals. The cursor control device includes a number of signal generation devices for input control signals to system. Typically, a cursor control device may be a mouse, the button of the mouse being used to generate the signals. Alternatively or additionally, the client computer system may comprise a sensitive pad, and / or a sensitive screen.

[0091]

[0091] The computer program may comprise instructions executable by a computer, the instructions comprising means for causing the above system to perform the method. The program may be recordable on any data storage medium, including the memory of the system. The program may for example be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The program may be implemented as an apparatus, for example a product tangibly embodied in a machine- readable storage device for execution by a programmable processor. Method steps may be performed by a programmable processor executing a program of instructions to perform functions of the method by operating on input data and generating output. The processor may thus be programmable and coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. The application program may be implemented in a high- level procedural or object-oriented programming language, or in assembly or machine language if desired. In any case, the language may be a compiled or interpreted language. The program may be a full installation program or an update program. Application of the program on the system results in any case in instructions for performing the method. The computer program may alternatively be stored and executed on a server of a cloud computing environment, the server being in communication across a network with one or more clients. In such a case a processing unit executes the instructions comprised by the program, thereby causing the method to be performed on the cloud computing environment.

[0092] EXAMPLES

[0093]

[0092] The present invention is further illustrated by the following example implementation.

[0094]

[0093] The implementation relates to deciphering cells. Cells, the building blocks of life, are one of the most complex naturally occurring entities. Any given cell may be undergoing millions of biological processes, signalling cascades, chemical and cellular interactions at any given moment in time. In healthy cells, all these processes must work in perfect symphony to ensure normal cell function. Sometimes, however, this molecular choreography can turn into chaos and disease, due to mutations, stress, or deleterious environmental conditions. With the advent of molecular biology, there have been significant advances in cell and disease mechanism understanding. Within a decade after publication of the human genome in 2001, for example, variants in over 3000 genes were established to be associated with over 2000 human disorders. In spite of this progress, non-mendelian and polygenic diseases continue to pose significant challenges in disease mechanism elucidation and require interpretive approaches that go beyond the “one- gene / one-enzyme / one-function” paradigm.

[0095]

[0094] In systems biology approaches, the above challenges are addressed by considering the cell and its processes as a system and deciphering the properties of that system. Cells can be thought of as complex webs of molecular interactions, the totality of which constitutes a cellular “interactome” network. Interactome networks are typically represented with nodes, to represent genes, proteins, or other components; and edges, which represent connections or interactions between nodes. Interactome networks are scale-free networks, i.e., they include both highly connected nodes and lowly connected ones.

[0096]

[0095] In classical network visualisation, nodes are typically depicted with a shape such as a circle, and interactions are represented by lines (known also as edges) between these nodes. Although intuitive, such classical approaches have a number of limitations, particularly with regard to increasing network complexity in scale-free networks: since the positioning of edges is arbitrary, they can frequently overlap with each other, which obfuscates the paths of individual links and creates large numbers of meaningless intersections between edges. in classical representation approaches, edges can also intersect with multiple nodes, even where a true interaction does not exist, causing ambiguity in interpretation. addition of a new edge to an existing network usually results in its overlapping with existing network features, causing further difficulties in scalability and interpretation.

[0097]

[0096] These limitations give rise to so-called “interaction hairballs” in representations of cellular networks. As network complexity increases, the number of overlapping nodes and edges increases, and thereby, the ease of interpretation of the network decreases.

[0098]

[0097] The implementation is related to an improved approach to represent a network. Such an improvement is realised in different aspects: nodes are clustered into communities on the basis of their connectivity with each other, meaning that genes and proteins that interact more together are represented more closely together; conduits connect communities, and edges that connect nodes within different communities are bundled within conduits. This prevents meaningless intersections of node edges; nodes repel each other, akin to charged particles, to ensure they don’t overlap in the visualisation; when selected, a given node and its interacting edges and nodes are highlighted in the visualisation, ensuring the most relevant data is presented to the user; and edges provide directionality information on the interaction between nodes, by means of an intuitive colour scheme.

[0099]

[0098] Figure 8 shows an example of conduits. Conceptually, bundling edges into conduits can be thought of as grouping individual wires together within a main cable, where the wires represent edges. At each end of the cable, individual wires are exposed and link to their respective nodes, but the main cable between clusters of nodes neatly groups the wires together. By using this regrouping into conduits, the implementation thereby keeps the edges (of each group) do not overlap. This enables clearer and more straightforward interpretation.

[0100]

[0099] In the implementation, the nodes of the network may represent any of genes (e.g., a sequence of DNA), epigenetic states (e.g., DNA methylation), mRNA (e.g., protein coding RNA), ncRNA (e.g., non-coding RNA, includes miRNA, IncRNA, siRNA, etc.), proteins (e.g., enzymes, transcription factors, structural proteins, antibodies, etc.), PTM states (e.g., protein with post translational modification, like phosphorylation, acetylation, sumoylation, etc., metabolites (e.g., small organic molecules like sugars, amino acids, lipids, etc.).

[0101]

[0100] The methodology and the detailed algorithm of the implementation are now discussed.

[0102]

[0101] The starting point of building an improved representation of a complex network is the input interactome. The implementation receives such an input as an adjacency matrix that describes which nodes (e.g., genes, proteins, etc.) interact with each other. The implementation then determines edges to represents the interactions and convert the adjacency matrix to a graph. The implementation performs the conversion utilising the NetworkX package in python. The NetworkX packages is discussed in Arie et al., “Exploring network structure, dynamics, and function using NetworkX”, in Proceedings of the 7th Python in Science Conference (SciPy2008), Gael Varoquaux, Travis Vaught, and Jarrod Millman (Eds), (Pasadena, CA USA), pp. 11-15, Aug 2008, which is incorporated herein by reference.

[0103]

[0102] Next, the implementation applies the Leiden algorithm to cluster nodes into communities, according to the number of interactions they have with each other, as discussed above with respect to Figure 4. The implementation also computes a subgraph for each of the resulting clusters, from which the implementation generates a virtual node with edges to all subgraph nodes.

[0104]

[0103] The implementation then recursively applies the Leiden Algorithm to clusters until a defined Leiden threshold is reached, or the number of nodes considered for clustering falls below 10.

[0105]

[0104] The implementation, then visualises the network. In the final visualisation of the, the implementation positions the clusters according to the number of Leiden iterations performed, with larger numbers of iterations resulting in clusters being positioned further out from the centre of the network, and vice-versa. In said visualisation, the virtual nodes are linked by conduits, which contain the clustered edges from real nodes. In other words, interaction edges from nodes that span communities (i.e. inter-community edges) are linked to virtual nodes, and bundled within a conduit that links one virtual node to another. At each end of a conduit, the edges split back out to connect to their respective nodes. The implementation removes the virtual nodes from the final visualisation and presents the conduits that link edges between nodes.

[0106]

[0105] The visualisation output layout obtained by the implementation enables to visualise and represent complex cellular networks with superior scale and interpretability. This is best exemplified by its application to an example of human interactome. The human interactome includes 147,608 interactions, consisting of 16,039 proteins / genes, 347 miRNAs and 29 IncRNAs. The output layout is both direct and directed. Directionality provides information on which of two interacting molecules is the effector and which is the target and is represented in the output layout by colouring node edges according to whether that edge is upstream or downstream of a user-selected node. The output layout is also direct. In other words, interactions shown within the output layout are direct interactions, which are not occurring through intermediate molecules. By focusing on interactions that are both direct and directed, the layout yields a concise and meaningful network that helps to prevent saturation and information overload.

[0107]

[0106] User experience of the final visualisation obtained from the implementation is now discussed.

[0108]

[0107] From the user perspective, the output layout offers a seamless and intuitive way to query the human interactome and efficiently explore interactions between genes and proteins. Upon loading, the output layout provides to users a visual representation of the interactome, with clusters, conduits, and node locations described above.

[0109]

[0108] Figure 9 shows an example of an initial output layout user. The outputted layout also enables users to query the interactome. When users search for a given entity of interest, for example, a gene or a protein, the implementation highlights the entity of interest in the visualisation as well as its interactions. Upstream nodes are represented by pink edges and downstream nodes are denoted by green edges. Non-interacting edges are darkened out, aiding visualisation.

[0110]

[0109] Users can discern the node type (e.g. IncRNA, mRNA, miRNA, Protein / Gene) via a differentiating colour scheme. By default, edges that link interacting nodes will be represented in Blueprint style, that is to say that relevant edges are clustered into conduits, according to the Blueprint algorithm described above. As well as searching across the interactome for a given node of interest, users can click nodes within the interactome to interactively explore nodes, enabling rapid identification of interactions of interacting nodes.

[0111]

[0110] In the graphical interface, users are presented with a panel that, following a node search, presents details on the interacting nodes. Through this functionality, users can easily ascertain what genes or proteins are interacting with their node of interest, and hover over the listing to highlight the relevant interacting node on the Blueprint. Additionally, users can click the left-hand panel to reveal a short description of the node, and in the case of protein nodes, its protein structure. In a query for CHD8 for instance as shown in Figure 9, the implementation identifies that CTNNB1, which encodes [3- catenin, is an upstream interacting protein. Figure 10 highlights the interacting node CTNNB 1.This result is in agreement with the literature as the article Masaaki Nishiyama, Arthur I. Skoultchi & Keiichi I. Nakayama (2012) Histone Hl Recruitment by CHD8 Is Essential for Suppression of the Wnt-P-Catenin Signalling Pathway, Molecular and Cellular Biology, 32:2, 501-512). An export mechanism also enables users to retrieve the list of interacting nodes from the Blueprint for utilisation in downstream reporting or analyses, such as gene set enrichment analysis, for instance.

[0112]

[0111] Figure 11 shows the classic “Flight” representation, activated by a simple user toggle. Additionally, users may select multiple nodes simultaneously. When a user makes such a selection, a gene ontology (GO) enrichment analysis is automatically launched and run for the selected nodes. The GO results are displayed directly within the Blueprint interface, facilitating rapid assessment of biological functions of node clusters.

[0113]

[0112] Figure 12 shows an example of a classical representation of an interaction network (top) and the output layout of the method. As it seems, since interactions are represented simply by edges between nodes, interpretation is challenging as a result of large numbers of overlapping nodes and edges. On the other hand, in the output layout the classical interaction edges are replaced with conduits that merge edges between node clusters, readily facilitating interpretation.

Claims

CLAIMS1. A computer-implemented method for processing an initial graph, the initial graph representing a connectivity of a plurality of entities, said method comprising: providing (S10) the initial graph, said initial graph comprising a plurality of initial nodes and a plurality of initial edges, each initial edge connecting two initial nodes; determining (S20) a hierarchy of a plurality of communities at a plurality of levels, each community being respective to a level of said plurality of levels and comprising a respective cluster of the initial nodes; determining (S30) one or more conduits, each conduit connecting a first determined community at a first level of said plurality of levels and a second determined community at a second level of said plurality of levels, the first level being different from the second level, each conduit comprising a respective group of the initial edges and connecting the respective cluster of the initial nodes of the first community to the respective cluster of the initial nodes of the second community; and outputting (S40) a final graph based on the initial graph, the determined hierarchy of plurality of communities and the determined one or more conduits; the final graph representing said connectivity of said plurality of entities.

2. The method of claim 1, wherein the determining (S30) of the one or more conduits comprises: determining (S31) a plurality of virtual nodes, each respective to a determined community; and determining (S32) at least one conduit between at least one pair of the determined virtual nodes, said at least one pair being respective to a first determined community and a second determined community.

3. The method of claim 2, wherein the outputting (S40) of the final graph comprises:for each determined conduit, outputting one secondary edge between the two determined virtual nodes of the two respective determined communities of the conduit; for each community at the highest level of said plurality of levels, outputting a subgraph comprising:• a subpart of the initial graph consisting of the initial nodes of the community and one or more of the initial edges connecting two initial nodes of said community; and• for each initial node of said subpart, one secondary edge which connects the initial node to the respective virtual node of said community.

4. The method of any of claims 1 to 3, wherein the determining (S20) of a hierarchy of plurality of communities comprises applying, on the plurality of initial nodes, one or more iterations of a community detection algorithm, preferably said community detection algorithm being a Leiden algorithm.

5. The method of claim 4, wherein the community detection algorithm comprises one or more of the following stopping criteria: a community detection threshold, and a minimum number of initial nodes in the respective cluster of each community.

6. The method of any of claims 5 to 6, wherein the outputting of the final graph comprises positioning each community using a force-directed graph drawing method using edge weights based on betweenness centrality.

7. The method of any of claims 1 to 6, wherein the initial graph is a directed graph.

8. A computer-implemented method of querying the final graph outputted by the method of any of claims 1 to 7, said method comprising: selecting (S60), by a user, an entity of said plurality of entities; andoutputting (S70) a subset of said final graph, the subset representing a structure of relationships between a subset of plurality of entities in connection with the selected entity.

9. The method of claim 8, wherein the outputting a subset of said final graph (S70) further comprises: determining, based on the determined hierarchy, at least one path between said selected entity to at least one other entity of said plurality of entities in connection with the selected entity; said at least one determined path comprising one or more determined conduits which connect the respective community of the selected entity to the respective community of the at least one other community via the determined hierarchy.

10. The method of claim 8, wherein the initial graph is a directed graph, and the outputted subset consists of: a first subset of the final graph representing, for the selected entity, upstream entities and connections; and a second subset of the final graph representing, for the selected entity, downstream entities and connections.

11. The method of any of claims 1 to 10, wherein the initial graph represents an interactome network of a cell, and each node of the plurality of initial nodes represents a component of the cell, and each edge of the plurality of initial edges represents a molecular interaction between two components of the cell.

12. The method of claim 11, wherein each component of the cell is one of genes, epigenetic states, mRNA, ncRNA, proteins, PTM states, metabolites.

13. A computer program comprising instructions for performing the method according to any one of claims 1 to 12.

14. A computer readable storage medium having recorded thereon the computer program of claim 13.

15. A system comprising a processor coupled to a memory and a graphical user interface, the memory having recorded thereon the computer program of claim 13.

Citation Information

Patent Citations

  • System and method for large scale information processing using data visualization for multi-scale communities

    US20170323028A1