- BufferedReader input = new BufferedReader(new FileReader(
- "H:/Desktop/Distributions/BadAlignment-8.csv"));
- String line = input.readLine();
-
- while (!("".equals(line)) && line != null)
- {
- Scanner scanner = new Scanner(line);
- if (scanner.hasNext())
- {
- scanner.useDelimiter(",");
- String value = scanner.next();
-
- distribution.put(value, scanner.nextFloat());
- line = input.readLine();
- }
- }
-
-
- AlignmentI alignment = getViewport().getAlignment();
- Integer alpha = 0;
- final int AMINO = 0;
- final int DNA = 1;
- final int RNA = 2;
- if ("amino".equals(hmm.getAlphabetType()))
- {
- alpha = AMINO;
- }
- else if ("DNA".equals(hmm.getAlphabetType()))
- {
- alpha = DNA;
- }
- else if ("RNA".equals(hmm.getAlphabetType()))
- {
- alpha = RNA;
- }
-
-
- int size = 0;
-
- for (int l = 1; l < hmm.getLength() + 1; l++)
- {
- for (int n = 0; n < alignment.getHeight(); n++)
- {
-
- char character = alignment.getSequenceAt(n)
- .getCharAt(hmm.getNodeAlignmentColumn(l));
- character = Character.toUpperCase(character);
-
- boolean containedD;
- boolean containedR;
- boolean containedA;
-
- containedD = ResidueProperties.dnaBackgroundFrequencies
- .containsKey(character);
- containedA = ResidueProperties.aminoBackgroundFrequencies
- .containsKey(character);
- containedR = ResidueProperties.rnaBackgroundFrequencies
- .containsKey(character);
-
- if (!Comparison.isGap(character)
- && ((alpha == DNA && containedD)
- || (alpha == AMINO && containedA)))
- {
- size++;
- }
-
- }
- }
-
- for (int l = 1; l < hmm.getLength() + 1; l++)
- {
- for (int n = 0; n < alignment.getHeight(); n++)
- {
- Double prob;
- char character;
- character = alignment.getSequenceAt(n)
- .getCharAt(hmm.getNodeAlignmentColumn(l));
- character = Character.toUpperCase(character);
- boolean containedN;
- boolean containedA;
- boolean containedR;
-
- containedN = ResidueProperties.dnaBackgroundFrequencies
- .containsKey(character);
- containedA = ResidueProperties.aminoBackgroundFrequencies
- .containsKey(character);
- containedR = ResidueProperties.rnaBackgroundFrequencies
- .containsKey(character);
-
- if (!Comparison.isGap(character)
- && ((alpha == DNA && containedN)
- || (alpha == AMINO && containedA)))
- {
- prob = hmm.getMatchEmissionProbability(
- hmm.getNodeAlignmentColumn(l), character);
- if (prob == 0d)
- {
- System.out.println("?");
- }
-
- double freq = 0;
- if (alpha == AMINO)
- {
- freq = ResidueProperties.aminoBackgroundFrequencies
- .get(character);
- }
- if (alpha == DNA)
- {
- freq = ResidueProperties.dnaBackgroundFrequencies
- .get(character);
- }
- if (alpha == RNA)
- {
- freq = ResidueProperties.rnaBackgroundFrequencies
- .get(character);
- }
- Double doubleValue = Math.log(prob / freq);
-
- String value = String.format("%.1f", doubleValue);
- if ("-0.0".equals(value))
- {
- value = "0.0";
- }
- if (distribution.containsKey(value))
- {
- float prev = distribution.get(value);
- prev = prev + (10000f / size);
- distribution.put(value, prev);
- }
- else
- {
- distribution.put(value, 10000f / size);
- }
-
-
- }
-
- }
- }
-
- PrintWriter writer = new PrintWriter(
- new File(
- "H:/Desktop/Distributions/BadAlignment-8.csv"));
- for (Map.Entry<String, Float> entry : distribution
- .entrySet())
- {
- writer.println(entry.getKey() + "," + entry.getValue());
-
- }
-
- writer.close();
-
-