nmdp-bioinformatics/service-gfe-submission

Name: service-gfe-submission

Owner: NMDP/Be The Match Bioinformatics Research

Description: Service for getting a GFE from raw sequence data.

Created: 2016-10-27 20:08:47.0

Updated: 2017-03-02 16:19:57.0

Pushed: 2017-09-01 03:18:27.0

Homepage: null

Size: 84530

Language: Perl

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

service-gfe-submission

RESTful API for getting GFE results from raw sequence data

Build StatusDocs StatusCoverage StatusLicense

Further documentation is available at service-gfe-submission.readthedocs.io.

The Gene Feature Enumeration (GFE) Submission service provides an API for converting raw sequence data to GFE. It provides both a RESTful API and a simple user interface for converting raw sequence data to GFE results. Sequences can be submitted one at a time or as a fasta file. This service uses nmdp-bioinformatics/service-feature for encoding the raw sequence data and nmdp-bioinformatics/HSA for aligning the raw sequence data. A public version of this service is available for use at gfe.b12x.org.

RESTful Calls
t GFE from sequence data - in body #
 --header "Content-type: application/json" --request POST  \
ta '{"locus":"HLA-A","sequence":"TCCCCAGACGCCGAGGATGGCCGTCATGGCGCCCCGAACCCTCCTCCTGCTACTCTCGGGGGCCCTGGCCCTGACCCAGACCTGGGCGGGTGAGTGCGGGGTCGGGAGGGAAACCGCCTCTGCGGGGAGAAGCAAGGGGCCCTCCTGGCGGGGGCGCAGGACCGGGGGAGCCGCGCCGGGACGAGGGTCGGGCAGGTCTCAGCCACTGCTCGCCCCCAGGCTCCCACTCCATGAGGTATTTCTTCACATCCGTGTCCCGGCCCGGCCGCGGGGAGCCCCGCTTCATCGCCGTGGGCTACGTGGACGACACGCAGTTCGTGCGGTTCGACAGCGACGCCGCGAGCCAGAGGATGGAGCCGCGGGCGCCGTGGATAGAGCAGGAGGGGCCGGAGTATTGGGACCAGGAGACACGGAATGTGAAGGCCCAGTCACAGACTGACCGAGTGGACCTGGGGACCCTGCGCGGCTACTACAACCAGAGCGAGGCCGGTGAGTGACCCCGGCCGGGGGCGCAGGTCAGGACCCCTCATCCCCCACGGACGGGCCAGGTCGCCCACAGTCTCCGGGTCCGAGATCCACCCCGAAGCCGCGGGACCCCGAGACCCTTGCCCCGGGAGAGGCCCAGGCGCCTTTACCCGGTTTCATTTTCAGTTTAGGCCAAAAATCCCCCCGGGTTGGTCGGGGCTGGGCGGGGCTCGGGGGACTGGGCTGACCGCGGGGTCGGGGCCAGGTTCTCACACCATCCAGATAATGTATGGCTGCGACGTGGGGTCGGACGGGCGCTTCCTCCGCGGGTACCGGCAGGACGCCTACGACGGCAAGGATTACATCGCCCTGAACGAGGACCTGCGCTCTTGGACCGCGGCGGACATGGCGGCTCAGATCACCAAGCGCAAGTGGGAGGCGGCCCATGAGGCGGAGCAGTTGAGAGCCTACCTGGATGGCACGTGCGTGGAGTGGCTCCGCAGATACCTGGAGAACGGGAAGGAGACGCTGCAGCGCACGGGTACCAGGGGCCACGGGGCGCCTCCCTGATCGCCTGTAGATCTCCCGGGCTGGCCTCCCACAAGGAGGGGAGACAATTGGGACCAACACTAGAATATCACCCTCCCTCTGGTCCTGAGGGAGAGGAATCCTCCTGGGTTCCAGATCCTGTACCAGAGAGTGACTCTGAGGTTCCGCCCTGCTCTCTGACACAATTAAGGGATAAAATCTCTGAAGGAGTGACGGGAAGACGATCCCTCGAATACTGATGAGTGGTTCCCTTTGACACCGGCAGCAGCCTTGGGCCCGTGACTTTTCCTCTCAGGCCTTGTTCTCTGCTTCACACTCAATGTGTGTGGGGGTCTGAGTCCAGCACTTCTGAGTCCCTCAGCCTCCACTCAGGTCAGGACCAGAAGTCGCTGTTCCCTTCTCAGGGAATAGAAGATTATCCCAGGTGCCTGTGTCCAGGCTGGTGTCTGGGTTCTGTGCTCTCTTCCCCATCCCGGGTGTCCTGTCCATTCTCAAGATGGCCACATGCGTGCTGGTGGAGTGTCCCATGACAGATGCAAAATGCCTGAATTTTCTGACTCTTCCCGTCAGACCCCCCCAAGACACATATGACCCACCACCCCATCTCTGACCATGAGGCCACCCTGAGGTGCTGGGCCCTGGGCTTCTACCCTGCGGAGATCACACTGACCTGGCAGCGGGATGGGGAGGACCAGACCCAGGACACGGAGCTCGTGGAGACCAGGCCTGCAGGGGATGGAACCTTCCAGAAGTGGGCGGCTGTGGTGGTGCCTTCTGGAGAGGAGCAGAGATACACCTGCCATGTGCAGCATGAGGGTCTGCCCAAGCCCCTCACCCTGAGATGGGGTAAGGAGGGAGATGGGGGTGTCATGTCTCTTAGGGAAAGCAGGAGCCTCTCTGGAGACCTTTAGCAGGGTCAGGGCCCCTCACCTTCCCCTCTTTTCCCAGAGCTGTCTTCCCAGCCCACCATCCCCATCGTGGGCATCATTGCTGGCCTGGTTCTCCTTGGAGCTGTGATCACTGGAGCTGTGGTCGCTGCCGTGATGTGGAGGAGGAAGAGCTCAGGTGGAGAAGGGGTGAAGGGTGGGGTCTGAGATTTCTTGTCTCACTGAGGGTTCCAAGCCCCAGCTAGAAATGTGCCCTGTCTCATTACTGGGAAGCACCGTCCACAATCATGGGCCTACCCAGTCTGGGCCCCGTGTGCCAGCACTTACTCTTTTGTAAAGCACCTGTTAAAATGAAGGACAGATTTATCACCTTGATTACGGCGGTGATGGGACCTGATCCCAGCAGTCACAAGTCACAGGGGAAGGTCCCTGAGGACAGACCTCAGGAGGGCTATTGGTCCAGGACCCACACCTGCTTTCTTCATGTTTCCTGATCCCGCCCTGGGTCTGCAGTCACACATTTCTGGAAACTTCTCTGGGGTCCAAGACTAGGAGGTTCCTCTAGGACCTTAAGGCCCTGGCTCCTTTCTGGTATCTCACAGGACATTTTCTTCTCACAGATAGAAAAGGAGGGAGTTACACTCAGGCTGCAAGTAAGTATGAAGGAGGCTGATGCCTGAGGTCCTTGGGATATTGTGTTTGGGAGCCCATGGGGGAGCTCACCCACCTCACAATTCCTCCTCTAGCCACATCTTCTGTGGGATCTGACCAGGTTCTGTTTTTGTTCTACCCCAGGCAGTGACAGTGCCCAGGGCTCTGATGTGTCCCTCACAGCTTGTAAAGGTGAGAGCTTGGAGGACCTAATGTGTGTTGGGTGTTGGGCGGAACAGTGGACACAGCTGTGCTATGGGGTTTCTTTGCATTGGATGTATTGAGCATGCGATGGGCTGTTTAAGGTGTGACCCCTCACTGTGATGGATATGAATTTGTTCATGAATATTTTTTTCTATAGTGTGAGACAGCTGCCTTGTGTGGGACTGAG"}' \
://gfe.b12x.org/gfe

