Source code for singlecellmultiomics.modularDemultiplexer.demultiplexModules.scartrace

from singlecellmultiomics.modularDemultiplexer.baseDemultiplexMethods import UmiBarcodeDemuxMethod, NonMultiplexable

# ScarTrace


[docs]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
[docs]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
[docs] 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
[docs]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
[docs] 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