Guide for Developers (Bioinformatics Experts) | Sequencing.com

Guide for Developers (Bioinformatics Experts)

Guide for Developers (Bioinformatics Experts)

Guide for Bioinformatics Experts icon

Bioinformatics developers that are seeking a global marketplace can make their apps and scripts available in our App Market.

Have a script or an app that processes or utilizes genetic data? Including it in our App Market is a simple process - just submit a support request.

 

Visit the Developer Center for plugins, resources and tools.

 

Related

Join the Developer Alliance and receive your own free VM (and more)

Apps for bioinformatics

Code innovative bioinformatics-related apps by leveraging the Sequencing.com platform.

How can I leverage Sequencing.com Apps in my work?

Easy! Just call our APIs, then pass us the correct parameters and we generate and send you the data that you require.

Is there a real example of how this is done?

Yes. Say if you had dataset of several BAM files and if you wanted to convert them into Genome VCF or VCF files and if you had to change the reference genome files as a part of your workflow, then you would probably have to create custom scripts and run the script each time. In addition you would have to monitor the progress and in addition make sure the files pass the QC process. Now you may leave all that to sequencing.com. For e.g. our UGENE app, which is also available on sequencing.com app store, each functionality in the app can be used via an API. So in your code you would call the API for the UGENE app, passing in the correct parameters and in some time you will get the correctly formatted file. File storage, app execution and monitoring and notifications all happens on the sequencing.com platform at no cost to you. In addition call the APIS as much as you like, whenever you like and from any device that you like.

What other types of Apps are available?

We have apps that can be classified into several groups. There are apps such as UGENE that can convert most file formats to another format. Then there are also apps which can perform clinical analysis such as risk detection for multifactorial phenotypes and then there are also educational apps. This way you can simply call the APIs of an app can plug into your code.

What real value does this add to my work?

The Sequencing.com platform provides you API access to apps that are coded by our expert team members conforming to the standards in adherence to the literature.  Access the API 24x7, run your code, store your data and also make your app available as APIs for other developers to use.

Apps hosted on Sequencing.com

Apps hosted by Sequencing.com run on our powerful multithreaded cloud computing architecture and reach a global audience by being sold in the App Market.

​The first step is registering for a free account and the visiting the Developer Center.

Submitting an App

The instructions below are for submitting an app to Sequencing.com's App Market.

  • You own your code and we host your app on our platform, which means we take care of marketing, security, cloud computing resources, bandwidth and payment processing.

You may also use our API and App Chain technology to add Real-Time Personalization to apps on any platform, including iOS, Android and web. After adding Real-Time Personalization to your app, submit a Support Request and we'll include information about your app in the Sequencing.com App Market.

 

To submit an app, open a Support Request and select I want to submit my app.

Please include the following details in your request:

  1. Name of app
  2. Do you want Sequencing.com to host your app on our platform?
  3. Coding language your app is written in
  4. Is there a UI component to your app?
    • If yes, is there a prototype?
  5. What does your app do?
  6. What is the output of your app? (HTML, PHP, JSON, PDF, GFF3, SVG, CSV, etc.)
  7. Who will be the likely users of your app? (Individuals, Bioinformaticians, Researchers, Healthcare Professionals, etc?)

 

You do not need to submit actual code with this initial request. After submitting your request, a member of our A-Team (App Team) will contact you to further discuss your app.

Supported programming languages

A short list of the programming languages we support for apps hosted by Sequencing.com.

Don't see a language listed below? We probably support it. Submit a Support Request to find out.

 

  • Frontend: HTML, PHP, jQuery, CSS, AJAX, XML, JSON as well as ability to display videos, images, PDFs, CSVs, TXTs, Word, Excel, Google Sheets, Google Docs and Google Slides

  • Databases: MySQL, MariaDB, Percona, PostgreSQL, SQL Server, Hadoop, NoSQL databases including Cassandra, MongoDB, HBase and Couchbase, and even Excel and Google Sheets

  • Backend: Java, C++, .NET/C#, PHP, Perl, Python and Ruby

  • Mobile: Objective-C, Swift and Android

  • APIs: Most API infrastructures including SOAP and REST

  • Operating Systems: Apps that run on Linux (all major distros), Windows Server, Mac, iOS and Android

What if my app has special requirements?

Your app will under the system privileges setup for running all apps. If your app requires any special configuration such as increased memory then you may do so in your code i.e. code based memory management. If, however, you require system wide settings, you may contact us.

