Delete unneeded directory
[jabaws.git] / website / archive / binaries / mac / src / tcoffee / t_coffee_source / t_coffee.c
diff --git a/website/archive/binaries/mac/src/tcoffee/t_coffee_source/t_coffee.c b/website/archive/binaries/mac/src/tcoffee/t_coffee_source/t_coffee.c
deleted file mode 100644 (file)
index 64a4177..0000000
+++ /dev/null
@@ -1,5531 +0,0 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <math.h>
-#include <stdarg.h>
-#include <signal.h>
-#include <string.h>
-
-#include "io_lib_header.h"
-#include "util_lib_header.h"
-#include "dp_lib_header.h"
-#include "define_header.h"
-#include "t_coffee.h"
-static void test();
-static char * get_seq_type_from_cl (int argc, char **argv);
-static char *get_defaults(char *buf, char *type);
-static char *get_evaluate_defaults(char *buf, char *type);
-static char *get_genome_defaults(char *buf, char *type);
-static char *get_dali_defaults(char *buf, char *type);
-static char *get_mcoffee_defaults(char *buf, char *type);
-static char *get_fmcoffee_defaults(char *buf, char *type);
-static char *get_t_coffee_defaults(char *buf, char *type);
-
-static char *get_dmcoffee_defaults(char *buf, char *type);
-static char *get_rcoffee_consan_defaults(char *buf, char *type);
-static char *get_rmcoffee_defaults(char *buf, char *type);//Original R-Coffee Paper
-static char *get_rcoffee_defaults(char *buf, char *type);//Original R-Coffee Paper
-static char *get_rmcoffee_defaults_old(char *buf, char *type);//Original R-Coffee Paper
-static char *get_rcoffee_defaults_old(char *buf, char *type);//Original R-Coffee Paper
-static char *get_best4RNA_defaults(char *buf, char *type);
-
-static char *get_very_fast_defaults(char *buf, char *type);
-static char *get_precomputed_defaults(char *buf, char *type);
-static char *get_3dcoffee_defaults(char *buf, char *type);
-static char *get_expresso_defaults(char *buf, char *type);
-
-static char *get_accurate_defaults(char *buf, char *type);
-static char *get_accurate4PROTEIN_defaults(char *buf, char *type);
-static char *get_accurate4DNA_defaults(char *buf, char *type);
-static char *get_accurate4RNA_defaults(char *buf, char *type);
-
-static char *get_procoffee_defaults(char *buf, char *type);
-static char *get_blastr_defaults(char *buf, char *type);
-static char *get_psicoffee_defaults(char *buf, char *type);
-static char *get_dna_defaults(char *buf, char *type);
-static char *get_cdna_defaults(char *buf, char *type);
-static char *get_repeat_defaults(char *buf, char *type);
-static char *get_low_memory_defaults( char *buf, char *type);
-
-static char *get_genepredx_defaults(char *buf, char *type);
-static char *get_genepredpx_defaults(char *buf, char *type);
-
-static int set_methods_limits (char **method_limits,int n_methods_limit,char **list_file, int n_list, int *maxnseq, int *maxlen);
-static FILE *t_coffee_tip (FILE *fp,char *mode);
-
-static int run_other_pg(int argc, char *argv[]);
-
-static Sequence* prepare_master (char *seq,Sequence *S,Constraint_list *CL, char *dmode);
-
-#define is_a_seq_file(file) (!is_matrix(file) && !is_matrix(file+1) && !is_method (file) && !is_method (file+1) &&(check_file_exists(file) || check_file_exists(file+1)))
-static int NO_METHODS_IN_CL;
-int batch_main ( int argc, char **argv);
-int main (int argc, char *argv[])
-{
-  int r, a;
-
-  if (argc>=2 && strcmp (argv[1], "-batch")==0)
-    {
-      char **list;
-      list=file2lines (argv[2]);
-      for (a=1; a<atoi (list[0]); a++)
-       {
-         char **com;
-         com=string2list (list[a]);
-         r=batch_main (atoi (com[0])-1, com+1);
-         free_char (com, -1);
-       }
-    }
-  else
-    {
-      r=batch_main (argc, argv);
-    }
-  myexit (r);
-}
-int batch_main ( int argc, char **argv)
-       {
-
-       int a, b, c, t;
-       char *f;
-
-       Sequence *S;
-       char **new_order;
-       char **initial_order;
-
-       Fname *F=NULL;
-       Constraint_list *CL;
-       Alignment  *A=NULL, *EA=NULL;
-       Alignment  **aln_list;
-
-       FILE *OUT;
-
-
-       NT_node **T=NULL;
-       int tot_node;
-       char *pc;
-/*Parameters*/
-
-       int check_configuration;
-       int update;
-       int garbage;
-       int quiet;
-       char *parameters;
-       char *t_coffee_defaults;
-       int t_coffee_defaults_flag;
-
-       FILE *le=NULL;
-       char *se_name;
-       char *run_name;
-
-       char *mem_mode;
-
-       int do_extend;
-       char *extend_mode;
-       int max_n_pair;
-       int  nseq_for_quadruplet;
-       char **seq_name_for_quadruplet;
-
-       int do_compact;
-       int **do_list;
-       int n_do;
-
-       char *compact_mode;
-       int do_clean;
-       char *clean_mode;
-       int do_self;
-       int do_normalise;
-
-
-
-       int n_list;
-       char **list_file;
-       
-       char **setenv_list;
-       int n_setenv;
-
-       
-       char **template_file_list;
-       int n_template_file;
-
-       char **template_mode_list;
-       int n_template_mode;
-
-
-
-       int remove_template_file;
-
-       char **profile_template_file_list;
-       int n_profile_template_file;
-
-       int n_pdb;
-       char **pdb_list;
-       int pdb_start, pdb_end;
-       char *pdb_name;
-
-       char *out_lib;
-       char *out_lib_mode;
-       int shrink_lib;
-       int relax_lib;
-       int filter_lib;
-       int processed_lib;
-
-       int lib_only;
-       char *outseqweight;
-
-
-
-       char *seq_source;
-
-       int cosmetic_penalty,gop,f_gop, gep,f_gep, nomatch;
-
-       char *tree_file;
-       char *ph_tree_file;
-
-       char *use_tree;
-       char *tree_mode;
-       char *distance_matrix_mode;
-       char *distance_matrix_sim_mode;
-
-       int quicktree;
-       char *out_aln;
-       char **tot_out_aln;
-       int maximise;
-       char **out_aln_format;
-       int  n_out_aln_format;
-       char *infile;
-       char *matrix;
-       char *dp_mode;
-       char *profile_mode;
-       char *profile_comparison;
-
-
-       int tg_mode;
-       int   ktup;
-       int   fasta_step;
-       int   diag_threshold;
-       int   diag_mode;
-       char *sim_matrix;
-
-       char *type;
-       int check_type;
-       int type_only;
-       char *transform;
-       int   extend_seq;
-       char *outorder;
-       char  *inorder;
-       char *output_res_num;
-       char *residue_case;
-       int extra_cpu;
-
-
-       char *weight;
-       int sample_dp=0;
-       
-       char *seq_weight;
-       int do_align;
-       char *evaluate_mode;
-       char *method_evaluate_mode;
-       int get_type;
-       /*Post_processing*/
-       int clean_aln;
-       int clean_threshold;
-       int clean_iteration;
-       char *clean_evaluate_mode;
-       /*Profile Alignment*/
-
-       int n_seq_list;
-       char **seq_list;
-
-       char **method_list;
-       int n_method_list;
-
-
-       char **method_limits;
-       int n_method_limits;
-
-       char **aln_file_list;
-       int n_aln_file_list;
-
-       char **lib_file_list;
-       int n_lib_file_list;
-
-       char **profile_list;
-       int n_profile_list;
-
-       char *profile1;
-       char *profile2;
-
-       /*Domain Parameters*/
-       int do_domain;
-       int domain_start;
-       int domain_len;
-       int domain_scale;
-       int domain_interactive;
-       /* extended matrix analysis*/
-       int do_extended_matrix;
-       /*Action Parameters*/
-       int do_evaluate;
-       int do_genepred;
-       int do_convert;
-       int do_version;
-       /*Genepred_score*/
-       char *genepred_score;
-
-       int maxnseq;
-       int maxlen;
-       /*Thread parameters*/
-       int prot_min_sim;
-       int prot_max_sim;
-       int prot_min_cov;
-       int pdb_min_sim;
-       int pdb_max_sim;
-       int pdb_min_cov;
-       char *pdb_type;
-
-
-       char *prot_blast_server;
-       char *pdb_blast_server;
-
-
-       char *pdb_db;
-       char *prot_db;
-       NT_node *SNL;
-
-       /*
-       char *dna_db;
-       char *dna_blast_server;
-       int dna_min_sim;
-       int dna_max_sim;
-       int dna_min_cov;
-       */
-
-
-       /*Method log*/
-       char * method_log;
-
-       char **struc_to_use;
-       int n_struc_to_use;
-
-       /*Cache*/
-       char * cache;
-
-       /*align_pdb*/
-       char *align_pdb_param_file;
-       char *align_pdb_hasch_mode;
-
-       /*msa_mode*/
-       char *use_seqan;
-       char *msa_mode;
-       char *master_mode;
-       Sequence *MASTER_SEQ=NULL;
-       Sequence *TEMP_SEQ=NULL;
-       
-       int blast_maxnseq;
-       
-       int lalign_n_top;
-       int iterate;
-       /*split*/
-       int split;
-       int split_nseq_thres;
-       int split_score_thres;
-       char split_name[1000];
-       char split_format[1000];
-       Alignment *SPLIT_ALN;
-
-       int check_pdb_status;
-       /*trim*/
-       int trim;
-       Sequence *trim_subS=NULL;
-       Sequence *trim_S=NULL;
-       Sequence *SEQ_TO_KEEP=NULL;
-       char *trimfile;
-       char trim_format[1000];
-       int clean_seq_name;
-       int n_seq_to_keep;
-       char **seq_to_keep;
-       char **special_mode_list;
-       int n_special_mode;
-       char **special_mode_list1;
-       int n_special_mode1;
-       char **special_mode_list2;
-       int n_special_mode2;
-       /*dpa*/
-       int dpa;
-       char *dpa_master_aln;
-       int dpa_min_score1;
-       int dpa_min_score2;
-       int dpa_maxnseq;
-       int dpa_keep_tmpfile;
-       int dpa_debug;
-       /*error report*/
-       char *full_log;
-
-       /*Multithread*/
-       char *multi_core;
-       int   n_core;
-
-       char *lib_list;
-       char *prune_lib_mode;
-
-       int no_error_report;
-       int no_warning=0;
-       char *tip;
-       int run_local_script;
-       char *plugins;
-       char *email;
-       char *proxy;
-
-       char *rna_lib;
-       /*over_aln*/
-       char  **overaln_param;
-       char    n_overaln_param;
-       char  * exon_boundaries;
-       char  * overaln_mode;
-       char  *overaln_model;
-       int    overaln_P1;
-       int    overaln_P2;
-       int    overaln_P3;
-       int    overaln_P4;
-
-       int     overaln_threshold;
-       int     overaln_target;
-       int     clean_overaln;
-       
-       char *dump;
-       
-       argv=standard_initialisation (argv, &argc);
-       set_string_variable ("t_coffee", argv[0]);
-       
-/*Running other programs via T-Coffee*/
-       if (argc>=3 && strm (argv[1], "-other_pg"))
-         {
-           //standard_initialisation (NULL,NULL);
-           return run_other_pg (argc-2, argv+2);
-         }
-
-/*PARAMETER PROTOTYPE:    READ PARAMETER FILE     */
-                get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-no_error_report"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Limit the maximum memory usage (in Megabytes). 0: no limit" ,\
-                           /*Parameter*/ &no_error_report          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                                         );
-
-/*PARAMETER PROTOTYPE:    READ PARAMETER FILE     */
-              declare_name (parameters);
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-parameters"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "R_F"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "get bottom parameters" ,\
-                           /*Parameter*/ &parameters          ,\
-                           /*Def 1*/     "NULL"             ,\
-                           /*Def 2*/     "stdin"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-
-              special_mode_list1=declare_char (100, STRING);
-
-              n_special_mode1=get_cl_param(                    \
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-mode"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  100                ,\
-                           /*DOC*/       "specifies a special mode: genome, quickaln, dali, 3dcoffee" ,\
-                           /*Parameter*/ special_mode_list1          ,\
-                           /*Def 1*/     "unspecified"             ,\
-                           /*Def 2*/     "HARD_CODED"       ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-
-              special_mode_list2=declare_char (100, STRING);
-              n_special_mode2=get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-special_mode"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  100                ,\
-                           /*DOC*/       "[DEPRECATED ** -special_mode is deprected use -mode instead]" ,\
-                           /*Parameter*/ special_mode_list2          ,\
-                           /*Def 1*/     "unspecified"             ,\
-                           /*Def 2*/     "HARD_CODED"       ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-              special_mode_list=declare_char (n_special_mode1+n_special_mode2, STRING);
-              n_special_mode=0;
-              for (a=0; a<n_special_mode1; a++)
-                if (!strm (special_mode_list1[a], "unspecified"))sprintf ( special_mode_list[n_special_mode++], "%s", special_mode_list1[a]);
-              for (a=0; a<n_special_mode2; a++)
-                if (!strm (special_mode_list2[a], "unspecified"))sprintf ( special_mode_list[n_special_mode++], "%s", special_mode_list2[a]);
-              free_char (special_mode_list1, -1);
-              free_char (special_mode_list2, -1);
-
-              declare_name (t_coffee_defaults);
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-t_coffee_defaults"        ,\
-                           /*Flag*/      &t_coffee_defaults_flag     ,\
-                           /*TYPE*/      "R_F"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "get top parameters" ,\
-                           /*Parameter*/ &t_coffee_defaults          ,\
-                           /*Def 1*/     "NULL"             ,\
-                           /*Def 2*/     "NULL"       ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-              /*PARAMETER PROTOTYPE:    -type_only: must stay here: needed by special_mode    */
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-type_only"        ,\
-                           /*Flag*/      &type_only       ,\
-                           /*TYPE*/      "FL"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "exit after checking the type and returning it to the stdout",\
-                           /*Parameter*/ &type_only          ,\
-                           /*Def 1*/    "0"              ,\
-                           /*Def 2*/    "1"              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-               
-              /*PARAMETER PROTOTYPE:    CHECK_TYPE     */
-              get_cl_param(                                    \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,       \
-                           /*output*/    &le           ,       \
-                           /*Name*/      "-check_type"  ,      \
-                           /*Flag*/      &check_type    ,      \
-                           /*TYPE*/      "FL"          ,       \
-                           /*OPTIONAL?*/ OPTIONAL      ,       \
-                           /*MAX Nval*/  0             ,               \
-                           /*DOC*/       "Make sure that -type and the real type of the sequences agree"          , \
-                           /*Parameter*/ &check_type    ,              \
-                           /*Def 1*/    "0"            ,               \
-                           /*Def 2*/    "1"            ,               \
-                           /*Min_value*/ "any"         ,               \
-                           /*Max Value*/ "any"                         \
-                                         );
-              /*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (type);
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,      \
-                           /*argv*/      argv           ,      \
-                           /*output*/    &le            ,      \
-                           /*Name*/      "-type"        ,      \
-                           /*Flag*/      &garbage       ,      \
-                           /*TYPE*/      "S"            ,      \
-                           /*OPTIONAL?*/ OPTIONAL       ,      \
-                           /*MAX Nval*/  1              ,              \
-                           /*DOC*/       "PROTEIN, DNA or RNA. Automatically set, but can be forced with this flag"           , \
-                           /*Parameter*/ &type          ,              \
-                           /*Def 1*/    ""              ,              \
-                           /*Def 2*/    ""              ,              \
-                           /*Min_value*/ "any"          ,              \
-                           /*Max Value*/ "any"                         \
-                                         );
-       
-
-/* extra>prompt>special>parameters>defaults*/
- argv=break_list ( argv, &argc, "=;, \n");
- argv=merge_list ( argv, &argc);
- if (argc>1 && argv[1][0]!='-')argv=push_string ("-seq ", argv, &argc, 1);
- if ( name_is_in_list ("-method",argv, argc,100)==-1)
-   {
-     NO_METHODS_IN_CL=1;
-   }
-if (t_coffee_defaults_flag)
-  {
-    char *pname=NULL;
-
-    pname=getenv ( "TCOFFEE_DEFAULTS");
-
-    if (check_file_exists ( t_coffee_defaults))pname=t_coffee_defaults;
-    else if ( getenv ( "TCOFFEE_DEFAULTS"))
-      {
-       pname=getenv ( "TCOFFEE_DEFAULTS");
-       if (check_file_exists(pname));
-       else pname=NULL;
-      }
-    else
-      {
-       declare_name(pname);sprintf (pname, "%s/.t_coffee_defaults",getenv ( "HOME") );
-       if (!check_file_exists (pname)){vfree(pname);pname=NULL;}
-      }
-
-    if (pname)
-      {
-       argv=push_string (file2string(pname), argv, &argc, 1);
-       t_coffee_defaults=pname;
-      }
-    else
-      {
-       t_coffee_defaults=NULL;
-      }
-  }
- if ( parameters && parameters[0])argv=push_string (file2string (parameters), argv, &argc, 1);
-
-
- if (n_special_mode && !type_only)
-   {
-     char *special_mode;
-     char *lseq_type;
-     declare_name(lseq_type);
-     if (type && !strm (type, ""))
-       sprintf (lseq_type,"%s",type);
-     else
-       sprintf (lseq_type,"%s",get_seq_type_from_cl (argc, argv));
-     
-     for ( a=0; a< n_special_mode; a++)
-       {
-        char *new_arg=NULL;
-
-        special_mode=special_mode_list[a];
-
-        store_mode (special_mode);
-
-
-        if (special_mode && !special_mode[0]);
-        else if ( strm (special_mode, "genepredx"))new_arg=get_genepredx_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "genepredpx"))new_arg=get_genepredpx_defaults(NULL,lseq_type);
-
-        else if ( strm (special_mode, "regular") || strm (special_mode, "regular_fast")|| strm (special_mode, "default"))new_arg=get_defaults (NULL,lseq_type);
-        else if ( strm (special_mode, "genome"))new_arg=get_genome_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "quickaln"))new_arg=get_very_fast_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "dali"))new_arg=get_dali_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "evaluate"))new_arg=get_evaluate_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "precomputed"))new_arg=get_precomputed_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "3dcoffee"))new_arg=get_3dcoffee_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "expresso"))new_arg=get_expresso_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "repeats"))new_arg=get_repeat_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "psicoffee"))new_arg=get_psicoffee_defaults(NULL,lseq_type);
-         else if ( strm (special_mode, "procoffee"))new_arg=get_procoffee_defaults(NULL,lseq_type);
-         else if ( strm (special_mode, "blastr"))new_arg=get_blastr_defaults(NULL,lseq_type);
-
-        else if ( strm (special_mode, "accurate") || strm (special_mode, "accurate_slow") || strm (special_mode, "psicoffee_expresso"))new_arg=get_accurate_defaults(NULL, lseq_type);
-        else if ( strm (special_mode, "accurate4DNA"))new_arg=get_accurate4DNA_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "accurate4RNA"))new_arg=get_accurate4RNA_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "best4RNA"))new_arg=get_best4RNA_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "accurate4PROTEIN"))new_arg=get_accurate4PROTEIN_defaults(NULL,lseq_type);
-
-        else if ( strm (special_mode, "low_memory") || strm (special_mode, "memory"))new_arg=get_low_memory_defaults(NULL,lseq_type);
-
-
-        else if ( strm (special_mode, "dna"))new_arg=get_dna_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "cdna"))new_arg=get_dna_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "protein"))new_arg=get_low_memory_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "mcoffee"))new_arg=get_mcoffee_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "dmcoffee"))new_arg=get_dmcoffee_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "fmcoffee"))new_arg=get_fmcoffee_defaults(NULL,lseq_type);
-
-        else if ( strm (special_mode, "rcoffee_consan"))new_arg=get_rcoffee_consan_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "rmcoffee") ||strm (special_mode, "mrcoffee") )new_arg=get_rmcoffee_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "rcoffee"))new_arg=get_rcoffee_defaults(NULL,lseq_type);
-
-        else if ( strm (special_mode, "rcoffee_slow_accurate"))new_arg=get_rcoffee_consan_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "rcoffee_fast_approximate"))new_arg=get_rmcoffee_defaults(NULL,lseq_type);
-        else if ( strm (special_mode, "t_coffee"))new_arg=get_t_coffee_defaults(NULL,lseq_type);
-
-
-        else if ( strm (special_mode, "unspecified"));
-        else
-          {
-            fprintf ( stderr, "\nERROR: special_mode %s is unknown [FATAL:%s]\n",special_mode, PROGRAM);
-            myexit (EXIT_FAILURE);
-          }
-
-        if (new_arg)argv=push_string (new_arg, argv, &argc, 1);
-       }
-   }
-
-if ( getenv ("TCOFFEE_EXTRA_PARAM"))argv=push_string (getenv ("TCOFFEE_EXTRA_PARAM"), argv, &argc, argc);
-
-
-argv=break_list ( argv, &argc, "=;, \n");
-argv=merge_list ( argv, &argc);
-/*check_cl4t_coffee ( argc, argv); */
-
-
-/*PARAMETER PROTOTYPE:    VERSION      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-version"        ,\
-                           /*Flag*/      &do_version        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "forces the program to output the version number and exit" ,\
-                           /*Parameter*/ &do_version          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-              
-
-
-/*PARAMETER PROTOTYPE:    DO EVALUATE      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-score"        ,\
-                           /*Flag*/      &do_evaluate        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "DEPRECATED: use -special_mode evaluate instead " ,\
-                           /*Parameter*/ &do_evaluate          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-if ( !do_evaluate)
-  {
-/*PARAMETER PROTOTYPE:    DO EVALUATE      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-evaluate"        ,\
-                           /*Flag*/      &do_evaluate        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Use -special_mode evaluate for a default behavior " ,\
-                           /*Parameter*/ &do_evaluate          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-  }
-/*PARAMETER PROTOTYPE:    DO EVALUATE      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-genepred"        ,\
-                           /*Flag*/      &do_genepred        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Use -special_mode genepred for a default behavior " ,\
-                           /*Parameter*/ &do_genepred          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-/*PARAMETER PROTOTYPE:    DO FORMAT      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-convert"        ,\
-                           /*Flag*/      &do_convert        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "forces the program to make a conversion" ,\
-                           /*Parameter*/ &do_convert          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-
-
-
-/*PARAMETER PROTOTYPE*/
-
-     declare_name (se_name);
-     get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-quiet"      ,\
-                           /*Flag*/      &quiet        ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Defines the file in which the log output is written"          ,\
-                           /*Parameter*/ &se_name      ,\
-                           /*Def 1*/     "stderr"      ,\
-                           /*Def 2*/     "/dev/null"   ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-     if (type_only==1)sprintf ( se_name, "/dev/null");
-
-     /*PARAMETER PROTOTYPE:    DO FORMAT      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-check_configuration"        ,\
-                           /*Flag*/      &check_configuration       ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "checks that the required programs are installed" ,\
-                           /*Parameter*/ &check_configuration          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                           );
-         /*PARAMETER PROTOTYPE:    UPDATE      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-update"        ,\
-                           /*Flag*/      &update,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "checks the existence of an updated version" ,\
-                           /*Parameter*/ &update          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                           );
-
-
-
-     if ( check_configuration)
-       {
-
-        check_configuration4program();
-        return EXIT_SUCCESS;
-
-       }
-     if ( update)
-       {
-        myexit (check_for_update(DISTRIBUTION_ADDRESS));
-       }
-     if ( do_version)
-       {
-        fprintf ( stdout, "PROGRAM: %s (%s)\n",PROGRAM,VERSION);
-        return EXIT_SUCCESS;
-       }
-
-
-     le=vfopen ( se_name, "w");
-     fprintf ( le, "\nPROGRAM: %s (%s)\n",PROGRAM,VERSION);
-
-/*PARAMETER PROTOTYPE: RUN NAME*/
-               declare_name (full_log);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-full_log"   ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Sets the prefix of all the output files"          ,\
-                           /*Parameter*/ &full_log     ,\
-                           /*Def 1*/     "NULL"        ,\
-                           /*Def 2*/     "full_log"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-              vremove(full_log);
-/*PARAMETER PROTOTYPE: RUN NAME*/
-               declare_name (genepred_score);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-genepred_score"   ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "nsd,tot, <seq_name>"          ,\
-                           /*Parameter*/ &genepred_score     ,\
-                           /*Def 1*/     "nsd"        ,\
-                           /*Def 2*/     ""            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE: RUN NAME*/
-               declare_name (run_name);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-run_name"   ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Sets the prefix of all the output files"          ,\
-                           /*Parameter*/ &run_name     ,\
-                           /*Def 1*/     "NULL"        ,\
-                           /*Def 2*/     ""            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE: MEM MODE*/
-              declare_name(mem_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-mem_mode"   ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated" ,\
-                           /*Parameter*/ &mem_mode     ,\
-                           /*Def 1*/     "mem"         ,\
-                           /*Def 2*/     ""            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE: EXTEND  */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-extend"     ,\
-                           /*Flag*/      &do_extend    ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Do Library Extention On the Fly"          ,\
-                           /*Parameter*/ &do_extend    ,\
-                           /*Def 1*/     "1"           ,\
-                           /*Def 2*/     "1"           ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE: EXTEND  */
-              declare_name (extend_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-extend_mode"     ,\
-                           /*Flag*/      &garbage    ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Library extension mode"          ,\
-                           /*Parameter*/ &extend_mode    ,\
-                           /*Def 1*/     "very_fast_triplet"           ,\
-                           /*Def 2*/     ""           ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-              /*PARAMETER PROTOTYPE: EXTEND  */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-max_n_pair"     ,\
-                           /*Flag*/      &garbage    ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Indicates the Number of Pairs to Compare when making prf Vs prf. 0<=>every pair "          ,\
-                           /*Parameter*/ &max_n_pair    ,\
-                           /*Def 1*/     "10"           ,\
-                           /*Def 2*/     "3"           ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE: SEQUENCES TO EXTEND */
-       seq_name_for_quadruplet=declare_char ( 200, STRING);
-       nseq_for_quadruplet=get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-seq_name_for_quadruplet"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  200           ,\
-                           /*DOC*/       "Indicates which sequence must be used to compute quadruplets"          ,\
-                           /*Parameter*/ seq_name_for_quadruplet    ,\
-                           /*Def 1*/     "all",\
-                           /*Def 2*/     ""       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE: COMPACT */
-              declare_name (compact_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-compact"    ,\
-                           /*Flag*/      &do_compact   ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &compact_mode ,\
-                           /*Def 1*/     "default"      ,\
-                           /*Def 2*/     "default"      ,\
-                           /*Min_value*/ "0"           ,\
-                           /*Max Value*/ "1"           \
-                  );
-
-
-/*PARAMETER PROTOTYPE:        CLEAN*/
-              declare_name ( clean_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-clean"      ,\
-                           /*Flag*/      &do_clean     ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &clean_mode   ,\
-                           /*Def 1*/     "no"          ,\
-                           /*Def 2*/     "shadow"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-
-/*PARAMETER PROTOTYPE:        DO SELF */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-do_self"    ,\
-                           /*Flag*/      &do_self      ,\
-                           /*TYPE*/      "FL"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  0             ,\
-                           /*DOC*/       "Make self extension. Used by Mocca"          ,\
-                           /*Parameter*/ &do_self      ,\
-                           /*Def 1*/     "0"           ,\
-                           /*Def 2*/     "1"           ,\
-                           /*Min_value*/ "0"           ,\
-                           /*Max Value*/ "1"           \
-                  );
-
-/*PARAMETER PROTOTYPE:        DO NORMALISE */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-do_normalise"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Normalisation factor when computing scores"          ,\
-                           /*Parameter*/ &do_normalise ,\
-                           /*Def 1*/     "1000"           ,\
-                           /*Def 2*/     "1000"       ,\
-                           /*Min_value*/ "-10000"           ,\
-                           /*Max Value*/ "10000"           \
-                  );
-/*PARAMETER PROTOTYPE:        IN */
-              template_file_list=declare_char (100, STRING);
-              n_template_file=get_cl_param(                    \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-template_file"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1000           ,\
-                           /*DOC*/       "List of templates file for the sequences",\
-                           /*Parameter*/ template_file_list     ,      \
-                           /*Def 1*/    "",\
-                           /*Def 2*/     "stdin"       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                                         );
-
-/*PARAMETER PROTOTYPE:    VERSION      */
-              setenv_list=declare_char (100, STRING);
-              n_setenv=get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-setenv"        ,\
-                           /*Flag*/      &do_version        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  2                ,\
-                           /*DOC*/       "Declares a parameter variable" ,\
-                           /*Parameter*/ setenv_list          ,        \
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                                         );
-/*PARAMETER PROTOTYPE:        IN */
-              template_mode_list=declare_char (100, STRING);
-              n_template_mode=get_cl_param(                    \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-template_mode"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1000           ,\
-                           /*DOC*/       "List of template procedures",\
-                           /*Parameter*/ template_mode_list     ,      \
-                           /*Def 1*/    "",\
-                           /*Def 2*/     "stdin"       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                                         );
-              for (a=0; a<n_template_mode; a++)
-                {
-                  sprintf (template_file_list[n_template_file++], "%s", template_mode_list [a]);
-                }
-/*PARAMETER PROTOTYPE:        remove_template_file*/
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-remove_template_file"      ,\
-                           /*Flag*/      &remove_template_file     ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Remove all the template files: 0 keep all, 1: only remove the template files 2: remove template files AND template lists "          ,\
-                           /*Parameter*/ &remove_template_file   ,\
-                           /*Def 1*/     "0"          ,\
-                           /*Def 2*/     "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-              set_int_variable ("remove_template_file", remove_template_file);
-
-       /*PARAMETER PROTOTYPE:        IN */
-              profile_template_file_list=declare_char (100, STRING);
-              n_profile_template_file=get_cl_param(                    \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-profile_template_file"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1000           ,\
-                           /*DOC*/       "List of templates files asscoaciated with profiles",\
-                           /*Parameter*/ profile_template_file_list     , \
-                           /*Def 1*/    "",\
-                           /*Def 2*/     "stdin"       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                                         );
-
-              /*PARAMETER PROTOTYPE:        IN */
-       list_file=declare_char (2000, STRING);
-       n_list=get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-in"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  2000           ,\
-                           /*DOC*/       "Reads the Ssequences, Mmethods, Llibraries,Xmatrices,Rprofiles,Pstructures,AAlignments"          ,\
-                           /*Parameter*/ list_file     ,\
-                           /*Def 1*/    "",\
-                           /*Def 2*/     "stdin"       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                                         );
-
-
-       /*PARAMETER PROTOTYPE:        IN */
-       seq_list=declare_char (1000, STRING);
-       n_seq_list=get_cl_param(                                \
-                               /*argc*/      argc          ,   \
-                               /*argv*/      argv          ,   \
-                               /*output*/    &le           ,   \
-                               /*Name*/      "-seq"         ,  \
-                               /*Flag*/      &garbage      ,   \
-                               /*TYPE*/      "S"           ,   \
-                               /*OPTIONAL?*/ OPTIONAL      ,   \
-                               /*MAX Nval*/  1000           ,          \
-                               /*DOC*/       "List of sequences in any acceptable format", \
-                               /*Parameter*/ seq_list     ,            \
-                               /*Def 1*/    "",                        \
-                               /*Def 2*/     "stdin"       ,           \
-                               /*Min_value*/ "any"         ,           \
-                               /*Max Value*/ "any"                     \
-                                             );
-       aln_file_list=declare_char (1000, STRING);
-       n_aln_file_list=get_cl_param(                           \
-                               /*argc*/      argc          ,   \
-                               /*argv*/      argv          ,   \
-                               /*output*/    &le           ,   \
-                               /*Name*/      "-aln"         ,  \
-                               /*Flag*/      &garbage      ,   \
-                               /*TYPE*/      "S"           ,   \
-                               /*OPTIONAL?*/ OPTIONAL      ,   \
-                               /*MAX Nval*/  1000           ,          \
-                               /*DOC*/       "List of sequences in any acceptable format", \
-                               /*Parameter*/ aln_file_list     ,               \
-                               /*Def 1*/    "",                        \
-                               /*Def 2*/     "stdin"       ,           \
-                               /*Min_value*/ "any"         ,           \
-                               /*Max Value*/ "any"                     \
-                                             );
-       method_limits=declare_char (1000, STRING);
-       n_method_limits=get_cl_param(                           \
-                               /*argc*/      argc          ,   \
-                               /*argv*/      argv          ,   \
-                               /*output*/    &le           ,   \
-                               /*Name*/      "-method_limits"         ,        \
-                               /*Flag*/      &garbage      ,   \
-                               /*TYPE*/      "S"           ,   \
-                               /*OPTIONAL?*/ OPTIONAL      ,   \
-                               /*MAX Nval*/  1000           ,          \
-                               /*DOC*/       "List of limits for selected methods: method maxnseq maxlen (-1 = nolimit)", \
-                               /*Parameter*/ method_limits     ,               \
-                               /*Def 1*/    "",                        \
-                               /*Def 2*/     ""       ,                \
-                               /*Min_value*/ "any"         ,           \
-                               /*Max Value*/ "any"                     \
-                                             );
-       method_list=declare_char (1000, STRING);
-       n_method_list=get_cl_param(                             \
-                               /*argc*/      argc          ,   \
-                               /*argv*/      argv          ,   \
-                               /*output*/    &le           ,   \
-                               /*Name*/      "-method"         ,       \
-                               /*Flag*/      &garbage      ,   \
-                               /*TYPE*/      "S"           ,   \
-                               /*OPTIONAL?*/ OPTIONAL      ,   \
-                               /*MAX Nval*/  1000           ,          \
-                               /*DOC*/       "List of sequences in any acceptable format", \
-                               /*Parameter*/ method_list     ,         \
-                               /*Def 1*/    "",                        \
-                               /*Def 2*/     ""       ,                \
-                               /*Min_value*/ "any"         ,           \
-                               /*Max Value*/ "any"                     \
-                                             );
-       lib_file_list=declare_char (1000, STRING);
-       n_lib_file_list=get_cl_param(                           \
-                               /*argc*/      argc          ,   \
-                               /*argv*/      argv          ,   \
-                               /*output*/    &le           ,   \
-                               /*Name*/      "-lib"         ,  \
-                               /*Flag*/      &garbage      ,   \
-                               /*TYPE*/      "S"           ,   \
-                               /*OPTIONAL?*/ OPTIONAL      ,   \
-                               /*MAX Nval*/  1000           ,          \
-                               /*DOC*/       "List of sequences in any acceptable format", \
-                               /*Parameter*/ lib_file_list     ,               \
-                               /*Def 1*/    "",                        \
-                               /*Def 2*/     "stdin"       ,           \
-                               /*Min_value*/ "any"         ,           \
-                               /*Max Value*/ "any"                     \
-                                             );
-       profile_list=declare_char ( 2000, STRING);
-       n_profile_list=get_cl_param(                                    \
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-profile"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  2000                ,\
-                           /*DOC*/       "Input one or many MSA that will be treated as profiles" ,\
-                           /*Parameter*/ profile_list          ,\
-                           /*Def 1*/    ""             ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                                         );
-       declare_name (profile1);
-       get_cl_param(                                           \
-                    /*argc*/      argc             ,           \
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-profile1"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Input one profile (ClustalW option)" ,\
-                           /*Parameter*/ &profile1          ,\
-                           /*Def 1*/    ""             ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-       declare_name (profile2);
-       get_cl_param(                                           \
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-profile2"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Input a profile (ClustalW option)" ,\
-                           /*Parameter*/ &profile2          ,\
-                           /*Def 1*/    ""             ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-       pdb_list=declare_char ( 200, STRING);
-       n_pdb=get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-pdb"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  200           ,\
-                           /*DOC*/       "Reads/fetch a pdb file: PDBID(PDB_CHAIN)[opt] (FIRST,LAST)[opt],"          ,\
-                           /*Parameter*/ pdb_list     ,\
-                           /*Def 1*/    "",\
-                           /*Def 2*/     ""       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-relax_lib"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "self extend the library, without adding new positions", \
-                           /*Parameter*/&relax_lib ,\
-                           /*Def 1*/    "1"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-filter_lib"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Removes from the library every value below the threshold",\
-                           /*Parameter*/&filter_lib ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "10"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    SHRINK_LIB     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-shrink_lib"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Runks linked_pairwise on the lib to remove every useless diagonal"          ,\
-                           /*Parameter*/&shrink_lib       ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-       declare_name (out_lib);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-out_lib"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Prompts the program to write the computed library file"          ,\
-                           /*Parameter*/&out_lib       ,\
-                           /*Def 1*/    "no"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-              /*PARAMETER PROTOTYPE:    OUT_LIB_MODE     */
-              declare_name (out_lib_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-out_lib_mode"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Save the primary or the extended library:[primary|extende]extended_[pair|lib]_[raw|pc]"          ,\
-                           /*Parameter*/&out_lib_mode       ,\
-                           /*Def 1*/    "primary"      ,\
-                           /*Def 2*/    "extended",\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    LIB_ONLY     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-lib_only"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Only Compute the library",\
-                           /*Parameter*/&lib_only       ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-       declare_name (outseqweight);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-outseqweight"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Prompts the program to write the sequuence weight values"          ,\
-                           /*Parameter*/&outseqweight       ,\
-                           /*Def 1*/    "no"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-              /*PARAMETER PROTOTYPE:    DPA    */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-dpa"  ,\
-                           /*Flag*/      &dpa    ,\
-                           /*TYPE*/      "FL"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  0             ,\
-                           /*DOC*/       "Use DPA mode"          ,\
-                           /*Parameter*/ &dpa    ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    "1"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    SEQ TO ALIGN     */
-              declare_name (seq_source);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-seq_source",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Indicates the files that will be used as sequence sources, important for dpa. With the default mode alignments must be provided with the Sflag as well as tye Aflag if they contribute novel sequences",\
-                           /*Parameter*/ &seq_source   ,\
-                           /*Def 1*/    "ANY"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-/*PARAMETER PROTOTYPE:    COSMETIC PENALTY     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-cosmetic_penalty" ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "A very low Gap Opening Penalty.It only affects the non stable portions of the alignmnent.Negative values penalize gaps, positive values reward them"          ,\
-                           /*Parameter*/ &cosmetic_penalty          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    "0"             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    GAPOPEN     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-gapopen"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Gap opening penalty. Must be negative, best matches get a score of 1000"          ,\
-                           /*Parameter*/ &gop          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    GAPEXT     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-gapext"     ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Gap Extension Penalty. Positive values give rewards to gaps and prevent the alignment of unrelated segments"          ,\
-                           /*Parameter*/ &gep          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-
-/*PARAMETER PROTOTYPE:    F_GAPOPEN     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-fgapopen"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &f_gop          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    F_GAPEXT     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-fgapext"     ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &f_gep          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-/*PARAMETER PROTOTYPE:    NEW_TREE     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-nomatch"     ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &nomatch          ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    "0"             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-              declare_name ( tree_file);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-newtree"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Name of the output guide tree"          ,\
-                           /*Parameter*/&tree_file     ,\
-                           /*Def 1*/    "default"      ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-              declare_name ( ph_tree_file);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-tree"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Name of the output guide tree"          ,\
-                           /*Parameter*/&ph_tree_file     ,\
-                           /*Def 1*/    "NO"      ,\
-                           /*Def 2*/    "default"             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-
-/*PARAMETER PROTOTYPE:    USETREE     */
-              declare_name ( use_tree);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-usetree",\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "R_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Use an existing guide tree"          ,\
-                           /*Parameter*/ &use_tree     ,\
-                           /*Def 1*/    "NULL"         ,\
-                           /*Def 2*/    "NULL"         ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-              /*PARAMETER PROTOTYPE:    */
-              declare_name ( tree_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-tree_mode"  ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "nj, upgma, cwph",\
-                           /*Parameter*/ &tree_mode    ,\
-                           /*Def 1*/    "nj"         ,\
-                           /*Def 2*/    "nj"         ,\
-                           /*Min_value*/ "1"         ,\
-                           /*Max Value*/ "1"          \
-                  );
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-              declare_name ( distance_matrix_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-distance_matrix_mode"  ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Computation of the distances for the tree: slow, fast, very_fast, ktup"          ,\
-                           /*Parameter*/ &distance_matrix_mode    ,\
-                           /*Def 1*/    "ktup"         ,\
-                           /*Def 2*/    "idscore"         ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-              declare_name ( distance_matrix_sim_mode);
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-distance_matrix_sim_mode"  ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Choice of the distance measure: <mat>_sim1, _sim2, _sim3, _cov, _gap"          ,\
-                           /*Parameter*/ &distance_matrix_sim_mode    ,\
-                           /*Def 1*/    "idmat_sim1"         ,\
-                           /*Def 2*/    "idmat_sim1"         ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    OUT_LIB     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-quicktree"  ,\
-                           /*Flag*/      &quicktree    ,\
-                           /*TYPE*/      "FL"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  0             ,\
-                           /*DOC*/       "Use distance_matrix_mode=very_fast"          ,\
-                           /*Parameter*/ &quicktree    ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    "1"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-              if ( quicktree)sprintf ( distance_matrix_mode, "very_fast");
-/*PARAMETER PROTOTYPE:    OUTFILE     */
-              declare_name ( out_aln);
-              tot_out_aln=declare_char (200, STRING);
-               get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-outfile"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Name of the output alignment"          ,\
-                           /*Parameter*/ &out_aln      ,\
-                           /*Def 1*/    "default"      ,\
-                           /*Def 2*/    ""             ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    MAXIMISE     */
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-maximise"   ,\
-                           /*Flag*/      &maximise     ,\
-                           /*TYPE*/      "FL"          ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  0             ,\
-                           /*DOC*/       "Deprecated"          ,\
-                           /*Parameter*/ &maximise     ,\
-                           /*Def 1*/    "1"            ,\
-                           /*Def 2*/    "1"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"         \
-                  );
-
-/*PARAMETER PROTOTYPE:    OUTPUT_FORMAT    */
-              out_aln_format=declare_char ( 200, STRING);
-              n_out_aln_format=get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-output"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  200              ,\
-                           /*DOC*/       "Specifies one or many formats that must be output: clustalw_aln, msf_aln. The file extension is the output format"           ,\
-                           /*Parameter*/ out_aln_format,\
-                           /*Def 1*/    "aln,html"           ,\
-                           /*Def 2*/    "1"             ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (infile);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-infile"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "R_F"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "input a pre-computed alignment, or a file to reformat"           ,\
-                           /*Parameter*/ &infile        ,\
-                           /*Def 1*/    ""              ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (matrix);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-matrix"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Specifies the substitution matrix.",\
-                           /*Parameter*/ &matrix        ,\
-                           /*Def 1*/    "default"              ,\
-                           /*Def 2*/    "default"    ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    TG_MODE    */
-
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-tg_mode"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "0: Penalise Term gap with gapopen and gapext\n1: gapopen only\n2: No penalty\n",\
-                           /*Parameter*/ &tg_mode        ,\
-                           /*Def 1*/    "1",\
-                           /*Def 2*/    "0",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    DP_MODE    */
-              declare_name (profile_mode);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-profile_mode"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Function used to compute profile2profile scores",\
-                           /*Parameter*/ &profile_mode        ,\
-                           /*Def 1*/    "cw_profile_profile",\
-                           /*Def 2*/    "cw_profile_profile",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-              declare_name (profile_comparison);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-profile_comparison"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Method used to compare two profiles: full<N>: compares <every | N best> pair of sequence and every pair of structure if a structure method is used,profile: compares only the profiles.  ",\
-                           /*Parameter*/ &profile_comparison        ,\
-                           /*Def 1*/    "profile",\
-                           /*Def 2*/    "full50",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    DP_MODE    */
-              declare_name (dp_mode);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dp_mode"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Type of alignment algorithm used by T-Coffee: gotoh_pair_wise, myers_millers_pair_wise, "           ,\
-                           /*Parameter*/ &dp_mode        ,\
-                           /*Def 1*/    "linked_pair_wise",\
-                           /*Def 2*/    "cfasta_pair_wise",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    KTUP    */
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-ktuple"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Word size when using the heursitic dynamic programming modes fasta_pair_wise and cfasta_pair_wise "           ,\
-                           /*Parameter*/ &ktup          ,\
-                           /*Def 1*/    "1",\
-                           /*Def 2*/    "1",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    FASTA_STEP    */
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-ndiag"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Number of diagonals to consider when using the heursitic dynamic programming modes fasta_pair_wise and cfasta_pair_wise"           ,\
-                           /*Parameter*/ &fasta_step          ,\
-                           /*Def 1*/    "0",\
-                           /*Def 2*/    "10",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    FASTA_STEP    */
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-diag_threshold"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "ND"           ,\
-                           /*Parameter*/ &diag_threshold ,\
-                           /*Def 1*/    "0",\
-                           /*Def 2*/    "10",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    diag_mode    */
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-diag_mode"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "0: Use the whole Diag\n1: Use the best match\n"           ,\
-                           /*Parameter*/ &diag_mode          ,\
-                           /*Def 1*/    "0",\
-                           /*Def 2*/    "1",
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    SIM_MATRIX    */
-              declare_name (sim_matrix);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-sim_matrix"      ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Degenerated matrix used to compute a similarity"           ,\
-                           /*Parameter*/ &sim_matrix        ,\
-                           /*Def 1*/    "vasiliky",\
-                           /*Def 2*/    "idmat",\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (transform);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-transform"        ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "dna2rna, rna2dna, dna2prot", \
-                           /*Parameter*/ &transform          ,\
-                           /*Def 1*/    ""              ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    INFILE    */
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-extend_seq"        ,\
-                           /*Flag*/      &extend_seq       ,\
-                           /*TYPE*/      "FL"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  0             ,\
-                           /*DOC*/       "extend the sequences",       \
-                           /*Parameter*/ &extend_seq          ,\
-                           /*Def 1*/    "0"              ,\
-                           /*Def 2*/    "1"              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                           );
-
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (outorder);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-outorder"        ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Specifies the order of the sequences in the msa: input or aligned"           ,\
-                           /*Parameter*/ &outorder       ,\
-                           /*Def 1*/    "input"          ,\
-                           /*Def 2*/    "input"        ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (inorder);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-inorder"        ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "aligned: sort the sequences in alphabetic order before starting thus making the input order irrelevant but delivering a library in arbitratry order, keep: input order is used in the library but results become input order dependant"           ,\
-                           /*Parameter*/ &inorder       ,\
-                           /*Def 1*/    "aligned"          ,\
-                           /*Def 2*/    "input"        ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (output_res_num);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-seqnos"        ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Adds Residue Numbers to the MSA"           ,\
-                           /*Parameter*/ &output_res_num ,\
-                           /*Def 1*/    "off"            ,\
-                           /*Def 2*/    "on"             ,\
-                           /*Min_value*/ "any"           ,\
-                           /*Max Value*/ "any"            \
-                  );
-/*PARAMETER PROTOTYPE:    INFILE    */
-              declare_name (residue_case);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-case"        ,\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"            ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Causes the case to be: kept:lower:upper."           ,\
-                           /*Parameter*/ &residue_case         ,\
-                           /*Def 1*/    "keep"            ,\
-                           /*Def 2*/    "upper"             ,\
-                           /*Min_value*/ "any"           ,\
-                           /*Max Value*/ "any"            \
-                  );
-
-/*PARAMETER PROTOTYPE:    CPU     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-cpu"        ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Makes it possible to add a pre-specified amount of cpu time to the measured usage"          ,\
-                           /*Parameter*/ &extra_cpu    ,\
-                           /*Def 1*/    "0"            ,\
-                           /*Def 2*/    "0"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    MAXNSEQ     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-maxnseq"        ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Maximum number of sequences (-1=no max)"          ,\
-                           /*Parameter*/ &maxnseq    ,\
-                           /*Def 1*/    "1000"            ,\
-                           /*Def 2*/    "0"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-/*PARAMETER PROTOTYPE:    MAXLEN     */
-
-              get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-maxlen"        ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Maximum length of a sequence (-1=no max)"          ,\
-                           /*Parameter*/ &maxlen    ,\
-                           /*Def 1*/    "-1"            ,\
-                           /*Def 2*/    "-1"            ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:    WEIGHT      */
-              
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-sample_dp"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "defines the tie breaking strategy (only with gotoh_pair_wise)" ,\
-                           /*Parameter*/ &sample_dp          ,\
-                           /*Def 1*/    "0"             ,\
-                           /*Def 2*/    "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "2"             \
-                  );     
-              if ( sample_dp)cputenv ("SAMPLE_DP_4_TCOFFEE=%d", sample_dp);
-              
-
-/*PARAMETER PROTOTYPE:    WEIGHT      */
-              declare_name ( weight);
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-weight"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Defines the library weight: sim OR  sim_(matrix) OR winsim" ,\
-                           /*Parameter*/ &weight          ,\
-                           /*Def 1*/    "default"             ,\
-                           /*Def 2*/    "sim"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );     /*PARAMETER PROTOTYPE:    WEIGHT      */
-              declare_name ( seq_weight);
-
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-seq_weight"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Defines the sequences weighting scheme t_coffee" ,\
-                           /*Parameter*/ &seq_weight          ,\
-                           /*Def 1*/    "t_coffee"             ,\
-                           /*Def 2*/    "t_coffee"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-/*PARAMETER PROTOTYPE:    DO ALIGN      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-align"        ,\
-                           /*Flag*/      &do_align        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  0                ,\
-                           /*DOC*/       "forces the program to make the alignment" ,\
-                           /*Parameter*/ &do_align          ,\
-                           /*Def 1*/     "1"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-/*PARAMETER PROTOTYPE:    DO DOMAIN      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-mocca"        ,\
-                           /*Flag*/      &do_domain        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  0                ,\
-                           /*DOC*/       "forces the program to extract domains" ,\
-                           /*Parameter*/ &do_domain          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-              if ( !do_domain)
-                {
-/*PARAMETER PROTOTYPE:    DO DOMAIN      */
-                  get_cl_param(                                \
-                           /*argc*/      argc             ,    \
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-domain"        ,\
-                           /*Flag*/      &do_domain        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  0                ,\
-                           /*DOC*/       "forces the program to extract domains" ,\
-                           /*Parameter*/ &do_domain          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                                         );
-                }
-/*PARAMETER PROTOTYPE:    Domain Param      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-start"        ,\
-                           /*Flag*/      &domain_start        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "start of the master domain in the mocca mode" ,\
-                           /*Parameter*/ &domain_start          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-len"        ,\
-                           /*Flag*/      &domain_len        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "length of the master domain in the mocca mode" ,\
-                           /*Parameter*/ &domain_len          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-scale"        ,\
-                           /*Flag*/      &domain_scale        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Decreases the t_coffee score by Scale, so that non match get negative values" ,\
-                           /*Parameter*/ &domain_scale          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-mocca_interactive"        ,\
-                           /*Flag*/      &domain_interactive        ,\
-                           /*TYPE*/      "FL"             ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  0                ,\
-                           /*DOC*/       "Runs Mocca in an interactive manneer" ,\
-                           /*Parameter*/ &domain_interactive,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-/*PARAMETER PROTOTYPE:    WEIGHT      */
-              declare_name (method_evaluate_mode);
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-method_evaluate_mode"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Specifies which method should be used to evaluate the score at the pairwise level" ,\
-                           /*Parameter*/ &method_evaluate_mode          ,\
-                           /*Def 1*/    "default"             ,\
-                           /*Def 2*/    "default"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                                         );
- /*PARAMETER PROTOTYPE:    WEIGHT      */
-              declare_name (evaluate_mode);
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-evaluate_mode"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Mode used to produce the color output:t_coffee_fast,t_coffee_slow  " ,\
-                           /*Parameter*/ &evaluate_mode          ,\
-                           /*Def 1*/    "triplet"             ,\
-                           /*Def 2*/    "dali"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-get_type"        ,\
-                           /*Flag*/      &get_type        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "forces t_coffee top get the type of the sequences" ,\
-                           /*Parameter*/ &get_type          ,\
-                           /*Def 1*/    "0"             ,\
-                           /*Def 2*/    "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-clean_aln"        ,\
-                           /*Flag*/      &clean_aln        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Forces weak portion of aln to be realigned" ,\
-                           /*Parameter*/ &clean_aln          ,\
-                           /*Def 1*/    "0"             ,\
-                           /*Def 2*/    "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-                  );
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-clean_threshold"        ,\
-                           /*Flag*/      &clean_threshold        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Threshold for the portions of the MSA that will are realigned by '-clean_evaluate_mode'. The threshold refers to the CORE score set by '-evaluate_mode'" ,\
-                           /*Parameter*/ &clean_threshold          ,\
-                           /*Def 1*/     "1"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-clean_iteration"        ,\
-                           /*Flag*/      &clean_iteration        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Number of rounds for '-clean_aln'" ,\
-                           /*Parameter*/ &clean_iteration          ,\
-                           /*Def 1*/     "1"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-declare_name (clean_evaluate_mode);
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-clean_evaluate_mode"        ,\
-                           /*Flag*/      &garbage        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Mode used to score residues (see evaluate_mode)" ,\
-                           /*Parameter*/ &clean_evaluate_mode          ,\
-                           /*Def 1*/    "t_coffee_fast"             ,\
-                           /*Def 2*/    "t_coffee_fast"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
-/*PARAMETER PROTOTYPE:    DO EXTENDED MATRIX      */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-extend_matrix"        ,\
-                           /*Flag*/      &do_extended_matrix        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  0                ,\
-                           /*DOC*/       "Deprecated" ,\
-                           /*Parameter*/ &do_extended_matrix          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-prot_min_sim"        ,\
-                           /*Flag*/      &prot_min_sim        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Minimum similarity between a sequence and its BLAST relatives" ,\
-                           /*Parameter*/ &prot_min_sim          ,\
-                           /*Def 1*/     "40"             ,\
-                           /*Def 2*/     "20"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
- set_int_variable ("prot_min_sim", prot_min_sim);
-
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-prot_max_sim"        ,\
-                           /*Flag*/      &prot_max_sim        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Maximum similarity between a sequence and its BLAST relatives" ,\
-                           /*Parameter*/ &prot_max_sim          ,\
-                           /*Def 1*/     "90"             ,\
-                           /*Def 2*/     "100"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
- set_int_variable ("prot_max_sim", prot_max_sim);
-
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-prot_min_cov"        ,\
-                           /*Flag*/      &prot_min_cov        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Minimum coverage of a sequence by its BLAST relatives" ,\
-                           /*Parameter*/ &prot_min_cov          ,\
-                           /*Def 1*/     "40"             ,\
-                           /*Def 2*/     "0"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-set_int_variable ("prot_min_cov", prot_min_cov);
-declare_name(pdb_type);
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-pdb_type"        ,\
-                           /*Flag*/      &pdb_min_sim        ,\
-                           /*TYPE*/      "S"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "d: diffraction, n: nmr, m:model" ,\
-                           /*Parameter*/ &pdb_type          ,\
-                           /*Def 1*/     "d"             ,\
-                           /*Def 2*/     "d"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-set_string_variable ("pdb_type", pdb_type);
-get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-pdb_min_sim"        ,\
-                           /*Flag*/      &pdb_min_sim        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Minimum similarity between a sequence and its PDB target" ,\
-                           /*Parameter*/ &pdb_min_sim          ,\
-                           /*Def 1*/     "35"             ,\
-                           /*Def 2*/     "35"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-
- set_int_variable ("pdb_min_sim", pdb_min_sim);
- get_cl_param(                                                 \
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-pdb_max_sim"        ,\
-                           /*Flag*/      &pdb_max_sim        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Maximum similarity between a sequence and its PDB target" ,\
-                           /*Parameter*/ &pdb_max_sim          ,\
-                           /*Def 1*/     "100"             ,\
-                           /*Def 2*/     "0"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
- set_int_variable ("pdb_max_sim", pdb_max_sim);
- get_cl_param(                                                 \
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-pdb_min_cov"        ,\
-                           /*Flag*/      &pdb_min_cov        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Minimum coverage of a sequence by its PDB target" ,\
-                           /*Parameter*/ &pdb_min_cov          ,\
-                           /*Def 1*/     "50"             ,\
-                           /*Def 2*/     "25"             ,\
-                           /*Min_value*/ "any"            ,\
-                           /*Max Value*/ "any"             \
-                  );
-set_int_variable ("pdb_min_cov", pdb_min_cov);
-
-
-
-declare_name (pdb_blast_server);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-pdb_blast_server"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "ND"          ,\
-                           /*Parameter*/&pdb_blast_server       ,\
-                           /*Def 1*/    "EBI"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name (prot_blast_server);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-blast"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "ND"          ,\
-                           /*Parameter*/&prot_blast_server       ,\
-                           /*Def 1*/    ""      ,\
-                           /*Def 2*/    ""      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
- //make sure that -blast and -blast_server are both supported blast>blast_server
- if ( !prot_blast_server[0])
-   {
-     get_cl_param(                                             \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-blast_server"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "ND"          ,\
-                           /*Parameter*/&prot_blast_server       ,\
-                           /*Def 1*/    "EBI"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-   }
- // HERE ("%s", blast_server);
- if ( strm (prot_blast_server, "env"))prot_blast_server=get_env_variable ("blast_server_4_TCOFFEE",IS_FATAL);
- set_string_variable ("blast_server", prot_blast_server);
-
-
-
- declare_name (pdb_db);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-pdb_db"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Non Redundant PDB database"          ,\
-                           /*Parameter*/&pdb_db       ,\
-                           /*Def 1*/    "pdb"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
- if ( strm (pdb_db, "env"))pdb_db=get_env_variable ("pdb_db_4_TCOFFEE", IS_FATAL);
- set_string_variable ("pdb_db", pdb_db);
-
-
-declare_name (prot_db);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-protein_db"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "ND"          ,\
-                           /*Parameter*/&prot_db       ,\
-                           /*Def 1*/    "uniprot"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
- if ( strm (prot_db, "env"))prot_db=get_env_variable ("protein_db_4_TCOFFEE", IS_FATAL);
- set_string_variable ("prot_db", prot_db);
-
- declare_name (method_log);
- get_cl_param(                                                 \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-method_log"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "ND"          ,\
-                           /*Parameter*/&method_log       ,\
-                           /*Def 1*/    "no"      ,\
-                           /*Def 2*/    "default"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-/*PARAMETER PROTOTYPE:        IN */
-       struc_to_use=declare_char ( 200, STRING);
-       n_struc_to_use=get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-struc_to_use"         ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"           ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  200           ,\
-                           /*DOC*/       "Specifies the structures that must be used when combining sequences and structures. The default is to use all the structures."          ,\
-                           /*Parameter*/ struc_to_use     ,\
-                           /*Def 1*/    "",\
-                           /*Def 2*/     "stdin"       ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-declare_name (cache);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-cache"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Specifies that a cache must be used to save the structures and their comparison, as well as the blast searches.\navailable modes are: use,ignore,update,local, directory name"          ,\
-                           /*Parameter*/ &cache       ,\
-                           /*Def 1*/    "use"      ,\
-                           /*Def 2*/    "update"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name (align_pdb_param_file);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-align_pdb_param_file"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "parameter_file"          ,\
-                           /*Parameter*/ &align_pdb_param_file       ,\
-                           /*Def 1*/    "no"      ,\
-                           /*Def 2*/    "no"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name (align_pdb_hasch_mode);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-align_pdb_hasch_mode"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "W_F"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "parameter_file"          ,\
-                           /*Parameter*/ &align_pdb_hasch_mode       ,\
-                           /*Def 1*/    "hasch_ca_trace_bubble"      ,\
-                           /*Def 2*/    "hasch_ca_trace_bubble"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name (use_seqan);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-external_aligner"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Use seqan to compute the MSA",\
-                           /*Parameter*/ &use_seqan      ,\
-                           /*Def 1*/    "NO"      ,\
-                           /*Def 2*/    "seqan_tcoffee"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name (msa_mode);
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-msa_mode"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Algorithm used to compute the MSA: tree | graph"          ,\
-                           /*Parameter*/ &msa_mode      ,\
-                           /*Def 1*/    "tree"      ,\
-                           /*Def 2*/    "tree"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-declare_name (master_mode);
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-master"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Align all the sequences to the master sequences: file or number"          ,\
-                           /*Parameter*/ &master_mode      ,\
-                           /*Def 1*/    "no"      ,\
-                           /*Def 2*/    "_LONG_N_10"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
- get_cl_param(                                                 \
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-blast_nseq"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Maximum number of querries for BLAST (0: all)"          ,\
-                           /*Parameter*/ &blast_maxnseq      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "0"      ,\
-                           /*Min_value*/ "0"         ,\
-                           /*Max Value*/ "any"          \
-                  );
- get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-lalign_n_top"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Number of local alignments reported by the local method (lalign) when building the library"          ,\
-                           /*Parameter*/ &lalign_n_top      ,\
-                           /*Def 1*/    "10"      ,\
-                           /*Def 2*/    "10"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-iterate"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "NUmber of iteration on the progressive alignment [0: no iteration, -1: Nseq iterations]",\
-                           /*Parameter*/ &iterate      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "100"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-trim"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "trim dataset",\
-                           /*Parameter*/ &trim      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-split"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "split dataset",\
-                           /*Parameter*/ &split      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-declare_name(trimfile);
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-trimfile"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "S"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "trim dataset filename",\
-                           /*Parameter*/ &trimfile      ,\
-                           /*Def 1*/    "default"      ,\
-                           /*Def 2*/    ""      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-split"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "split dataset",\
-                           /*Parameter*/ &split      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-if (trim && !split)split=trim;
-
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-split_nseq_thres"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Maximum Number of sequences within a subgroup",\
-                           /*Parameter*/ &split_nseq_thres      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-split_score_thres"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Minimum score within a split dataset",\
-                           /*Parameter*/ &split_score_thres      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-check_pdb_status"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Reports the existance of a PDB file",\
-                           /*Parameter*/ &check_pdb_status      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-get_cl_param(\
-                           /*argc*/      argc          ,\
-                           /*argv*/      argv          ,\
-                           /*output*/    &le           ,\
-                           /*Name*/      "-clean_seq_name"    ,\
-                           /*Flag*/      &garbage      ,\
-                           /*TYPE*/      "D"         ,\
-                           /*OPTIONAL?*/ OPTIONAL      ,\
-                           /*MAX Nval*/  1             ,\
-                           /*DOC*/       "Remove Special Char from sequence names",\
-                           /*Parameter*/ &clean_seq_name      ,\
-                           /*Def 1*/    "0"      ,\
-                           /*Def 2*/    "1"      ,\
-                           /*Min_value*/ "any"         ,\
-                           /*Max Value*/ "any"          \
-                  );
-
-
-/*PARAMETER PROTOTYPE:    SEQ TO ALIGN     */
-              seq_to_keep=declare_char ( 2000, STRING);
-              n_seq_to_keep=get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-seq_to_keep",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  200              ,\
-                           /*DOC*/       "File containing the name of the sequences to keep when triming OR a list of names)",\
-                           /*Parameter*/ seq_to_keep   ,\
-                           /*Def 1*/    "NULL"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           TCoffee_dpa Parameter:START                                               */
-/*                                                                                                     */
-/*******************************************************************************************************/
-/*PARAMETER PROTOTYPE:    dpa_master_aln     */
-              declare_name (dpa_master_aln);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dpa_master_aln",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Approximate Alignment: File|method",\
-                           /*Parameter*/ &dpa_master_aln   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              /*PARAMETER PROTOTYPE:    dpa_maxnseq    */
-
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dpa_maxnseq",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Maximum number of sequences to be aligned with DPA",\
-                           /*Parameter*/ &dpa_maxnseq   ,\
-                           /*Def 1*/    "0"       ,\
-                           /*Def 2*/    "50"              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-/*PARAMETER PROTOTYPE:    dpa_min_score1    */
-
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dpa_min_score1",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  200              ,\
-                           /*DOC*/       "Minimum percent ID to merge sequences in the approximate alignment",\
-                           /*Parameter*/ &dpa_min_score1   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-/*PARAMETER PROTOTYPE:    dpa_min_score2    */
-
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dpa_min_score2",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  200              ,\
-                           /*DOC*/       "Threshold for aligning a group in the slow double progressive alignment (automatically readjusted)",\
-                           /*Parameter*/ &dpa_min_score2   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-/*PARAMETER PROTOTYPE:    dpa_keep_tmp_file     */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-dpa_keep_tmpfile"        ,\
-                           /*Flag*/      &dpa_keep_tmpfile        ,\
-                           /*TYPE*/      "FL"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "Prevents deletion of the tmpfile generated by t_coffee_dpa",\
-                           /*Parameter*/ &do_version          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-
-                           );
-/*PARAMETER PROTOTYPE:    dpa_debug     */
-              get_cl_param(\
-                           /*argc*/      argc             ,\
-                           /*argv*/      argv             ,\
-                           /*output*/    &le              ,\
-                           /*Name*/      "-dpa_debug"        ,\
-                           /*Flag*/      &dpa_debug        ,\
-                           /*TYPE*/      "D"              ,\
-                           /*OPTIONAL?*/ OPTIONAL         ,\
-                           /*MAX Nval*/  1                ,\
-                           /*DOC*/       "DEbug mode for DPA ( causes dpa tmp files to be kept)",\
-                           /*Parameter*/ &do_version          ,\
-                           /*Def 1*/     "0"             ,\
-                           /*Def 2*/     "1"             ,\
-                           /*Min_value*/ "0"            ,\
-                           /*Max Value*/ "1"             \
-
-                           );
-
-/*PARAMETER PROTOTYPE:    multi_core    */
-              declare_name (multi_core);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-multi_core",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Multi core: template_jobs_relax_[msa|pairwise]_evaluate",\
-                           /*Parameter*/ &multi_core   ,\
-                           /*Def 1*/    "templates_jobs_relax_msa_evaluate"       ,\
-                           /*Def 2*/    "templates_jobs_relax_msa_evaluate"              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-              if (multi_core[0])set_string_variable ("multi_core",multi_core);
-/*PARAMETER PROTOTYPE:    multi_core    */
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-n_core",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Number of cores to be used by machine [default=0 => all those defined in the environement]",\
-                           /*Parameter*/ &n_core   ,\
-                           /*Def 1*/    "0"       ,\
-                           /*Def 2*/    "0"              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-              if (n_core)set_int_variable ("n_core",n_core);
-
-
-/*PARAMETER PROTOTYPE:    lib_list    */
-              declare_name (lib_list);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-lib_list",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "A File that contains every pair/group of sequence to process when computing the lib, Format:<nseq> <index1><index2>",\
-                           /*Parameter*/ &lib_list   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    "default"              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-
-              /*PARAMETER PROTOTYPE:    lib_list    */
-              declare_name (prune_lib_mode);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-prune_lib_mode",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "A File that contains every pair/group of sequence to process when computing the lib, Format:<nseq> <index1><index2>",\
-                           /*Parameter*/ &prune_lib_mode   ,\
-                           /*Def 1*/    "5"       ,\
-                           /*Def 2*/    "5"              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "100"           \
-                  );
-              set_string_variable ("prune_lib_mode",prune_lib_mode);
-
-              /*PARAMETER PROTOTYPE:    multi_thread    */
-              declare_name (tip);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-tip",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Controls The Output of A TIP When Computation is over [one,all,none]",\
-                           /*Parameter*/ &tip   ,\
-                           /*Def 1*/    "none"       ,\
-                           /*Def 2*/    "all"              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              /*PARAMETER PROTOTYPE:    RNA LIB    */
-              declare_name (rna_lib);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-rna_lib",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "",\
-                           /*Parameter*/ &rna_lib   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-no_warning",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Suppresses all Warnings",\
-                           /*Parameter*/ &no_warning   ,\
-                           /*Def 1*/    "0"       ,\
-                           /*Def 2*/    "1"              ,\
-                           /*Min_value*/ "0"          ,\
-                           /*Max Value*/ "1"           \
-                  );
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,      \
-                           /*output*/    &le            ,\
-                           /*Name*/      "-run_local_script",\
-                           /*Flag*/      &garbage       ,      \
-                           /*TYPE*/      "D"          ,        \
-                           /*OPTIONAL?*/ OPTIONAL       ,      \
-                           /*MAX Nval*/  1              ,              \
-                           /*DOC*/       "Run Local Script if in current directory",   \
-                           /*Parameter*/ &run_local_script   ,         \
-                           /*Def 1*/    "0"       ,                    \
-                           /*Def 2*/    "1"              ,             \
-                           /*Min_value*/ "0"          ,                \
-                           /*Max Value*/ "1"                           \
-                  );
-              set_int_variable ("run_local_script", run_local_script);
-              declare_name (plugins);
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,      \
-                           /*output*/    &le            ,\
-                           /*Name*/      "-plugins",\
-                           /*Flag*/      &garbage       ,      \
-                           /*TYPE*/      "S"          ,        \
-                           /*OPTIONAL?*/ OPTIONAL       ,      \
-                           /*MAX Nval*/  1              ,              \
-                           /*DOC*/       "Set the directory containing the plugins [no if no plugin]", \
-                           /*Parameter*/ &plugins   ,          \
-                           /*Def 1*/    "default"       ,                      \
-                           /*Def 2*/    ""              ,              \
-                           /*Min_value*/ "any"          ,              \
-                           /*Max Value*/ "any"                         \
-                  );
-              
-
-
-              declare_name (proxy);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-proxy",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "proxy used to access to webservices, when required",\
-                           /*Parameter*/ &proxy   ,\
-                           /*Def 1*/    "unset"       ,\
-                           /*Def 2*/    " "              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if ( !strm (proxy, "unset"))set_string_variable ("cl_proxy",proxy);
-              declare_name (email);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-email",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "email provided to webservices, when required",\
-                           /*Parameter*/ &email   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if ( strstr (email, "@"))
-                {
-                  set_string_variable ("email", email);
-                  set_string_variable ("cl_email", email);
-                }
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-clean_overaln",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &clean_overaln   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    "1"              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                                         );
-              overaln_param=declare_char ( 10, STRING);
-              n_overaln_param=get_cl_param(                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_param",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  10              ,\
-                           /*DOC*/       "Parameters for the overaln",\
-                           /*Parameter*/ overaln_param   ,\
-                           /*Def 1*/    "NULL"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              declare_name (overaln_mode);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_mode",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "lower || uanlaign",\
-                           /*Parameter*/ &overaln_mode   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if (overaln_mode[0])set_string_variable ("overaln_mode", overaln_mode);
-              declare_name (overaln_model);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_model",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "fsa1 (no exon boundaries), fsa2 (exon boundaries)",\
-                           /*Parameter*/ &overaln_model   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if (overaln_mode[0])set_string_variable ("overaln_model", overaln_model);
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_threshold",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_threshold   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                           );
-              set_int_variable ("overaln_threshold", overaln_threshold);
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_target",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_target   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              set_int_variable ("overaln_target", overaln_threshold);
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_P1",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_P1   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if (overaln_P1)set_int_variable ("overaln_P1", overaln_P1);
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_P2",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_P2   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-               if (overaln_P2)set_int_variable ("overaln_P2", overaln_P2);
-
-               get_cl_param(                                   \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_P3",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_P3   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if (overaln_P3)set_int_variable ("overaln_P3", overaln_P3);
-
-              get_cl_param(                                    \
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-overaln_P4",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "D"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "Ratio between overaligned exon id Vs legitimates *100",\
-                           /*Parameter*/ &overaln_P4   ,\
-                           /*Def 1*/    "0"          ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if (overaln_P4)set_int_variable ("overaln_P4", overaln_P4);
-
-
-              declare_name (exon_boundaries);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-exon_boundaries",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "exon_boundaries [EBI boj format]",\
-                           /*Parameter*/ &exon_boundaries   ,\
-                           /*Def 1*/    ""       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                  );
-              if ( exon_boundaries[0])set_string_variable ("exon_boundaries", exon_boundaries);
-
-              declare_name (dump);
-              get_cl_param(\
-                           /*argc*/      argc           ,\
-                           /*argv*/      argv           ,\
-                           /*output*/    &le            ,\
-                           /*Name*/      "-dump",\
-                           /*Flag*/      &garbage       ,\
-                           /*TYPE*/      "S"          ,\
-                           /*OPTIONAL?*/ OPTIONAL       ,\
-                           /*MAX Nval*/  1              ,\
-                           /*DOC*/       "dump",\
-                           /*Parameter*/ &dump   ,\
-                           /*Def 1*/    "no"       ,\
-                           /*Def 2*/    ""              ,\
-                           /*Min_value*/ "any"          ,\
-                           /*Max Value*/ "any"           \
-                          );
-              
-              if (!strm (dump, "no"))
-                {
-                  set_string_variable ("dump_output_file", vtmpnam (NULL));
-                  set_string_variable ("dump_output_file_list", vtmpnam (NULL));
-                  
-                  set_string_variable ("dump",dump);
-                }
-              
-
-
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           TCoffee_dpa Parameter:END                                                 */
-/*                                                                                                     */
-/*******************************************************************************************************/
-
-
-
-              if (argc==1  )
-                {
-                  display_method_names ("display", stdout);
-                  return EXIT_SUCCESS;
-                }
-              get_cl_param( argc, argv,&le, NULL,NULL,NULL,0,0,NULL);
-              prepare_cache (cache);
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           FILL list_file (contains seq, aln and meth)                               */
-/*                                                                                                     */
-/*******************************************************************************************************/
-
-
-
-/*Re-introduce the sequences introduced with -infile*/
-/*Standard*/
-
-              if ( infile[0] && !do_evaluate)
-                  {
-                  sprintf ( list_file[n_list++], "%s",infile);
-                  }
-/*DO EVALUATE: The aln to evaluate must be provided via -infile*/
-              else  if (do_evaluate)
-                  {
-                    if (!infile[0] ||  !(main_read_aln ( infile, NULL)))
-                      {
-                        fprintf ( stderr,"\nERROR: When using -evaluate, Provide a multiple sequence alignment via the -infile flag [FATAL:%s]\n", PROGRAM);
-                        myexit (EXIT_FAILURE);
-                      }
-                    else if (! main_read_aln ( infile,NULL))
-                      {
-                        fprintf ( stderr,"\nERROR: FILE %s is NOT a valid alignment [FATAL:%s]\n", infile, PROGRAM);
-                        myexit (EXIT_FAILURE);
-                      }
-                    else if ( infile[0]=='A' ||infile[0]=='S')
-                      {
-                        sprintf ( list_file[n_list++], "S%s",infile+1);
-                      }
-                    else sprintf ( list_file[n_list++], "S%s",infile);
-                  }
-
-
-
-/*Make Sure -infile is set*/
-              if (!infile[0]&& (do_evaluate || do_convert))
-                {
-
-                  if ( do_evaluate || do_convert)sprintf ( infile, "%s",seq_list[0]);
-                }
-
-/*EXPAND -in*/
-              /*Introduce the sequences from the -profile flag*/
-              if ( profile1 && profile1[0])
-                {
-                  sprintf ( list_file[n_list++], "R%s",profile1);
-                }
-              if ( profile2 && profile2[0])
-                {
-                  sprintf ( list_file[n_list++], "R%s",profile2);
-                }
-
-              for ( a=0; a< n_profile_list; a++)
-                {
-                  FILE *fp;
-                  if ( (fp=find_token_in_file (profile_list[a], NULL, "FILE_LIST"))!=NULL)
-                    {
-                      int z;
-                      char rname[1000];
-                      vfclose (fp);
-                      fp=vfopen (profile_list[a], "r");
-
-                      while ( (z=fgetc(fp))!=EOF)
-                        {
-                          ungetc(z, fp);
-                          fscanf (fp, "%s\n", rname);
-                          if ( check_file_exists(rname))sprintf ( list_file[n_list++], "R%s", rname);
-                        }
-                      vfclose (fp);
-                    }
-                  else if (format_is_conc_aln (profile_list[a]))
-                    {
-                      Alignment *P;
-                      char *cname;
-
-                      P=input_conc_aln (profile_list[a],NULL);
-                      while (P)
-                        {
-                          cname=vtmpnam (NULL);
-                          output_fasta_aln (cname, P);
-                          P=P->A;
-                          sprintf ( list_file[n_list++], "R%s",cname);
-                        }
-                      free_aln (P);
-                    }
-
-                  else
-                    {
-                      sprintf ( list_file[n_list++], "R%s",profile_list[a]);
-                    }
-                }
-              /*Introduce the sequences from the -seq flag*/
-              for (a=0; a<n_seq_list; a++)
-                {
-                  if (check_file_exists(seq_list[a]))
-                    sprintf (list_file[n_list++], "S%s",seq_list[a]);
-                  else if ( check_file_exists (seq_list[a]+1))
-                    sprintf (list_file[n_list++], "%s",seq_list[a]);
-                }
-              /*introduce the alignments from the -aln flag*/
-              //Importnat: Must be introduced AFTER the profiles
-              for (a=0; a<n_aln_file_list; a++)
-                {
-                  sprintf (list_file[n_list++], "A%s",aln_file_list[a]);
-                }
-              /*introduce the alignments from the -method flag*/
-              for (a=0; a<n_method_list; a++)
-                {
-                  sprintf (list_file[n_list++], "M%s",method_list[a]);
-                }
-              /*introduce the alignments from the -library flag*/
-              for (a=0; a<n_lib_file_list; a++)
-                {
-                  sprintf (list_file[n_list++], "L%s",lib_file_list[a]);
-                }
-              /*introduce sequences from the exon_boundaries flag flag*/
-              if ( exon_boundaries && exon_boundaries[0] && check_file_exists (exon_boundaries))
-                {
-                  Sequence *ExS;
-                  Alignment *ExA;
-                  char *tmpf;
-                  //make sure boundaries do not get into the sequences*/
-
-                  ExS=main_read_seq (exon_boundaries);
-                  ExS=seq2clean_seq (ExS, "BOJboj");
-                  main_output_fasta_seq (tmpf=vtmpnam (NULL),ExA=seq2aln (ExS,NULL,RM_GAP), NO_HEADER);
-                  sprintf (list_file[n_list++], "S%s",tmpf);
-                  free_sequence (ExS, ExS->nseq);
-                  free_aln (ExA);
-                }
-              /*FETCH THE STRUCTURES INTRODUCED WITH -pdb and add them to -in*/
-              if ( n_pdb)
-                {
-                  for ( a=0; a< n_pdb; a++)
-                    {
-                      if ( is_number (pdb_list[a]));
-                      else
-                        {
-                        pdb_start=pdb_end=0;
-                        if ( a+1< n_pdb && is_number (pdb_list[a+1]))pdb_start=atoi (pdb_list[a+1]);
-                        if ( a+2< n_pdb && is_number (pdb_list[a+2]))pdb_end=atoi (pdb_list[a+2]);
-
-                        pdb_name=get_pdb_struc ( pdb_list[a],pdb_start, pdb_end);
-                        if (pdb_name){sprintf (list_file[n_list++], "P%s", pdb_name);}
-                        /*Warning: do not free pdb_name: it is statically allocated by get_pdb_struc*/
-                        }
-                    }
-                }
-
-              /*Check That Enough Methods/Libraries/Alignments Have been Chiped in*/
-
-              if (list_file)
-                {
-                  int *nn;
-                  nn=vcalloc ( 256, sizeof (int));
-                  for (a=0; a<n_list; a++)
-                    {
-                      if ( !check_file_exists(list_file[a]))nn[(int)list_file[a][0]]++;
-                      else
-                        {
-                          if (is_seq (list_file[a]))nn['S']++;
-                          else if ( is_aln (list_file[a]))nn['A']++;
-                          else if ( is_lib (list_file[a]))nn['L']++;
-                          else if ( is_method (list_file[a]))nn['M']++;
-                          else
-                            add_warning (stderr, "\nWARNING: File %s was not properly tagged. Potential ambiguity\n",list_file[a]);
-                        }
-                    }
-
-
-                  if ( (nn['A']+nn['L']+nn['M'])==0)
-                    {
-                      sprintf ( list_file[n_list++], "Mproba_pair"); //new default
-                      //sprintf ( list_file[n_list++], "Mlalign_id_pair");
-                      //sprintf ( list_file[n_list++], "Mslow_pair");
-                    }
-                  vfree (nn);
-                }
-
-/*FILL THE F STRUCTURE (Contains Information for Output names For the defaults)*/
-              if (n_list==0 || argc<=1)
-                {
-                  fprintf ( stderr, "\nERROR: You have NOT provided enough arguments [FATAL:%s]", PROGRAM);
-                  myexit (EXIT_FAILURE);
-                }
-
-
-              else if ( argv[1][0]!='-' && (check_file_exists( argv[1]) || check_file_exists(argv[1]+1)))
-                {
-                  if (check_file_exists(argv[1]))F=parse_fname(argv[1]);
-                  else if ( check_file_exists(argv[1]+1))F=parse_fname(argv[1]+1);
-
-                }
-              else if (infile[0])
-                {
-
-                  if ( check_file_exists (infile))F=parse_fname(infile);
-                  else if (check_file_exists (infile+1))F =parse_fname(infile+1);
-                }
-              else if ( exon_boundaries && exon_boundaries[0])
-                {
-                  if ( check_file_exists (exon_boundaries))F=parse_fname(exon_boundaries);
-                  else if (check_file_exists (exon_boundaries+1))F =parse_fname(exon_boundaries+1);
-                }
-              else
-                 {
-
-                 for ( a=0; a< n_list; a++)
-                     {
-                       if (!is_method(list_file[a]))
-                         {
-
-
-                            if ( check_file_exists( list_file[a])){F=parse_fname(list_file[a]);break;}
-                            else if ( is_in_set ( list_file[a][0], "ASLX") && check_file_exists( list_file[a]+1)){F=parse_fname(list_file[a]+1);break;}
-                            else if ( is_in_set ( list_file[a][0], "R") && check_file_exists( list_file[a]+1))
-                              {
-                                char lname[100];
-                                F=parse_fname(list_file[a]+1);
-                                sprintf ( lname, "%s_1", F->name);
-                                sprintf ( F->name, "%s", lname);
-                                break;
-                              }
-
-                            else if ( is_in_set ( list_file[a][0], "P") && is_pdb_struc (list_file[a]+1))
-                              {
-                                F=parse_fname(is_pdb_struc (list_file[a]+1));break;
-
-                              }
-                         }
-                     }
-
-                 }
-
-
-              /*Get Structures*/
-              for ( a=0; a< n_list; a++)
-                {
-                  if ( list_file[a][0]=='P' && !check_file_exists(list_file[a]))
-                    {
-                      char buf[1000];
-                      sprintf(buf, "%s", list_file[a]+1);
-                      sprintf(list_file[a], "P%s",is_pdb_struc (buf));
-                    }
-                }
-
-              /*FATAL: NO SEQUENCES*/
-              if (!F)
-                {
-                  myexit (fprintf_error(stderr,"You have not provided any sequence"));
-                }
-              if (run_name)F=parse_fname(run_name);
-              else F->path[0]='\0';
-
-
-              identify_list_format      (list_file, n_list);
-
-
-              fprintf (le, "\nINPUT FILES\n");
-              for ( a=0; a< n_list; a++)
-                  {
-                    fprintf (le, "\tInput File (%c) %s ",list_file[a][0],list_file[a]+1);
-                    if ( list_file[a][0]=='A' || list_file[a][0]=='S' || list_file[a][0]=='P'|| list_file[a][0]=='R' )
-                      {
-                        fprintf (le, " Format %s\n", f=identify_seq_format ( list_file[a]+1));
-
-                        if (!f || f[0]=='\0')
-                          {
-                            myexit (fprintf_error(stderr,"The format of %s is not supported", list_file[a]+1));
-                                    
-                          }
-                        vfree (f);
-                      }
-                    else fprintf (le, "\n");
-                  }
-
-
-/*CONVERT, ALIGN OR EVALUATE: CHOSE THE RIGHT VERB*/
-              /*Set the Hierarchy of the verbs*/
-              /*The first one decides...*/
-
-
-              do_list=vcalloc ( 100, sizeof (int*));
-              n_do=0;
-              do_list[n_do++]=&do_genepred;
-              do_list[n_do++]=&do_extended_matrix;
-              do_list[n_do++]=&do_convert;
-              do_list[n_do++]=&do_evaluate;
-              do_list[n_do++]=&do_domain;
-              do_list[n_do++]=&do_align;
-
-
-              for ( a=0; a< n_do; a++)
-                {
-                if ( do_list[a][0])
-                  {
-                  for ( b=0; b< n_do; b++)if ( b!=a)do_list[b][0]=0;
-                  break;
-                  }
-                }
-
-
-
-/*SET THE DEFAULT NAMES*/
-              if ( do_convert)
-                  {
-                    if ( strm (tree_file, "default"))sprintf ( tree_file, "no");
-                  }
-
-
-
-              if (  do_evaluate)
-                  {
-                  sprintf ( out_lib, "no");
-                  sprintf ( tree_file, "no");
-                  clean_aln=0;
-                  }
-              if (do_genepred)
-                {
-                  sprintf ( tree_file, "no");
-                  clean_aln=0;
-                }
-
-              if ( F && strm ( tree_file, "default"))sprintf ( tree_file ,"%s%s.dnd",F->path     ,F->name);
-              if ( F && strm ( ph_tree_file, "default"))sprintf ( ph_tree_file ,"%s%s.ph",F->path     ,F->name);
-
-              for (a=0; a< n_out_aln_format; a++)
-                {
-                  if (is_out_format_list (out_aln_format[a]));
-                  else
-                    {
-                      fprintf (stderr, "\n%s is not a valid format [FATAL:%s]\n", out_aln_format[a], PROGRAM);
-                      myexit (EXIT_FAILURE);
-                    }
-                }
-
-              for (a=0; a<n_out_aln_format; a++)
-                {
-                  out_aln_format[a]=format_name2aln_format_name(out_aln_format[a]);
-                }
-
-              if ( F && strm ( out_aln  , "default"))
-                 {
-                 for (a=0; a< n_out_aln_format; a++)
-                   {
-
-                     sprintf ( tot_out_aln[a]   ,"%s%s.%s"      ,F->path,F->name,out_aln_format[a]);
-                   }
-                 }
-              else
-                 {
-                   sprintf ( tot_out_aln[0], "%s", out_aln);
-                   for (a=1; a< n_out_aln_format; a++)
-                     sprintf ( tot_out_aln[a]   ,"%s%s.%s", F->path  ,out_aln, out_aln_format[a]);
-                 }
-
-
-
-              if ( F && strm ( out_lib  , "default"))sprintf ( out_lib   ,"%s%s.tc_lib",F->path     , F->name);
-
-              if ( type && type[0])
-                 {
-                     if (strm2 (type,"Protein", "protein"))sprintf ( type, "PROTEIN");
-                     if (strm2 (type,"DNA", "dna"))sprintf ( type, "DNA");
-                     if (strm2 (type,"RNA", "rna"))sprintf ( type, "RNA");
-
-                 }
-
-
-              if (   !use_tree && check_file_exists (tree_file))vremove (tree_file);
-              else if ( !use_tree || (use_tree && strm (use_tree, "default")));
-              else sprintf ( tree_file, "%s", use_tree);
-              
-
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           Input Sequences and Library                                               */
-/*                                                                                                     */
-/*******************************************************************************************************/
-
-              set_methods_limits (method_limits,n_method_limits,list_file, n_list, &maxnseq, &maxlen);
-              /*Set Global Values*/
-            
-
-
-/*START*/
-
-              /*1 READ THE SEQUENCES*/
-              
-              S=read_seq_in_n_list   (list_file, n_list, type,seq_source);
-              
-              if ( check_type)
-                {
-                  if (!strm (S->type, get_array_type (S->nseq, S->seq)))
-                    {
-                      fprintf ( stderr, "\nINCORRECT SEQUENCE TYPE (USE %s ONLY) [FATAL:%s]", S->type, PROGRAM);
-                      myexit (EXIT_FAILURE);
-                    }
-                }
-              
-              if (S->nseq<=1 && !do_domain)
-                {
-                  printf_exit (EXIT_FAILURE,stderr, "\nERROR: Your Dataset Contains %d Sequence. For multiple alignments you need at least 2 sequences[FATAL:%s]", S->nseq,PROGRAM);
-                }
-
-              store_seq_type (S->type);
-
-              if ( type_only==1)
-                {
-                  fprintf ( stdout, "%s", S->type);
-                  return EXIT_SUCCESS;
-                }
-              /*Translate Sequences*/
-              if ( transform && transform[0])
-                {
-                  S=transform_sequence (S, transform);
-                }
-
-              /*Abort if the sequences are too long */
-              if (maxlen!=-1 && S->max_len>maxlen)
-                 {
-                     fprintf ( stderr, "\nSEQUENCES TOO LONG [Longuest=%d][MAX=%d][FATAL:%s]\n", S->max_len,maxlen, PROGRAM);
-                     myexit (EXIT_FAILURE);
-
-                 }
-                     
-
-
-              
-              
-              /* Get the Templates*/
-              
-
-               
-                
-
-
-
-
-
-              if ( get_type)
-                {
-                  S=get_sequence_type (S);
-                  fprintf ( stdout , "%s\n", S->type);
-                  free_sequence(S, S->nseq);
-                  return 1;
-                }
-             
-
-              /*Reorder the sequences*/
-              new_order=duplicate_char (S->name, -1, -1);
-              if ( strm (inorder, "aligned"))new_order=sort_string_array   (new_order, S->nseq);
-
-              initial_order=duplicate_char (S->name, -1, -1);
-              S=reorder_seq(S,new_order,S->nseq);
-              free_char (new_order, -1);
-
-             
-
-              /*3 PREPARE THE CONSTRAINT LIST*/
-
-              CL=declare_constraint_list ( S,NULL, NULL, 0,(strm(mem_mode, "disk"))?tmpfile():NULL, NULL);
-             
-              sprintf ( CL->method_evaluate_mode, "%s", method_evaluate_mode);
-            
-              (CL->TC)->use_seqan=use_seqan;
-              CL->local_stderr=le;
-              /*set the genepred parameters*/
-              sprintf ( CL->genepred_score, "%s", genepred_score);
-              /*Estimate the distance Matrix*/
-
-              
-              if (extend_seq)extend_seqaln(CL->S,NULL);
-              CL->DM=cl2distance_matrix ( CL,NOALN,distance_matrix_mode, distance_matrix_sim_mode,1);
-              if (extend_seq)unextend_seqaln(CL->S,NULL);
-              
-
-              
-              /*one to all alignment*/
-              MASTER_SEQ=prepare_master(master_mode,S,CL, "ktup");
-              if (!blast_maxnseq)CL->o2a_byte=(CL->S)->nseq;
-              else CL->o2a_byte=blast_maxnseq;
-              
-              /*4 GET TEMPLATES*/
-                      //Intercept Master Sequences
-              
-              if (MASTER_SEQ)
-                {
-                  TEMP_SEQ=S;
-                  S=MASTER_SEQ;
-                }
-
-              if ( n_template_file)
-                {
-                  fprintf ( le, "\nLooking For Sequence Templates:\n");
-                  for ( a=0; a< n_template_file; a++)
-                    {
-                      //correct for missing extension modes
-                      if (strm (template_file_list[a],"RNA") && !strstr (extend_mode, "rna"))sprintf ( extend_mode, "rna2");
-
-
-                      fprintf ( le, "\n\tTemplate Type: [%s] Mode Or File: [%s] [Start", template_type2type_name(template_file_list[a]), template_file_list[a]);
-                      S=seq2template_seq(S, template_file_list[a], F);
-                      fprintf ( le, "]");
-
-                      if (S==NULL)
-                        {
-                          add_warning (stderr, "\nImpossible to find %s Templates\nCheck that your blast server is properly installed [See documentation][FATAL:%s]\n", template_file_list[a],PROGRAM);
-                          myexit (EXIT_FAILURE);
-                        }
-                    }
-                  
-                  if (seq2n_X_template ( S, "_*_"))
-                    {
-                      
-                      sprintf (S->template_file, "%s",seq2template_file (S, NULL));
-                    }
-                }
-              else
-                {
-                  int ptf=0;
-                  for ( a=0; a<S->nseq; a++)
-                    {
-                      if ( seq_has_template ( S, a, "_P_"))ptf=1;
-                    }
-                  if (ptf)
-                    {
-                      int j;
-                      sprintf ( S->template_file   ,"%s%s.template_file",F->path     , F->name);
-                      seq2template_file (S,S->template_file);
-                      display_output_filename ( stdout, "Template_List","fasta_seq", S->template_file, STORE);
-                    }
-                }
-
-
-              if (n_profile_template_file)
-                {
-                  fprintf ( le, "\nLooking For Profile  Templates");
-                  for ( a=0; a< n_profile_template_file; a++)
-                    {
-                      fprintf ( le, "\n\tTemplate Type: [%s] Mode Or File: [%s] [Start", template_type2type_name(profile_template_file_list[a]), profile_template_file_list[a]);
-                      S=profile_seq2template_seq(S, profile_template_file_list[a], F);
-                      fprintf ( le, "]");
-                      if (S==NULL)
-                        {
-                          add_warning(stderr, "Impossible to find %s Templates\nCheck that your blast server is properly installed [See documentation][FATAL:%s]\n",profile_template_file_list[a], PROGRAM);
-                          myexit (EXIT_FAILURE);
-                        }
-                    }
-                }
-              
-             
-
-            
-              //Release Master Sequences
-              if (MASTER_SEQ )
-                {
-                  int i;
-                  S=TEMP_SEQ;
-                  for (a=0; a< MASTER_SEQ->nseq; a++)
-                    if ((i=name_is_in_list (MASTER_SEQ->name[a], S->name, S->nseq, 100))!=-1)
-                      {
-                        S->T[i]=MASTER_SEQ->T[a];
-                      }
-                }
-              S=seq2template_seq(S, "SELF_S_",F);
-              S=seq2template_type (S);
-              
-              le=display_sequences_names   ( S, le, check_pdb_status, TEMPLATES);
-              /*4 GET TEMPLATES: DONE*/
-
-
-
-
-              if (  matrix && matrix[0])
-                {
-                  sprintf ( CL->method_matrix,"%s", matrix);
-
-                }
-              /*Set the filtering*/
-              CL->filter_lib=filter_lib;
-              /*Set the evaluation Functions*/
-              CL->profile_mode=get_profile_mode_function (profile_mode, NULL);
-              sprintf ( CL->profile_comparison, "%s", profile_comparison);
-              if ( n_struc_to_use)
-                {
-                  CL->STRUC_LIST=declare_sequence (1,1,n_struc_to_use);
-                  CL->STRUC_LIST->nseq=0;
-                  for ( a=0; a< n_struc_to_use; a++)
-                    {
-
-                      sprintf ( (CL->STRUC_LIST)->name[(CL->STRUC_LIST)->nseq++],"%s",struc_to_use[a]);
-                    }
-                }
-              sprintf (CL->align_pdb_param_file, "%s", align_pdb_param_file);
-              sprintf (CL->align_pdb_hasch_mode, "%s", align_pdb_hasch_mode);
-
-
-
-              /*Blast Parameters*/
-              (CL->Prot_Blast)->min_id=prot_min_sim;
-              (CL->Prot_Blast)->max_id=prot_max_sim;
-              (CL->Prot_Blast)->min_cov=prot_min_cov;
-              sprintf ( (CL->Prot_Blast)->blast_server, "%s", prot_blast_server);
-              sprintf ( (CL->Prot_Blast)->db, "%s", prot_db);
-
-              (CL->Pdb_Blast)->min_id=pdb_min_sim;
-
-              (CL->Pdb_Blast)->max_id=pdb_max_sim;
-              (CL->Pdb_Blast)->min_cov=pdb_min_cov;
-              sprintf ( (CL->Pdb_Blast)->blast_server, "%s", pdb_blast_server);
-              sprintf ( (CL->Pdb_Blast)->db, "%s", pdb_db);
-              CL->check_pdb_status=check_pdb_status;
-              /*split parameters */
-              CL->split=split;
-              CL->split_nseq_thres=split_nseq_thres;
-              CL->split_score_thres=split_score_thres;
-              /*Blast Parameters
-              (CL->DNA_Blast)->min_id=dna_min_sim;
-              (CL->DNA_Blast)->max_id=dna_max_sim;
-              (CL->DNA_Blast)->min_cov=dna_min_cov;
-              sprintf ( (CL->DNA_Blast)->blast_server, "%s", dna_blast_server);
-              sprintf ( (CL->DNA_Blast)->db, "%s", dna_db);
-              */
-
-              if ( method_log)
-                {
-                  if ( strm (method_log, "default"))
-                    {
-                      sprintf ( CL->method_log, "%s%s.method_log",F->path, F->name);
-                    }
-                  else if ( !strm (method_log, "no"))
-                    {
-                     sprintf ( CL->method_log, "%s", method_log);
-                    }
-                  set_string_variable ("method_log", method_log);
-                }
-
-
-              CL->lalign_n_top=lalign_n_top;
-              sprintf ( CL->multi_thread, "%s", multi_core);
-              
-              sprintf ( CL->lib_list, "%s", lib_list);
-              sprintf (CL->rna_lib, "%s", rna_lib);
-/* Important: This is where the library is compiled!!!!*/
-
-              if ((CL->S)->nseq>1 && !do_convert)
-                {
-                  CL=read_n_constraint_list (list_file,n_list,NULL, mem_mode,weight,type, le, CL, seq_source);
-                  //CL=post_process_constraint_list (CL); //needed when constraints are added, for instance the RNA modes
-                }
-              else if ( do_convert && out_lib[0])
-                {
-                  if ( infile[0])
-                    {sprintf (list_file[0], "%s", name2type_name(infile));
-                    CL=read_n_constraint_list (list_file,1,NULL, mem_mode,weight,type, le, CL, seq_source);
-                    }
-                  else
-                    {
-                    CL=read_n_constraint_list (list_file,n_list,NULL, mem_mode,weight,type, le, CL, seq_source);
-                    }
-                }
-              if ( CL->M)clean_aln=0;
-
-              if ( is_number (weight))set_weight4constraint_list (CL, atoi(weight));
-              
-              free_pair_wise ();//Free ststic memory allocated in some of the pairwise functions
-
-
-              //Shrink: re-run slow_pair using the library, remove everything
-
-
-              /*If the List is empty*/
-              if ( (CL->S)->nseq>1 && CL->ne==0 && !CL->M &&!(do_convert && n_list>0))
-                {
-                  fprintf ( stderr, "\n******************ERROR*****************************************\n");
-
-                  fprintf ( stderr, "\nYou have not provided any method or enough Sequences[FATAL]");
-                  fprintf ( stderr, "\nIf you have used the '-in' Flag, ADD the methods you wish to use:");
-                  fprintf ( stderr, "\n\t-in <your sequences> Mlalign_id_pair Mfast_pair\n");
-                  fprintf ( stderr, "\nAnd make sure you provide at least TWO sequences\n");
-                  for ( a=0; a< argc; a++)fprintf ( stderr, "%s ", argv[a]);
-                  fprintf ( stderr, "\n*****************************************************************\n");
-                  myexit(EXIT_FAILURE);
-                }
-
-
-              CL->normalise=do_normalise;
-
-              if ( type && type[0])sprintf ( (CL->S)->type, "%s", type);
-              CL->extend_jit=(do_extend>0)?1:0;
-
-              CL->extend_threshold=(do_extend==1)?0:do_extend;
-              CL->do_self=do_self;
-              sprintf (CL->extend_clean_mode,   "%s", clean_mode);
-              sprintf (CL->extend_compact_mode, "%s", compact_mode);
-              if ( CL->extend_jit && CL->extend_threshold !=0)filter_constraint_list (CL,WE,CL->extend_threshold);
-              CL->pw_parameters_set=1;
-              
-              
-
-              CL->nomatch=nomatch;
-              set_int_variable ("nomatch", nomatch);
-              /*Gep and Gop*/
-              if ( !gep &&  !gop && CL->M)
-                  {
-                   CL->gop=get_avg_matrix_mm ( CL->M, (strm3((CL->S)->type,"PROTEIN", "Protein", "protein")?AA_ALPHABET:"gcuta"))*10;
-                   CL->gep=CL->gop/10;
-                   fprintf ( CL->local_stderr, "\nAUTOMATIC PENALTIES: gapopen=%d gapext=%d", CL->gop, CL->gep);
-                  }
-              else if ( !CL->M && cosmetic_penalty && !gep && !gop)
-                  {
-                   CL->gep=0;
-                   CL->gop=cosmetic_penalty;
-                  }
-              else
-                  {
-                    CL->gep=gep;
-                    CL->gop=gop;
-                    fprintf ( CL->local_stderr, "\nMANUAL PENALTIES: gapopen=%d gapext=%d", CL->gop, CL->gep);
-                  }
-
-              /*Frame Penalties*/
-              CL->f_gep=f_gep;
-              CL->f_gop=f_gop;
-
-
-              CL->maximise=maximise;
-
-              if (strm(retrieve_seq_type(),"DNA")|| strm(retrieve_seq_type(),"RNA") )
-                  CL->ktup=MAX(2,ktup);
-              else
-                  CL->ktup=ktup;
-
-              CL->use_fragments=diag_mode;
-              CL->fasta_step=fasta_step;
-              CL->diagonal_threshold=diag_threshold;
-
-              sprintf ( CL->matrix_for_aa_group, "%s", sim_matrix);
-              sprintf ( CL->dp_mode, "%s", dp_mode);
-              CL->TG_MODE=tg_mode;
-
-              sprintf ( CL->evaluate_mode, "%s", evaluate_mode);
-              fprintf (le, "\n\n\tLibrary Total Size: [%d]\n", CL->ne);
-
-
-              CL=choose_extension_mode (extend_mode, CL);
-              CL->max_n_pair=max_n_pair;
-
-              processed_lib=0;
-              //use the L, vener touch it again
-              
-
-             if (CL->ne>0 && out_lib[0]!='\0' && !strm (out_lib, "no"))
-                {
-
-                  if (strstr (out_lib_mode, "extended"))
-                    {
-                      char emode[1000];
-
-                      //Do the processing before saving the extended lib*/
-                      processed_lib=1;
-                      if ( filter_lib) CL=filter_constraint_list (CL,CL->weight_field, filter_lib);
-                      for (a=0; a<relax_lib; a++)CL=relax_constraint_list (CL);
-                      for (a=0; a<shrink_lib; a++)CL=shrink_constraint_list (CL);
-                      sprintf ( emode, "lib_%s", out_lib_mode);
-                      
-                      OUT=vfopen (out_lib, "w");
-                      OUT=save_extended_constraint_list(CL,emode,OUT);
-                    }
-                  else
-                    {
-                      OUT=save_constraint_list ( CL, 0, CL->ne, out_lib, NULL, "ascii",CL->S);
-                    }
-                  vfclose (OUT);
-                  CL->local_stderr=display_output_filename (le, "TCLIB","tc_lib_format_01",out_lib, CHECK);
-                }
-
-             
-             if ( lib_only)return EXIT_SUCCESS;
-
-             //fprintf ( stderr, "AVG LINK: %3f", constraint_list2connectivity (CL); exit (0);
-             if (!processed_lib)
-               {
-                 if ( filter_lib) CL=filter_constraint_list (CL,CL->weight_field, filter_lib);
-                 if (atoigetenv ("EXTEND4TC")==1)CL=extend_constraint_list(CL);
-                 for (a=0; a<relax_lib; a++)CL=relax_constraint_list (CL);
-                 for (a=0; a<shrink_lib; a++)CL=shrink_constraint_list (CL);
-               }
-             
-             CL=evaluate_constraint_list_reference (CL);
-             sprintf ( CL->distance_matrix_mode, "%s", distance_matrix_mode);
-             sprintf ( CL->distance_matrix_sim_mode, "%s", distance_matrix_sim_mode);
-             
-             sprintf ( CL->tree_mode, "%s", tree_mode);
-             //Re-estimate the distance matrix with consistency//
-              if ( strm ("cscore", distance_matrix_mode))
-                {
-                  CL->DM=cl2distance_matrix ( CL,NOALN,distance_matrix_mode, distance_matrix_sim_mode,1);
-                }
-             /*WEIGHT CONSTRAINT LIST*/
-
-             if ( !do_convert)
-               {
-
-                 CL->DM=cl2distance_matrix (CL, NOALN, NULL, NULL,0);
-
-                 CL=weight_constraint_list(CL, seq_weight);
-                 
-                 if (output_seq_weights (CL->W, outseqweight))
-                   CL->local_stderr=display_output_filename( CL->local_stderr,"WEIGHT","tc_weight",outseqweight, CHECK);
-                 le=display_weights(CL->W, le);
-               }
-
-
-
-             /*Prepare quadruplets*/
-             if ( nseq_for_quadruplet && !strm(seq_name_for_quadruplet[0], "all"))
-               {
-                 CL->nseq_for_quadruplet=nseq_for_quadruplet;
-                 CL->seq_for_quadruplet=vcalloc ((CL->S)->nseq, sizeof (int));
-                 for (a=0; a< CL->nseq_for_quadruplet; a++)
-                   {
-                     printf ( "\nquad: %s", seq_name_for_quadruplet[a]);
-                     if ( (b=name_is_in_list (seq_name_for_quadruplet[a],(CL->S)->name,(CL->S)->nseq, 100))!=-1)CL->seq_for_quadruplet[b]=1;
-                     else add_warning ( stderr, "\nWARNING: Sequence %s is not in the set and cannot be used for quadruplet extension\n",seq_name_for_quadruplet[a]);
-                   }
-               }
-             else if ( nseq_for_quadruplet && strm(seq_name_for_quadruplet[0], "all"))
-               {
-
-                 CL->nseq_for_quadruplet=(CL->S)->nseq;
-                 CL->seq_for_quadruplet=vcalloc ((CL->S)->nseq, sizeof (int));
-                 for (a=0; a< CL->nseq_for_quadruplet; a++)
-                   {
-                     CL->seq_for_quadruplet[a]=1;
-                   }
-               }
-
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           Prepare The Alignment                                                     */
-/*                                                                                                     */
-/*******************************************************************************************************/
-
-             if ( do_align )
-                  {
-
-
-                  A=seq2aln  ((CL->S),NULL,1);
-                  ungap_array(A->seq_al,A->nseq);
-
-                  /*Chose the right Mode for evaluating Columns*/
-
-                  if ( A->nseq==1);
-                  else if ( strm ( msa_mode, "seq_aln"))
-                    {
-                      A=seq_aln (A,(CL->S)->nseq, CL);
-                    }
-                  else if ( strm ( msa_mode, "sorted_aln"))
-                    {
-                      A=sorted_aln (A, CL);
-                    }
-                  else if ( strm ( msa_mode, "full_sorted_aln"))
-                    {
-                      full_sorted_aln (A, CL);
-                      output_constraints (out_lib, "sim", A);
-                      CL->local_stderr=display_output_filename (le, "TCLIB","tc_lib_format_01",out_lib, CHECK);
-                      return EXIT_SUCCESS;
-                    }
-
-                  else if ( strm ( msa_mode, "profile_aln"))
-                    {
-                      A=iterative_tree_aln (A, 0, CL);
-                      A=profile_aln (A, CL);
-                    }
-                  else if ( strm ( msa_mode, "iterative_aln"))
-                    {
-                      A=iterative_tree_aln (A, 0, CL);
-                      A=iterative_aln (A,10, CL);
-                    }
-                   else if ( strm ( msa_mode, "iterative_tree_aln"))
-                    {
-                      A=iterative_tree_aln (A,1, CL);
-                    }
-                   else if ( strm ( msa_mode, "dpa_aln"))
-                     {
-                       A=dpa_aln (A, CL);
-                     }
-                   else if ( strm ( msa_mode, "new_dpa_aln"))
-                     {
-                       A=new_dpa_aln (A, CL);
-                     }
-                   else if ( strm ( msa_mode, "delayed_tree_aln"))
-                    {
-                      A=make_delayed_tree_aln (A,2, CL);
-                    }
-                  else if ( strm ( msa_mode, "groups"))
-                    {
-                      A=seq2aln_group (A,dpa_maxnseq, CL);
-                      out_aln_format[0]="conc_aln";
-                      n_out_aln_format=1;
-                    }
-                  else if ( strm ( msa_mode, "upgma"))
-                    {
-                      A=upgma_tree_aln (A, A->nseq, CL);
-                    }
-                  else if ( strm ( msa_mode, "graph"))
-                       {
-                         fprintf ( stderr, "\nDO GRAPH ALIGNMENT");
-                         A=graph_aln ( A, CL, (CL->S));
-                       }
-                  else if ( strm ( msa_mode, "tsp"))
-                       {
-                         fprintf ( stderr, "\nDO TSP ALIGNMENT");
-                         A=tsp_aln ( A, CL, (CL->S));
-                       }
-                  else if ( strm ( msa_mode, "precomputed"))
-                    {
-                      if (infile[0]) {free_aln (A);A=main_read_aln ( infile, declare_aln(CL->S));}
-                      else{fprintf ( stderr, "\nERROR: distance_matrix_mode=aln requires an aln passed via the -infile flag [FATAL:%s]", PROGRAM);crash ("");}
-
-                      sprintf ( CL->dp_mode, "precomputed_pair_wise");
-                      sprintf ( CL->distance_matrix_mode, "aln");
-                      CL->tree_aln=A=reorder_aln ( A, (CL->S)->name,(CL->S)->nseq);
-
-                      pc=tree_file;
-                      if ( strm (tree_file, "default") || !check_file_exists (tree_file))
-                        T=make_tree ( A,CL,gop, gep,(CL->S),pc, maximise);
-                      else if ( strm (tree_file, "no"))
-                        T=make_tree ( A,CL,gop, gep,(CL->S),NULL, maximise);
-                      else
-                        {
-                          T=read_tree (pc,&tot_node,(CL->S)->nseq,  (CL->S)->name);
-                        }
-
-                      SNL=tree_aln ((T[3][0])->left,(T[3][0])->right,A,(CL->S)->nseq, CL);
-                    }
-                  else if ( strm ( msa_mode, "tree"))
-                    {
-                      if ( strm (CL->distance_matrix_mode, "aln"))
-                        {
-                          if (infile[0]) {free_aln (A);A=main_read_aln ( infile, declare_aln(CL->S));}
-                          else{fprintf ( stderr, "\nERROR: distance_matrix_mode=aln requires an aln passed via the -infile flag [FATAL:%s]", PROGRAM);crash ("");}
-                          CL->tree_aln=A;
-                        }
-                      pc=tree_file;
-                      if ( strm (tree_file, "default") || !check_file_exists (tree_file))
-                        T=make_tree ( A,CL,gop, gep,(CL->S),pc,maximise);
-                      else if ( strm (tree_file, "no"))
-                        T=make_tree ( A,CL,gop, gep,(CL->S),NULL, maximise);
-                      else
-                        {
-                          fprintf ( le, "\nREAD PRECOMPUTED TREE: %s\n", pc);
-                          T=read_tree (pc,&tot_node,(CL->S)->nseq,  (CL->S)->name);
-                        }
-                      SNL=tree_aln ((T[3][0])->left,(T[3][0])->right,A,(CL->S)->nseq, CL);
-                      A->nseq=(CL->S)->nseq;
-                    }
-
-                  else
-                    {
-                      fprintf ( stderr, "\nERROR: msa_mode %s is unknown [%s:FATAL]\n", msa_mode, PROGRAM);
-                      crash ("");
-                    }
-
-                  }
-              else if ( (do_evaluate || do_convert))
-                  {
-
-
-                  A=(infile[0])?main_read_aln ( infile, declare_aln(CL->S)):NULL;
-
-                  if (!A)A=seq2aln((CL->S), NULL,0);
-
-
-                  A->S=CL->S;
-                  A->nseq=(CL->S)->nseq;
-
-
-                  }
-              else if ( do_genepred)
-                {
-                  Alignment *A1, *A2;
-                  A1=seq2aln(CL->S, NULL, 1);
-                  A1->S=CL->S;
-                  A2=coffee_seq_evaluate_output (A1, CL);
-                  if (!A2->score_res)myexit(0);
-                  for ( b=0; b< n_out_aln_format; b++)
-                    {
-                      Alignment *OUT;
-
-                      OUT=copy_aln (A2,NULL);
-                      output_format_aln (out_aln_format[b],OUT,NULL, tot_out_aln[b]);
-                      le=display_output_filename( le,"MSA",out_aln_format[b], tot_out_aln[b], CHECK);
-                      free_aln (OUT);
-                    }
-                  return EXIT_SUCCESS;
-                }
-
-             else if (do_domain)
-                  {
-                    CL->moca=vcalloc ( 1, sizeof ( Moca));
-                    if (strm ( "cfasta_pair_wise", dp_mode))sprintf (CL->dp_mode, "%s","domain_pair_wise");
-                    (CL->moca)->moca_start=domain_start;
-                    (CL->moca)->moca_len  =domain_len;
-                    (CL->moca)->moca_scale=(domain_scale==0)?-(CL->normalise/20):domain_scale;
-                    (CL->moca)->moca_interactive=domain_interactive;
-
-
-
-                    if (!cosmetic_penalty && !gep && !gop)
-                      {
-                        CL->gop=-200;
-                        CL->gep=-100;
-                      }
-
-                    CL=prepare_cl_for_moca (CL);
-                    aln_list=moca_aln (CL);
-                    free_int ( CL->packed_seq_lu, -1);
-                    CL->packed_seq_lu=NULL;
-
-                    a=0;
-                    while ( aln_list[a])
-                      {
-                      for ( b=0; b< n_out_aln_format; b++)
-                         {
-
-                           output_format_aln (out_aln_format[b],aln_list[a],EA=fast_coffee_evaluate_output(aln_list[a], CL), tot_out_aln[b]);
-                           le=display_output_filename( le,"MSA",out_aln_format[b], tot_out_aln[b], CHECK);
-                         }
-                      a++;
-                      }
-                  return EXIT_SUCCESS;
-                  }
-             else if ( do_extended_matrix)
-               {
-                 A=seq2aln(CL->S, NULL, 1);
-                 A->CL=CL;
-                 for ( a=0; a< n_out_aln_format; a++)
-                   {
-                     output_format_aln (out_aln_format[a],A,EA, tot_out_aln[a]);
-                     le=display_output_filename( le,"MSA",out_aln_format[a], tot_out_aln[a], CHECK);
-                   }
-
-                 return EXIT_SUCCESS;
-               }
-
-
-/*******************************************************************************************************/
-/*                                                                                                     */
-/*                           PREPARE THE ALIGNMENT FOR OUTPUT                                          */
-/*                                                                                                     */
-/*******************************************************************************************************/
-
-             if (A)
-                 {
-                   /*
-                   for ( a=0; a< A->nseq; a++)
-                     {
-                          for ( b=0; b< A->len_aln ; b++)
-                            if ( A->seq_al[a][b]=='O' || A->seq_al[a][b]=='o')A->seq_al[a][b]='-';
-                        }
-                   */
-
-
-
-
-                   if ( check_file_exists(outorder))
-                       {
-                         Sequence *OS;
-                         OS=get_fasta_sequence (outorder, NULL);
-                         if ( prf_in_seq (CL->S))A->expanded_order=OS->name;
-                         else A=reorder_aln ( A,OS->name,A->nseq);
-                       }
-                     else if ( strm(outorder, "aligned") && T)
-                       {
-                         A=reorder_aln ( A,A->tree_order,A->nseq);
-
-                       }
-                     else
-                       {
-
-                         A=reorder_aln ( A, (CL->S)->name,(CL->S)->nseq);
-                         A=reorder_aln ( A, initial_order,(CL->S)->nseq);
-
-                       }
-
-                     A->output_res_num=strm3 ( output_res_num, "on", "On", "ON");
-                   
-                     if ( strm2 (residue_case, "keep", "retain"))A->residue_case=KEEP_CASE;
-                     else if (strm3 (residue_case, "upper", "Upper", "UPPER"))A->residue_case=UPPER_CASE;
-                     else if (strm3 (residue_case, "lower", "Lower", "LOWER"))A->residue_case=LOWER_CASE;
-                     else A->residue_case=1;
-
-
-
-
-
-
-                     if ( iterate)
-                       {
-                         A=iterate_aln (A, iterate, CL);
-                         A=ungap_aln(A);
-                       }
-
-                     if ( clean_aln)
-                       {
-                         EA=main_coffee_evaluate_output(A, CL,clean_evaluate_mode);
-                         A=clean_maln(A, EA,clean_threshold,clean_iteration);
-                         free_aln (EA);
-                         A=ungap_aln(A);
-                       }
-
-                     //overaln
-                     if (clean_overaln)
-                       {
-                         char *over_aln_tmp;
-                         over_aln_tmp=vtmpnam(NULL);
-                         output_format_aln ("overaln", A, NULL, over_aln_tmp);
-                         A=main_read_aln (over_aln_tmp,A);
-                       }
-
-                     EA=main_coffee_evaluate_output(A, CL, evaluate_mode);
-                     
-                     //correct ascii file
-                     if (clean_overaln)
-                       {
-                         EA=overlay_alignment_evaluation (A,EA);
-                       }
-
-
-                     if (A->A)A=A->A;
-                     if (!strm2(out_aln, "stdout", "stderr") && le==stderr && !do_convert)output_format_aln ("aln",A,NULL,"stdout");
-
-
-                     A->CL=CL;
-                     for ( a=0; a< n_out_aln_format; a++)
-                       if ( !strstr ( out_aln_format[a], "expand"))output_format_aln (out_aln_format[a],A,EA, tot_out_aln[a]);
-                     for ( a=0; a< n_out_aln_format; a++)
-                       if ( strstr (out_aln_format[a], "expand"))output_format_aln (out_aln_format[a],A,EA, tot_out_aln[a]);
-
-
-
-                     fprintf (le, "\n\nOUTPUT RESULTS");
-                     if ((CL->S)->nseq>2)
-                       le=display_output_filename (le, "GUIDE_TREE","newick", tree_file, CHECK);
-                     
-                     for ( a=0; a< n_out_aln_format; a++)
-                       le=display_output_filename( le,"MSA",out_aln_format[a], tot_out_aln[a], CHECK);
-                     if (CL->ne>0 && out_lib[0]!='\0' && !strm (out_lib, "no"))
-                       CL->local_stderr=display_output_filename (le, "TCLIB","tc_lib_format_01",out_lib, CHECK);
-
-                     if (!strm (ph_tree_file, "NO") && A->nseq>2)
-                       {
-                         NT_node T;
-                         FILE *tfp;
-                         char **tmode;
-                         tmode=declare_char (2, 100);
-                         sprintf (tmode[0], "nj");
-                         T=tree_compute (A, 1, tmode);
-                         tfp=vfopen (ph_tree_file, "w");
-                         tfp=print_tree (T, "newick", tfp);
-                         vfclose (tfp);
-                         le=display_output_filename (le, "PHYLOGENIC_TREE","newick", ph_tree_file, CHECK);
-                       }
-
-                 }
-
-             if (split)
-               {
-
-                 if (trim && n_seq_to_keep)
-                   {
-                     if (n_seq_to_keep==1 && check_file_exists (seq_to_keep[0]))
-                       {
-
-                         SEQ_TO_KEEP=read_sequences (seq_to_keep[0]);
-                       }
-                     else
-                       {
-
-                         SEQ_TO_KEEP=declare_sequence ( 1, 1,n_seq_to_keep);
-                         for ( a=0; a< n_seq_to_keep; a++)sprintf ( SEQ_TO_KEEP->name[a], "%s", seq_to_keep[a]);
-                       }
-                   }
-
-                 sprintf ( CL->dp_mode, "precomputed_pair_wise");
-                 sprintf ( CL->distance_matrix_mode, "aln");
-
-
-
-                 CL->tree_aln=A=reorder_aln ( A, (CL->S)->name,(CL->S)->nseq);
-                 CL->S=aln2seq ( A);
-
-                 if (!T)
-                   {
-
-                     pc=tree_file;
-                     if ( strm (tree_file, "default") || !check_file_exists (tree_file))
-                       T=make_tree ( A,CL,gop, gep,(CL->S),pc, maximise);
-                     else if ( strm (tree_file, "no"))
-                       T=make_tree ( A,CL,gop, gep,(CL->S),NULL, maximise);
-                     else
-                       {
-                         T=read_tree (pc,&tot_node,(CL->S)->nseq,  (CL->S)->name);
-                       }
-                   }
-
-                 SNL=tree_aln ((T[3][0])->left,(T[3][0])->right,A,(CL->S)->nseq, CL);
-
-
-                 for ( a=0, b=0; a<A->nseq; a++)b+=(SNL[a])?1:0;
-                 fprintf ( le, "\n\nSPLIT DATASET: %d Groups\n", b);
-                 /*Display Group Names*/
-
-                 if ( trim && SEQ_TO_KEEP)
-                   {
-                     for ( a=0; a< SEQ_TO_KEEP->nseq; a++)
-                       {
-
-                         trim_subS=extract_one_seq(SEQ_TO_KEEP->name[a],0,0,A,KEEP_NAME);
-                         trim_S=add_sequence (trim_subS,trim_S,0);
-                       }
-                   }
-                 for ( a=0, b=0; a<A->nseq; a++)
-                   {
-
-                     if ( SNL[a])
-                       {
-                         b++;
-                         fprintf ( le, "\n\tSPLIT_GROUP %d ; Nseq %d ; Score %d ; List ",b, (SNL[a])->nseq, (int)(SNL[a])->score);
-                         for ( c=0; c< (SNL[a])->nseq; c++)
-                           {
-                             fprintf ( le, "%s ",(CL->S)->name[(SNL[a])->lseq[c]]);
-                           }
-
-                         SPLIT_ALN=extract_sub_aln (A, (SNL[a])->nseq,(SNL[a])->lseq);
-                         SPLIT_ALN->S=A->S;
-                         ungap_aln (SPLIT_ALN);
-
-                         if (!trim)
-                           {
-                             sprintf ( split_format, "%s", "clustalw");
-                             sprintf ( split_name, "%s.split.%d.%s", F->name, b,split_format);
-                             fprintf ( le, " ; File %s",  split_name);
-                             output_format_aln (split_format,SPLIT_ALN,NULL,split_name);
-                             le=display_output_filename( le,"SPLIT_SEQ",split_format,split_name, CHECK);
-                           }
-                         else if (trim)
-                           {
-                             t=aln2most_similar_sequence(SPLIT_ALN, "idmat");
-                             trim_subS=extract_one_seq(SPLIT_ALN->name[t],0,0,SPLIT_ALN,KEEP_NAME);
-                             trim_S=add_sequence (trim_subS,trim_S,0);
-                             fprintf ( le, "\n\tTRIM_SEQ: Kept sequence %s",SPLIT_ALN->name[t]);
-                           }
-                         free_aln (SPLIT_ALN);
-                         fprintf (le, "\n");
-                       }
-                   }
-
-                 if (trim)
-                     {
-
-
-                      SPLIT_ALN=seq2aln (trim_S,NULL, KEEP_GAP);
-                      ungap_aln (SPLIT_ALN);
-                      sprintf ( trim_format, "%s", "fasta_aln");
-                      if ( strm (trimfile, "default"))sprintf ( trimfile, "%s.trim.%s", F->name,trim_format);
-
-                      output_format_aln (trim_format,SPLIT_ALN,NULL,trimfile);
-                      le=display_output_filename( le,"TRIM_SEQ",trim_format,trimfile, CHECK);
-                     }
-               }
-            
-             if (remove_template_file){S=vremove_seq_template_files(S);}
-             else
-               {
-                 S=display_seq_template_files (S);
-               }
-
-             //fLUSH OUT THE NAME OF ALL THE FILES THAT HAVE BEEN PRODUCED
-           
-             le=display_output_filename (le, NULL, NULL, NULL, FLUSH);
-
-
-             fprintf (le, "\n\n");
-
-             free_char (list_file, -1);
-             free_Alignment (A);
-             free_Alignment (EA);
-
-
-             S=free_constraint_list (CL);
-             free_sequence (S, S->nseq);
-
-
-
-             vremove ( "core");
-
-             vfree_all();
-
-             le=t_coffee_tip (le, tip);
-             le=print_command_line ( le);
-             //le=print_mem_usage (le, PROGRAM);
-             //le=print_cpu_usage(le, PROGRAM);
-             le=print_program_information (le, NULL);
-
-
-             if (full_log && full_log[0])log_function(full_log);
-
-             return EXIT_SUCCESS;
-       }
-
-/*Specialized set of Parameters*/
-char *get_defaults (char *buf, char *type)
-{
-  return NULL;
-}
-char *get_precomputed_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf," -msa_mode=precomputed ");
-     buf=strcat (buf," -seq_weight=no ");
-     buf=strcat (buf," -evaluate_mode no ");
-     buf=strcat (buf," -in Xpam250mt ");
-     return buf;
-   }
-char *get_evaluate_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf," -quiet=stdout ");
-     /*buf=strcat (buf," -seq_weight=no ");*/
-     buf=strcat (buf," -output score_ascii html ");
-     buf=strcat (buf," -iterate 0 ");
-
-     buf=strcat (buf," -evaluate ");
-
-
-
-     return buf;
-   }
-char *get_genome_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf," -seq_weight=no ");
-     buf=strcat (buf," -dp_mode sim_pair_wise_lalign ");
-     buf=strcat (buf," -output glalign ");
-     buf=strcat (buf," -iterate 0 ");
-     buf=strcat (buf," -distance_matrix_mode ktup ");
-     buf=strcat (buf," -evaluate_mode t_coffee_slow ");
-     buf=strcat (buf," -gapopen 100 -gapext 20 -nomatch 30 ");
-     buf=strcat (buf," -clean_aln 0 ");
-     buf=strcat (buf,"-output clustalw,score_ascii ");
-
-
-     return buf;
-   }
-char *get_dali_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-cosmetic_penalty=-50 ");
-     buf=strcat (buf,"-distance_matrix_mode=slow ");
-     buf=strcat (buf,"-output clustalw,score_ascii ");
-     buf=strcat (buf,"-evaluate_mode=non_extended_t_coffee ");
-     buf=strcat (buf,"-clean_aln 0 ");
-
-     return buf;
-   }
-
-char *get_very_fast_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-     
-     buf=strcat (buf,"-in Xblosum62mt ");
-     buf=strcat (buf,"-distance_matrix_mode ktup ");
-     buf=strcat (buf,"-maxnseq 10000 ");
-     buf=strcat (buf,"-dpa_maxnseq 0 ");
-     buf=strcat (buf,"-dp_mode fasta_pair_wise ");
-     buf=strcat (buf,"-extend_mode matrix ");
-     buf=strcat (buf,"-gapopen -10 ");
-     buf=strcat (buf,"-gapext -1 ");
-     buf=strcat (buf,"-iterate 0 ");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-
-char *get_low_memory_defaults(char *buf, char *type)
-   {
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     if (NO_METHODS_IN_CL)buf=strcat (buf,"-distance_matrix_mode=idscore -method lalign_id_pair slow_pair -dp_mode=linked_pair_wise ");
-     else buf=strcat (buf,"-distance_matrix_mode=idscore -dp_mode=linked_pair_wise ");
-     return buf;
-   }
-char *get_dna_defaults(char *buf, char *type)
-{
-
-  return buf;
-}
-char *get_cdna_defaults(char *buf, char *type)
-{
-  buf=strcat (buf,"-distance_matrix_mode=idscore -dp_mode=fasta_cdna_pair_wise ");
-  return buf;
-}
-char *get_3dcoffee_defaults(char *buf, char *type)
-   {
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-in Msap_pair  -template_file SELF_P_ -profile_template_file SELF_P_");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_expresso_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-method sap_pair  -template_file EXPRESSO -profile_template_file EXPRESSO");
-
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_procoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-in Mpromo_pair -extend_seq   ");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_blastr_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-in Mblastr_pair -extend_seq   ");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_psicoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-in Mproba_pair -template_file BLAST   ");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_accurate_defaults ( char *buf, char *type)
-{
-
-  if ( strm (type, "PROTEIN")) return get_accurate4PROTEIN_defaults(buf, type);
-  else if ( strm (type, "DNA")) return get_accurate4DNA_defaults(buf, type);
-  else if ( strm (type, "RNA")) return get_accurate4RNA_defaults(buf, type);
-  else return get_defaults(buf, type);
-}
-char *get_accurate4PROTEIN_defaults(char *buf, char *type)
-   {
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-     if (NO_METHODS_IN_CL)buf=strcat (buf,"-in Mbest_pair4prot -template_file BLAST -template_file EXPRESSO  ");
-     else buf=strcat (buf,"-template_file BLAST -template_file EXPRESSO  ");
-     buf=strcat (buf,"-output aln, expanded_fasta_aln ");
-
-     return buf;
-   }
-
-
-
-
-char *get_accurate4DNA_defaults(char *buf, char *type)
-{
-  return get_low_memory_defaults (buf,type);
-}
-char *get_accurate4RNA_defaults(char *buf, char *type)
-{
-  return get_rcoffee_defaults (buf,type);
-}
-char *get_t_coffee_defaults(char *buf, char *type)
-{
-  return buf;
-}
-char *get_fmcoffee_defaults(char *buf, char *type)
-   {
-     //Fast Mcoffee
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     if (NO_METHODS_IN_CL) buf=strcat (buf,"-in Mkalign_msa  Mmuscle_msa Mmafft_msa -multi_core methods_relax_msa");
-
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-
-char *get_mcoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-
-     if (NO_METHODS_IN_CL)   buf=strcat (buf,"-in Mclustalw2_msa Mt_coffee_msa Mpoa_msa Mmuscle_msa Mmafft_msa Mdialignt_msa Mpcma_msa Mprobcons_msa -multi_core methods_relax_msa  ");
-     /*buf=strcat (buf,"-in ");*/
-     return buf;
-   }
-char *get_dmcoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     if (NO_METHODS_IN_CL)buf=strcat (buf,"-in Mkalign_msa Mt_coffee_msa Mpoa_msa Mmuscle_msa Mmafft_msa Mdialignt_msa Mprobcons_msa Mamap_msa -multi_core methods_relax_msa");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_rcoffee_consan_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     check_program_is_installed (RNAPLFOLD_4_TCOFFEE,NULL, NULL,RNAPLFOLD_ADDRESS, INSTALL_OR_DIE);
-        if (NO_METHODS_IN_CL)buf=strcat (buf,"-in Mconsan_pair -multi_core templates_relax_msa -dp_mode myers_miller_pair_wise -extend_mode rna2 -template_file RCOFFEE -transform dna2rna -type DNA -relax_lib 0");
-     else buf=strcat (buf,"-dp_mode myers_miller_pair_wise -extend_mode rna2 -template_file RCOFFEE -transform dna2rna -type DNA -relax_lib 0");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_rmcoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     check_program_is_installed (RNAPLFOLD_4_TCOFFEE,NULL, NULL,RNAPLFOLD_ADDRESS, INSTALL_OR_DIE);
-     if (NO_METHODS_IN_CL)buf=strcat (buf,"-in Mprobcons_msa Mmafft_msa Mmuscle_msa -extend_mode rna2 -template_file RCOFFEE -transform dna2rna -check_type -type DNA -relax_lib 0");
-     else buf=strcat (buf,"-extend_mode rna2 -template_file RCOFFEE -transform dna2rna -check_type -type DNA -relax_lib 0");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-
-//    if (NO_METHODS_IN_CL)buf=strcat (buf,"-in Mbest_pair4prot -template_file BLAST -template_file EXPRESSO  ");
-   char *get_best4RNA_defaults(char *buf, char *type)
-   {
-
-          if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-          check_program_is_installed (RNAPLFOLD_4_TCOFFEE,NULL, NULL,RNAPLFOLD_ADDRESS, INSTALL_OR_DIE);
-          buf=strcat (buf," -extend_mode rna2 -template_file PDB,RNA -in Mbest_pair4rna -transform dna2rna -relax_lib 0");
-          /*buf=strcat (buf,"-in ");*/
-
-          return buf;
-   }
-
-char *get_rcoffee_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     check_program_is_installed (RNAPLFOLD_4_TCOFFEE,NULL, NULL,RNAPLFOLD_ADDRESS, INSTALL_OR_DIE);
-     buf=strcat (buf," -extend_mode rna2 -template_file RCOFFEE -transform dna2rna -check_type -type DNA -relax_lib 0");
-     /*buf=strcat (buf,"-in ");*/
-
-     return buf;
-   }
-char *get_genepredx_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf, "-method tblastx_msa -evaluate_mode sequences  -genepred  -relax_lib 0 -output fasta_seq,exons,texons,wexons -seq_weight no -check_type -type DNA -out_lib");
-     return buf;
-   }
-char *get_genepredpx_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf, "-method tblastpx_msa -evaluate_mode sequences  -genepred  -relax_lib 0 -output fasta_seq,exons,texons,wexons -seq_weight no -check_type -type DNA -out_lib");
-     return buf;
-   }
-
-char *get_repeat_defaults(char *buf, char *type)
-   {
-
-     if (buf==NULL)buf=vcalloc (1000, sizeof (char));
-
-     buf=strcat (buf,"-in slow_pair -matrix idmat -out_lib -profile_comparison profile -profile_mode channel_profile_profile -dp_mode myers_miller_pair_wise ");
-     /*buf=strcat (buf,"-in ");*/
-     return buf;
-   }
-
-
-int check_configuration4program()
-   {
-     return 1;
-
-   }
-
-/*Chose the right Mode for comparing residues*/
-
-void test ()
-{
-  char command[1000];
-  char *c2;
-
-  c2=vcalloc ( 100, sizeof (char));
-
-  sprintf (command, "cat hmgt_mouseVsnrl3d.blast_result |blast_aln2fasta_aln.pl | fasta_aln2fasta_aln_unique_name.pl > my_test");
-
-  fprintf ( stderr, "C1: %d, C2:%d", is_dynamic_memory (c2), is_dynamic_memory (c2));
-
-
-  myexit (0);
-}
-
-int run_other_pg ( int argc, char *argv[])
-{
-  //make minimum initialization
-  
-
-  if ( strm (argv[0], "seq_reformat") || strm (argv[0], "saltt"))
-    {
-      return seq_reformat (argc, argv);
-    }
-  else if ( strm (argv[0], "aln_compare"))
-    {
-      return aln_compare (argc, argv);
-    }
-  else if ( strm (argv[0], "analyse_pdb") || strm (argv[0], "apdb") || strm (argv[0], "irmsd") || strm (argv[0], "trmsd"))
-    {
-      return apdb ( argc, argv);
-    }
-  else if ( strm (argv[0], "quantile"))
-    {
-      return quantile ( argc, argv);
-    }
-  else if ( strstr ( argv[0], "unpack_"))
-    {
-      unpack_all_perl_script (argv[0]+strlen ("unpack_"));
-    }
-       else if ( strstr ( argv[0], "fastal"))
-       {
-               return fastal_main(argc, argv);
-       }
-  else
-    {
-      return my_system_cl (argc, argv);
-    }
-  return EXIT_FAILURE;
-}
-
-FILE * t_coffee_tip (FILE *fp,char *mode)
-{
-  static char **tip;
-  static int n;
-  int a;
-  if ( !tip)
-    {
-      tip=declare_char ( 100, 300);
-      sprintf ( tip[n++],"Get the most accurate protein alignments with: t_coffee <yourseq> -special_mode accurate [Slow]\n");
-      sprintf ( tip[n++],"Change the Width of your MSA with the environement variable ALN_LINE_LENGTH (all formats)");
-      sprintf ( tip[n++],"Align 2 or more profiles with -profiles= aln1, aln2");
-      sprintf ( tip[n++],"-special_mode=expresso to fetch your structures automatically");
-      sprintf ( tip[n++],"-special_mode=psicoffee to expand your sequences");
-      sprintf ( tip[n++],"-special_mode=accurate The best we can do [slow]");
-
-      sprintf ( tip[n++],"-special_mode=3dcoffee to combine sequences and structures");
-      sprintf ( tip[n++],"-special_mode=mcoffee to combine alternative msa methods");
-      sprintf ( tip[n++],"-special_mode=dmcoffee to combine alternative msa methods on debian");
-
-      sprintf ( tip[n++],"-usetree=<file> to use your own guide tree");
-      sprintf ( tip[n++],"-infile=<aln> -special_mode=evaluate to evaluate your own alignment");
-      sprintf ( tip[n++],"-other_pg seq_reformat to access seq_reformat");
-      sprintf ( tip[n++],"-other_pg extract_from_pdb to use our pdb retriever");
-      sprintf ( tip[n++],"All the latest versions on www.tcoffee.org");
-      sprintf ( tip[n++],"-version to check for updates");
-      sprintf ( tip[n++],"-output=html will produce a colored output");
-      sprintf ( tip[n++],"-outorder=aligned will order the sequences according to the guide tree in newick");
-      sprintf ( tip[n++],"-special_mode=quickaln will produce fast/low accuracy alignments");
-      sprintf ( tip[n++],"-other_pg seq_reformat -in <aln> -action +trim %%50 Will reduce the redundancy of your MSA");
-      sprintf ( tip[n++],"-tip=all to see all the tips, tip=no will prevent them all");
-      sprintf ( tip[n++],"-other_pg unpack_all will unpack all the perl scripts within t_coffee");
-    }
-
-  if ( strm (mode, "none"))return fp;
-  
-  fprintf ( fp, "\n# TIP :See The Full Documentation on www.tcoffee.org\n");
-
-  if (strm ( mode, "all"))
-    {
-      for ( a=0; a< n; a++)
-       {
-         fprintf (fp, "# TIP %d: %s\n", a+1,tip[a]);
-       }
-    }
-  else if ( strm ( mode, "one"))
-    {
-      int b;
-      vsrand(0);
-      b=(rand()%(n-1))+1;
-      fprintf (fp, "# TIP %2s:  %s","1", tip[0]);
-      fprintf (fp, "# TIP %2d:  %s\n", b+1, tip[b]);
-
-    }
-
-  fprintf ( fp, "\n");
-  return fp;
-}
-
-
-
-Sequence* prepare_master (char *seq, Sequence *S, Constraint_list *CL, char *dmode)
- {
-   int a,b,s1, n, i;
-   FILE *fp;
-   
-   CL->master=vcalloc (S->nseq+1, sizeof(int));
-   
-   if ( S->nseq==2 || strm (seq, "no") || strm (seq, "default")) 
-     {
-       for (a=0; a<S->nseq; a++)CL->master[a]=1;
-       return NULL;
-     }
-   else if ( check_file_exists (seq))
-     {
-       Sequence *L;
-       L=main_read_seq (seq);
-       for (a=0; a< L->nseq; a++)
-        if ( (b=name_is_in_list (L->name[a], S->name,S->nseq, 100))!=-1)CL->master[b]=1;
-     }
-   else
-     {
-       
-       if ( strstr (seq, "_P_"))
-        {
-          for (a=0; a<S->nseq; a++)
-            {
-              if (seq_has_template (S, a, "_P_"))CL->master[a]=1;
-            }
-        }
-       if ( is_number (seq) || strstr (seq, "_N_"))
-        {
-          int nseq;
-          char **name;
-          Alignment *A=NULL, *SA=NULL;
-          if ( strstr (seq, "_N_")){nseq=atoi (strstr(seq, "_N_")+strlen ("_N_"));}
-          else nseq=atoi (seq);
-          if ( nseq<0)
-            nseq=((float)S->nseq*((float)nseq/(float)100.0)*(float)-1);
-          
-          nseq=MIN(nseq,S->nseq);
-          if ( nseq>=S->nseq)
-            {
-              for (a=0; a<(CL->S)->nseq; a++)CL->master[a]=1;
-            }
-          else
-            {
-              
-              char tmode[1000];
-              int **sim;
-              
-              A=(strm (dmode, "msa"))?(very_fast_aln (seq2aln (S, NULL, RM_GAP), 0, NULL)):(seq2aln (S, NULL, RM_GAP));
-              sim=(strm (dmode, "ktup") && CL->DM)?(CL->DM)->similarity_matrix:NULL;
-              
-              sprintf (tmode, "_aln_n%d", nseq);
-              SA=simple_trimseq (A, NULL, tmode, NULL, NULL);
-              nseq=SA->nseq;
-              name=SA->name;
-              for (a=0; a<nseq;a++)
-                {
-                  if (nseq==(CL->S)->nseq)CL->master[a]=1;
-                  else if ((b=name_is_in_list (name[a], S->name,S->nseq, 100))!=-1)CL->master[b]=1;
-                }
-              free_aln (A);
-              free_aln (SA);
-            }
-        }
-       if ( strstr (seq, "_LONG_"))
-        {
-          int ml=0;
-          int ls=0;
-          for (a=0; a< (CL->S)->nseq; a++)
-            {
-              int l=strlen ((CL->S)->seq[a]);
-              if (l>ml){ml=l;ls=a;}
-            }
-          CL->master[ls]=1; //keep the longest seqquence
-        }
-     }
-  
-   
-   fprintf ( CL->local_stderr, "\n");
-   for (b=0,a=0; a<S->nseq; a++)
-     {
-       if ( CL->master[a])
-        {
-          fprintf (CL->local_stderr, "\tMaster_sequence: %s\n", S->name[a]);
-          b++;
-        }
-     }
-   if ( b==0)
-     {
-       printf_exit (EXIT_FAILURE, stderr, "ERROR: %s is neither a file nor a method nor a number for -master [FATAL:%s]\n",seq,PROGRAM);
-     }
-   if (b!=(CL->S)->nseq)
-     {
-       Sequence *T, *MS;
-       T=duplicate_sequence (CL->S);
-       for(a=0; a<T->nseq; a++)
-        {
-          if (!CL->master[a]){vfree (T->seq[a]); T->seq[a]=NULL;}
-        }
-       MS=duplicate_sequence (T);
-       free_sequence (T, -1);
-       return MS;
-     }
-   else
-     return CL->S;
- }
-int set_methods_limits (char ** method,int nl,char **list, int n, int *maxnseq, int *maxlen)
-{
-  int a,ns, ml, nm=0;
-  char string[1000];
-
-  nl/=3;
-  for (a=0; a<nl; a+=3)
-    {
-
-      sprintf ( string, "M%s", method[a]);
-      if ( name_is_in_list (string,list, n, 100)!=-1)
-       {
-
-         ns=atoi(method[a+1]);
-         ml=atoi(method[a+2]);
-
-         if (ns!=-1 && (maxnseq[0]==-1 || maxnseq[0]>ns))maxnseq[0]=ns;
-         if (ml!=-1 && (maxlen[0]==-1 || maxlen[0]>ml))maxlen[0]=ml;
-         nm++;
-       }
-    }
-  return nm;
-}
-
-
-
-char * get_seq_type_from_cl (int argc, char **argv)
-{
-  char *buf, *r;
-  char file[100];
-  int a;
-  int seq=0;
-  sprintf (file, "%d.tmp", rand()%10000);
-  buf=vcalloc ( 1000, sizeof (char));
-  sprintf ( buf, "%s ", get_string_variable ("t_coffee"));
-  for (a=1, seq=0; a<argc; a++)
-    {
-      if ( check_file_exists (argv[a]))seq=1;
-    }
-  if (!seq) return "";
-  
-  for (a=1; a< argc; a++)
-    {
-      buf=strcat (buf, argv[a]);
-      buf=strcat (buf, " ");
-    }
-
-  buf=strcat (buf, " -type_only >");
-  buf=strcat (buf, file);
-  
-  my_system ( buf);
-  
-  r=file2string (file);
-  vremove (file);
-  return r;
-}
-/******************************COPYRIGHT NOTICE*******************************/
-/*© Centro de Regulacio Genomica */
-/*and */
-/*Cedric Notredame */
-/*Fri Feb 18 08:27:45 CET 2011 - Revision 596. */
-/*All rights reserved.*/
-/*This file is part of T-COFFEE.*/
-/**/
-/*    T-COFFEE 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 2 of the License, or*/
-/*    (at your option) any later version.*/
-/**/
-/*    T-COFFEE 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 Foobar; if not, write to the Free Software*/
-/*    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA*/
-/*...............................................                                                                                      |*/
-/*  If you need some more information*/
-/*  cedric.notredame@europe.com*/
-/*...............................................                                                                                                                                     |*/
-/**/
-/**/
-/*     */
-/******************************COPYRIGHT NOTICE*******************************/