Software Development Overview
All BioGRID-associated projects currently and will always make use of open source and openly available tools, programming languages, and databases for all software engineering projects. The following is a brief overview of the BioGRID development tools and process.
Software engineering projects at the BioGRID primarily make use of the programming languages PHP, Python, and Java. Each of these languages are open source and freely available to anyone. PHP is most frequently used as our primary language for web application development such as the web user interface for the BioGRID. Python is utilized heavily as our back-end processing language for tasks such as the automated building and maintenance of our monthly updates and the updating of our annotation resources. Python is also heavily used for XML processing and output related tasks. Java is used for the processing of many major back-end and front-end processes, our API development, and was also used entirely to develop the Osprey Network Visualization System and our Cytoscape Plugins.
For all our relational database management system (RDBMS) requirements, the BioGRID tools and websites use the latest version of the open source MySQL database. MySQL is a powerful database platform that is used to store everything from our major annotation resources to our monthly BioGRID updates. MySQL also powers our Interaction Management System software which is the primary means for curation and maintenance of BioGRID interaction data. For more information on our existing database architecture, check out our Data Model.
All BioGRID websites and databases run on Dell and Mac based server hardware running out of Toronto and Princeton. All of our servers are currently running CentOS Linux as our core operating system, which is a free and open source operating platform. On each web server, we utilize the open source Apache 2.0 web server and Apache Tomcat web server to host and run our applications. All of our backups (nightly, weekly, and monthly) are performed via automated scripted procedures using Python and RSync and are archived to multiple locations including offsite tape based backups.
For Bug Tracking of programming errors and new feature requirements, the BioGRID uses the open source content management system Drupal. For communication from users, we maintain a shared email account with the free mail resource GMail. We are currently working to expand these resources to include an open mailing list maintained by Google Groups.