【Cytoscape网络图绘制】摸索入门篇
2020-09-18 本文已影响0人
Geekero
这个软件就是为了绘制网络关系图,圈图等等酷炫的图片,例如这样:
一、配置环境和安装
安装Java 11
Java11安装教程
无脑点击安装,我这里手动改到安装在D盘,而非默认的C盘
环境变量配置
进入环境变量配置界面: 电脑->右键属性->高级系统设置->环境变量
添加JAVA_HOME变量:
添加path变量的值:
打开cmd界面,输入java验证
二、安装Cytoscape
官网下载不了,让朋友发了我一个
安装成功 打开:
三、绘图
3.1 构建输入文件
其实这种网络图,要的就是一个边EDGE,和节点node的信息(每列按tab分割符分割)
从pySCENIC的regulon打分矩阵中提取需要的信息:
regulons = [r.rename(r.name.replace('(+)','')) for r in regulons]
edge = [{r.name:list(r.gene2weight.items())} for r in regulons]
#寻找score最大的基因和得分
line = []
regulon_dict = dict()
for item in edge:
regulon = item.keys()
regulon = list(regulon)[0]
record = dict()
best_score = 0
for group in item[regulon]:
gene, score = group[0], group[1]
if score > best_score:
regulon_dict[regulon] = {gene:score}
best_score = score
#写入文件
with open('/share/nas1/Data/Users/luohb/Personalization/paper/07.Cytoscape/edge.tsv', 'w') as f:
f.write('regulons\tgene\tscore\n')
for item in regulon_dict.items():
regulon = item[0]
group = item[1]
gene, score = list(group.keys())[0], list(group.values())[0]
row = '{}\t{}\t{}\n'.format(regulon, gene, score)
f.writelines(row)
导入到R中筛选每个regulon的top10基因(Python有点麻烦)
edge<-read.table('edge.tsv', sep='\t',header=T)
top10.edge = edge %>% group_by(regulons) %>% top_n(n=10, wt = score)
write.table(top10.edge, file='top10.edge.tsv', sep='\t',quote=F, col.names=T,row.names=F)
文件1: EDGE文件:记录 节点关系信息 和 边的宽度信息
文件2: Node文件:记录每个节点的分组信息(不同的分组颜色)
3.2 Cytoscape可视化
-
导入EDGE文件:
-
导入Node文件
参考
- http://manual.cytoscape.org/en/stable/Quick_Tour_of_Cytoscape.html
- http://www.360doc.com/content/18/0115/10/49059453_722035630.shtml
- https://www.jianshu.com/p/c0730a5285d1
- https://github.com/cytoscape/cytoscape
- https://www.biowolf.cn/m/view.php?aid=405
- https://www.sohu.com/a/136756331_465960
- https://blog.csdn.net/mystrugglelife/article/details/79394775
- https://jingyan.baidu.com/article/19020a0af96b2e139d28428c.html