GSoC 2018 with InterMine: First and Second Week Progress

This year Google Summer of Code’s community bonding period ended on 14th May and the coding period started, so I’m excited about presenting you my progress so far. For a high-level description of my project with InterMine, you can go to this post, or you can read my GSoC proposal here :).

On the first hand, I setted up the Node environment with Express in order to start building the data browser. For the views I’m using the Pug engine, and the code is divided in the sources (/src folder) and the served content (in the /public folder). Also, for styling, I’m using SCSS, which is later compiled to CSS and served. In order to automatize the tasks, gulp has been employed, which is automatically being called before running the server, through the npm start command.

If you are the type of person that prefers to say ‘ok, but show me the code!’, I’ll save you some time by pointing you to the GitHub repo :).

Furthermore, in order to build the tests, I’m using Mocha, Chai and Should, while using Travis for continuous integration (CI).

Screenshot of the current state of the browser

With respect to the current features of the browser, we can search data on a specific mine, which is HumanMine, and in a future milestone, once the main features have been developed, we will add the possibility to search in other mines. The main classes that the user is able to browse are Gene and Protein, which can be changed from the buttons available on the top of the page, giving the user a general overview of those data by means of a plot, that currently, shows the distribution of the data among the different organisms in the mine, and it’s rendered using data obtained from a parametrized Express route, which calls the InterMine services using the IM.js library. The data is displayed to the user in form of a im-table, with several options for filtering and showing summaries of the data. Also, with the goal of easing the interaction of the user with the browser, a filter by organism short name has been added in the left side bar.

Feel free to test the browser yourself by accessing the Heroku deployment, and if you have any suggestions, just tell me! :)

If you liked the post, don’t forget to give me some love by clicking the claps button, I will appreciate it ;), and stay tuned for the next post!