Cytoscape是一个著名的生物信息学工具显示和探索生物网络。R是一个功能强大的编程语言和环境统计和探索性数据分析。RCy3使用老年痴呆之间的通信R和Cytoscape,允许任何图表(如igraph, graphNEL或dataframes)认为,探索和操纵Cytoscape单击视觉界面。因此,通过RCy3,这两个完全不同的,非常有用的生物信息学软件环境相连,相互加强,为探索生物数据提供了新的可能性。

1安装

如果(!“RCy3”% % installed.packages ()) {install.packages (“BiocManager”) BiocManager::安装(“RCy3”)}图书馆(RCy3)

2先决条件

除了这个包(RCy3),你将需要:

3开始

首先,发射Cytoscape并保持使用RCy3运行时。确认您已安装并运行的一切:

cytoscapeVersionInfo cytoscapePing () ()

4我的第一个网络

让我们创建一个从一些基本的R Cytoscape网络对象

节点< - data.frame (id = c(“节点0”、“节点1”,“节点2”、“节点3”),群= c (“A”、“A”、“B”,“B”), #直言字符串得分= as.integer (c(20、10、15、5)), #整数stringsAsFactors = FALSE)边缘< - data.frame(源= c(“节点0”、“节点0”,“节点0”、“节点2”),目标= c(“节点1”、“节点2”、“节点3”、“节点3”),交互= c(“抑制”、“互动”、“激活”、“交互”),#可选的重量= c(5.1, 3.0, 5.2, 9.9), #数字stringsAsFactors = FALSE) createNetworkFromDataFrames(节点、边title =“我的第一个网络”,收集=“DataFrame榜样”)

4.1开关的风格

看看选框风格!

setVisualStyle(字幕)

4.2我自己的风格

创建自己的风格与填充节点属性映射和一些缺省值

style.name = " myStyle "违约< -列表(NODE_SHAPE =“钻石”,NODE_SIZE = 30, EDGE_TRANSPARENCY = 120, NODE_LABEL_POSITION =“W E c, 0.00, 0.00“) nodeLabels < - mapVisualProperty(“节点标签”,“id”,“p”) nodeFills < - mapVisualProperty(“节点填充颜色”,“组”,“d”, c (“A”、“B”), c (“# FF9900”、“# 66 aaaa级”))arrowShapes < - mapVisualProperty(“目标箭头形状的边缘,“互动”,“d”, c(“激活”,“抑制”,“交互”),c(“箭头”、“T”、“没有”))edgeWidth < - mapVisualProperty(“边缘宽度”、“重量”,“p”) createVisualStyle (style.name、违约、列表(nodeLabels、nodeFills arrowShapes, edgeWidth)) setVisualStyle (style.name)

Pro-tip:如果你想设置NODE_WIDTH NODE_HEIGHT独立,您还需要解锁的节点维度与…

style.name lockNodeDimensions(假)

5Bioconductor图例子

或者,您可能希望从Bioconductor graphNEL对象。这里我们在R,创建一个4-node图寄给Cytoscape显示和布局。为了简单起见,没有节点属性和不包括视觉风格;这些主题在后续步骤的介绍。

g = new (graphNEL, edgemode =“导演”)g =图::addNode (A、g) g =图::addNode (' D ' g) g =图::addNode (“C”, g,边缘=列表(' D ')) g =图::addNode (B, g,边缘=列表(C (' A ', ' D ', ' C '))) createNetworkFromGraph (g, title =“简单网络”,收集= graphNEL例子)

您现在应该拥有这个4-node图的结构基础,默认风格。幸运的是,Cytoscape有内置呈现规则的(除非另有指示)节点和边呈现和一个默认布局算法(用户需求)。

5.1添加节点属性

我们经常知道很多关于图的节点和边。通过视觉传达这个信息,图表更容易探索。例如,我们可能知道蛋白质磷酸化蛋白B, A是一个激酶和B一个转录因子,和他们的mRNA表达(相比控制)是一个log2褶皱变化分别为1.8和3.2。Cytoscape的核心功能之一是视觉风格,这允许您指定数据值(例如,激酶”,转录因子”;表达式比率)应该传达视觉图形的属性(例如,节点形状,节点颜色或大小)。

我们继续简单4-node图,添加两种类型数据值(moleculeType”和log2fc”)。最简单的方法是通过data.frames。然而,您还可以包括属性和原始的图模型作为Bioconductor图,igraphs或data.frames,然后使用所提供的创建函数来创建和加载在一个步骤(见createNetworkFromGraph,createNetworkFromIgraphcreateNetworkFromDataFrames功能)。查看其他更多exampls小品文。

df < - data.frame (moleculeType = c(激酶,TF,细胞因子,细胞因子),log2fc = c (1.8, 3.0, -1.2, -2.5), row.names = c (A, B, c, D), # row.names =节点名称stringsAsFactors = FALSE) #重要加载字符串时!loadTableData (df)

注意,添加属性本身并不导致图的外观变化。这种变化要求您指定并应用视觉风格映射,将被解释的下一个部分。但是,您可以检查这些属性在Cytoscape,使用Cytoscape的面板数据立即显示与所选节点相关联数据值低于Cytoscape窗口。

5.2修改显示:违约和映射

RCy3不仅提供了一个简单的方法来改变默认样式,但更有趣的是,RCy3还提供了便利映射您的数据的视觉风格,例如,允许大小、形状和颜色的节点和边由你与这些节点和边相关的数据。

首先,让我们改变默认值。

setNodeShapeDefault(八角)setNodeColorDefault (# AAFF88) setNodeSizeDefault (60) setNodeFontSizeDefault (30)

现在,我们将添加一些视觉映射。让我们“moleculeType”映射到节点的形状。首先,我们可以看到在Cytoscape形状是可用的,然后我们可以定义映射与配对列表。

getNodeShapes() #钻石、椭圆、梯形、三角形等列< -“moleculeType”值< - c(“激酶”、“特遣部队”,“细胞因子”)形状< - c(“钻石”、“三角形”,“矩形”)setNodeShapeMapping(列、价值观、形状)

节点映射的一个例子离散样式定义为每个映射,离散值。这是用于分类数据(如类型),只有一组有限的可能值。这是相比之下其他两个其他类型的映射:连续透传。表达式的值,例如,我们会想要使用连续映射(例如,节点颜色),定义一组小的控制点,而不是显式的颜色为每个可能的数据值。Cytoscape只会插入控制点提供梯度之间的颜色。现在让我们尝试

列< -“log2fc”控制。点< - c(-3.0, 0.0, 3.0)颜色< - c (# 5588 dd, ' # FFFFFF ', ' # DD8855 ') setNodeColorMapping(列,控制。点,颜色)

注意,有三个颜色,三个控制点。然而,您还可以指定两个额外的颜色除了控制点的数量如果你想设置极端(或界外)颜色值小于或大于你的控制点。

控制。点< - c(-2.0, 0.0, 2.0)颜色< - c (# 2255 cc, # 5588 dd, ' # FFFFFF ', ' # DD8855 ', ' # CC5522 ') setNodeColorMapping(列,控制。点,颜色)

现在,添加一个节点大小规则,使用log2fc再次控制节点值。

控制。点= c(-3.0, 2.0, 3.0)尺寸= c (20、80、90) setNodeSizeMapping(列,控制。点,大小)

如果你还记得第三类型的映射,透传,我们可以看到它已经在我们当前的网络工作的例子。节点的标签!默认情况下,的名字使用列映射到节点标签属性透传逻辑:直接传递到样式属性的值。

5.3选择节点

现在让我们尝试选择节点Cytoscape从C r .选择节点的名字:

selectNodes (' C ', '名称')
getSelectedNodes ()

现在我们希望所选节点扩展到包括第一个已经选择的邻居节点b,这是一个常见的操作:例如,在选择一个或多个节点基于实验数据或注释,您可能想要探索这些交互上下文中的伙伴(在蛋白质网络)或相对于上游和下游信号或代谢网络的合作伙伴。类型:

selectFirstNeighbors ()

现在您将看到三个节点选择。得到他们的名字回到R列表:

node.names < - getSelectedNodes ()

对取消选择是最后,你期望通过一位将军clearSelection功能:

clearSelection () ? clearSelection

5.4储蓄和出口

会话文件保存一切。与大多数项目软件,我们建议经常保存!

# .cys saveSession (“vignette_session”)

请注意:如果你不指定完整路径,文件将被保存在R相对于您的当前工作目录。

5.4.1之前储蓄高分辨率图像文件

您可以导出极高分辨率的图像,包括向量图形格式。

full.path =粘贴(getwd (),“vignette_image”, 9 = ' / ') exportImage(完整。路径,PNG,变焦= 200)#。png exportImage比例200%(满。路径,PDF) #。pdf ? exportImage

6浏览可用的功能,命令和参数

RCy3功能

帮助(包= RCy3)
类别 描述 例子
应用程序 Cytoscape检查和管理应用程序。 getInstalledApps disableApp installApp () () ()
集合 网络信息集合。 getCollectionNetworks getCollectionList () ()
命令 构建任意cyr API或命令API方法通过标准,PUT、POST和DELETE协议。 commandsRun cyrestAPI commandsPOST cyrestGET () () () ()
CyNDEx 与从内部NDEx Cytoscape沟通。 exportNetworkToNDEx importNetworkFromNDEx () ()
Cytoscape系统 检查Cytoscape系统信息,包括版本和内存使用。 cytoscapeVersionInfo cytoscapePing () ()
过滤器 根据过滤条件选择节点和边。 createColumnFilter createDegreeFilter () ()
在Cytoscape处理组。 collapseGroup createGroup () ()
布局 执行布局除了获取和设置布局属性。 getLayoutNames layoutNetwork () ()
网络 创建和管理网络和网络检索信息,节点和边缘。 getNetworkSuid createNetworkFrom…()创建…FromNetwork () (), exportNetwork () getAllNodes () getEdgeCount (), getFirstNeighbors ()
网络选择 操纵选择网络的节点和边。 selectFirstNeighbors invertNodeSelection selectNodes () () ()
网络视图 执行视图操作除了获取和设置属性视图。 toggleGraphicsDetails exportImage fitContent getCurrentView () () () ()
会话 管理Cytoscape会话,包括保存、打开和关闭。 closeSession saveSession openSession () () ()
风格绕过 设置和清除绕过视觉属性的值。 hideNodes setEdgeLineStyleBypass setNodeColorBypass () () ()
风格违约 获取和设置视觉属性的默认值。 setEdgeLineWidthDefault setNodeShapeDefault () ()
风格的依赖关系 获取和设置风格的依赖关系。 lockNodeDimensions ()
风格映射 定义表的列值和视觉属性之间的映射。 setEdgeColorMapping setNodeSizeMapping updateStyleMapping mapVisualProperty () () () ()
风格 管理风格和检索通用属性相关的多个样式列表模式。 getArrowShapes exportVisualStyles setVisualStyle createVisualStyle () () () ()
风格值 检索当前视觉属性的值。 getNetworkZoom getEdgeColor getNodeWidth () () ()
管理表列和表列功能,如地图和重命名,以及加载和提取Cytoscape表数据。 mapTableColumn loadTableData renameTableColumn getTableColumns () () () ()
工具 执行操作在Cytoscape发现在工具菜单中。 diffusionBasic cybrowserDialog () ()
用户界面 控制面板的Cytoscape用户界面。 dockPanel floatPanel hidePanel () () ()

打开的文档的生活实例cyr API和命令API:

cyrestAPI () # cyr API commandsAPI() #命令API

可用的命令和参数列表在r .使用“帮助”顶级上市:

commandsHelp(“帮助”)

列表网络命令。请注意,“帮助”是可选的:

commandsHelp(“帮助网络”)

参数列表网络选择命令:

commandsHelp(网络选择“帮助”)

覆盖网络操作的基础知识。查看其他额外的小插曲amd更复杂的例子。当你准备使用一些真实的数据,查看其他基本和先进的教程,https://github.com/cytoscape/cytoscape-automation/tree/master/for-scripters/R

7更多的例子

别忘了看看这个包中的其他小插曲:

browseVignettes (“RCy3”)

此外,Cytoscape团队收集脚本从社区公共GitHub库https://github.com/cytoscape/cytoscape-automation/tree/master/for-scripters/R

8发展

在GitHub RCy3项目代码和文档维护:https://github.com/cytoscape/RCy3。跟踪所有的缺陷和功能的请求问题,https://github.com/cytoscape/RCy3/issues

9学分

10引用

附录

  1. 香农P, Markiel Ozier O, Baliga NS,王JT,鲸D,阿明N, Schwikowski B, Ideker t . 2003。Cytoscape:软件环境生物分子相互作用网络的集成模型。基因组研究》11月,13 (11):2498 - 504
  2. Huber W,凯里VJ, L,猎鹰,绅士r . 2007。图在分子生物学。BMC生物信息学。2007年9月27日,8。
  3. 小野K, Muetze T, Kolishovski G,香农P,德姆查克,b .老年痴呆:涡轮增压Cytoscape通过基于rest的API访问外部工具(版本1;裁判:2)批准。2015年F1000Research 4:478。