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 |
Runnable implementation that should be used for |
4646 |
14 Dec 17 |
nicklas |
pre-loading VCF data for a GenoTypeChecker in a |
4646 |
14 Dec 17 |
nicklas |
separate thread. Usage: |
4646 |
14 Dec 17 |
nicklas |
10 |
|
4646 |
14 Dec 17 |
nicklas |
new Thread(new GenoTypePreloaderRunnable(sc, checker)).start(); |
4646 |
14 Dec 17 |
nicklas |
12 |
|
4646 |
14 Dec 17 |
nicklas |
@author nicklas |
4646 |
14 Dec 17 |
nicklas |
@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 |
// The order is important since we want make an eary check if specimen/patient |
4925 |
13 Aug 18 |
nicklas |
// 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 |
} |