quence from GFE #
 --header "Content-type: application/json" --request POST \
ta '{"locus":"HLA-A","gfe":"HLA-Aw1-1-7-20-10-32-7-1-1-1-6-1-5-3-5-1-0"}' \
://gfe.b12x.org/sequence

t GFE from fasta file #
 -F "verbose=1" -F "locus=HLA-A" \
file=@GFE_Submission/public/downloads/FastaTest.fasta" \
://gfe.b12x.org/fasta

t GFE from HML file #
 -F "verbose=1" \
file=@GFE_Submission/public/downloads/HmlTest.HML" \
://gfe.b12x.org/hml

t HML file with GFE from HML  #
 -F "verbose=1" -F "type=xml" \
file=@GFE_Submission/public/downloads/HmlTest.HML" \
://gfe.b12x.org/hml

t HML file with GFE from HML using nextflow #
ster than /hml but can not provide structures #
 -F "verbose=1" \
file=@GFE_Submission/public/downloads/HmlTest.HML" \
://gfe.b12x.org/flowhml
Docker

The easiest way to get the service running locally, is to pull an image containing the service from docker hub. Running the following command will pull the latest GFE service image from docker hub. The image on docker hub is built from the Dockerfile in the docker directory in the github repository. Every new commit to the nmdp-bioinformatics/service-gfe-submission repository triggers a new build of the docker image on docker hub.

