Skip to content
oguitart edited this page Oct 17, 2014 · 5 revisions

Cyni App Development

Introduction

Cyni Toolbox App is an application formed by two bundles, one API bundle called Cyni API and another bundle with the implementation of all Cyni components. The goal to create this kind of apps is not only to provide a functionality but also to create a framework to help other users to implement their techniques without much effort.

Therefore, the new Cyni Toolbox App along with its Cyni framework takes advantage of new Cytoscape 3.0 modular configuration and allows other app developers to use Cyni infrastructure and current tools to develop new algorithms without wasting time on other additional elements such as GUI, parameter handling or similarity metrics development. Moreover, Cyni content may also be used for app developers that intend to create apps which are not mainly focused on network induction. This is possible because all cyni tools can be reached independently and can be plugged into other Cytoscape components.

There are two kind of app developers that might be interested in Cyni App framework. Those who want to contribute to Cyni with new algorithms, or on the other hand, users that just want to use Cyni tools to their purposes and so they only need to know how to grab and play with these tools. For both kind of users, the next sections will try to provide as much information as possible to help them to fulfill their needs.

Architecture and Technologies

Cyni architecture follows the same principle than Cytoscape 3.0 regarding to API definition. The API only contains what is strictly necessary to be used for other app developers, the rest of the implementation is in the core of the Cyni app. App developers should be familiar with OSGi and Maven, which are the two main development elements used in Cytoscape 3.0.

  • [Cyni Architecture ] (CyniArchitecture)
  • OSGi
  • Maven

API Javadoc

Cyni App Tutorials

If you haven't developed a Cytoscape 3.0 App before, you should start checking the available documentation found at the [ app development 3.0 documentation] (http://wiki.cytoscape.org/Cytoscape_3/AppDeveloper). Once, you are familiar with the principles of Cytoscape Apps, you will notice that there is a new concept to develop apps, which is to develop an app that depends on another API app. This new option brings a new variety of possibilities but at the same time requires app developers to be more rigorous on their developments.

Cyni provides two sets of elements grouped in two types called Algorithms and Metrics, but also allows other app developers to create new Algorithms and metrics through the Cyni framework. To help other app developers to create any of these two types using the Cyni framework, the next links offer tutorials to show how a new algorithm or metric can be easily developed through Cyni. Regarding the User Interface used to display input parameter information and allow the setting of these parameters, Cyni API gives the possibility to App Developers to create their own UI panel using Java Swing components or to use Cytoscape Tunables to create the UI panel for input parameters selection. [Cytoscape Tunables] ( http://wiki.cytoscape.org/Cytoscape_3/CoreDevelopment/Architecture#Work_Model ) intend to facilitate the work of app developers by hiding the complexity that the definition of a Java Swing User Interface might have. The next tutorials present these two options and also provide samples.

Downloads