Function Repository Resource:

HumanProteinInteractionNetwork

Source Notebook

Generate a graph of a specific portion of the human protein-protein interaction network for a gene

Contributed by: Annie Zhu

ResourceFunction["HumanProteinInteractionNetwork"][gene]

creates a Graph of a specific portion of the human protein-protein interaction network given a gene or node of the network.

Details and Options

The data is based on The Human Protein Atlas version 23.0 and Ensembl version 109.
Each vertex in the resulting graph represents a protein. The edges represent physical interactions between proteins (which often share the same name as the gene that codes for the protein).
These protein-protein interactions lie at the heart of all biological functions in our body.
ResourceFunction["HumanProteinInteractionNetwork"] accepts all options of Graph and GraphPlot, the ResourceFunction VertexSizeScaledGraph and the following Options:
"NetworkLayers"1how many layers from the starting gene is considered
"ScaledGraph"FalseVertexSize of the Graph scaled based on different graph measures
GraphPlot is used when total EdgeCount is more than 10000 and "ScaledGraph"-> True.
If "NetworkLayers" is 1, then we consider only the nodes connected to the input node or gene. If it is 2, then we consider all connections to the input and the connections to all these connections and so on.

Examples

Basic Examples (1) 

HumanProteinInteractionNetwork for gene A1CF:

In[1]:=
ResourceFunction["HumanProteinInteractionNetwork"]["A1CF"]
Out[1]=

Scope (1) 

Let us find the genes interacting with A1CF:

In[2]:=
ResourceFunction["HumanProteinInteractionNetwork"]["A1CF", VertexLabels -> "Name"]
Out[2]=
In[3]:=
DeleteCases[
 VertexList@
  ResourceFunction["HumanProteinInteractionNetwork"]["A1CF"], "A1CF"]
Out[3]=

Options (2) 

NetworkLayers (1) 

Choose the desired depth of the network:

In[4]:=
ResourceFunction["HumanProteinInteractionNetwork"]["AQP6", "NetworkLayers" -> 2]
Out[4]=

ScaledGraph (1) 

Choose if the VertexSize of the Graph is scaled based on its VertexDegree. When "ScaledGraph"->True we can pass other Options for ResourceFunction["VertexSizeScaledGraph"]:

In[5]:=
ResourceFunction["HumanProteinInteractionNetwork"]["A1CF", "NetworkLayers" -> 2, "ScaledGraph" -> True, "MaxVertexSize" -> 40, VertexStyle -> RGBColor[0.91, 0.68, 0], EdgeStyle -> RGBColor[0, 0.58, 0.61], VertexLabels -> Placed["Name", Tooltip]]
Out[5]=

Properties and Relations (2) 

For a really large graph, the Graph is shown as a summary box:

In[6]:=
gr = ResourceFunction["HumanProteinInteractionNetwork"]["C9orf24", "NetworkLayers" -> 5]
Out[6]=

GraphPlot can be used for visualization:

In[7]:=
GraphPlot@gr
Out[7]=

Neat Examples

In[8]:=
ResourceFunction["HumanProteinInteractionNetwork"]["C9orf24", "NetworkLayers" -> 2, "ScaledGraph" -> True, "MaxVertexSize" -> 40, VertexStyle -> RGBColor[0.91, 0.68, 0], EdgeStyle -> RGBColor[0, 0.58, 0.61], GraphLayout -> "BalloonEmbedding", VertexLabels -> Placed["Name", Tooltip]]
Out[8]=

Publisher

WolframChemistry

Version History

  • 1.0.0 – 10 January 2025

Source Metadata

Related Resources

License Information