Cytoscape基础教程笔记
转自:https://www.plob.org/article/6289.html
昨天开始学用Cytoscape,其tutorial分为两个部分,基础的和高级 的。基础教程又分成了四课:Getting Started、Filters & Editor、Fetching External Data和Expression Analysis。为防忘记,做个摘记。
第一课 新手上路
地址:http://wiki.cytoscape.org/Presentations/01_Get_Started
Cytoscape可以本地安装,也可以web start。软件得用java,所以要装JRE。我在Ubuntu下装了OpenJDK,可以运行。因为以前一直没把jnlp文件和java关联起来,所 以从没成功web start过,试了一下“课文”里给出的链接,似乎不太靠谱,总之是没法启动。
【Cytoscape基础教程笔记】启动Cytoscape后,得下载两个样例文件。以sif为后缀名的是蛋白相互作用网络信息,里面的蛋白以数字形式区别,以na为后缀名的是各数字id的注释,似乎两者的文件名必须相同才能关联起来。
sif文件的打开\导入有两种方式:File → Import → Network(Multiple File Types)或者直接Ctrol+L,na文件是File → Import → Node Attributes。Network导入之后有多种显示风格,2.8版默认风格下,圆圈是各蛋白,称为节点(node),其间各线为edge,代表相互 作用。点中圆圈就选中了一个节点,想要多选,可以采用同时按Shift的方法,也可以先在Select → Mouse Drag Selects设置好选node还是选edge,然后鼠标拖放,一选一大片。
此外还可以有目的地选择。比如可以Select → Nodes → By Name,然后输入蛋白id,即可选中此节点。大海捞针即告完成。此操作的快捷键是Ctrl+F。
如果已经选中了节点,还可以Select → Nodes → First neighbors of selected nodes,可将所选蛋白的直接相互作用蛋白选中,再选File → New → Network → From selected nodes, all edges,即将相互作用网络的一个子网络剥离出来。
Layout菜单的功能比较花哨,是关于相互作用网络图的组织原则的。可以乱试一通,一张一张放在ppt里唬人,呵呵。
一团乱麻般的相互作用网络图下是查看节点或连线所代表的信息的地方,称为data panel。按Attributes按钮会弹出一个小窗口,可供选择需要列出的栏目的名字,比如id,或者对应的基因名,当然这个基因名信息是从na文件里导入的。
乱麻左边的窗口是有多个tab的控制面板。Network那个tab里可以在导入的 sif里切换。VizMapper tab里可以定制显示样式,比如圆圈变成方形,或者变大一些,或者换个底色,连线换个粗细和颜色等等。如果莫名找不到的话,Cytoscape的菜单栏下 有几个快捷按钮,其中有一个可以打开VizMapper。各种样式设置好之后一定要点Apply,还可以新建或者另存,便于把所有的网络打上自创风格的烙 印。
Cytoscape还支持从网上直接导入相互作用网络,也是在File → Import → Network (Multiple File Types)一步,选择remote,然后输入url。从例题来看应该至少兼容SBML格式的。不过lin下代理我还是搞不定,这种“奢侈”的功能姐还是 表痴心妄想了……
第二课 筛选和编辑
地址见:http://wiki.cytoscape.org/Presentations/02_Filter_Edit
首先复习一下,还是以上一课那个sif和na文件。依次导入、选择显示基因名。课文里说要用到的插件不仅下载地址作废了,而且似乎并不需要。可能已经整合到基本的功能包里了。
现在开始玩玩筛选。首先用拖放选一大堆节点和连线(还是海选),然后Select → Use Filters,控制面板里即出现Filters tab,在此tab中点Options,在弹出的下拉菜单中选Create new filter。
然后开始定义筛选条件,比如连线的类型:在Filter Definition里选edge.interaction,然后点Add。此时指定了筛选依据,而具体条件还没指明。在Advanced里,输入 non_core或者core之类的连线类型,当然Y2H神马的也行啦。最后一定要按一下tab左下角的Apply。
此时选中了相互作用类型为non_core的节点和连线。之后可以进行多种操作。比如Edit → Delete Selected Nodes/Edges,这样这些non_core的东西就统统删除了,剩下你认为更可信的蛋白及其相互作用。
可是还有一些和其他蛋白没有相互作用的蛋白,我们要把它们找出来、删除。很简单,如 法炮制,仅仅把相互作用筛选条件换成“*”就行,选好后再利用New → Network → From selected nodes, selected edges,调整一下layout:Layout → spring-embedded layout,这张图里只有有相互作用的蛋白。不过其实任务还剩个尾巴,有些蛋白可与自身相互作用,这部分蛋白还在这张图里。课文里说可以手动搞定,不过 不晓得是否有批量处理的办法。
导入的文件也并不总是完美的,有时需要添加和删除某些节点和连线,此时需要用到控制 面板里的Editor tab。添加节点的话就在标有“Add a Node”的节点上点左键,然后把节点拖到右边的相互作用网络图里,在数据面板的Node Attribute Browser里可以看到新添的节点id为node0。在此窗口里点相应栏目,即可修改其属性,比如基因名之类的。
添加连线的话,在Editor tab里点“Directed Edge”,如法炮制,拖到右边图里某个节点上,确定相互作用的一方,然后把另一端拖到某个节点之上。连线属性在数据面板的Edge Attribute Browser里查看和修改。
删除:选中要删的东西,然后Edit → Delete Selected Nodes/Edges,此操作的快捷键是Del。
第三课 获取外部数据
地址见:http://wiki.cytoscape.org/Presentations/03_Download_Data
这一课要告诉我们:
a. 从外部服务(比如SGD和BIND)下载Cytocape格式的数据;
b. 用cPath插件获取外部数据,其中cPath从2.4版以后已经整合到Cytoscape核心包里了。
SGD是酵母的库,Saccharomyces Genome Database,提供physical和genetic相互作用的信息,提供sif格式的下载,地址 在:http://db.yeastgenome.org/cgi-bin/batchDownload。下载页面的说明挺简单,总之是指定想下的东西再 重定向到另外一个页面,然后另存为就行了。
BIND是Biomolecular Interaction Network Database,主要提供蛋白相互作用信息,现在整合到BOND库里了。下载地址是 http://bond.unleashedinformatics.com/,要注册,免费。登录后进入首页,搜索目标分子,搜到的相关信息分成五 类:summary、sequences、interactions、complexes和pathways。打开interactions,在结果栏的 右上角有导出功能,选择导出成sif格式即可。
另外还有Pathway Commons库,地址是http://www.pathwaycommons.org/。课文也不知道啥时候编的,说建成后会超过BIND库,瞧瞧网站 的意思,至少上线两年了,应该已经算建成了吧。目前已经整合的库包括:BioGRID、Cancer Cell Map、HPRD、HumanCyc、IMID、IntAct、MINT、NCI / Nature Pathway Interaction Database,具体的说明见Pathguide。说起来Pathguide也是个奇网站,是个介绍全部325个途径和相互作用相关的数据库的概况的数 据库,相当于目录或者提要。从这里你可以找到蛋白-蛋白相互作用、代谢途径、信号传导途径、表达途径、转录因子/基因调控网络、蛋白-复合物相互作用、 genetic相互作用网络、protein sequence focused等等类型的数据库,查看其概况,然后决定去哪个库搜索信息。
最后是用cPath插件从CPpath数据库直接获取数据,后者从08开始就不更新了,而且建议用户使用Pathway commons。
下载多个源的相互作用网络文件后,可以融合成一张图,需要用到Graph Merge插件。这个插件可能也整合进核心包了,疑似Plugins下的Advanced Network Merge。
第四课 表达分析
地址见:http://wiki.cytoscape.org/Presentations/04_Expression_Data
终于开始做正经事儿了,先唏嘘二点五秒钟~~
好了唏嘘完毕,开始学习。首先下载三个文件:galFiltered.sif、galExpData.pvals和galExpData.mrna。接下来通过操作下载的示例文件来学习:
1. 导入galFiltered.sif,弹出数据面板和结果面板,最大化画布,用spring-embedded风格显示。
2. 文本编辑器打开mrna文件,可以看到第一行是数据标签。对应于相互作用网络图,第一栏为节点名称,必须和sif文件里的节点名一模一样哟;第二栏是基因 座名,Cytoscape里目前不显示;后面各栏是表达信息。各栏之间用whitespace隔开。这个mrna应该就是芯片直接导出的数据的格式吧?
3. 导入表达信息:Import → Attribute/Expression Matrix...,快捷键Ctrl+E。导入后,Node Attribute Browser里就能看到这个节点的表达量了。
基础工作就此结束,下面要玩花哨的活儿了。
4. 首先可以根据表达量高低给节点上不同的颜色。在VizMapper里先新建个显示风格,然后双击Node color,选择按照某类表达量分类,选continuous mapping,然后点开下面那张颜色图设置阈值和颜色。别忘了按Apply哟。
下面是一些背景知识。Gal1、Gal4和Gal80都是酵母转录因子,在相互作用 网络里分别对应YBR020W、YPL248C和YML051W。相互作用有两种类型:protein-protein (pp)和protein-DNA (pd)。表达量信息分别是Gal1、Gal4和Gal80的表达异常情况下的值。现在我们要看这三个转录因子表达异常影响到的基因。
5. 首先要把pp相互作用除去。用filter和Delete Selected Nodes and Edges。然后用yFiles Organic layout查看剩下的连线。
6. 查看剩下的强烈诱导或抑制的节点,选择它们,选择其直接相邻节点,复制到新的相互作用图里便于查看。然后可以好好看看转录因子对不同蛋白的表达量的作用了。
第五课 使用Agilent Literature Search插件
地址见:http://wiki.cytoscape.org/Presentations/05_Literature
进入高级课程了,呵呵。其实就是完成了一半,换个fancy的名字而已。不过还是挺有效,觉得小有成就感。
本课中将要学到:
a. 利用Agilent Literature Search从文献搜索关键词中建立putative分子间联系的相互作用网络;
b. 研究插件建立的联系,删除自己认为不靠谱的;
c. 利用上下文信息改进搜索。
需要注意的是随着文献的增多,文中提供的提取文献信息的模型可能会过时。因此需要学会改进搜索。
首先要下载和安装Agilent Literature Search(ALS)插件。下载jar后放到plugins文件夹,关了重新开Cytoscape就可以了。打开Plugins → Agilent Literature Search,同意协议,弹出搜索设置框,设置搜索关键字、种属关键字、每页显示paper数,Edit下可以设置代理。设置好后按蓝色的小三角,结果框 显示paper海,同时画布上显示从文献信息里构建出来的相互作用网络。
文献搜索和网络构建的详细机制是这样的:首先根据关键词基于摘要和关键词搜索文献;然后扫描文章内容,不论是否包含搜索关键字,都创建一个由putative相互作用构成的网络。因此有时会看到没有指定要搜索的蛋白或者基因,除掉它们的话提高匹配的数量阈值就行了。
得到初步结果之后,接下来就是做paper民工的活计了。选中图里的连线,右键,选 择Evidence from Literature,弹出的小菜单包括Show Sentences from the Literature、Gather Evidence from the Literature、Extend Network from the Literature还有Highlight Search Terms。选择Show Sentences from the Literature,弹出窗口,里面是创建网络基于的文献语句。觉得不靠谱的话就右键点击该句子,然后Delete Sentence掉。此句对应的连线的所有句子都删除掉了,连线就很知趣地消失了,两个节点也不见了,强大呀~~~
除了以句子为判定单位,还可以以paper为判定单位。在文献搜索窗口的 “Query Matches”部分右键点击某篇paper,点“Delete Match”,该paper对应的连线就全部消失了。如果paper旁边有一个小的Cytoscape的logo,则右键菜单里会出现 “Highlight Match”一项。它的功能是高亮来自该paper的所有节点和连线(默认显示风格下,节点变黄,连线变红)。
最后,如果要保存搜索结果的话,搜索窗口的File菜单下有两个选项:“Load Search Results”和“Save Search Results”。后面的我就不废话啦。
接下来是手艺活儿:改进搜索。首先我们来熟悉一下搜索窗口里的各式奇门设置:a. “Extraction Controls”部分的下拉菜单中选,右上角 “Context”框里的关键词会想应改变;b. 每个搜索引擎的匹配数上限。公共搜索引擎太强大,匹配数上限设太高可能导致返回海量数据,进而导致超大型相互作用网络,进而导致……死机,所以还是谨慎为 妙;c. “Extraction Controls”下,“Interaction Lexicon”控制用于判定putative相互作用的动词的列表。选“limited”则只有句子里包含诸如激活、甲基化、切割之类的“高置信度”的 动词时才算作putative相互作用;选“relaxed”则范围放宽,诸如加入、提高、诱导之类的也算;d. View菜单下可选搜索引擎,只有三种:PM、OMIM和USPTO;e. “Search Controls”下的“Use Aliases”按钮,即可使用蛋白的姓名别名曾用名,比如p53就成了p53 OR trp53 OR tp53,这样搜索结果的完整性可大大提高;f. 输入关键词,一行一个,超过一个单词则需用引号括起来;g. “Context”框里不仅可以设置物种(其实删掉也无妨),还能指定主题,比如癌症、阿尔茨海默症等,可让搜索结果特异性更好。g. 如果你也是个CNS控,可以在“Query Editor”框里指定:(P53) AND Cancer AND (Science[ta] OR Nature[ta]),这个表达式的意思是搜索发表在S和N上的带有P53和Cancer关键字(也有可能带别名的)的paper。更多高级搜索的语法 见数据库的帮助文件,如我自己常用的PM:http://www.ncbi.nlm.nih.gov/books/NBK3827 /#pubmedhelp.Search_Field_Descrip。
所有都设好后按下方的蓝三角开始搜索。
在分析相互作用网络的过程中,也可以随时利用文献搜索。比如右击某条连 线,LinkOut → Entrez → Pubmed,选择后打开默认浏览器,显示PM搜索结果。课文儿说搜索完成后Edge Attribute浏览器里会多出几个属性,包括:a. HasTSI,代表该相互作用是否有文献支持;b. NumberOfSources,代表支持该相互作用的paper的数目;c. nbrSentences,代表支持该相互作用的句子的数目。此外Cytoscape主程序的Evidence from Literature菜单下选中“Show Sentences from the Literature”后,会弹出窗口,列出支持该相互作用的句子,给出此列表的搜索沿用最近一次搜索的设置。不过这两个结果我都没做出来,可能还是因为 不能连通PM,导致不能初始化搜索所致。
对节点也能用这个方法搜索,等效于对连接该节点的所有连线做搜索。
第六课 GO分析
地址见:http://wiki.cytoscape.org/Presentations/06_GO
要学习声名赫赫的BiNGO了,话说我就是因为这插件才开始决心学用Cytoscape的,小激动一下。
以酵母那个galFiltered.sif为例,Ctrl+L load进来。接着导入GO信息:File → Import → Ontology and Annotation...。弹出的窗口里设置annotation和ontology类型,ms是选好之后直连的,不过苦命的姐还是选Browse下的 Browse Local Files吧。设定好之后按右下角的Import。
导入GO信息后要对显示设置做些修改,让GO信息显示容易寻找和查看。点快捷栏最右 边那个一页纸上压着个大螺丝的图标,Search on Attribute下把Unique Identifierannotation.GO BIOLOGICAL_PROCESS,当然神马annotation.GO CELLULAR_COMPONENT之类的也可以啦。最后点右下角的Reindex Network。然后主窗口里纸和螺丝旁边那个搜索框里搜索的类型就改成了GO BP,还带关键字选项的哟。
接下来学习激动人心的GO term富集分析:
1. Select → Nodes → By Name...。太弱?好吧,Ctrl+F。选Gal4吧。
2. Select → Nodes → First Neighbors of Selected Nodes。太弱?好吧,Ctrl+6。
3.New → Network → From selected nodes, all edges。太弱?好吧,Ctrl+N。
4. 切换到新建的网络。Select → Nodes → Select all nodes。太弱?好吧,Ctrl+Alt+A,5。
5. Plugins下点开BiNGO。弹出BiNGO设置窗口,按照偏好,完成后面的设置:a. 给聚类分析取个名字;b. 勾上“Get Cluster from Network”框;c. “Select a statistical test”下,选择“Hypergeometric”,如果数据量非常大,可以选用“Binomial”,不过一般的处理用Hypergeometric 即可;d. “Select a multiple testing correction”下,选用“Benjamini & Hochberg False Discovery Rate (FDR)”,这种FDR计算方法比Bonferroni较为不保守,不过多数情况下已经够用;e. “Choose a significance level”输入“0.05”,此阈值控制计算结果中报告的GO分类的细致程度,0.05并不一定足够保守,不过可以根据结果调整此阈值;f. “Select the categories to be visualized”下选择“Overrepresented categories after correction”,这样结果中就能直接看到富集的分类,当然选别的也可以;g. “Select reference set”下,选择“Test cluster versus complete annotation”,即富集计算的比较背景是所有得以GO注释的基因;h. “Select ontology”下选择GO_Biological_Process”,计算GO BP大类下的各分类的富集程度,当然别的也行,比如我的主要是GO CC啦;i. “Select organism/annotation”下翻啊翻啊翻,翻到样品所属的物种;j. 勾上“Check box for saving Data”,点击“Save BiNGO Data file”按钮,选定目的目录,BiNGO会导出一个文本文档,内列出各显著富集的节点的p值,文件名即最开始给聚类分析起的名字,后缀名是.bgo。此 外,文件里还列出分析时所用参数和得到富集的GO term。
6. 一大堆选完后,点击“Start BiNGO”。分析完成后弹出运行报告,内容在bgo文件里也有。还返回一个相互作用网络,显示上一步f下选的那些节点。节点的标签显示的是属于上一步h 下选的GO注释种类的term。默认颜色分布:富集程度越高则节点背景越偏橙色,越低则越靠近黄色。白色节点表示未被显著富集,之所以出现在结果中是因为 他们的某个子节点显著富集。结果中节点的多少是与提交到分析的节点的多少成正比的。
6. Node Attribute浏览器下点“Select Attributes”,能看到多了一些属性,均以聚类名结尾,包括:a. description_test,显示GO term;b. adjustedPValue_test,multiple hypothesis testing后的p值,后面四个是该testing中要用到的值;c. n_test,此GO term下的节点的数目;d. x_test,所选的节点中此GO term下的节点数目;e. N_test,背景基因组中带有所选类型的GO注释的节点的数目;f. X_test,所选的节点的数目。
7. 勾上这些属性,逐个考察。
8. 下面可以玩一玩初级视觉游戏。选择白节点,或者加上你觉得太黄太暴力的几个节点,然后Select → Nodes → Hide node selection,这些看着不爽的节点就知趣地消失了。
9. 当然它们随时待命,召之即来:Select → Nodes → Show all nodes。
下面玩一个不同类型处理的combo。目前的情况是得到了Gal4敲除或沉默或过表 达后得到富集的子相互作用网络,而该网络来源于半乳糖利用这条途径,于是想看看在这些富集的GO term中,哪些属于仅仅涉及半乳糖利用途径,又是哪些还特异地与Gal4效应子网络相关。为区分这两类节点,首先分出一个子网络,然后做BiNGO富集 分析,详细操作如下:
1. 回到妈妈网络,选中Gal4的Ctrl+6。
2. BiNGO设置窗口的“Select Reference Set”选“Test cluster versusnetwork”,当然,得给这个聚类分析起个新名字,就比如test2吧。运行BiNGO。
3. 比较新老BiNGO结果网络。新结果中丢失的term可能仅与半乳糖利用相关。
4. Node Attribute浏览器下点“Select Attributes”,能看到有些属性变了,现在有adjustedPValue_test(代表以整个基因组为背景时的富集程度)和 adjustedPValue_test2(代表以整个子网络为背景时的富集程度)。可以选中这些属性,然后考察各节点的这两个属性的数值。
第七课 模块和复合物
地址见:http://wiki.cytoscape.org/Presentations/07_Complexes
相互作用网络中的模块的原理类似程序脚本中的模块,均以功能为内在联系,为简化相互作用网络的图形表示形式,可将模块用一节点代替,勉强类似与Python中的模块脚本吧。
这一课可以学到的新招包括:
1. 如何鉴定putative复合物,包括两种方式:a. 通过网络connectivity;b. 通过connectivity以及共表达;
2. 如何利用表达数据鉴定对实验条件反应显著的putative模块或途径。
善其事,利其器。需要下载一堆插件:MCODE、Dynamic Expression plugin、jActiveModules、BiNGO。其中Dynamic Expression plugin和表达数据文件连接失效了。Aging呀aging~~
首先练习用MCODE找复合物成分,原理:内部连线多,是复合物模块的几率则大。详细过程:
启动软件,载入sif,Plugins → MCODE → Start MCODE,弹出MCODE窗口。点击底部的“Analyze”,想改设置的话点“Advanced Options”。分析结束,返回结果,包括复合物的节点和连线组成以及分数。显著的复合物一般分数较高(>1),且节点和连线不至于很不靠谱。点 击结果即可在画布里选中相应节点。然后我们用BiNGO考察这个子网络中GO注释富集的情况,以获得间接证据支持。显示GO BP中得到富集的类下的节点,然后和MCODE分析的节点交叉比对。如果发现两者重合程度很高,那么所发现的复合物为阳性的可信度则提高了。
刚才那种方法需要相互作用数据,除此之外,利用表达数据也可以鉴定复合物,这回是jActiveModules和BiNGO搭档。详细过程:
启动,载入。File → Import → Attribute/Expression Matrix...,这里所载入的表达数据里要有significance值。Plugins → jActiveModules → Active Modules: Set Parameters;选择要采用的表达数据;设置所返回的putative hit的数目;点“Dismiss”关闭窗口。Plugins → jActiveModules → Active Modules: Find Modules,此时插件开始运行。
结束后弹出Conditions vs. Pathways窗口,其中size表示子网络/复合物所包含的节点数,score表示可信度分数,红色表示“significant”,白色反之。此窗口内选中某行,在画布中即选中了所对应的节点。
之后的工作和刚才一样,可以从子网络的BiNGO富集分析中得到侧面支持。当然也可以用ALS搜paper,看看文献中是否有类似报道。
下课,课文让喝咖啡。嗯,要听老师的话~~
第八课 整合网络服务提供的注释和相互作用网络
地址见:http://wiki.cytoscape.org/Presentations/08_Web_Services
最后一课,内容很多。包括:
1. 如何从公共数据库导入相互作用网络;
2. 如何导入注释和映射ID;
3. 如何融合多个数据来源的相互作用网络;
4. 如何将已知的途径映射到相互作用网络。
从其中第三部分开始烂尾,偏偏我对后两小节兴趣大一些。不管了,看看总有益,剩下的自己琢磨。
下面要完成一个大实验,总的目的是整合关于PPAR-gamma的所有已知信息。
第一部分:数据库搜索和导入
1. 安装一堆插件:a. 相互作用网络/属性导入客户端:NCBIClient、NCBIEntrezGeneUserInterface、IntActWSClient、 BiomartClient(0.80及以上)、MiMI、GPML;b. 数据融合:AdvancedNetworkMerge(2.8版中默认装好);c. 脚本编写:RubyScriptingEngine、ScriptingEngineManager;d. 搜索:Enhanced Search。
2. 第二个热身运动是增大Java中Permanent部分所分配的内存,编辑cytoscape.sh,找到-Xss5M -Xmx1024M -XX:MaxPermSize=128m,其中-XX:MaxPermSize即为要修改处。如果所载入插件过多,则导致这一部分内存溢满,则 Cytoscape可能crash掉。默认大小是64 M,128 M应该够了吧。
3. 接下来疯狂导入数据中:File → Import → Network from Web Services...,选择数据源“NCBI Entrez EUtilities Web Service Client”,关键词是“pparg AND human[ORGN]”。搜索完毕,返回网络,命名,Layout → yFiles → Organic。返回的网络的数据来自NCBI Entrez Gene data set,后者涵盖了BIND、BioGRID和HPRD。哈欠,都是人的……
4. 导入属性:File → Import → Import Attributes from NCBI Entrez Gene。选中所有属性,Key Attribute设为ID。点击右下角的“Import”。导入完成后即坐拥多种注释,包括KEGG、GeneRIF、GO、publication神 马的。
5. 从Pathway Commons导入已知的通路和相互作用:File → Import → Network from Web Services...,选择数据源“Pathway Commons Web Service Client”,输入关键词,选择物种,点“Serach”。导入所有结果,双击即可。
6. 从IntAct导入二元相互作用数据:File → Import → Network from Web Services...,选择数据源“IntAct Web Service Client”,输入关键词“PPARG AND species:human”,点“Serach”。此时仅返回与PPAR-gamma直接发生相互作用的蛋白/基因。选择所有节点,在其中一个上右击, 选择Use Web Services → IntAct Web Service Cleint → Get neighbours by ID(s),得到三跳以内的相互作用蛋白/基因。
7. 稍微整理一下所有抓取的网络:View → Arrange Network Windows → Tiled。
8. 用高级手段BioRuby导入KEGG途径。首先要下载一个rb脚本(哪天参考一下,顺便改进改进,提交到BioPython,wkk)。运行脚 本:Plugins → Scripting Language Consoles → Open Ruby Console打开Ruby控制台。cd进入脚本进入脚本目录,搜索:keggapi.bfind('pathway pparg human')。结果返回一大堆话,取“path:”那几个字,比如“path:hsa03320 PPAR signaling pathway”。顺藤摸瓜,pathway_id = 'path:hsa03320';
source '刚才下的那个脚本'。图就出来了。还挺简单。属性包括KEGG ID和Entrez Gene ID。
9. 从WikiPathways(Wiki风格界面的curated的途径数据库,格式为GPML,Cytoscape兼容)导入已知的通路和相互作 用:File → Import → Network from Web Services...,选择数据源“WikiPathways Web Service Client”,关键词输入“pparg”,选择物种,点“Serach”。导入所有结果,双击即可。
10. 用ALS从文献中搜索构建相互作用网络。方法见前一课课文儿,在此不赘。需要注意的是,得到的相互作用网络不带有节点和连线的注释/ID数据集。如果想添 加注释,可以用BioMart网络服务客户端获取。首先,需要从节点ID创建一个新的属性。这里有个小小麻烦,Cytoscape是大小写敏感的,而 ALS结果里的结果ID都是小写的,与基因标志的通用格式不同。这样的话会出现映射不上的问题,所以要转换一下。嗯,小case,听姐的话,学 Python去吧,钦此。
11. 下面从BioMart中导入注释信息:File → Import → Import Attributes from BioMart...,数据源选择“ENSEMBL GENES (Homo Sapience)”,“key attribute”选择“Gene Symbol”,“Data Type”选“HGNC Symbol”。选择想要导入的注释类型。点“Import”。搞定。
12. 不过BioMart库有时也不是太全,有的蛋白在库里找不到。这时可以用命令行工具创建ID映射表,操作如下:a. 选中所有节点;b. Attribute浏览器中选择“EntrezGene ID”和“Gene Symbol”,按前者排序,找到没有注释的节点,复制之;c. Ruby中创建变量symbols,赋值为刚才复制的基因标识;d. 输入命令“query.gsub(/\n/, " OR ")”、“query = '(' + query + ') AND human[ORGN]'”;e. 创建NCBI EUtilities网络服务客户端,构建搜索,开始搜索; f. 从结果中提取ID列表,获取总结,以表格形式写入文本文件;g. 利用File → Import → Attribute from table导入表格,即得到的节点已经映射到Entrez Gene ID的文件。
13. 此外还有从MiMI数据库导入相互作用的方法,应该也可以通过插件完成。
至此第一部分基本完成,下面开始第二部分,基因列表的各种操作,总的目的是从一份基因列表出发,在Cytoscape中看到他们之间的相互作用。
14. 如果是Entrez Gene ID,则打开File → Import → Network from Web Service,选择“NCBI Entrez EUtilities Web Service Client”数据源,搜索框里粘帖基因列表。
15. 导入注释。
16. 利用Enhanced Search插件选择多个节点。基因ID列表粘帖至工具栏的ESP窗口里,点“Enter”,即可选中所输入的节点,并查看这些节点在图中的位置。
17. 融合相互作用网络时有时希望标出各节点的来源,这一点可以通过添加属性开始。在节点属性浏览器窗口中点击“String Attribute”,命名属性。
18. 回到节点属性浏览器,点击“Batch Attribute Editor”。在“Operation”页中,选择“Set”,然后选择想要设置的属性名,输入属性值。点击“Go”。
几个cookbook recipe。
第一例 获取某一途径中的基因列表
1. 打开BioRuby控制台,输入“keggapi.get_genes_by_pathway("path:mmu03320")”,其中“path:mmu03320”是途径的KEGG term。返回一系列KEGG的基因ID。
2. 结果需要除去“mmu:”的前缀,并把所有id从一个列表连接成一个字符串。用BioRuby的话,是这么写:“query = gene_list.join(" ").gsub(/mmu:/, "")”。
课文最后说BioRuby提供很多KEGG和其他数据库的提取信息的简单方式,不知Python插件功能怎么样?
文章来自:http://lwzhanghz.blog.163.com/blog/static/13682636920134190525926/ (有改动)
推荐阅读
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 漫画初学者如何学习漫画背景的透视画法(这篇教程请收藏好了!)
- Python基础|Python基础 - 练习1
- Java|Java基础——数组
- Java基础-高级特性-枚举实现状态机
- 营养基础学20180331(课间随笔)??
- iOS面试题--基础
- HTML基础--基本概念--跟着李南江学编程
- typeScript入门基础介绍
- c++基础概念笔记