77 if (argc < 4 || argc > 8){
79 "Usage: %s protein1 protein2 PAM [GapPenalty] [SIZE/SIZE1] [SIZE2] [ITERS]\n"
80 "\t protein1: file with the first protein.\n"
81 "\t protein2: file with the second protein.\n"
82 "\t PAM: Point accepted mutation (PAM) Matrix.\n"
83 "\t GapPenalty: Penalty for gaps. Default = %.1f.\n"
84 "\t SIZE/1: Size limit of the proteins of just the first one. Default=%d.\n"
85 "\t SIZE2: Size limit of the second protein. Default=%d.\n"
86 "\t ITERS Number of iterations. Default = %d. Reads another sequence from the files.\n",
97 if(argc > 4) sscanf(argv[4],
"%lf", &
gapPenalty);
99 size[0] = atoi(argv[5]);
103 size[1] = atoi(argv[6]);
110 printfroot(
"=== Smith Waterman alignment parameters ===\n"
111 " Protein1: %s, size: %d\n"
112 " Protein2: %s, size: %d\n"
115 " Gap penalty: %f\n\n"
136 for(i=0; i<256; i++){
141 FILE * file = fopen(filename,
"r");
148 while(fscanf(file,
"%c", &name) != EOF){
149 if(name ==
'\n')
break;
168 for(i=0; i<MAX_NUM_AA+1; i++){
181 printfroot(
"=== char2AA === (only ASCII printable characters) \n");
182 for(i=
' '; i<
'~'; i++){
183 printfroot(
"char2AA(%c)=%3d ",(
char)i,char2AA((
char)i));
196 for (i=0; i<pam_matrix.
num_aa; i++){
198 if (fscanf(file,
"%lf", &temp) == EOF) {
206 for (i=0;i<pam_matrix.
num_aa;i++){
207 for (j=i+1;j<pam_matrix.
num_aa;j++){
216 for (j=0;j<pam_matrix.
num_aa;j++){
220 for (i=0;i<pam_matrix.
num_aa;i++){
222 for (j=0;j<pam_matrix.
num_aa;j++){
244 fprotein->
file = fopen(filename,
"r");
245 if(fprotein->
file == NULL){
256 fclose(fprotein->
file);
264 fprintf(stderr,
"%s\n",s);
271 #if defined(REFPAR) || defined(HITPAR)
278 void HMaxLoc(
void * inPVoid,
void * inoutPVoid,
int *len, MPI_Datatype * dptr){
282 double_3int * in = (double_3int*) inPVoid;
283 double_3int * inout = (double_3int*) inoutPVoid;
287 for (i=0; i< *len; ++i) {
289 if(in->val > inout->val){
291 }
else if ( in[i].val == inout[i].val ) {
293 if(in[i].i > inout[i].i || (in[i].i == inout[i].i && in[i].j > inout[i].j) ){
void closeProtein(ProteinFile *fprotein)
void openProtein(ProteinFile *fprotein, char *filename)
void exit_error(const char *s)
void input_parameters(int argc, char *argv[])
void initPAM(char *filename)
char AA2char[MAX_NUM_AA+1]
#define DEFAULT_GAPPENALTY
#define DEFAULT_ITERATIONS