+ public Map<Character, Map<Integer, Map<String, Double>>> getProbabilities()
+ throws IOException
+ {
+
+ Map<Character, Map<Integer, Map<String, Double>>> probabilities = new HashMap<>();
+
+ ranges = new ArrayList<>();
+ ranges.add(0);
+
+ binSize = Double.valueOf((reader.readLine().replaceAll("\\ ", "")));
+ String line = reader.readLine();
+ char c = line.charAt(0);
+
+ while (line != null)
+ {
+ line = reader.readLine();
+ while (line != null && line.split("\\,").length != 1)
+ {
+ String[] llrs = line.split("\\,");
+ String[] counts = reader.readLine().split("\\,");
+ int range = Integer.valueOf(llrs[0]);
+
+ if (!ranges.contains(range))
+ {
+ ranges.add(range);
+ }
+ if (!probabilities.containsKey(c))
+ {
+ probabilities.put(c, new HashMap<>());
+ }
+ probabilities.get(c).put(range, new HashMap<>());
+
+ for (int i = 1; i < llrs.length; i++)
+ {
+ probabilities.get(c).get(range).put(
+ llrs[i].replaceAll("\\ ", ""),
+ Double.valueOf(counts[i].replaceAll("\\ ", "")));
+ }
+
+ line = reader.readLine();
+ }
+ if (line != null)
+ {
+ c = line.charAt(0);
+ }
+ }
+
+ return probabilities;
+ }