Example #1
0
    def __init__(self, config):
        VariantSeqLib.__init__(self, config)
        try:
            self.forward = config['fastq']['forward']
            self.reverse = config['fastq']['reverse']

            self.fwd_start = int(config['overlap']['forward start'])
            self.rev_start = int(config['overlap']['reverse start'])
            self.overlap_length = int(config['overlap']['length'])
            self.trim = config['overlap']['overlap only']
            self.max_overlap_mismatches = int(config['overlap']
                                                    ['max mismatches'])

            if 'merge failure' in config['filters']:
                raise EnrichError("'merge failure' is not user-configurable", 
                                  self.name)
            self.set_filters(config['filters'], {'remove unresolvable' : False, 
                                      'min quality' : 0,
                                      'avg quality' : 0,
                                      'max mutations' : len(self.wt_dna),
                                      'chastity' : False,
                                      'merge failure' : True})
        except KeyError as key:
            raise EnrichError("Missing required config value %s" % key, 
                              self.name)
        except ValueError as value:
            raise EnrichError("Invalid parameter value %s" % value, self.name)

        try:
            check_fastq(self.forward)
            check_fastq(self.reverse)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: %s" % fqerr, self.name)
Example #2
0
    def __init__(self, config):
        VariantSeqLib.__init__(self, config)
        try:
            if 'forward' in config['fastq'] and 'reverse' in config['fastq']:
                raise EnrichError("Multiple FASTQ files specified", self.name)
            elif 'forward' in config['fastq']:
                self.reads = config['fastq']['forward']
                self.revcomp_reads = False
            elif 'reverse' in config['fastq']:
                self.reads = config['fastq']['reverse']
                self.revcomp_reads = True
            else:
                raise KeyError("'forward' or 'reverse'")

            self.set_filters(config['filters'], {'min quality' : 0,
                                      'avg quality' : 0,
                                      'chastity' : False,
                                      'max mutations' : len(self.wt_dna)})
        except KeyError as key:
            raise EnrichError("missing required config value: %s" % key, self.name)

        try:
            check_fastq(self.reads)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: %s" % fqerr, self.name)
Example #3
0
    def __init__(self, config):
        VariantSeqLib.__init__(self, config)
        try:
            self.forward = config['fastq']['forward']
            self.reverse = config['fastq']['reverse']

            self.fwd_start = int(config['overlap']['forward start'])
            self.rev_start = int(config['overlap']['reverse start'])
            self.overlap_length = int(config['overlap']['length'])
            self.trim = config['overlap']['overlap only']
            self.max_overlap_mismatches = int(config['overlap']
                                                    ['max mismatches'])

            if 'merge failure' in config['filters']:
                raise EnrichError("'merge failure' is not user-configurable", 
                                  self.name)
            self.set_filters(config['filters'], {'remove unresolvable' : False, 
                                      'min quality' : 0,
                                      'avg quality' : 0,
                                      'max mutations' : len(self.wt_dna),
                                      'chastity' : False,
                                      'merge failure' : True})
        except KeyError as key:
            raise EnrichError("Missing required config value %s" % key, 
                              self.name)
        except ValueError as value:
            raise EnrichError("Invalid parameter value %s" % value, self.name)

        try:
            check_fastq(self.forward)
            check_fastq(self.reverse)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: %s" % fqerr, self.name)
Example #4
0
    def __init__(self, config):
        VariantSeqLib.__init__(self, config)
        try:
            if 'forward' in config['fastq'] and 'reverse' in config['fastq']:
                raise EnrichError("Multiple FASTQ files specified", self.name)
            elif 'forward' in config['fastq']:
                self.reads = config['fastq']['forward']
                self.revcomp_reads = False
            elif 'reverse' in config['fastq']:
                self.reads = config['fastq']['reverse']
                self.revcomp_reads = True
            else:
                raise KeyError("'forward' or 'reverse'")

            self.set_filters(
                config['filters'], {
                    'min quality': 0,
                    'avg quality': 0,
                    'chastity': False,
                    'max mutations': len(self.wt_dna)
                })
        except KeyError as key:
            raise EnrichError("missing required config value: %s" % key,
                              self.name)

        try:
            check_fastq(self.reads)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: %s" % fqerr, self.name)
