forked from NationalGenomicsInfrastructure/dataflow_transfer
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathillumina_runs.py
More file actions
64 lines (44 loc) · 1.86 KB
/
illumina_runs.py
File metadata and controls
64 lines (44 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from dataflow_transfer.run_classes.generic_runs import Run
from .registry import register_run_class
class IlluminaRun(Run):
"""Defines an Illumina sequencing run"""
def __init__(self, run_dir, configuration):
super().__init__(run_dir, configuration)
self.final_file = "CopyComplete.txt"
self.flowcell_id = self.run_id.split("_")[-1]
@register_run_class
class NovaSeqXPlusRun(IlluminaRun):
"""Defines a NovaSeq X Plus sequencing run"""
run_type = "NovaSeqXPlus"
def __init__(self, run_dir, configuration):
self.run_id_format = (
r"^\d{8}_[A-Z0-9]+_\d{4}_[A-Z0-9]+$" # 20251010_LH00202_0284_B22CVHTLT1
)
super().__init__(run_dir, configuration)
self.flowcell_id = self.run_id.split("_")[-1][1:] # 22CVHTLT1
@register_run_class
class NextSeqRun(IlluminaRun):
"""Defines a NextSeq sequencing run"""
run_type = "NextSeq"
def __init__(self, run_dir, configuration):
self.run_id_format = (
r"^\d{6}_[A-Z0-9]+_\d{3}_[A-Z0-9]+$" # 251015_VH00203_572_AAHFHCCM5
)
super().__init__(run_dir, configuration)
@register_run_class
class MiSeqRun(IlluminaRun):
"""Defines a MiSeq sequencing run"""
run_type = "MiSeq"
def __init__(self, run_dir, configuration):
self.run_id_format = (
r"^\d{6}_[A-Z0-9]+_\d{4}_[A-Z0-9\-]+$" # 251015_M01548_0646_000000000-M6D7K
)
super().__init__(run_dir, configuration)
@register_run_class
class MiSeqi100Run(IlluminaRun):
"""Defines a MiSeqi100 sequencing run"""
run_type = "MiSeqi100"
def __init__(self, run_dir, configuration):
self.run_id_format = r"^\d{8}_[A-Z0-9]+_\d{4}_[A-Z0-9]{10}-SC3$" # 20260128_SH01140_0002_ASC2150561-SC3
super().__init__(run_dir, configuration)
self.flowcell_id = self.run_id.split("_")[-1][1:] # SC2150561-SC3