Skip to content
This repository was archived by the owner on May 3, 2018. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 23 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,37 @@
sudo: required
dist: trusty
language: perl
perl:
- "5.14"
- "5.20"

env:
global:
- PERL_MM_USE_DEFAULT=1
- "PATH=$PATH:/hap1.1"
- "PATH=$PATH:$TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR/hap1.1:/opt/ngs-tools/bin:$TRAVIS_BUILD_DIR/gfe_submission/bin"
- NXF_VER='0.22.4'
- NXF_OPTS='-Xms512M -Xmx2G'

before_install:
- sudo apt-get install -qyy openjdk-7-jre-headless perl-doc wget curl build-essential git libssl-dev
- cp docker/hap1.1.tar.gz .
- export RELEASE_TESTING=1 AUTOMATED_TESTING=1 AUTHOR_TESTING=1 HARNESS_OPTIONS=c HARNESS_TIMER=1
- cp docker/hap1.1.tar.gz docker/ngs-tools_1.9.deb .
- sudo dpkg --install ngs-tools_1.9.deb
- curl -fsSL get.nextflow.io | bash
- tar -xvzf hap1.1.tar.gz
- chmod a+x hap1.1/hap1.1.jar
- wget http://www.clustal.org/omega/clustalo-1.2.3-Ubuntu-x86_64
- mv clustalo-1.2.3-Ubuntu-x86_64 hap1.1/clustalo
- chmod a+x hap1.1/clustalo
- sudo cpan YAML Plack Plack::Handler::Starman Template JSON Getopt::Long Data::Dumper LWP::UserAgent REST::Client Test::More
- sudo cpan JSON::Schema::AsType Dancer Moose Math::Round File::Spec IO::Socket::SSL Net::SSLeay Dancer::Plugin::Swagger Log::Log4perl
- cd GFE_Submission
- cpanm --quiet --notest --installdeps .
- cpanm --quiet --notest Devel::Cover::Report::Coveralls
- cd ..
- mv -i GFE_Submission gfe_submission
- cd gfe_submission

script: "./build.sh"
script:
- PERL5OPT=-MDevel::Cover=-coverage,statement,branch,condition,path,subroutine prove -lrsv t
- cover

after_success:
- cover -report coveralls
156 changes: 156 additions & 0 deletions GFE_Submission/bin/fasta2gfe
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
#!/usr/bin/env perl
=head1 NAME

gfe-submission

=head1 SYNOPSIS


=head1 AUTHOR Mike Halagan <mhalagan@nmdp.org>

Bioinformatics Scientist
3001 Broadway Stree NE
Minneapolis, MN 55413
ext. 8225

=head1 DESCRIPTION


=head1 CAVEATS


=head1 LICENSE

Copyright (c) 2015 National Marrow Donor Program (NMDP)

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

> http://www.gnu.org/licenses/lgpl.html

=head1 VERSIONS

Version Description Date


=head1 TODO


=head1 SUBROUTINES

=cut
use strict; # always
use warnings; # or else
use FindBin;
use Data::Dumper;
use FindBin;
use lib "$FindBin::Bin/../lib";
use GFE;
use GFE::Client;
use GFE::Annotate;
use vars qw($USAGE);
BEGIN{

$| = 1;

$USAGE =
qq{./gfe-submission [--fasta] [--uri] [--verbose] [--help]
-f/--fasta Fasta file
-u/--uri URI of feature service
-l/--locus HLA-Locus
-v/--verbose Flag for running in verbose
-h/--help
};

}
use Getopt::Long;
use Cwd;

our($s_subject_id) = (undef);
&GetOptions('subject|i=s' => \$s_subject_id );

my $o_gfe = GFE->new();

$o_gfe->verbose(1);
$o_gfe->return_structure(0);

my %h_seqs;
my $s_header;
my $s_seq;
while (<>) {
chomp;
if ($_ =~ />/) {
if ($s_seq) {
$h_seqs{$s_header} = $s_seq;
}
$s_header = $_;
$s_header =~ s/^>//; # remove ">"
$s_header =~ s/\s+$//; # remove trailing whitespace
$s_seq = ""; # clear out old sequence
}else {
s/\s+//g; # remove whitespace
$s_seq .= $_; # add sequence
}
}

