#!/usr/bin/perl -w

# usage : perl sm_mothur_analyse_3.pl 
# 13/08/2013 - Wrapper dans le cadre du projet 16S (pour Maria B.)
# Copyright (C) 2013 INRA
# 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 <http://www.gnu.org/licenses/>.
#


use strict;
use File::Basename;

my $input_fasta                         = $ARGV[0];
my $input_count_table                   = $ARGV[1];
my $DB_REF                              = $ARGV[2];
my $DB_TAX                              = $ARGV[3];
my $CUTOFF_BOOTSTRAP                    = $ARGV[4];
my $output_html                         = $ARGV[5];
my $output_all_final_taxonomy           = $ARGV[6];

my $MOTHUR3 = '/home/sigenae/bin/Galaxy/3_classify_mothur1.0.sh';
my $cmd = '';
my $cmd1 = '';

#il faut que le dossier de sortie soit créé et que les intputs y soient copier ou avec des liens.
my $path= dirname($input_fasta);
my ($nb) = ($output_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";

#Modification de l extension des inputs
$cmd1 = "ln -s $input_fasta $dirresults/final.aln.fasta; ln -s $input_count_table $dirresults/final.aln.count_table; 
ln -s $DB_REF $dirresults/bd_ref.fasta; ln -s $DB_TAX $dirresults/bd_tax.rdp.tax";
system $cmd1;
print STDOUT "Recuperation des fichiers d entree : \n\n $cmd1 \n\n ";

#3_classify_mothur_1.0.sh INPUT_FASTA INPUT_COUNT path_to_OUTDIR path_DB_REF path_DB_TAX CUTOFF_BOOTSTRAP
#/save/sigenae/PATHO-ID/ref/silva.bacteria.fasta /save/sigenae/PATHO-ID/ref/silva.bacteria.rdp.tax 50
$cmd = "(cd $dirresults; $MOTHUR3 $dirresults/final.aln.fasta $dirresults/final.aln.count_table $dirresults $dirresults/bd_ref.fasta $dirresults/bd_tax.rdp.tax $CUTOFF_BOOTSTRAP) >& ./mothur3.log 2>&1";
system $cmd;

#Info pour les biologistes
print STDOUT "Analysis Mothur : \n\n $cmd \n\n ";


#Recuperation des fichiers par Galaxy
# bilan.html
# individuals_taxonomy.tgz ==> les taxonomies détaillées par échantillon
# all.final.taxonomy all.final.bts50.taxonomy ==> les tableaux de comptage complet avec ou sans l'utilisation de la valeur seuil de bootstrap
# all.final.krona.html all.final.bts50.krona.html ==> les fichiers krona, en HTML 5 ce serait top qu'ils s'affichent dans Galaxy sinon je mets eu lien dans le bilan.html et ils ouvrent le fichier dans un browser classique
# all.final.tax.summary ==> les taxonomies détaillées par lecture
if (! -e "$dirresults/bilan.html"){print STDERR "bilan.html file not found. \n";}else{`cp -a $dirresults/bilan.html $output_html`;}
my $tax = "$dirresults/final.aln.taxonomy";
if (! -e $tax ){print STDERR "taxonomy file not found. \n";}else{`cp -a $tax $output_all_final_taxonomy`;}
