1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253
|
package hmm;
import shared.Parse;
import shared.Tools;
import structures.ByteBuilder;
public class HMMSearchLine {
public HMMSearchLine(byte[] line_){
line=line_;
Tools.FORCE_JAVA_PARSE_DOUBLE=true; //TODO: put this somewhere else
int a=0, b=0;
// System.err.println("1: a="+a+", b="+b);
//These are for parsing multi-space-delimited lines
while(b<line.length && line[b]!=' '){b++;}
// System.err.println("2: a="+a+", b="+b);
assert(b>a) : "Missing field 0: "+new String(line);
name=new String(line, a, b-a);
while(b<line.length && line[b]==' '){b++;}
a=b;
// System.err.println("3: a="+a+", b="+b);
while(b<line.length && line[b]!=' '){b++;}
// System.err.println("4: a="+a+", b="+b);
assert(b>a) : "Missing field 1: "+new String(line);
field1=new String(line, a, b-a);
while(b<line.length && line[b]==' '){b++;}
a=b;
// System.err.println("5: a="+a+", b="+b);
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 2: "+new String(line);
length=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 3: "+new String(line);
hmmName=new String(line, a, b-a);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 4: "+new String(line);
accession=new String(line, a, b-a);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 5: "+new String(line);
field5=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 6: "+new String(line);
field6=Parse.parseDouble(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 7: "+new String(line);
field7=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 8: "+new String(line);
field8=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 9: "+new String(line);
field9=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 10: "+new String(line);
field10=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 11: "+new String(line);
field11=Parse.parseDouble(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 12: "+new String(line);
field12=Parse.parseDouble(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 13: "+new String(line);
field13=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 14: "+new String(line);
field14=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 15: "+new String(line);
field15=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 16: "+new String(line);
field16=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 17: "+new String(line);
field17=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 18: "+new String(line);
field18=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 19: "+new String(line);
field19=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 20: "+new String(line);
field20=Parse.parseInt(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 21: "+new String(line);
field21=Parse.parseFloat(line, a, b);
while(b<line.length && line[b]==' '){b++;}
a=b;
while(b<line.length && line[b]!=' '){b++;}
assert(b>a) : "Missing field 22: "+new String(line);
field22=new String(line, a, b-a);
while(b<line.length && line[b]==' '){b++;}
a=b;
}
public ByteBuilder toText(){
ByteBuilder bb=new ByteBuilder();
bb.append(name).tab();
bb.append(length).tab();
bb.append(hmmName);
return bb;
}
public String toString(){
return toText().toString();
}
public final byte[] line;
//protein_1 - 257 ATP-synt_A PF00119.18 211
//1.9e-49 159.6 27.5
//1 1 7.3e-51 2.5e-49 159.2 27.5
//3 210 41 250 38 251 0.87 -
//field0 - protein_1
String name;
//field1 - -
String field1;
//field2 - 257
int length; //length?
//field3 - ATP-synt_A
String hmmName;
//field4 - PF00119.18
String accession;
//field5 - 211
int field5;
//field6 - 1.9e-49
double field6;
//field7 - 159.6
float field7;
//field8 - 27.5
float field8;
//field9 - 1
float field9;
//field10 - 1
float field10;
//field11 - 7.3e-51
double field11;
//field12 - 2.5e-49
double field12;
//field13 - 159.2
float field13;
//field14 - 27.5
float field14;
//field15 - 3
int field15;
//field16 - 210
int field16;
//field17 - 41
int field17;
//field18 - 250
int field18;
//field19 - 38
int field19;
//field20 - 251
int field20;
//field21 - 0.87
float field21;
//field22 - -
String field22;
}
|