1 /******************************COPYRIGHT NOTICE*******************************/
2 /* (c) Centro de Regulacio Genomica */
5 /* 12 Aug 2014 - 22:07. */
6 /*All rights reserved. */
7 /*This file is part of T-COFFEE. */
9 /* T-COFFEE is free software; you can redistribute it and/or modify */
10 /* it under the terms of the GNU General Public License as published by */
11 /* the Free Software Foundation; either version 2 of the License, or */
12 /* (at your option) any later version. */
14 /* T-COFFEE is distributed in the hope that it will be useful, */
15 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */
16 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
17 /* GNU General Public License for more details. */
19 /* You should have received a copy of the GNU General Public License */
20 /* along with Foobar; if not, write to the Free Software */
21 /* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
22 /*............................................... */
23 /* If you need some more information */
24 /* cedric.notredame@europe.com */
25 /*............................................... */
26 /******************************COPYRIGHT NOTICE*******************************/
31 #include "fastal_lib_header.h"
35 tree_parse(struct Fastal_arguments *arguments, char* param)
38 arguments->tree_method = strtok(param,delims);
39 if (arguments->tree_method == "parttree")
41 arguments->tree_param1 = 6;
42 arguments->tree_param2 = 150;
44 char *tmp = strtok(NULL,delims);
47 arguments->tree_param1 = atoi(tmp);
48 arguments->tree_param2 = atoi(strtok(NULL,delims));
50 // printf("A: %s %i %i", arguments->tree_method, arguments->tree_param1, arguments->tree_param2);
56 arg_parse (int argc, char **argv, struct Fastal_arguments *arguments)
60 arguments->diag_method = "blast";
61 arguments->output_file = "out->aln";
62 arguments->tree_file = NULL;
65 arguments->method = "fast";
66 arguments->tree_method = "oligotree";
67 arguments->mat="dna_idmat";
68 arguments->tree_only = 0;
69 arguments->evaluate = 0;
71 // arguments->retree = 0;
72 arguments->agreement_score = 0;
73 arguments->num_ref_aln = 0;
74 arguments->is_dna = 1;
75 arguments->aln_ref = NULL;
76 arguments->aln2test = NULL;
77 arguments->tree_out = 0;
78 arguments->gap_iterate = 0;
84 for (i = 0; i < argc; ++i)
87 if ( ( !strcmp(param, "-d" )) || ( !strcmp(param, "--is_dna")))
89 arguments->is_dna = 1;
90 arguments->mat = "dna_idmat";
92 else if ( ( !strcmp(param, "-a" )) || ( !strcmp(param, "--is_aa")))
94 arguments->is_dna = 0;
95 arguments->mat = "blosum62mt";
98 // printf("%s\n", arguments->mat);
100 if (arguments->is_dna)
102 arguments->tree_param1 = 2;
103 arguments->tree_param2 = 5;
107 arguments->tree_param1 = 1;
108 arguments->tree_param2 = 10;
116 if ( ( !strcmp(param, "-i" )) || ( !strcmp(param, "--in")))
118 arguments->sequence_file = argv[++i];
120 else if ( ( !strcmp(param, "-t" )) || ( !strcmp(param, "--tree_file")))
122 arguments->tree_file = argv[++i];
124 else if ( !strcmp(param, "--mat"))
126 arguments->mat = argv[++i];
128 else if ( !strcmp(param, "--tree_method"))
130 tree_parse(arguments, argv[++i]);
131 // arguments->tree_file = argv[++i];
133 else if ( ( !strcmp(param, "-o" )) || ( !strcmp(param, "--outfile")))
135 arguments->output_file = argv[++i];
137 else if ( ( !strcmp(param, "-m" )) || ( !strcmp(param, "--method")))
140 if ( (!strcmp(argv[i], "fast")) || (!strcmp(argv[i], "nw")) || (!strcmp(argv[i], "gotoh")) || (!strcmp(argv[i], "udisc")) )
141 arguments->method = argv[i];
144 printf("Method %s unknown\n", argv[i]);
148 else if ( ( !strcmp(param, "-b" )) || ( !strcmp(param, "--diag_method")))
151 if ( (!strcmp(argv[i], "blast")) || (!strcmp(argv[i], "blastz")) || (!strcmp(argv[i], "blat")) || (!strcmp(argv[i], "ktup")))
152 arguments->diag_method = argv[i];
155 printf("DIAG Method %s unknown\n", argv[i]);
159 else if ( ( !strcmp(param, "-d" )) || ( !strcmp(param, "--is_dna")))
161 arguments->is_dna = 1;
163 else if ( ( !strcmp(param, "-a" )) || ( !strcmp(param, "--is_aa")))
165 arguments->is_dna = 0;
167 else if ( ( !strcmp(param, "-g" )) || ( !strcmp(param, "--gop")))
169 arguments->gop = atof(argv[++i]);
171 // else if ( ( !strcmp(param, "-r" )) || ( !strcmp(param, "--retree")))
173 // arguments->retree = atoi(argv[++i]);
175 else if ( ( !strcmp(param, "-e" )) || ( !strcmp(param, "--gep")))
177 arguments->gep = atof(argv[++i]);
179 else if ( ( !strcmp(param, "-k" )) || ( !strcmp(param, "--p1")))
181 arguments->tree_param1 = atoi(argv[++i]);
183 else if ( ( !strcmp(param, "-c" )) || ( !strcmp(param, "--p2")))
185 arguments->tree_param2 = atoi(argv[++i]);
187 else if ( !strcmp(param, "--eval_aln"))
189 arguments->evaluate = 1;
191 else if ( ( !strcmp(param, "-s" )) || ( !strcmp(param, "--score")))
193 arguments->score = 1;
195 else if ( !strcmp(param, "--tree_out"))
197 arguments->tree_out = 1;
199 else if ( !strcmp(param, "--tree_only"))
201 arguments->tree_only = 1;
203 else if ( !strcmp(param, "--agreement_score"))
205 arguments->agreement_score = 1;
207 else if ( !strcmp(param, "--make_ref_aln"))
209 arguments->num_ref_aln = atoi(argv[++i]);
210 arguments->num_seq_in_ref = atoi(argv[++i]);
212 else if ( !strcmp(param, "--aln_ref"))
214 arguments->aln_ref = argv[++i];
216 else if ( !strcmp(param, "--gap_iterate"))
218 arguments->gap_iterate = atoi(argv[++i]);
220 else if ( !strcmp(param, "--aln2test"))
222 arguments->aln2test = argv[++i];
224 else if ( ( !strcmp(param, "-h" )) || ( !strcmp(param, "--help")) || ( !strcmp(param, "-?" )))
226 printf("Fastal - a fast alignment tool\n");
227 printf("-i --in The sequence_file\n");
228 printf("-t --tree_file The treefile\n");
229 printf(" --tree_method The method to produce the tree:\n");
230 printf(" oligo - very fast method\n");
231 printf(" parttree - method like in mafft\n");
232 printf("-o --outfile The output file\n");
233 printf("-m --method The method to use:\n");
234 printf(" fast - fast approximate algorithm [default]\n");
235 printf(" nw - needleman-wunsch\n");
236 printf(" gotoh - gotoh\n");
237 printf("-d --is_dna Sequence are DNA\n");
238 printf("-a --is_aa Sequences are amino acids\n");
239 printf("-g --gop Gap opening costs\n");
240 printf("-e --gep Gap extension costs\n");
241 printf("-r --retree Number of reconstructions [default=0]\n");
242 printf(" --tree_only only tree is produced\n");
243 printf(" --eval_aln calculates only the sum-of-pairs-score of a given alignment\n");
244 printf("-s --score calculates the sum of paris score after construction of an alignment. Can take a long time. [default: off]\n");
245 // printf(" --make_ref_aln calculates the sum of paris score after construction of an alignment. Can take a long time. [default: off]\n");
250 printf("Argument %s unknown\n", param);