Ignore:
Timestamp:
07/23/14 18:18:11 (10 years ago)
Author:
rkrimmel
Message:

More intelligent match finding and creation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ralph/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/SmithWatermanRepeated.java

    r1619 r1620  
    231231                ns1.setSequence(reversed1); 
    232232                ns2.setSequence(reversed2); 
    233  
    234                 alignment.add(ns1); 
    235                 alignment.add(ns2); 
     233                ns1.setId(alignment.get(0).getId()); 
     234                ns2.setId(alignment.get(1).getId()); 
     235                 
     236                alignment.set(0, ns1); 
     237                alignment.set(1, ns2); 
    236238        } 
    237239         
     
    272274        } 
    273275         
    274         public ArrayList<ArrayList<NumberSequence>> getMatches() { 
    275                 ArrayList<ArrayList<NumberSequence>> result = new ArrayList<ArrayList<NumberSequence>>(); 
     276        public ArrayList<Match> getMatches() { 
     277                ArrayList<Match> result = new ArrayList<Match>(); 
    276278                 
    277279                //both alignment sequences should be equally long 
     
    288290                                        count++; 
    289291                                } 
    290                                 //I am really missing memcpy here  
     292                                //I am really missing memcpy here? How does one do this better in java?  
    291293                                int[] tmp1 = new int[count]; 
    292294                                int[] tmp2 = new int[count]; 
     
    299301                                tmpns1.setSequence(tmp1); 
    300302                                tmpns2.setSequence(tmp2); 
    301                                 ArrayList<NumberSequence> tmpal = new ArrayList<NumberSequence>(); 
    302                                 tmpal.add(tmpns1); 
    303                                 tmpal.add(tmpns2); 
     303                                Match tmpal = new Match(); 
     304                                tmpal.setFirstSequence(tmpns1); 
     305                                tmpal.setSecondSequence(tmpns2); 
     306                                tmpal.addOccurence(new MatchOccurence(start,alignment.get(0).getId())); 
     307                                tmpal.addOccurence(new MatchOccurence(start,alignment.get(1).getId())); 
    304308                                result.add(tmpal); 
    305309                        } 
    306310                        i++; 
    307311                } 
    308                  
    309                  
    310                  
    311                  
    312                  
    313                  
    314312                return result; 
    315                  
    316313        } 
    317314         
     
    354351 
    355352        @Override 
    356         public void align(int[] input1, int[] input2, SubstitutionMatrix submat, 
     353        public void align(NumberSequence input1, NumberSequence input2, SubstitutionMatrix submat, 
    357354                        float threshold) { 
    358                 this.input1 = input1; 
    359                 this.input2 = input2; 
    360                 length1 = input1.length; 
    361                 length2 = input2.length; 
     355                 
     356                alignment = new ArrayList<NumberSequence>(); 
     357                alignment.add(input1); 
     358                alignment.add(input2); 
     359                 
     360                this.input1=input1.getSequence(); 
     361                this.input2=input2.getSequence(); 
     362                 
     363                length1 = input1.size(); 
     364                length2 = input2.size(); 
    362365                this.submat = submat; 
    363366 
     
    367370                 
    368371                matrix = new MatrixEntry[length1+2][length2+1]; 
    369                 alignment = new ArrayList<NumberSequence>(); 
     372                 
    370373                 
    371374                for (int i = 0; i <= length1+1; i++) { 
Note: See TracChangeset for help on using the changeset viewer.