cytoscape及插件的使用生信分析工具生物信息软件

Cytoscape中文教程(2)

2018-09-09  本文已影响55人  Y大宽

7 支持的网络文件格式

Cytoscape可以读取一下格式的文件,这些文件实际是提供了cytoscape和其他一些工具的接口。

7.1 SIF格式

如果从一系列相互作用中构建一个图的话,那么简单的相互作用格式非才便利。这也是使得把不同的相互作用合并成一个大网络也容易多了,当然也可以方便的把一个新作用加到已经存在的数据里。最大的缺点是,这种格式不包括任何的展示信息。这会使cytoscape每次加载的时候,重新计算一个新的网络输出。
SIF中的line限定一个source node,一个关系类型(或叫edge type),一个或多个target nodes


image.png

第一行定义了两个nodes,分别是node1和node2,还有一个node1和node2之间的单独关系类型:type A。
第二行定义了三个新nodes,3,4,5.这里node2和第一行里的node2是一样的。第二行也定义了三种关系,都是typeB,node2是source,而3,4,5是targets。第二种格式是定义同种类型的多个关系,而他们有同一个source node的简写。
第三行显示了如何定义一个和其他nodes没关系的节点。这种形式对有连接关系的节点并不必要。因为这种关系的定义暗含了节点的识别。
重复录入被忽略。同样的nodes之间的多个边一定有不同的边的类型。例如,下面这个例子定义了同一对nodes的2个边。一个是typexx一个是typeyy


image.png
如果一个node想和它自己建立一个edge也是允许的(self-edges)
Node1 xx node1
Cytoscape中的每一个node和edge都有一个列名。对于SIF格式定义的网络,node的名字应是唯一的,被指定同一名字的node会作为一个nodes。每一个node的名字也会是这个file的默认名字(厨房其他的字符串使用style匹配于node)。这将会在STYLE部分讨论。每一个edge的名字会从source 的名字,target nodes加相互作用类型形成,例如

sourceName(edge Type)targetName
标签可以是任何字符串。全名或连接词都可以用于定语关系的类型。比如,geneFusion,coglnference,pullsdown,activates,degrades,inactivate,inhibits,phosphorylates,upregulate等。
在系统生物学中使用的一些普通的关系类型如下
PP-protein-protein interaction
PD-protein-DNA
(像转录因子结合在调节基因的上游)。
一些不怎么常见的作用类型是
pr .................. protein -> reaction
rc .................. reaction -> compound
cr .................. compound -> reaction
gl .................. genetic lethal relationship
pm .................. protein-metabolite interaction
mp .................. metabolite-protein interaction

分隔符

空格或制表符是简单的交互文件格式中最简单的分隔符号。然而,在一些实际例子中,空格可能会是一些node的名字或边的类型。这个 标准是,如果这个文件包含任何制表符,那么制表符用来划定范围和空格被认为是name的一部分。如果文件没有制表符,那么任何空格都是分别名字的分隔符,(名字不能有空格)。
如果你的网络没有看起来想edge名字的边和node名字,这也许意味着你的文件含有stray tab 蒙骗了parser。另一方面,如果你的网络中有全名一半的名字,那么你或许得用tabs分隔含空格的node 名字。
简单的交互作用文件储存在.SIF扩展名的文件中,并且cytoscape会识别这种扩展名。

7.2 NNF

NNF格式是一种非常简单的格式,不像SIF格式那样需要可选择的对每个node 的单个嵌套网络进行指派。不需要其他的node 列被定义。只有2种可能的line格式
A一个node“node”包含在一个网络中
Network node
B,2个nodes联系在一起包含在一个网络中
Network node1 interaction node2
如果一个网络名字(first entry on a line)看起来想一个node name (第2列或第4列),这个网络将会以同样的名字嵌套。如果一个名字之前已经被定义为一个网络(在第一列已经被定义),后来作为一个node name显示(第2列或第4列),那么之前定义的网络将会以同样的名字在这个node中被嵌套。综合来说,任何时候一个名字都被使用两次,一个网络名字,一个node 名字。这暗含了,这个网络将被嵌套在同样名字的node中。另外,comments或将被包含在所有line中。
注释开始的标志是#,并继续到line 结尾。尾端注释(data line后面)和完全空白lines是被允许的。一定注意,如果你加载了多个NNF文件,他们会被认为是一个长的成串的NNF 文件。如果你想在一个名字里嵌入空格,制表符或反斜杠,你得通过前面价格反斜杠退出,这样依赖,一个嵌套的反斜杠变成了两个,一个嵌套的空格跟着一个反斜杠。
例子
示例1


