=head1 NAME Bio::CIPRES - interface to the CIPRES REST API =head1 SYNOPSIS use Bio::CIPRES; my $ua = Bio::CIPRES->new( user => $username, pass => $password, app_id => $id, timeout => 60, ); my $job = $ua->submit_job( %job_params ); while (! $job->is_finished) { sleep $job->poll_interval; $job->refresh_status; } if ($job->exit_code == 0) { print STDOUT $job->stdout; print STDERR $job->stderr; for my $file ($job->list_outputs) { $file->download( $file->name ); } } =head1 DESCRIPTION C is an interface to the CIPRES REST API for running phylogenetic analyses. Currently it provides general classes and methods for job submission and handling - determination of the correct parameters to submit is up to the user (check L for links to tool documentation). =head1 METHODS =over 4 =item B my $ua = Bio::CIPRES->new( user => $username, pass => $password, app_id => $id, timeout => 60, ); # or read configuration from file my $ua = Bio::CIPRES->new( conf => "$ENV{HOME}/.cipres" ); Create a new C object. There are three required parameters: username (C), passphrase (C), and application ID (C). These can either be passed in on the constructor or read in from a configuration file, as demonstrated above. The configuration file should contain key=value pairs, one pair per line, as in: user=foo pass=bar app_id=foo_bar_baz The passphrase must be stored in plaintext, so the usual precautions apply (e.g. the file should not be world-readable). If possible, find another way to retrieve the passphrase within your code and pass it in directly as a method argument. =item B my $job = $ua->submit_job( %params ); Submit a new job to the CIPRES service. Params are set based on the tool documentation (not covered here). Returns a L object. =item B for my $job ( $ua->list_jobs ) { # do something } Returns an array of L objects representing jobs in the user's workspace. =item B my $job = $ua->get_job_by_handle( $job_handle ); Takes a single argument (string containing the job handle/ID) and returns a L object representing the appropriate job, or undef if not found. =back =head1 CAVEATS AND BUGS Please report bugs to the author. =head1 AUTHOR Jeremy Volkening =head1 COPYRIGHT AND LICENSE Copyright 2016 Jeremy Volkening This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .