comparison mafft/core/score.c @ 18:e4d75f9efb90 draft

planemo upload commit b'4303231da9e48b2719b4429a29b72421d24310f4\n'-dirty
author nick
date Thu, 02 Feb 2017 18:44:31 -0500
parents
children
comparison
equal deleted inserted replaced
17:836fa4fe9494 18:e4d75f9efb90
1 #include "mltaln.h"
2
3 #define DEBUG 0
4
5 void arguments( int argc, char *argv[] )
6 {
7 int c;
8
9 ppenalty = NOTSPECIFIED;
10 ppenalty_ex = NOTSPECIFIED;
11 poffset = NOTSPECIFIED;
12 kimuraR = NOTSPECIFIED;
13 pamN = NOTSPECIFIED;
14 scoremtx = NOTSPECIFIED;
15
16 while( --argc > 0 && (*++argv)[0] == '-' )
17 {
18 while ( ( c = *++argv[0] ) )
19 {
20 switch( c )
21 {
22 case 'f':
23 ppenalty = (int)( atof( *++argv ) * 1000 - 0.5 );
24 fprintf( stderr, "ppenalty = %d\n", ppenalty );
25 --argc;
26 goto nextoption;
27 case 'g':
28 ppenalty_ex = (int)( atof( *++argv ) * 1000 - 0.5 );
29 fprintf( stderr, "ppenalty_ex = %d\n", ppenalty_ex );
30 --argc;
31 goto nextoption;
32 case 'h':
33 poffset = (int)( atof( *++argv ) * 1000 - 0.5 );
34 fprintf( stderr, "poffset = %d\n", poffset );
35 --argc;
36 goto nextoption;
37 case 'k':
38 kimuraR = myatoi( *++argv );
39 fprintf( stderr, "kimuraR = %d\n", kimuraR );
40 --argc;
41 goto nextoption;
42 case 'D':
43 scoremtx = -1;
44 break;
45 case 'P':
46 scoremtx = 0;
47 break;
48 default:
49 fprintf( stderr, "illegal option %c\n", c );
50 argc = 0;
51 break;
52 }
53 }
54 nextoption:
55 ;
56 }
57 if( argc == 1 )
58 {
59 cut = atof( (*argv) );
60 argc--;
61 }
62 }
63
64
65 int main( int ac, char **av )
66 {
67 int *nlen;
68 static char **name, **seq;
69 double score;
70 extern double score_calc_for_score( int, char ** );
71
72 arguments( ac, av );
73
74 getnumlen( stdin );
75 rewind( stdin );
76
77 nlen = AllocateIntVec( njob );
78 name = AllocateCharMtx( njob, B+1 );
79 seq = AllocateCharMtx( njob, nlenmax+2 );
80
81 readData_pointer( stdin, name, nlen, seq );
82
83 if( !isaligned( njob, seq ) ) ErrorExit( "Not aligned." );
84
85 constants( njob, seq );
86
87 score = score_calc_for_score( njob, seq );
88 if( scoremtx == 0 ) score += offset;
89
90 fprintf( stdout, "score = %f\n", score );
91 if ( scoremtx == 0 ) fprintf( stdout, "JTT %dPAM\n", pamN );
92 else if( scoremtx == 1 ) fprintf( stdout, "Dayhoff( machigai ga aru )\n" );
93 else if( scoremtx == 2 ) fprintf( stdout, "M-Y\n" );
94 else if( scoremtx == -1 ) fprintf( stdout, "DNA 1:%d\n", kimuraR );
95
96 fprintf( stdout, "gap penalty = %+6.2f, %+6.2f, %+6.2f\n", (double)ppenalty/1000, (double)ppenalty_ex/1000, (double)poffset/1000 );
97 exit( 0 );
98 }