【问题标题】:Multiple networks integrated into one network in Cytoscape在 Cytoscape 中将多个网络集成到一个网络中
【发布时间】:2018-03-16 14:50:10
【问题描述】:

我有一个基因列表(我们称之为 L),我想看看它们在 3 种不同物种(人类、斑马鱼和鳕鱼)中的工作方式有何不同。当然,这 3 个物种并不是所有基因都在列表中,而且基因之间的相互作用在 3 个物种中是不同的。首先,我根据 3 个物种的基因组搜索这个列表中的基因,得到 3 个物种的 3 个基因列表(我们称它们为 l1、l2、l3)。然后我将3个基因列表分别放入STRING。所以现在我有 3 个网络(我们称它们为 n1、n2、n3),每个网络对应每个物种。

有了这 3 个网络和 4 个列表,我来到了 Cytoscape。我想要可视化的是一起显示 3 个网络。所以背景是来自 L 的所有节点。当我说,让我们看看人类,网络 n1(包括来自 l1 的节点和它们之间的边)将被高亮(来自其他两个物种的其他基因呆在那里不动,但作为背景淡出)。然后你也对斑马鱼和鳕鱼做同样的事情。通过这样做,我们可以看到基因在 3 个物种中的不同作用。

那么这可以在 Cytoscape 中完成吗?提前谢谢你。

【问题讨论】:

    标签: cytoscape ppi


    【解决方案1】:

    你可以先用 L 初始化 cytoscape:

    // Initialize cytoscape
    cy = window.cy = cytoscape({
       container: $('#diagram'),
       boxSelectionEnabled: false,
       autounselectify: true,
    
       layout: {
          name: 'random'
       },
    
       elements: L,
    
       style: [
        {
          selector: 'node',
          style: {
              'shape': 'data(faveShape)',
              'content': 'data(DisplayName)',
              'height': 'data(faveHeight)',
              'width': 'data(faveWidth)',
              'background-color': 'data(faveColor)',
              'line-color': '#a8eae5',
              'font-family': 'Segoe UI,Helvetica Neue,Helvetica,Arial, Verdana',
              'font-size': '15px',
           }  
        },    
        {     
           selector: 'edge',
           style: {
              'label': 'data(myLabel)',
              'curve-style': 'bezier',
              'width': 5,
              'opacity': 0.5,
              'line-color': '#a8eae5',
              'font-size': '12px',
              'target-arrow-shape': 'triangle',
              'target-arrow-color': '#a8eae5'
           }  
        },    
        {     
           selector: '.autorotate',
           style: {
              'edge-text-rotation': 'autorotate'
           }
        },
        {
           selector: 'edge.deactivate',
           style: {
               'opacity': 0.1,
           }
         },
         { 
           selector: 'node.deactivated',
           style: {
               'opacity': 0.1,
           }
         }
        ],
     });
    

    之后你可以添加所有的边,但是你必须添加一个属性来告诉哪些物种是边。此外,您必须将 deactivated 属性赋予所有节点。

    cy.nodes().addClass('deactivated');
    cy.add('All the edges you have'); // Write somthing like species : 1 for first species and so on
    cy.ready(function () {
       cy.edges().addClass('deactivate');
    });
    

    这样,您的所有节点都在图表上,它们会褪色,并且所有边都在那里。您现在可以定义一个按钮或其他东西并选择正确的组和边缘并删除类:

    cy.nodes("[species = '" + num + "']").removeClass(deactivated);
    cy.edges("[species = '" + num + "']").removeClass(deactivate);
    

    当你选择另一个组时,你总是可以说:

    cy.nodes().addClass(deactivated);
    cy.edges().addClass(deactivate);
    

    然后选择正确的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多