Code Monkey home page Code Monkey logo

gsoc-2020's Introduction

google-summer-of-code

Redevelop Model Bricks code base architecture @ NRNB

Project Overview | Repository Link | Updates | To Do | Project Screenshots | Links


Project Overview

VCell ​ is an open-source software platform that can model and simulate reaction-diffusion systems in geometries derived from 3D experimental microscopy images. VCell can also utilize experimentally derived molecular concentrations and cellular localizations. Model Bricks project is an initiative focused on describing recurring patterns in biological networks t​ hat correspond to such biological concepts as a metabolic reaction, catalysis, inhibition, protein phosphorylation, complex formation, transcription, translation, etc. These patterns are described as small ​ VCell models that are retrieved from the VCell database by using VCell APIs and displayed online. Currently, Model Bricks describe patterns for specific biological networks. It was built on ​ YAML ​ data-serialization language and uses markdown (.md) files for managing the content of the website. Back then, these technologies were cutting edge of web development, the basis of their already-successful templating feature, and the day-to-day support they got from the community.

But now, these technologies are outshined by new better technologies. The majority of developers have shifted to these new technologies for betterment in terms of performance, simplicity, size, and flexibility and hence YAML and Markdown files have faded away from the world of web development. Therefore, one of the major aims of this project was to rebuild the entire ModelBricks website using new superior technologies and using their capabilities to further improve the quality of the codebase architecture and the overall functionality.
VCell is used by scientists around the world to create quantitative hypotheses of cellular functions whose predictions can be directly compared to experimental results, therefore, developed Modelbricks will encourage the use of recurring patterns and help many in Computational and Network Biology.

Mentors: Ann Cowan, Michael Blinov, Frank Morgan and Dan Vasilescu

Objectives

  • Redesign and enhance the user interface according to the new modern trends.
  • Create a web architecture that will allow displaying of as many VCell elements as possible, without being too crowded and easily accessible for each.
  • Developing a pipeline that converts VCML(xml) data of each model into JSON data.
  • Developing User Dashboard to display all the information of a BioModel.
  • Create VCell API for each element to be displayed.
  • Integrate Google Search, to search within the site.
  • Automated creation of static html pages to enable google search.
  • Create a Printable Model Page for each model.
  • Automatic deployment using Herokuapp.
  • Writing detailed ​ documentation of the project, to make the codebase simpler for other contributors.

Main Repository URL

ModelBricks_source

Updates

Community Bonding (May 5, 2020 - June 1, 2020)

  • Understood the codebase and VCell API’s generation process.
  • Got familiar with the VCell application.
  • Discussed detailed workflow with mentors along with implementation ideas.
  • Agreed on changing the codebase language from Vue.js to Node.js and Handlebars.

Phase One (June 1, 2020 - June 30, 2020)

  • Developed web architecture.
  • Converted VCML (xml) data to JSON data.
  • Developed a basic Dashboard page.
  • Developed static web pages for google search.
  • Enable search​ in Model bricks and browsing using multiple filters.

Phase Two (July 1, 2020 - July 31, 2020)

  • Tested VCell API’s for a few elements.
  • Created Curated List, that is connected to Vcell Beta API.
  • Developing Components to receive data from the API’s.
  • Injected JSON data and testing dynamic web pages.
  • Integrated Google Search.
  • Developed Printable pages for all BioModels.

Phase Three (July 1, 2020 - August 24, 2020)

  • Incorporated further feedback by mentors.
  • Enhanced Model Dashboard page to enhance the stability.
  • Displayed Annotations and universal ID's for each element.

Deliverables

Tasks Planned Completed
New Codebase Architecture Yes ✔️
Convert XML to JSON No ✔️
BioModel Dashboard Yes ✔️
BioModel Printable Page No ✔️
Integrate Google Search Yes ✔️
Automatic static webpages No ✔️
Annotaions and UID's Yes (In Progress) 🚫
Documentation Yes (In Progress) 🚫

To Do:

  • Deploy this project to Modelbricks.org.
  • Place annotations and UIDs right below the elements name in printable page.
  • Create informative static web pages. (Future Scope)
  • Develope automatic vcml file download system at set interval of time or by running a single. (Future Scope)
  • Optimize the platform for mobile. (Future Scope)

Links

Key Learnings

  • Explored Node.js and got to know about it's various capabilities.
  • Major concepts of Javascript
  • Got to understand functionalities of a Templating Engine - Handlebars.
  • Imporoved my collaboration and communication skills
  • Gained major insight of a complete software development lifecycle.

Project Screenshots

Visit Website



















Footnotes

  • We met twice every week over Zoom call on every Tuesday and Friday at 10:30am (EST)
  • Great exprience with the amazing mentors - Ann Cowan and Michael Blinov. You guys are the best mentors that I could ever asked for. Thank you for all the guidance and support.
  • Project was constantly supervised by mentors and their feedbacks where Incorporated on time.

gsoc-2020's People

Contributors

sraghuvanshi avatar

Watchers

 avatar  avatar

Forkers

nrnb

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.