What format can my app output data?

It is recommended that you output your data as files so that storage on the server would be simpler.

You may decide the format for the files as per your requirements such as industry standard SAM/BAM/VCF etc. or in generic form such as text files. However you may pass the data in JSON format from the APIs since it is a requirement for our custom display modules to display data.

The Sequencing.com site can also display your app results as HTML/HTML5, PDFs, tables, graphs, images and video.

How can my app data be visualized?

We support several views for data. You may choose to show your data in a table that supports paging, sorting and a very advanced search. We also support line, bar or pie chart. If your data is a list of multimedia resources then you could also use our multimedia module to display data. We also support PDF viewers so you may choose to display data in PDF viewer. Your code will be responsible for generating the PDF.  For all modules except for the PDF files the data should be returned in JSON format. For PDF documents a URL will be generated and shown on the UI.

How can my app be tested online?

You may test your app on your dashboard. During the development process you may choose to upload your app or simply run it but not submit it to the app store. In that scenario you will be able to run your app but it will not be submitted for review. Depending upon the time of execution for the app, you will be able to debug, view results etc.

What is the App Approval Process?

Once you upload your app into our App Store, our team of experts will install your app and manage the QC process. Once everything checks out, you will receive a notification from us when your app is available in the app store for other developers.

App Approval Process

Once you upload your app, our team of experts will install your app and conduct a number of tests that will evaluate the efficiency of the code.

We also screen for malicious code or code that may otherwise put our community at risk. Once your code is reviewed and approved, you’ll receive an email notification with instructions on how to set the price of your app and make it available for purchase in the Sequencing.com App Market.

If during the Approval Process any issue is detected, you will receive an email notification that states the issue along with recommendations for correcting it. Once corrected, you may then re-submit your app code for approval.

App Deployment

Once you have coded your app it can be deployed and released to the world.

If you would like to make your app available to the world in Sequencing.com' App Market:

  1. Submit a Support Request to be connected to our On-boarding Team
  2. Review the documentation below for implementing the App Market API, which includes drop-in code that will allow you to quickly connect your system to Sequencing.com's App Market

 

Apps hosted at your site

App Market API

Sequencing.com provides two APIs for you to choose from:

1.  App Market API

  • Best if you've already developed software that processes genetic data and the software is running on your own system.

 

2.  Real-Time Personalization® (+RTP) API

  • Best if your software does not process genetic data but you want to provide your app users with a truly personalized user experience.

App Market API

To add your app to Sequencing.com's App Market, submit a Support Request or email [email protected].

Sequencing.com's free App Market API enables your app to have all the benefits of being sold in Sequencing.com's App Market while leveraging the system and website you've already build.

Best if you’ve already created a unique backend system for processing genetic data and a frontend for providing results via a user interface.

 

When a user purchases your app, Sequencing.com will automatically and securely send your system that's user's genetic data.

  • We'll pre-process the user's genetic data so that when you receive it, 

    • it's in the format your system already uses

    • it's the specific dataset required for your software to process

  • We'll redirect the user to your site so that the user integrates directly with your site, uses your current UI, etc.

 

Detailed Overview

 

Benefits of selling your app in Sequencing.com's App Market

  • Join the largest global marketplace for apps powered by genetic data. 
  • Gain access to Sequencing.com's large and rapidly growing community.

  • Become instantly data agnostic so that users who have had genetic testing from any provider are now your potential customers

    • your app will instantly be able to accept data from almost any source including whole genome sequencing, exome sequencing, Helix, 23andMe (all versions), Ancestry.com (all versions), Family Tree DNA (all versions), National Geographic - The Genographic Project (all versions), Genes for Good and many others.

    • you no longer have to worry about genetic data compatibility. As new data formats are released, Sequencing.com will seamlessly enable these new formats to be compatible with your app.
  • Acquire awareness and adoption by leveraging Sequencing.com's marketing and user acquisition expertise.

Real-Time Personalization (+RTP) API

Real-time Personalization (RTP) technology is simple to integrate into any app.  

RTP uses APIs called App Chains that provide universal compatibility for all operating systems, devices and apps including iOS, Android, Mac OS, Windows, Linux and web servers.

 

Plugins

Our plugins provide all needed functionality out-of-the-box to add RTP to iOS, Android and Java apps. Each link also provides instructions for how to use the plugin.

 

