Professional Documents
Culture Documents
* : *
Y=3400
frog : *
G=11
MAMMAL : zfish
Q=HoxD50
MAMMAL : MAMMAL
C=2 B=0
human : zfish
O=300
* says e.g. that (1) all blastz runs will specify Y=3400, (2) an alignment
* involving frog will also specify G=11, (3) an alignment of human and zfish
* will specify all of: Y=3400 Q=HoxD55 O=300, and (4) a human-vs-baboon
* alignment will use: Y=3400 C=2 B=0
*
* CURRENTLY WE ALWAYS SPECIFY: Y=3400 H=2000
*/
#include <stdio.h>
#include "util.h"
#define VERSION 15
#define TOAST_SUFFIX "toast.maf"
#define TOAST2_SUFFIX "toast2.maf"
#define NON_NAME " ()"
static const char rcsid[] = "$Id: all_bz.c 142 2008-11-12 18:55:23Z rico $";
struct name_record {
char *name;
struct name_record *next;
};
buf[0] = '\0';
for (i = 0; i < nrules; ++i)
if ((match(name1, x[i]) && match(name2, y[i])) ||
(match(name1, y[i]) && match(name2, x[i]))) {
if (buf[0] != '\0')
strcat(buf, " ");
strcat(buf, z[i]);
}
}
if ( RUN_BZ != 0) {
options(buf, mname, nname);
if (strstr(buf, "NOALIGN")) {
if (verbose)
printf("do not align %s and %s\n", mname, nname);
return;
}
if ( t2 == 0)
sprintf(cmd, BZ_CMD, mname, nname, buf, mname, nname, mname, mname,
nname);
else
sprintf(cmd, BZ_T2_CMD, mname, nname, buf, mname, nname, mname, mname,
nname);
if ( verbose)
printf("%s\n", cmd);
if ( execute && system(cmd) != 0)
fatal("all_bz BZ quits");
}
#ifdef MAF2LAV
sprintf(ifcmd, "maf2lav %s.%s.orig.maf %s %s > %s.%s.orig.bz", mname, nname,
mname, nname, mname, nname);
system(ifcmd);
#endif
}
if ( verbose)
printf("%s\n", cmd);
if ( execute && system(cmd) != 0)
fatal("all_bz post-process quits");
}
}
#ifdef MAF2LAV
sprintf(ifcmd, "maf2lav %s.%s.toast.maf %s %s > %s.%s.toast.bz", mname, nname,
mname, nname, mname, nname);
system(ifcmd);
#endif
}
min_cluster_chain_str[0]=singleton_cmd[0]=min_chain[0]=inflation_cmd[0]=annotation_
file[0]=close_alignment[0]=' ';
min_cluster_chain_str[1]=singleton_cmd[1]=min_chain[1]=inflation_cmd[0]=annotation_
file[1]=close_alignment[1]='\0';
if (argc == 3) {
get_specs(argv[argc-1]);
argc--;
} else if (argc != 2)
fatalf("%s", USAGE);
m = names = NULL;
for (s = argv[1]; *s != '\0'; s = t) {
while (*s != '\0' && strchr(NON_NAME,*s))
++s;
if (*s == '\0')
break;
for (t = s+1; *t != '\0' && !strchr(NON_NAME,*t); ++t)
;
x = *t; // save last character
*t = '\0';
n = ckalloc(sizeof(*n));
n->name = copy_string(s);
*t = x; // replace last character
n->next = NULL;
if (m == NULL)
names = n;
else
m->next = n;
m = n;
}
//--------< end of processing arguments >-----
return 0;
}