# include "GlobinLookup.h" static StrgInt Table[] = { { "A0", 11 }, { "A1", 12 }, { "A2", 13 }, { "A3", 14 }, { "A4", 15 }, { "A5", 16 }, { "A6", 17 }, { "A7", 18 }, { "A8", 19 }, { "A9", 20 }, { "A10", 21 }, { "A11", 22 }, { "A12", 23 }, { "A13", 24 }, { "A14", 25 }, { "A15", 26 }, { "B5", 39 }, { "B6", 40 }, { "B7", 41 }, { "B8", 42 }, { "B9", 43 }, { "B10", 44 }, { "B11", 45 }, { "B12", 46 }, { "B13", 47 }, { "B14", 48 }, { "B15", 49 }, { "B16", 50 }, { "C1", 51 }, { "C2", 52 }, { "C3", 53 }, { "C4", 54 }, { "C5", 55 }, { "C6", 56 }, { "C7", 57 }, { "CD1", 58 }, { "CD2", 59 }, { "CD4", 61 }, { "E1", 74 }, { "E2", 75 }, { "E3", 76 }, { "E4", 77 }, { "E5", 78 }, { "E6", 79 }, { "E7", 80 }, { "E8", 81 }, { "E9", 82 }, { "E10", 83 }, { "E11", 84 }, { "E12", 85 }, { "E13", 86 }, { "E14", 87 }, { "E15", 88 }, { "E16", 89 }, { "E17", 90 }, { "E18", 91 }, { "E19", 92 }, { "E20", 93 }, { "EF1", 94 }, { "F-4", 106 }, { "F-3", 107 }, { "F-2", 108 }, { "F-1", 109 }, { "F0", 110 }, { "F1", 111 }, { "F2", 112 }, { "F3", 113 }, { "F4", 114 }, { "F5", 115 }, { "F6", 116 }, { "F7", 117 }, { "F8", 118 }, { "F9", 119 }, { "FG1", 120 }, { "FG2", 121 }, { "FGP", 122 }, /* was FG' */ { "FG4", 126 }, { "G1", 127 }, { "G2", 128 }, { "G3", 129 }, { "G4", 130 }, { "G5", 131 }, { "G6", 132 }, { "G7", 133 }, { "G8", 134 }, { "G9", 135 }, { "G10", 136 }, { "G11", 137 }, { "G12", 138 }, { "G13", 139 }, { "G14", 140 }, { "G15", 141 }, { "G16", 142 }, { "G17", 143 }, { "G18", 144 }, { "G19", 145 }, { "H5", 158 }, { "H6", 159 }, { "H7", 160 }, { "H8", 161 }, { "H9", 162 }, { "H10", 163 }, { "H11", 164 }, { "H12", 165 }, { "H13", 166 }, { "H14", 167 }, { "H15", 168 }, { "H16", 169 }, { "H17", 170 }, { "H18", 171 }, { "H19", 172 }, { "H20", 173 }, { "H21", 174 }, { "H22", 175 }, { "H23", 176 }, { "HEM", 999 }, { NULL, 0 } }; char * SeqNumToCannonStrg(int i) { int j; for (j=0; Table[j].i != 0 ; j++) { if (Table[j].i == i) return Table[j].s ; } return "BAD" ; } int CannonStrgToSeqNum(char * s) { # define STREQ(a,b) (strcmp(a,b) == 0) int j; for (j=0; Table[j].i != 0 ; j++) { if (STREQ(Table[j].s,s)) return Table[j].i ; } return 0 ; } char * ConvertString(char * s) { if (s == NULL) { fprintf(stderr, "ConvertString(): argument should be a globin site specification %s\n", "either in sequential or cannonical string form."); return NULL ; } else { int i; char buf[BUFSIZ]; int ok = sscanf(s,"%d",&i); if (ok) { SeqNumToCannonStrg(i); } else { sprintf(buf,"%d",CannonStrgToSeqNum(s)); return buf ; } } }