Download this file

92 lines (73 with data), 3.1 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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
from singlecellmultiomics.modularDemultiplexer.baseDemultiplexMethods import UmiBarcodeDemuxMethod, NonMultiplexable
# ScarTrace
class ScartraceR1(UmiBarcodeDemuxMethod):
def __init__(self, barcodeFileParser, **kwargs):
self.barcodeFileAlias = 'scartrace'
UmiBarcodeDemuxMethod.__init__(
self,
umiRead=0,
umiStart=0,
umiLength=0,
barcodeRead=0,
barcodeStart=0,
barcodeLength=8,
barcodeFileAlias=self.barcodeFileAlias,
barcodeFileParser=barcodeFileParser,
**kwargs)
self.shortName = 'SCARC8R1'
self.longName = 'Scartrace, CB: 8bp'
self.description = '384 well format. Scar amplicon demultiplexing, cell barcode in read 1'
self.autoDetectable = True
class ScartraceR2(UmiBarcodeDemuxMethod):
def __init__(self, barcodeFileParser, **kwargs):
self.barcodeFileAlias = 'scartrace'
UmiBarcodeDemuxMethod.__init__(
self,
umiRead=0,
umiStart=0,
umiLength=0,
barcodeRead=1,
barcodeStart=0,
barcodeLength=8,
barcodeFileAlias=self.barcodeFileAlias,
barcodeFileParser=barcodeFileParser,
**kwargs)
self.shortName = 'SCARC8R2'
self.longName = 'Scartrace, CB: 8bp'
self.description = '384 well format. Scar amplicon demultiplexing, cell barcode in read 2'
self.autoDetectable = True
def demultiplex(self, records, **kwargs):
if kwargs.get(
'probe') and not records[0].sequence.startswith('CCTTGAACTTCTGGTTGTAG'):
raise NonMultiplexable
taggedRecords = UmiBarcodeDemuxMethod.demultiplex(
self, records, **kwargs)
return taggedRecords
class ScartraceR2RP4(UmiBarcodeDemuxMethod):
def __init__(self, barcodeFileParser, **kwargs):
self.barcodeFileAlias = 'scartrace'
UmiBarcodeDemuxMethod.__init__(
self,
umiRead=0,
umiStart=0,
umiLength=0,
barcodeRead=1,
barcodeStart=0,
barcodeLength=8,
barcodeFileAlias=self.barcodeFileAlias,
barcodeFileParser=barcodeFileParser,
random_primer_end=False,
random_primer_read=0,
random_primer_length=4,
**kwargs)
self.shortName = 'SCARC8R2R4'
self.longName = 'Scartrace, CB: 8bp, with 4bp random sequence in read 1'
self.description = '384 well format. Scar amplicon demultiplexing, cell barcode in read , 4bp random sequence in R1'
self.autoDetectable = True
def demultiplex(self, records, **kwargs):
if kwargs.get(
'probe') and not records[0].sequence[4:].startswith('CCTTGAACTTCTGGTTGTAG'):
raise NonMultiplexable
taggedRecords = UmiBarcodeDemuxMethod.demultiplex(
self, records, **kwargs)
return taggedRecords