if ($s_seq) { # handle last sequence
$h_seqs{$s_header} = $s_seq;
}

my $s_out_file = $s_subject_id.".txt";
open(my $fh,">",$s_out_file) or die "CANT OPEN FILE $! $0";
foreach my $s_typing (keys %h_seqs){
$s_typing =~ /(HLA-\D{1,3}\d{0,1})\|/;
my $s_locus = $1;
$s_locus =~ s/\|//g;
next if(!defined $s_locus || $s_locus !~ /\S/);
my $rh_gfe = $o_gfe->getGfe($s_locus,$h_seqs{$s_typing});
my $s_gfe = defined $$rh_gfe{gfe} ? $$rh_gfe{gfe} : '';
next if !defined $s_gfe || $s_gfe !~ /\S/;
my $n_seq = length($h_seqs{$s_typing});
print $fh join(",",$s_subject_id,$s_typing,$s_locus,$s_gfe,$n_seq),"\n";
}
close $fh;
































138 changes: 116 additions & 22 deletions GFE_Submission/bin/gfe_test.pl
Original file line number Diff line number Diff line change
@@ -1,46 +1,140 @@
#!/usr/bin/env perl
use strict;
use warnings;
=head1 NAME

gfe-submission

=head1 SYNOPSIS


=head1 AUTHOR Mike Halagan <mhalagan@nmdp.org>

Bioinformatics Scientist
3001 Broadway Stree NE
Minneapolis, MN 55413
ext. 8225

=head1 DESCRIPTION


=head1 CAVEATS


=head1 LICENSE

Copyright (c) 2015 National Marrow Donor Program (NMDP)

