extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/vcf/GenoTypePreloaderRunnable.java

Code
Comments
Other
Rev Date Author Line
4646 14 Dec 17 nicklas 1 package net.sf.basedb.reggie.vcf;
4646 14 Dec 17 nicklas 2
4646 14 Dec 17 nicklas 3 import net.sf.basedb.core.DbControl;
4646 14 Dec 17 nicklas 4 import net.sf.basedb.core.SessionControl;
4646 14 Dec 17 nicklas 5
4646 14 Dec 17 nicklas 6 /**
4646 14 Dec 17 nicklas 7   Runnable implementation that should be used for
4646 14 Dec 17 nicklas 8   pre-loading VCF data for a GenoTypeChecker in a
4646 14 Dec 17 nicklas 9   separate thread. Usage:
4646 14 Dec 17 nicklas 10   
4646 14 Dec 17 nicklas 11   new Thread(new GenoTypePreloaderRunnable(sc, checker)).start();
4646 14 Dec 17 nicklas 12   
4646 14 Dec 17 nicklas 13   @author nicklas
4646 14 Dec 17 nicklas 14   @since 4.14
4646 14 Dec 17 nicklas 15 */
4646 14 Dec 17 nicklas 16 public class GenoTypePreloaderRunnable
4646 14 Dec 17 nicklas 17   implements Runnable
4646 14 Dec 17 nicklas 18 {
4646 14 Dec 17 nicklas 19
4646 14 Dec 17 nicklas 20   private final SessionControl sc;
4646 14 Dec 17 nicklas 21   private final GenoTypeChecker checker;
6588 18 Feb 22 nicklas 22   private final boolean includeDna;
4646 14 Dec 17 nicklas 23   
6588 18 Feb 22 nicklas 24   public GenoTypePreloaderRunnable(SessionControl sc, GenoTypeChecker checker, boolean includeDna)
4646 14 Dec 17 nicklas 25   {
4646 14 Dec 17 nicklas 26     this.sc = sc;
4646 14 Dec 17 nicklas 27     this.checker = checker;
6588 18 Feb 22 nicklas 28     this.includeDna = includeDna;
4646 14 Dec 17 nicklas 29   }
4646 14 Dec 17 nicklas 30
4646 14 Dec 17 nicklas 31   @Override
4646 14 Dec 17 nicklas 32   public void run() 
4646 14 Dec 17 nicklas 33   {
4646 14 Dec 17 nicklas 34     DbControl dc = null;
4646 14 Dec 17 nicklas 35     try
4646 14 Dec 17 nicklas 36     {
6594 21 Feb 22 nicklas 37       dc = sc.newDbControl("Reggie: Genotype QC wizard");
4925 13 Aug 18 nicklas 38       // The order is important since we want make an eary check if specimen/patient
4925 13 Aug 18 nicklas 39       // data exists for an alignment before all VCF:s have been loaded (see #1059)
6588 18 Feb 22 nicklas 40       checker.preloadSpecimenData(dc, includeDna);
7199 25 May 23 nicklas 41       checker.preloadVcfForCheckedItems(dc);
4649 20 Dec 17 nicklas 42       dc.commit();
4646 14 Dec 17 nicklas 43     }
4646 14 Dec 17 nicklas 44     finally
4646 14 Dec 17 nicklas 45     {
4646 14 Dec 17 nicklas 46       if (dc != null) dc.close();
4646 14 Dec 17 nicklas 47     }
4646 14 Dec 17 nicklas 48   }
4646 14 Dec 17 nicklas 49
4646 14 Dec 17 nicklas 50 }