7 支持的網絡文件格式
Cytoscape可以讀取一下格式的文件,這些文件實際是提供了cytoscape和其他一些工具的接口。
- Simple interaction file (SIF or .sif format)
- Nested network format (NNF or .nnf format)
- Graph Markup Language (GML or .gml format)
- XGMML (extensible graph markup and modelling language).
- SBML
- BioPAX
- PSI-MI Level 1 and 2.5
- GraphML
- Delimited text
- Excel Workbook (.xls, .xlsx)
- Cytoscape.js JSON
SIF格式只限定nodes和相互作用薛窥。其他的格式會儲存關于網絡展示儒飒,和其他網絡數據交換等一系列的額外信息。典型的诫惭,SIF文件翁锡,適用于第一次建立一個網絡文件。因為這非常容易在文本編輯器或電子表格里創(chuàng)建夕土。一旦這個相互作用被加載馆衔,網絡可視化執(zhí)行的話,這個網絡就可以被儲存為XGMML或XGMML格式怨绣,就可以和其他系統(tǒng)進行焦糊了角溃。所有的文件類型(除了Excel)都是text文件,你可以在普通的txt文件編輯器中查看篮撑。
7.1 SIF格式
如果從一系列相互作用中構建一個圖的話减细,那么簡單的相互作用格式非才便利。這也是使得把不同的相互作用合并成一個大網絡也容易多了赢笨,當然也可以方便的把一個新作用加到已經存在的數據里未蝌。最大的缺點是,這種格式不包括任何的展示信息质欲。這會使cytoscape每次加載的時候树埠,重新計算一個新的網絡輸出。
SIF中的line限定一個source node嘶伟,一個關系類型(或叫edge type)怎憋,一個或多個target nodes
第一行定義了兩個nodes,分別是node1和node2,還有一個node1和node2之間的單獨關系類型:type A绊袋。
第二行定義了三個新nodes毕匀,3,4癌别,5.這里node2和第一行里的node2是一樣的皂岔。第二行也定義了三種關系,都是typeB展姐,node2是source躁垛,而3,4圾笨,5是targets教馆。第二種格式是定義同種類型的多個關系,而他們有同一個source node的簡寫擂达。
第三行顯示了如何定義一個和其他nodes沒關系的節(jié)點土铺。這種形式對有連接關系的節(jié)點并不必要。因為這種關系的定義暗含了節(jié)點的識別板鬓。
重復錄入被忽略悲敷。同樣的nodes之間的多個邊一定有不同的邊的類型。例如俭令,下面這個例子定義了同一對nodes的2個邊后德。一個是typexx一個是typeyy
如果一個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等。
在系統(tǒng)生物學中使用的一些普通的關系類型如下
PP-protein-protein interaction
PD-protein-DNA
(像轉錄因子結合在調節(jié)基因的上游)套菜。
一些不怎么常見的作用類型是
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聯(lián)系在一起包含在一個網絡中
Network node1 interaction node2
如果一個網絡名字(first entry on a line)看起來想一個node name (第2列或第4列),這個網絡將會以同樣的名字嵌套者冤。如果一個名字之前已經被定義為一個網絡(在第一列已經被定義)肤视,后來作為一個node name顯示(第2列或第4列),那么之前定義的網絡將會以同樣的名字在這個node中被嵌套涉枫。綜合來說邢滑,任何時候一個名字都被使用兩次,一個網絡名字愿汰,一個node 名字困后。這暗含了,這個網絡將被嵌套在同樣名字的node中衬廷。另外摇予,comments或將被包含在所有l(wèi)ine中。
注釋開始的標志是#吗跋,并繼續(xù)到line 結尾侧戴。尾端注釋(data line后面)和完全空白lines是被允許的。一定注意,如果你加載了多個NNF文件救鲤,他們會被認為是一個長的成串的NNF 文件久窟。如果你想在一個名字里嵌入空格,制表符或反斜杠本缠,你得通過前面價格反斜杠退出斥扛,這樣依賴,一個嵌套的反斜杠變成了兩個丹锹,一個嵌套的空格跟著一個反斜杠稀颁。
例子
示例1
7.3GML格式
和SIF格式相比,GML是一種非常豐富的圖表格式語言楣黍,可以被很多其他的網絡可視化包支持匾灶。GML文件格式說明可以看下面的
http://www.infosun.fmi.uni-passau.de/Graphlet/GML/
通常情況下,修改GML file的內容是不必須的租漂。一旦一個網絡在SIF格式下被創(chuàng)建阶女,被輸出,那么這個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現(xiàn)在比GML更勝一籌,因為它與所有XML文件類型聯(lián)系更加容易台谢。如果你不確定使用什么寻狂,那就選擇XGMML.
有一個JAVA系統(tǒng)特性(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:
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文件,并且從他們建立網絡牡昆,想獲取更多細節(jié)姚炕,請閱讀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
這個表格文件應該包含一個最主要的關鍵列和至少一個數據列棺棵。數據列的最大數目不限楼咳。Alias列是一個可選擇的特征,使用數據的第一行作為列名烛恤。也可以從File-import-table-file定義每一列的名字母怜。
基本操作
- 1.file-import-table-file
- 2選擇一個datafile,可以是text可以是excel
- 3在Target table data里缚柏,選擇把數據輸入哪里去苹熏,這可以選擇已經存在的網絡集,一個特別的網絡币喧,或者可以選擇輸入數據到一個Unassigned table(一會說這個)
- 4.依賴于你選擇把數據輸入哪里轨域,你下一步可以選擇一個網絡集或具體的網絡。你也需要選擇輸入類型杀餐,data是node干发,edge還是網絡列。
- 5如果表格之前沒分隔好史翘,可以在Advanced options面板進行設置枉长。默認的分格是tab冀续。這一步對excel工作表來說非必須。
- 6.默認必峰,第一列是最主要的key列洪唐,必要的時候可以改變
- 7.點擊OK即可輸入
什么是未指定列表Unassigned table
對于cytoscape3.1,沒有指派他們到已經存在的網絡就輸入數據是可以的吼蚁,這意味著這些數據和當前已經載入的任何nodes和edge都沒有關系凭需。如果一個數據表被指定輸入,并且一個網絡后來被輸入匹配和nodes和edge 有關的數據桂敛,這些數據之間會自動聯(lián)系功炮。這對輸入一個非常大的文件(比如表達數據),對定義網絡中的可視化數據的風格style及后來載入單個網絡可視化這些數據都非常有用。比如對一個在線數據庫术唬,這些特征允許這些數據自動連接到可應用的任何網絡薪伏,而不必載入每個網絡的數據。
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是相同的)臂港。
每個數據列儲存在分開的文件森枪。節(jié)點和邊數據文件使用同樣的格式,并且后綴都是“.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
Cytoscape啟動時如孝,Table panel就會在主窗口的有下部顯示。這個視窗可以通過使用F5鍵隱藏和重現(xiàn)娩贷,也可以使用VIEW-show/hide table panel菜單實現(xiàn)第晰。想其他面板一樣,通過點擊這個視窗右上角的圖標可以對它進行漂浮設置彬祖。
使用視窗下面的三個標簽項node table茁瘦,edge table,network table可以在他們之間進行轉換储笑。默認甜熔,table panel 顯示的是選擇網絡的所有nodes和edges的顯示列。為了只顯示選擇的nodes和edges突倍,可以點擊左上角Change Table Mode 按鈕
腔稀。可以通過
改變展示的列羽历,并展示自己選擇的列(點擊他們選擇不同的列焊虏,點擊屏幕其他地方可以關閉列表)。
大部分列的值通過雙擊相應的cell可以編輯(只有ID不能)秕磷。新行特點可以通過Enter或“\n”插入诵闭。一旦完成編輯,點擊面板外的編輯框外的區(qū)域,或者摁Shift-enter可以保存編輯結果疏尿。Esc退出瘟芝,撤銷改變。
Panel中的行可以以字母順序排序润歉,通過點擊列的頭名字模狭。一個新列也可以創(chuàng)建,方法是使用Create new column踩衩。并且新列必須是以下四種類型之一:整數型嚼鹉,字符串,真數字(浮點數字)或布爾向量驱富。通過Delete columns也可以刪除列锚赤。注意:刪除的列不僅從table panel刪除,也會從cytoscape刪除褐鸥!而從panel remove并沒有刪除线脚,僅僅是沒有選擇而已。
8.3 從外部公共數據庫輸入數據列表
從外部公共數據庫輸入node data columns也是可行的
比如BioMart(http://www.biomart.org).
基本操作
- 1.加載網絡文件叫榕,比如galFfiltered.sif
- 2.file-import-table-public databases
-
3.第一次會有web services的選框浑侥,對這個例子來說,我們選擇ENSEMBLE GENES 73(SANGER UK)
In the Import Data Table from Web Services dialog, select a Data Source. Since galFiltered.sif is a yeast network, select ENSEMBL GENES - SACCHAROMYCES CEREVISIAE.
For Key Column in Cytoscape, select shared name for Column and Ensembl Gene ID for Data Type.
The type of identifier selected under Data Type must match what is used in the selected Column in the network.
Select the data columns you want to import.
Select Import.
When import is complete, you can see the newly imported data columns in the Table Panel.
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:蛋白質生物合成的可視化圖形是
Cytoscape可以使用DAG(Directed Acyclic Graph有向無環(huán)圖)注釋網絡中的目標。Ontology服務器地址(http://www.ncbi.nlm.nih.gov/pubmed/12066840)”)是允許你加載尖昏,搜尋和指定注釋條目到網絡中的節(jié)點或edge的仰税。Cytoscape2.4現(xiàn)在有一個加強的GUI來家長本體論和相聯(lián)系的注釋,允許你本地或遠程加載.
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格式的本體論列表陨簇。如果可以聯(lián)網,cytoscape可以直接加載本體論和注釋文件迹淌,下面這個表列舉了所包含的內容
雖然cytoscape可以家長所有種類的OBO格式的本體論文件河绽,但是注釋文件只和某一種特定類型的聯(lián)系。因此巍沙,你需要提供爭取的注釋文件來注釋nodes,edges荷鼠,networks句携。例如,當你你可以用human gene association 的GO Full 本體論注釋人類網絡數據允乐,但你不能不能聯(lián)合使用人類疾病ontology file和human gene association file矮嫉。因為削咆,gene association文件只和GO兼容。
9.3 gene注釋文件
Gene association文件只為gene ontology提供注釋蠢笋。這是一個物種特意的GO 條目注釋文件拨齐。Gene assosiation文件只和基因本體論注釋文件關聯(lián)。
Sample gene association file(gene_association.sgd - annotation file for yeast):
9.4 加載ontology和注釋
Cytoscape提供了一個圖形界面供用戶可以同時輸入本體論和注釋文件昨寞。
注意:所有數據源都是聯(lián)網的瞻惋,也就是用的話得保證網絡通暢。
File-import-ontology and annotation從下拉菜單援岩,選擇gene association file 例如歼狼,如果你想注釋這個酵母網絡,那就選擇“Gene Association file for Saccharomyces cerevisiae”.
上圖下拉列表選擇ontology data(OBO文件)享怀。如果這個文件沒有被加載羽峰,會顯示紅色。前三個文件是gene ontology files添瓷。你也可以加載其他的ontologies梅屉,但是你需要你自己的注釋文件可以注釋網絡。
一旦點擊了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}.反斜杠沙热,左大括號和am{p\le would have to be written as am{p\le}.
字符串的內容寫在雙引號””里。為了潛入一個雙引號或反斜杠究流,也不得不用另外一個反斜杠退出。因此策添,“\”要寫為”\‘或“\”.公式的結果一定要和他們指定的列的類型匹配白修。規(guī)則還是很寬松的。例如,任何類型都能被字符串解釋扒披,所有數值型可以被布爾向量接受值依。不是0的TRUE,0是faulse。對于整數型數值列碟案,浮點數據值會被轉換愿险,使用excel 的INT功能。圓括號可以用了組合价说,還有改變評價順序辆亏。運算符優(yōu)先順序和標準的數學運算一樣。
運算符
當前支持的是四種基本數學運算符^冪運算符(右運算符)熔任,+-*/左運算符褒链。字符串連接符是&。支持的布林或邏輯運算符是比較運算符<,>,<=,>=,=,<>(不等于)疑苔。
支持的功能
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.
統(tǒng)計功能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
有用的一個提示
當使用公式的時候扯夭,打開開發(fā)者log console會非要有用。公式查錯會顯示出來鞍匾。
10.2公式建立
在table panel交洗,選擇一個非列表列單元格后,點擊就可以了橡淑。
在上圖左側選擇一個功能构拳,這里我們選擇ABS,這列表的右邊梁棠,可以定義一個或多個arguments置森,可以應用于一列也可以一個cell。如果選擇的一列符糊,這一列的值會被運用這個公式凫海,并且結果值會動態(tài)更新。點擊ADD可以增加一個內容男娄,可以增加一個或多個行贪,這要看functions接受多少條件了把兔。對話的底部是當前公式的預覽。Applyto可以選擇應用公式的對象瓮顽。點擊OK就可以了。