Changeset 1589 for branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java
- Timestamp:
- 07/09/14 12:13:13 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java
r1588 r1589 29 29 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.AlignmentAlgorithmFactory; 30 30 import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence; 31 import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.BinaryAlignmentStorage; 31 import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.PairwiseAlignmentGenerator; 32 import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.PairwiseAlignmentStorage; 32 33 import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.ObjectDistanceSubstitionMatrix; 33 34 import de.ugoe.cs.autoquest.tasktrees.alignment.pal.tree.UPGMAAligningTree; … … 158 159 submat.generate(); 159 160 161 162 PairwiseAlignmentStorage alignments = PairwiseAlignmentGenerator.generate(numberseqs,submat); 160 163 161 BinaryAlignmentStorage alignments = new BinaryAlignmentStorage(numberseqs.size(),numberseqs.size());162 163 164 for (int i = 0; i < numberseqs.size(); i++) {165 NumberSequence ns1 = numberseqs.get(i);166 for (int j = 0; j < numberseqs.size(); j++) {167 NumberSequence ns2 = numberseqs.get(j);168 169 if (i != j) {170 int smithWatermanThreshold = 10;171 172 alignments.set(i, j,AlignmentAlgorithmFactory.create(173 ns1.getSequence(), ns2.getSequence(), submat,174 smithWatermanThreshold));175 AlignmentAlgorithm sameSequence1 = AlignmentAlgorithmFactory.create(176 ns1.getSequence(), ns1.getSequence(), submat,177 smithWatermanThreshold);178 AlignmentAlgorithm sameSequence2 = AlignmentAlgorithmFactory.create(179 ns2.getSequence(), ns2.getSequence(), submat,180 smithWatermanThreshold);181 AlignmentAlgorithm randomSequence = AlignmentAlgorithmFactory.create(182 ns1.shuffle().getSequence(),ns2.shuffle().getSequence(),submat,smithWatermanThreshold);183 184 // Score of the aligmnment185 double score = alignments.get(i,j).getAlignmentScore();186 // Scores of the sequence being aligned to itself (maximum score)187 double sSelf1 = sameSequence1.getAlignmentScore();188 double sSelf2 = sameSequence2.getAlignmentScore();189 // Score of sequences shuffled before aligned190 double sRand = randomSequence.getAlignmentScore();191 192 double sMax = (sSelf1 + sSelf2) / 2;193 double sEff = (score - sRand)/ (sMax - sRand);194 if(sEff < 0) {195 sEff = 0;196 }197 double distance = -Math.log(sEff);198 199 200 if(!Double.isInfinite(distance) && !Double.isNaN(distance)) {201 if(distance < alignments.getDistance(i, j)) {202 alignments.setDistance(i,j,distance );203 }204 }205 }206 }207 }208 //alignments.get(20, 47).printDPMatrix();209 //alignments.get(20, 47).printAlignment();210 164 211 165 System.out.println(alignments.getDistanceMatrix()); 212 UPGMAAligningTree guidetree = new UPGMAAligningTree(numberseqs, alignments,submat); 213 System.out.println("Number of sequences in root node: " + guidetree.getRoot().getSequences().size()); 214 for (Iterator<NumberSequence> it = guidetree.getRoot().getSequences().iterator(); it.hasNext();) { 215 NumberSequence tmp = it.next(); 216 tmp.printSequence(); 217 } 166 //UPGMAAligningTree guidetree = new UPGMAAligningTree(numberseqs, alignments,submat); 167 168 218 169 219 170
Note: See TracChangeset
for help on using the changeset viewer.