Guide for Developers (Non-Scientists)

Guide for Developers (Non-Scientists)

Guide for Non-scientist App Developers icon

No experience with genes other than your jeans? Have no fear!

Sequencing.com's technology was designed for app developers who don't have experience with genetics. As long as you are familiar with RESTful APIs, you can code Real-Time Personalization into your apps without learning anything new.

  • No new language for you to learn because we speak yours.
  • No proprietary platform to deal with because our API works with apps on any platform.

Visit the Developer Center for additional resources and tools.

 

Related

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

I want to create an app that will be hosted on Sequencing.com

I want to create an app that will be hosted on another platform, such as iOS, Android or Linux

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 on 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, run some tests to evaluate the efficiency of the code and to detect any unallowable code. If everything checks out you will receive a notification from us when your app is available in the app store for other developers.

If, unfortunately, your app does not pass our standards or fails to execute then you will receive a notification from us indicating the reasons, at which point you may rectify the code and send for re-approval.

How can my App be removed from the app store?

If you wish to remove any of your apps from the App Store, please write to us and we will get back to you when the app is fully removed from the app store.

App on other platforms (iOS, Android, etc)

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/Java apps and other languages/platfroms.

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.
  • 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

App Chains are available in the following languages:

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

Related

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.

Enabling Real-Time Personalization

Real-Time Personalization® (RTP) technology allows you to provide each app user with a personalized user experience in real-time. The personalization is powered by the app user's genes.

The following is a detailed real example of the Weather My Way +RTP app, which we developed with Real-Time Personalization technology. The open-source code is accessible from our GitHub repository.

Step 1: The first step in the process of creating any app is to enable your user to login to Sequencing.com using their Sequencing.com account.

  1. The base URL is: https://sequencing.com

  2. So that a user may login the following API should be invoked:

  3. Method name: /indexApi.php?q=sequencing/webservice/user/lookup&api-key=Your-Key

  4. The api-key is the developer key that you received when you signed up for a developer account and registered your application.

  5. Method Type: POST

  6. Parameters:

    • name : login id of the user

    • password: user password

  7. Return Value: JSON

    • uid: user id

    • email: user email

    • apiKey: API key required for subsequent API requests.

    • persona: Persona ID to which the user belongs

    • first_name: Users First Name

    • last_name: Users Last Name

 

Step 2: In this step we are going to ask the geographical location such as the city from the user, so we can download the weather data for that location. You may use any API of your choice to get weather data, we only show one of the many possibilities.

  1. Base URL: http://api.openweathermap.org/data/2.5/weather

  2. Method Type: POST

  3. Parameters:

    • q: This is the name of city or city and state.

  4. Return Value: JSON

    • Weather data returned as JSON. In our example we parse the weather data and store the weather data value so we can use it for downstream analysis.

  5. Next we want to get a list of files the user has available for analysis. Please note by default few sample files will also be made available.

  6. Base URL: /sqapi/analysisService.svc

    • Method Name: DataFileList

    • Method Type: GET

    • Parameters:

      • API-Key: This is the API-key obtained in the first step.

      • all: boolean value indicating to get all files.

    • Return Value: JSON

    • List of file names and ID available to the user.

    • You will be required to parse the list and present the data as you wish such as in a dropdown or table.

 

Step 3: In this step we are going to take the input file selected in the previous step and trigger/start the melanoma analysis app. The app will then return data that we can combine with the weather data.

  1. Base URL: /sqapi/analysisService.sv

  2. Method Name: StartApp

  3. Method Type: POST

  4. Parameters:

    • API-Key: This is the api-key obtained in the first step.

    • appCode: MelanomaDsApp

  5. Return Value: JSON

    • This will return a unique job id for the job that was started. All backend apps are run in async mode, so a job id is returned which we will use in the next step to check job completion status.

 

Step 4: In this step we are going to take the JobID returned in the previous step and check if the job is pending/completed.

  1. Base URL: /sqapi/analysisService.svc

  2. Method Name: CheckAppStatus

  3. Method Type: GET

  4. Parameters:

    • API-Key: This is the API-key obtained in the first step.

    • idJob: the job id obtained from previous step

  5. Return Value: JSON

    • This will return job status such as "Completed" or "In Progress"

 

Step 5: If the app status returned is "Completed" then we can get the risk values and combine with the weather data.

  1. Base URL: /sqapi/analysisService.svc

  2. Method Name: GetAppResults

  3. Method Type: GET

  4. Parameters:

    • API-Key: This is the api-key obtained in the first step.

    • idJob: the job id obtained from previous step

  5. Return Value: JSON

    • The return value will be risk for melanoma such as "Low", "Moderate", "High" and "Very High". This risk value can be combined with the weather data so the app will offer real-time personalization.

 

Step 6: In this step there is no API calls to be made. Here we combine the risk value we obtained with the weather data. A couple of examples are cited below. As a developer you may display the results in any way that your app demands.

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 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.

 

Related

Developer Center

Weather My Way +RTP app

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

The Weather My Way +RTP app is an open source web-based weather app powered by Real-Time Personalization™technology. We created this app so that you can experience an app with 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.

 

  Weather My Way +RTP app icon                      

Weather My Way +RTP                  GitHub Repo

App Chain Technology

Sequencing.com App ChainTM technology allows you to benefit from apps already created so you don’t have to reinvent the wheel. This technology will allow you to run apps in succession using our API.

E.g. 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 converting a BAM file to VCF using a certain reference genome and then piping the results into another app for annotation and then piping the results from the second app into another app for custom analysis.

The above can be easily accomplished with our app chaining 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 leverage our technology even more since you could 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.