Changeset 4442


Ignore:
Timestamp:
Mar 13, 2013, 2:09:13 PM (10 years ago)
Author:
marianne
Message:

Refs #774. Subgroup bugfix.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/plugin/src/org/proteios/plugins/FeatureSequencePropagator.java

    r4441 r4442  
    743743          }
    744744         
    745           Set<Integer> maxSet = fileMatchMap.keySet();
     745          Set<Integer> maxSet = new TreeSet<Integer>();
     746          maxSet.addAll(fileMatchMap.keySet());
    746747          Set<Integer> firstSubSet = fileMatchMap.get(0);
    747748          Set<Integer> secondSubSet = fileMatchMap.get(0);
     
    871872                .getSecondFile());
    872873           
    873             if (addedSetAlignment && firstSubSet.contains(fp.getFirstFile()) && secondSubSet.contains(fp.getSecondFile()) && addedSetMatches<MATCHED_FILES_LIMIT || ((nbrMatchesPerFile[firstFileIndex]<currentMatch || nbrMatchesPerFile[secondFileIndex]<currentMatch) && nbrMatchesPerFile[firstFileIndex]<MATCHED_FILES_LIMIT+1 && nbrMatchesPerFile[secondFileIndex]<MATCHED_FILES_LIMIT+1)) {
     874            if (addedSetAlignment && firstSubSet.contains(fp.getFirstFile()) && secondSubSet.contains(fp.getSecondFile()) && addedSetMatches<MATCHED_FILES_LIMIT || ((nbrMatchesPerFile[firstFileIndex]<currentMatch || nbrMatchesPerFile[secondFileIndex]<currentMatch) && nbrMatchesPerFile[firstFileIndex]<MATCHED_FILES_LIMIT+1 && nbrMatchesPerFile[secondFileIndex]<MATCHED_FILES_LIMIT+1 && !breakAlignment)) { 
    874875             
    875876              if (addedSetAlignment){
    876                
    877877                addedSetMatches++;
    878878              }
    879879             
    880               if (addedSetMatches==MATCHED_FILES_LIMIT){
    881                 writer.println("Subgroups have matched " +(addedSetMatches-1) +"times." );
     880              if (addedSetMatches==MATCHED_FILES_LIMIT || !itr.hasNext()){
    882881                addedSetAlignment = false;
    883882              }
     
    911910              writer.println();
    912911             
    913               hasMatchedAllFiles=setMatchedFiles(fp.getFirstFile(), fp.getSecondFile(), fileMatchMap, nbrOfFiles, writer);
     912              hasMatchedAllFiles=setMatchedFiles(fp.getFirstFile(), fp.getSecondFile(), fileMatchMap, nbrOfFiles);
    914913
    915914              // Alignment is to be performed, the matching
     
    10871086
    10881087              }
    1089             }
     1088           
    10901089
    10911090           
    10921091            if (breakAlignment) {
    1093              
    1094               if (hasMatchedAllFiles && !addedSetAlignment){
    1095                
     1092
     1093
     1094
     1095              if (hasMatchedAllFiles){
     1096
    10961097                simList.clear();
    10971098                break;
    1098                
     1099
    10991100              }else{
    11001101                //there are subgroups of files that have not matched to each other
     1102               
     1103                writer.println();
     1104                writer.println("===============================");
     1105                writer.println();
     1106               
    11011107                writer.println("There are subgroups in data.");
     1108                writer.println("Extending alignment between subgroups.");
    11021109               
    11031110                addedSetAlignment = true;
    1104                
     1111
    11051112                firstSubSet = fileMatchMap.get(0);
    1106                 writer.println("First subgroup: " +firstSubSet.toString());
    1107                
     1113
    11081114                maxSet.removeAll(firstSubSet);
    11091115                secondSubSet = new TreeSet<Integer>(maxSet);
    1110                 writer.println("Other subgroup: " +secondSubSet.toString());
    1111                
    1112                 maxSet = fileMatchMap.keySet();
     1116
     1117                maxSet.addAll(firstSubSet);
    11131118                itr = simList.listIterator();
    11141119                continue;
    1115                
     1120
     1121
    11161122              }
    1117              
    1118              
    1119              
    1120             }
    1121            
    1122             if(!addedSetAlignment){
     1123
     1124
     1125
     1126            }
     1127           
     1128           
    11231129              for (int ii = 0; ii < nbrMatchesPerFile.length; ii++) {
    11241130                if (nbrMatchesPerFile[ii]<currentMatch) {
     
    14671473  }
    14681474 
    1469   private boolean setMatchedFiles(int file1, int file2, TreeMap<Integer, TreeSet<Integer>> fileMatchMap, int nbrOfFiles, PrintWriter writer){
     1475  private boolean setMatchedFiles(int file1, int file2, TreeMap<Integer, TreeSet<Integer>> fileMatchMap, int nbrOfFiles){
    14701476   
    14711477    Set<Integer> firstFileSet = fileMatchMap.get(file1);
     
    14911497    for(Integer key:secondFileSet){
    14921498      fileMatchMap.put(key, combinedSet);
    1493     }
    1494    
    1495     writer.println("Current map.");
    1496     for (int i=0; i<nbrOfFiles;i++){
    1497       writer.println(i +" " +fileMatchMap.get(i).toString());
    1498      
    14991499    }
    15001500   
Note: See TracChangeset for help on using the changeset viewer.