The Master Plugins above provide all needed functionality to add RTP to your app. This includes enabling:

  • OAuth2
    • enables your app to securely connect to Sequencing.com.
  • a File Selector
    • allows each app user to view and select a file that is stored in his or her Sequencing.com account. RTP will utilize the genetic data contained within this file to provide your app with genetically tailored information.
  • App Chains
    • all you need to do is add one or more app chain #'s and configure your app for how you want it to respond based upon the potential responses for each app chain.

 

Additional languages

If your app is coded in a different language, App Chains are available in the following languages:

  • Swift
  • Objective-C
  • Java-Android
  • Java
  • Python
  • Perl
  • C#/.NET

 

Related

What is Real-Time Personalization?

What is the process of creating apps for other platforms?

Using an IDE of your choice you may code your app. RTP technology can be coded into apps that are available via any platform or OS, including iOS, Android, Mac OS, Windows and almost all distros of Linux.

Access to Sequencing.com's technology is via API. Because of this, you will be required to have some knowledge about making REST API requests and parsing the returned JSON data.

Once the data is available to your code then you may use it in your code logic. E.g. if you are creating a mobile app for the Apple iPhone then you might code your app in Objective-C or Swift and make API calls to the Sequencing.com backend.

If your app requires access to a user’s data then in your app you will be required to enable OAuth based authentication. If the user "Accepts" that your app and any app chains that your app may use may then access the user's genetic data stored at Sequencing.com. The user's genetic data will be made available only after you have passed the OAuth Token that was supplied.

You will then be able to use the returned data from the call in your code logic. At this point it will be up to you to use the data for your requirements. E.g. you might want to show tabular data, then you will be required to parse the data and make that as a data-source to the table controls in iOS.

Once your app has been created, you may upload it to iTunes Connect and if accepted by Apple then it would be available to end users.

 

Please note:

  • Only the genetic data pertinent to your app or the app chains you are using will be accessed.
  • While an App +RTP that are run on a platform outside of Sequencing.com may use an App Chain that utilizes, analyzes, processes, etc. a user's entire genome, Apps +RTP cannot retrieve or download a user's entire genome. 
  • While Apps +RTP can access and use data from within a user's genetic data file, Apps +RTP cannot download any of the actual genetic data files.
  • Apps +RTP are prohibited by Sequencing.com's Terms of Use from storing the output of an app chain. 
    • Updates to existing app chain may be released from time to time and seamlessly integrated into RTP. The benefit to you is that you do not have to recode your app each time an app chain is updated. This also means, however, that for users to always receive the most up-to-date (ie Real-Time) personalization, app chains must be re-run each time the app function is accessed that utilized +RTP technology. 
  • Apps +RTP are also prohibited from storing a user's genetic data.
    • Sequencing.com provides secure, HIPAA compliant storage of genetic data. Our Terms of Use allow for genetic data to be accessed but not stored. This is a necessary feature to help protect the security and ensure integrity of our user's genetic data.

App Chain Technology

The output of all apps that are present in the Sequencing.com app store are accessible via APIs - we call each API an App ChainTM. Because of this, apps created by Sequencing.com as well as other developers are available as APIs.

Apps can be of several different types such as apps for clinical analysis, apps that can convert one file type into another such as convert BAM to gVCF and yet others can be educational apps. All the functionality that apps provide is also accessible via APIs.

This works to your advantage so that you do not have to worry about the low-level work that is required but instead you may focus on the app functionality that your app is trying to provide.

How Can I leverage Sequencing.com technology?

Call our APIs passing in the correct parameters and generate the data that you require.

For example, this is as simple as passing the AppID of a certain app and correct parameters for that API to execute. If the validation passes then the app will execute and a JobID will be returned to your app.

You may then call another API passing in the JobID and you will return the status of your job. Please note that you will be responsible for coding a timer function to poll the job status API.

Once the job has completed you may then call another API passing in the JobID and the generated data will be returned to your code. You may then use the data as you see fit.

What is the App Sequencing Technology?

Sequencing.com app sequencing technology allows you to run apps in succession using our API.

For example, let’s assume that you would like the results from one app to be piped into another app. This commonly happens in bioinformatics analysis such as convert a BAM file to VCF using a certain reference genome and then pipe the result through an app for annotation and a second app for custom analysis.

