单细胞组学Cytoscape网络图

【Cytoscape网络图绘制】摸索入门篇

2020-09-18  本文已影响0人  Geekero

这个软件就是为了绘制网络关系图,圈图等等酷炫的图片,例如这样:

Cytoscape官网

一、配置环境和安装

安装Java 11

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文件:记录 节点关系信息 和 边的宽度信息

列的排列位置不重要,因为导入到Cytoscape可以选择

文件2: Node文件:记录每个节点的分组信息(不同的分组颜色)


3.2 Cytoscape可视化

  1. 导入EDGE文件:




  2. 导入Node文件



参考

上一篇下一篇

猜你喜欢

热点阅读