extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/autoconfirm/MethylationBetaAutoConfirmer.java

Code
Comments
Other
Rev Date Author Line
6881 22 Nov 22 nicklas 1 package net.sf.basedb.reggie.autoconfirm;
6881 22 Nov 22 nicklas 2
6881 22 Nov 22 nicklas 3 import org.slf4j.LoggerFactory;
6881 22 Nov 22 nicklas 4
6881 22 Nov 22 nicklas 5 import net.sf.basedb.core.DbControl;
6881 22 Nov 22 nicklas 6 import net.sf.basedb.core.DerivedBioAssay;
6881 22 Nov 22 nicklas 7 import net.sf.basedb.core.Job;
6881 22 Nov 22 nicklas 8 import net.sf.basedb.core.SessionControl;
6881 22 Nov 22 nicklas 9 import net.sf.basedb.reggie.activity.ActivityDef;
6881 22 Nov 22 nicklas 10 import net.sf.basedb.reggie.dao.Annotationtype;
7077 27 Mar 23 nicklas 11 import net.sf.basedb.util.extensions.logging.ExtensionsLog;
7077 27 Mar 23 nicklas 12 import net.sf.basedb.util.extensions.logging.ExtensionsLogger;
6881 22 Nov 22 nicklas 13
6881 22 Nov 22 nicklas 14 /**
6881 22 Nov 22 nicklas 15   Auto-confirm implementation for methylation beta analysis. The rules are:
6881 22 Nov 22 nicklas 16
6881 22 Nov 22 nicklas 17   * {@link DerivedBioAssay#getJob()} job status must be {@link net.sf.basedb.core.Job.Status#DONE}.
6881 22 Nov 22 nicklas 18   * The {@link Annotationtype#ANALYSIS_FLAG} must be null.
6881 22 Nov 22 nicklas 19
6881 22 Nov 22 nicklas 20   Items that doens't pass the rules are for manual confirmation/re-analysis.
6881 22 Nov 22 nicklas 21
6881 22 Nov 22 nicklas 22   @author nicklas
6881 22 Nov 22 nicklas 23   @since 4.41
6881 22 Nov 22 nicklas 24 */
6881 22 Nov 22 nicklas 25 public class MethylationBetaAutoConfirmer 
6881 22 Nov 22 nicklas 26   extends AutoConfirmer<DerivedBioAssay>
6881 22 Nov 22 nicklas 27 {
6881 22 Nov 22 nicklas 28   
7077 27 Mar 23 nicklas 29   private static final ExtensionsLogger logger = 
7077 27 Mar 23 nicklas 30     ExtensionsLog.getLogger(AutoConfirmService.ID, true).wrap(LoggerFactory.getLogger(MethylationBetaAutoConfirmer.class));
6881 22 Nov 22 nicklas 31
6881 22 Nov 22 nicklas 32   public MethylationBetaAutoConfirmer(DerivedBioAssay meth)
6881 22 Nov 22 nicklas 33   {
6881 22 Nov 22 nicklas 34     super(meth, meth.getJob());
6881 22 Nov 22 nicklas 35   }
6881 22 Nov 22 nicklas 36
6881 22 Nov 22 nicklas 37   /**
6881 22 Nov 22 nicklas 38     Passes if the job ended successfully and the AnalysisFlag 
6881 22 Nov 22 nicklas 39     annotation is not set.
6881 22 Nov 22 nicklas 40   */
6881 22 Nov 22 nicklas 41   @Override
6881 22 Nov 22 nicklas 42   public boolean checkRules(DbControl dc, AutoConfirmManager manager) 
6881 22 Nov 22 nicklas 43   {
6881 22 Nov 22 nicklas 44     DerivedBioAssay meth = item(dc);
6881 22 Nov 22 nicklas 45     Job job = meth.getJob();
6881 22 Nov 22 nicklas 46     
6881 22 Nov 22 nicklas 47     if (job.getStatus() != Job.Status.DONE) return false;
6881 22 Nov 22 nicklas 48     
6881 22 Nov 22 nicklas 49     String flag = (String)Annotationtype.ANALYSIS_FLAG.getAnnotationValue(dc, meth);
6881 22 Nov 22 nicklas 50     return flag == null;
6881 22 Nov 22 nicklas 51   }
6881 22 Nov 22 nicklas 52
6881 22 Nov 22 nicklas 53   /**
6881 22 Nov 22 nicklas 54     If we get here everything should be ok.
6881 22 Nov 22 nicklas 55   */
6881 22 Nov 22 nicklas 56   @Override
6881 22 Nov 22 nicklas 57   public boolean autoConfirm(DbControl dc, AutoConfirmManager manager) 
6881 22 Nov 22 nicklas 58   {
6881 22 Nov 22 nicklas 59     DerivedBioAssay meth = item(dc);
6881 22 Nov 22 nicklas 60     Annotationtype.ANALYSIS_RESULT.setAnnotationValue(dc, meth, "Successful");
6881 22 Nov 22 nicklas 61     ActivityDef.METHYLATION_BETA_AUTOCONFIRMED.merge(dc, 1).setUser("Auto-confirm");
6881 22 Nov 22 nicklas 62     return false;// No next step
6881 22 Nov 22 nicklas 63   }
6881 22 Nov 22 nicklas 64
6881 22 Nov 22 nicklas 65   /**
6881 22 Nov 22 nicklas 66     Nothing to do.
6881 22 Nov 22 nicklas 67   */
6881 22 Nov 22 nicklas 68   @Override
6881 22 Nov 22 nicklas 69   public boolean startNextStep(SessionControl sc, AutoConfirmManager manager) 
6881 22 Nov 22 nicklas 70   {
6881 22 Nov 22 nicklas 71     return false;
6881 22 Nov 22 nicklas 72   }
6881 22 Nov 22 nicklas 73 }