The above can be easily accomplished with our app sequencing technology where you would chain apps in succession passing the results of one app as input to the second app and so on. This allows you to tap into granular functionality provided by our core apps as well as apps that are created by other app developers.

Submitting an App Chain

The instructions below are for submitting an app chain to be made accessible through Sequencing.com's API. This means the app chain will be hosted on our platform and when an API call is made to the app chain, the chain will run using our computing resources. 

 

To submit an app chain, simply submit a Support Request and select I want to submit my app.

Please include the following details in your request:

  1. Name of app
  2. Coding language your app chain is written in
  3. Are the API calls already coded?
    • If no, do you want assistance writing the API calls?
    • If yes, is the API call RESTful?
    • If yes, what language are the API calls written in?
  4. What does your app chain do?
  5. What is the output of your app chain (ie what is returned with the API response)? (JSON string, GFF3, PDF, SVG, CSV, genotypes, etc.)
  6. Who will be the likely users of your app chain? (Individuals, Bioinformaticians, Researchers, Healthcare Professionals, etc?)

 

You do not need to submit actual code with this initial request. After submitting your request, a member of our App Chain Onboarding team will contact you to further discuss your app chain.

Enabling Real-time Personalization technology

Real-Time Personalization®  (+RTP) allows your app to connect with each app user's genes in-order to provide that app user a truly personalized experience.

This means that you could code an app that could work as follows:

  • There is the app core, which is essentially your code. Your code might require data from two different sources:

    • First, data from a sensor in the phone or an external API

    • Second, information from the app user's genes

      • This information can now all be obtained by your app in real-time using Sequencing.com's API.

  • Sequencing.com API will allow your app to obtain useful information about the app user based on an analysis of the app user's genes.

  • Your code may also obtain data from a sensor in the app user's device (such as GPS) or from an external API (such as a weather API). This data may be combined with the user’s genetic information obtained from Sequencing.com so that the information provided by the app is tailored to the user's genes in real-time.

Weather My Way +RTP app

The Weather My Way +RTP app is an open source web-based weather app that uses Real-Time Personalization technology. We created this app so that you can experience an app that uses RTP while also having access to the app's source code.

The Weather My Way +RTP app combines weather forecast with an analysis of the app user's genes (using App Chains). The app then provides the user with daily, personalized recommendations that optimize the app user's wellness and longevity.

Even a weather app can now be personalized to the app-user in real-time!

 

  Weather My Way +RTP app icon                       

Weather My Way +RTP                  GitHub repo

 

App Workflow:

  • End user installs the app on their device or uses it via their computer.

  • End user then enters their login details and internally an API key is passed to the app.

  • The app can now access the end user’s data and the available data files are displayed to the user.

  • The user can then select the data file upon which the app can be run.

  • On the next screen the user can select their geographic location. At this point the app communicates with an external weather app and downloads that data in real-time.

  • The app then combines the user’s risk of skin cancer and the weather data and displays the information as follows:

    • If Sunny and temp is over 70 degrees F then based on the person's Melanoma Risk the following could appear as an app notification via the app:

      • Lower Risk and Normal Risk of Melanoma = It's going to be a sunny day today! Sequencing.com analyzed your genes and wanted to remind you that even though you are not at an increased risk for skin cancer, you should either put on sunscreen today or avoid the sun because too much sun exposure can cause premature aging.

      • Slightly Increased Risk and Moderate Risk of Melanoma = It's going to be a sunny day today! Sequencing.com analyzed your genes and it's important that you apply a broad-spectrum sunscreen with a SPF of 30 or higher this morning to your face, neck, arms and any other exposed skin. You should also reapply the sunscreen again at around noon and we'll remind you at that time so you don't forget. If you'd like to know why this personalized recommendation is being made, please click here.

      • High Risk and Very High Risk of Melanoma = It's going to be a sunny day today! Sequencing.com analyzed your genes and it's extremely important that you apply a broad-spectrum sunscreen with a SPF of 30 or higher this morning to your face, neck, arms and any other exposed skin. You should also reapply the sunscreen again at around noon and we'll remind you at that time so you don't forget. If you'd like to know why this personalized recommendation is being made, please click here.

Thus we are able to combine real-time weather data with the genetic data and produce a personalized risk assessment report based on real-time weather data.

OAuth2 demo

For developers interested in learning more about using OAuth2 with Sequencing.com's API, we created an OAuth2 demo with source code available at GitHub.

 

               

     oAuth2 Demo                    GitHub repo