Example #5
0
    def __init__(self, config, barcodevariant=False):
        self.barcodevariant = barcodevariant
        if not self.barcodevariant:
            SeqLib.__init__(self, config)
        try:
            if 'forward' in config['fastq'] and 'reverse' in config['fastq']:
                raise EnrichError("Multiple FASTQ files specified", self.name)
            elif 'forward' in config['fastq']:
                self.reads = config['fastq']['forward']
                self.revcomp_reads = False
            elif 'reverse' in config['fastq']:
                self.reads = config['fastq']['reverse']
                self.revcomp_reads = True
            else:
                raise KeyError("'forward' or 'reverse'")

            if 'start' in config['fastq']:
                self.bc_start = config['fastq']['start']
            else:
                self.bc_start = 1
            if 'length' in config['fastq']:
                self.bc_length = config['fastq']['length']
            else:
                self.bc_length = 2147483647  # longer than any read... for now

            if 'min count' in config['barcodes']:
                self.min_count = config['barcodes']['min count']
            else:
                self.min_count = 0

            self.set_filters(config['filters'], {
                'min quality': 0,
                'avg quality': 0,
                'chastity': False
            })
        except KeyError as key:
            raise EnrichError(
                "Missing required config value {key}".format(key=key),
                self.name)

        try:
            check_fastq(self.reads)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: {error}".format(error=fqerr),
                              self.name)

        self.df_dict['barcodes'] = None
        if self.min_count > 0:
            self.df_dict['barcodes_low_abundance'] = None
Example #6
0
    def __init__(self, config, barcodevariant=False):
        self.barcodevariant = barcodevariant
        if not self.barcodevariant:
            SeqLib.__init__(self, config)
        try:
            if 'forward' in config['fastq'] and 'reverse' in config['fastq']:
                raise EnrichError("Multiple FASTQ files specified", self.name)
            elif 'forward' in config['fastq']:
                self.reads = config['fastq']['forward']
                self.revcomp_reads = False
            elif 'reverse' in config['fastq']:
                self.reads = config['fastq']['reverse']
                self.revcomp_reads = True
            else:
                raise KeyError("'forward' or 'reverse'")

            if 'start' in config['fastq']:
                self.bc_start = config['fastq']['start']
            else:
                self.bc_start = 1
            if 'length' in config['fastq']:
                self.bc_length = config['fastq']['length']
            else:
                self.bc_length = 2147483647 # longer than any read... for now

            if 'min count' in config['barcodes']:
                self.min_count = config['barcodes']['min count']
            else:
                self.min_count = 0

            self.set_filters(config['filters'], {'min quality' : 0,
                                      'avg quality' : 0,
                                      'chastity' : False})
        except KeyError as key:
            raise EnrichError("Missing required config value {key}".format(key=key), self.name)

        try:
            check_fastq(self.reads)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: {error}".format(error=fqerr), self.name)

        self.df_dict['barcodes'] = None
        if self.min_count > 0:
            self.df_dict['barcodes_low_abundance'] = None
Example #7
0
    def __init__(self, config, parent=True):
        if parent:
            SeqLib.__init__(self, config)
        try:
            if "forward" in config["fastq"] and "reverse" in config["fastq"]:
                raise EnrichError("Multiple FASTQ files specified", self.name)
            elif "forward" in config["fastq"]:
                self.reads = config["fastq"]["forward"]
                self.revcomp_reads = False
            elif "reverse" in config["fastq"]:
                self.reads = config["fastq"]["reverse"]
                self.revcomp_reads = True
            else:
                raise KeyError("'forward' or 'reverse'")

            if "start" in config["fastq"]:
                self.bc_start = config["fastq"]["start"]
            else:
                self.bc_start = 1
            if "length" in config["fastq"]:
                self.bc_length = config["fastq"]["length"]
            else:
                self.bc_length = 2147483647  # longer than any read... for now

            if "min count" in config["barcodes"]:
                self.min_count = config["barcodes"]["min count"]
            else:
                self.min_count = 0

            self.set_filters(config["filters"], {"min quality": 0, "avg quality": 0, "chastity": False})
        except KeyError as key:
            raise EnrichError("Missing required config value %s" % key, self.name)

        try:
            check_fastq(self.reads)
        except IOError as fqerr:
            raise EnrichError("FASTQ file error: %s" % fqerr, self.name)

        self.counts["barcodes"] = None