vignettes/RCy3.R

### R code from vignette source 'RCy3.Rnw'

###################################################
### code chunk number 1: g0
###################################################
    library(RCy3)
    g <- new ('graphNEL', edgemode='directed')
    g <- graph::addNode ('A', g)
    g <- graph::addNode ('B', g)
    g <- graph::addNode ('C', g)
    cw <- CytoscapeWindow ('vignette', graph=g, overwrite=TRUE)
    displayGraph (cw)



###################################################
### code chunk number 2: g1
###################################################
    layoutNetwork (cw, layout.name='grid')



###################################################
### code chunk number 3: g2
###################################################
    g <- cw@graph   # created above, in the section  'A minimal example'
    g <- initNodeAttribute (graph=g,  attribute.name='moleculeType',
                            attribute.type='char',
                            default.value='undefined')
    g <- initNodeAttribute (graph=g,  'lfc', 'numeric', 0.0)
    nodeData (g, 'A', 'moleculeType') <- 'kinase'
    nodeData (g, 'B', 'moleculeType') <- 'TF'
    nodeData (g, 'C', 'moleculeType') <- 'cytokine'
    nodeData (g, 'A', 'lfc') <- -1.2
    nodeData (g, 'B', 'lfc') <- 1.8
    nodeData (g, 'C', 'lfc') <- 3.2
    cw = setGraph (cw, g)
    displayGraph (cw)    # cw's graph is sent to Cytoscape

###################################################
### code chunk number 4: defaults
###################################################
    setDefaultNodeShape (cw, 'OCTAGON')
    setDefaultNodeColor (cw, '#AAFF88')
    setDefaultNodeSize  (cw, 80)
    setDefaultNodeFontSize (cw, 40)


###################################################
### code chunk number 5: g3
###################################################
  getNodeShapes (cw)   # diamond, ellipse, trapezoid, triangle, etc.
  print (noa.names (getGraph (cw)))  # what data attributes are defined?
  print (noa (getGraph (cw), 'moleculeType'))
  attribute.values <- c ('kinase',  'TF',       'cytokine')
  node.shapes      <- c ('DIAMOND', 'TRIANGLE', 'RECTANGLE')
  setNodeShapeRule (cw, node.attribute.name='moleculeType',
                    attribute.values, node.shapes)


###################################################
### code chunk number 6: g4
###################################################
    setNodeColorRule (cw, 'lfc', c (-3.0, 0.0, 3.0),
                      c ('#00AA00', '#00FF00', '#FFFFFF', '#FF0000', '#AA0000'),
                      mode='interpolate')


###################################################
### code chunk number 7: g41
###################################################
    setNodeColorRule (cw, 'lfc', c (-3.0, 0.0, 3.0),
                      c ('#00FF00', '#FFFFFF', '#FF0000'),
                      mode='interpolate')


###################################################
### code chunk number 8: g5
###################################################
    control.points = c (-1.2, 2.0, 4.0)
    node.sizes     = c (10, 20, 50, 200, 205)
    setNodeSizeRule (cw, 'lfc', control.points, node.sizes,
                     mode='interpolate')


###################################################
### code chunk number 9: g6
###################################################
 
    g <- cw@graph
    g <- initEdgeAttribute (graph=g,  attribute.name='edgeType',
                            attribute.type='char',
                            default.value='unspecified')
    
    g <- graph::addEdge ('A', 'B', g)
    g <- graph::addEdge ('B', 'C', g)
    g <- graph::addEdge ('C', 'A', g)
    
    edgeData (g, 'A', 'B', 'edgeType') <- 'phosphorylates'
    edgeData (g, 'B', 'C', 'edgeType') <- 'promotes'
    edgeData (g, 'C', 'A', 'edgeType') <- 'indirectly activates'
    cw@graph <- g
    displayGraph (cw)

    line.styles = c ('DOT', 'SOLID', 'SINEWAVE')
    edgeType.values = c ('phosphorylates', 'promotes',
                         'indirectly activates')
    setEdgeLineStyleRule (cw, 'edgeType', edgeType.values,
                          line.styles)
    
    arrow.styles = c ('Arrow', 'Delta', 'Circle')
    setEdgeTargetArrowRule (cw, 'edgeType', edgeType.values,
                            arrow.styles)
    

###################################################
### code chunk number 10: g7
###################################################
    hidePanel (cw, 'Data Panel')
    floatPanel (cw, 'D')
    dockPanel (cw, 'd')
    hidePanel (cw, 'Control Panel')
    floatPanel (cw, 'control')
    dockPanel (cw, 'c')