This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published
by the Free Software Foundation; either version 3 of the License, or (at
your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; with out even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.

You should have received a copy of the GNU Lesser General Public License
along with this library; if not, write to the Free Software Foundation,
Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.

> http://www.gnu.org/licenses/lgpl.html

=head1 VERSIONS

Version Description Date


=head1 TODO


=head1 SUBROUTINES

=cut
use strict; # always
use warnings; # or else
use FindBin;
use Data::Dumper;
use Getopt::Long;
use FindBin;
use lib "$FindBin::Bin/../lib";
use GFE;
use GFE::Client;
use GFE::Annotate;

# my $o_client = GFE::Client->new();

# my $s_seq = $o_client->getSequence("HLA-A","exon",1,1);
# print STDERR $s_seq,"\n";

my $o_gfe = GFE->new();

$o_gfe->verbose(1);
$o_gfe->return_structure(0);
# my $rh_gfe = $o_gfe->getGfe("HLA-A","TCCCCAGACGCCGAGGATGGCCGTCATGGCGCCCCGAACCCTCCTCCTGCTACTCTCGGGGGCCCTGGCCCTGACCCAGACCTGGGCGGGTGAGTGCGGGGTCGGGAGGGAAACCGCCTCTGCGGGGAGAAGCAAGGGGCCCTCCTGGCGGGGGCGCAGGACCGGGGGAGCCGCGCCGGGACGAGGGTCGGGCAGGTCTCAGCCACTGCTCGCCCCCAGGCTCCCACTCCATGAGGTATTTCTTCACATCCGTGTCCCGGCCCGGCCGCGGGGAGCCCCGCTTCATCGCCGTGGGCTACGTGGACGACACGCAGTTCGTGCGGTTCGACAGCGACGCCGCGAGCCAGAGGATGGAGCCGCGGGCGCCGTGGATAGAGCAGGAGGGGCCGGAGTATTGGGACCAGGAGACACGGAATGTGAAGGCCCAGTCACAGACTGACCGAGTGGACCTGGGGACCCTGCGCGGCTACTACAACCAGAGCGAGGCCGGTGAGTGACCCCGGCCGGGGGCGCAGGTCAGGACCCCTCATCCCCCACGGACGGGCCAGGTCGCCCACAGTCTCCGGGTCCGAGATCCACCCCGAAGCCGCGGGACCCCGAGACCCTTGCCCCGGGAGAGGCCCAGGCGCCTTTACCCGGTTTCATTTTCAGTTTAGGCCAAAAATCCCCCCGGGTTGGTCGGGGCTGGGCGGGGCTCGGGGGACTGGGCTGACCGCGGGGTCGGGGCCAGGTTCTCACACCATCCAGATAATGTATGGCTGCGACGTGGGGTCGGACGGGCGCTTCCTCCGCGGGTACCGGCAGGACGCCTACGACGGCAAGGATTACATCGCCCTGAACGAGGACCTGCGCTCTTGGACCGCGGCGGACATGGCGGCTCAGATCACCAAGCGCAAGTGGGAGGCGGCCCATGAGGCGGAGCAGTTGAGAGCCTACCTGGATGGCACGTGCGTGGAGTGGCTCCGCAGATACCTGGAGAACGGGAAGGAGACGCTGCAGCGCACGGGTACCAGGGGCCACGGGGCGCCTCCCTGATCGCCTGTAGATCTCCCGGGCTGGCCTCCCACAAGGAGGGGAGACAATTGGGACCAACACTAGAATATCACCCTCCCTCTGGTCCTGAGGGAGAGGAATCCTCCTGGGTTCCAGATCCTGTACCAGAGAGTGACTCTGAGGTTCCGCCCTGCTCTCTGACACAATTAAGGGATAAAATCTCTGAAGGAGTGACGGGAAGACGATCCCTCGAATACTGATGAGTGGTTCCCTTTGACACCGGCAGCAGCCTTGGGCCCGTGACTTTTCCTCTCAGGCCTTGTTCTCTGCTTCACACTCAATGTGTGTGGGGGTCTGAGTCCAGCACTTCTGAGTCCCTCAGCCTCCACTCAGGTCAGGACCAGAAGTCGCTGTTCCCTTCTCAGGGAATAGAAGATTATCCCAGGTGCCTGTGTCCAGGCTGGTGTCTGGGTTCTGTGCTCTCTTCCCCATCCCGGGTGTCCTGTCCATTCTCAAGATGGCCACATGCGTGCTGGTGGAGTGTCCCATGACAGATGCAAAATGCCTGAATTTTCTGACTCTTCCCGTCAGACCCCCCCAAGACACATATGACCCACCACCCCATCTCTGACCATGAGGCCACCCTGAGGTGCTGGGCCCTGGGCTTCTACCCTGCGGAGATCACACTGACCTGGCAGCGGGATGGGGAGGACCAGACCCAGGACACGGAGCTCGTGGAGACCAGGCCTGCAGGGGATGGAACCTTCCAGAAGTGGGCGGCTGTGGTGGTGCCTTCTGGAGAGGAGCAGAGATACACCTGCCATGTGCAGCATGAGGGTCTGCCCAAGCCCCTCACCCTGAGATGGGGTAAGGAGGGAGATGGGGGTGTCATGTCTCTTAGGGAAAGCAGGAGCCTCTCTGGAGACCTTTAGCAGGGTCAGGGCCCCTCACCTTCCCCTCTTTTCCCAGAGCTGTCTTCCCAGCCCACCATCCCCATCGTGGGCATCATTGCTGGCCTGGTTCTCCTTGGAGCTGTGATCACTGGAGCTGTGGTCGCTGCCGTGATGTGGAGGAGGAAGAGCTCAGGTGGAGAAGGGGTGAAGGGTGGGGTCTGAGATTTCTTGTCTCACTGAGGGTTCCAAGCCCCAGCTAGAAATGTGCCCTGTCTCATTACTGGGAAGCACCGTCCACAATCATGGGCCTACCCAGTCTGGGCCCCGTGTGCCAGCACTTACTCTTTTGTAAAGCACCTGTTAAAATGAAGGACAGATTTATCACCTTGATTACGGCGGTGATGGGACCTGATCCCAGCAGTCACAAGTCACAGGGGAAGGTCCCTGAGGACAGACCTCAGGAGGGCTATTGGTCCAGGACCCACACCTGCTTTCTTCATGTTTCCTGATCCCGCCCTGGGTCTGCAGTCACACATTTCTGGAAACTTCTCTGGGGTCCAAGACTAGGAGGTTCCTCTAGGACCTTAAGGCCCTGGCTCCTTTCTGGTATCTCACAGGACATTTTCTTCTCACAGATAGAAAAGGAGGGAGTTACACTCAGGCTGCAAGTAAGTATGAAGGAGGCTGATGCCTGAGGTCCTTGGGATATTGTGTTTGGGAGCCCATGGGGGAGCTCACCCACCTCACAATTCCTCCTCTAGCCACATCTTCTGTGGGATCTGACCAGGTTCTGTTTTTGTTCTACCCCAGGCAGTGACAGTGCCCAGGGCTCTGATGTGTCCCTCACAGCTTGTAAAGGTGAGAGCTTGGAGGACCTAATGTGTGTTGGGTGTTGGGCGGAACAGTGGACACAGCTGTGCTATGGGGTTTCTTTGCATTGGATGTATTGAGCATGCGATGGGCTGTTTAAGGTGTGACCCCTCACTGTGATGGATATGAATTTGTTCATGAATATTTTTTTCTATAGTGTGAGACAGCTGCCTTGTGTGGGACTGAG");

# print Dumper($rh_gfe),"\n";
my $s_path = `echo \$PATH`;chomp($s_path);
foreach my $s_p (split(/:/,$s_path)){
print STDERR "PATH: ".$s_p,"\n";
}

my $s_hml = "$FindBin::Bin/../t/resources/hmltest1.HML";
my $rh_gfe = $o_gfe->getGfeHmlNextflow($s_hml);
print STDERR "gfe_test.pl output:",Dumper($rh_gfe),"\n";
# my %h_seqs;
# my $s_header;
# my $s_seq;
# while (<>) {
# chomp;
# if ($_ =~ />/) {
# if ($s_seq) {
# $h_seqs{$s_header} = $s_seq;
# }
# $s_header = $_;
# $s_header =~ s/^>//; # remove ">"
# $s_header =~ s/\s+$//; # remove trailing whitespace
# $s_seq = ""; # clear out old sequence
# }else {
# s/\s+//g; # remove whitespace
# $s_seq .= $_; # add sequence
# }
# }

# if ($s_seq) { # handle last sequence
# $h_seqs{$s_header} = $s_seq;
# }

# foreach my $s_typing (keys %h_seqs){
# $s_typing =~ /(HLA-\D+\d{0,1})\*/;
# my $s_locus = $1;
# next if(!defined $s_locus || $s_locus !~ /\S/);
# my $rh_gfe = $o_gfe->getGfe($s_locus,$h_seqs{$s_typing});
# my $s_gfe = defined $$rh_gfe{gfe} ? $$rh_gfe{gfe} : '';
# my $n_seq = length($h_seqs{$s_typing});
# print join(",",$s_locus,$s_typing,$n_seq,$s_gfe),"\n";
# }
























my $s_fasta_file = "t/resources/HmlTest.HML";
#my $s_fasta_file = "t/resources/FastaTest.fasta";

my $rh_gfe2 = $o_gfe->getGfeHml($s_fasta_file);
#my $rh_gfe2 = $o_gfe->getGfeFasta("HLA-A",$s_fasta_file);
print Dumper($rh_gfe2),"\n";


# my $o_annotate = GFE::Annotate->new();
# $o_annotate->setFasta("HLA-A",$s_fasta_file);


# my $s_file = (split(/\//,$s_fasta_file))[ scalar( @{[ $s_fasta_file=~/\//gi ]} ) ];
# my $s_pref = (split(/\//,$s_file))[0];
# $o_annotate->fasta($s_fasta_file);
# $o_annotate->fileId($s_pref);

# print Dumper($o_annotate),"\n";



Loading