Changeset 3770


Ignore:
Timestamp:
Aug 17, 2010, 12:31:01 PM (13 years ago)
Author:
Fredrik Levander
Message:

Refs #614. Logging more parameters, and updating of hits when deleting features.

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/api/core/src/org/proteios/core/Hit.java

    r3445 r3770  
    721721  public void setFeature(Feature feature)
    722722  {
    723     getData().setFeature(feature.getData());
    724   }
     723    if (feature!=null)
     724    {
     725      getData().setFeature(feature.getData());
     726    }
     727    else
     728    {
     729      getData().setFeature(null);
     730    }
     731  }
     732 
    725733}
  • trunk/api/core/src/org/proteios/core/data/FeatureData.java

    r3532 r3770  
    260260
    261261  /**
    262    * Get the Hits matched to this feature.
     262   * Get the Hits matched to this feature. Note that the there is no cascading for delete
    263263   *
    264    * @hibernate.set table="`Hits`" cascade="delete" lazy="true" inverse="true"
     264   * @hibernate.set table="`Hits`" cascade="none" lazy="true" inverse="true"
    265265   * @hibernate.collection-one-to-many class="org.proteios.core.data.HitData"
    266266   *                                   not-null="false"
  • trunk/client/servlet/src/org/proteios/action/feature/ClearFeatures.java

    r3445 r3770  
    3737import org.proteios.core.DbControl;
    3838import org.proteios.core.Feature;
     39import org.proteios.core.Hit;
    3940import org.proteios.core.ItemQuery;
    4041import org.proteios.core.Project;
     
    7172    Project project = isProjectActive(dc);
    7273    /***********************************************************************
    73      * Drop all hits in the active project
     74     * update relevant hits in the active project
    7475     */
     76    int counter = 0, counter2=0;
    7577    QueryFactory qf = getQueryFactory();
     78    ItemQuery<Hit> hitQuery = qf.select(Hit.class);
     79    hitQuery.restrictPermanent(Restrictions.eq(Hql.property("project"), Hql
     80      .entity(project)));
     81    hitQuery.restrictPermanent(Restrictions.neq(Hql.property("precursorQuantity"), null));
     82    for (Iterator<Hit> iter = hitQuery.iterate(dc); iter.hasNext();)
     83    {
     84      Hit element = iter.next();
     85      dc.reattachItem(element);
     86      element.setPrecursorQuantity(null);
     87      element.setFeature(null);
     88      counter2++;
     89    }   
     90    log.debug("Done with hits");
     91    dc.commit();
     92    log.debug("Commit done");
     93    /****
     94     * And delete all features
     95     */
     96    dc = newDbControl();   
    7697    ItemQuery<Feature> query = qf.select(Feature.class);
    7798    query.restrictPermanent(Restrictions.eq(Hql.property("project"), Hql
    7899      .entity(project)));
    79     int counter = 0;
    80100    for (Iterator<Feature> iter = query.iterate(dc); iter.hasNext();)
    81101    {
     
    84104      counter++;
    85105    }
     106    log.debug("Done with features");
    86107    dc.commit();
    87     setMessage(counter + " features removed");
     108    log.debug("... and commit");
     109    setMessage(counter + " features removed. "+counter2+" hits updated.");
    88110    setForwardTo(ConfigureTableFactory2.class);
    89111  }
  • trunk/plugin/src/org/proteios/plugins/FeatureHitMatcher.java

    r3766 r3770  
    237237               * Use the feature with the highest intensity
    238238               */
    239               if (h.getPrecursorQuantity() == null && (h
     239              if (h.getPrecursorQuantity() == null || (h
    240240                .getPrecursorQuantity() < f.getApexIntensity()))
    241241              {
     
    244244                  f.getPeptideSequence()))
    245245                {
    246                   f.setPeptideSequence(h.getDescription());
     246
     247                  log.debug("Not matching: " + h
     248                    .getDescription() + " and " + f
     249                    .getPeptideSequence());
     250                  writer
     251                    .println("Ambiguity: " + h
     252                      .getDescription() + " not matching feature sequence " + f
     253                      .getPeptideSequence() + ", feature m/z:" + f
     254                      .getMassToChargeRatio());
     255                  boolean best = true;
     256                  for (Hit hh : f.getHits())
     257                  {
     258                    if (hh.getCombinedFDR() < h
     259                      .getCombinedFDR())
     260                      best = false;
     261                  }
     262                  if (best)
     263                  {
     264                    f
     265                      .setPeptideSequence(h
     266                        .getDescription());
     267                    writer
     268                      .println("Better scoring hit sequence replacing old");
     269                  }
    247270                  ambiguities++;
    248271                }
Note: See TracChangeset for help on using the changeset viewer.