###################################################
### code chunk number 11: 8a
###################################################
    selectNodes(cw, 'B')


###################################################
### code chunk number 12: g8
###################################################
    getSelectedNodes (cw)


###################################################
### code chunk number 13: g9 (eval = FALSE)
###################################################
    selectFirstNeighborsOfSelectedNodes (cw)


###################################################
### code chunk number 14: g10
###################################################
    nodes <- getSelectedNodes (cw)
    nodes

###################################################
### code chunk number 15: position
###################################################
    cwe <- CytoscapeWindow ('vignette.setNodePosition', graph=RCy3::makeSimpleGraph (), overwrite=TRUE)
    displayGraph (cwe)
    layoutNetwork (cwe, 'grid')
    
    center.x <- 200
    center.y <- 200
    radius <- 200
    # sweep through full revoltion 3 times, 5 degrees at a time
    angles <- seq (0, 360, 90)
    for (angle in angles) {
        angle.in.radians <- angle * pi / 180
        x <- center.x + (radius * cos (angle.in.radians))
        y <- center.y + (radius * sin (angle.in.radians))
        setNodePosition (cwe, 'A', x, y)
    }
    # RCy will not create windows with duplicate names,
    # so clear the decks for a subsequent possible run
    


###################################################
### code chunk number 16: moviePrep
###################################################
    g <- RCy3::makeSimpleGraph ()
    g <- initNodeAttribute (g, 'pval', 'numeric', 1.0)
    
    cwm <- CytoscapeWindow ('movie', graph=g, overwrite=TRUE)
    displayGraph (cwm)
    layoutNetwork (cwm, 'grid')
    redraw (cwm)



###################################################
### code chunk number 17: movieRules
###################################################
    lfc.control.points <- c (-3.0, 0.0, 3.0)
    lfc.colors <- c ('#00AA00', '#00FF00', '#FFFFFF', '#FF0000', '#AA0000')
    setNodeColorRule (cwm, 'lfc', lfc.control.points, lfc.colors,
                      mode='interpolate')
    
    pval.control.points <- c (0.1, 0.05, 0.01, 0.0001)
    pval.sizes          <- c (30, 50, 70, 100)
    setNodeSizeRule (cwm, 'pval', pval.control.points, pval.sizes,
                     mode='interpolate')



###################################################
### code chunk number 18: animate
###################################################

    pval.timepoint.1 <- c (0.01, 0.3, 0.05)
    pval.timepoint.2 <- c (0.05, 0.01, 0.01)
    pval.timepoint.3 <- c (0.0001, 0.005, 0.1)
    
    lfc.timepoint.1 <- c (-1.0, 1.0, 0.0)
    lfc.timepoint.2 <- c (2.0, 3.0, -2.0)
    lfc.timepoint.3 <- c (2.5, 2.0, 0.0)
    
    for (i in 1:5) {  # run this loop 5 times
        setNodeAttributesDirect (cwm, 'lfc',  'numeric', c ('A', 'B', 'C'),
                                 lfc.timepoint.1)
        setNodeAttributesDirect (cwm, 'pval', 'numeric', c ('A', 'B', 'C'),
                                 pval.timepoint.1)
        system ('sleep 0.2')
        
        setNodeAttributesDirect (cwm, 'lfc',  'numeric', c ('A', 'B', 'C'),
                                 lfc.timepoint.2)
        setNodeAttributesDirect (cwm, 'pval', 'numeric', c ('A', 'B', 'C'),
                                 pval.timepoint.2)
        system ('sleep 0.2')
        
        setNodeAttributesDirect (cwm, 'lfc',  'numeric', c ('A', 'B', 'C'),
                                 lfc.timepoint.3)
        setNodeAttributesDirect (cwm, 'pval', 'numeric', c ('A', 'B', 'C'),
                                 pval.timepoint.3)
        system ('sleep 0.2')
    }


###################################################
### code chunk number 19: deleteWindows
###################################################
    cy <- CytoscapeConnection ()
    window.names <- c ('vignette', 'vignette.setNodePosition', 'movie')
    for (window.name in window.names){
        if (window.name %in% as.character (getWindowList (cy))){
            deleteWindow (cy, window.name)
        }
    }
tmuetze/Bioconductor_RCy3_the_new_RCytoscape documentation built on May 31, 2019, 4:39 p.m.