#!/usr/bin/perl -w

# usage : perl sm_mothur_formatage_4.pl
# 24/09/2013 - Wrapper dans le cadre du projet 16S (pour Maria B.)

use strict;
use File::Basename;

my $input_all_final_fasta             = $ARGV[0];
my $input_count_table                 = $ARGV[1];
my $input_all_final_taxonomy          = $ARGV[2];
my $CUTOFF_CLASS                      = $ARGV[3];
my $LABEL                             = $ARGV[4];
my $output_bilan_html                 = $ARGV[5];


#my $MOTHUR4 = '/save/galaxy/scripts/sm_mothur//4_otu_analysis_454_mothur1.2.sh';
my $MOTHUR4 = '/usr/local/bioinfo/src/galaxy-dev/galaxy-dist/tools/sm_mothur/bin/4_otu_analysis_454_mothur1.2.sh';
my $cmd = '';my $cmd1 = ''; my $cmd2='';

#mkdir OUTPUT_DIR            # comme pour les modules précédents je te laisse créer dans ton wrapper le dossier de sortie, te déplacer dedans et faire les copies/liens des fichiers d'entrée
#cd OUTPUT_DIR
#ln -s ../module2_ok/all.final.fasta .    # j'ai laissé mes chemins relatif pour que tu comprennes que le fichier all.final.fasta est une sortie du module 2
#ln -s ../module2_ok/all.final.names .
#ln -s ../module2_ok/all.final.groups .
#ln -s ../module3_ok/all.final.taxonomy .     # .... all.final.taxonomy une sortie du module 3
#sh /home/sigenae/bin/Galaxy/r454_diversity_Galaxy/4_otu_analysis_mothur1.0.sh all.final.fasta all.final.names all.final.groups all.final.taxonomy OUTPUT_DIR CUTOFF_DIST CUTOFF_CLASS LABEL


#il faut que le dossier de sortie soit créé et que les intputs y soient copier ou avec des liens.
#my $path= dirname($input_all_final_fasta);
my $path= "/galaxydata/database/files/workspace/";
my ($nb) = ($output_bilan_html=~/galaxy_dataset_(\d+)\.\S+$/);
#Repertoire de sortie cree par le script, verif des droits d'ecriture sur ce repertoire de sortie
`mkdir $path/$nb; chmod 777 $path/$nb`;
my $dirresults= $path."/".$nb;
print STDOUT "Votre repertoire de travail : $dirresults \n\n";

#convert count_table en dos to unix
my $cmdconvert ='';
$cmdconvert = "(dos2unix $input_count_table ;) >& ./dos2unix.log 2>&1";
system $cmdconvert; 

#Modification de l extension des inputs
$cmd1 = "ln -s $input_all_final_fasta $dirresults/all.final.fasta; ln -s $input_count_table $dirresults/count_table; 
ln -s $input_all_final_taxonomy $dirresults/all.final.taxonomy;";
system $cmd1;
print STDOUT "Recuperation des fichiers d entree : \n\n $cmd1 \n\n ";

#4_otu_analysis_454_mothur1.1.sh INPUT_FASTA INPUT_COUNT path_INPUT_TAX path_to_OUTDIR CUTOFF_CLASS LABEL
#/save/sigenae/PATHO-ID/ref/silva.bacteria.fasta /save/sigenae/PATHO-ID/ref/silva.bacteria.rdp.tax 50
$cmd = "(cd $dirresults; sh $MOTHUR4 $dirresults/all.final.fasta $dirresults/count_table $dirresults/all.final.taxonomy $dirresults $CUTOFF_CLASS $LABEL) >& ./mothur4.log 2>&1";
system $cmd;


#cd /work/galaxy/database/files/012/20948; 
#sh /home/sigenae/bin/Galaxy/r454_diversity_Galaxy/4_otu_analysis_mothur1.0.sh /work/galaxy/database/files/012/20948/all.final.fasta /work/galaxy/database/files/012/20948/all.final.names /work/galaxy/database/files/012/20948/all.final.groups /work/galaxy/database/files/012/20948/all.final.taxonomy /work/galaxy/database/files/012/20948 0.2 51 unique-0.03-0.05-0.1



#Info pour les biologistes
print STDOUT "Step 4 - Formatage Mothur : \n\n $cmd \n\n ";

#Suppression des fichiers inutiles
$cmd2 = "(cd $dirresults/; rm -rf  tmp mothur* *.dist *.list  *.shared *.rarefaction Krona/taxonomy;) >& ./rm_mothur4-454.log 2>&1";
system $cmd2;

#~ my $cmdrm="cd $dirresults/; rm ./mothur4.log; rm ./rm_mothur4-454.log;";
#~ system $cmdrm;

#sachant INPUT_FASTA sans .fasta : non supp 
#sachant que INPUT_COUNT doit être un lien symbolique DONC non supp



#Recuperation des fichiers par Galaxy
# bilan.html 
# all.final.an.shared
# all.final.an.groups.summary
# krona.tgz   

if (! -e "$dirresults/bilan.html"){print STDERR "bilan.html file not found. \n";}else{`cp -a $dirresults/bilan.html $output_bilan_html`;}
