软件要求
主要使用的软件为cytoscape和stringapp插件。
示例
具核梭杆菌( Fusobacterium nucleatum , F . nucleatum )
假设我们拿到了公司给的差异基因列表,要对这份列表上的基因进行蛋白互作分析。
> head(gene_FN)
# A tibble: 6 × 5
ID logFC pvalue Description Status
<chr> <dbl> <dbl> <chr> <chr>
1 FN1220 5.47 0.000539 cysteine synthase UP
2 FN0461 4.25 0.00215 sigma(54) modulation protein UP
3 FN1463 3.57 0.00605 pyridoxal biosynthesis lyase PdxS UP
4 FN2065 3.43 0.0106 transcriptional repressor UP
5 FN1148 3.24 0.0116 serine/threonine sodium symporter UP
6 FN1419 3.03 0.0162 methionine gamma-lyase UP
安装并打开cytoscape软件,打开Apps,搜索stringapp并安装
在左侧的control panel的network中点击STRING搜索框,先在搜索设置中设置species为“Fusobacterium nucleatum subsp. nucleatum ATCC 25586”
这就是为什么要使用STRING或者stringapp的原因,STRING已经有2000多个物种的PPI信息,一般都是不需要自己再去做注释;当然如果你的物种不包含在这2000多个物种里面,思路就是用类似eggrog-mapper之类的做GO注释,然后做PPI。
然后搜索框中以每个基因一行的形式输入interested genes,例子中输入的是110个FN转录组的差异基因。
最终调整后的结果:
注意事项
一、调整Node table
其实cytoscape的图跟R的ggplot包有点像,像大小、颜色、透明度这些都可以和node table中的某些列进行mapping,也就是说,如果我们不想要默认的上色、节点大小,我们可以通过在右下方的node table中添加列信息进行实现。比如,本例子中我们最想要的莫过于通过差异基因的上下调分别进行上色,那么就需要对Node table进行修改。
Node table简单来说就是STRING自动生成的对每个节点的描述,包括转换后的display name,节点类型,每个节点的序列等等,那么最直接的做法就是将node table和我们最开始展示的公司给我们的表gene_FN进行合并。观察一下,看到两个表中能一一对应的列应该是gene_FN中的ID列和node table中的query term。
那么合并表的方式就很简单了:
i. 直接导出
点击export node table,然后在R中读取并与gene_FN merge一下;再导入cytoscape,这是最安全的做法
ii. 手动修改
如果节点比较少的话,也可以点击Node table中的add new column直接手动添加信息
iii. 直接合并
最后一个是直接在cytoscape中点击import table from file,选中gene_FN.csv这个表,然后在key column for network这一项中选中query name(也就是两个表所对应的那一列),advanced选项中还可以设置header,跳过行数等等。但我觉得最好还是在R中操作,不然到时cytoscape中合并出了错,检查起来很麻烦。
最后在左边的control panel
中选中Style
,然后点击Fill Color
,选择Discrete Mapping
,column
设置为Status
,然后分别为UP
和DOWN
两种状态设置为红色和蓝色,就大功告成了(另外也可以在Style
中添加其他设置,比如将node size
设置为continuous mapping
,然后column
选择为degree
,这样就是该节点连接的线段越多,这个节点就会越大)
二、图例的添加和修改
cytoscape的legend 添加和修改要通过一个插件legend creator
进行实现(这一点很多中文教程都没提到,害我找了半天没找到所谓的legend panel在哪),同样也是在app manager中搜索legend creator,然后安装。
一般来说,legend panel会搜索你对之前的node table和edge table做了什么修改,然后自动添加到legend panel里面,你可以修改title等信息,但是可操作范围就比R小很多,勾选Lay out vertically可以移动Legend 到右侧。
三、去除singleton以及如何提取主网络
直接点击右侧result panel中的Singletons就可以去除显示无任何连接的单个节点,但要注意,此时只是隐藏了,这些节点本身并未删除,如果想直接删除的话,可以用shift + 鼠标拖放,选中后选择Edit tab, 点击delete selected nodes and edges。
提取主网络,方法很多,如果你只关心关联性最高的那一群genes或者proteins,你可以选择用聚类的方式提取出不同的subclusters:
安装clustermaker2,点击MCL cluster(具体聚类算法可以自己根据需求选择),设置granularity,然后点击create new clustered network
然后选中第一个cluster,点击File - New network - from selected nodes and selected edges。
四、Layout的设置
像上图主聚类的图太过于密集,这时可以通过layout进行调整。一般这种情况可以点击layout tab,然后选择yFiles Organic Layout (第一次使用需要先下载),这时会好看很多。当然Layout本身就跟R中的ggplot一样,千变万化,具体可以自己根据官方的使用手册进行摸索。