er pull nmdpbioinformatics/service-gfe-submission
er run -d --name service-gfe-submission -p 8080:5050 nmdpbioinformatics/service-gfe-submission

The -d flag runs the service in “detached-mode” in the background and -p specifies what ports to expose. Make sure the ports you expose are not already in use. If the docker container is successfuly executed then typing docker ps -a will show a new container labeled service-gfe-submission running.

Click here for more information on the publically available docker image.

Perl client example
sr/bin/env perl
strict;
warnings;
GFE_Client;

s_seq   = shift @ARGV;
s_locus = shift @ARGV;

es alignment of sequence and submission of aligned
quence to the GFE service.
o_client = GFE_Client->new();
rh_gfe   = $o_client->getGfe($s_locus,$s_seq);

int out GFE
t $$rh_gfe{gfe},"\n";
R client example
!is.installed('gfeClient')){
library(devtools)
install_github('nmdp-bioinformatics/service-gfe-submission/client-R')

ary('gfeClient')

 <- 'http://gfe.b12x.org/'

t GFE from fasta file
a.file <- 'GFE_Submission/t/resources/fastatest1.fasta'
a.gfe  <- fasta2gfe(host,'HLA-A',fasta.file)

t sequence from
       <- gfe2seq(host,'HLA-A','HLA-Aw1-1-7-20-10-32-7-1-1-1-6-1-5-3-5-1-1')

t GFE from sequence
       <- seq2gfe(host,'HLA-A',seq)

turn detailed logs
ose    <- 1
       <- seq2gfe(host,'HLA-A',seq,verbose)

turn structure (ex. exon, 1 , TGCCCAAGCCCCTCACCCTGAGATGGG)
cture  <- 1
       <- seq2gfe(host,'HLA-A',seq,verbose,structure)
Tools
sta2gfe [--fasta] [--locus] [--uri] [--verbose] [--help]
        -f/--fasta      Fasta file ** STDIN **
        -u/--uri        URI of feature service
        -l/--locus      HLA-Locus
        -v/--verbose    Flag for running in verbose
        -h/--help

a2gfe --fasta t/resources/fastatest1.fasta -l HLA-A > fastatest1.gfe.csv
t/resources/fastatest1.fasta | fasta2gfe -l HLA-A > fastatest1.gfe.csv
ash
q2gfe [--seq] [--locus] [--uri] [--verbose] [--help]
        -s/--seq        Sequence  ** STDIN **
        -u/--uri        URI of feature service
        -l/--locus      HLA-Locus
        -v/--verbose    Flag for running in verbose
        -h/--help

gfe --seq GACGGCAAGGATTACATCGCCCTGAACGAGGACCTGCGCT \
GACCGCGGCGGACATGGCGGCTCAGATCACCAAGCGCAAGTACCTGCGCT -l HLA-A > seqtest1.gfe.csv
GACGGCAAGGATTACATCGCCCTGAACGAGGACCTGCGCTCTTGGACCGC \
GACATGGCGGCTCAGATCACCAAGCGCAAGTACCTGCGCTCTTGGACCGC | seq2gfe -l HLA-A > seqtest1.gfe.csv
ash
l2gfe [--input] [--hml] [--uri] [--verbose] [--help]
        -i/--input      HML file
        -u/--uri        URI of feature service
        -h/--hml        flag for returning HML
        -v/--verbose    Flag for running in verbose
        -h/--help

gfe --input t/resources/hmltest1.HML > hmltest1.gfe.csv
gfe --input t/resources/hmltest1.HML --hml > hmltest1.gfe.HML
Installing and Running Service Locally
 cpanm --installdeps .   # Install perl dependencies
 Makefile.PL             # Generate Makefile
                         # Make menefest
 test                    # Run tests
 install                 # Install
kup -E deployment  \     # Deploy
tarman --workers=10 \
050:8080 -a bin/app.pl      
Required Software
Related Links


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.