nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
116 stars 39 forks source link

Write Swagger Specification for Pathway Commons and Produce R Client #110

Closed cannin closed 3 years ago

cannin commented 6 years ago

Background

Pathway Commons is a database for biological interactions, it would be good to have Swagger (https://swagger.io/) specification for the API (http://www.pathwaycommons.org/pc2/) as it allows for easy generation of clients in many languages using the Swagger Codegen (https://github.com/swagger-api/swagger-codegen).

Goal

Generate the Swagger specification for the API and work to produce a R client for the API. The R Codegen (https://github.com/swagger-api/swagger-codegen) is relatively new and may require a lot of testing/debugging and possible code changes in the swagger-codegen project to make sure all functionality is available. A goal would be to have a place where users can test the API online similar to http://www.pathwaycommons.org/pcapi/

Getting Started

Swagger Tutorial
Example generated web interface
More complex Swagger example on a database similar to Pathway Commons (i.e. WikiPathways)
Pathway Commons API that needs to be transferred to Swagger
Swagger Codegen to Provide R Interface (this may have bugs that need to be dealt with)

Difficulty Level

Level 1

Skills

REST APIs (usage and testing) R (necessary) Java (some general ability to navigate Java code) Mustache (swagger-codegen uses Mustache templates to generate code)

Public Repository

Pathway Commons

Potential Mentors

Augustin Luna

Contact

Augustin Luna (aluna AT jimmy.harvard.edu)

superdyzio commented 6 years ago

Hello @cannin ! I've been working with REST APIs for a long time, I am able to navigate Java code (I have purely academic experience) and I've been helping with swagger-codegen in one of non-commercial projects in my current company. I don't know much about R, but I've done some course on code school and I'm willing to learn more about it. What can I do to increase my chances to be assigned to this gsoc project?

cannin commented 6 years ago

@superdyzio the end goal of this project is to produce a functional R package from the constructed Swagger API. A good project proposal will take this into account and address the necessary steps and identify what is needed components that an auto-generated Swagger API will be missing. To give a related use-case example for a project, called CBioPortal (that our group additionally works on):

Here is a Swagger API for a database (this API also needs to undergo a similar effort as the one for Pathway Commons):

http://www.cbioportal.org/api/swagger-ui.html

This is an existing R package to a legacy API that exists for CBioPortal :

https://cran.r-project.org/web/packages/cgdsr/index.html

Additionally, we need something well-tested; how will this occur?

alecplotkin commented 4 years ago

Hi @cannin, I'm interested in this project. I have a strong background using R to build bioinformatics pipelines, and am comfortable navigating Java code as well. In addition, a major goal of mine is to build expertise in developing R packages. I'm not sure if I'm eligible for GSoC (I'm currently only taking a class at an extension school), but I would be interested in working on this project through NRNB academy. Could I send you a CV or some sample code?

cannin commented 4 years ago

Thanks for the interest. @alecplotkin send your CV to the email address in the project description.