diff phylogenies/raxml.pl @ 0:5b9a38ec4a39 draft default tip

First commit of old repositories
author osiris_phylogenetics <ucsb_phylogenetics@lifesci.ucsb.edu>
date Tue, 11 Mar 2014 12:19:13 -0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phylogenies/raxml.pl	Tue Mar 11 12:19:13 2014 -0700
@@ -0,0 +1,98 @@
+#! /usr/bin/perl -w
+
+use strict;
+use warnings;
+#raxml.pl Galaxy wrapper calls raxml from raxml.xml
+#xml file contains:
+#raxml.pl [GTR|CAT] [PROT|DNA] [protmodel] [morphmodel] [phylip file] [constraint] [partition] [best_tree?] [invar?] [#bootreps] [outgroup]
+
+##For debugging command line pass, uncomment next
+#for (my $i=0; $i < @ARGV; $i++){
+#	print "Parameter #$i ".$ARGV[$i]."\n\n";
+#}
+#exit;
+
+my $rate_het=shift(@ARGV);		#0 rate heterogeneity? value will = GAMMA or CAT
+my $datatype = shift(@ARGV);		#1 datatype? True=Protein False=DNA
+my $protmodel = shift(@ARGV);		#2 which protein model
+my $morphmodel = shift(@ARGV);		#3 which morphology multistate model
+my $data_file= shift(@ARGV);		#4 input a phylip file
+my $part_file = shift(@ARGV);		#5 optional partition file
+my $constraint_tree = shift(@ARGV);	#6 optional constraint tree
+my $find_best = shift(@ARGV);		#7 if ML find ML tree as well as bootstrapping
+my $invar = shift(@ARGV);		#8 if INVAR include invariant site parameter in model
+my $nboots = shift(@ARGV);		#9 Number of bootstrap reps
+my $seed = shift(@ARGV);		#10 Number of bootstrap reps
+my $long = shift(@ARGV);		#11 decide whether to do a long or bootstrap call or not, with multiple threads
+my $outgroup = shift(@ARGV);		#12 Specify the outgroup
+my $model;
+
+
+
+# From shell pipeline
+#        raxmlHPC-PTHREADS7.2.6 -T $processors -f a -s $data_name.data  -q $data_name.part -m $model -n $data_name -N 100 -x 1234567890 -o Limulus_polyphemus
+#        cp RAxML_bestTree.$data_name $data_nameBootBest.tre
+#        cp RAxML_bipartitions.$data_name $data_nameBoot.tre
+
+#ADD OPTIONS TO BUILD FULL RAXML COMMANDLINE ARGUMENT
+
+my $build_command;
+#First CALL RAXML THROUGH PATH with 8 threads
+if($long eq 'Long'){ #Currently both raxml and raxml_long call with 'long'
+	$build_command = "raxmlHPC-PTHREADS-SSE3 -T 8";
+}else{
+	$build_command = "mpirun -np 10 raxmlHPC-MPI-SSE3 ";
+}
+#Check if find best tree is desired
+	if($find_best eq "ML"){
+		$build_command = $build_command." -f a ";
+	}
+#Next add call to input phylip file
+	$build_command = $build_command." -s ".$data_file;
+#Add call to partition file name
+	unless($part_file eq 'None'){
+		$build_command = $build_command." -q ".$part_file;
+	}
+#Build substitution model
+	if($datatype eq "PROT"){
+		$model = "PROT";
+	}elsif($datatype eq "DNA"){
+		$model = "GTR";
+	}
+	if($rate_het eq "GTR"){
+		$model = $model."GAMMA";
+	}elsif($rate_het eq "CAT"){
+		$model = $model."CAT";
+	}
+	if($invar eq "INVAR"){
+		$model = $model."I";
+	}
+	if($datatype eq "PROT"){
+		$model = $model.$protmodel;
+	}
+	$build_command = $build_command." -m ".$model;
+#Add multistate morphology model
+	$build_command = $build_command." -K ".$morphmodel;
+#check constraint tree
+	unless($constraint_tree eq 'None'){
+		$build_command = $build_command." -g ".$constraint_tree;
+	}
+#N Bootstraps
+	$build_command = $build_command." -N ".$nboots;
+#Bootstrap seed
+	$build_command = $build_command." -x ".$seed;
+#Parsimony seed
+	$build_command = $build_command." -p "."1234567";
+
+
+#name output files galaxy
+	$build_command = $build_command." -n galaxy";
+#Outgroup
+	if(defined $outgroup){
+		$build_command = $build_command." -o ".$outgroup;
+	}
+
+print "Galaxy COMMAND BUILD WAS: $build_command\n";
+
+#Uncomment to actually call raxml
+system $build_command;