Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
G07-Misc-Gmod
G07-Misc-Gmod
Loading in …3
×
1 of 89

Bosc talk 7-15-2011x

0

Share

Download to read offline

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

Bosc talk 7-15-2011x

  1. 1. Architecture for Extension Mike Smoot BOSC Cytoscape Chief July 15, 2011
  2. 2. 2
  3. 3. Desktop Application written in Java 2
  4. 4. Biological Network Visualization + Analysis 2
  5. 5. Free Software - LGPL 2
  6. 6. ~3000 downloads per month 2
  7. 7. 1. Network Data YDR382W pp YDL130W YDR382W pp YFL039C YFL039C pp YCL040W VizMapper YFL039C pp YHR179W 2. Attribute Data ExpressionValue YCL040W = 0.542 YDL130W = -0.123 YDR382W = -0.058 YFL039C = 0.192 YHR179W = 0.078 3
  8. 8. 4
  9. 9. 4
  10. 10. Cytoscape’s most important feature? 5
  11. 11. Cytoscape’s most important feature? Our Plugin Architecture! Photo credit: Samuel L. Livingston 5
  12. 12. 6
  13. 13. Plugins allow for customization 6
  14. 14. Plugins allow for customization Primary analysis mechanism 6
  15. 15. Plugins allow for customization Primary analysis mechanism Builds a community of stakeholders 6
  16. 16. 7
  17. 17. AllegroMCODE APCluster APID2NET BioQualiPlugin BLAST2SimilarityGraph BNMatch CABIN CalculateNodeDegree CentiScaPe ChemViz clusterExplorerPlugin clusterMaker ClusterONE ClusterViz COMA CommFinder CyClus3D CyOog cytoHubba Cytomcl DualLayout dynamicXpr EnhancedSearch EnrichmentMap ExprEssence GraMoFoNe GraphletCounter HiderSlider jActiveModules mcl-new MCODE MINE NeMo NetAtlas NetCirChro netMatch NetworkAnalyzer NetworkEvolution OmicsAnalyzer OmicsViz OrthoNets PanGIA PerturbationAnalyzer PinnacleZ RandomNetworks RDFScsape Reactome FIs RemainingDegreeDistribution Re Orie nt Plug i n S h o r t e s t P a t h P l u g i n S i m Tr e k s tr uctureViz TransClust VennDiagramGenerator VistaClaraPlugin WordCloud BiNoM bioCycPlugin BiogridPlugin BiomartClient BioNetBuilder BisoGenet ConsensusPathDBplugin CoryneRegNetLoader CyThesaurus-ID-Mapping CytoSQL DroID Genoscape GPML- Plugin GraphMLReader IntActWSClient iRefScape KGMLReader MetScape MiMIplugin NCBIClient NCBIEntrezGeneUserInterface Pathintegrator PhosphositePlus Web Service Client Module PICRClient PSICQUICUniversalClient ReConn SessionForWeb SFLDLoader StringWSClient Superpathways-Plugin 3DScape AgilentLiteratureSearch Cytoprophet DisGeNET DomainGraph ExpressionCorrelation GeneMANIA MetaNetter MONET BiNGO BubbleRouter ClueGO CommonAttributes DisplayNetworkFromFlatFile FluxViz FunNetViz HyperEdgeEditor PiNGO CyGoose CytoscapeRPC GroovyScriptingEngine JavaScriptEngine MiSink PythonScriptingEngine RubyScriptingEngine ScriptEngineManager addParentNeighbors AdvancedNetworkMerge batchTool BiLayout commandTool coreCommands CyAnimator edgeLengthPlugin edgeLister EpiTrace FERN FM3 GoogleChartFunctions GroupTool MetaNodePlugin2 MultilevelLayoutPlugin NamedSelection NatureProtocolsWorkflow NeighborHighlight NetLink nodeCharts PhyloTree VennDiagrams 7
  18. 18. So everything’s coming up roses, right? 8
  19. 19. So everything’s coming up roses, right? Photo credit: CHRIS230*** 8
  20. 20. 9
  21. 21. AllegroMCODE APCluster APID2NET BioQualiPlugin BLAST2SimilarityGraph BNMatch CABIN CalculateNodeDegree CentiScaPe ChemViz clusterExplorerPlugin clusterMaker ClusterONE ClusterViz COMA CommFinder CyClus3D CyOog cytoHubba Cytomcl DualLayout dynamicXpr EnhancedSearch EnrichmentMap ExprEssence GraMoFoNe GraphletCounter HiderSlider jActiveModules mcl-new MCODE MINE NeMo NetAtlas NetCirChro netMatch NetworkAnalyzer NetworkEvolution OmicsAnalyzer OmicsViz OrthoNets PanGIA PerturbationAnalyzer PinnacleZ RandomNetworks RDFScsape Reactome FIs RemainingDegreeDistribution Re Ori en tP l ugin S h o r t e s tP a t h P l u g i n S i m Tr e k st ructureViz TransClust VennDiagramGenerator VistaClaraPlugin WordCloud BiNoM bioCycPlugin BiogridPlugin BiomartClient BioNetBuilder BisoGenet ConsensusPathDBplugin CoryneRegNetLoader CyThesaurus-ID-Mapping CytoSQL DroID Genoscape GPML- Plugin GraphMLReader IntActWSClient iRefScape KGMLReader MetScape MiMIplugin NCBIClient NCBIEntrezGeneUserInterface Pathintegrator PhosphositePlus Web Service Client Module PICRClient PSICQUICUniversalClient ReConn SessionForWeb SFLDLoader StringWSClient Superpathways-Plugin 3DScape AgilentLiteratureSearch Cytoprophet DisGeNET DomainGraph ExpressionCorrelation GeneMANIA MetaNetter MONET BiNGO BubbleRouter ClueGO CommonAttributes DisplayNetworkFromFlatFile FluxViz FunNetViz HyperEdgeEditor PiNGO CyGoose CytoscapeRPC GroovyScriptingEngine JavaScriptEngine MiSink PythonScriptingEngine RubyScriptingEngine ScriptEngineManager addParentNeighbors AdvancedNetworkMerge batchTool BiLayout commandTool coreCommands CyAnimator edgeLengthPlugin edgeLister EpiTrace FERN FM3 GoogleChartFunctions GroupTool MetaNodePlugin2 MultilevelLayoutPlugin NamedSelection NatureProtocolsWorkflow NeighborHighlight NetLink nodeCharts PhyloTree VennDiagrams 9
  22. 22. AllegroMCODE APCluster APID2NET BioQualiPlugin BLAST2SimilarityGraph BNMatch CABIN CalculateNodeDegree CentiScaPe ChemViz clusterExplorerPlugin clusterMaker ClusterONE ClusterViz COMA CommFinder CyClus3D CyOog cytoHubba Cytomcl DualLayout dynamicXpr EnhancedSearch EnrichmentMap ExprEssence GraMoFoNe GraphletCounter HiderSlider jActiveModules mcl-new MCODE MINE NeMo NetAtlas NetCirChro netMatch NetworkAnalyzer NetworkEvolution OmicsAnalyzer OmicsViz OrthoNets PanGIA PerturbationAnalyzer PinnacleZ RandomNetworks RDFScsape Reactome FIs RemainingDegreeDistribution Re Ori en tP l ugin S h o r t e s tP a t h P l u g i n S i m Tr e k st ructureViz TransClust VennDiagramGenerator VistaClaraPlugin WordCloud BiNoM bioCycPlugin BiogridPlugin BiomartClient BioNetBuilder BisoGenet ConsensusPathDBplugin CoryneRegNetLoader CyThesaurus-ID-Mapping CytoSQL DroID Genoscape GPML- Plugin GraphMLReader IntActWSClient iRefScape KGMLReader MetScape MiMIplugin NCBIClient NCBIEntrezGeneUserInterface Pathintegrator PhosphositePlus Web Service Client Module PICRClient PSICQUICUniversalClient ReConn SessionForWeb SFLDLoader StringWSClient Superpathways-Plugin 3DScape AgilentLiteratureSearch Cytoprophet DisGeNET DomainGraph ExpressionCorrelation GeneMANIA MetaNetter MONET BiNGO BubbleRouter ClueGO CommonAttributes DisplayNetworkFromFlatFile FluxViz FunNetViz HyperEdgeEditor PiNGO CyGoose CytoscapeRPC GroovyScriptingEngine JavaScriptEngine MiSink PythonScriptingEngine RubyScriptingEngine ScriptEngineManager addParentNeighbors AdvancedNetworkMerge batchTool BiLayout commandTool coreCommands CyAnimator edgeLengthPlugin edgeLister EpiTrace FERN FM3 GoogleChartFunctions GroupTool MetaNodePlugin2 MultilevelLayoutPlugin NamedSelection NatureProtocolsWorkflow NeighborHighlight NetLink nodeCharts PhyloTree VennDiagrams 10
  23. 23. So what’s the problem? 11
  24. 24. 11
  25. 25. 11
  26. 26. 11
  27. 27. 12
  28. 28. !!! A tangled mess of inter-dependencies 12
  29. 29. !!! A tangled mess of inter-dependencies !!! Every public class is part of the API 12
  30. 30. !!! A tangled mess of inter-dependencies !!! Every public class is part of the API !!! Backwards compatibility is impossible 12
  31. 31. !!! A tangled mess of inter-dependencies !!! Every public class is part of the API !!! Backwards compatibility is impossible !!! Poor deprecation and versioning strategy 12
  32. 32. Hurts core developers, plugin writers, and users! 12
  33. 33. 13
  34. 34. Cytoscape 3.0! 13
  35. 35. Make {using, supporting, developing, extending} Cytoscape easier! 13
  36. 36. 14
  37. 37. 1. Clearly define API 14
  38. 38. 1. Clearly define API 2. Enforce separation of API and implementation 14
  39. 39. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 14
  40. 40. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 14
  41. 41. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 14
  42. 42. How? 15
  43. 43. 1. OSGi 15
  44. 44. 1. OSGi 2. Semantic Versioning 15
  45. 45. 1. OSGi 2. Semantic Versioning 3. Maven 15
  46. 46. Cytoscape Application Stack 16
  47. 47. Cytoscape Application Stack  OSGi − provides runtime container − defines module boundaries − provides micro service architecture 16
  48. 48. Cytoscape Application Stack  OSGi − provides runtime container − defines module boundaries − provides micro service architecture  Spring-DM − hides OSGi API 16
  49. 49. Photo credit: Maurice Koop 17
  50. 50. OSGi enables Modularity Photo credit: Maurice Koop 17
  51. 51. Photo credit: BlackmanVision 18
  52. 52. OSGi enforces Modularity Photo credit: BlackmanVision 18
  53. 53. 19
  54. 54. Semantic Versioning: 19
  55. 55. Semantic Versioning: Version numbers have meaning! 19
  56. 56. VERSION: major.minor.patch 20
  57. 57. VERSION: major.minor.patch patch - backwards compatible bug fixes 20
  58. 58. VERSION: major.minor.patch patch - backwards compatible bug fixes minor - backwards compatible new features 20
  59. 59. VERSION: major.minor.patch patch - backwards compatible bug fixes minor - backwards compatible new features major - backwards INcompatible changes 20
  60. 60. Because versions have a functional meaning, we can reason about ranges! 21
  61. 61. Because versions have a functional meaning, we can reason about ranges! [3.1,4) 21
  62. 62. Because versions have a functional meaning, we can reason about ranges! [3.1,4) As long as we version honestly, your plugin will always work! 21
  63. 63. Because versions have a functional meaning, we can reason about ranges! [3.1,4) As long as we version honestly, your plugin will always work! (At least until the next major version update) 21
  64. 64. 22
  65. 65. Maven 22
  66. 66. Maven Organize 22
  67. 67. Maven Organize Build 22
  68. 68. Maven Organize Build Release 22
  69. 69. 1. OSGi 2. Semantic Versioning 3. Maven 23
  70. 70. 1. OSGi - To enable/enforce modularity 2. Semantic Versioning 3. Maven 23
  71. 71. 1. OSGi - To enable/enforce modularity 2. Semantic Versioning - To define how and when changes happen 3. Maven 23
  72. 72. 1. OSGi - To enable/enforce modularity 2. Semantic Versioning - To define how and when changes happen 3. Maven - To organize, build, and release 23
  73. 73. 24
  74. 74. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  75. 75. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  76. 76. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  77. 77. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  78. 78. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  79. 79. 1. Clearly define API 2. Enforce separation of API and implementation 3. Clearly define what can change and when 4. Sensible dependencies 5. Make writing and maintaining plugins easy 24
  80. 80. Risks? Photo credit: notorious d.a.v. 25
  81. 81. Risks? No ropes!!! Climber Photo credit: notorious d.a.v. 25
  82. 82. Risks? No ropes!!!  Rewriting anything is much harder than it looks! Climber Photo credit: notorious d.a.v. 25
  83. 83. Risks? No ropes!!!  Rewriting anything is much harder than it looks!  Is the new API too Climber limiting? Photo credit: notorious d.a.v. 25
  84. 84. Risks? No ropes!!!  Rewriting anything is much harder than it looks!  Is the new API too Climber limiting?  Porting plugins more trouble than it’s worth? Photo credit: notorious d.a.v. 25
  85. 85. Risks? No ropes!!!  Rewriting anything is much harder than it looks!  Is the new API too Climber limiting?  Porting plugins more trouble than it’s worth?  Is OSGi just too 25 Photo credit: notorious d.a.v.
  86. 86. 26
  87. 87. NIH GM070743-01 P01 HG005062 26
  88. 88. National Resource for Network Biology P41 RR031228 26
  89. 89. More information about Cytoscape? http://cytoscape.org Interested in Collaborating? http://nrnb.org 27

