for (int i = 0; i < samples.size(); i++) {
String sample = samples.get(i);
int cnv = (int) Float.parseFloat(tokens[col + cnvOffset]);
Segment segment = currentSegments.get(sample);
if (segment == null || !chr.equals(segment.getChr()) || cnv == (int) segment.getScore()) {
if (segment != null) {
List<Segment> segs = cnvSegments.get(sample);
if (segs == null) {
segs = new ArrayList();
cnvSegments.put(sample, segs);
}
segs.add(segment);
}
segment = new Segment(position, position, cnv);
currentSegments.put(sample, segment);
} else {
//segment.incremenetSnpCount(1);
segment.setEnd(position);
}
String logR = tokens[col + logROffset];
logRWriter.print("\t" + logR);
String af = tokens[col + afOffset];
afWriter.print("\t" + af);
col += sampleColumnCount;
}
for (PrintWriter pw : allWriters) {
pw.println();
}
}
for (Map.Entry<String, List<Segment>> entry : cnvSegments.entrySet()) {
String sample = entry.getKey();
for (Segment segment : entry.getValue()) {
cnvWriter.println(sample + "\t" + segment.getChr() + "\t" + segment.getStart() + "\t"
+ segment.getEnd() + "\t" + "" + "\t" + (int) segment.getScore());
}
}
}
catch (IOException e) {