image.png
image.png
image.png
image.png
image.png

7.3GML格式

和SIF格式相比,GML是一种非常丰富的图表格式语言,可以被很多其他的网络可视化包支持。GML文件格式说明可以看下面的

http://www.infosun.fmi.uni-passau.de/Graphlet/GML/

通常情况下,修改GML file的内容是不必须的。一旦一个网络在SIF格式下被创建,被输出,那么这个layout就被保存到GML。GML中的特性将会导致当GML文件加载的时候,新的style名字为Filename.style。

7.4 XGMML 格式

这种格式是GML的XML演化。除了网络数据,XGMML包含node,edge,network列的数据。XGMML文件格式可以见下地址

http://cgi5.cs.rpi.edu/research/groups/pb/punin/public_html/XGMML/

XGMML现在比GML更胜一筹,因为它与所有XML文件类型联系更加容易。如果你不确定使用什么,那就选择XGMML.

有一个JAVA系统特性(cytoscape.xgmml.repair.bare.ampersands)可以被设置为“true“,如果你咋读取旧文件有问题时。当XGMML文件或会话不能被正确读取时,你可以用这个功能。这会拖慢读取过程,但是你想视图修补这种文件时,还是可行的。

7.5 SBML (Systems Biology Markup Language) Format

The Systems Biology Markup Language (SBML) is an XML format to describe biochemical networks. SBML file format specification is available at:
http://sbml.org/documents/

7.6. BioPAX (Biological PAthways eXchange) Format

BioPAX is an OWL (Web Ontology Language) document designed to exchange biological pathways data. The complete set of documents for this format is available at:

http://www.biopax.org/

7.7. PSI-MI Format

The PSI-MI format is a data exchange format for protein-protein interactions. It is an XML format used to describe PPI and associated data. PSI-MI XML format specification is available at:

http://psidev.sourceforge.net/mi/xml/doc/user/

7.8. GraphML

GraphML is a comprehensive and easy-to-use file format for graphs. It is based on XML. The complete set of documents for this format is available at:

http://graphml.graphdrawing.org/

7.9 delimited text table 和excel工作表(分隔的文本文件和excel工作表)