Editor's Notes

  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Cytoscape is fundamentally about network visualization.\n\nIt’s about integrating network topology data with attribute or state information about the nodes and edges.\n\nFor example P-values or expression levels from from a microarray experiment can be easily integrated with an interaction network. \n\nExplain this example!!! Provide experimental context.\n
  • Example of variety.\n\n
  • Example of variety.\n\n
  • Example of variety.\n\n
  • \n
  • \n
  • \n
  • Aside from being open source and free software.\nCytoscape is extensible\nWe provide a plugin interface \nProgrammers can extend the functionality of Cytoscape by writing small bits of code to perform some specific task or analysis. The core Cytoscape framework provides basic capabilities, but all advanced functionality comes from plugins\nPlugins represent the primary analysis mechanism in Cytoscape\nPlugins are very popular!\n\n
  • Aside from being open source and free software.\nCytoscape is extensible\nWe provide a plugin interface \nProgrammers can extend the functionality of Cytoscape by writing small bits of code to perform some specific task or analysis. The core Cytoscape framework provides basic capabilities, but all advanced functionality comes from plugins\nPlugins represent the primary analysis mechanism in Cytoscape\nPlugins are very popular!\n\n
  • Aside from being open source and free software.\nCytoscape is extensible\nWe provide a plugin interface \nProgrammers can extend the functionality of Cytoscape by writing small bits of code to perform some specific task or analysis. The core Cytoscape framework provides basic capabilities, but all advanced functionality comes from plugins\nPlugins represent the primary analysis mechanism in Cytoscape\nPlugins are very popular!\n\n
  • \n
  • \n
  • \n
  • \n
  • Of the plugins that work, only a few have actually been tested against the release.\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • Changing one part of the code impacts others, often in poorly understood ways.\n\nWe can’t separate out individual bits of functionality.\n\nThe entire\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • OSGi provides a definition of modules\nOSGi provides runtime engine for loading modules\nOSGi provides the micro services architecture for communicating between modules.\n
  • We can change the guts of our code without worrying that we’ll break anything that you’re using.\n\nWhat we do behind closed doors is our business and you can’t get in!\n
  • \n
  • \n
  • patch - really only bug fixes. No changes to the API.\n\nminor - Any new methods, new packages, new classes etc. But everything must be backwards compatible. E.g. you can’t change a listener interface.\n\nmajor - Anything that is not backwards compatible. Remove a method, remove a class, change an interface, etc..\n
  • patch - really only bug fixes. No changes to the API.\n\nminor - Any new methods, new packages, new classes etc. But everything must be backwards compatible. E.g. you can’t change a listener interface.\n\nmajor - Anything that is not backwards compatible. Remove a method, remove a class, change an interface, etc..\n
  • patch - really only bug fixes. No changes to the API.\n\nminor - Any new methods, new packages, new classes etc. But everything must be backwards compatible. E.g. you can’t change a listener interface.\n\nmajor - Anything that is not backwards compatible. Remove a method, remove a class, change an interface, etc..\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • Specifically, we want to\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • We’re reusing as much as we can and hiding the messy bits.\n\nIt has taken much longer than we thought.\n\nWe intend to help developers do the initial port.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • Cytoscape is developed by a consortium of companies and institutions.\n\nThe source code is owned by the Cytoscape Consortium a 501c3 non profit in California\n\nYou can join the consortium by contributing development effort.\n\nWe recently received a NIH center grant that allowed us to establish the NRNB or the National Resource for Network Biology. \n\nThe NRNB now coordinates all Cytoscape development, training, and outreach.\n
  • \n
  • ×