Ignore:
Timestamp:
06/27/14 15:25:25 (10 years ago)
Author:
rkrimmel
Message:

Some refactoring for storing the initial alignments so we don't need to do them again.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java

    r1583 r1584  
    2626import java.util.logging.Level; 
    2727 
    28  
    2928import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.NumberSequence; 
    3029import de.ugoe.cs.autoquest.tasktrees.alignment.algorithms.SmithWatermanRepeated; 
     30import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.BinaryAlignmentStorage; 
    3131import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.ObjectDistanceSubstitionMatrix; 
    3232import de.ugoe.cs.autoquest.tasktrees.alignment.matrix.UPGMAMatrix; 
     
    158158                submat.generate(); 
    159159 
    160                 UPGMAMatrix sequenceDistances = new UPGMAMatrix(numberseqs.size()); 
    161                 sequenceDistances.initialize(Double.POSITIVE_INFINITY); 
    162                  
    163                 //Save the alignments so we do not need to recalculate those when aligning them again in feng doolittle algorithm 
    164                 SmithWatermanRepeated[][] alignments = new SmithWatermanRepeated[numberseqs.size()][numberseqs.size()];  
     160         
     161                BinaryAlignmentStorage alignments = new BinaryAlignmentStorage(numberseqs.size()); 
     162 
    165163 
    166164                for (int i = 0; i < numberseqs.size(); i++) { 
     
    172170                                        int smithWatermanThreshold = 10; 
    173171 
    174                                         alignments[i][j] = new SmithWatermanRepeated( 
     172                                        alignments.set(i, j,new SmithWatermanRepeated( 
    175173                                                        ns1.getSequence(), ns2.getSequence(), submat, 
    176                                                         smithWatermanThreshold); 
     174                                                        smithWatermanThreshold)); 
    177175                                        SmithWatermanRepeated sameSequence1 = new SmithWatermanRepeated( 
    178176                                                        ns1.getSequence(), ns1.getSequence(), submat, 
     
    185183                                         
    186184                                        // Score of the aligmnment 
    187                                         double score = alignments[i][j].getAlignmentScore(); 
     185                                        double score = alignments.get(i,j).getAlignmentScore(); 
    188186                                        // Scores of the sequence being aligned to itself (maximum score) 
    189187                                        double sSelf1 = sameSequence1.getAlignmentScore(); 
     
    201199                                         
    202200                                        if(!Double.isInfinite(distance) && !Double.isNaN(distance)) { 
    203                                                 if(distance < sequenceDistances.get(i, j)) {     
    204                                                         sequenceDistances.set(i,j,distance ); 
     201                                                if(distance < alignments.getDistance(i, j)) {    
     202                                                        alignments.setDistance(i,j,distance ); 
    205203                                                } 
    206204                                        } 
     
    209207                } 
    210208                //System.out.println(sequenceDistances.toString()); 
    211                 UPGMAAligningTree guidetree = new UPGMAAligningTree(numberseqs, sequenceDistances); 
     209                UPGMAAligningTree guidetree = new UPGMAAligningTree(numberseqs, alignments); 
    212210                 
    213211         
Note: See TracChangeset for help on using the changeset viewer.