Cytoscape可以本地支持MS excel files(.xls,xlsx)和分隔的文本文件。这些文件中的表格可以有网络数据,边列,用户可以定义含有source nodes,targets nodes,作用类型的列,还有边列。一些网络分析工具想igraph((http://cneurocvs.rmki.kfki.hu/igraph/),可以把graph文件以简单的文本文件形式输出。cytoscape可以读取这些text文件,并且从他们建立网络,想获取更多细节,请阅读creating network部分。

8.node和edge列数据

相互作用网络作为独立的模型是非常有用的。但是,但是他们和其他信息整合的时候对解决科学问题是极其有力的。Cytoscape允许用户添加任意的node,edge和网络信作为node,edge和网络数据列,添加到cytoscape。这可以包括,比如,在PP交互作用中添加一个基因的注释数据或置信度。这些列数据可以以用户自定义的方式可视化,这可以通过通过设置一个从列到网络特性(颜色,形状等)的匹配。这部分将在STYLES部分进行详细讨论。http://manual.cytoscape.org/en/3.4.0/Styles.html#styles#(13部分)

8.1 输入数据列表文件

Cytoscape提供了从分格的文本文件和excel数据表格输入数据的支持

Sample data table 1


image.png

这个表格文件应该包含一个最主要的关键列和至少一个数据列。数据列的最大数目不限。Alias列是一个可选择的特征,使用数据的第一行作为列名。也可以从File-import-table-file定义每一列的名字。

基本操作

image.png

8.2 legacy cytoscape 属性格式

除了表格数据,当前cytoscape版本仍然可以使用之前的一些文件格式。Node和edge数据文件简单格式了:
node 数据文件以第一行列的名字开始(注意不能包含空格)。每个接下来的行包含node名字,接下来有等于符号和数据值。数字和文本仍然是最主要的数据类型。所有给定的列值必须有相同的类型。例如
FunctionalCategory
YAL001C = metabolism
YAR002W = apoptosis
YBL007C = ribosome
Edge数据文件
有相同的结构。除了边的名字(source node name),接着是带括号的相互作用类型,再接着是target node name。方向计数,所以转向source和target会指不同的边(或许这个边也不存在),边数据文件例子如下
InteractionStrength
YAL001C (pp) YBR043W = 0.82
YMR022W (pd) YDL112C = 0.441
YDL112C (pd) YMR022W = 0.9013
因为cytoscape把边数据当作有方向的,第二和第三跳变数据值指向2个不同的边(source和target相反,虽然nodes是相同的)。
每个数据列储存在分开的文件。节点和边数据文件使用同样的格式,并且后缀都是“.attrs”.
Node和edge数据通过file-import-table菜单,输入,就像data table文件一样。

当表达数据以表达矩阵上传的时候,会自动作为node data载入,除非有特别说明。
Node和edge数据列属于noes和edge,所以也是独立于网络的。给定的node和edge数据值会被应用于这些node和edge所有的复制本,不管这个数据文件或网络文件是否第一次输入。
Detailed file format(advanced users)
每个数据文件有一个行(header line),命名了数据的列的名字。另外,可选择性的可以有其他的meta-信息相关的数据列。格式如下
columnName (class=JavaClassName)
第一片领地总是列的名字:不能包含空格。If present, the class field defines the name of the class of the data values。举例,java.lang.string或string for strings,Java.lang.double或double for floating point values,java.lang.integer或integer for integer values,等。如果这些值是一个值的列表,这个类应该是列表中objiects 的类型。如果在headerline中没有类别被定义,cytoscape会试图从第一个值猜测类型。如果第一个值包含数字以floating point 的格式,那么cytoscape会认为是java.lang.double.,如果第一个值仅仅包含数字而没有小数点,cytoscape会认为是java.lang.integer,若都不是那cytoscape会认为是java.lang.string(字符串)。注意到第一个值可能会误导。例如
floatingPointDataColumn
firstName = 1
secondName = 2.5
这个例子中,第一个值cytoscape会认为这个值是整数型,而实际上是浮点数据。最安全的就是详细说明值的类型以防混淆。更好的格式是
floatingPointDataColumn (class=Double)
firstName = 1
secondName = 2.5
或者
floatingPointDataColumn
firstName = 1.0
secondName = 2.5
Every line past the first line identifies the name of an object (a node in a node data file or an edge in a edge data file) along with the String representation of the data value.
每一行下面的一行(?)确定了一个目标的名字(目标是node文件中的node或edge文件中的edge)还有这个数据值的字符串代表。分隔符总是一个等号。等会前或后的空格(空格和或tabs)会被忽略。这意味着你的名字和值可以包含空格,但是object名字不能包含等号并且,没有追踪空格的保证。Object名字一定是nodeID或Edge ID,就像在table panel最左边看到的。这些名字一定被精确复制,否则会匹配不上。

Edge names是下列格式

sourceName (edgeType) targetName
具体来说,是
sourceName space openParen edgeType closeParen space targetName
注意:制表符在edge names不允许有。Tabs可以用来从“=”分隔边name,但是不能存在于边名字本身。要注意到,这个格式不同于SIF文件格式中相互作用的类型。具体来说,SIF看起来是
sourceName edgeType targetName
或者
sourceName whiteSpace edgeType whiteSpace targetName
为说明值列表,可以使用下列句法
listDataColumnName (class=java.lang.String)
firstObjectName = (firstValue::secondValue::thirdValue)
secondObjectName = (onlyOneValue)
这个例子展示了一个数据,其值作为文本字符串列表被定义。第一个object有3个字符串,它的列表中有3个元素,然而第二个object只有一个元素。在一个列表的例子中,每个数据值使用列表语法(比如圆括号),每个原始有同样类型。另外,如果header line没有被定义,那么这个类型(class)会被推测。列表不被styles支持,病变不能匹配到网络特性。
 Newline feature新行的特征
有时数据值断行是必要的,因为有时node labels可能会花草过两行,这可以通过插入数据值才完成,比如
newlineDataColumn
YJL157C = This is a long\nline for a label.
Table Panel

image.png

Cytoscape启动时,Table panel就会在主窗口的有下部显示。这个视窗可以通过使用F5键隐藏和重现,也可以使用VIEW-show/hide table panel菜单实现。想其他面板一样,通过点击这个视窗右上角的图标可以对它进行漂浮设置。

使用视窗下面的三个标签项node table,edge table,network table可以在他们之间进行转换。默认,table panel 显示的是选择网络的所有nodes和edges的显示列。为了只显示选择的nodes和edges,可以点击左上角Change Table Mode 按钮

image.png
。可以通过 image.png
改变展示的列,并展示自己选择的列(点击他们选择不同的列,点击屏幕其他地方可以关闭列表)。

大部分列的值通过双击相应的cell可以编辑(只有ID不能)。新行特点可以通过Enter或“\n”插入。一旦完成编辑,点击面板外的编辑框外的区域,或者摁Shift-enter可以保存编辑结果。Esc退出,撤销改变。

Panel中的行可以以字母顺序排序,通过点击列的头名字。一个新列也可以创建,方法是使用Create new column image.png

。并且新列必须是以下四种类型之一:整数型,字符串,真数字(浮点数字)或布尔向量。通过Delete columns也可以删除列。注意:删除的列不仅从table panel删除,也会从cytoscape删除!而从panel remove并没有删除,仅仅是没有选择而已。

8.3 从外部公共数据库输入数据列表

从外部公共数据库输入node data columns也是可行的

比如BioMart(http://www.biomart.org).

基本操作

9 本体论和注释输入

Cytoscape中的注释储存在一系列本体论文件中(比如Gene ontology,或GO).一个本体论包含一系列受控词汇条目用来注释objects。例如,使用基因本体论,酿酒酵母CDC55基因有一个生物学功能是“protein biosynthesis”,GO为它指定了一个数字或GO ID:6412

GO 8150 biological_process

GO 7582 physiological processes

GO 8152 metabolism

GO 44238 primary metabolism

GO 19538 protein metabolism

GO 6412 protein biosynthesis

6412:蛋白质生物合成的可视化图形是

image.png
Cytoscape可以使用DAG(Directed Acyclic Graph有向无环图)注释网络中的目标。Ontology服务器地址(http://www.ncbi.nlm.nih.gov/pubmed/12066840)”)是允许你加载,搜寻和指定注释条目到网络中的节点或edge的。Cytoscape2.4现在有一个加强的GUI来家长本体论和相联系的注释,允许你本地或远程加载.

9.1本体论和注释文件的格式

Cytoscape本体论服务标准的文件格式是OBO和gene association。下面这个网站对格式做了详细解释

本体论和定义http://www.geneontology.org/GO.downloads.shtml#ont

当前的注释地址http://www.geneontology.org/GO.current.annotations.shtml

9.2本体论的默认list

Cytoscape提供了一系列OBO格式的本体论列表。如果可以联网,cytoscape可以直接加载本体论和注释文件,下面这个表列举了所包含的内容


image.png

虽然cytoscape可以家长所有种类的OBO格式的本体论文件,但是注释文件只和某一种特定类型的联系。因此,你需要提供争取的注释文件来注释nodes,edges,networks。例如,当你你可以用human gene association 的GO Full 本体论注释人类网络数据,但你不能不能联合使用人类疾病ontology file和human gene association file。因为,gene association文件只和GO兼容。

9.3 gene注释文件

Gene association文件只为gene ontology提供注释。这是一个物种特意的GO 条目注释文件。Gene assosiation文件只和基因本体论注释文件关联。
Sample gene association file(gene_association.sgd - annotation file for yeast):


image.png

9.4 加载ontology和注释

image.png

Cytoscape提供了一个图形界面供用户可以同时输入本体论和注释文件。
注意:所有数据源都是联网的,也就是用的话得保证网络通畅。
File-import-ontology and annotation从下拉菜单,选择gene association file 例如,如果你想注释这个酵母网络,那就选择“Gene Association file for Saccharomyces cerevisiae”.


image.png

上图下拉列表选择ontology data(OBO文件)。如果这个文件没有被加载,会显示红色。前三个文件是gene ontology files。你也可以加载其他的ontologies,但是你需要你自己的注释文件可以注释网络。


image.png
一旦点击了import,cytoscape会开始加载OBO和gene association文件。如果你选择GO full那可能需要的时间长些,因为这个文件太大了。
注意:当cytoscape完成加载后,加载窗口会自动关闭。所有匹配这个功能的列都有个前缀“annotation”,看起来是:annotation[column_name]
Note:cytoscapezhichi OBO格式的version1.0 1.2

10 列数据功能和方程

10.1列公式

介绍

列数据值可以公式化。典型的例子是=ABS($othercolumn+LOG(10.2))

公式模仿了excel但只能支持同一个网络,node和edge的其他列参考。因为cytoscape的列名可能包含空格,可选择性的括号,例如¥{a name with spaces}.反斜杠,左大括号和如果在列中出现,就得使用反斜杠escape。例如,exam{p\le would have to be written as {ex\am{p\le}.

字符串的内容写在双引号””里。为了潜入一个双引号或反斜杠,也不得不用另外一个反斜杠退出。因此,“\”要写为”\‘或“\”.公式的结果一定要和他们指定的列的类型匹配。规则还是很宽松的。例如,任何类型都能被字符串解释,所有数值型可以被布尔向量接受。不是0的TRUE,0是faulse。对于整数型数值列,浮点数据值会被转换,使用excel 的INT功能。圆括号可以用了组合,还有改变评价顺序。运算符优先顺序和标准的数学运算一样。

运算符

当前支持的是四种基本数学运算符^幂运算符(右运算符),+-*/左运算符。字符串连接符是&。支持的布林或逻辑运算符是比较运算符<,>,<=,>=,=,<>(不等于)。

支持的功能

Degree – the degree of a node.

InDegree – the indegree of a node.

OutDegree – the outdegree of a node.

SourceID – the ID of the source node of an edge.

TargetID – the ID of the target of an edge.

Numeric Functions

Abs – Returns the absolute value of a number.绝对值
ACos – Returns the arccosine of a number.反余弦
ASin – Returns the arcsine of a number.反正弦
ATan2 – Returns the arctangent of two numbers x and y.反正切
Average – Returns the average of a group of numbers.平均值
Cos – Returns the cosine of an angle given in radians.余弦
Cosh – Returns the hyperbolic sine of its argument.正弦
Count – Returns the number of numeric values in a list.计数
Degrees – Returns its argument converted from radians to degrees.
Exp – Returns e raised to a specified number.(期望值?)
Ln – Returns the natural logarithm of a number.自然对数
Log – Returns the logarithm of a number to a specified base.对数
Max – Returns the maximum of a group of numbers.最大值
Median – Returns the median of a list of numbers.中位数
Min – Returns the minimum of a group of numbers.最小值
Mod – Calculates the modulus of a number.模数
Pi – Returns an approximation of the value of p. p值
Radians – Returns its argument converted from degrees to radians.弧度
Round – Rounds a number to a specified number of decimal places.小数点位数
Sin – Returns the sine of an angle given in radians.正弦
Sinh – Returns the hyperbolic sine of its argument.双曲线正弦
Sqrt – Calculates the square root of a number.平方根
Tan – returns the tangent of its argument in radians.
Tanh – returns the hyperbolic tangent of its argument in radians.
Trunc – Truncates a number.
字符串功能
Concatenate – Concatenates two or more pieces of text.连接
Left – Returns a prefix of s string.
Len – Returns the length of a string.长度
Lower – Converts a string to lowercase.变小写
Mid – Selects a substring of some text.
Right – Returns a suffix of a string.
Substitute – Replaces some text with other text.替代
Text – Format a number using the Java DecimalFormat class’ conventions.本文化
Upper – Converts a string to uppercase.大写
Value – Converts a string to a number. As.numeric
逻辑值功能
And – Returns the logical conjunction of any number of boolean values.
Not – Returns the logical negation of a boolean value.
Or – Returns the logical disjunction of any number of boolean values.
列表功能List Functions
First – Returns the first entry in a list.
Last – Returns the last entry in a list.
Nth – Returns the n-th entry in a list.
统计功能Statistical Functions
Largest – the kth largest value in a list.
GeoMean – the geometric mean of a set of numbers.
HarMean – the harmonic mean of a set of numbers.
Mode – the mode of a set of numbers.
NormDist – Returns the pdf or CDF of the normal distribution.
Permut – Returns the number of permutations for a given number of objects.
StDev - sample standard deviation.
Var – sample variance.
混合复杂功能Miscellaneous Functions
Combin - Returns the number of combinations for a given number of objects.
If – Returns one of two alternatives based on a boolean value.
ListToString – Returns a string representation of a list.
Now – Returns a string representation of the current date and time.
Today – returns a string representation of the current date.
陷阱pitfalls
最大的问题是有的列有空值null values。这不被允许会 报错。为了解决这个问题,我们支持下面的语句:${columnName:defaultValue}.意思是:如果columnName是null,那么缺省值就被使用,否则,推荐的值就呼被替代。指定的列一定被定义的列而不是随意的名字。另外一个潜在的问题是当有The other potential problem is when there are circular column reference dependencies. Circular dependencies will be detected at formula evaluation time and lead to a run-time error

有用的一个提示

当使用公式的时候,打开开发者log console会非要有用。公式查错会显示出来。

10.2公式建立

在table panel,选择一个非列表列单元格后,点击 image.png

就可以了。


image.png

在上图左侧选择一个功能,这里我们选择ABS,这列表的右边,可以定义一个或多个arguments,可以应用于一列也可以一个cell。如果选择的一列,这一列的值会被运用这个公式,并且结果值会动态更新。点击ADD可以增加一个内容,可以增加一个或多个,这要看functions接受多少条件了。对话的底部是当前公式的预览。Applyto可以选择应用公式的对象。点击OK就可以了。

上一篇 下一篇

猜你喜欢

热点阅读