From 509aa29a5f619db9effd06b0447346ebc8b32457 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Tue, 7 Jan 2020 10:58:39 -0600 Subject: [PATCH 001/323] A bunch of changes to meet minimum python 3 requirements --- genReads.py | 1222 +++++++++++----------- py/OutputFileWriter.py | 484 ++++----- py/SequenceContainer.py | 1860 +++++++++++++++++---------------- py/__init__.py | 0 py/biopython_modified_bgzf.py | 169 ++- py/inputChecking.py | 56 +- py/neat_cigar.py | 157 ++- py/probability.py | 260 ++--- py/refFunc.py | 361 ++++--- py/vcfFunc.py | 350 +++---- 10 files changed, 2472 insertions(+), 2447 deletions(-) create mode 100644 py/__init__.py diff --git a/genReads.py b/genReads.py index 7879583..426f89b 100644 --- a/genReads.py +++ b/genReads.py @@ -21,20 +21,20 @@ import re import time import bisect -import cPickle as pickle +import pickle import numpy as np import argparse # absolute path to this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) -sys.path.append(SIM_PATH+'/py/') +sys.path.append(SIM_PATH + '/py/') -from inputChecking import requiredField, checkFileOpen, checkDir, isInRange -from refFunc import indexRef, readRef, getAllRefRegions, partitionRefRegions, ALLOWED_NUCL -from vcfFunc import parseVCF -from OutputFileWriter import OutputFileWriter -from probability import DiscreteDistribution, mean_ind_of_weighted_list -from SequenceContainer import SequenceContainer, ReadContainer, parseInputMutationModel +from py.inputChecking import requiredField, checkFileOpen, checkDir, isInRange +from py.refFunc import indexRef, readRef, getAllRefRegions, partitionRefRegions +from py.vcfFunc import parseVCF +from py.OutputFileWriter import OutputFileWriter +from py.probability import DiscreteDistribution, mean_ind_of_weighted_list +from py.SequenceContainer import SequenceContainer, ReadContainer, parseInputMutationModel # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 @@ -43,213 +43,215 @@ //////////// PARSE INPUT ARGUMENTS //////////// //////////////////////////////////////////////////""" - parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') -parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") -parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") -parser.add_argument('-c', type=float, required=False, metavar='', default=10., help="average coverage") -parser.add_argument('-e', type=str, required=False, metavar='', default=None, help="sequencing error model") -parser.add_argument('-E', type=float, required=False, metavar='', default=-1, help="rescale avg sequencing error rate to this") -parser.add_argument('-p', type=int, required=False, metavar='', default=2, help="ploidy") -parser.add_argument('-t', type=str, required=False, metavar='', default=None, help="bed file containing targeted regions") -parser.add_argument('-to',type=float, required=False, metavar='', default=0.00, help="off-target coverage scalar") -parser.add_argument('-m', type=str, required=False, metavar='', default=None, help="mutation model pickle file") -parser.add_argument('-M', type=float, required=False, metavar='', default=-1, help="rescale avg mutation rate to this") -parser.add_argument('-Mb',type=str, required=False, metavar='', default=None, help="bed file containing positional mut rates") -parser.add_argument('-N', type=int, required=False, metavar='', default=-1, help="below this qual, replace base-calls with 'N's") -#parser.add_argument('-s', type=str, required=False, metavar='', default=None, help="input sample model") -parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") - -parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('',''), default=(None,None), help='paired-end fragment length mean and std') -parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, help='empirical fragment length distribution') -#parser.add_argument('--cancer', required=False, action='store_true', default=False, help='produce tumor/normal datasets') -#parser.add_argument('-cm', type=str, required=False, metavar='', default=None, help="cancer mutation model directory") -#parser.add_argument('-cp', type=float, required=False, metavar='', default=0.8, help="tumor sample purity") -parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, help='empirical GC coverage bias distribution') -parser.add_argument('--job', nargs=2, type=int, required=False, metavar=('',''), default=(0,0), help='jobs IDs for generating reads in parallel') -parser.add_argument('--nnr', required=False, action='store_true', default=False, help='save non-N ref regions (for parallel jobs)') -parser.add_argument('--bam', required=False, action='store_true', default=False, help='output golden BAM file') -parser.add_argument('--vcf', required=False, action='store_true', default=False, help='output golden VCF file') -parser.add_argument('--fa', required=False, action='store_true', default=False, help='output FASTA instead of FASTQ') -parser.add_argument('--rng', type=int, required=False, metavar='', default=-1, help='rng seed value; identical RNG value should produce identical runs of the program, so things like read locations, variant positions, error positions, etc, should all be the same.') -parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') -parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') +parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") +parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") +parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") +parser.add_argument('-c', type=float, required=False, metavar='', default=10., help="average coverage") +parser.add_argument('-e', type=str, required=False, metavar='', default=None, help="sequencing error model") +parser.add_argument('-E', type=float, required=False, metavar='', default=-1, + help="rescale avg sequencing error rate to this") +parser.add_argument('-p', type=int, required=False, metavar='', default=2, help="ploidy") +parser.add_argument('-t', type=str, required=False, metavar='', default=None, + help="bed file containing targeted regions") +parser.add_argument('-to', type=float, required=False, metavar='', default=0.00, + help="off-target coverage scalar") +parser.add_argument('-m', type=str, required=False, metavar='', default=None, help="mutation model pickle file") +parser.add_argument('-M', type=float, required=False, metavar='', default=-1, + help="rescale avg mutation rate to this") +parser.add_argument('-Mb', type=str, required=False, metavar='', default=None, + help="bed file containing positional mut rates") +parser.add_argument('-N', type=int, required=False, metavar='', default=-1, + help="below this qual, replace base-calls with 'N's") +# parser.add_argument('-s', type=str, required=False, metavar='', default=None, help="input sample model") +parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") + +parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(None, None), + help='paired-end fragment length mean and std') +parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, + help='empirical fragment length distribution') +# parser.add_argument('--cancer', required=False, action='store_true', default=False, help='produce tumor/normal datasets') +# parser.add_argument('-cm', type=str, required=False, metavar='', default=None, help="cancer mutation model directory") +# parser.add_argument('-cp', type=float, required=False, metavar='', default=0.8, help="tumor sample purity") +parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, + help='empirical GC coverage bias distribution') +parser.add_argument('--job', nargs=2, type=int, required=False, metavar=('', ''), default=(0, 0), + help='jobs IDs for generating reads in parallel') +parser.add_argument('--nnr', required=False, action='store_true', default=False, + help='save non-N ref regions (for parallel jobs)') +parser.add_argument('--bam', required=False, action='store_true', default=False, help='output golden BAM file') +parser.add_argument('--vcf', required=False, action='store_true', default=False, help='output golden VCF file') +parser.add_argument('--fa', required=False, action='store_true', default=False, help='output FASTA instead of FASTQ') +parser.add_argument('--rng', type=int, required=False, metavar='', default=-1, + help='rng seed value; identical RNG value should produce identical runs of the program, so things like read locations, variant positions, error positions, etc, should all be the same.') +parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') +parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') args = parser.parse_args() # required args (REFERENCE, READLEN, OUT_PREFIX) = (args.r, args.R, args.o) # various dataset parameters -(COVERAGE, PLOIDS, INPUT_BED, SE_MODEL, SE_RATE, MUT_MODEL, MUT_RATE, MUT_BED, INPUT_VCF) = (args.c, args.p, args.t, args.e, args.E, args.m, args.M, args.Mb, args.v) +(COVERAGE, PLOIDS, INPUT_BED, SE_MODEL, SE_RATE, MUT_MODEL, MUT_RATE, MUT_BED, INPUT_VCF) = ( +args.c, args.p, args.t, args.e, args.E, args.m, args.M, args.Mb, args.v) # cancer params (disabled currently) -#(CANCER, CANCER_MODEL, CANCER_PURITY) = (args.cancer, args.cm, args.cp) +# (CANCER, CANCER_MODEL, CANCER_PURITY) = (args.cancer, args.cm, args.cp) (CANCER, CANCER_MODEL, CANCER_PURITY) = (False, None, 0.8) (OFFTARGET_SCALAR) = (args.to) # important flags (SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) -ONLY_VCF = (NO_FASTQ and SAVE_VCF and not(SAVE_BAM)) +ONLY_VCF = (NO_FASTQ and SAVE_VCF and not (SAVE_BAM)) if ONLY_VCF: - print 'Only producing VCF output, that should speed things up a bit...' + print('Only producing VCF output, that should speed things up a bit...') # sequencing model parameters (FRAGMENT_SIZE, FRAGMENT_STD) = args.pe FRAGLEN_MODEL = args.pe_model GC_BIAS_MODEL = args.gc_model -N_MAX_QUAL = args.N +N_MAX_QUAL = args.N # if user specified no fastq, no bam, no vcf, then inform them of their wasteful ways and exit if NO_FASTQ == True and SAVE_BAM == False and SAVE_VCF == False: - print '\nError: No files will be written when --no-fastq is specified without --vcf or --bam.' - exit(1) + print('\nError: No files will be written when --no-fastq is specified without --vcf or --bam.') + exit(1) # if user specified mean/std, use artificial fragment length distribution, otherwise use # the empirical model specified. If neither, then we're doing single-end reads. PAIRED_END = False PAIRED_END_ARTIFICIAL = False if FRAGMENT_SIZE != None and FRAGMENT_STD != None: - PAIRED_END = True - PAIRED_END_ARTIFICIAL = True + PAIRED_END = True + PAIRED_END_ARTIFICIAL = True elif FRAGLEN_MODEL != None: - PAIRED_END = True - PAIRED_END_ARTIFICIAL = False + PAIRED_END = True + PAIRED_END_ARTIFICIAL = False (MYJOB, NJOBS) = args.job if MYJOB == 0: - MYJOB = 1 - NJOBS = 1 + MYJOB = 1 + NJOBS = 1 SAVE_NON_N = args.nnr RNG_SEED = args.rng if RNG_SEED == -1: - RNG_SEED = random.randint(1,99999999) + RNG_SEED = random.randint(1, 99999999) random.seed(RNG_SEED) - """************************************************ **** INPUT ERROR CHECKING ************************************************""" - -checkFileOpen(REFERENCE,'ERROR: could not open reference',required=True) -checkFileOpen(INPUT_VCF,'ERROR: could not open input VCF',required=False) -checkFileOpen(INPUT_BED,'ERROR: could not open input BED',required=False) -requiredField(OUT_PREFIX,'ERROR: no output prefix provided') +checkFileOpen(REFERENCE, 'ERROR: could not open reference', required=True) +checkFileOpen(INPUT_VCF, 'ERROR: could not open input VCF', required=False) +checkFileOpen(INPUT_BED, 'ERROR: could not open input BED', required=False) +requiredField(OUT_PREFIX, 'ERROR: no output prefix provided') if (FRAGMENT_SIZE == None and FRAGMENT_STD != None) or (FRAGMENT_SIZE != None and FRAGMENT_STD == None): - print '\nError: --pe argument takes 2 space-separated arguments.\n' - exit(1) - + print('\nError: --pe argument takes 2 space-separated arguments.\n') + exit(1) """************************************************ **** LOAD INPUT MODELS ************************************************""" - # mutation models # -MUT_MODEL = parseInputMutationModel(MUT_MODEL,1) +MUT_MODEL = parseInputMutationModel(MUT_MODEL, 1) if CANCER: - CANCER_MODEL = parseInputMutationModel(CANCER_MODEL,2) + CANCER_MODEL = parseInputMutationModel(CANCER_MODEL, 2) if MUT_RATE < 0.: - MUT_RATE = None + MUT_RATE = None # sequencing error model # if SE_RATE < 0.: - SE_RATE = None + SE_RATE = None if SE_MODEL == None: - print 'Using default sequencing error model.' - SE_MODEL = SIM_PATH+'/models/errorModel_toy.p' - SE_CLASS = ReadContainer(READLEN,SE_MODEL,SE_RATE) + print('Using default sequencing error model.') + SE_MODEL = SIM_PATH + '/models/errorModel_toy.p' + SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) else: - # probably need to do some sanity checking - SE_CLASS = ReadContainer(READLEN,SE_MODEL,SE_RATE) + # probably need to do some sanity checking + SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) # GC-bias model # if GC_BIAS_MODEL == None: - print 'Using default gc-bias model.' - GC_BIAS_MODEL = SIM_PATH+'/models/gcBias_toy.p' - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL,'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] + print('Using default gc-bias model.') + GC_BIAS_MODEL = SIM_PATH + '/models/gcBias_toy.p' + [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) + GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] else: - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL,'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] + [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) + GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] # fragment length distribution # -if PAIRED_END and not(PAIRED_END_ARTIFICIAL): - print 'Using empirical fragment length distribution.' - [potential_vals, potential_prob] = pickle.load(open(FRAGLEN_MODEL,'rb')) - FRAGLEN_VALS = [] - FRAGLEN_PROB = [] - for i in xrange(len(potential_vals)): - if potential_vals[i] > READLEN: - FRAGLEN_VALS.append(potential_vals[i]) - FRAGLEN_PROB.append(potential_prob[i]) - # should probably add some validation and sanity-checking code here... - FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB,FRAGLEN_VALS) - FRAGMENT_SIZE = FRAGLEN_VALS[mean_ind_of_weighted_list(FRAGLEN_PROB)] +if PAIRED_END and not (PAIRED_END_ARTIFICIAL): + print('Using empirical fragment length distribution.') + [potential_vals, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) + FRAGLEN_VALS = [] + FRAGLEN_PROB = [] + for i in range(len(potential_vals)): + if potential_vals[i] > READLEN: + FRAGLEN_VALS.append(potential_vals[i]) + FRAGLEN_PROB.append(potential_prob[i]) + # should probably add some validation and sanity-checking code here... + FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) + FRAGMENT_SIZE = FRAGLEN_VALS[mean_ind_of_weighted_list(FRAGLEN_PROB)] # Indicate not writing FASTQ reads # if NO_FASTQ: - print 'Bypassing FASTQ generation...' + print('Bypassing FASTQ generation...') """************************************************ **** HARD-CODED CONSTANTS ************************************************""" - # target window size for read sampling. how many times bigger than read/frag length WINDOW_TARGET_SCALE = 100 # sub-window size for read sampling windows. this is basically the finest resolution # that can be obtained for targeted region boundaries and GC% bias -SMALL_WINDOW = 20 +SMALL_WINDOW = 20 # is the mutation model constant throughout the simulation? If so we can save a lot of time -CONSTANT_MUT_MODEL = True - +CONSTANT_MUT_MODEL = True """************************************************ **** DEFAULT MODELS ************************************************""" - # fragment length distribution: normal distribution that goes out to +- 6 standard deviations if PAIRED_END and PAIRED_END_ARTIFICIAL: - print 'Using artificial fragment length distribution. mean='+str(FRAGMENT_SIZE)+', std='+str(FRAGMENT_STD) - if FRAGMENT_STD == 0: - FRAGLEN_DISTRIBUTION = DiscreteDistribution([1],[FRAGMENT_SIZE],degenerateVal=FRAGMENT_SIZE) - else: - potential_vals = range(FRAGMENT_SIZE-6*FRAGMENT_STD,FRAGMENT_SIZE+6*FRAGMENT_STD+1) - FRAGLEN_VALS = [] - for i in xrange(len(potential_vals)): - if potential_vals[i] > READLEN: - FRAGLEN_VALS.append(potential_vals[i]) - FRAGLEN_PROB = [np.exp(-(((n-float(FRAGMENT_SIZE))**2)/(2*(FRAGMENT_STD**2)))) for n in FRAGLEN_VALS] - FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB,FRAGLEN_VALS) - + print('Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) + if FRAGMENT_STD == 0: + FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerateVal=FRAGMENT_SIZE) + else: + potential_vals = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) + FRAGLEN_VALS = [] + for i in range(len(potential_vals)): + if potential_vals[i] > READLEN: + FRAGLEN_VALS.append(potential_vals[i]) + FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in FRAGLEN_VALS] + FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) """************************************************ **** MORE INPUT ERROR CHECKING ************************************************""" - -isInRange(READLEN, 10,1000000, 'Error: -R must be between 10 and 1,000,000') -isInRange(COVERAGE, 0,1000000, 'Error: -c must be between 0 and 1,000,000') -isInRange(PLOIDS, 1,100, 'Error: -p must be between 1 and 100') -isInRange(OFFTARGET_SCALAR, 0,1, 'Error: -to must be between 0 and 1') +isInRange(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') +isInRange(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') +isInRange(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') +isInRange(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') if MUT_RATE != -1 and MUT_RATE != None: - isInRange(MUT_RATE, 0,0.3, 'Error: -M must be between 0 and 0.3') + isInRange(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') if SE_RATE != -1 and SE_RATE != None: - isInRange(SE_RATE, 0,0.3, 'Error: -E must be between 0 and 0.3') + isInRange(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') if NJOBS != 1: - isInRange(NJOBS, 1,1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1,1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1,NJOBS, 'Error: job id must be less than or equal to number of jobs') + isInRange(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') + isInRange(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') + isInRange(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') if N_MAX_QUAL != -1: - isInRange(N_MAX_QUAL, 1,40, 'Error: -N must be between 1 and 40') - + isInRange(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') """************************************************ **** MAIN() @@ -257,490 +259,508 @@ def main(): - - # index reference - refIndex = indexRef(REFERENCE) - if PAIRED_END: - N_HANDLING = ('random',FRAGMENT_SIZE) - else: - N_HANDLING = ('ignore',READLEN) - indices_by_refName = {refIndex[n][0]:n for n in xrange(len(refIndex))} - - # parse input variants, if present - inputVariants = [] - if INPUT_VCF != None: - if CANCER: - (sampNames, inputVariants) = parseVCF(INPUT_VCF,tumorNormal=True,ploidy=PLOIDS) - tumorInd = sampNames.index('TUMOR') - normalInd = sampNames.index('NORMAL') - else: - (sampNames, inputVariants) = parseVCF(INPUT_VCF,ploidy=PLOIDS) - for k in sorted(inputVariants.keys()): - inputVariants[k].sort() - - # parse input targeted regions, if present - inputRegions = {} - refList = [n[0] for n in refIndex] - if INPUT_BED != None: - with open(INPUT_BED,'r') as f: - for line in f: - [myChr,pos1,pos2] = line.strip().split('\t')[:3] - if myChr not in inputRegions: - inputRegions[myChr] = [-1] - inputRegions[myChr].extend([int(pos1),int(pos2)]) - # some validation - nInBedOnly = 0 - nInRefOnly = 0 - for k in refList: - if k not in inputRegions: - nInRefOnly += 1 - for k in inputRegions.keys(): - if not k in refList: - nInBedOnly += 1 - del inputRegions[k] - if nInRefOnly > 0: - print 'Warning: Reference contains sequences not found in targeted regions BED file.' - if nInBedOnly > 0: - print 'Warning: Targeted regions BED file contains sequence names not found in reference (regions ignored).' - - - # parse input mutation rate rescaling regions, if present - mutRateRegions = {} - mutRateValues = {} - if MUT_BED != None: - with open(MUT_BED,'r') as f: - for line in f: - [myChr,pos1,pos2,metaData] = line.strip().split('\t')[:4] - mutStr = re.findall(r"MUT_RATE=.*?(?=;)",metaData+';') - (pos1,pos2) = (int(pos1),int(pos2)) - if len(mutStr) and (pos2-pos1) > 1: - # mutRate = #_mutations / length_of_region, let's bound it by a reasonable amount - mutRate = max([0.0,min([float(mutStr[0][9:]),0.3])]) - if myChr not in mutRateRegions: - mutRateRegions[myChr] = [-1] - mutRateValues[myChr] = [0.0] - mutRateRegions[myChr].extend([pos1,pos2]) - mutRateValues.extend([mutRate*(pos2-pos1)]*2) - - # initialize output files (part I) - bamHeader = None - if SAVE_BAM: - bamHeader = [copy.deepcopy(refIndex)] - vcfHeader = None - if SAVE_VCF: - vcfHeader = [REFERENCE] - - # If processing jobs in parallel, precompute the independent regions that can be process separately - if NJOBS > 1: - parallelRegionList = getAllRefRegions(REFERENCE,refIndex,N_HANDLING,saveOutput=SAVE_NON_N) - (myRefs, myRegions) = partitionRefRegions(parallelRegionList,refIndex,MYJOB,NJOBS) - if not len(myRegions): - print 'This job id has no regions to process, exiting...' - exit(1) - for i in xrange(len(refIndex)-1,-1,-1): # delete reference not used in our job - if not refIndex[i][0] in myRefs: - del refIndex[i] - # if value of NJOBS is too high, let's change it to the maximum possible, to avoid output filename confusion - corrected_nJobs = min([NJOBS,sum([len(n) for n in parallelRegionList.values()])]) - else: - corrected_nJobs = 1 - - # initialize output files (part II) - if CANCER: - OFW = OutputFileWriter(OUT_PREFIX+'_normal',paired=PAIRED_END,BAM_header=bamHeader,VCF_header=vcfHeader,gzipped=GZIPPED_OUT,noFASTQ=NO_FASTQ,FASTA_instead=FASTA_INSTEAD) - OFW_CANCER = OutputFileWriter(OUT_PREFIX+'_tumor',paired=PAIRED_END,BAM_header=bamHeader,VCF_header=vcfHeader,gzipped=GZIPPED_OUT,jobTuple=(MYJOB,corrected_nJobs),noFASTQ=NO_FASTQ,FASTA_instead=FASTA_INSTEAD) - else: - OFW = OutputFileWriter(OUT_PREFIX,paired=PAIRED_END,BAM_header=bamHeader,VCF_header=vcfHeader,gzipped=GZIPPED_OUT,jobTuple=(MYJOB,corrected_nJobs),noFASTQ=NO_FASTQ,FASTA_instead=FASTA_INSTEAD) - OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] - - - """************************************************ + ALLOWED_NUCL = ['A', 'C', 'G', 'T'] + # index reference + refIndex = indexRef(REFERENCE) + if PAIRED_END: + N_HANDLING = ('random', FRAGMENT_SIZE) + else: + N_HANDLING = ('ignore', READLEN) + indices_by_refName = {refIndex[n][0]: n for n in range(len(refIndex))} + + # parse input variants, if present + inputVariants = [] + if INPUT_VCF != None: + if CANCER: + (sampNames, inputVariants) = parseVCF(INPUT_VCF, tumorNormal=True, ploidy=PLOIDS) + tumorInd = sampNames.index('TUMOR') + normalInd = sampNames.index('NORMAL') + else: + (sampNames, inputVariants) = parseVCF(INPUT_VCF, ploidy=PLOIDS) + for k in sorted(inputVariants.keys()): + inputVariants[k].sort() + + # parse input targeted regions, if present + inputRegions = {} + refList = [n[0] for n in refIndex] + if INPUT_BED != None: + with open(INPUT_BED, 'r') as f: + for line in f: + [myChr, pos1, pos2] = line.strip().split('\t')[:3] + if myChr not in inputRegions: + inputRegions[myChr] = [-1] + inputRegions[myChr].extend([int(pos1), int(pos2)]) + # some validation + nInBedOnly = 0 + nInRefOnly = 0 + for k in refList: + if k not in inputRegions: + nInRefOnly += 1 + for k in inputRegions.keys(): + if not k in refList: + nInBedOnly += 1 + del inputRegions[k] + if nInRefOnly > 0: + print('Warning: Reference contains sequences not found in targeted regions BED file.') + if nInBedOnly > 0: + print( + 'Warning: Targeted regions BED file contains sequence names not found in reference (regions ignored).') + + # parse input mutation rate rescaling regions, if present + mutRateRegions = {} + mutRateValues = {} + if MUT_BED != None: + with open(MUT_BED, 'r') as f: + for line in f: + [myChr, pos1, pos2, metaData] = line.strip().split('\t')[:4] + mutStr = re.findall(r"MUT_RATE=.*?(?=;)", metaData + ';') + (pos1, pos2) = (int(pos1), int(pos2)) + if len(mutStr) and (pos2 - pos1) > 1: + # mutRate = #_mutations / length_of_region, let's bound it by a reasonable amount + mutRate = max([0.0, min([float(mutStr[0][9:]), 0.3])]) + if myChr not in mutRateRegions: + mutRateRegions[myChr] = [-1] + mutRateValues[myChr] = [0.0] + mutRateRegions[myChr].extend([pos1, pos2]) + mutRateValues.extend([mutRate * (pos2 - pos1)] * 2) + + # initialize output files (part I) + bamHeader = None + if SAVE_BAM: + bamHeader = [copy.deepcopy(refIndex)] + vcfHeader = None + if SAVE_VCF: + vcfHeader = [REFERENCE] + + # If processing jobs in parallel, precompute the independent regions that can be process separately + if NJOBS > 1: + parallelRegionList = getAllRefRegions(REFERENCE, refIndex, N_HANDLING, saveOutput=SAVE_NON_N) + (myRefs, myRegions) = partitionRefRegions(parallelRegionList, refIndex, MYJOB, NJOBS) + if not len(myRegions): + print('This job id has no regions to process, exiting...') + exit(1) + for i in range(len(refIndex) - 1, -1, -1): # delete reference not used in our job + if not refIndex[i][0] in myRefs: + del refIndex[i] + # if value of NJOBS is too high, let's change it to the maximum possible, to avoid output filename confusion + corrected_nJobs = min([NJOBS, sum([len(n) for n in parallelRegionList.values()])]) + else: + corrected_nJobs = 1 + + # initialize output files (part II) + if CANCER: + OFW = OutputFileWriter(OUT_PREFIX + '_normal', paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, + gzipped=GZIPPED_OUT, noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) + OFW_CANCER = OutputFileWriter(OUT_PREFIX + '_tumor', paired=PAIRED_END, BAM_header=bamHeader, + VCF_header=vcfHeader, gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), + noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) + else: + OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, + gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), noFASTQ=NO_FASTQ, + FASTA_instead=FASTA_INSTEAD) + OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] + + """************************************************ **** LET'S GET THIS PARTY STARTED... ************************************************""" - - readNameCount = 1 # keep track of the number of reads we've sampled, for read-names - unmapped_records = [] - - for RI in xrange(len(refIndex)): - - # read in reference sequence and notate blocks of Ns - (refSequence,N_regions) = readRef(REFERENCE,refIndex[RI],N_HANDLING) - - # if we're processing jobs in parallel only take the regions relevant for the current job - if NJOBS > 1: - for i in xrange(len(N_regions['non_N'])-1,-1,-1): - if not (refIndex[RI][0],N_regions['non_N'][i][0],N_regions['non_N'][i][1]) in myRegions: - del N_regions['non_N'][i] - - # count total bp we'll be spanning so we can get an idea of how far along we are (for printing progress indicators) - total_bp_span = sum([n[1]-n[0] for n in N_regions['non_N']]) - currentProgress = 0 - currentPercent = 0 - havePrinted100 = False - - # prune invalid input variants, e.g variants that: - # - try to delete or alter any N characters - # - don't match the reference base at their specified position - # - any alt allele contains anything other than allowed characters - validVariants = [] - nSkipped = [0,0,0] - if refIndex[RI][0] in inputVariants: - for n in inputVariants[refIndex[RI][0]]: - span = (n[0],n[0]+len(n[1])) - rseq = str(refSequence[span[0]-1:span[1]-1]) # -1 because going from VCF coords to array coords - anyBadChr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) - if rseq != n[1]: - nSkipped[0] += 1 - continue - elif 'N' in rseq: - nSkipped[1] += 1 - continue - elif anyBadChr: - nSkipped[2] += 1 - continue - #if bisect.bisect(N_regions['big'],span[0])%2 or bisect.bisect(N_regions['big'],span[1])%2: - # continue - validVariants.append(n) - print 'found',len(validVariants),'valid variants for '+refIndex[RI][0]+' in input VCF...' - if any(nSkipped): - print sum(nSkipped),'variants skipped...' - print ' - ['+str(nSkipped[0])+'] ref allele does not match reference' - print ' - ['+str(nSkipped[1])+'] attempting to insert into N-region' - print ' - ['+str(nSkipped[2])+'] alt allele contains non-ACGT characters' - - - # add large random structural variants - # - # TBD!!! - - - # determine sampling windows based on read length, large N regions, and structural mutations. - # in order to obtain uniform coverage, windows should overlap by: - # - READLEN, if single-end reads - # - FRAGMENT_SIZE (mean), if paired-end reads - # ploidy is fixed per large sampling window, - # coverage distributions due to GC% and targeted regions are specified within these windows - samplingWindows = [] - ALL_VARIANTS_OUT = {} - sequences = None - if PAIRED_END: - targSize = WINDOW_TARGET_SCALE*FRAGMENT_SIZE - overlap = FRAGMENT_SIZE - overlap_minWindowSize = max(FRAGLEN_DISTRIBUTION.values) + 10 - else: - targSize = WINDOW_TARGET_SCALE*READLEN - overlap = READLEN - overlap_minWindowSize = READLEN + 10 - - print '--------------------------------' - if ONLY_VCF: - print 'generating vcf...' - else: - print 'sampling reads...' - tt = time.time() - - for i in xrange(len(N_regions['non_N'])): - (pi,pf) = N_regions['non_N'][i] - nTargWindows = max([1,(pf-pi)/targSize]) - bpd = int((pf-pi)/float(nTargWindows)) - #bpd += GC_WINDOW_SIZE - bpd%GC_WINDOW_SIZE - - #print len(refSequence), (pi,pf), nTargWindows - #print structuralVars - - # if for some reason our region is too small to process, skip it! (sorry) - if nTargWindows == 1 and (pf-pi) < overlap_minWindowSize: - #print 'Does this ever happen?' - continue - - start = pi - end = min([start+bpd,pf]) - #print '------------------RAWR:', (pi,pf), nTargWindows, bpd - varsFromPrevOverlap = [] - varsCancerFromPrevOverlap = [] - vindFromPrev = 0 - isLastTime = False - havePrinted100 = False - - while True: - - # which inserted variants are in this window? - varsInWindow = [] - updated = False - for j in xrange(vindFromPrev,len(validVariants)): - vPos = validVariants[j][0] - if vPos > start and vPos < end: # update: changed >= to >, so variant cannot be inserted in first position - varsInWindow.append(tuple([vPos-1]+list(validVariants[j][1:]))) # vcf --> array coords - if vPos >= end-overlap-1 and updated == False: - updated = True - vindFromPrev = j - if vPos >= end: - break - - # determine which structural variants will affect our sampling window positions - structuralVars = [] - for n in varsInWindow: - bufferNeeded = max([max([abs(len(n[1])-len(alt_allele)),1]) for alt_allele in n[2]]) # change: added abs() so that insertions are also buffered. - structuralVars.append((n[0]-1,bufferNeeded)) # -1 because going from VCF coords to array coords - - # adjust end-position of window based on inserted structural mutations - buffer_added = 0 - keepGoing = True - while keepGoing: - keepGoing = False - for n in structuralVars: - # adding "overlap" here to prevent SVs from being introduced in overlap regions - # (which can cause problems if random mutations from the previous window land on top of them) - delta = (end-1) - (n[0] + n[1]) - 2 - overlap - if delta < 0: - #print 'DELTA:', delta, 'END:', end, '-->', - buffer_added = -delta - end += buffer_added - ####print end - keepGoing = True - break - next_start = end-overlap - next_end = min([next_start+bpd,pf]) - if next_end-next_start < bpd: - end = next_end - isLastTime = True - - # print progress indicator - ####print 'PROCESSING WINDOW:',(start,end), [buffer_added], 'next:', (next_start,next_end) - currentProgress += end-start - newPercent = int((currentProgress*100)/float(total_bp_span)) - if newPercent > currentPercent: - if newPercent <= 99 or (newPercent == 100 and not havePrinted100): - sys.stdout.write(str(newPercent)+'% ') - sys.stdout.flush() - currentPercent = newPercent - if currentPercent == 100: - havePrinted100 = True - - skip_this_window = False - - # compute coverage modifiers - coverage_avg = None - coverage_dat = [GC_WINDOW_SIZE,GC_SCALE_VAL,[]] - if INPUT_BED == None: - coverage_dat[2] = [1.0]*(end-start) - else: - if refIndex[RI][0] not in inputRegions: - coverage_dat[2] = [OFFTARGET_SCALAR]*(end-start) - else: - for j in xrange(start,end): - if not(bisect.bisect(inputRegions[refIndex[RI][0]],j)%2): - coverage_dat[2].append(1.0) - else: - coverage_dat[2].append(OFFTARGET_SCALAR) - - #print len(coverage_dat[2]), sum(coverage_dat[2]) - if sum(coverage_dat[2]) < LOW_COV_THRESH: - coverage_avg = 0.0 - skip_this_window = True - - # check for small window sizes - if (end-start) < overlap_minWindowSize: - skip_this_window = True - - if skip_this_window: - # skip window, save cpu time - start = next_start - end = next_end - if isLastTime: - break - if end >= pf: - isLastTime = True - varsFromPrevOverlap = [] - continue - - # construct sequence data that we will sample reads from - if sequences == None: - sequences = SequenceContainer(start,refSequence[start:end],PLOIDS,overlap,READLEN,[MUT_MODEL]*PLOIDS,MUT_RATE,onlyVCF=ONLY_VCF) - else: - sequences.update(start,refSequence[start:end],PLOIDS,overlap,READLEN,[MUT_MODEL]*PLOIDS,MUT_RATE) - - # insert variants - sequences.insert_mutations(varsFromPrevOverlap + varsInWindow) - all_inserted_variants = sequences.random_mutations() - #print all_inserted_variants - - # init coverage - if sum(coverage_dat[2]) >= LOW_COV_THRESH: - if PAIRED_END: - coverage_avg = sequences.init_coverage(tuple(coverage_dat),fragDist=FRAGLEN_DISTRIBUTION) - else: - coverage_avg = sequences.init_coverage(tuple(coverage_dat)) - - # unused cancer stuff - if CANCER: - tumor_sequences = SequenceContainer(start,refSequence[start:end],PLOIDS,overlap,READLEN,[CANCER_MODEL]*PLOIDS,MUT_RATE,coverage_dat) - tumor_sequences.insert_mutations(varsCancerFromPrevOverlap + all_inserted_variants) - all_cancer_variants = tumor_sequences.random_mutations() - - # which variants do we need to keep for next time (because of window overlap)? - varsFromPrevOverlap = [] - varsCancerFromPrevOverlap = [] - for n in all_inserted_variants: - if n[0] >= end-overlap-1: - varsFromPrevOverlap.append(n) - if CANCER: - for n in all_cancer_variants: - if n[0] >= end-overlap-1: - varsCancerFromPrevOverlap.append(n) - - # if we're only producing VCF, no need to go through the hassle of generating reads - if ONLY_VCF: - pass - else: - if PAIRED_END: - readsToSample = int(((end-start)*float(COVERAGE)*coverage_avg)/(2*READLEN))+1 - else: - readsToSample = int(((end-start)*float(COVERAGE)*coverage_avg)/(READLEN))+1 - - # if coverage is so low such that no reads are to be sampled, skip region - # (i.e., remove buffer of +1 reads we add to every window) - if readsToSample == 1 and sum(coverage_dat[2]) < LOW_COV_THRESH: - readsToSample = 0 - - # sample reads - ASDF2_TT = time.time() - for i in xrange(readsToSample): - - isUnmapped = [] - if PAIRED_END: - myFraglen = FRAGLEN_DISTRIBUTION.sample() - myReadData = sequences.sample_read(SE_CLASS,myFraglen) - if myReadData == None: # skip if we failed to find a valid position to sample read - continue - if myReadData[0][0] == None: - isUnmapped.append(True) - else: - isUnmapped.append(False) - myReadData[0][0] += start # adjust mapping position based on window start - if myReadData[1][0] == None: - isUnmapped.append(True) - else: - isUnmapped.append(False) - myReadData[1][0] += start - else: - myReadData = sequences.sample_read(SE_CLASS) - if myReadData == None: # skip if we failed to find a valid position to sample read - continue - if myReadData[0][0] == None: # unmapped read (lives in large insertion) - isUnmapped = [True] - else: - isUnmapped = [False] - myReadData[0][0] += start # adjust mapping position based on window start - - if NJOBS > 1: - myReadName = OUT_PREFIX_NAME+'-j'+str(MYJOB)+'-'+refIndex[RI][0]+'-r'+str(readNameCount) - else: - myReadName = OUT_PREFIX_NAME+'-'+refIndex[RI][0]+'-'+str(readNameCount) - readNameCount += len(myReadData) - - # if desired, replace all low-quality bases with Ns - if N_MAX_QUAL > -1: - for j in xrange(len(myReadData)): - myReadString = [n for n in myReadData[j][2]] - for k in xrange(len(myReadData[j][3])): - adjusted_qual = ord(myReadData[j][3][k])-SE_CLASS.offQ - if adjusted_qual <= N_MAX_QUAL: - myReadString[k] = 'N' - myReadData[j][2] = ''.join(myReadString) - - # if read (or read + mate for PE) are unmapped, put them at end of bam file - if all(isUnmapped): - if PAIRED_END: - unmapped_records.append((myReadName+'/1',myReadData[0],109)) - unmapped_records.append((myReadName+'/2',myReadData[1],157)) - else: - unmapped_records.append((myReadName+'/1',myReadData[0],4)) - - # write read data out to FASTQ and BAM files, bypass FASTQ if option specified - myRefIndex = indices_by_refName[refIndex[RI][0]] - if len(myReadData) == 1: - if NO_FASTQ != True: - OFW.writeFASTQRecord(myReadName,myReadData[0][2],myReadData[0][3]) - if SAVE_BAM: - if isUnmapped[0] == False: - OFW.writeBAMRecord(myRefIndex, myReadName+'/1', myReadData[0][0], myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=0) - elif len(myReadData) == 2: - if NO_FASTQ != True: - OFW.writeFASTQRecord(myReadName,myReadData[0][2],myReadData[0][3],read2=myReadData[1][2],qual2=myReadData[1][3]) - if SAVE_BAM: - if isUnmapped[0] == False and isUnmapped[1] == False: - OFW.writeBAMRecord(myRefIndex, myReadName+'/1', myReadData[0][0], myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=99, matePos=myReadData[1][0]) - OFW.writeBAMRecord(myRefIndex, myReadName+'/2', myReadData[1][0], myReadData[1][1], myReadData[1][2], myReadData[1][3], samFlag=147, matePos=myReadData[0][0]) - elif isUnmapped[0] == False and isUnmapped[1] == True: - OFW.writeBAMRecord(myRefIndex, myReadName+'/1', myReadData[0][0], myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=105, matePos=myReadData[0][0]) - OFW.writeBAMRecord(myRefIndex, myReadName+'/2', myReadData[0][0], myReadData[1][1], myReadData[1][2], myReadData[1][3], samFlag=149, matePos=myReadData[0][0], alnMapQual=0) - elif isUnmapped[0] == True and isUnmapped[1] == False: - OFW.writeBAMRecord(myRefIndex, myReadName+'/1', myReadData[1][0], myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=101, matePos=myReadData[1][0], alnMapQual=0) - OFW.writeBAMRecord(myRefIndex, myReadName+'/2', myReadData[1][0], myReadData[1][1], myReadData[1][2], myReadData[1][3], samFlag=153, matePos=myReadData[1][0]) - else: - print '\nError: Unexpected number of reads generated...\n' - exit(1) - #print 'READS:',time.time()-ASDF2_TT - - if not isLastTime: - OFW.flushBuffers(bamMax=next_start) - else: - OFW.flushBuffers(bamMax=end+1) - - # tally up all the variants that got successfully introduced - for n in all_inserted_variants: - ALL_VARIANTS_OUT[n] = True - - # prepare indices of next window - start = next_start - end = next_end - if isLastTime: - break - if end >= pf: - isLastTime = True - - if currentPercent != 100 and not havePrinted100: - print '100%' - else: - print '' - if ONLY_VCF: - print 'VCF generation completed in', - else: - print 'Read sampling completed in', - print int(time.time()-tt),'(sec)' - - # write all output variants for this reference - if SAVE_VCF: - print 'Writing output VCF...' - for k in sorted(ALL_VARIANTS_OUT.keys()): - currentRef = refIndex[RI][0] - myID = '.' - myQual = '.' - myFilt = 'PASS' - # k[0] + 1 because we're going back to 1-based vcf coords - OFW.writeVCFRecord(currentRef, str(int(k[0])+1), myID, k[1], k[2], myQual, myFilt, k[4]) - - #break - - # write unmapped reads to bam file - if SAVE_BAM and len(unmapped_records): - print 'writing unmapped reads to bam file...' - for umr in unmapped_records: - if PAIRED_END: - OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], matePos=0, alnMapQual=0) - else: - OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], alnMapQual=0) - - # close output files - OFW.closeFiles() - if CANCER: - OFW_CANCER.closeFiles() + readNameCount = 1 # keep track of the number of reads we've sampled, for read-names + unmapped_records = [] + + for RI in range(len(refIndex)): + + # read in reference sequence and notate blocks of Ns + (refSequence, N_regions) = readRef(REFERENCE, refIndex[RI], N_HANDLING) + + # if we're processing jobs in parallel only take the regions relevant for the current job + if NJOBS > 1: + for i in range(len(N_regions['non_N']) - 1, -1, -1): + if not (refIndex[RI][0], N_regions['non_N'][i][0], N_regions['non_N'][i][1]) in myRegions: + del N_regions['non_N'][i] + + # count total bp we'll be spanning so we can get an idea of how far along we are (for printing progress indicators) + total_bp_span = sum([n[1] - n[0] for n in N_regions['non_N']]) + currentProgress = 0 + currentPercent = 0 + havePrinted100 = False + + # prune invalid input variants, e.g variants that: + # - try to delete or alter any N characters + # - don't match the reference base at their specified position + # - any alt allele contains anything other than allowed characters + validVariants = [] + nSkipped = [0, 0, 0] + if refIndex[RI][0] in inputVariants: + for n in inputVariants[refIndex[RI][0]]: + span = (n[0], n[0] + len(n[1])) + rseq = str(refSequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords + anyBadChr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) + if rseq != n[1]: + nSkipped[0] += 1 + continue + elif 'N' in rseq: + nSkipped[1] += 1 + continue + elif anyBadChr: + nSkipped[2] += 1 + continue + # if bisect.bisect(N_regions['big'],span[0])%2 or bisect.bisect(N_regions['big'],span[1])%2: + # continue + validVariants.append(n) + print('found', len(validVariants), 'valid variants for ' + refIndex[RI][0] + ' in input VCF...') + if any(nSkipped): + print(sum(nSkipped), 'variants skipped...') + print(' - [' + str(nSkipped[0]) + '] ref allele does not match reference') + print(' - [' + str(nSkipped[1]) + '] attempting to insert into N-region') + print(' - [' + str(nSkipped[2]) + '] alt allele contains non-ACGT characters') + + # add large random structural variants + # + # TBD!!! + + # determine sampling windows based on read length, large N regions, and structural mutations. + # in order to obtain uniform coverage, windows should overlap by: + # - READLEN, if single-end reads + # - FRAGMENT_SIZE (mean), if paired-end reads + # ploidy is fixed per large sampling window, + # coverage distributions due to GC% and targeted regions are specified within these windows + samplingWindows = [] + ALL_VARIANTS_OUT = {} + sequences = None + if PAIRED_END: + targSize = WINDOW_TARGET_SCALE * FRAGMENT_SIZE + overlap = FRAGMENT_SIZE + overlap_minWindowSize = max(FRAGLEN_DISTRIBUTION.values) + 10 + else: + targSize = WINDOW_TARGET_SCALE * READLEN + overlap = READLEN + overlap_minWindowSize = READLEN + 10 + + print('--------------------------------') + if ONLY_VCF: + print('generating vcf...') + else: + print('sampling reads...') + tt = time.time() + + for i in range(len(N_regions['non_N'])): + (pi, pf) = N_regions['non_N'][i] + nTargWindows = max([1, (pf - pi) / targSize]) + bpd = int((pf - pi) / float(nTargWindows)) + # bpd += GC_WINDOW_SIZE - bpd%GC_WINDOW_SIZE + + # print len(refSequence), (pi,pf), nTargWindows + # print structuralVars + + # if for some reason our region is too small to process, skip it! (sorry) + if nTargWindows == 1 and (pf - pi) < overlap_minWindowSize: + # print 'Does this ever happen?' + continue + + start = pi + end = min([start + bpd, pf]) + # print '------------------RAWR:', (pi,pf), nTargWindows, bpd + varsFromPrevOverlap = [] + varsCancerFromPrevOverlap = [] + vindFromPrev = 0 + isLastTime = False + havePrinted100 = False + + while True: + + # which inserted variants are in this window? + varsInWindow = [] + updated = False + for j in range(vindFromPrev, len(validVariants)): + vPos = validVariants[j][0] + if vPos > start and vPos < end: # update: changed >= to >, so variant cannot be inserted in first position + varsInWindow.append(tuple([vPos - 1] + list(validVariants[j][1:]))) # vcf --> array coords + if vPos >= end - overlap - 1 and updated == False: + updated = True + vindFromPrev = j + if vPos >= end: + break + + # determine which structural variants will affect our sampling window positions + structuralVars = [] + for n in varsInWindow: + bufferNeeded = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in + n[2]]) # change: added abs() so that insertions are also buffered. + structuralVars.append((n[0] - 1, bufferNeeded)) # -1 because going from VCF coords to array coords + + # adjust end-position of window based on inserted structural mutations + buffer_added = 0 + keepGoing = True + while keepGoing: + keepGoing = False + for n in structuralVars: + # adding "overlap" here to prevent SVs from being introduced in overlap regions + # (which can cause problems if random mutations from the previous window land on top of them) + delta = (end - 1) - (n[0] + n[1]) - 2 - overlap + if delta < 0: + # print 'DELTA:', delta, 'END:', end, '-->', + buffer_added = -delta + end += buffer_added + ####print end + keepGoing = True + break + next_start = end - overlap + next_end = min([next_start + bpd, pf]) + if next_end - next_start < bpd: + end = next_end + isLastTime = True + + # print progress indicator + ####print 'PROCESSING WINDOW:',(start,end), [buffer_added], 'next:', (next_start,next_end) + currentProgress += end - start + newPercent = int((currentProgress * 100) / float(total_bp_span)) + if newPercent > currentPercent: + if newPercent <= 99 or (newPercent == 100 and not havePrinted100): + sys.stdout.write(str(newPercent) + '% ') + sys.stdout.flush() + currentPercent = newPercent + if currentPercent == 100: + havePrinted100 = True + + skip_this_window = False + + # compute coverage modifiers + coverage_avg = None + coverage_dat = [GC_WINDOW_SIZE, GC_SCALE_VAL, []] + if INPUT_BED == None: + coverage_dat[2] = [1.0] * (end - start) + else: + if refIndex[RI][0] not in inputRegions: + coverage_dat[2] = [OFFTARGET_SCALAR] * (end - start) + else: + for j in range(start, end): + if not (bisect.bisect(inputRegions[refIndex[RI][0]], j) % 2): + coverage_dat[2].append(1.0) + else: + coverage_dat[2].append(OFFTARGET_SCALAR) + + # print len(coverage_dat[2]), sum(coverage_dat[2]) + if sum(coverage_dat[2]) < LOW_COV_THRESH: + coverage_avg = 0.0 + skip_this_window = True + + # check for small window sizes + if (end - start) < overlap_minWindowSize: + skip_this_window = True + + if skip_this_window: + # skip window, save cpu time + start = next_start + end = next_end + if isLastTime: + break + if end >= pf: + isLastTime = True + varsFromPrevOverlap = [] + continue + + # construct sequence data that we will sample reads from + if sequences == None: + sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, + [MUT_MODEL] * PLOIDS, MUT_RATE, onlyVCF=ONLY_VCF) + else: + sequences.update(start, refSequence[start:end], PLOIDS, overlap, READLEN, [MUT_MODEL] * PLOIDS, + MUT_RATE) + + # insert variants + sequences.insert_mutations(varsFromPrevOverlap + varsInWindow) + all_inserted_variants = sequences.random_mutations() + # print all_inserted_variants + + # init coverage + if sum(coverage_dat[2]) >= LOW_COV_THRESH: + if PAIRED_END: + coverage_avg = sequences.init_coverage(tuple(coverage_dat), fragDist=FRAGLEN_DISTRIBUTION) + else: + coverage_avg = sequences.init_coverage(tuple(coverage_dat)) + + # unused cancer stuff + if CANCER: + tumor_sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, + [CANCER_MODEL] * PLOIDS, MUT_RATE, coverage_dat) + tumor_sequences.insert_mutations(varsCancerFromPrevOverlap + all_inserted_variants) + all_cancer_variants = tumor_sequences.random_mutations() + + # which variants do we need to keep for next time (because of window overlap)? + varsFromPrevOverlap = [] + varsCancerFromPrevOverlap = [] + for n in all_inserted_variants: + if n[0] >= end - overlap - 1: + varsFromPrevOverlap.append(n) + if CANCER: + for n in all_cancer_variants: + if n[0] >= end - overlap - 1: + varsCancerFromPrevOverlap.append(n) + + # if we're only producing VCF, no need to go through the hassle of generating reads + if ONLY_VCF: + pass + else: + if PAIRED_END: + readsToSample = int(((end - start) * float(COVERAGE) * coverage_avg) / (2 * READLEN)) + 1 + else: + readsToSample = int(((end - start) * float(COVERAGE) * coverage_avg) / (READLEN)) + 1 + + # if coverage is so low such that no reads are to be sampled, skip region + # (i.e., remove buffer of +1 reads we add to every window) + if readsToSample == 1 and sum(coverage_dat[2]) < LOW_COV_THRESH: + readsToSample = 0 + + # sample reads + ASDF2_TT = time.time() + for i in range(readsToSample): + + isUnmapped = [] + if PAIRED_END: + myFraglen = FRAGLEN_DISTRIBUTION.sample() + myReadData = sequences.sample_read(SE_CLASS, myFraglen) + if myReadData == None: # skip if we failed to find a valid position to sample read + continue + if myReadData[0][0] == None: + isUnmapped.append(True) + else: + isUnmapped.append(False) + myReadData[0][0] += start # adjust mapping position based on window start + if myReadData[1][0] == None: + isUnmapped.append(True) + else: + isUnmapped.append(False) + myReadData[1][0] += start + else: + myReadData = sequences.sample_read(SE_CLASS) + if myReadData == None: # skip if we failed to find a valid position to sample read + continue + if myReadData[0][0] == None: # unmapped read (lives in large insertion) + isUnmapped = [True] + else: + isUnmapped = [False] + myReadData[0][0] += start # adjust mapping position based on window start + + if NJOBS > 1: + myReadName = OUT_PREFIX_NAME + '-j' + str(MYJOB) + '-' + refIndex[RI][0] + '-r' + str( + readNameCount) + else: + myReadName = OUT_PREFIX_NAME + '-' + refIndex[RI][0] + '-' + str(readNameCount) + readNameCount += len(myReadData) + + # if desired, replace all low-quality bases with Ns + if N_MAX_QUAL > -1: + for j in range(len(myReadData)): + myReadString = [n for n in myReadData[j][2]] + for k in range(len(myReadData[j][3])): + adjusted_qual = ord(myReadData[j][3][k]) - SE_CLASS.offQ + if adjusted_qual <= N_MAX_QUAL: + myReadString[k] = 'N' + myReadData[j][2] = ''.join(myReadString) + + # if read (or read + mate for PE) are unmapped, put them at end of bam file + if all(isUnmapped): + if PAIRED_END: + unmapped_records.append((myReadName + '/1', myReadData[0], 109)) + unmapped_records.append((myReadName + '/2', myReadData[1], 157)) + else: + unmapped_records.append((myReadName + '/1', myReadData[0], 4)) + + # write read data out to FASTQ and BAM files, bypass FASTQ if option specified + myRefIndex = indices_by_refName[refIndex[RI][0]] + if len(myReadData) == 1: + if NO_FASTQ != True: + OFW.writeFASTQRecord(myReadName, myReadData[0][2], myReadData[0][3]) + if SAVE_BAM: + if isUnmapped[0] == False: + OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=0) + elif len(myReadData) == 2: + if NO_FASTQ != True: + OFW.writeFASTQRecord(myReadName, myReadData[0][2], myReadData[0][3], + read2=myReadData[1][2], qual2=myReadData[1][3]) + if SAVE_BAM: + if isUnmapped[0] == False and isUnmapped[1] == False: + OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=99, + matePos=myReadData[1][0]) + OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[1][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + samFlag=147, matePos=myReadData[0][0]) + elif isUnmapped[0] == False and isUnmapped[1] == True: + OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], + samFlag=105, matePos=myReadData[0][0]) + OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[0][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + samFlag=149, matePos=myReadData[0][0], alnMapQual=0) + elif isUnmapped[0] == True and isUnmapped[1] == False: + OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[1][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], + samFlag=101, matePos=myReadData[1][0], alnMapQual=0) + OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[1][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + samFlag=153, matePos=myReadData[1][0]) + else: + print('\nError: Unexpected number of reads generated...\n') + exit(1) + # print 'READS:',time.time()-ASDF2_TT + + if not isLastTime: + OFW.flushBuffers(bamMax=next_start) + else: + OFW.flushBuffers(bamMax=end + 1) + + # tally up all the variants that got successfully introduced + for n in all_inserted_variants: + ALL_VARIANTS_OUT[n] = True + + # prepare indices of next window + start = next_start + end = next_end + if isLastTime: + break + if end >= pf: + isLastTime = True + + if currentPercent != 100 and not havePrinted100: + print('100%') + else: + print('') + if ONLY_VCF: + print('VCF generation completed in', end=' ') + else: + print('Read sampling completed in', end=' ') + print(int(time.time() - tt), '(sec)') + + # write all output variants for this reference + if SAVE_VCF: + print('Writing output VCF...') + for k in sorted(ALL_VARIANTS_OUT.keys()): + currentRef = refIndex[RI][0] + myID = '.' + myQual = '.' + myFilt = 'PASS' + # k[0] + 1 because we're going back to 1-based vcf coords + OFW.writeVCFRecord(currentRef, str(int(k[0]) + 1), myID, k[1], k[2], myQual, myFilt, k[4]) + + # break + + # write unmapped reads to bam file + if SAVE_BAM and len(unmapped_records): + print('writing unmapped reads to bam file...') + for umr in unmapped_records: + if PAIRED_END: + OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], matePos=0, + alnMapQual=0) + else: + OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], alnMapQual=0) + + # close output files + OFW.closeFiles() + if CANCER: + OFW_CANCER.closeFiles() if __name__ == '__main__': - main() - - - + main() diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 5b77db0..f72d079 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -4,30 +4,36 @@ import gzip from struct import pack -from biopython_modified_bgzf import BgzfWriter +from py.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 -# return the reverse complement of a string -RC_DICT = {'A':'T','C':'G','G':'C','T':'A','N':'N'} + + + def RC(s): - return ''.join(RC_DICT[n] for n in s[::-1]) + # return the reverse complement of a string + RC_DICT = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} + return ''.join(RC_DICT[n] for n in s[::-1]) + # SAMtools reg2bin function -def reg2bin(a,b): - b -= 1 - if (a>>14 == b>>14): return ((1<<15)-1)/7 + (a>>14) - if (a>>17 == b>>17): return ((1<<12)-1)/7 + (a>>17) - if (a>>20 == b>>20): return ((1<<9)-1)/7 + (a>>20) - if (a>>23 == b>>23): return ((1<<6)-1)/7 + (a>>23) - if (a>>26 == b>>26): return ((1<<3)-1)/7 + (a>>26) - return 0 +def reg2bin(a, b): + b -= 1 + if (a >> 14 == b >> 14): return ((1 << 15) - 1) / 7 + (a >> 14) + if (a >> 17 == b >> 17): return ((1 << 12) - 1) / 7 + (a >> 17) + if (a >> 20 == b >> 20): return ((1 << 9) - 1) / 7 + (a >> 20) + if (a >> 23 == b >> 23): return ((1 << 6) - 1) / 7 + (a >> 23) + if (a >> 26 == b >> 26): return ((1 << 3) - 1) / 7 + (a >> 26) + return 0 + -CIGAR_PACKED = {'M':0, 'I':1, 'D':2, 'N':3, 'S':4, 'H':5, 'P':6, '=':7, 'X':8} -SEQ_PACKED = {'=':0, 'A':1, 'C':2, 'M':3, 'G':4, 'R':5, 'S':6, 'V':7, - 'T':8, 'W':9, 'Y':10,'H':11,'K':12,'D':13,'B':14,'N':15} +CIGAR_PACKED = {'M': 0, 'I': 1, 'D': 2, 'N': 3, 'S': 4, 'H': 5, 'P': 6, '=': 7, 'X': 8} +SEQ_PACKED = {'=': 0, 'A': 1, 'C': 2, 'M': 3, 'G': 4, 'R': 5, 'S': 6, 'V': 7, + 'T': 8, 'W': 9, 'Y': 10, 'H': 11, 'K': 12, 'D': 13, 'B': 14, 'N': 15} + +BUFFER_BATCH_SIZE = 1000 # write out to file after this many reads -BUFFER_BATCH_SIZE = 1000 # write out to file after this many reads # # outFQ = path to output FASTQ prefix @@ -37,223 +43,229 @@ def reg2bin(a,b): # gzipped = True for compressed FASTQ/VCF, False for uncompressed # class OutputFileWriter: - def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gzipped=False, jobTuple=(1,1), noFASTQ=False, FASTA_instead=False): - - jobSuffix = '' - if jobTuple[1] > 1: - jsl = len(str(jobTuple[1])) - jsb = '0'*(jsl-len(str(jobTuple[0]))) - jobSuffix = '.job'+jsb+str(jobTuple[0])+'of'+str(jobTuple[1]) - - self.FASTA_instead = FASTA_instead - if FASTA_instead: - fq1 = outPrefix+'_read1.fa'+jobSuffix - fq2 = outPrefix+'_read2.fa'+jobSuffix - else: - fq1 = outPrefix+'_read1.fq'+jobSuffix - fq2 = outPrefix+'_read2.fq'+jobSuffix - bam = outPrefix+'_golden.bam'+jobSuffix - vcf = outPrefix+'_golden.vcf'+jobSuffix - - self.noFASTQ = noFASTQ - if not self.noFASTQ: - if gzipped: - self.fq1_file = gzip.open(fq1+'.gz', 'wb') - else: - self.fq1_file = open(fq1,'w') - - self.fq2_file = None - if paired: - if gzipped: - self.fq2_file = gzip.open(fq2+'.gz', 'wb') - else: - self.fq2_file = open(fq2,'w') - - # - # VCF OUTPUT - # - self.vcf_file = None - if VCF_header != None: - if gzipped: - self.vcf_file = gzip.open(vcf+'.gz', 'wb') - else: - self.vcf_file = open(vcf, 'wb') - - # WRITE VCF HEADER (if parallel: only for first job) - if jobTuple[0] == 1: - self.vcf_file.write('##fileformat=VCFv4.1\n') - self.vcf_file.write('##reference='+VCF_header[0]+'\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') - #self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n') - - # - # BAM OUTPUT - # - self.bam_file = None - if BAM_header != None: - self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) - - # WRITE BAM HEADER (if parallel: only for first job) - if True or jobTuple[0] == 1: - self.bam_file.write("BAM\1") - header = '@HD\tVN:1.5\tSO:coordinate\n' - for n in BAM_header[0]: - header += '@SQ\tSN:'+n[0]+'\tLN:'+str(n[3])+'\n' - header += '@RG\tID:NEAT\tSM:NEAT\tLB:NEAT\tPL:NEAT\n' - headerBytes = len(header) - numRefs = len(BAM_header[0]) - self.bam_file.write(pack(''+readName+'/1\n'+read1+'\n') - if read2 != None: - self.fq2_buffer.append('>'+readName+'/2\n'+RC(read2)+'\n') - else: - self.fq1_buffer.append('@'+readName+'/1\n'+read1+'\n+\n'+qual1+'\n') - if read2 != None: - self.fq2_buffer.append('@'+readName+'/2\n'+RC(read2)+'\n+\n'+qual2[::-1]+'\n') - - def writeVCFRecord(self, chrom, pos, idStr, ref, alt, qual, filt, info): - self.vcf_file.write(str(chrom)+'\t'+str(pos)+'\t'+str(idStr)+'\t'+str(ref)+'\t'+str(alt)+'\t'+str(qual)+'\t'+str(filt)+'\t'+str(info)+'\n') - - def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, matePos=None, alnMapQual=70): - - myBin = reg2bin(pos_0,pos_0+len(seq)) - #myBin = 0 # or just use a dummy value, does this actually matter? - - myMapQual = alnMapQual - cig_letters = re.split(r"\d+",cigar)[1:] - cig_numbers = [int(n) for n in re.findall(r"\d+",cigar)] - cig_ops = len(cig_letters) - next_refID = refID - if matePos == None: - next_pos = 0 - my_tlen = 0 - else: - next_pos = matePos - if pos_0 < next_pos: - my_tlen = next_pos + len(seq) - pos_0 - else: - my_tlen = -pos_0 - len(seq) + next_pos - - encodedCig = '' - for i in xrange(cig_ops): - encodedCig += pack('= BUFFER_BATCH_SIZE or len(self.bam_buffer) >= BUFFER_BATCH_SIZE) or (len(self.fq1_buffer) and lastTime) or (len(self.bam_buffer) and lastTime): - # fq - if not self.noFASTQ: - self.fq1_file.write(''.join(self.fq1_buffer)) - if len(self.fq2_buffer): - self.fq2_file.write(''.join(self.fq2_buffer)) - # bam - if len(self.bam_buffer): - bam_data = sorted(self.bam_buffer) - if lastTime: - self.bam_file.write(''.join([n[2] for n in bam_data])) - self.bam_buffer = [] - else: - ind_to_stop_at = 0 - for i in xrange(0,len(bam_data)): - # if we are from previous reference, or have coordinates lower than next window position, it's safe to write out to file - if bam_data[i][0] != bam_data[-1][0] or bam_data[i][1] < bamMax: - ind_to_stop_at = i+1 - else: - break - self.bam_file.write(''.join([n[2] for n in bam_data[:ind_to_stop_at]])) - ####print 'BAM WRITING:',ind_to_stop_at,'/',len(bam_data) - if ind_to_stop_at >= len(bam_data): - self.bam_buffer = [] - else: - self.bam_buffer = bam_data[ind_to_stop_at:] - self.fq1_buffer = [] - self.fq2_buffer = [] - - - def closeFiles(self): - self.flushBuffers(lastTime=True) - if not self.noFASTQ: - self.fq1_file.close() - if self.fq2_file != None: - self.fq2_file.close() - if self.vcf_file != None: - self.vcf_file.close() - if self.bam_file != None: - self.bam_file.close() - - - - + def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gzipped=False, jobTuple=(1, 1), + noFASTQ=False, FASTA_instead=False): + + jobSuffix = '' + if jobTuple[1] > 1: + jsl = len(str(jobTuple[1])) + jsb = '0' * (jsl - len(str(jobTuple[0]))) + jobSuffix = '.job' + jsb + str(jobTuple[0]) + 'of' + str(jobTuple[1]) + + self.FASTA_instead = FASTA_instead + if FASTA_instead: + fq1 = outPrefix + '_read1.fa' + jobSuffix + fq2 = outPrefix + '_read2.fa' + jobSuffix + else: + fq1 = outPrefix + '_read1.fq' + jobSuffix + fq2 = outPrefix + '_read2.fq' + jobSuffix + bam = outPrefix + '_golden.bam' + jobSuffix + vcf = outPrefix + '_golden.vcf' + jobSuffix + + self.noFASTQ = noFASTQ + if not self.noFASTQ: + if gzipped: + self.fq1_file = gzip.open(fq1 + '.gz', 'wb') + else: + self.fq1_file = open(fq1, 'w') + + self.fq2_file = None + if paired: + if gzipped: + self.fq2_file = gzip.open(fq2 + '.gz', 'wb') + else: + self.fq2_file = open(fq2, 'w') + + # + # VCF OUTPUT + # + self.vcf_file = None + if VCF_header != None: + if gzipped: + self.vcf_file = gzip.open(vcf + '.gz', 'wb') + else: + self.vcf_file = open(vcf, 'wb') + + # WRITE VCF HEADER (if parallel: only for first job) + if jobTuple[0] == 1: + self.vcf_file.write('##fileformat=VCFv4.1\n') + self.vcf_file.write('##reference=' + VCF_header[0] + '\n') + self.vcf_file.write('##INFO=\n') + self.vcf_file.write('##INFO=\n') + # self.vcf_file.write('##INFO=\n') + self.vcf_file.write( + '##INFO=\n') + self.vcf_file.write( + '##INFO=\n') + self.vcf_file.write('##INFO=\n') + self.vcf_file.write( + '##INFO=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('##ALT=\n') + self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n') + + # + # BAM OUTPUT + # + self.bam_file = None + if BAM_header != None: + self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) + + # WRITE BAM HEADER (if parallel: only for first job) + if True or jobTuple[0] == 1: + self.bam_file.write("BAM\1") + header = '@HD\tVN:1.5\tSO:coordinate\n' + for n in BAM_header[0]: + header += '@SQ\tSN:' + n[0] + '\tLN:' + str(n[3]) + '\n' + header += '@RG\tID:NEAT\tSM:NEAT\tLB:NEAT\tPL:NEAT\n' + headerBytes = len(header) + numRefs = len(BAM_header[0]) + self.bam_file.write(pack('' + readName + '/1\n' + read1 + '\n') + if read2 != None: + self.fq2_buffer.append('>' + readName + '/2\n' + RC(read2) + '\n') + else: + self.fq1_buffer.append('@' + readName + '/1\n' + read1 + '\n+\n' + qual1 + '\n') + if read2 != None: + self.fq2_buffer.append('@' + readName + '/2\n' + RC(read2) + '\n+\n' + qual2[::-1] + '\n') + + def writeVCFRecord(self, chrom, pos, idStr, ref, alt, qual, filt, info): + self.vcf_file.write( + str(chrom) + '\t' + str(pos) + '\t' + str(idStr) + '\t' + str(ref) + '\t' + str(alt) + '\t' + str( + qual) + '\t' + str(filt) + '\t' + str(info) + '\n') + + def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, matePos=None, alnMapQual=70): + + myBin = reg2bin(pos_0, pos_0 + len(seq)) + # myBin = 0 # or just use a dummy value, does this actually matter? + + myMapQual = alnMapQual + cig_letters = re.split(r"\d+", cigar)[1:] + cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] + cig_ops = len(cig_letters) + next_refID = refID + if matePos == None: + next_pos = 0 + my_tlen = 0 + else: + next_pos = matePos + if pos_0 < next_pos: + my_tlen = next_pos + len(seq) - pos_0 + else: + my_tlen = -pos_0 - len(seq) + next_pos + + encodedCig = '' + for i in range(cig_ops): + encodedCig += pack('= BUFFER_BATCH_SIZE or len(self.bam_buffer) >= BUFFER_BATCH_SIZE) or ( + len(self.fq1_buffer) and lastTime) or (len(self.bam_buffer) and lastTime): + # fq + if not self.noFASTQ: + self.fq1_file.write(''.join(self.fq1_buffer)) + if len(self.fq2_buffer): + self.fq2_file.write(''.join(self.fq2_buffer)) + # bam + if len(self.bam_buffer): + bam_data = sorted(self.bam_buffer) + if lastTime: + self.bam_file.write(''.join([n[2] for n in bam_data])) + self.bam_buffer = [] + else: + ind_to_stop_at = 0 + for i in range(0, len(bam_data)): + # if we are from previous reference, or have coordinates lower + # than next window position, it's safe to write out to file + if bam_data[i][0] != bam_data[-1][0] or bam_data[i][1] < bamMax: + ind_to_stop_at = i + 1 + else: + break + self.bam_file.write(''.join([n[2] for n in bam_data[:ind_to_stop_at]])) + ####print 'BAM WRITING:',ind_to_stop_at,'/',len(bam_data) + if ind_to_stop_at >= len(bam_data): + self.bam_buffer = [] + else: + self.bam_buffer = bam_data[ind_to_stop_at:] + self.fq1_buffer = [] + self.fq2_buffer = [] + + def closeFiles(self): + self.flushBuffers(lastTime=True) + if not self.noFASTQ: + self.fq1_file.close() + if self.fq2_file != None: + self.fq2_file.close() + if self.vcf_file != None: + self.vcf_file.close() + if self.bam_file != None: + self.bam_file.close() diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index d87f763..70e3d71 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -3,11 +3,11 @@ import re import os import bisect -import cPickle as pickle +import pickle import numpy as np -from probability import DiscreteDistribution, poisson_list, quantize_list -from neat_cigar import CigarString +from py.probability import DiscreteDistribution, poisson_list, quantize_list +from py.neat_cigar import CigarString MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations @@ -16,8 +16,8 @@ TRI_IND = {'AA':0, 'AC':1, 'AG':2, 'AT':3, 'CA':4, 'CC':5, 'CG':6, 'CT':7, 'GA':8, 'GC':9, 'GG':10, 'GT':11, 'TA':12, 'TC':13, 'TG':14, 'TT':15} NUC_IND = {'A':0, 'C':1, 'G':2, 'T':3} -ALL_TRI = [NUCL[i]+NUCL[j]+NUCL[k] for i in xrange(len(NUCL)) for j in xrange(len(NUCL)) for k in xrange(len(NUCL))] -ALL_IND = {ALL_TRI[i]:i for i in xrange(len(ALL_TRI))} +ALL_TRI = [NUCL[i]+NUCL[j]+NUCL[k] for i in range(len(NUCL)) for j in range(len(NUCL)) for k in range(len(NUCL))] +ALL_IND = {ALL_TRI[i]:i for i in range(len(ALL_TRI))} # DEBUG IGNORE_TRINUC = False @@ -30,775 +30,779 @@ # Container for reference sequences, applies mutations # class SequenceContainer: - def __init__(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None, onlyVCF=False): - # initialize basic variables - self.onlyVCF = onlyVCF - self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) - # initialize mutation models - self.init_mutModels(mutationModels, mutRate) - # sample the number of variants that will be inserted into each ploid - self.init_poisson() - self.indelsToAdd = [n.sample() for n in self.ind_pois] - self.snpsToAdd = [n.sample() for n in self.snp_pois] - # initialize trinuc snp bias - self.init_trinucBias() - - def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): - self.x = xOffset - self.ploidy = ploidy - self.readLen = readLen - self.sequences = [bytearray(sequence) for n in xrange(self.ploidy)] - self.seqLen = len(sequence) - self.indelList = [[] for n in xrange(self.ploidy)] - self.snpList = [[] for n in xrange(self.ploidy)] - self.allCigar = [[] for n in xrange(self.ploidy)] - self.FM_pos = [[] for n in xrange(self.ploidy)] - self.FM_span = [[] for n in xrange(self.ploidy)] - # blackList[ploid][pos] = 0 safe to insert variant here - # blackList[ploid][pos] = 1 indel inserted here - # blackList[ploid][pos] = 2 snp inserted here - # blackList[ploid][pos] = 3 invalid position for various processing reasons - self.blackList = [np.zeros(self.seqLen,dtype=' int(self.readLen/2.): - trCov_vals[i] = [0.0]*int(self.readLen/2) + trCov_vals[i][:-int(self.readLen/2.)] - # fill in missing indices - trCov_vals[i].extend([0.0]*(len(self.sequences[i])-len(trCov_vals[i]))) - - # - covvec = np.cumsum([trCov_vals[i][nnn]*gcCov_vals[i][nnn] for nnn in xrange(len(trCov_vals[i]))]) - coverage_vals = [] - for j in xrange(0,max_coord): - coverage_vals.append(covvec[j+self.readLen] - covvec[j]) - avg_out.append(np.mean(coverage_vals)/float(self.readLen)) - - if fragDist == None: - self.coverage_distribution.append(DiscreteDistribution(coverage_vals,range(len(coverage_vals)))) - - # fragment length nightmare - else: - currentThresh = 0. - index_list = [0] - for j in xrange(len(fragDist.cumP)): - if fragDist.cumP[j] >= currentThresh + COV_FRAGLEN_PERCENTILE/100.0: - currentThresh = fragDist.cumP[j] - index_list.append(j) - flq = [fragDist.values[nnn] for nnn in index_list] - if fragDist.values[-1] not in flq: - flq.append(fragDist.values[-1]) - flq.append(LARGE_NUMBER) - - self.fraglens_indMap = {} - for j in fragDist.values: - bInd = bisect.bisect(flq,j) - if abs(flq[bInd-1] - j) <= abs(flq[bInd] - j): - self.fraglens_indMap[j] = flq[bInd-1] - else: - self.fraglens_indMap[j] = flq[bInd] - - self.coverage_distribution.append({}) - for flv in sorted(list(set(self.fraglens_indMap.values()))): - buffer_val = self.readLen - for j in fragDist.values: - if self.fraglens_indMap[j] == flv and j > buffer_val: - buffer_val = j - max_coord = min([len(self.sequences[i])-buffer_val-1, len(self.allCigar[i])-buffer_val+self.readLen-2]) - #print 'BEFORE:', len(self.sequences[i])-buffer_val - #print 'AFTER: ', len(self.allCigar[i])-buffer_val+self.readLen-2 - #print 'AFTER2:', max_coord - coverage_vals = [] - for j in xrange(0,max_coord): - coverage_vals.append(covvec[j+self.readLen] - covvec[j] + covvec[j+flv] - covvec[j+flv-self.readLen]) - - # EXPERIMENTAL - #quantized_covVals = quantize_list(coverage_vals) - #self.coverage_distribution[i][flv] = DiscreteDistribution([n[2] for n in quantized_covVals],[(n[0],n[1]) for n in quantized_covVals]) - - # TESTING - #import matplotlib.pyplot as mpl - #print len(coverage_vals),'-->',len(quantized_covVals) - #mpl.figure(0) - #mpl.plot(range(len(coverage_vals)),coverage_vals) - #for qcv in quantized_covVals: - # mpl.plot([qcv[0],qcv[1]+1],[qcv[2],qcv[2]],'r') - #mpl.show() - #exit(1) - - self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals,range(len(coverage_vals))) - - return np.mean(avg_out) - - def init_mutModels(self,mutationModels,mutRate): - if mutationModels == []: - ml = [copy.deepcopy(DEFAULT_MODEL_1) for n in xrange(self.ploidy)] - self.modelData = ml[:self.ploidy] - else: - if len(mutationModels) != self.ploidy: - print '\nError: Number of mutation models recieved is not equal to specified ploidy\n' - exit(1) - self.modelData = copy.deepcopy(mutationModels) - - # do we need to rescale mutation frequencies? - mutRateSum = sum([n[0] for n in self.modelData]) - self.mutRescale = mutRate - if self.mutRescale == None: - self.mutScalar = 1.0 - else: - self.mutScalar = float(self.mutRescale)/(mutRateSum/float(len(self.modelData))) - - # how are mutations spread to each ploid, based on their specified mut rates? - self.ploidMutFrac = [float(n[0])/mutRateSum for n in self.modelData] - self.ploidMutPrior = DiscreteDistribution(self.ploidMutFrac,range(self.ploidy)) - - # init mutation models - # - # self.models[ploid][0] = average mutation rate - # self.models[ploid][1] = p(mut is homozygous | mutation occurs) - # self.models[ploid][2] = p(mut is indel | mut occurs) - # self.models[ploid][3] = p(insertion | indel occurs) - # self.models[ploid][4] = distribution of insertion lengths - # self.models[ploid][5] = distribution of deletion lengths - # self.models[ploid][6] = distribution of trinucleotide SNP transitions - # self.models[ploid][7] = p(trinuc mutates) - self.models = [] - for n in self.modelData: - self.models.append([self.mutScalar*n[0],n[1],n[2],n[3],DiscreteDistribution(n[5],n[4]),DiscreteDistribution(n[7],n[6]),[]]) - for m in n[8]: - self.models[-1][6].append([DiscreteDistribution(m[0],NUCL), - DiscreteDistribution(m[1],NUCL), - DiscreteDistribution(m[2],NUCL), - DiscreteDistribution(m[3],NUCL)]) - self.models[-1].append([m for m in n[9]]) - - def init_poisson(self): - ind_l_list = [self.seqLen*self.models[i][0]*self.models[i][2]*self.ploidMutFrac[i] for i in xrange(len(self.models))] - snp_l_list = [self.seqLen*self.models[i][0]*(1.-self.models[i][2])*self.ploidMutFrac[i] for i in xrange(len(self.models))] - k_range = range(int(self.seqLen*MAX_MUTFRAC)) - self.ind_pois = [poisson_list(k_range,ind_l_list[n]) for n in xrange(len(self.models))] - self.snp_pois = [poisson_list(k_range,snp_l_list[n]) for n in xrange(len(self.models))] - - def init_trinucBias(self): - # compute mutation positional bias given trinucleotide strings of the sequence (ONLY AFFECTS SNPs) - # - # note: since indels are added before snps, it's possible these positional biases aren't correctly utilized - # at positions affected by indels. At the moment I'm going to consider this negligible. - trinuc_snp_bias = [[0. for n in xrange(self.seqLen)] for m in xrange(self.ploidy)] - self.trinuc_bias = [None for n in xrange(self.ploidy)] - for p in xrange(self.ploidy): - for i in xrange(self.winBuffer+1,self.seqLen-1): - trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] - self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seqLen-1],range(self.winBuffer+1,self.seqLen-1)) - - def update(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None): - # if mutation model is changed, we have to reinitialize it... - if ploidy != self.ploidy or mutRate != self.mutRescale or mutationModels != []: - self.ploidy = ploidy - self.mutRescale = mutRate - self.init_mutModels(mutationModels, mutRate) - # if sequence length is different than previous window, we have to redo snp/indel poissons - if len(sequence) != self.seqLen: - self.seqLen = len(sequence) - self.init_poisson() - # basic vars - self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) - self.indelsToAdd = [n.sample() for n in self.ind_pois] - self.snpsToAdd = [n.sample() for n in self.snp_pois] - # initialize trinuc snp bias - if not IGNORE_TRINUC: - self.init_trinucBias() - - def insert_mutations(self, inputList): - for inpV in inputList: - whichPloid = [] - wps = inpV[4][0] - if wps == None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates - whichPloid.append(self.ploidMutPrior.sample()) - whichAlt = [0] - else: - if '/' in wps or '|' in wps: - if '/' in wps: - splt = wps.split('/') - else: - splt = wps.split('|') - whichPloid = [] - whichAlt = [] - for i in xrange(len(splt)): - if splt[i] == '1': - whichPloid.append(i) - # assume we're just using first alt for inserted variants? - whichAlt = [0 for n in whichPloid] - else: # otherwise assume monoploidy - whichPloid = [0] - whichAlt = [0] - - # ignore invalid ploids - for i in xrange(len(whichPloid)-1,-1,-1): - if whichPloid[i] >= self.ploidy: - del whichPloid[i] - - for i in xrange(len(whichPloid)): - p = whichPloid[i] - myAlt = inpV[2][whichAlt[i]] - myVar = (inpV[0]-self.x,inpV[1],myAlt) - inLen = max([len(inpV[1]),len(myAlt)]) - - if myVar[0] < 0 or myVar[0] >= len(self.blackList[p]): - print '\nError: Attempting to insert variant out of window bounds:' - print myVar, '--> blackList[0:'+str(len(self.blackList[p]))+']\n' - exit(1) - if len(inpV[1]) == 1 and len(myAlt) == 1: - if self.blackList[p][myVar[0]]: - continue - self.snpList[p].append(myVar) - self.blackList[p][myVar[0]] = 2 - else: - indel_failed = False - for k in xrange(myVar[0],myVar[0]+inLen+1): - if k >= len(self.blackList[p]): - indel_failed = True - continue - if self.blackList[p][k]: - indel_failed = True - continue - if indel_failed: - continue - for k in xrange(myVar[0],myVar[0]+inLen+1): - self.blackList[p][k] = 1 - self.indelList[p].append(myVar) - - def random_mutations(self): - - # add random indels - all_indels = [[] for n in self.sequences] - for i in xrange(self.ploidy): - for j in xrange(self.indelsToAdd[i]): - if random.random() <= self.models[i][1]: # insert homozygous indel - whichPloid = range(self.ploidy) - else: # insert heterozygous indel - whichPloid = [self.ploidMutPrior.sample()] - - # try to find suitable places to insert indels - eventPos = -1 - for attempt in xrange(MAX_ATTEMPTS): - eventPos = random.randint(self.winBuffer,self.seqLen-1) - for p in whichPloid: - if self.blackList[p][eventPos]: - eventPos = -1 - if eventPos != -1: - break - if eventPos == -1: - continue - - if random.random() <= self.models[i][3]: # insertion - inLen = self.models[i][4].sample() - # sequence content of random insertions is uniformly random (change this later, maybe) - inSeq = ''.join([random.choice(NUCL) for n in xrange(inLen)]) - refNucl = chr(self.sequences[i][eventPos]) - myIndel = (eventPos,refNucl,refNucl+inSeq) - else: # deletion - inLen = self.models[i][5].sample() - if eventPos+inLen+1 >= len(self.sequences[i]): # skip if deletion too close to boundary - continue - if inLen == 1: - inSeq = chr(self.sequences[i][eventPos+1]) - else: - inSeq = str(self.sequences[i][eventPos+1:eventPos+inLen+1]) - refNucl = chr(self.sequences[i][eventPos]) - myIndel = (eventPos,refNucl+inSeq,refNucl) - - # if event too close to boundary, skip. if event conflicts with other indel, skip. - skipEvent = False - if eventPos+len(myIndel[1]) >= self.seqLen-self.winBuffer-1: - skipEvent = True - if skipEvent: - continue - for p in whichPloid: - for k in xrange(eventPos,eventPos+inLen+1): - if self.blackList[p][k]: - skipEvent = True - if skipEvent: - continue - - for p in whichPloid: - for k in xrange(eventPos,eventPos+inLen+1): - self.blackList[p][k] = 1 - all_indels[p].append(myIndel) - - # add random snps - all_snps = [[] for n in self.sequences] - for i in xrange(self.ploidy): - for j in xrange(self.snpsToAdd[i]): - if random.random() <= self.models[i][1]: # insert homozygous SNP - whichPloid = range(self.ploidy) - else: # insert heterozygous SNP - whichPloid = [self.ploidMutPrior.sample()] - - # try to find suitable places to insert snps - eventPos = -1 - for attempt in xrange(MAX_ATTEMPTS): - # based on the mutation model for the specified ploid, choose a SNP location based on trinuc bias - # (if there are multiple ploids, choose one at random) - if IGNORE_TRINUC: - eventPos = random.randint(self.winBuffer+1,self.seqLen-2) - else: - ploid_to_use = whichPloid[random.randint(0,len(whichPloid)-1)] - eventPos = self.trinuc_bias[ploid_to_use].sample() - for p in whichPloid: - if self.blackList[p][eventPos]: - eventPos = -1 - if eventPos != -1: - break - if eventPos == -1: - continue - - refNucl = chr(self.sequences[i][eventPos]) - context = str(chr(self.sequences[i][eventPos-1])+chr(self.sequences[i][eventPos+1])) - # sample from tri-nucleotide substitution matrices to get SNP alt allele - newNucl = self.models[i][6][TRI_IND[context]][NUC_IND[refNucl]].sample() - mySNP = (eventPos,refNucl,newNucl) - - for p in whichPloid: - all_snps[p].append(mySNP) - self.blackList[p][mySNP[0]] = 2 - - # combine random snps with inserted snps, remove any snps that overlap indels - for p in xrange(len(all_snps)): - all_snps[p].extend(self.snpList[p]) - all_snps[p] = [n for n in all_snps[p] if self.blackList[p][n[0]] != 1] - - # MODIFY REFERENCE STRING: SNPS - for i in xrange(len(all_snps)): - for j in xrange(len(all_snps[i])): - vPos = all_snps[i][j][0] - - if all_snps[i][j][1] != chr(self.sequences[i][vPos]): - print '\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]),'\n' - exit(1) - else: - self.sequences[i][vPos] = all_snps[i][j][2] - - # organize the indels we want to insert - for i in xrange(len(all_indels)): - all_indels[i].extend(self.indelList[i]) - all_indels_ins = [sorted([list(m) for m in n]) for n in all_indels] - - # MODIFY REFERENCE STRING: INDELS - adjToAdd = [[] for n in xrange(self.ploidy)] - for i in xrange(len(all_indels_ins)): - rollingAdj = 0 - tempSymbolString = ['M' for n in self.sequences[i]] - # there's an off-by-one error somewhere in the position sampling routines.. this might fix it - tempSymbolString.append('M') - for j in xrange(len(all_indels_ins[i])): - vPos = all_indels_ins[i][j][0] + rollingAdj - vPos2 = vPos + len(all_indels_ins[i][j][1]) - rollingAdj += len(all_indels_ins[i][j][2])-len(all_indels_ins[i][j][1]) - - if all_indels_ins[i][j][1] != str(self.sequences[i][vPos:vPos2]): - print '\nError: Something went wrong!\n', all_indels_ins[i][j], [vPos,vPos2], str(self.sequences[i][vPos:vPos2]),'\n' - exit(1) - else: - # alter reference sequence - self.sequences[i] = self.sequences[i][:vPos] + bytearray(all_indels_ins[i][j][2]) + self.sequences[i][vPos2:] - # notate indel positions for cigar computation - d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) - if d > 0: - tempSymbolString = tempSymbolString[:vPos+1] + ['I']*d + tempSymbolString[vPos2+1:] - elif d < 0: - tempSymbolString[vPos+1] = 'D'*abs(d)+'M' - - # precompute cigar strings - for j in xrange(len(tempSymbolString)-self.readLen): - self.allCigar[i].append(CigarString(listIn=tempSymbolString[j:j+self.readLen]).getString()) - - # create some data structures we will need later: - # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. corresponding to the unmodified reference genome) - # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from this coordinate - MD_soFar = 0 - for j in xrange(len(tempSymbolString)): - self.FM_pos[i].append(MD_soFar) - # fix an edge case with deletions - if 'D' in tempSymbolString[j]: - self.FM_pos[i][-1] += tempSymbolString[j].count('D') - # compute number of ref matches for each read - span_dif = len([n for n in tempSymbolString[j:j+self.readLen] if 'M' in n]) - self.FM_span[i].append(self.FM_pos[i][-1] + span_dif) - MD_soFar += tempSymbolString[j].count('M') + tempSymbolString[j].count('D') - - # tally up all the variants we handled... - countDict = {} - all_variants = [sorted(all_snps[i]+all_indels[i]) for i in xrange(self.ploidy)] - for i in xrange(len(all_variants)): - for j in xrange(len(all_variants[i])): - all_variants[i][j] = tuple([all_variants[i][j][0]+self.x])+all_variants[i][j][1:] - t = tuple(all_variants[i][j]) - if t not in countDict: - countDict[t] = [] - countDict[t].append(i) - - # - # TODO: combine multiple variants that happened to occur at same position into single vcf entry? - # - - output_variants = [] - for k in sorted(countDict.keys()): - output_variants.append(k+tuple([len(countDict[k])/float(self.ploidy)])) - ploid_string = ['0' for n in xrange(self.ploidy)] - for k2 in [n for n in countDict[k]]: - ploid_string[k2] = '1' - output_variants[-1] += tuple(['WP='+'/'.join(ploid_string)]) - return output_variants - - - def sample_read(self, sequencingModel, fragLen=None): - - # choose a ploid - myPloid = random.randint(0,self.ploidy-1) - - # stop attempting to find a valid position if we fail enough times - MAX_READPOS_ATTEMPTS = 100 - attempts_thus_far = 0 - - # choose a random position within the ploid, and generate quality scores / sequencing errors - readsToSample = [] - if fragLen == None: - rPos = self.coverage_distribution[myPloid].sample() - - # sample read position and call function to compute quality scores / sequencing errors - rDat = self.sequences[myPloid][rPos:rPos+self.readLen] - (myQual, myErrors) = sequencingModel.getSequencingErrors(rDat) - readsToSample.append([rPos,myQual,myErrors,rDat]) - - else: - rPos1 = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() - - # EXPERIMENTAL - #coords_to_select_from = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() - #rPos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) - - rPos2 = rPos1 + fragLen - self.readLen - rDat1 = self.sequences[myPloid][rPos1:rPos1+self.readLen] - rDat2 = self.sequences[myPloid][rPos2:rPos2+self.readLen] - (myQual1, myErrors1) = sequencingModel.getSequencingErrors(rDat1) - (myQual2, myErrors2) = sequencingModel.getSequencingErrors(rDat2,isReverseStrand=True) - readsToSample.append([rPos1,myQual1,myErrors1,rDat1]) - readsToSample.append([rPos2,myQual2,myErrors2,rDat2]) - - # error format: - # myError[i] = (type, len, pos, ref, alt) - - # examine sequencing errors to-be-inserted. - # - remove deletions that don't have enough bordering sequence content to "fill in" - # if error is valid, make the changes to the read data - rOut = [] - for r in readsToSample: - try: - myCigar = self.allCigar[myPloid][r[0]] - except IndexError: - print 'Index error when attempting to find cigar string.' - print myPloid, len(self.allCigar[myPloid]), r[0] - if fragLen != None: - print (rPos1, rPos2) - print fragLen, self.fraglens_indMap[fragLen] - exit(1) - totalD = sum([error[1] for error in r[2] if error[0] == 'D']) - totalI = sum([error[1] for error in r[2] if error[0] == 'I']) - availB = len(self.sequences[myPloid]) - r[0] - self.readLen - 1 - # add buffer sequence to fill in positions that get deleted - r[3] += self.sequences[myPloid][r[0]+self.readLen:r[0]+self.readLen+totalD] - expandedCigar = [] - extraCigar = [] - adj = 0 - sse_adj = [0 for n in xrange(self.readLen + max(sequencingModel.errP[3]))] - anyIndelErr = False - - # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors - # secondarily, sort by index - arrangedErrors = {'D':[],'I':[],'S':[]} - for error in r[2]: - arrangedErrors[error[0]].append((error[2],error)) - sortedErrors = [] - for k in sorted(arrangedErrors.keys()): - sortedErrors.extend([n[1] for n in sorted(arrangedErrors[k])]) - - skipIndels = False - - - #FIXED TdB 05JUN2018 - #Moved this outside the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read - extraCigarVal = [] - #END FIXED TdB - - for error in sortedErrors: - eLen = error[1] - ePos = error[2] - if error[0] == 'D' or error[0] == 'I': - anyIndelErr = True - - #FIXED TdB 05JUN2018 - #Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read - #extraCigarVal = [] - #END FIXED TdB - - if totalD > availB: # if not enough bases to fill-in deletions, skip all indel erors - continue - if expandedCigar == []: - expandedCigar = CigarString(stringIn=myCigar).getList() - fillToGo = totalD - totalI + 1 - if fillToGo > 0: - try: - extraCigarVal = CigarString(stringIn=self.allCigar[myPloid][r[0]+fillToGo]).getList()[-fillToGo:] - except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors - skipIndels = True - - - if skipIndels: - continue - - # insert deletion error into read and update cigar string accordingly - if error[0] == 'D': - myadj = sse_adj[ePos] - pi = ePos+myadj - pf = ePos+myadj+eLen+1 - if str(r[3][pi:pf]) == str(error[3]): - r[3] = r[3][:pi+1] + r[3][pf:] - expandedCigar = expandedCigar[:pi+1] + expandedCigar[pf:] - if pi+1 == len(expandedCigar): # weird edge case with del at very end of region. Make a guess and add a "M" - expandedCigar.append('M') - expandedCigar[pi+1] = 'D'*eLen + expandedCigar[pi+1] - else: - print '\nError, ref does not match alt while attempting to insert deletion error!\n' - exit(1) - adj -= eLen - for i in xrange(ePos,len(sse_adj)): - sse_adj[i] -= eLen - - # insert insertion error into read and update cigar string accordingly - else: - myadj = sse_adj[ePos] - if chr(r[3][ePos+myadj]) == error[3]: - r[3] = r[3][:ePos+myadj] + error[4] + r[3][ePos+myadj+1:] - expandedCigar = expandedCigar[:ePos+myadj] + ['I']*eLen + expandedCigar[ePos+myadj:] - else: - print '\nError, ref does not match alt while attempting to insert insertion error!\n' - print '---',chr(r[3][ePos+myadj]), '!=', error[3] - exit(1) - adj += eLen - for i in xrange(ePos,len(sse_adj)): - sse_adj[i] += eLen - - else: # substitution errors, much easier by comparison... - if chr(r[3][ePos+sse_adj[ePos]]) == error[3]: - r[3][ePos+sse_adj[ePos]] = error[4] - else: - print '\nError, ref does not match alt while attempting to insert substitution error!\n' - exit(1) - - if anyIndelErr: - if len(expandedCigar): - relevantCigar = (expandedCigar+extraCigarVal)[:self.readLen] - myCigar = CigarString(listIn=relevantCigar).getString() - - r[3] = r[3][:self.readLen] - - rOut.append([self.FM_pos[myPloid][r[0]],myCigar,str(r[3]),str(r[1])]) - - # rOut[i] = (pos, cigar, read_string, qual_string) - return rOut + def __init__(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None, onlyVCF=False): + # initialize basic variables + self.onlyVCF = onlyVCF + self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) + # initialize mutation models + self.init_mutModels(mutationModels, mutRate) + # sample the number of variants that will be inserted into each ploid + self.init_poisson() + self.indelsToAdd = [n.sample() for n in self.ind_pois] + self.snpsToAdd = [n.sample() for n in self.snp_pois] + # initialize trinuc snp bias + self.init_trinucBias() + + def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): + self.x = xOffset + self.ploidy = ploidy + self.readLen = readLen + self.sequences = [bytearray(sequence) for n in range(self.ploidy)] + self.seqLen = len(sequence) + self.indelList = [[] for n in range(self.ploidy)] + self.snpList = [[] for n in range(self.ploidy)] + self.allCigar = [[] for n in range(self.ploidy)] + self.FM_pos = [[] for n in range(self.ploidy)] + self.FM_span = [[] for n in range(self.ploidy)] + # blackList[ploid][pos] = 0 safe to insert variant here + # blackList[ploid][pos] = 1 indel inserted here + # blackList[ploid][pos] = 2 snp inserted here + # blackList[ploid][pos] = 3 invalid position for various processing reasons + self.blackList = [np.zeros(self.seqLen,dtype=' int(self.readLen/2.): + trCov_vals[i] = [0.0]*int(self.readLen/2) + trCov_vals[i][:-int(self.readLen/2.)] + # fill in missing indices + trCov_vals[i].extend([0.0]*(len(self.sequences[i])-len(trCov_vals[i]))) + + # + covvec = np.cumsum([trCov_vals[i][nnn]*gcCov_vals[i][nnn] for nnn in range(len(trCov_vals[i]))]) + coverage_vals = [] + for j in range(0,max_coord): + coverage_vals.append(covvec[j+self.readLen] - covvec[j]) + avg_out.append(np.mean(coverage_vals)/float(self.readLen)) + + if fragDist == None: + self.coverage_distribution.append(DiscreteDistribution(coverage_vals,range(len(coverage_vals)))) + + # fragment length nightmare + else: + currentThresh = 0. + index_list = [0] + for j in range(len(fragDist.cumP)): + if fragDist.cumP[j] >= currentThresh + COV_FRAGLEN_PERCENTILE/100.0: + currentThresh = fragDist.cumP[j] + index_list.append(j) + flq = [fragDist.values[nnn] for nnn in index_list] + if fragDist.values[-1] not in flq: + flq.append(fragDist.values[-1]) + flq.append(LARGE_NUMBER) + + self.fraglens_indMap = {} + for j in fragDist.values: + bInd = bisect.bisect(flq,j) + if abs(flq[bInd-1] - j) <= abs(flq[bInd] - j): + self.fraglens_indMap[j] = flq[bInd-1] + else: + self.fraglens_indMap[j] = flq[bInd] + + self.coverage_distribution.append({}) + for flv in sorted(list(set(self.fraglens_indMap.values()))): + buffer_val = self.readLen + for j in fragDist.values: + if self.fraglens_indMap[j] == flv and j > buffer_val: + buffer_val = j + max_coord = min([len(self.sequences[i])-buffer_val-1, len(self.allCigar[i])-buffer_val+self.readLen-2]) + #print 'BEFORE:', len(self.sequences[i])-buffer_val + #print 'AFTER: ', len(self.allCigar[i])-buffer_val+self.readLen-2 + #print 'AFTER2:', max_coord + coverage_vals = [] + for j in range(0,max_coord): + coverage_vals.append(covvec[j+self.readLen] - covvec[j] + covvec[j+flv] - covvec[j+flv-self.readLen]) + + # EXPERIMENTAL + #quantized_covVals = quantize_list(coverage_vals) + #self.coverage_distribution[i][flv] = DiscreteDistribution([n[2] for n in quantized_covVals],[(n[0],n[1]) for n in quantized_covVals]) + + # TESTING + #import matplotlib.pyplot as mpl + #print len(coverage_vals),'-->',len(quantized_covVals) + #mpl.figure(0) + #mpl.plot(range(len(coverage_vals)),coverage_vals) + #for qcv in quantized_covVals: + # mpl.plot([qcv[0],qcv[1]+1],[qcv[2],qcv[2]],'r') + #mpl.show() + #exit(1) + + self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals,range(len(coverage_vals))) + + return np.mean(avg_out) + + def init_mutModels(self,mutationModels,mutRate): + if mutationModels == []: + ml = [copy.deepcopy(DEFAULT_MODEL_1) for n in range(self.ploidy)] + self.modelData = ml[:self.ploidy] + else: + if len(mutationModels) != self.ploidy: + print('\nError: Number of mutation models recieved is not equal to specified ploidy\n') + exit(1) + self.modelData = copy.deepcopy(mutationModels) + + # do we need to rescale mutation frequencies? + mutRateSum = sum([n[0] for n in self.modelData]) + self.mutRescale = mutRate + if self.mutRescale == None: + self.mutScalar = 1.0 + else: + self.mutScalar = float(self.mutRescale)/(mutRateSum/float(len(self.modelData))) + + # how are mutations spread to each ploid, based on their specified mut rates? + self.ploidMutFrac = [float(n[0])/mutRateSum for n in self.modelData] + self.ploidMutPrior = DiscreteDistribution(self.ploidMutFrac,range(self.ploidy)) + + # init mutation models + # + # self.models[ploid][0] = average mutation rate + # self.models[ploid][1] = p(mut is homozygous | mutation occurs) + # self.models[ploid][2] = p(mut is indel | mut occurs) + # self.models[ploid][3] = p(insertion | indel occurs) + # self.models[ploid][4] = distribution of insertion lengths + # self.models[ploid][5] = distribution of deletion lengths + # self.models[ploid][6] = distribution of trinucleotide SNP transitions + # self.models[ploid][7] = p(trinuc mutates) + self.models = [] + for n in self.modelData: + self.models.append([self.mutScalar*n[0],n[1],n[2],n[3],DiscreteDistribution(n[5],n[4]),DiscreteDistribution(n[7],n[6]),[]]) + for m in n[8]: + self.models[-1][6].append([DiscreteDistribution(m[0],NUCL), + DiscreteDistribution(m[1],NUCL), + DiscreteDistribution(m[2],NUCL), + DiscreteDistribution(m[3],NUCL)]) + self.models[-1].append([m for m in n[9]]) + + def init_poisson(self): + ind_l_list = [self.seqLen*self.models[i][0]*self.models[i][2]*self.ploidMutFrac[i] for i in range(len(self.models))] + snp_l_list = [self.seqLen*self.models[i][0]*(1.-self.models[i][2])*self.ploidMutFrac[i] for i in range(len(self.models))] + k_range = range(int(self.seqLen*MAX_MUTFRAC)) + self.ind_pois = [poisson_list(k_range,ind_l_list[n]) for n in range(len(self.models))] + self.snp_pois = [poisson_list(k_range,snp_l_list[n]) for n in range(len(self.models))] + + def init_trinucBias(self): + # compute mutation positional bias given trinucleotide strings of the sequence (ONLY AFFECTS SNPs) + # + # note: since indels are added before snps, it's possible these positional biases aren't correctly utilized + # at positions affected by indels. At the moment I'm going to consider this negligible. + trinuc_snp_bias = [[0. for n in range(self.seqLen)] for m in range(self.ploidy)] + self.trinuc_bias = [None for n in range(self.ploidy)] + for p in range(self.ploidy): + for i in range(self.winBuffer+1,self.seqLen-1): + trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] + self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seqLen-1],range(self.winBuffer+1,self.seqLen-1)) + + def update(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None): + # if mutation model is changed, we have to reinitialize it... + if ploidy != self.ploidy or mutRate != self.mutRescale or mutationModels != []: + self.ploidy = ploidy + self.mutRescale = mutRate + self.init_mutModels(mutationModels, mutRate) + # if sequence length is different than previous window, we have to redo snp/indel poissons + if len(sequence) != self.seqLen: + self.seqLen = len(sequence) + self.init_poisson() + # basic vars + self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) + self.indelsToAdd = [n.sample() for n in self.ind_pois] + self.snpsToAdd = [n.sample() for n in self.snp_pois] + # initialize trinuc snp bias + if not IGNORE_TRINUC: + self.init_trinucBias() + + def insert_mutations(self, inputList): + for inpV in inputList: + whichPloid = [] + wps = inpV[4][0] + if wps == None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates + whichPloid.append(self.ploidMutPrior.sample()) + whichAlt = [0] + else: + if '/' in wps or '|' in wps: + if '/' in wps: + splt = wps.split('/') + else: + splt = wps.split('|') + whichPloid = [] + whichAlt = [] + for i in range(len(splt)): + if splt[i] == '1': + whichPloid.append(i) + # assume we're just using first alt for inserted variants? + whichAlt = [0 for n in whichPloid] + else: # otherwise assume monoploidy + whichPloid = [0] + whichAlt = [0] + + # ignore invalid ploids + for i in range(len(whichPloid)-1,-1,-1): + if whichPloid[i] >= self.ploidy: + del whichPloid[i] + + for i in range(len(whichPloid)): + p = whichPloid[i] + myAlt = inpV[2][whichAlt[i]] + myVar = (inpV[0]-self.x,inpV[1],myAlt) + inLen = max([len(inpV[1]),len(myAlt)]) + + if myVar[0] < 0 or myVar[0] >= len(self.blackList[p]): + print('\nError: Attempting to insert variant out of window bounds:') + print(myVar, '--> blackList[0:' + str(len(self.blackList[p])) + ']\n') + exit(1) + if len(inpV[1]) == 1 and len(myAlt) == 1: + if self.blackList[p][myVar[0]]: + continue + self.snpList[p].append(myVar) + self.blackList[p][myVar[0]] = 2 + else: + indel_failed = False + for k in range(myVar[0],myVar[0]+inLen+1): + if k >= len(self.blackList[p]): + indel_failed = True + continue + if self.blackList[p][k]: + indel_failed = True + continue + if indel_failed: + continue + for k in range(myVar[0],myVar[0]+inLen+1): + self.blackList[p][k] = 1 + self.indelList[p].append(myVar) + + def random_mutations(self): + + # add random indels + all_indels = [[] for n in self.sequences] + for i in range(self.ploidy): + for j in range(self.indelsToAdd[i]): + if random.random() <= self.models[i][1]: # insert homozygous indel + whichPloid = range(self.ploidy) + else: # insert heterozygous indel + whichPloid = [self.ploidMutPrior.sample()] + + # try to find suitable places to insert indels + eventPos = -1 + for attempt in range(MAX_ATTEMPTS): + eventPos = random.randint(self.winBuffer,self.seqLen-1) + for p in whichPloid: + if self.blackList[p][eventPos]: + eventPos = -1 + if eventPos != -1: + break + if eventPos == -1: + continue + + if random.random() <= self.models[i][3]: # insertion + inLen = self.models[i][4].sample() + # sequence content of random insertions is uniformly random (change this later, maybe) + inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) + refNucl = chr(self.sequences[i][eventPos]) + myIndel = (eventPos,refNucl,refNucl+inSeq) + else: # deletion + inLen = self.models[i][5].sample() + if eventPos+inLen+1 >= len(self.sequences[i]): # skip if deletion too close to boundary + continue + if inLen == 1: + inSeq = chr(self.sequences[i][eventPos+1]) + else: + inSeq = str(self.sequences[i][eventPos+1:eventPos+inLen+1]) + refNucl = chr(self.sequences[i][eventPos]) + myIndel = (eventPos,refNucl+inSeq,refNucl) + + # if event too close to boundary, skip. if event conflicts with other indel, skip. + skipEvent = False + if eventPos+len(myIndel[1]) >= self.seqLen-self.winBuffer-1: + skipEvent = True + if skipEvent: + continue + for p in whichPloid: + for k in range(eventPos,eventPos+inLen+1): + if self.blackList[p][k]: + skipEvent = True + if skipEvent: + continue + + for p in whichPloid: + for k in range(eventPos,eventPos+inLen+1): + self.blackList[p][k] = 1 + all_indels[p].append(myIndel) + + # add random snps + all_snps = [[] for n in self.sequences] + for i in range(self.ploidy): + for j in range(self.snpsToAdd[i]): + if random.random() <= self.models[i][1]: # insert homozygous SNP + whichPloid = range(self.ploidy) + else: # insert heterozygous SNP + whichPloid = [self.ploidMutPrior.sample()] + + # try to find suitable places to insert snps + eventPos = -1 + for attempt in range(MAX_ATTEMPTS): + # based on the mutation model for the specified ploid, choose a SNP location based on trinuc bias + # (if there are multiple ploids, choose one at random) + if IGNORE_TRINUC: + eventPos = random.randint(self.winBuffer+1,self.seqLen-2) + else: + ploid_to_use = whichPloid[random.randint(0,len(whichPloid)-1)] + eventPos = self.trinuc_bias[ploid_to_use].sample() + for p in whichPloid: + if self.blackList[p][eventPos]: + eventPos = -1 + if eventPos != -1: + break + if eventPos == -1: + continue + + refNucl = chr(self.sequences[i][eventPos]) + context = str(chr(self.sequences[i][eventPos-1])+chr(self.sequences[i][eventPos+1])) + # sample from tri-nucleotide substitution matrices to get SNP alt allele + newNucl = self.models[i][6][TRI_IND[context]][NUC_IND[refNucl]].sample() + mySNP = (eventPos,refNucl,newNucl) + + for p in whichPloid: + all_snps[p].append(mySNP) + self.blackList[p][mySNP[0]] = 2 + + # combine random snps with inserted snps, remove any snps that overlap indels + for p in range(len(all_snps)): + all_snps[p].extend(self.snpList[p]) + all_snps[p] = [n for n in all_snps[p] if self.blackList[p][n[0]] != 1] + + # MODIFY REFERENCE STRING: SNPS + for i in range(len(all_snps)): + for j in range(len(all_snps[i])): + vPos = all_snps[i][j][0] + + if all_snps[i][j][1] != chr(self.sequences[i][vPos]): + print('\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]), '\n') + exit(1) + else: + self.sequences[i][vPos] = all_snps[i][j][2] + + # organize the indels we want to insert + for i in range(len(all_indels)): + all_indels[i].extend(self.indelList[i]) + all_indels_ins = [sorted([list(m) for m in n]) for n in all_indels] + + # MODIFY REFERENCE STRING: INDELS + adjToAdd = [[] for n in range(self.ploidy)] + for i in range(len(all_indels_ins)): + rollingAdj = 0 + tempSymbolString = ['M' for n in self.sequences[i]] + # there's an off-by-one error somewhere in the position sampling routines.. this might fix it + tempSymbolString.append('M') + for j in range(len(all_indels_ins[i])): + vPos = all_indels_ins[i][j][0] + rollingAdj + vPos2 = vPos + len(all_indels_ins[i][j][1]) + rollingAdj += len(all_indels_ins[i][j][2])-len(all_indels_ins[i][j][1]) + + if all_indels_ins[i][j][1] != str(self.sequences[i][vPos:vPos2]): + print('\nError: Something went wrong!\n', all_indels_ins[i][j], [vPos, vPos2], + str(self.sequences[i][vPos:vPos2]), '\n') + exit(1) + else: + # alter reference sequence + self.sequences[i] = self.sequences[i][:vPos] + bytearray(all_indels_ins[i][j][2]) + self.sequences[i][vPos2:] + # notate indel positions for cigar computation + d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) + if d > 0: + tempSymbolString = tempSymbolString[:vPos+1] + ['I']*d + tempSymbolString[vPos2+1:] + elif d < 0: + tempSymbolString[vPos+1] = 'D'*abs(d)+'M' + + # precompute cigar strings + for j in range(len(tempSymbolString)-self.readLen): + self.allCigar[i].append(CigarString(listIn=tempSymbolString[j:j+self.readLen]).getString()) + + # create some data structures we will need later: + # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. corresponding to the unmodified reference genome) + # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from this coordinate + MD_soFar = 0 + for j in range(len(tempSymbolString)): + self.FM_pos[i].append(MD_soFar) + # fix an edge case with deletions + if 'D' in tempSymbolString[j]: + self.FM_pos[i][-1] += tempSymbolString[j].count('D') + # compute number of ref matches for each read + span_dif = len([n for n in tempSymbolString[j:j+self.readLen] if 'M' in n]) + self.FM_span[i].append(self.FM_pos[i][-1] + span_dif) + MD_soFar += tempSymbolString[j].count('M') + tempSymbolString[j].count('D') + + # tally up all the variants we handled... + countDict = {} + all_variants = [sorted(all_snps[i]+all_indels[i]) for i in range(self.ploidy)] + for i in range(len(all_variants)): + for j in range(len(all_variants[i])): + all_variants[i][j] = tuple([all_variants[i][j][0]+self.x])+all_variants[i][j][1:] + t = tuple(all_variants[i][j]) + if t not in countDict: + countDict[t] = [] + countDict[t].append(i) + + # + # TODO: combine multiple variants that happened to occur at same position into single vcf entry? + # + + output_variants = [] + for k in sorted(countDict.keys()): + output_variants.append(k+tuple([len(countDict[k])/float(self.ploidy)])) + ploid_string = ['0' for n in range(self.ploidy)] + for k2 in [n for n in countDict[k]]: + ploid_string[k2] = '1' + output_variants[-1] += tuple(['WP='+'/'.join(ploid_string)]) + return output_variants + + + def sample_read(self, sequencingModel, fragLen=None): + + # choose a ploid + myPloid = random.randint(0,self.ploidy-1) + + # stop attempting to find a valid position if we fail enough times + MAX_READPOS_ATTEMPTS = 100 + attempts_thus_far = 0 + + # choose a random position within the ploid, and generate quality scores / sequencing errors + readsToSample = [] + if fragLen == None: + rPos = self.coverage_distribution[myPloid].sample() + + # sample read position and call function to compute quality scores / sequencing errors + rDat = self.sequences[myPloid][rPos:rPos+self.readLen] + (myQual, myErrors) = sequencingModel.getSequencingErrors(rDat) + readsToSample.append([rPos,myQual,myErrors,rDat]) + + else: + rPos1 = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() + + # EXPERIMENTAL + #coords_to_select_from = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() + #rPos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) + + rPos2 = rPos1 + fragLen - self.readLen + rDat1 = self.sequences[myPloid][rPos1:rPos1+self.readLen] + rDat2 = self.sequences[myPloid][rPos2:rPos2+self.readLen] + (myQual1, myErrors1) = sequencingModel.getSequencingErrors(rDat1) + (myQual2, myErrors2) = sequencingModel.getSequencingErrors(rDat2,isReverseStrand=True) + readsToSample.append([rPos1,myQual1,myErrors1,rDat1]) + readsToSample.append([rPos2,myQual2,myErrors2,rDat2]) + + # error format: + # myError[i] = (type, len, pos, ref, alt) + + # examine sequencing errors to-be-inserted. + # - remove deletions that don't have enough bordering sequence content to "fill in" + # if error is valid, make the changes to the read data + rOut = [] + for r in readsToSample: + try: + myCigar = self.allCigar[myPloid][r[0]] + except IndexError: + print('Index error when attempting to find cigar string.') + print(myPloid, len(self.allCigar[myPloid]), r[0]) + if fragLen is not None: + print((rPos1, rPos2)) + print(fragLen, self.fraglens_indMap[fragLen]) + exit(1) + totalD = sum([error[1] for error in r[2] if error[0] == 'D']) + totalI = sum([error[1] for error in r[2] if error[0] == 'I']) + availB = len(self.sequences[myPloid]) - r[0] - self.readLen - 1 + # add buffer sequence to fill in positions that get deleted + r[3] += self.sequences[myPloid][r[0]+self.readLen:r[0]+self.readLen+totalD] + expandedCigar = [] + extraCigar = [] + adj = 0 + sse_adj = [0 for n in range(self.readLen + max(sequencingModel.errP[3]))] + anyIndelErr = False + + # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors + # secondarily, sort by index + arrangedErrors = {'D':[],'I':[],'S':[]} + for error in r[2]: + arrangedErrors[error[0]].append((error[2],error)) + sortedErrors = [] + for k in sorted(arrangedErrors.keys()): + sortedErrors.extend([n[1] for n in sorted(arrangedErrors[k])]) + + skipIndels = False + + + #FIXED TdB 05JUN2018 + #Moved this outside the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + extraCigarVal = [] + #END FIXED TdB + + for error in sortedErrors: + eLen = error[1] + ePos = error[2] + if error[0] == 'D' or error[0] == 'I': + anyIndelErr = True + + #FIXED TdB 05JUN2018 + #Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + #extraCigarVal = [] + #END FIXED TdB + + if totalD > availB: # if not enough bases to fill-in deletions, skip all indel erors + continue + if expandedCigar == []: + expandedCigar = CigarString(stringIn=myCigar).getList() + fillToGo = totalD - totalI + 1 + if fillToGo > 0: + try: + extraCigarVal = CigarString(stringIn=self.allCigar[myPloid][r[0]+fillToGo]).getList()[-fillToGo:] + except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors + skipIndels = True + + + if skipIndels: + continue + + # insert deletion error into read and update cigar string accordingly + if error[0] == 'D': + myadj = sse_adj[ePos] + pi = ePos+myadj + pf = ePos+myadj+eLen+1 + if str(r[3][pi:pf]) == str(error[3]): + r[3] = r[3][:pi+1] + r[3][pf:] + expandedCigar = expandedCigar[:pi+1] + expandedCigar[pf:] + if pi+1 == len(expandedCigar): # weird edge case with del at very end of region. Make a guess and add a "M" + expandedCigar.append('M') + expandedCigar[pi+1] = 'D'*eLen + expandedCigar[pi+1] + else: + print('\nError, ref does not match alt while attempting to insert deletion error!\n') + exit(1) + adj -= eLen + for i in range(ePos,len(sse_adj)): + sse_adj[i] -= eLen + + # insert insertion error into read and update cigar string accordingly + else: + myadj = sse_adj[ePos] + if chr(r[3][ePos+myadj]) == error[3]: + r[3] = r[3][:ePos+myadj] + error[4] + r[3][ePos+myadj+1:] + expandedCigar = expandedCigar[:ePos+myadj] + ['I']*eLen + expandedCigar[ePos+myadj:] + else: + print('\nError, ref does not match alt while attempting to insert insertion error!\n') + print('---', chr(r[3][ePos + myadj]), '!=', error[3]) + exit(1) + adj += eLen + for i in range(ePos,len(sse_adj)): + sse_adj[i] += eLen + + else: # substitution errors, much easier by comparison... + if chr(r[3][ePos+sse_adj[ePos]]) == error[3]: + r[3][ePos+sse_adj[ePos]] = error[4] + else: + print('\nError, ref does not match alt while attempting to insert substitution error!\n') + exit(1) + + if anyIndelErr: + if len(expandedCigar): + relevantCigar = (expandedCigar+extraCigarVal)[:self.readLen] + myCigar = CigarString(listIn=relevantCigar).getString() + + r[3] = r[3][:self.readLen] + + rOut.append([self.FM_pos[myPloid][r[0]],myCigar,str(r[3]),str(r[1])]) + + # rOut[i] = (pos, cigar, read_string, qual_string) + return rOut # # Container for read data, computes quality scores and positions to insert errors # class ReadContainer: - def __init__(self, readLen, errorModel, reScaledError): - - self.readLen = readLen - - errorDat = pickle.load(open(errorModel,'rb')) - self.UNIFORM = False - if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) - self.UNIFORM = True - [Qscores,offQ,avgError,errorParams] = errorDat - self.uniform_qscore = int(-10.*np.log10(avgError)+0.5) - print 'Using uniform sequencing error model. (q='+str(self.uniform_qscore)+'+'+str(offQ)+', p(err)={0:0.2f}%)'.format(100.*avgError) - if len(errorDat) == 6: # only 1 q-score model present, use same model for both strands - [initQ1,probQ1,Qscores,offQ,avgError,errorParams] = errorDat - self.PE_MODELS = False - elif len(errorDat) == 8: # found a q-score model for both forward and reverse strands - #print 'Using paired-read quality score profiles...' - [initQ1,probQ1,initQ2,probQ2,Qscores,offQ,avgError,errorParams] = errorDat - self.PE_MODELS = True - if len(initQ1) != len(initQ2) or len(probQ1) != len(probQ2): - print '\nError: R1 and R2 quality score models are of different length.\n' - exit(1) - - - self.qErrRate = [0.]*(max(Qscores)+1) - for q in Qscores: - self.qErrRate[q] = 10.**(-q/10.) - self.offQ = offQ - - # errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] - self.errP = errorParams - self.errSSE = [DiscreteDistribution(n,NUCL) for n in self.errP[0]] - self.errSIE = DiscreteDistribution(self.errP[2],self.errP[3]) - self.errSIN = DiscreteDistribution(self.errP[5],NUCL) - - # adjust sequencing error frequency to match desired rate - if reScaledError == None: - self.errorScale = 1.0 - else: - self.errorScale = reScaledError/avgError - print 'Warning: Quality scores no longer exactly representative of error probability. Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale) - - if self.UNIFORM == False: - # adjust length to match desired read length - if self.readLen == len(initQ1): - self.qIndRemap = range(self.readLen) - else: - print 'Warning: Read length of error model ('+str(len(initQ1))+') does not match -R value ('+str(self.readLen)+'), rescaling model...' - self.qIndRemap = [max([1,len(initQ1)*n/readLen]) for n in xrange(readLen)] - - # initialize probability distributions - self.initDistByPos1 = [DiscreteDistribution(initQ1[i],Qscores) for i in xrange(len(initQ1))] - self.probDistByPosByPrevQ1 = [None] - for i in xrange(1,len(initQ1)): - self.probDistByPosByPrevQ1.append([]) - for j in xrange(len(initQ1[0])): - if np.sum(probQ1[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) - else: - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j],Qscores)) - - if self.PE_MODELS: - self.initDistByPos2 = [DiscreteDistribution(initQ2[i],Qscores) for i in xrange(len(initQ2))] - self.probDistByPosByPrevQ2 = [None] - for i in xrange(1,len(initQ2)): - self.probDistByPosByPrevQ2.append([]) - for j in xrange(len(initQ2[0])): - if np.sum(probQ2[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) - else: - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j],Qscores)) - - def getSequencingErrors(self, readData, isReverseStrand=False): - - qOut = [0]*self.readLen - sErr = [] - - if self.UNIFORM: - myQ = [self.uniform_qscore + self.offQ for n in xrange(self.readLen)] - qOut = ''.join([chr(n) for n in myQ]) - for i in xrange(self.readLen): - if random.random() < self.errorScale*self.qErrRate[self.uniform_qscore]: - sErr.append(i) - else: - - if self.PE_MODELS and isReverseStrand: - myQ = self.initDistByPos2[0].sample() - else: - myQ = self.initDistByPos1[0].sample() - qOut[0] = myQ - - for i in xrange(1,self.readLen): - if self.PE_MODELS and isReverseStrand: - myQ = self.probDistByPosByPrevQ2[self.qIndRemap[i]][myQ].sample() - else: - myQ = self.probDistByPosByPrevQ1[self.qIndRemap[i]][myQ].sample() - qOut[i] = myQ - - if isReverseStrand: - qOut = qOut[::-1] - - for i in xrange(self.readLen): - if random.random() < self.errorScale * self.qErrRate[qOut[i]]: - sErr.append(i) - - qOut = ''.join([chr(n + self.offQ) for n in qOut]) - - if self.errorScale == 0.0: - return (qOut,[]) - - sOut = [] - nDelSoFar = 0 - # don't allow indel errors to occur on subsequent positions - prevIndel = -2 - # don't allow other sequencing errors to occur on bases removed by deletion errors - delBlacklist = [] - - for ind in sErr[::-1]: # for each error that we're going to insert... - - # determine error type - isSub = True - if ind != 0 and ind != self.readLen-1-max(self.errP[3]) and abs(ind-prevIndel) > 1: - if random.random() < self.errP[1]: - isSub = False - - # errorOut = (type, len, pos, ref, alt) - - if isSub: # insert substitution error - myNucl = chr(readData[ind]) - newNucl = self.errSSE[NUC_IND[myNucl]].sample() - sOut.append(('S',1,ind,myNucl,newNucl)) - else: # insert indel error - indelLen = self.errSIE.sample() - if random.random() < self.errP[4]: # insertion error - myNucl = chr(readData[ind]) - newNucl = myNucl + ''.join([self.errSIN.sample() for n in xrange(indelLen)]) - sOut.append(('I',len(newNucl)-1,ind,myNucl,newNucl)) - elif ind < self.readLen-2-nDelSoFar: # deletion error (prevent too many of them from stacking up) - myNucl = str(readData[ind:ind+indelLen+1]) - newNucl = chr(readData[ind]) - nDelSoFar += len(myNucl)-1 - sOut.append(('D',len(myNucl)-1,ind,myNucl,newNucl)) - for i in xrange(ind+1,ind+indelLen+1): - delBlacklist.append(i) - prevIndel = ind - - # remove blacklisted errors - for i in xrange(len(sOut)-1,-1,-1): - if sOut[i][2] in delBlacklist: - del sOut[i] - - return (qOut,sOut) + def __init__(self, readLen, errorModel, reScaledError): + + self.readLen = readLen + + errorDat = pickle.load(open(errorModel,'rb')) + self.UNIFORM = False + if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) + self.UNIFORM = True + [Qscores,offQ,avgError,errorParams] = errorDat + self.uniform_qscore = int(-10.*np.log10(avgError)+0.5) + print('Using uniform sequencing error model. (q=' + str(self.uniform_qscore) + '+' + str( + offQ) + ', p(err)={0:0.2f}%)'.format(100. * avgError)) + if len(errorDat) == 6: # only 1 q-score model present, use same model for both strands + [initQ1,probQ1,Qscores,offQ,avgError,errorParams] = errorDat + self.PE_MODELS = False + elif len(errorDat) == 8: # found a q-score model for both forward and reverse strands + #print 'Using paired-read quality score profiles...' + [initQ1,probQ1,initQ2,probQ2,Qscores,offQ,avgError,errorParams] = errorDat + self.PE_MODELS = True + if len(initQ1) != len(initQ2) or len(probQ1) != len(probQ2): + print('\nError: R1 and R2 quality score models are of different length.\n') + exit(1) + + + self.qErrRate = [0.]*(max(Qscores)+1) + for q in Qscores: + self.qErrRate[q] = 10.**(-q/10.) + self.offQ = offQ + + # errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] + self.errP = errorParams + self.errSSE = [DiscreteDistribution(n,NUCL) for n in self.errP[0]] + self.errSIE = DiscreteDistribution(self.errP[2],self.errP[3]) + self.errSIN = DiscreteDistribution(self.errP[5],NUCL) + + # adjust sequencing error frequency to match desired rate + if reScaledError == None: + self.errorScale = 1.0 + else: + self.errorScale = reScaledError/avgError + print('Warning: Quality scores no longer exactly representative of error probability. ' + 'Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale)) + + if self.UNIFORM == False: + # adjust length to match desired read length + if self.readLen == len(initQ1): + self.qIndRemap = range(self.readLen) + else: + print('Warning: Read length of error model (' + str(len(initQ1)) + ') does not match -R value (' + str( + self.readLen) + '), rescaling model...') + self.qIndRemap = [max([1,len(initQ1)*n/readLen]) for n in range(readLen)] + + # initialize probability distributions + self.initDistByPos1 = [DiscreteDistribution(initQ1[i],Qscores) for i in range(len(initQ1))] + self.probDistByPosByPrevQ1 = [None] + for i in range(1,len(initQ1)): + self.probDistByPosByPrevQ1.append([]) + for j in range(len(initQ1[0])): + if np.sum(probQ1[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) + else: + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j],Qscores)) + + if self.PE_MODELS: + self.initDistByPos2 = [DiscreteDistribution(initQ2[i],Qscores) for i in range(len(initQ2))] + self.probDistByPosByPrevQ2 = [None] + for i in range(1,len(initQ2)): + self.probDistByPosByPrevQ2.append([]) + for j in range(len(initQ2[0])): + if np.sum(probQ2[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) + else: + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j],Qscores)) + + def getSequencingErrors(self, readData, isReverseStrand=False): + + qOut = [0]*self.readLen + sErr = [] + + if self.UNIFORM: + myQ = [self.uniform_qscore + self.offQ for n in range(self.readLen)] + qOut = ''.join([chr(n) for n in myQ]) + for i in range(self.readLen): + if random.random() < self.errorScale*self.qErrRate[self.uniform_qscore]: + sErr.append(i) + else: + + if self.PE_MODELS and isReverseStrand: + myQ = self.initDistByPos2[0].sample() + else: + myQ = self.initDistByPos1[0].sample() + qOut[0] = myQ + + for i in range(1,self.readLen): + if self.PE_MODELS and isReverseStrand: + myQ = self.probDistByPosByPrevQ2[self.qIndRemap[i]][myQ].sample() + else: + myQ = self.probDistByPosByPrevQ1[self.qIndRemap[i]][myQ].sample() + qOut[i] = myQ + + if isReverseStrand: + qOut = qOut[::-1] + + for i in range(self.readLen): + if random.random() < self.errorScale * self.qErrRate[qOut[i]]: + sErr.append(i) + + qOut = ''.join([chr(n + self.offQ) for n in qOut]) + + if self.errorScale == 0.0: + return (qOut,[]) + + sOut = [] + nDelSoFar = 0 + # don't allow indel errors to occur on subsequent positions + prevIndel = -2 + # don't allow other sequencing errors to occur on bases removed by deletion errors + delBlacklist = [] + + for ind in sErr[::-1]: # for each error that we're going to insert... + + # determine error type + isSub = True + if ind != 0 and ind != self.readLen-1-max(self.errP[3]) and abs(ind-prevIndel) > 1: + if random.random() < self.errP[1]: + isSub = False + + # errorOut = (type, len, pos, ref, alt) + + if isSub: # insert substitution error + myNucl = chr(readData[ind]) + newNucl = self.errSSE[NUC_IND[myNucl]].sample() + sOut.append(('S',1,ind,myNucl,newNucl)) + else: # insert indel error + indelLen = self.errSIE.sample() + if random.random() < self.errP[4]: # insertion error + myNucl = chr(readData[ind]) + newNucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) + sOut.append(('I',len(newNucl)-1,ind,myNucl,newNucl)) + elif ind < self.readLen-2-nDelSoFar: # deletion error (prevent too many of them from stacking up) + myNucl = str(readData[ind:ind+indelLen+1]) + newNucl = chr(readData[ind]) + nDelSoFar += len(myNucl)-1 + sOut.append(('D',len(myNucl)-1,ind,myNucl,newNucl)) + for i in range(ind+1,ind+indelLen+1): + delBlacklist.append(i) + prevIndel = ind + + # remove blacklisted errors + for i in range(len(sOut)-1,-1,-1): + if sOut[i][2] in delBlacklist: + del sOut[i] + + return (qOut,sOut) @@ -809,145 +813,145 @@ def getSequencingErrors(self, readData, isReverseStrand=False): # parse mutation model pickle file def parseInputMutationModel(model=None, whichDefault=1): - if whichDefault == 1: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] - elif whichDefault == 2: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] - else: - print '\nError: Unknown default mutation model specified\n' - exit(1) - - if model != None: - pickle_dict = pickle.load(open(model,"rb")) - outModel[0] = pickle_dict['AVG_MUT_RATE'] - outModel[2] = 1. - pickle_dict['SNP_FREQ'] - - insList = pickle_dict['INDEL_FREQ'] - if len(insList): - insCount = sum([insList[k] for k in insList.keys() if k >= 1]) - delCount = sum([insList[k] for k in insList.keys() if k <= -1]) - insVals = [k for k in sorted(insList.keys()) if k >= 1] - insWght = [insList[k]/float(insCount) for k in insVals] - delVals = [k for k in sorted([abs(k) for k in insList.keys() if k <= -1])] - delWght = [insList[-k]/float(delCount) for k in delVals] - else: # degenerate case where no indel stats are provided - insCount = 1 - delCount = 1 - insVals = [1] - insWght = [1.0] - delVals = [1] - delWght = [1.0] - outModel[3] = insCount/float(insCount + delCount) - outModel[4] = insVals - outModel[5] = insWght - outModel[6] = delVals - outModel[7] = delWght - - trinuc_trans_prob = pickle_dict['TRINUC_TRANS_PROBS'] - for k in sorted(trinuc_trans_prob.keys()): - myInd = TRI_IND[k[0][0]+k[0][2]] - (k1,k2) = (NUC_IND[k[0][1]],NUC_IND[k[1][1]]) - outModel[8][myInd][k1][k2] = trinuc_trans_prob[k] - for i in xrange(len(outModel[8])): - for j in xrange(len(outModel[8][i])): - for l in xrange(len(outModel[8][i][j])): - # if trinuc not present in input mutation model, assign it uniform probability - if float(sum(outModel[8][i][j])) < 1e-12: - outModel[8][i][j] = [0.25,0.25,0.25,0.25] - else: - outModel[8][i][j][l] /= float(sum(outModel[8][i][j])) - - trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] - which_have_we_seen = {n:False for n in ALL_TRI} - trinuc_mean = np.mean(trinuc_mut_prob.values()) - for trinuc in trinuc_mut_prob.keys(): - outModel[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] - which_have_we_seen[trinuc] = True - for trinuc in which_have_we_seen.keys(): - if which_have_we_seen[trinuc] == False: - outModel[9][ALL_IND[trinuc]] = trinuc_mean - - return outModel + if whichDefault == 1: + outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] + elif whichDefault == 2: + outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] + else: + print('\nError: Unknown default mutation model specified\n') + exit(1) + + if model != None: + pickle_dict = pickle.load(open(model,"rb")) + outModel[0] = pickle_dict['AVG_MUT_RATE'] + outModel[2] = 1. - pickle_dict['SNP_FREQ'] + + insList = pickle_dict['INDEL_FREQ'] + if len(insList): + insCount = sum([insList[k] for k in insList.keys() if k >= 1]) + delCount = sum([insList[k] for k in insList.keys() if k <= -1]) + insVals = [k for k in sorted(insList.keys()) if k >= 1] + insWght = [insList[k]/float(insCount) for k in insVals] + delVals = [k for k in sorted([abs(k) for k in insList.keys() if k <= -1])] + delWght = [insList[-k]/float(delCount) for k in delVals] + else: # degenerate case where no indel stats are provided + insCount = 1 + delCount = 1 + insVals = [1] + insWght = [1.0] + delVals = [1] + delWght = [1.0] + outModel[3] = insCount/float(insCount + delCount) + outModel[4] = insVals + outModel[5] = insWght + outModel[6] = delVals + outModel[7] = delWght + + trinuc_trans_prob = pickle_dict['TRINUC_TRANS_PROBS'] + for k in sorted(trinuc_trans_prob.keys()): + myInd = TRI_IND[k[0][0]+k[0][2]] + (k1,k2) = (NUC_IND[k[0][1]],NUC_IND[k[1][1]]) + outModel[8][myInd][k1][k2] = trinuc_trans_prob[k] + for i in range(len(outModel[8])): + for j in range(len(outModel[8][i])): + for l in range(len(outModel[8][i][j])): + # if trinuc not present in input mutation model, assign it uniform probability + if float(sum(outModel[8][i][j])) < 1e-12: + outModel[8][i][j] = [0.25,0.25,0.25,0.25] + else: + outModel[8][i][j][l] /= float(sum(outModel[8][i][j])) + + trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] + which_have_we_seen = {n:False for n in ALL_TRI} + trinuc_mean = np.mean(trinuc_mut_prob.values()) + for trinuc in trinuc_mut_prob.keys(): + outModel[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] + which_have_we_seen[trinuc] = True + for trinuc in which_have_we_seen.keys(): + if which_have_we_seen[trinuc] == False: + outModel[9][ALL_IND[trinuc]] = trinuc_mean + + return outModel # parse mutation model files, returns default model if no model directory is specified # # OLD FUNCTION THAT PROCESSED OUTDATED TEXTFILE MUTATION MODELS def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): - if whichDefault == 1: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] - elif whichDefault == 2: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] - else: - print '\nError: Unknown default mutation model specified\n' - exit(1) - - if prefix != None: - if prefix[-1] != '/': - prefix += '/' - if not os.path.isdir(prefix): - '\nError: Input mutation model directory not found:',prefix,'\n' - exit(1) - - print 'Reading in mutation model...' - listing1 = [n for n in os.listdir(prefix) if n[-5:] == '.prob'] - listing2 = [n for n in os.listdir(prefix) if n[-7:] == '.trinuc'] - listing = sorted(listing1) + sorted(listing2) - for l in listing: - f = open(prefix+l,'r') - fr = [n.split('\t') for n in f.read().split('\n')] - f.close() - - if '_overall.prob' in l: - myIns = None - myDel = None - for dat in fr[1:]: - if len(dat) == 2: - if dat[0] == 'insertion': - myIns = float(dat[1]) - elif dat[0] == 'deletion': - myDel = float(dat[1]) - if myIns != None and myDel != None: - outModel[2] = myIns + myDel - outModel[3] = myIns / (myIns + myDel) - print '-',l - - if '_insLength.prob' in l: - insVals = {} - for dat in fr[1:]: - if len(dat) == 2: - insVals[int(dat[0])] = float(dat[1]) - if len(insVals): - outModel[4] = sorted(insVals.keys()) - outModel[5] = [insVals[n] for n in outModel[4]] - print '-',l - - if '_delLength.prob' in l: - delVals = {} - for dat in fr[1:]: - if len(dat) == 2: - delVals[int(dat[0])] = float(dat[1]) - if len(delVals): - outModel[6] = sorted(delVals.keys()) - outModel[7] = [delVals[n] for n in outModel[6]] - print '-',l - - if '.trinuc' == l[-7:]: - context_ind = TRI_IND[l[-10]+l[-8]] - p_matrix = [[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]] - for i in xrange(len(p_matrix)): - for j in xrange(len(fr[i])): - p_matrix[i][j] = float(fr[i][j]) - anyNone = False - for i in xrange(len(p_matrix)): - for j in xrange(len(p_matrix[i])): - if p_matrix[i][j] == -1: - anyNone = True - if not anyNone: - outModel[8][context_ind] = copy.deepcopy(p_matrix) - print '-',l - - return outModel + if whichDefault == 1: + outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] + elif whichDefault == 2: + outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] + else: + print('\nError: Unknown default mutation model specified\n') + exit(1) + + if prefix is not None: + if prefix[-1] != '/': + prefix += '/' + if not os.path.isdir(prefix): + print('\nError: Input mutation model directory not found:', prefix, '\n') + exit(1) + + print('Reading in mutation model...') + listing1 = [n for n in os.listdir(prefix) if n[-5:] == '.prob'] + listing2 = [n for n in os.listdir(prefix) if n[-7:] == '.trinuc'] + listing = sorted(listing1) + sorted(listing2) + for l in listing: + f = open(prefix+l,'r') + fr = [n.split('\t') for n in f.read().split('\n')] + f.close() + + if '_overall.prob' in l: + myIns = None + myDel = None + for dat in fr[1:]: + if len(dat) == 2: + if dat[0] == 'insertion': + myIns = float(dat[1]) + elif dat[0] == 'deletion': + myDel = float(dat[1]) + if myIns != None and myDel != None: + outModel[2] = myIns + myDel + outModel[3] = myIns / (myIns + myDel) + print('-', l) + + if '_insLength.prob' in l: + insVals = {} + for dat in fr[1:]: + if len(dat) == 2: + insVals[int(dat[0])] = float(dat[1]) + if len(insVals): + outModel[4] = sorted(insVals.keys()) + outModel[5] = [insVals[n] for n in outModel[4]] + print('-', l) + + if '_delLength.prob' in l: + delVals = {} + for dat in fr[1:]: + if len(dat) == 2: + delVals[int(dat[0])] = float(dat[1]) + if len(delVals): + outModel[6] = sorted(delVals.keys()) + outModel[7] = [delVals[n] for n in outModel[6]] + print('-', l) + + if '.trinuc' == l[-7:]: + context_ind = TRI_IND[l[-10]+l[-8]] + p_matrix = [[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]] + for i in range(len(p_matrix)): + for j in range(len(fr[i])): + p_matrix[i][j] = float(fr[i][j]) + anyNone = False + for i in range(len(p_matrix)): + for j in range(len(p_matrix[i])): + if p_matrix[i][j] == -1: + anyNone = True + if not anyNone: + outModel[8][context_ind] = copy.deepcopy(p_matrix) + print('-', l) + + return outModel ###################### # DEFAULT VALUES # @@ -962,45 +966,45 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): DEFAULT_1_DEL_LENGTH_VALUES = [1,2,3,4,5] DEFAULT_1_DEL_LENGTH_WEIGHTS = [0.3,0.2,0.2,0.2,0.1] example_matrix_1 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in xrange(16)] + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] DEFAULT_1_TRINUC_BIAS = [1./float(len(ALL_TRI)) for n in ALL_TRI] DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, - DEFAULT_1_HOMOZYGOUS_FREQ, - DEFAULT_1_INDEL_FRACTION, - DEFAULT_1_INS_VS_DEL, - DEFAULT_1_INS_LENGTH_VALUES, - DEFAULT_1_INS_LENGTH_WEIGHTS, - DEFAULT_1_DEL_LENGTH_VALUES, - DEFAULT_1_DEL_LENGTH_WEIGHTS, - DEFAULT_1_TRI_FREQS, - DEFAULT_1_TRINUC_BIAS] + DEFAULT_1_HOMOZYGOUS_FREQ, + DEFAULT_1_INDEL_FRACTION, + DEFAULT_1_INS_VS_DEL, + DEFAULT_1_INS_LENGTH_VALUES, + DEFAULT_1_INS_LENGTH_WEIGHTS, + DEFAULT_1_DEL_LENGTH_VALUES, + DEFAULT_1_DEL_LENGTH_WEIGHTS, + DEFAULT_1_TRI_FREQS, + DEFAULT_1_TRINUC_BIAS] DEFAULT_2_OVERALL_MUT_RATE = 0.002 DEFAULT_2_HOMOZYGOUS_FREQ = 0.200 DEFAULT_2_INDEL_FRACTION = 0.1 DEFAULT_2_INS_VS_DEL = 0.3 -DEFAULT_2_INS_LENGTH_VALUES = [1,2,3,4,5,6,7,8,9,10] +DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] DEFAULT_2_INS_LENGTH_WEIGHTS = [0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] DEFAULT_2_DEL_LENGTH_VALUES = [1,2,3,4,5] DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3,0.2,0.2,0.2,0.1] example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in xrange(16)] + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] DEFAULT_2_TRINUC_BIAS = [1./float(len(ALL_TRI)) for n in ALL_TRI] DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, - DEFAULT_2_HOMOZYGOUS_FREQ, - DEFAULT_2_INDEL_FRACTION, - DEFAULT_2_INS_VS_DEL, - DEFAULT_2_INS_LENGTH_VALUES, - DEFAULT_2_INS_LENGTH_WEIGHTS, - DEFAULT_2_DEL_LENGTH_VALUES, - DEFAULT_2_DEL_LENGTH_WEIGHTS, - DEFAULT_2_TRI_FREQS, - DEFAULT_2_TRINUC_BIAS] + DEFAULT_2_HOMOZYGOUS_FREQ, + DEFAULT_2_INDEL_FRACTION, + DEFAULT_2_INS_VS_DEL, + DEFAULT_2_INS_LENGTH_VALUES, + DEFAULT_2_INS_LENGTH_WEIGHTS, + DEFAULT_2_DEL_LENGTH_VALUES, + DEFAULT_2_DEL_LENGTH_WEIGHTS, + DEFAULT_2_TRI_FREQS, + DEFAULT_2_TRINUC_BIAS] diff --git a/py/__init__.py b/py/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/py/biopython_modified_bgzf.py b/py/biopython_modified_bgzf.py index 4e84afe..7da4c31 100755 --- a/py/biopython_modified_bgzf.py +++ b/py/biopython_modified_bgzf.py @@ -1,103 +1,102 @@ -#!/usr/bin/env python +#!/user/env/bin python + # Copyright 2010-2013 by Peter Cock. # All rights reserved. # This code is part of the Biopython distribution and governed by its # license. Please see the LICENSE file that should have been included # as part of this package. -""" ############################################################################ -####### ####### -####### 06/02/2015: ####### -####### - I picked out the bits and pieces of code needed ####### -####### to write BAM files, removed python 3.0 compatibility ####### -####### ####### -############################################################################ """ + +########################################################################## +# ####### +# 06/02/2015: ####### +# - I picked out the bits and pieces of code needed ####### +# to write BAM files, removed python 3.0 compatibility ####### +# ####### +########################################################################## import zlib import struct -_bgzf_header = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00" -_bgzf_eof = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00\x1b\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00" - -class BgzfWriter(object): - - def __init__(self, filename=None, mode="w", fileobj=None, compresslevel=6): - if fileobj: - assert filename is None - handle = fileobj - else: - if "w" not in mode.lower() \ - and "a" not in mode.lower(): - raise ValueError("Must use write or append mode, not %r" % mode) - if "a" in mode.lower(): - handle = open(filename, "ab") - else: - handle = open(filename, "wb") - self._text = "b" not in mode.lower() - self._handle = handle - self._buffer = b"" - self.compresslevel = compresslevel - def _write_block(self, block): - start_offset = self._handle.tell() - assert len(block) <= 65536 - # Giving a negative window bits means no gzip/zlib headers, -15 used in samtools - c = zlib.compressobj(self.compresslevel, - zlib.DEFLATED, - -15, - zlib.DEF_MEM_LEVEL, - 0) - compressed = c.compress(block) + c.flush() - del c - assert len(compressed) < 65536, "TODO - Didn't compress enough, try less data in this block" - crc = zlib.crc32(block) - # Should cope with a mix of Python platforms... - if crc < 0: - crc = struct.pack("= 65536: - self._write_block(self._buffer[:65536]) - self._buffer = self._buffer[65536:] + def __init__(self, filename=None, mode="w", fileobj=None, compresslevel=6): + if fileobj: + assert filename is None + handle = fileobj + else: + if "w" not in mode.lower() \ + and "a" not in mode.lower(): + raise ValueError("Must use write or append mode, not %r" % mode) + if "a" in mode.lower(): + handle = open(filename, "ab") + else: + handle = open(filename, "wb") + self._text = "b" not in mode.lower() + self._handle = handle + self._buffer = b"" + self.compresslevel = compresslevel - def flush(self): - while len(self._buffer) >= 65536: - self._write_block(self._buffer[:65535]) - self._buffer = self._buffer[65535:] - self._write_block(self._buffer) - self._buffer = b"" - self._handle.flush() + def _write_block(self, block): + _bgzf_header = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00" + start_offset = self._handle.tell() + assert len(block) <= 65536 + # Giving a negative window bits means no gzip/zlib headers, -15 used in samtools + c = zlib.compressobj(self.compresslevel, + zlib.DEFLATED, + -15, + zlib.DEF_MEM_LEVEL, + 0) + compressed = c.compress(block) + c.flush() + del c + assert len(compressed) < 65536, "TODO - Didn't compress enough, try less data in this block" + crc = zlib.crc32(block) + # Should cope with a mix of Python platforms... + if crc < 0: + crc = struct.pack("= 65536: + self._write_block(self._buffer[:65536]) + self._buffer = self._buffer[65536:] - def __enter__(self): - return self + def flush(self): + while len(self._buffer) >= 65536: + self._write_block(self._buffer[:65535]) + self._buffer = self._buffer[65535:] + self._write_block(self._buffer) + self._buffer = b"" + self._handle.flush() - def __exit__(self, type, value, traceback): - self.close() + def close(self): + """Flush data, write 28 bytes empty BGZF EOF marker, and close the BGZF file.""" + _bgzf_eof = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00\x1b\x00\x03\x00\x00\x00\x00\x00" \ + b"\x00\x00\x00\x00" + if self._buffer: + self.flush() + # samtools will look for a magic EOF marker, just a 28 byte empty BGZF block, + # and if it is missing warns the BAM file may be truncated. In addition to + # samtools writing this block, so too does bgzip - so we should too. + self._handle.write(_bgzf_eof) + self._handle.flush() + self._handle.close() + def __enter__(self): + return self -if __name__ == "__main__": - pass + def __exit__(self, type, value, traceback): + self.close() \ No newline at end of file diff --git a/py/inputChecking.py b/py/inputChecking.py index 30cddaf..e47e849 100644 --- a/py/inputChecking.py +++ b/py/inputChecking.py @@ -1,29 +1,33 @@ import os import sys -def requiredField(s,errString): - if s == None: - print '\n'+errString+'\n' - exit(1) - -def checkFileOpen(fn,errString,required=False): - if required or fn != None: - if fn == None: - print '\n'+errString+'\n' - exit(1) - else: - try: - open(fn,'r') - except: - print '\n'+errString+'\n' - exit(1) - -def checkDir(dir,errString): - if not os.path.isdir(dir): - print '\n'+errString+'\n' - exit(1) - -def isInRange(val,lb,ub,errString): - if val < lb or val > ub: - print '\n'+errString+'\n' - exit(1) + +def requiredField(s, errString): + if s is None: + print('\n' + errString + '\n') + exit(1) + + +def checkFileOpen(fn, errString, required=False): + if required or fn is not None: + if fn is None: + print('\n' + errString + '\n') + exit(1) + else: + try: + open(fn, 'r') + except: + print('\n' + errString + '\n') + exit(1) + + +def checkDir(dir, errString): + if not os.path.isdir(dir): + print('\n' + errString + '\n') + exit(1) + + +def isInRange(val, lb, ub, errString): + if val < lb or val > ub: + print('\n' + errString + '\n') + exit(1) diff --git a/py/neat_cigar.py b/py/neat_cigar.py index 80d79b2..ab588f9 100644 --- a/py/neat_cigar.py +++ b/py/neat_cigar.py @@ -1,108 +1,103 @@ import re -class CigarString: - def __init__(self, stringIn=None, listIn=None): - - if stringIn == None and listIn == None: - print '\nError: CigarString object not initialized.\n' - exit(1) - - self.cigarData = [] - - if stringIn != None: - self.joinCigar(j_stringIn=stringIn) - - if listIn != None: - self.joinCigar(j_listIn=listIn) +class CigarString: + def __init__(self, stringIn=None, listIn=None): - def stringToList(self, s): + if stringIn is None and listIn is None: + print('\nError: CigarString object not initialized.\n') + exit(1) - cigarDat = [] - letters = re.split(r"\d+",s)[1:] - numbers = [int(n) for n in re.findall(r"\d+",s)] - dReserve = 0 - for i in xrange(len(letters)): - if letters[i] == 'D': - dReserve = numbers[i] - if letters[i] == 'M' or letters[i] == 'I': - if dReserve: - cigarDat += ['D'*dReserve+letters[i]] + [letters[i]]*(int(numbers[i])-1) - else: - cigarDat += [letters[i]]*int(numbers[i]) - dReserve = 0 - return cigarDat + self.cigarData = [] + if stringIn is not None: + self.joinCigar(j_stringIn=stringIn) - def listToString(self, l): + if listIn is not None: + self.joinCigar(j_listIn=listIn) - symbols = '' - currentSym = l[0] - currentCount = 1 - if 'D' in currentSym: - currentSym = currentSym[-1] - for k in xrange(1,len(l)): - nextSym = l[k] - if len(nextSym) == 1 and nextSym == currentSym: - currentCount += 1 - else: - symbols += str(currentCount) + currentSym - if 'D' in nextSym: - symbols += str(nextSym.count('D')) + 'D' - currentSym = nextSym[-1] - else: - currentSym = nextSym - currentCount = 1 - symbols += str(currentCount) + currentSym - return symbols + def stringToList(self, s): - def getList(self): + cigarDat = [] + letters = re.split(r"\d+", s)[1:] + numbers = [int(n) for n in re.findall(r"\d+", s)] + dReserve = 0 + for i in range(len(letters)): + if letters[i] == 'D': + dReserve = numbers[i] + if letters[i] == 'M' or letters[i] == 'I': + if dReserve: + cigarDat += ['D' * dReserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) + else: + cigarDat += [letters[i]] * int(numbers[i]) + dReserve = 0 + return cigarDat - return self.cigarData + def listToString(self, l): + symbols = '' + currentSym = l[0] + currentCount = 1 + if 'D' in currentSym: + currentSym = currentSym[-1] + for k in range(1, len(l)): + nextSym = l[k] + if len(nextSym) == 1 and nextSym == currentSym: + currentCount += 1 + else: + symbols += str(currentCount) + currentSym + if 'D' in nextSym: + symbols += str(nextSym.count('D')) + 'D' + currentSym = nextSym[-1] + else: + currentSym = nextSym + currentCount = 1 + symbols += str(currentCount) + currentSym + return symbols - def getString(self): + def getList(self): - return self.listToString(self.cigarData) + return self.cigarData + def getString(self): - def joinCigar(self, j_stringIn=None, j_listIn=None): + return self.listToString(self.cigarData) - if j_stringIn == None and j_listIn == None: - print '\nError: Invalid join operation in CigarString\n' - exit(1) + def joinCigar(self, j_stringIn=None, j_listIn=None): - if j_stringIn != None: - self.cigarData += self.stringToList(j_stringIn) + if j_stringIn is None and j_listIn is None: + print('\nError: Invalid join operation in CigarString\n') + exit(1) - if j_listIn != None: - self.cigarData += j_listIn + if j_stringIn is not None: + self.cigarData += self.stringToList(j_stringIn) + if j_listIn is not None: + self.cigarData += j_listIn - def insertCigarElement(self, pos, i_stringIn=None, i_listIn=None): + def insertCigarElement(self, pos, i_stringIn=None, i_listIn=None): - if i_stringIn == None and i_listIn == None: - print '\nError: Invalid insertion operation in CigarString\n' - exit(1) + if i_stringIn == None and i_listIn == None: + print('\nError: Invalid insertion operation in CigarString\n') + exit(1) - if pos < 0 or pos >= len(self.cigarData): - print '\nError: Invalid insertion position in CigarString\n' - exit(1) + if pos < 0 or pos >= len(self.cigarData): + print('\nError: Invalid insertion position in CigarString\n') + exit(1) - if i_stringIn != None: - self.cigarData = self.cigarData[:pos] + self.stringToList(i_stringIn) + self.cigarData[pos:] + if i_stringIn != None: + self.cigarData = self.cigarData[:pos] + self.stringToList(i_stringIn) + self.cigarData[pos:] - if i_listIn != None: - self.cigarData = self.cigarData[:pos] + i_listIn + self.cigarData[pos:] + if i_listIn != None: + self.cigarData = self.cigarData[:pos] + i_listIn + self.cigarData[pos:] if __name__ == '__main__': - print 'testing CigarString class...' - - str1 = '50M10D7I23M' - str2 = '10I25M' - iPos = 20 - myCigar = CigarString(stringIn=str1) - myCigar.insertCigarElement(iPos,i_stringIn=str2) - print str1,'+',str2,'[inserted at position',str(iPos)+']','=',myCigar.getString() - + print('testing CigarString class...') + + str1 = '50M10D7I23M' + str2 = '10I25M' + iPos = 20 + myCigar = CigarString(stringIn=str1) + myCigar.insertCigarElement(iPos, i_stringIn=str2) + print(str1, '+', str2, '[inserted at position', str(iPos) + ']', '=', myCigar.getString()) diff --git a/py/probability.py b/py/probability.py index 789e98c..699a966 100644 --- a/py/probability.py +++ b/py/probability.py @@ -6,141 +6,143 @@ LOW_PROB_THRESH = 1e-12 + def mean_ind_of_weighted_list(l): - myMid = sum(l)/2.0 - mySum = 0.0 - for i in xrange(len(l)): - mySum += l[i] - if mySum >= myMid: - return i + myMid = sum(l) / 2.0 + mySum = 0.0 + for i in range(len(l)): + mySum += l[i] + if mySum >= myMid: + return i + class DiscreteDistribution: - def __init__(self, weights, values, degenerateVal=None, method='bisect'): - - # some sanity checking - if not len(weights) or not len(values): - print '\nError: weight or value vector given to DiscreteDistribution() are 0-length.\n' - asdf = intentional_crash[0] - exit(1) - - self.method = method - sumWeight = float(sum(weights)) - - # if probability of all input events is 0, consider it degenerate and always return the first value - if sumWeight < LOW_PROB_THRESH: - self.degenerate = values[0] - else: - self.weights = [n/sumWeight for n in weights] - self.values = copy.deepcopy(values) - if len(self.values) != len(self.weights): - print '\nError: length and weights and values vectors must be the same.\n' - exit(1) - self.degenerate = degenerateVal - # prune values with probability too low to be worth using [DOESN'T REALLY IMPROVE PERFORMANCE] - ####if self.degenerate != None: - #### for i in xrange(len(self.weights)-1,-1,-1): - #### if self.weights[i] < LOW_PROB_THRESH: - #### del self.weights[i] - #### del self.values[i] - #### if len(self.weights) == 0: - #### print '\nError: probability distribution has no usable values.\n' - #### exit(1) - - if self.method == 'alias': - K = len(self.weights) - q = np.zeros(K) - J = np.zeros(K, dtype=np.int) - smaller = [] - larger = [] - for kk, prob in enumerate(self.weights): - q[kk] = K*prob - if q[kk] < 1.0: - smaller.append(kk) - else: - larger.append(kk) - while len(smaller) > 0 and len(larger) > 0: - small = smaller.pop() - large = larger.pop() - J[small] = large - q[large] = (q[large] + q[small]) - 1.0 - if q[large] < 1.0: - smaller.append(large) - else: - larger.append(large) - - self.a1 = len(J)-1 - self.a2 = J.tolist() - self.a3 = q.tolist() - - elif self.method == 'bisect': - self.cumP = np.cumsum(self.weights).tolist()[:-1] - self.cumP.insert(0,0.) - - def __str__(self): - return str(self.weights)+' '+str(self.values)+' '+self.method - - def sample(self): - - if self.degenerate != None: - return self.degenerate - - else: - - if self.method == 'alias': - r1 = random.randint(0,self.a1) - r2 = random.random() - if r2 < self.a3[r1]: - return self.values[r1] - else: - return self.values[self.a2[r1]] - - elif self.method == 'bisect': - r = random.random() - return self.values[bisect.bisect(self.cumP,r)-1] + def __init__(self, weights, values, degenerateVal=None, method='bisect'): + + # some sanity checking + if not len(weights) or not len(values): + print('\nError: weight or value vector given to DiscreteDistribution() are 0-length.\n') + exit(1) + + self.method = method + sumWeight = float(sum(weights)) + + # if probability of all input events is 0, consider it degenerate and always return the first value + if sumWeight < LOW_PROB_THRESH: + self.degenerate = values[0] + else: + self.weights = [n / sumWeight for n in weights] + self.values = copy.deepcopy(values) + if len(self.values) != len(self.weights): + print('\nError: length and weights and values vectors must be the same.\n') + exit(1) + self.degenerate = degenerateVal + # prune values with probability too low to be worth using [DOESN'T REALLY IMPROVE PERFORMANCE] + ####if self.degenerate != None: + #### for i in xrange(len(self.weights)-1,-1,-1): + #### if self.weights[i] < LOW_PROB_THRESH: + #### del self.weights[i] + #### del self.values[i] + #### if len(self.weights) == 0: + #### print '\nError: probability distribution has no usable values.\n' + #### exit(1) + + if self.method == 'alias': + K = len(self.weights) + q = np.zeros(K) + J = np.zeros(K, dtype=np.int) + smaller = [] + larger = [] + for kk, prob in enumerate(self.weights): + q[kk] = K * prob + if q[kk] < 1.0: + smaller.append(kk) + else: + larger.append(kk) + while len(smaller) > 0 and len(larger) > 0: + small = smaller.pop() + large = larger.pop() + J[small] = large + q[large] = (q[large] + q[small]) - 1.0 + if q[large] < 1.0: + smaller.append(large) + else: + larger.append(large) + + self.a1 = len(J) - 1 + self.a2 = J.tolist() + self.a3 = q.tolist() + + elif self.method == 'bisect': + self.cumP = np.cumsum(self.weights).tolist()[:-1] + self.cumP.insert(0, 0.) + + def __str__(self): + return str(self.weights) + ' ' + str(self.values) + ' ' + self.method + + def sample(self): + + if self.degenerate != None: + return self.degenerate + + else: + + if self.method == 'alias': + r1 = random.randint(0, self.a1) + r2 = random.random() + if r2 < self.a3[r1]: + return self.values[r1] + else: + return self.values[self.a2[r1]] + + elif self.method == 'bisect': + r = random.random() + return self.values[bisect.bisect(self.cumP, r) - 1] # takes k_range, lambda, [0,1,2,..], returns a DiscreteDistribution object with the corresponding to a poisson distribution -MIN_WEIGHT = 1e-12 -def poisson_list(k_range,l): - if l < MIN_WEIGHT: - return DiscreteDistribution([1],[0],degenerateVal=0) - logFactorial_list = [0.0] - for k in k_range[1:]: - logFactorial_list.append(np.log(float(k))+logFactorial_list[k-1]) - w_range = [np.exp(k*np.log(l) - l - logFactorial_list[k]) for k in k_range] - w_range = [n for n in w_range if n >= MIN_WEIGHT] - if len(w_range) <= 1: - return DiscreteDistribution([1],[0],degenerateVal=0) - return DiscreteDistribution(w_range,k_range[:len(w_range)]) + +def poisson_list(k_range, l): + MIN_WEIGHT = 1e-12 + if l < MIN_WEIGHT: + return DiscreteDistribution([1], [0], degenerateVal=0) + logFactorial_list = [0.0] + for k in k_range[1:]: + logFactorial_list.append(np.log(float(k)) + logFactorial_list[k - 1]) + w_range = [np.exp(k * np.log(l) - l - logFactorial_list[k]) for k in k_range] + w_range = [n for n in w_range if n >= MIN_WEIGHT] + if len(w_range) <= 1: + return DiscreteDistribution([1], [0], degenerateVal=0) + return DiscreteDistribution(w_range, k_range[:len(w_range)]) + # quantize a list of values into blocks -MIN_PROB = 1e-12 -QUANT_BLOCKS = 10 def quantize_list(l): - suml = float(sum(l)) - ls = sorted([n for n in l if n >= MIN_PROB*suml]) - if len(ls) == 0: - return None - qi = [] - for i in xrange(QUANT_BLOCKS): - #qi.append(ls[int((i)*(len(ls)/float(QUANT_BLOCKS)))]) - qi.append(ls[0]+(i/float(QUANT_BLOCKS))*(ls[-1]-ls[0])) - qi.append(1e12) - runningList = [] - prevBi = None - previ = None - for i in xrange(len(l)): - if l[i] >= MIN_PROB*suml: - bi = bisect.bisect(qi,l[i]) - #print i, l[i], qi[bi-1] - if prevBi != None: - if bi == prevBi and previ == i-1: - runningList[-1][1] += 1 - else: - runningList.append([i,i,qi[bi-1]]) - else: - runningList.append([i,i,qi[bi-1]]) - prevBi = bi - previ = i - return runningList - + MIN_PROB = 1e-12 + QUANT_BLOCKS = 10 + suml = float(sum(l)) + ls = sorted([n for n in l if n >= MIN_PROB * suml]) + if len(ls) == 0: + return None + qi = [] + for i in range(QUANT_BLOCKS): + # qi.append(ls[int((i)*(len(ls)/float(QUANT_BLOCKS)))]) + qi.append(ls[0] + (i / float(QUANT_BLOCKS)) * (ls[-1] - ls[0])) + qi.append(1e12) + runningList = [] + prevBi = None + previ = None + for i in range(len(l)): + if l[i] >= MIN_PROB * suml: + bi = bisect.bisect(qi, l[i]) + # print i, l[i], qi[bi-1] + if prevBi != None: + if bi == prevBi and previ == i - 1: + runningList[-1][1] += 1 + else: + runningList.append([i, i, qi[bi - 1]]) + else: + runningList.append([i, i, qi[bi - 1]]) + prevBi = bi + previ = i + return runningList diff --git a/py/refFunc.py b/py/refFunc.py index 6ade0c8..597498f 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -3,62 +3,57 @@ import os import random -OK_CHR_ORD = {ord('A'):True,ord('C'):True,ord('G'):True,ord('T'):True,ord('U'):True} -ALLOWED_NUCL = ['A','C','G','T'] -# # Index reference fasta -# def indexRef(refPath): - - tt = time.time() - - fn = None - if os.path.isfile(refPath+'i'): - print 'found index '+refPath+'i' - fn = refPath+'i' - if os.path.isfile(refPath+'.fai'): - print 'found index '+refPath+'.fai' - fn = refPath+'.fai' - - ref_inds = [] - if fn != None: - fai = open(fn,'r') - for line in fai: - splt = line[:-1].split('\t') - seqLen = int(splt[1]) - offset = int(splt[2]) - lineLn = int(splt[3]) - nLines = seqLen/lineLn - if seqLen%lineLn != 0: - nLines += 1 - ref_inds.append((splt[0],offset,offset+seqLen+nLines,seqLen)) - fai.close() - return ref_inds - - sys.stdout.write('index not found, creating one... ') - sys.stdout.flush() - refFile = open(refPath,'r') - prevR = None - prevP = None - seqLen = 0 - while 1: - data = refFile.readline() - if not data: - ref_inds.append( (prevR, prevP, refFile.tell()-len(data), seqLen) ) - break - if data[0] == '>': - if prevP != None: - ref_inds.append( (prevR, prevP, refFile.tell()-len(data), seqLen) ) - seqLen = 0 - prevP = refFile.tell() - prevR = data[1:-1] - else: - seqLen += len(data)-1 - refFile.close() - - print '{0:.3f} (sec)'.format(time.time()-tt) - return ref_inds + tt = time.time() + + fn = None + if os.path.isfile(refPath + 'i'): + print('found index ' + refPath + 'i') + fn = refPath + 'i' + if os.path.isfile(refPath + '.fai'): + print('found index ' + refPath + '.fai') + fn = refPath + '.fai' + + ref_inds = [] + if fn is not None: + fai = open(fn, 'r') + for line in fai: + splt = line[:-1].split('\t') + seqLen = int(splt[1]) + offset = int(splt[2]) + lineLn = int(splt[3]) + nLines = seqLen / lineLn + if seqLen % lineLn != 0: + nLines += 1 + ref_inds.append((splt[0], offset, offset + seqLen + nLines, seqLen)) + fai.close() + return ref_inds + + sys.stdout.write('index not found, creating one... ') + sys.stdout.flush() + refFile = open(refPath, 'r') + prevR = None + prevP = None + seqLen = 0 + while 1: + data = refFile.readline() + if not data: + ref_inds.append((prevR, prevP, refFile.tell() - len(data), seqLen)) + break + if data[0] == '>': + if prevP is not None: + ref_inds.append((prevR, prevP, refFile.tell() - len(data), seqLen)) + seqLen = 0 + prevP = refFile.tell() + prevR = data[1:-1] + else: + seqLen += len(data) - 1 + refFile.close() + + print('{0:.3f} (sec)'.format(time.time() - tt)) + return ref_inds # @@ -73,138 +68,136 @@ def indexRef(refPath): # of 'chr's # - ('ignore') --> do not alter nucleotides in N regions # -def readRef(refPath,ref_inds_i,N_handling,N_unknowns=True,quiet=False): - - tt = time.time() - if not quiet: - sys.stdout.write('reading '+ref_inds_i[0]+'... ') - sys.stdout.flush() - - refFile = open(refPath,'r') - refFile.seek(ref_inds_i[1]) - myDat = ''.join(refFile.read(ref_inds_i[2]-ref_inds_i[1]).split('\n')) - myDat = bytearray(myDat.upper()) - - # find N regions - # data explanation: myDat[N_atlas[0][0]:N_atlas[0][1]] = solid block of Ns - prevNI = 0 - nCount = 0 - N_atlas = [] - for i in xrange(len(myDat)): - if myDat[i] == ord('N') or (N_unknowns and myDat[i] not in OK_CHR_ORD): - if nCount == 0: - prevNI = i - nCount += 1 - if i == len(myDat)-1: - N_atlas.append((prevNI,prevNI+nCount)) - else: - if nCount > 0: - N_atlas.append((prevNI,prevNI+nCount)) - nCount = 0 - - # handle N base-calls as desired - N_info = {} - N_info['all'] = [] - N_info['big'] = [] - N_info['non_N'] = [] - if N_handling[0] == 'random': - for region in N_atlas: - N_info['all'].extend(region) - if region[1]-region[0] <= N_handling[1]: - for i in xrange(region[0],region[1]): - myDat[i] = random.choice(ALLOWED_NUCL) - else: - N_info['big'].extend(region) - elif N_handling[0] == 'allChr' and N_handling[2] in OK_CHR_ORD: - for region in N_atlas: - N_info['all'].extend(region) - if region[1]-region[0] <= N_handling[1]: - for i in xrange(region[0],region[1]): - myDat[i] = N_handling[2] - else: - N_info['big'].extend(region) - elif N_handling[0] == 'ignore': - for region in N_atlas: - N_info['all'].extend(region) - N_info['big'].extend(region) - else: - print '\nERROR: UNKNOWN N_HANDLING MODE\n' - exit(1) - - habitableRegions = [] - if N_info['big'] == []: - N_info['non_N'] = [(0,len(myDat))] - else: - for i in xrange(0,len(N_info['big']),2): - if i == 0: - habitableRegions.append((0,N_info['big'][0])) - else: - habitableRegions.append((N_info['big'][i-1],N_info['big'][i])) - habitableRegions.append((N_info['big'][-1],len(myDat))) - for n in habitableRegions: - if n[0] != n[1]: - N_info['non_N'].append(n) - - if not quiet: - print '{0:.3f} (sec)'.format(time.time()-tt) - return (myDat,N_info) +def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): + OK_CHR_ORD = {ord('A'): True, ord('C'): True, ord('G'): True, ord('T'): True, ord('U'): True} + ALLOWED_NUCL = ['A', 'C', 'G', 'T'] + tt = time.time() + if not quiet: + sys.stdout.write('reading ' + ref_inds_i[0] + '... ') + sys.stdout.flush() + + refFile = open(refPath, 'r') + refFile.seek(ref_inds_i[1]) + myDat = ''.join(refFile.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) + myDat = bytearray(myDat.upper()) + + # find N regions + # data explanation: myDat[N_atlas[0][0]:N_atlas[0][1]] = solid block of Ns + prevNI = 0 + nCount = 0 + N_atlas = [] + for i in range(len(myDat)): + if myDat[i] == ord('N') or (N_unknowns and myDat[i] not in OK_CHR_ORD): + if nCount == 0: + prevNI = i + nCount += 1 + if i == len(myDat) - 1: + N_atlas.append((prevNI, prevNI + nCount)) + else: + if nCount > 0: + N_atlas.append((prevNI, prevNI + nCount)) + nCount = 0 + + # handle N base-calls as desired + N_info = {} + N_info['all'] = [] + N_info['big'] = [] + N_info['non_N'] = [] + if N_handling[0] == 'random': + for region in N_atlas: + N_info['all'].extend(region) + if region[1] - region[0] <= N_handling[1]: + for i in range(region[0], region[1]): + myDat[i] = random.choice(ALLOWED_NUCL) + else: + N_info['big'].extend(region) + elif N_handling[0] == 'allChr' and N_handling[2] in OK_CHR_ORD: + for region in N_atlas: + N_info['all'].extend(region) + if region[1] - region[0] <= N_handling[1]: + for i in range(region[0], region[1]): + myDat[i] = N_handling[2] + else: + N_info['big'].extend(region) + elif N_handling[0] == 'ignore': + for region in N_atlas: + N_info['all'].extend(region) + N_info['big'].extend(region) + else: + print('\nERROR: UNKNOWN N_HANDLING MODE\n') + exit(1) + + habitableRegions = [] + if N_info['big'] == []: + N_info['non_N'] = [(0, len(myDat))] + else: + for i in range(0, len(N_info['big']), 2): + if i == 0: + habitableRegions.append((0, N_info['big'][0])) + else: + habitableRegions.append((N_info['big'][i - 1], N_info['big'][i])) + habitableRegions.append((N_info['big'][-1], len(myDat))) + for n in habitableRegions: + if n[0] != n[1]: + N_info['non_N'].append(n) + + if not quiet: + print('{0:.3f} (sec)'.format(time.time() - tt)) + return (myDat, N_info) + -# # find all non-N regions in reference sequence ahead of time, for computing jobs in parallel -# -def getAllRefRegions(refPath,ref_inds,N_handling,saveOutput=False): - outRegions = {} - fn = refPath+'.nnr' - if os.path.isfile(fn) and not(saveOutput): - print 'found list of preidentified non-N regions...' - f = open(fn,'r') - for line in f: - splt = line.strip().split('\t') - if splt[0] not in outRegions: - outRegions[splt[0]] = [] - outRegions[splt[0]].append((int(splt[1]),int(splt[2]))) - f.close() - return outRegions - else: - print 'enumerating all non-N regions in reference sequence...' - for RI in xrange(len(ref_inds)): - (refSequence,N_regions) = readRef(refPath,ref_inds[RI],N_handling,quiet=True) - refName = ref_inds[RI][0] - outRegions[refName] = [n for n in N_regions['non_N']] - if saveOutput: - f = open(fn,'w') - for k in outRegions.keys(): - for n in outRegions[k]: - f.write(k+'\t'+str(n[0])+'\t'+str(n[1])+'\n') - f.close() - return outRegions +def getAllRefRegions(refPath, ref_inds, N_handling, saveOutput=False): + outRegions = {} + fn = refPath + '.nnr' + if os.path.isfile(fn) and not (saveOutput): + print('found list of preidentified non-N regions...') + f = open(fn, 'r') + for line in f: + splt = line.strip().split('\t') + if splt[0] not in outRegions: + outRegions[splt[0]] = [] + outRegions[splt[0]].append((int(splt[1]), int(splt[2]))) + f.close() + return outRegions + else: + print('enumerating all non-N regions in reference sequence...') + for RI in range(len(ref_inds)): + (refSequence, N_regions) = readRef(refPath, ref_inds[RI], N_handling, quiet=True) + refName = ref_inds[RI][0] + outRegions[refName] = [n for n in N_regions['non_N']] + if saveOutput: + f = open(fn, 'w') + for k in outRegions.keys(): + for n in outRegions[k]: + f.write(k + '\t' + str(n[0]) + '\t' + str(n[1]) + '\n') + f.close() + return outRegions + -# # find which of the non-N regions are going to be used for this job -# -def partitionRefRegions(inRegions,ref_inds,myjob,njobs): - - totSize = 0 - for RI in xrange(len(ref_inds)): - refName = ref_inds[RI][0] - for region in inRegions[refName]: - totSize += region[1] - region[0] - sizePerJob = int(totSize/float(njobs)-0.5) - - regionsPerJob = [[] for n in xrange(njobs)] - refsPerJob = [{} for n in xrange(njobs)] - currentInd = 0 - currentCount = 0 - for RI in xrange(len(ref_inds)): - refName = ref_inds[RI][0] - for region in inRegions[refName]: - regionsPerJob[currentInd].append((refName,region[0],region[1])) - refsPerJob[currentInd][refName] = True - currentCount += region[1] - region[0] - if currentCount >= sizePerJob: - currentCount = 0 - currentInd = min([currentInd+1,njobs-1]) - - relevantRefs = refsPerJob[myjob-1].keys() - relevantRegs = regionsPerJob[myjob-1] - return (relevantRefs,relevantRegs) +def partitionRefRegions(inRegions, ref_inds, myjob, njobs): + totSize = 0 + for RI in range(len(ref_inds)): + refName = ref_inds[RI][0] + for region in inRegions[refName]: + totSize += region[1] - region[0] + sizePerJob = int(totSize / float(njobs) - 0.5) + + regionsPerJob = [[] for n in range(njobs)] + refsPerJob = [{} for n in range(njobs)] + currentInd = 0 + currentCount = 0 + for RI in range(len(ref_inds)): + refName = ref_inds[RI][0] + for region in inRegions[refName]: + regionsPerJob[currentInd].append((refName, region[0], region[1])) + refsPerJob[currentInd][refName] = True + currentCount += region[1] - region[0] + if currentCount >= sizePerJob: + currentCount = 0 + currentInd = min([currentInd + 1, njobs - 1]) + + relevantRefs = refsPerJob[myjob - 1].keys() + relevantRegs = regionsPerJob[myjob - 1] + return (relevantRefs, relevantRegs) diff --git a/py/vcfFunc.py b/py/vcfFunc.py index fe2bcd7..f9e2ff7 100644 --- a/py/vcfFunc.py +++ b/py/vcfFunc.py @@ -8,181 +8,177 @@ INCLUDE_FAIL = False CHOOSE_RANDOM_PLOID_IF_NO_GT_FOUND = True -def parseLine(splt,colDict,colSamp): - - # check if we want to proceed.. - ra = splt[colDict['REF']] - aa = splt[colDict['ALT']] - # enough columns? - if len(splt) != len(colDict): - return None - # exclude homs / filtered? - if not(INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): - return None - if not(INCLUDE_FAIL) and (splt[colDict['FILTER']] != 'PASS' and splt[colDict['FILTER']] != '.'): - return None - - # default vals - alt_alleles = [aa] - alt_freqs = [] - - gt_perSamp = [] - - # any alt alleles? - alt_split = aa.split(',') - if len(alt_split) > 1: - alt_alleles = alt_split - - # check INFO for AF - af = None - if 'INFO' in colDict and ';AF=' in ';'+splt[colDict['INFO']]: - info = splt[colDict['INFO']]+';' - af = re.findall(r"AF=.*?(?=;)",info)[0][3:] - if af != None: - af_splt = af.split(',') - while(len(af_splt) < len(alt_alleles)): # are we lacking enough AF values for some reason? - af_splt.append(af_splt[-1]) # phone it in. - if len(af_splt) != 0 and af_splt[0] != '.' and af_splt[0] != '': # missing data, yay - alt_freqs = [float(n) for n in af_splt] - else: - alt_freqs = [None]*max([len(alt_alleles),1]) - - gt_perSamp = None - # if available (i.e. we simulated it) look for WP in info - if len(colSamp) == 0 and 'INFO' in colDict and 'WP=' in splt[colDict['INFO']]: - info = splt[colDict['INFO']]+';' - gt_perSamp = [re.findall(r"WP=.*?(?=;)",info)[0][3:]] - else: - # if no sample columns, check info for GT - if len(colSamp) == 0 and 'INFO' in colDict and 'GT=' in splt[colDict['INFO']]: - info = splt[colDict['INFO']]+';' - gt_perSamp = [re.findall(r"GT=.*?(?=;)",info)[0][3:]] - elif len(colSamp): - fmt = ':'+splt[colDict['FORMAT']]+':' - if ':GT:' in fmt: - gtInd = fmt.split(':').index('GT') - gt_perSamp = [splt[colSamp[iii]].split(':')[gtInd-1] for iii in xrange(len(colSamp))] - for i in xrange(len(gt_perSamp)): - gt_perSamp[i] = gt_perSamp[i].replace('.','0') - if gt_perSamp == None: - gt_perSamp = [None]*max([len(colSamp),1]) - - return (alt_alleles, alt_freqs, gt_perSamp) - - - -def parseVCF(vcfPath,tumorNormal=False,ploidy=2): - - tt = time.time() - print '--------------------------------' - sys.stdout.write('reading input VCF...\n') - sys.stdout.flush() - - colDict = {} - colSamp = [] - nSkipped = 0 - nSkipped_becauseHash = 0 - allVars = {} # [ref][pos] - sampNames = [] - alreadyPrintedWarning = False - f = open(vcfPath,'r') - for line in f: - - if line[0] != '#': - if len(colDict) == 0: - print '\n\nERROR: VCF has no header?\n'+VCF_FILENAME+'\n\n' - f.close() - exit(1) - splt = line[:-1].split('\t') - plOut = parseLine(splt,colDict,colSamp) - if plOut == None: - nSkipped += 1 - else: - (aa, af, gt) = plOut - - # make sure at least one allele somewhere contains the variant - if tumorNormal: - gtEval = gt[:2] - else: - gtEval = gt[:1] - if None in gtEval: - if CHOOSE_RANDOM_PLOID_IF_NO_GT_FOUND: - if not alreadyPrintedWarning: - print 'Warning: Found variants without a GT field, assuming heterozygous...' - alreadyPrintedWarning = True - for i in xrange(len(gtEval)): - tmp = ['0']*ploidy - tmp[random.randint(0,ploidy-1)] = '1' - gtEval[i] = '/'.join(tmp) - else: - # skip because no GT field was found - nSkipped += 1 - continue - isNonReference = False - for gtVal in gtEval: - if gtVal != None: - if '1' in gtVal: - isNonReference = True - if not isNonReference: - # skip if no genotype actually contains this variant - nSkipped += 1 - continue - - chrom = splt[0] - pos = int(splt[1]) - ref = splt[3] - # skip if position is <= 0 - if pos <= 0: - nSkipped += 1 - continue - - # hash variants to avoid inserting duplicates (there are some messy VCFs out there...) - if chrom not in allVars: - allVars[chrom] = {} - if pos not in allVars[chrom]: - allVars[chrom][pos] = (pos,ref,aa,af,gtEval) - else: - nSkipped_becauseHash += 1 - - else: - if line[1] != '#': - cols = line[1:-1].split('\t') - for i in xrange(len(cols)): - if 'FORMAT' in colDict: - colSamp.append(i) - colDict[cols[i]] = i - if len(colSamp): - sampNames = cols[-len(colSamp):] - if len(colSamp) == 1: - pass - elif len(colSamp) == 2 and tumorNormal: - print 'Detected 2 sample columns in input VCF, assuming tumor/normal.' - else: - print 'Warning: Multiple sample columns present in input VCF. By default genReads uses only the first column.' - else: - sampNames = ['Unknown'] - if tumorNormal: - #tumorInd = sampNames.index('TUMOR') - #normalInd = sampNames.index('NORMAL') - if 'NORMAL' not in sampNames or 'TUMOR' not in sampNames: - print '\n\nERROR: Input VCF must have a "NORMAL" and "TUMOR" column.\n' - f.close() - - varsOut = {} - for r in allVars.keys(): - varsOut[r] = [list(allVars[r][k]) for k in sorted(allVars[r].keys())] - # prune unnecessary sequence from ref/alt alleles - for i in xrange(len(varsOut[r])): - while len(varsOut[r][i][1]) > 1 and all([n[-1] == varsOut[r][i][1][-1] for n in varsOut[r][i][2]]): - varsOut[r][i][1] = varsOut[r][i][1][:-1] - varsOut[r][i][2] = [n[:-1] for n in varsOut[r][i][2]] - varsOut[r][i] = tuple(varsOut[r][i]) - - print 'found',sum([len(n) for n in allVars.values()]),'valid variants in input vcf.' - print ' *',nSkipped,'variants skipped: (qual filtered / ref genotypes / invalid syntax)' - print ' *',nSkipped_becauseHash,'variants skipped due to multiple variants found per position' - print '--------------------------------' - return (sampNames, varsOut) - - +def parseLine(splt, colDict, colSamp): + # check if we want to proceed.. + ra = splt[colDict['REF']] + aa = splt[colDict['ALT']] + # enough columns? + if len(splt) != len(colDict): + return None + # exclude homs / filtered? + if not (INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): + return None + if not (INCLUDE_FAIL) and (splt[colDict['FILTER']] != 'PASS' and splt[colDict['FILTER']] != '.'): + return None + + # default vals + alt_alleles = [aa] + alt_freqs = [] + + gt_perSamp = [] + + # any alt alleles? + alt_split = aa.split(',') + if len(alt_split) > 1: + alt_alleles = alt_split + + # check INFO for AF + af = None + if 'INFO' in colDict and ';AF=' in ';' + splt[colDict['INFO']]: + info = splt[colDict['INFO']] + ';' + af = re.findall(r"AF=.*?(?=;)", info)[0][3:] + if af != None: + af_splt = af.split(',') + while (len(af_splt) < len(alt_alleles)): # are we lacking enough AF values for some reason? + af_splt.append(af_splt[-1]) # phone it in. + if len(af_splt) != 0 and af_splt[0] != '.' and af_splt[0] != '': # missing data, yay + alt_freqs = [float(n) for n in af_splt] + else: + alt_freqs = [None] * max([len(alt_alleles), 1]) + + gt_perSamp = None + # if available (i.e. we simulated it) look for WP in info + if len(colSamp) == 0 and 'INFO' in colDict and 'WP=' in splt[colDict['INFO']]: + info = splt[colDict['INFO']] + ';' + gt_perSamp = [re.findall(r"WP=.*?(?=;)", info)[0][3:]] + else: + # if no sample columns, check info for GT + if len(colSamp) == 0 and 'INFO' in colDict and 'GT=' in splt[colDict['INFO']]: + info = splt[colDict['INFO']] + ';' + gt_perSamp = [re.findall(r"GT=.*?(?=;)", info)[0][3:]] + elif len(colSamp): + fmt = ':' + splt[colDict['FORMAT']] + ':' + if ':GT:' in fmt: + gtInd = fmt.split(':').index('GT') + gt_perSamp = [splt[colSamp[iii]].split(':')[gtInd - 1] for iii in range(len(colSamp))] + for i in range(len(gt_perSamp)): + gt_perSamp[i] = gt_perSamp[i].replace('.', '0') + if gt_perSamp == None: + gt_perSamp = [None] * max([len(colSamp), 1]) + + return (alt_alleles, alt_freqs, gt_perSamp) + + +def parseVCF(vcfPath, tumorNormal=False, ploidy=2): + tt = time.time() + print('--------------------------------') + sys.stdout.write('reading input VCF...\n') + sys.stdout.flush() + + colDict = {} + colSamp = [] + nSkipped = 0 + nSkipped_becauseHash = 0 + allVars = {} # [ref][pos] + sampNames = [] + alreadyPrintedWarning = False + f = open(vcfPath, 'r') + for line in f: + + if line[0] != '#': + if len(colDict) == 0: + print('\n\nERROR: VCF has no header?\n' + vcfPath + '\n\n') + f.close() + exit(1) + splt = line[:-1].split('\t') + plOut = parseLine(splt, colDict, colSamp) + if plOut == None: + nSkipped += 1 + else: + (aa, af, gt) = plOut + + # make sure at least one allele somewhere contains the variant + if tumorNormal: + gtEval = gt[:2] + else: + gtEval = gt[:1] + if None in gtEval: + if CHOOSE_RANDOM_PLOID_IF_NO_GT_FOUND: + if not alreadyPrintedWarning: + print('Warning: Found variants without a GT field, assuming heterozygous...') + alreadyPrintedWarning = True + for i in range(len(gtEval)): + tmp = ['0'] * ploidy + tmp[random.randint(0, ploidy - 1)] = '1' + gtEval[i] = '/'.join(tmp) + else: + # skip because no GT field was found + nSkipped += 1 + continue + isNonReference = False + for gtVal in gtEval: + if gtVal != None: + if '1' in gtVal: + isNonReference = True + if not isNonReference: + # skip if no genotype actually contains this variant + nSkipped += 1 + continue + + chrom = splt[0] + pos = int(splt[1]) + ref = splt[3] + # skip if position is <= 0 + if pos <= 0: + nSkipped += 1 + continue + + # hash variants to avoid inserting duplicates (there are some messy VCFs out there...) + if chrom not in allVars: + allVars[chrom] = {} + if pos not in allVars[chrom]: + allVars[chrom][pos] = (pos, ref, aa, af, gtEval) + else: + nSkipped_becauseHash += 1 + + else: + if line[1] != '#': + cols = line[1:-1].split('\t') + for i in range(len(cols)): + if 'FORMAT' in colDict: + colSamp.append(i) + colDict[cols[i]] = i + if len(colSamp): + sampNames = cols[-len(colSamp):] + if len(colSamp) == 1: + pass + elif len(colSamp) == 2 and tumorNormal: + print('Detected 2 sample columns in input VCF, assuming tumor/normal.') + else: + print( + 'Warning: Multiple sample columns present in input VCF. By default genReads uses only the first column.') + else: + sampNames = ['Unknown'] + if tumorNormal: + # tumorInd = sampNames.index('TUMOR') + # normalInd = sampNames.index('NORMAL') + if 'NORMAL' not in sampNames or 'TUMOR' not in sampNames: + print('\n\nERROR: Input VCF must have a "NORMAL" and "TUMOR" column.\n') + f.close() + + varsOut = {} + for r in allVars.keys(): + varsOut[r] = [list(allVars[r][k]) for k in sorted(allVars[r].keys())] + # prune unnecessary sequence from ref/alt alleles + for i in range(len(varsOut[r])): + while len(varsOut[r][i][1]) > 1 and all([n[-1] == varsOut[r][i][1][-1] for n in varsOut[r][i][2]]): + varsOut[r][i][1] = varsOut[r][i][1][:-1] + varsOut[r][i][2] = [n[:-1] for n in varsOut[r][i][2]] + varsOut[r][i] = tuple(varsOut[r][i]) + + print('found', sum([len(n) for n in allVars.values()]), 'valid variants in input vcf.') + print(' *', nSkipped, 'variants skipped: (qual filtered / ref genotypes / invalid syntax)') + print(' *', nSkipped_becauseHash, 'variants skipped due to multiple variants found per position') + print('--------------------------------') + return (sampNames, varsOut) From fe6700304de80ba8a0d90330f4483b394681bb84 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Tue, 7 Jan 2020 16:14:39 -0600 Subject: [PATCH 002/323] Bringing scripts up to par with minimal Python3 --- mergeJobs.py | 214 +++--- utilities/__init__.py | 0 utilities/computeFraglen.py | 104 +-- utilities/computeGC.py | 129 ++-- utilities/genMutModel.py | 942 +++++++++++------------ utilities/genSeqErrorModel.py | 522 ++++++------- utilities/plotMutModel.py | 366 ++++----- utilities/validateBam.py | 124 +-- utilities/validateFQ.py | 111 +-- utilities/vcf_compare_OLD.py | 1333 +++++++++++++++++---------------- 10 files changed, 1946 insertions(+), 1899 deletions(-) create mode 100644 utilities/__init__.py diff --git a/mergeJobs.py b/mergeJobs.py index 5f3b04e..55c9237 100644 --- a/mergeJobs.py +++ b/mergeJobs.py @@ -2,59 +2,66 @@ import os import argparse -def getListOfFiles(inDir,pattern): - return [inDir+n for n in os.listdir(inDir) if (pattern in n and os.path.getsize(inDir+n))] + +def getListOfFiles(inDir, pattern): + return [inDir + n for n in os.listdir(inDir) if (pattern in n and os.path.getsize(inDir + n))] + TEMP_IND = 0 + + def stripVCF_header(fn): - global TEMP_IND - f = open(fn,'r') - ftn = fn+'_temp'+str(TEMP_IND) - f_t = open(ftn,'w') - hasHeader = False - for line in f: - if line[0] == '#': - if not hasHeader: - TEMP_IND += 1 - hasHeader = True - elif hasHeader: - f_t.write(line) - else: - break - f_t.close() - f.close() - if hasHeader: - return ftn - else: - os.system('rm '+ftn) - return fn - -def catListOfFiles(l,outName,gzipped=False): - for n in l: - if n[-3:] == '.gz' or n[-5:] == '.gzip': - gzipped = True - if gzipped: - for n in l: - if not n[-3:] == '.gz' and not n[-5:] == '.gzip': - print '\nError: Found a mixture of compressed and decompressed files with the specified prefix. Abandoning ship...\n' - for m in l: - print m - print '' - exit(1) - cmd = 'cat '+' '.join(sorted(l))+' > '+outName+'.gz' - else: - cmd = 'cat '+' '.join(sorted(l))+' > '+outName - print cmd - os.system(cmd) - -def catBams(l,outName,samtools_exe): - l_sort = sorted(l) - tmp = outName+'.tempHeader.sam' - os.system(samtools_exe+' view -H '+l_sort[0]+' > '+tmp) - cmd = samtools_exe+' cat -h '+tmp+' '+' '.join(l_sort)+' > '+outName - print cmd - os.system(cmd) - os.system('rm '+tmp) + global TEMP_IND + f = open(fn, 'r') + ftn = fn + '_temp' + str(TEMP_IND) + f_t = open(ftn, 'w') + hasHeader = False + for line in f: + if line[0] == '#': + if not hasHeader: + TEMP_IND += 1 + hasHeader = True + elif hasHeader: + f_t.write(line) + else: + break + f_t.close() + f.close() + if hasHeader: + return ftn + else: + os.system('rm ' + ftn) + return fn + + +def catListOfFiles(l, outName, gzipped=False): + for n in l: + if n[-3:] == '.gz' or n[-5:] == '.gzip': + gzipped = True + if gzipped: + for n in l: + if not n[-3:] == '.gz' and not n[-5:] == '.gzip': + print('\nError: Found a mixture of compressed and decompressed files with the specified prefix.' + 'Abandoning ship...\n') + for m in l: + print(m) + print('') + exit(1) + cmd = 'cat ' + ' '.join(sorted(l)) + ' > ' + outName + '.gz' + else: + cmd = 'cat ' + ' '.join(sorted(l)) + ' > ' + outName + print(cmd) + os.system(cmd) + + +def catBams(l, outName, samtools_exe): + l_sort = sorted(l) + tmp = outName + '.tempHeader.sam' + os.system(samtools_exe + ' view -H ' + l_sort[0] + ' > ' + tmp) + cmd = samtools_exe + ' cat -h ' + tmp + ' ' + ' '.join(l_sort) + ' > ' + outName + print(cmd) + os.system(cmd) + os.system('rm ' + tmp) ##################################### @@ -62,60 +69,59 @@ def catBams(l,outName,samtools_exe): ##################################### def main(): - - parser = argparse.ArgumentParser(description='mergeJobs.py') - parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* input prefix: [prefix_1] [prefix_2] ...") - parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") - parser.add_argument('-s', type=str, required=True, metavar='', help="* /path/to/samtools") - - args = parser.parse_args() - (INP,OUP,SAMTOOLS) = (args.i,args.o,args.s) - - inDir = '/'.join(INP[0].split('/')[:-1])+'/' - if inDir == '/': - inDir = './' - #print inDir - - INP_LIST = [] - for n in INP: - if n[-1] == '/': - n = n[:-1] - INP_LIST.append(n.split('/')[-1]) - listing_r1 = [] - listing_r2 = [] - listing_b = [] - listing_v = [] - for n in INP_LIST: - listing_r1 += getListOfFiles(inDir,n+'_read1.fq.job') - listing_r2 += getListOfFiles(inDir,n+'_read2.fq.job') - listing_b += getListOfFiles(inDir,n+'_golden.bam.job') - if len(listing_v): # remove headers from vcf files that aren't the first being processed - initList = getListOfFiles(inDir,n+'_golden.vcf.job') - listing_v += [stripVCF_header(n) for n in initList] - else: - listing_v += getListOfFiles(inDir,n+'_golden.vcf.job') - - # - # merge fq files - # - if len(listing_r1): - catListOfFiles(listing_r1,OUP+'_read1.fq') - if len(listing_r2): - catListOfFiles(listing_r2,OUP+'_read2.fq') - - # - # merge golden alignments, if present - # - if len(listing_b): - catBams(listing_b,OUP+'_golden.bam',SAMTOOLS) - - # - # merge golden vcfs, if present - # - if len(listing_v): - catListOfFiles(listing_v,OUP+'_golden.vcf') + parser = argparse.ArgumentParser(description='mergeJobs.py') + parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', + help="* input prefix: [prefix_1] [prefix_2] ...") + parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") + parser.add_argument('-s', type=str, required=True, metavar='', help="* /path/to/samtools") + + args = parser.parse_args() + (INP, OUP, SAMTOOLS) = (args.i, args.o, args.s) + + inDir = '/'.join(INP[0].split('/')[:-1]) + '/' + if inDir == '/': + inDir = './' + # print inDir + + INP_LIST = [] + for n in INP: + if n[-1] == '/': + n = n[:-1] + INP_LIST.append(n.split('/')[-1]) + listing_r1 = [] + listing_r2 = [] + listing_b = [] + listing_v = [] + for n in INP_LIST: + listing_r1 += getListOfFiles(inDir, n + '_read1.fq.job') + listing_r2 += getListOfFiles(inDir, n + '_read2.fq.job') + listing_b += getListOfFiles(inDir, n + '_golden.bam.job') + if len(listing_v): # remove headers from vcf files that aren't the first being processed + initList = getListOfFiles(inDir, n + '_golden.vcf.job') + listing_v += [stripVCF_header(n) for n in initList] + else: + listing_v += getListOfFiles(inDir, n + '_golden.vcf.job') + + # + # merge fq files + # + if len(listing_r1): + catListOfFiles(listing_r1, OUP + '_read1.fq') + if len(listing_r2): + catListOfFiles(listing_r2, OUP + '_read2.fq') + + # + # merge golden alignments, if present + # + if len(listing_b): + catBams(listing_b, OUP + '_golden.bam', SAMTOOLS) + + # + # merge golden vcfs, if present + # + if len(listing_v): + catListOfFiles(listing_v, OUP + '_golden.vcf') if __name__ == "__main__": - main() - + main() diff --git a/utilities/__init__.py b/utilities/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 21a691b..f3715a1 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -10,79 +10,79 @@ import sys import fileinput -import cPickle as pickle +import pickle import numpy as np -FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality -FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it -FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median +FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality +FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it +FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median + def quick_median(countDict): - midPoint = sum(countDict.values())/2 - mySum = 0 - myInd = 0 - sk = sorted(countDict.keys()) - while mySum < midPoint: - mySum += countDict[sk[myInd]] - if mySum >= midPoint: - break - myInd += 1 - return myInd + midPoint = sum(countDict.values()) / 2 + mySum = 0 + myInd = 0 + sk = sorted(countDict.keys()) + while mySum < midPoint: + mySum += countDict[sk[myInd]] + if mySum >= midPoint: + break + myInd += 1 + return myInd + def median_deviation_from_median(countDict): - myMedian = quick_median(countDict) - deviations = {} - for k in sorted(countDict.keys()): - d = abs(k-myMedian) - deviations[d] = countDict[k] - return quick_median(deviations) + myMedian = quick_median(countDict) + deviations = {} + for k in sorted(countDict.keys()): + d = abs(k - myMedian) + deviations[d] = countDict[k] + return quick_median(deviations) + if len(sys.argv) != 1: - print "Usage: samtools view normal.bam | python computeFraglen.py" - exit(1) + print("Usage: samtools view normal.bam | python computeFraglen.py") + exit(1) all_tlens = {} PRINT_EVERY = 100000 BREAK_AFTER = 1000000 i = 0 for line in fileinput.input(): - splt = line.strip().split('\t') - samFlag = int(splt[1]) - myRef = splt[2] - mapQual = int(splt[4]) - mateRef = splt[6] - myTlen = abs(int(splt[8])) + splt = line.strip().split('\t') + samFlag = int(splt[1]) + myRef = splt[2] + mapQual = int(splt[4]) + mateRef = splt[6] + myTlen = abs(int(splt[8])) - if samFlag&1 and samFlag&64 and mapQual > FILTER_MAPQUAL: # if read is paired, and is first in pair, and is confidently mapped... - if mateRef == '=' or mateRef == myRef: # and mate is mapped to same reference - if myTlen not in all_tlens: - all_tlens[myTlen] = 0 - all_tlens[myTlen] += 1 - i += 1 - if i%PRINT_EVERY == 0: - print '---',i, quick_median(all_tlens), median_deviation_from_median(all_tlens) - #for k in sorted(all_tlens.keys()): - # print k, all_tlens[k] - - #if i > BREAK_AFTER: - # break + if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: # if read is paired, and is first in pair, and is confidently mapped... + if mateRef == '=' or mateRef == myRef: # and mate is mapped to same reference + if myTlen not in all_tlens: + all_tlens[myTlen] = 0 + all_tlens[myTlen] += 1 + i += 1 + if i % PRINT_EVERY == 0: + print('---', i, quick_median(all_tlens), median_deviation_from_median(all_tlens)) + # for k in sorted(all_tlens.keys()): + # print k, all_tlens[k] + # if i > BREAK_AFTER: + # break med = quick_median(all_tlens) mdm = median_deviation_from_median(all_tlens) -outVals = [] +outVals = [] outProbs = [] for k in sorted(all_tlens.keys()): - if k > 0 and k < med + FILTER_MEDDEV_M * mdm: - if all_tlens[k] >= FILTER_MINREADS: - print k, all_tlens[k] - outVals.append(k) - outProbs.append(all_tlens[k]) + if k > 0 and k < med + FILTER_MEDDEV_M * mdm: + if all_tlens[k] >= FILTER_MINREADS: + print(k, all_tlens[k]) + outVals.append(k) + outProbs.append(all_tlens[k]) countSum = float(sum(outProbs)) -outProbs = [n/countSum for n in outProbs] - -print '\nsaving model...' -pickle.dump([outVals, outProbs],open('fraglen.p','wb')) - +outProbs = [n / countSum for n in outProbs] +print('\nsaving model...') +pickle.dump([outVals, outProbs], open('fraglen.p', 'wb')) diff --git a/utilities/computeGC.py b/utilities/computeGC.py index ea7ea8e..5f4294d 100644 --- a/utilities/computeGC.py +++ b/utilities/computeGC.py @@ -15,101 +15,100 @@ import sys import argparse import numpy as np -import cPickle as pickle +import pickle parser = argparse.ArgumentParser(description='computeGC.py') -parser.add_argument('-i', type=str, required=True, metavar='', help="* input.genomecov") -parser.add_argument('-r', type=str, required=True, metavar='', help="* reference.fa") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") +parser.add_argument('-i', type=str, required=True, metavar='', help="* input.genomecov") +parser.add_argument('-r', type=str, required=True, metavar='', help="* reference.fa") +parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") parser.add_argument('-w', type=int, required=False, metavar='', help="sliding window length [50]", default=50) args = parser.parse_args() (IN_GCB, REF_FILE, WINDOW_SIZE, OUT_P) = (args.i, args.r, args.w, args.o) -GC_BINS = {n:[] for n in range(WINDOW_SIZE+1)} +GC_BINS = {n: [] for n in range(WINDOW_SIZE + 1)} -print 'reading ref...' +print('reading ref...') allRefs = {} -f = open(REF_FILE,'r') +f = open(REF_FILE, 'r') for line in f: - if line[0] == '>': - refName = line.strip()[1:] - allRefs[refName] = [] - print refName - #if refName == 'chr2': - # break - else: - allRefs[refName].append(line.strip()) + if line[0] == '>': + refName = line.strip()[1:] + allRefs[refName] = [] + print(refName) + # if refName == 'chr2': + # break + else: + allRefs[refName].append(line.strip()) f.close() -print 'capitalizing ref...' +print('capitalizing ref...') for k in sorted(allRefs.keys()): - print k - allRefs[k] = ''.join(allRefs[k]) - allRefs[k] = allRefs[k].upper() + print(k) + allRefs[k] = ''.join(allRefs[k]) + allRefs[k] = allRefs[k].upper() -print 'reading genomecov file...' +print('reading genomecov file...') tt = time.time() -f = open(IN_GCB,'r') +f = open(IN_GCB, 'r') currentLine = 0 -currentRef = None -currentCov = 0 +currentRef = None +currentCov = 0 linesProcessed = 0 -PRINT_EVERY = 1000000 -STOP_AFTER = 1000000 +PRINT_EVERY = 1000000 +STOP_AFTER = 1000000 for line in f: - splt = line.strip().split('\t') - if linesProcessed%PRINT_EVERY == 0: - print linesProcessed - linesProcessed += 1 + splt = line.strip().split('\t') + if linesProcessed % PRINT_EVERY == 0: + print(linesProcessed) + linesProcessed += 1 - #if linesProcessed > STOP_AFTER: - # break + # if linesProcessed > STOP_AFTER: + # break - if currentLine == 0: - currentRef = splt[0] - sPos = int(splt[1])-1 + if currentLine == 0: + currentRef = splt[0] + sPos = int(splt[1]) - 1 - if currentRef not in allRefs: - continue + if currentRef not in allRefs: + continue - currentLine += 1 - currentCov += float(splt[2]) + currentLine += 1 + currentCov += float(splt[2]) - if currentLine == WINDOW_SIZE: - currentLine = 0 - seq = allRefs[currentRef][sPos:sPos+WINDOW_SIZE] - if 'N' not in seq: - gc_count = seq.count('G') + seq.count('C') - GC_BINS[gc_count].append(currentCov) - currentCov = 0 + if currentLine == WINDOW_SIZE: + currentLine = 0 + seq = allRefs[currentRef][sPos:sPos + WINDOW_SIZE] + if 'N' not in seq: + gc_count = seq.count('G') + seq.count('C') + GC_BINS[gc_count].append(currentCov) + currentCov = 0 f.close() runningTot = 0 -allMean = 0.0 +allMean = 0.0 for k in sorted(GC_BINS.keys()): - if len(GC_BINS[k]) == 0: - print '{0:0.2%}'.format(k/float(WINDOW_SIZE)), 0.0, 0 - GC_BINS[k] = 0 - else: - myMean = np.mean(GC_BINS[k]) - myLen = len(GC_BINS[k]) - print '{0:0.2%}'.format(k/float(WINDOW_SIZE)), myMean, myLen - allMean += myMean * myLen - runningTot += myLen - GC_BINS[k] = myMean - -avgCov = allMean/float(runningTot) -print 'AVERAGE COVERAGE =',avgCov + if len(GC_BINS[k]) == 0: + print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), 0.0, 0) + GC_BINS[k] = 0 + else: + myMean = np.mean(GC_BINS[k]) + myLen = len(GC_BINS[k]) + print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), myMean, myLen) + allMean += myMean * myLen + runningTot += myLen + GC_BINS[k] = myMean + +avgCov = allMean / float(runningTot) +print('AVERAGE COVERAGE =', avgCov) y_out = [] for k in sorted(GC_BINS.keys()): - GC_BINS[k] /= avgCov - y_out.append(GC_BINS[k]) + GC_BINS[k] /= avgCov + y_out.append(GC_BINS[k]) -print 'saving model...' -pickle.dump([range(WINDOW_SIZE+1),y_out],open(OUT_P,'wb')) - -print time.time()-tt,'(sec)' +print('saving model...') +pickle.dump([range(WINDOW_SIZE + 1), y_out], open(OUT_P, 'wb')) +print(time.time() - tt, '(sec)') diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 6aa1097..12ef023 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -12,12 +12,12 @@ SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) sys.path.append(SIM_PATH+'/py/') -from refFunc import indexRef +from py.refFunc import indexRef -REF_WHITELIST = [str(n) for n in xrange(1,30)] + ['x','y','X','Y','mt','Mt','MT'] +REF_WHITELIST = [str(n) for n in range(1,30)] + ['x','y','X','Y','mt','Mt','MT'] REF_WHITELIST += ['chr'+n for n in REF_WHITELIST] VALID_NUCL = ['A','C','G','T'] -VALID_TRINUC = [VALID_NUCL[i]+VALID_NUCL[j]+VALID_NUCL[k] for i in xrange(len(VALID_NUCL)) for j in xrange(len(VALID_NUCL)) for k in xrange(len(VALID_NUCL))] +VALID_TRINUC = [VALID_NUCL[i]+VALID_NUCL[j]+VALID_NUCL[k] for i in range(len(VALID_NUCL)) for j in range(len(VALID_NUCL)) for k in range(len(VALID_NUCL))] # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq VCF_DEFAULT_POP_FREQ = 0.00001 @@ -29,64 +29,64 @@ # given a reference index, grab the sequence string of a specified reference def getChrFromFasta(refPath,ref_inds,chrName): - for i in xrange(len(ref_inds)): - if ref_inds[i][0] == chrName: - ref_inds_i = ref_inds[i] - break - refFile = open(refPath,'r') - refFile.seek(ref_inds_i[1]) - myDat = ''.join(refFile.read(ref_inds_i[2]-ref_inds_i[1]).split('\n')) - return myDat + for i in range(len(ref_inds)): + if ref_inds[i][0] == chrName: + ref_inds_i = ref_inds[i] + break + refFile = open(refPath,'r') + refFile.seek(ref_inds_i[1]) + myDat = ''.join(refFile.read(ref_inds_i[2]-ref_inds_i[1]).split('\n')) + return myDat # cluster a sorted list def clusterList(l,delta): - outList = [[l[0]]] - prevVal = l[0] - currentInd = 0 - for n in l[1:]: - if n-prevVal <= delta: - outList[currentInd].append(n) - else: - currentInd += 1 - outList.append([]) - outList[currentInd].append(n) - prevVal = n - return outList + outList = [[l[0]]] + prevVal = l[0] + currentInd = 0 + for n in l[1:]: + if n-prevVal <= delta: + outList[currentInd].append(n) + else: + currentInd += 1 + outList.append([]) + outList[currentInd].append(n) + prevVal = n + return outList def list_2_countDict(l): - cDict = {} - for n in l: - if n not in cDict: - cDict[n] = 0 - cDict[n] += 1 - return cDict + cDict = {} + for n in l: + if n not in cDict: + cDict[n] = 0 + cDict[n] += 1 + return cDict def getBedTracks(fn): - f = open(fn,'r') - trackDict = {} - for line in f: - splt = line.strip().split('\t') - if splt[0] not in trackDict: - trackDict[splt[0]] = [] - trackDict[splt[0]].extend([int(splt[1]),int(splt[2])]) - f.close() - return trackDict + f = open(fn,'r') + trackDict = {} + for line in f: + splt = line.strip().split('\t') + if splt[0] not in trackDict: + trackDict[splt[0]] = [] + trackDict[splt[0]].extend([int(splt[1]),int(splt[2])]) + f.close() + return trackDict def getTrackLen(trackDict): - totSum = 0 - for k in trackDict.keys(): - for i in xrange(0,len(trackDict[k]),2): - totSum += trackDict[k][i+1] - trackDict[k][i] + 1 - return totSum + totSum = 0 + for k in trackDict.keys(): + for i in range(0,len(trackDict[k]),2): + totSum += trackDict[k][i+1] - trackDict[k][i] + 1 + return totSum def isInBed(track,ind): - myInd = bisect.bisect(track,ind) - if myInd&1: - return True - if myInd < len(track): - if track[myInd-1] == ind: - return True - return False + myInd = bisect.bisect(track,ind) + if myInd&1: + return True + if myInd < len(track): + if track[myInd-1] == ind: + return True + return False ## return the mean distance to the median of a cluster #def mean_dist_from_median(c): @@ -138,19 +138,19 @@ def isInBed(track,ind): MYBED = None if args.bi != None: - print 'only considering variants in specified bed regions...' - MYBED = (getBedTracks(args.bi),True) + print('only considering variants in specified bed regions...') + MYBED = (getBedTracks(args.bi),True) elif args.be != None: - print 'only considering variants outside of specified bed regions...' - MYBED = (getBedTracks(args.be),False) + print('only considering variants outside of specified bed regions...') +MYBED = (getBedTracks(args.be),False) if TSV[-4:] == '.vcf': - IS_VCF = True + IS_VCF = True elif TSV[-4:] == '.tsv': - IS_VCF = False + IS_VCF = False else: - print '\nError: Unknown format for mutation input.\n' - exit(1) + print('\nError: Unknown format for mutation input.\n') + exit(1) ##################################### @@ -160,421 +160,423 @@ def isInBed(track,ind): def main(): - ref_inds = indexRef(REF) - refList = [n[0] for n in ref_inds] - - # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? - TRINUC_REF_COUNT = {} - TRINUC_BED_COUNT = {} - printBedWarning = True - # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b - TRINUC_TRANSITION_COUNT = {} - # total count of SNPs - SNP_COUNT = 0 - # overall SNP transition probabilities - SNP_TRANSITION_COUNT = {} - # total count of indels, indexed by length - INDEL_COUNT = {} - # tabulate how much non-N reference sequence we've eaten through - TOTAL_REFLEN = 0 - # detect variants that occur in a significant percentage of the input samples (pos,ref,alt,pop_fraction) - COMMON_VARIANTS = [] - # tabulate how many unique donors we've encountered (this is useful for identifying common variants) - TOTAL_DONORS = {} - # identify regions that have significantly higher local mutation rates than the average - HIGH_MUT_REGIONS = [] - - # load and process variants in each reference sequence individually, for memory reasons... - for refName in refList: - - if (refName not in REF_WHITELIST) and (not NO_WHITELIST): - print refName,'is not in our whitelist, skipping...' - continue - - print 'reading reference "'+refName+'"...' - refSequence = getChrFromFasta(REF,ref_inds,refName).upper() - TOTAL_REFLEN += len(refSequence) - refSequence.count('N') - - # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) - VDAT_COMMON = [] - - - """ ########################################################################## - ### COUNT TRINUCLEOTIDES IN REF ### - ########################################################################## """ - - - if MYBED != None: - if printBedWarning: - print "since you're using a bed input, we have to count trinucs in bed region even if you specified a trinuc count file for the reference..." - printBedWarning = False - if refName in MYBED[0]: - refKey = refName - elif ('chr' in refName) and (refName not in MYBED[0]) and (refName[3:] in MYBED[0]): - refKey = refName[3:] - elif ('chr' not in refName) and (refName not in MYBED[0]) and ('chr'+refName in MYBED[0]): - refKey = 'chr'+refName - if refKey in MYBED[0]: - subRegions = [(MYBED[0][refKey][n],MYBED[0][refKey][n+1]) for n in xrange(0,len(MYBED[0][refKey]),2)] - for sr in subRegions: - for i in xrange(sr[0],sr[1]+1-2): - trinuc = refSequence[i:i+3] - if not trinuc in VALID_TRINUC: - continue # skip if trinuc contains invalid characters, or not in specified bed region - if trinuc not in TRINUC_BED_COUNT: - TRINUC_BED_COUNT[trinuc] = 0 - TRINUC_BED_COUNT[trinuc] += 1 - - if not os.path.isfile(REF+'.trinucCounts'): - print 'counting trinucleotides in reference...' - for i in xrange(len(refSequence)-2): - if i%1000000 == 0 and i > 0: - print i,'/',len(refSequence) - #break - trinuc = refSequence[i:i+3] - if not trinuc in VALID_TRINUC: - continue # skip if trinuc contains invalid characters - if trinuc not in TRINUC_REF_COUNT: - TRINUC_REF_COUNT[trinuc] = 0 - TRINUC_REF_COUNT[trinuc] += 1 - else: - print 'skipping trinuc counts (for whole reference) because we found a file...' - - - """ ########################################################################## - ### READ INPUT VARIANTS ### - ########################################################################## """ - - - print 'reading input variants...' - f = open(TSV,'r') - isFirst = True - for line in f: - - if IS_VCF and line[0] == '#': - continue - if isFirst: - if IS_VCF: - # hard-code index values based on expected columns in vcf - (c1,c2,c3,m1,m2,m3) = (0,1,1,3,3,4) - else: - # determine columns of fields we're interested in - splt = line.strip().split('\t') - (c1,c2,c3) = (splt.index('chromosome'),splt.index('chromosome_start'),splt.index('chromosome_end')) - (m1,m2,m3) = (splt.index('reference_genome_allele'),splt.index('mutated_from_allele'),splt.index('mutated_to_allele')) - (d_id) = (splt.index('icgc_donor_id')) - isFirst = False - continue - - splt = line.strip().split('\t') - # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based - [chrName,chrStart,chrEnd] = [splt[c1],int(splt[c2])-1,int(splt[c3])-1] - [allele_ref,allele_normal,allele_tumor] = [splt[m1].upper(),splt[m2].upper(),splt[m3].upper()] - if IS_VCF: - if len(allele_ref) != len(allele_tumor): - # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles - [allele_ref,allele_normal,allele_tumor] = [allele_ref[1:],allele_normal[1:],allele_tumor[1:]] - if not allele_ref: allele_ref = '-' - if not allele_normal: allele_normal = '-' - if not allele_tumor: allele_tumor = '-' - # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later - if ',' in allele_tumor: - continue - vcf_info = ';'+splt[7]+';' - else: - [donor_id] = [splt[d_id]] - - # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... - if ('-' not in allele_normal and '-' not in allele_tumor) and (len(allele_normal) > 1 or len(allele_tumor) > 1): - print 'skipping a complex variant...' - continue - - # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. - if 'chr' not in chrName: - chrName = 'chr'+chrName - if 'chr' not in refName: - refName = 'chr'+refName - # skip irrelevant variants - if chrName != refName: - continue - - # if variant is outside the regions we're interested in (if specified), skip it... - if MYBED != None: - refKey = refName - if not refKey in MYBED[0] and refKey[3:] in MYBED[0]: # account for 1 vs chr1, again... - refKey = refKey[3:] - if refKey not in MYBED[0]: - inBed = False - else: - inBed = isInBed(MYBED[0][refKey],chrStart) - if inBed != MYBED[1]: - continue - - # we want only snps - # so, no '-' characters allowed, and chrStart must be same as chrEnd - if '-' not in allele_normal and '-' not in allele_tumor and chrStart == chrEnd: - trinuc_ref = refSequence[chrStart-1:chrStart+2] - if not trinuc_ref in VALID_TRINUC: - continue # skip ref trinuc with invalid characters - # only consider positions where ref allele in tsv matches the nucleotide in our reference - if allele_ref == trinuc_ref[1]: - trinuc_normal = refSequence[chrStart-1] + allele_normal + refSequence[chrStart+1] - trinuc_tumor = refSequence[chrStart-1] + allele_tumor + refSequence[chrStart+1] - if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: - continue # skip if mutation contains invalid char - key = (trinuc_normal,trinuc_tumor) - if key not in TRINUC_TRANSITION_COUNT: - TRINUC_TRANSITION_COUNT[key] = 0 - TRINUC_TRANSITION_COUNT[key] += 1 - SNP_COUNT += 1 - key2 = (allele_normal,allele_tumor) - if key2 not in SNP_TRANSITION_COUNT: - SNP_TRANSITION_COUNT[key2] = 0 - SNP_TRANSITION_COUNT[key2] += 1 - - if IS_VCF: - myPopFreq = VCF_DEFAULT_POP_FREQ - if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] - if ',' in cafStr: - myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) - else: - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) - TOTAL_DONORS[donor_id] = True - else: - print '\nError: ref allele in variant call does not match reference.\n' - exit(1) - - # now let's look for indels... - if '-' in allele_normal: len_normal = 0 - else: len_normal = len(allele_normal) - if '-' in allele_tumor: len_tumor = 0 - else: len_tumor = len(allele_tumor) - if len_normal != len_tumor: - indel_len = len_tumor - len_normal - if indel_len not in INDEL_COUNT: - INDEL_COUNT[indel_len] = 0 - INDEL_COUNT[indel_len] += 1 - - if IS_VCF: - myPopFreq = VCF_DEFAULT_POP_FREQ - if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] - if ',' in cafStr: - myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) - else: - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) - TOTAL_DONORS[donor_id] = True - f.close() - - # if we didn't find anything, skip ahead along to the next reference sequence - if not len(VDAT_COMMON): - print 'Found no variants for this reference, moving along...' - continue - - # - # identify common mutations - # - percentile_var = 95 - if IS_VCF: - minVal = np.percentile([n[4] for n in VDAT_COMMON],percentile_var) - for k in sorted(VDAT_COMMON): - if k[4] >= minVal: - COMMON_VARIANTS.append((refName,k[0],k[1],k[3],k[4])) - VDAT_COMMON = {(n[0],n[1],n[2],n[3]):n[4] for n in VDAT_COMMON} - else: - N_DONORS = len(TOTAL_DONORS) - VDAT_COMMON = list_2_countDict(VDAT_COMMON) - minVal = int(np.percentile(VDAT_COMMON.values(),percentile_var)) - for k in sorted(VDAT_COMMON.keys()): - if VDAT_COMMON[k] >= minVal: - COMMON_VARIANTS.append((refName,k[0],k[1],k[3],VDAT_COMMON[k]/float(N_DONORS))) - - # - # identify areas that have contained significantly higher random mutation rates - # - dist_thresh = 2000 - percentile_clust = 97 - qptn = 1000 - # identify regions with disproportionately more variants in them - VARIANT_POS = sorted([n[0] for n in VDAT_COMMON.keys()]) - clustered_pos = clusterList(VARIANT_POS,dist_thresh) - byLen = [(len(clustered_pos[i]),min(clustered_pos[i]),max(clustered_pos[i]),i) for i in xrange(len(clustered_pos))] - #byLen = sorted(byLen,reverse=True) - #minLen = int(np.percentile([n[0] for n in byLen],percentile_clust)) - #byLen = [n for n in byLen if n[0] >= minLen] - candidate_regions = [] - for n in byLen: - bi = int((n[1]-dist_thresh)/float(qptn))*qptn - bf = int((n[2]+dist_thresh)/float(qptn))*qptn - candidate_regions.append((n[0]/float(bf-bi),max([0,bi]),min([len(refSequence),bf]))) - minVal = np.percentile([n[0] for n in candidate_regions],percentile_clust) - for n in candidate_regions: - if n[0] >= minVal: - HIGH_MUT_REGIONS.append((refName,n[1],n[2],n[0])) - # collapse overlapping regions - for i in xrange(len(HIGH_MUT_REGIONS)-1,0,-1): - if HIGH_MUT_REGIONS[i-1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i-1][0] == HIGH_MUT_REGIONS[i][0]: - avgMutRate = 0.5*HIGH_MUT_REGIONS[i-1][3]+0.5*HIGH_MUT_REGIONS[i][3] # not accurate, but I'm lazy - HIGH_MUT_REGIONS[i-1] = (HIGH_MUT_REGIONS[i-1][0], HIGH_MUT_REGIONS[i-1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) - del HIGH_MUT_REGIONS[i] - - # - # if we didn't count ref trinucs because we found file, read in ref counts from file now - # - if os.path.isfile(REF+'.trinucCounts'): - print 'reading pre-computed trinuc counts...' - f = open(REF+'.trinucCounts','r') - for line in f: - splt = line.strip().split('\t') - TRINUC_REF_COUNT[splt[0]] = int(splt[1]) - f.close() - # otherwise, save trinuc counts to file, if desired - elif SAVE_TRINUC: - if MYBED != None: - print 'unable to save trinuc counts to file because using input bed region...' - else: - print 'saving trinuc counts to file...' - f = open(REF+'.trinucCounts','w') - for trinuc in sorted(TRINUC_REF_COUNT.keys()): - f.write(trinuc+'\t'+str(TRINUC_REF_COUNT[trinuc])+'\n') - f.close() - - # - # if using an input bed region, make necessary adjustments to trinuc ref counts based on the bed region trinuc counts - # - if MYBED != None: - if MYBED[1] == True: # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts - TRINUC_REF_COUNT = TRINUC_BED_COUNT - else: # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs - for k in TRINUC_REF_COUNT.keys(): - if k in TRINUC_BED_COUNT: - TRINUC_REF_COUNT[k] -= TRINUC_BED_COUNT[k] - - # if for some reason we didn't find any valid input variants, exit gracefully... - totalVar = SNP_COUNT + sum(INDEL_COUNT.values()) - if totalVar == 0: - print '\nError: No valid variants were found, model could not be created. (Are you using the correct reference?)\n' - exit(1) - - """ ########################################################################## - ### COMPUTE PROBABILITIES ### - ########################################################################## """ - - - #for k in sorted(TRINUC_REF_COUNT.keys()): - # print k, TRINUC_REF_COUNT[k] - # - #for k in sorted(TRINUC_TRANSITION_COUNT.keys()): - # print k, TRINUC_TRANSITION_COUNT[k] - - # frequency that each trinuc mutated into anything else - TRINUC_MUT_PROB = {} - # frequency that a trinuc mutates into another trinuc, given that it mutated - TRINUC_TRANS_PROBS = {} - # frequency of snp transitions, given a snp occurs. - SNP_TRANS_FREQ = {} - - for trinuc in sorted(TRINUC_REF_COUNT.keys()): - myCount = 0 - for k in sorted(TRINUC_TRANSITION_COUNT.keys()): - if k[0] == trinuc: - myCount += TRINUC_TRANSITION_COUNT[k] - TRINUC_MUT_PROB[trinuc] = myCount / float(TRINUC_REF_COUNT[trinuc]) - for k in sorted(TRINUC_TRANSITION_COUNT.keys()): - if k[0] == trinuc: - TRINUC_TRANS_PROBS[k] = TRINUC_TRANSITION_COUNT[k] / float(myCount) - - for n1 in VALID_NUCL: - rollingTot = sum([SNP_TRANSITION_COUNT[(n1,n2)] for n2 in VALID_NUCL if (n1,n2) in SNP_TRANSITION_COUNT]) - for n2 in VALID_NUCL: - key2 = (n1,n2) - if key2 in SNP_TRANSITION_COUNT: - SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rollingTot) - - # compute average snp and indel frequencies - SNP_FREQ = SNP_COUNT/float(totalVar) - AVG_INDEL_FREQ = 1.-SNP_FREQ - INDEL_FREQ = {k:(INDEL_COUNT[k]/float(totalVar))/AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} - if MYBED != None: - if MYBED[1] == True: - AVG_MUT_RATE = totalVar/float(getTrackLen(MYBED[0])) - else: - AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN - getTrackLen(MYBED[0])) - else: - AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN) - - # - # if values weren't found in data, appropriately append null entries - # - printTrinucWarning = False - for trinuc in VALID_TRINUC: - trinuc_mut = [trinuc[0]+n+trinuc[2] for n in VALID_NUCL if n != trinuc[1]] - if trinuc not in TRINUC_MUT_PROB: - TRINUC_MUT_PROB[trinuc] = 0. - printTrinucWarning = True - for trinuc2 in trinuc_mut: - if (trinuc,trinuc2) not in TRINUC_TRANS_PROBS: - TRINUC_TRANS_PROBS[(trinuc,trinuc2)] = 0. - printTrinucWarning = True - if printTrinucWarning: - print 'Warning: Some trinucleotides transitions were not encountered in the input dataset, probabilities of 0.0 have been assigned to these events.' - - # - # print some stuff - # - for k in sorted(TRINUC_MUT_PROB.keys()): - print 'p('+k+' mutates) =',TRINUC_MUT_PROB[k] - - for k in sorted(TRINUC_TRANS_PROBS.keys()): - print 'p('+k[0]+' --> '+k[1]+' | '+k[0]+' mutates) =',TRINUC_TRANS_PROBS[k] - - for k in sorted(INDEL_FREQ.keys()): - if k > 0: - print 'p(ins length = '+str(abs(k))+' | indel occurs) =',INDEL_FREQ[k] - else: - print 'p(del length = '+str(abs(k))+' | indel occurs) =',INDEL_FREQ[k] - - for k in sorted(SNP_TRANS_FREQ.keys()): - print 'p('+k[0]+' --> '+k[1]+' | SNP occurs) =',SNP_TRANS_FREQ[k] - - #for n in COMMON_VARIANTS: - # print n - - #for n in HIGH_MUT_REGIONS: - # print n - - print 'p(snp) =',SNP_FREQ - print 'p(indel) =',AVG_INDEL_FREQ - print 'overall average mut rate:',AVG_MUT_RATE - print 'total variants processed:',totalVar - - # - # save variables to file - # - if SKIP_COMMON: - OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, - 'SNP_FREQ':SNP_FREQ, - 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, - 'INDEL_FREQ':INDEL_FREQ, - 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, - 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS} - else: - OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, - 'SNP_FREQ':SNP_FREQ, - 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, - 'INDEL_FREQ':INDEL_FREQ, - 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, - 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS, - 'COMMON_VARIANTS':COMMON_VARIANTS, - 'HIGH_MUT_REGIONS':HIGH_MUT_REGIONS} - pickle.dump( OUT_DICT, open( OUT_PICKLE, "wb" ) ) + ref_inds = indexRef(REF) + refList = [n[0] for n in ref_inds] + + # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? + TRINUC_REF_COUNT = {} + TRINUC_BED_COUNT = {} + printBedWarning = True + # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b + TRINUC_TRANSITION_COUNT = {} + # total count of SNPs + SNP_COUNT = 0 + # overall SNP transition probabilities + SNP_TRANSITION_COUNT = {} + # total count of indels, indexed by length + INDEL_COUNT = {} + # tabulate how much non-N reference sequence we've eaten through + TOTAL_REFLEN = 0 + # detect variants that occur in a significant percentage of the input samples (pos,ref,alt,pop_fraction) + COMMON_VARIANTS = [] + # tabulate how many unique donors we've encountered (this is useful for identifying common variants) + TOTAL_DONORS = {} + # identify regions that have significantly higher local mutation rates than the average + HIGH_MUT_REGIONS = [] + + # load and process variants in each reference sequence individually, for memory reasons... + for refName in refList: + + if (refName not in REF_WHITELIST) and (not NO_WHITELIST): + print(refName, 'is not in our whitelist, skipping...') + continue + + print('reading reference "' + refName + '"...') + refSequence = getChrFromFasta(REF,ref_inds,refName).upper() + TOTAL_REFLEN += len(refSequence) - refSequence.count('N') + + # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) + VDAT_COMMON = [] + + + """ ########################################################################## + ### COUNT TRINUCLEOTIDES IN REF ### + ########################################################################## """ + + + if MYBED != None: + if printBedWarning: + print( + "since you're using a bed input, we have to count trinucs in bed region even if you specified a trinuc count file for the reference...") + printBedWarning = False + if refName in MYBED[0]: + refKey = refName + elif ('chr' in refName) and (refName not in MYBED[0]) and (refName[3:] in MYBED[0]): + refKey = refName[3:] + elif ('chr' not in refName) and (refName not in MYBED[0]) and ('chr'+refName in MYBED[0]): + refKey = 'chr'+refName + if refKey in MYBED[0]: + subRegions = [(MYBED[0][refKey][n],MYBED[0][refKey][n+1]) for n in range(0,len(MYBED[0][refKey]),2)] + for sr in subRegions: + for i in range(sr[0],sr[1]+1-2): + trinuc = refSequence[i:i+3] + if not trinuc in VALID_TRINUC: + continue # skip if trinuc contains invalid characters, or not in specified bed region + if trinuc not in TRINUC_BED_COUNT: + TRINUC_BED_COUNT[trinuc] = 0 + TRINUC_BED_COUNT[trinuc] += 1 + + if not os.path.isfile(REF+'.trinucCounts'): + print('counting trinucleotides in reference...') + for i in range(len(refSequence)-2): + if i%1000000 == 0 and i > 0: + print(i, '/', len(refSequence)) + #break + trinuc = refSequence[i:i+3] + if not trinuc in VALID_TRINUC: + continue # skip if trinuc contains invalid characters + if trinuc not in TRINUC_REF_COUNT: + TRINUC_REF_COUNT[trinuc] = 0 + TRINUC_REF_COUNT[trinuc] += 1 + else: + print('skipping trinuc counts (for whole reference) because we found a file...') + + """ ########################################################################## + ### READ INPUT VARIANTS ### + ########################################################################## """ + + print('reading input variants...') + f = open(TSV,'r') + isFirst = True + for line in f: + + if IS_VCF and line[0] == '#': + continue + if isFirst: + if IS_VCF: + # hard-code index values based on expected columns in vcf + (c1,c2,c3,m1,m2,m3) = (0,1,1,3,3,4) + else: + # determine columns of fields we're interested in + splt = line.strip().split('\t') + (c1,c2,c3) = (splt.index('chromosome'),splt.index('chromosome_start'),splt.index('chromosome_end')) + (m1,m2,m3) = (splt.index('reference_genome_allele'),splt.index('mutated_from_allele'),splt.index('mutated_to_allele')) + (d_id) = (splt.index('icgc_donor_id')) + isFirst = False + continue + + splt = line.strip().split('\t') + # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based + [chrName,chrStart,chrEnd] = [splt[c1],int(splt[c2])-1,int(splt[c3])-1] + [allele_ref,allele_normal,allele_tumor] = [splt[m1].upper(),splt[m2].upper(),splt[m3].upper()] + if IS_VCF: + if len(allele_ref) != len(allele_tumor): + # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles + [allele_ref,allele_normal,allele_tumor] = [allele_ref[1:],allele_normal[1:],allele_tumor[1:]] + if not allele_ref: allele_ref = '-' + if not allele_normal: allele_normal = '-' + if not allele_tumor: allele_tumor = '-' + # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later + if ',' in allele_tumor: + continue + vcf_info = ';'+splt[7]+';' + else: + [donor_id] = [splt[d_id]] + + # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... + if ('-' not in allele_normal and '-' not in allele_tumor) and (len(allele_normal) > 1 or len(allele_tumor) > 1): + print('skipping a complex variant...') + continue + + # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. + if 'chr' not in chrName: + chrName = 'chr'+chrName + if 'chr' not in refName: + refName = 'chr'+refName + # skip irrelevant variants + if chrName != refName: + continue + + # if variant is outside the regions we're interested in (if specified), skip it... + if MYBED != None: + refKey = refName + if not refKey in MYBED[0] and refKey[3:] in MYBED[0]: # account for 1 vs chr1, again... + refKey = refKey[3:] + if refKey not in MYBED[0]: + inBed = False + else: + inBed = isInBed(MYBED[0][refKey],chrStart) + if inBed != MYBED[1]: + continue + + # we want only snps + # so, no '-' characters allowed, and chrStart must be same as chrEnd + if '-' not in allele_normal and '-' not in allele_tumor and chrStart == chrEnd: + trinuc_ref = refSequence[chrStart-1:chrStart+2] + if not trinuc_ref in VALID_TRINUC: + continue # skip ref trinuc with invalid characters + # only consider positions where ref allele in tsv matches the nucleotide in our reference + if allele_ref == trinuc_ref[1]: + trinuc_normal = refSequence[chrStart-1] + allele_normal + refSequence[chrStart+1] + trinuc_tumor = refSequence[chrStart-1] + allele_tumor + refSequence[chrStart+1] + if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: + continue # skip if mutation contains invalid char + key = (trinuc_normal,trinuc_tumor) + if key not in TRINUC_TRANSITION_COUNT: + TRINUC_TRANSITION_COUNT[key] = 0 + TRINUC_TRANSITION_COUNT[key] += 1 + SNP_COUNT += 1 + key2 = (allele_normal,allele_tumor) + if key2 not in SNP_TRANSITION_COUNT: + SNP_TRANSITION_COUNT[key2] = 0 + SNP_TRANSITION_COUNT[key2] += 1 + + if IS_VCF: + myPopFreq = VCF_DEFAULT_POP_FREQ + if ';CAF=' in vcf_info: + cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] + if ',' in cafStr: + myPopFreq = float(cafStr[5:].split(',')[1]) + VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) + else: + VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) + TOTAL_DONORS[donor_id] = True + else: + print('\nError: ref allele in variant call does not match reference.\n') + exit(1) + + # now let's look for indels... + if '-' in allele_normal: len_normal = 0 + else: len_normal = len(allele_normal) + if '-' in allele_tumor: len_tumor = 0 + else: len_tumor = len(allele_tumor) + if len_normal != len_tumor: + indel_len = len_tumor - len_normal + if indel_len not in INDEL_COUNT: + INDEL_COUNT[indel_len] = 0 + INDEL_COUNT[indel_len] += 1 + + if IS_VCF: + myPopFreq = VCF_DEFAULT_POP_FREQ + if ';CAF=' in vcf_info: + cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] + if ',' in cafStr: + myPopFreq = float(cafStr[5:].split(',')[1]) + VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) + else: + VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) + TOTAL_DONORS[donor_id] = True + f.close() + + # if we didn't find anything, skip ahead along to the next reference sequence + if not len(VDAT_COMMON): + print('Found no variants for this reference, moving along...') + continue + + # + # identify common mutations + # + percentile_var = 95 + if IS_VCF: + minVal = np.percentile([n[4] for n in VDAT_COMMON],percentile_var) + for k in sorted(VDAT_COMMON): + if k[4] >= minVal: + COMMON_VARIANTS.append((refName,k[0],k[1],k[3],k[4])) + VDAT_COMMON = {(n[0],n[1],n[2],n[3]):n[4] for n in VDAT_COMMON} + else: + N_DONORS = len(TOTAL_DONORS) + VDAT_COMMON = list_2_countDict(VDAT_COMMON) + minVal = int(np.percentile(VDAT_COMMON.values(),percentile_var)) + for k in sorted(VDAT_COMMON.keys()): + if VDAT_COMMON[k] >= minVal: + COMMON_VARIANTS.append((refName,k[0],k[1],k[3],VDAT_COMMON[k]/float(N_DONORS))) + + # + # identify areas that have contained significantly higher random mutation rates + # + dist_thresh = 2000 + percentile_clust = 97 + qptn = 1000 + # identify regions with disproportionately more variants in them + VARIANT_POS = sorted([n[0] for n in VDAT_COMMON.keys()]) + clustered_pos = clusterList(VARIANT_POS,dist_thresh) + byLen = [(len(clustered_pos[i]),min(clustered_pos[i]),max(clustered_pos[i]),i) for i in range(len(clustered_pos))] + #byLen = sorted(byLen,reverse=True) + #minLen = int(np.percentile([n[0] for n in byLen],percentile_clust)) + #byLen = [n for n in byLen if n[0] >= minLen] + candidate_regions = [] + for n in byLen: + bi = int((n[1]-dist_thresh)/float(qptn))*qptn + bf = int((n[2]+dist_thresh)/float(qptn))*qptn + candidate_regions.append((n[0]/float(bf-bi),max([0,bi]),min([len(refSequence),bf]))) + minVal = np.percentile([n[0] for n in candidate_regions],percentile_clust) + for n in candidate_regions: + if n[0] >= minVal: + HIGH_MUT_REGIONS.append((refName,n[1],n[2],n[0])) + # collapse overlapping regions + for i in range(len(HIGH_MUT_REGIONS)-1,0,-1): + if HIGH_MUT_REGIONS[i-1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i-1][0] == HIGH_MUT_REGIONS[i][0]: + avgMutRate = 0.5*HIGH_MUT_REGIONS[i-1][3]+0.5*HIGH_MUT_REGIONS[i][3] # not accurate, but I'm lazy + HIGH_MUT_REGIONS[i-1] = (HIGH_MUT_REGIONS[i-1][0], HIGH_MUT_REGIONS[i-1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) + del HIGH_MUT_REGIONS[i] + + # + # if we didn't count ref trinucs because we found file, read in ref counts from file now + # + if os.path.isfile(REF+'.trinucCounts'): + print('reading pre-computed trinuc counts...') + f = open(REF+'.trinucCounts','r') + for line in f: + splt = line.strip().split('\t') + TRINUC_REF_COUNT[splt[0]] = int(splt[1]) + f.close() + # otherwise, save trinuc counts to file, if desired + elif SAVE_TRINUC: + if MYBED != None: + print('unable to save trinuc counts to file because using input bed region...') + else: + print('saving trinuc counts to file...') + f = open(REF+'.trinucCounts','w') + for trinuc in sorted(TRINUC_REF_COUNT.keys()): + f.write(trinuc+'\t'+str(TRINUC_REF_COUNT[trinuc])+'\n') + f.close() + + # + # if using an input bed region, make necessary adjustments to trinuc ref counts based on the bed region trinuc counts + # + if MYBED != None: + if MYBED[1] == True: # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts + TRINUC_REF_COUNT = TRINUC_BED_COUNT + else: # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs + for k in TRINUC_REF_COUNT.keys(): + if k in TRINUC_BED_COUNT: + TRINUC_REF_COUNT[k] -= TRINUC_BED_COUNT[k] + + # if for some reason we didn't find any valid input variants, exit gracefully... + totalVar = SNP_COUNT + sum(INDEL_COUNT.values()) + if totalVar == 0: + print( + '\nError: No valid variants were found, model could not be created. (Are you using the correct reference?)\n') + exit(1) + + """ ########################################################################## + ### COMPUTE PROBABILITIES ### + ########################################################################## """ + + + #for k in sorted(TRINUC_REF_COUNT.keys()): + # print k, TRINUC_REF_COUNT[k] + # + #for k in sorted(TRINUC_TRANSITION_COUNT.keys()): + # print k, TRINUC_TRANSITION_COUNT[k] + + # frequency that each trinuc mutated into anything else + TRINUC_MUT_PROB = {} + # frequency that a trinuc mutates into another trinuc, given that it mutated + TRINUC_TRANS_PROBS = {} + # frequency of snp transitions, given a snp occurs. + SNP_TRANS_FREQ = {} + + for trinuc in sorted(TRINUC_REF_COUNT.keys()): + myCount = 0 + for k in sorted(TRINUC_TRANSITION_COUNT.keys()): + if k[0] == trinuc: + myCount += TRINUC_TRANSITION_COUNT[k] + TRINUC_MUT_PROB[trinuc] = myCount / float(TRINUC_REF_COUNT[trinuc]) + for k in sorted(TRINUC_TRANSITION_COUNT.keys()): + if k[0] == trinuc: + TRINUC_TRANS_PROBS[k] = TRINUC_TRANSITION_COUNT[k] / float(myCount) + + for n1 in VALID_NUCL: + rollingTot = sum([SNP_TRANSITION_COUNT[(n1,n2)] for n2 in VALID_NUCL if (n1,n2) in SNP_TRANSITION_COUNT]) + for n2 in VALID_NUCL: + key2 = (n1,n2) + if key2 in SNP_TRANSITION_COUNT: + SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rollingTot) + + # compute average snp and indel frequencies + SNP_FREQ = SNP_COUNT/float(totalVar) + AVG_INDEL_FREQ = 1.-SNP_FREQ + INDEL_FREQ = {k:(INDEL_COUNT[k]/float(totalVar))/AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} + if MYBED != None: + if MYBED[1] == True: + AVG_MUT_RATE = totalVar/float(getTrackLen(MYBED[0])) + else: + AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN - getTrackLen(MYBED[0])) + else: + AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN) + + # + # if values weren't found in data, appropriately append null entries + # + printTrinucWarning = False + for trinuc in VALID_TRINUC: + trinuc_mut = [trinuc[0]+n+trinuc[2] for n in VALID_NUCL if n != trinuc[1]] + if trinuc not in TRINUC_MUT_PROB: + TRINUC_MUT_PROB[trinuc] = 0. + printTrinucWarning = True + for trinuc2 in trinuc_mut: + if (trinuc,trinuc2) not in TRINUC_TRANS_PROBS: + TRINUC_TRANS_PROBS[(trinuc,trinuc2)] = 0. + printTrinucWarning = True + if printTrinucWarning: + print( + 'Warning: Some trinucleotides transitions were not encountered in the input dataset, ' + 'probabilities of 0.0 have been assigned to these events.') + + # + # print some stuff + # + for k in sorted(TRINUC_MUT_PROB.keys()): + print('p(' + k + ' mutates) =', TRINUC_MUT_PROB[k]) + + for k in sorted(TRINUC_TRANS_PROBS.keys()): + print('p(' + k[0] + ' --> ' + k[1] + ' | ' + k[0] + ' mutates) =', TRINUC_TRANS_PROBS[k]) + + for k in sorted(INDEL_FREQ.keys()): + if k > 0: + print('p(ins length = ' + str(abs(k)) + ' | indel occurs) =', INDEL_FREQ[k]) + else: + print('p(del length = ' + str(abs(k)) + ' | indel occurs) =', INDEL_FREQ[k]) + + for k in sorted(SNP_TRANS_FREQ.keys()): + print('p(' + k[0] + ' --> ' + k[1] + ' | SNP occurs) =', SNP_TRANS_FREQ[k]) + + #for n in COMMON_VARIANTS: + # print n + + #for n in HIGH_MUT_REGIONS: + # print n + + print('p(snp) =', SNP_FREQ) + print('p(indel) =', AVG_INDEL_FREQ) + print('overall average mut rate:', AVG_MUT_RATE) + print('total variants processed:', totalVar) + + # + # save variables to file + # + if SKIP_COMMON: + OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, + 'SNP_FREQ':SNP_FREQ, + 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, + 'INDEL_FREQ':INDEL_FREQ, + 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, + 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS} + else: + OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, + 'SNP_FREQ':SNP_FREQ, + 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, + 'INDEL_FREQ':INDEL_FREQ, + 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, + 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS, + 'COMMON_VARIANTS':COMMON_VARIANTS, + 'HIGH_MUT_REGIONS':HIGH_MUT_REGIONS} + pickle.dump(OUT_DICT, open(OUT_PICKLE, "wb")) if __name__ == "__main__": - main() + main() diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 7860178..dfd2680 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -17,284 +17,290 @@ import random import numpy as np import argparse -import cPickle as pickle +import pickle # absolute path to this script -SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2])+'/py/' +SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' sys.path.append(SIM_PATH) -from probability import DiscreteDistribution +from py.probability import DiscreteDistribution + def parseFQ(inf): - print 'reading '+inf+'...' - if inf[-3:] == '.gz': - print 'detected gzip suffix...' - f = gzip.open(inf,'r') - else: - f = open(inf,'r') - - IS_SAM = False - if inf[-4:] == '.sam': - print 'detected sam input...' - IS_SAM = True - - rRead = 0 - actual_readlen = 0 - qDict = {} - while True: - - if IS_SAM: - data4 = f.readline() - if not len(data4): - break - try: - data4 = data4.split('\t')[10] - except IndexError: - break - # need to add some input checking here? Yup, probably. - else: - data1 = f.readline() - data2 = f.readline() - data3 = f.readline() - data4 = f.readline() - if not all([data1,data2,data3,data4]): - break - - if actual_readlen == 0: - if inf[-3:] != '.gz' and not IS_SAM: - totalSize = os.path.getsize(inf) - entrySize = sum([len(n) for n in [data1,data2,data3,data4]]) - print 'estimated number of reads in file:',int(float(totalSize)/entrySize) - actual_readlen = len(data4)-1 - print 'assuming read length is uniform...' - print 'detected read length (from first read found):',actual_readlen - priorQ = np.zeros([actual_readlen,RQ]) - totalQ = [None] + [np.zeros([RQ,RQ]) for n in xrange(actual_readlen-1)] - - # sanity-check readlengths - if len(data4)-1 != actual_readlen: - print 'skipping read with unexpected length...' - continue - - for i in range(len(data4)-1): - q = ord(data4[i])-offQ - qDict[q] = True - if i == 0: - priorQ[i][q] += 1 - else: - totalQ[i][prevQ,q] += 1 - priorQ[i][q] += 1 - prevQ = q - - rRead += 1 - if rRead%PRINT_EVERY == 0: - print rRead - if MAX_READS > 0 and rRead >= MAX_READS: - break - f.close() - - # some sanity checking again... - QRANGE = [min(qDict.keys()),max(qDict.keys())] - if QRANGE[0] < 0: - print '\nError: Read in Q-scores below 0\n' - exit(1) - if QRANGE[1] > RQ: - print '\nError: Read in Q-scores above specified maximum:',QRANGE[1],'>',RQ,'\n' - exit(1) - - print 'computing probabilities...' - probQ = [None] + [[[0. for m in xrange(RQ)] for n in xrange(RQ)] for p in xrange(actual_readlen-1)] - for p in xrange(1,actual_readlen): - for i in xrange(RQ): - rowSum = float(np.sum(totalQ[p][i,:]))+PROB_SMOOTH*RQ - if rowSum <= 0.: - continue - for j in xrange(RQ): - probQ[p][i][j] = (totalQ[p][i][j]+PROB_SMOOTH)/rowSum - - initQ = [[0. for m in xrange(RQ)] for n in xrange(actual_readlen)] - for i in xrange(actual_readlen): - rowSum = float(np.sum(priorQ[i,:]))+INIT_SMOOTH*RQ - if rowSum <= 0.: - continue - for j in xrange(RQ): - initQ[i][j] = (priorQ[i][j]+INIT_SMOOTH)/rowSum - - if PLOT_STUFF: - mpl.rcParams.update({'font.size': 14, 'font.weight':'bold', 'lines.linewidth': 3}) - - mpl.figure(1) - Z = np.array(initQ).T - X, Y = np.meshgrid( range(0,len(Z[0])+1), range(0,len(Z)+1) ) - mpl.pcolormesh(X,Y,Z,vmin=0.,vmax=0.25) - mpl.axis([0,len(Z[0]),0,len(Z)]) - mpl.yticks(range(0,len(Z),10),range(0,len(Z),10)) - mpl.xticks(range(0,len(Z[0]),10),range(0,len(Z[0]),10)) - mpl.xlabel('Read Position') - mpl.ylabel('Quality Score') - mpl.title('Q-Score Prior Probabilities') - mpl.colorbar() - - mpl.show() - - VMIN_LOG = [-4,0] - minVal = 10**VMIN_LOG[0] - qLabels = [str(n) for n in range(QRANGE[0],QRANGE[1]+1) if n%5==0] - print qLabels - qTicksx = [int(n)+0.5 for n in qLabels] - qTicksy = [(RQ-int(n))-0.5 for n in qLabels] - - for p in xrange(1,actual_readlen,10): - currentDat = np.array(probQ[p]) - for i in xrange(len(currentDat)): - for j in xrange(len(currentDat[i])): - currentDat[i][j] = max(minVal,currentDat[i][j]) - - # matrix indices: pcolormesh plotting: plot labels and axes: - # - # y ^ ^ - # --> x | y | - # x | --> --> - # v y x - # - # to plot a MxN matrix 'Z' with rowNames and colNames we need to: - # - # pcolormesh(X,Y,Z[::-1,:]) # invert x-axis - # # swap x/y axis parameters and labels, remember x is still inverted: - # xlim([yMin,yMax]) - # ylim([M-xMax,M-xMin]) - # xticks() - # - - mpl.figure(p+1) - Z = np.log10(currentDat) - X, Y = np.meshgrid( range(0,len(Z[0])+1), range(0,len(Z)+1) ) - mpl.pcolormesh(X,Y,Z[::-1,:],vmin=VMIN_LOG[0],vmax=VMIN_LOG[1],cmap='jet') - mpl.xlim([QRANGE[0],QRANGE[1]+1]) - mpl.ylim([RQ-QRANGE[1]-1,RQ-QRANGE[0]]) - mpl.yticks(qTicksy,qLabels) - mpl.xticks(qTicksx,qLabels) - mpl.xlabel('\n' + r'$Q_{i+1}$') - mpl.ylabel(r'$Q_i$') - mpl.title('Q-Score Transition Frequencies [Read Pos:'+str(p)+']') - cb = mpl.colorbar() - cb.set_ticks([-4,-3,-2,-1,0]) - cb.set_ticklabels([r'$10^{-4}$',r'$10^{-3}$',r'$10^{-2}$',r'$10^{-1}$',r'$10^{0}$']) - - #mpl.tight_layout() - mpl.show() - - print 'estimating average error rate via simulation...' - Qscores = range(RQ) - #print (len(initQ), len(initQ[0])) - #print (len(probQ), len(probQ[1]), len(probQ[1][0])) - - initDistByPos = [DiscreteDistribution(initQ[i],Qscores) for i in xrange(len(initQ))] - probDistByPosByPrevQ = [None] - for i in xrange(1,len(initQ)): - probDistByPosByPrevQ.append([]) - for j in xrange(len(initQ[0])): - if np.sum(probQ[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - probDistByPosByPrevQ[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) - else: - probDistByPosByPrevQ[-1].append(DiscreteDistribution(probQ[i][j],Qscores)) - - countDict = {} - for q in Qscores: - countDict[q] = 0 - for samp in xrange(1,N_SAMP+1): - if samp%PRINT_EVERY == 0: - print samp - myQ = initDistByPos[0].sample() - countDict[myQ] += 1 - for i in xrange(1,len(initQ)): - myQ = probDistByPosByPrevQ[i][myQ].sample() - countDict[myQ] += 1 - - totBases = float(sum(countDict.values())) - avgError = 0. - for k in sorted(countDict.keys()): - eVal = 10.**(-k/10.) - #print k, eVal, countDict[k] - avgError += eVal * (countDict[k]/totBases) - print 'AVG ERROR RATE:',avgError - - return (initQ, probQ, avgError) + print('reading ' + inf + '...') + if inf[-3:] == '.gz': + print('detected gzip suffix...') + f = gzip.open(inf, 'r') + else: + f = open(inf, 'r') + + IS_SAM = False + if inf[-4:] == '.sam': + print('detected sam input...') + IS_SAM = True + + rRead = 0 + actual_readlen = 0 + qDict = {} + while True: + + if IS_SAM: + data4 = f.readline() + if not len(data4): + break + try: + data4 = data4.split('\t')[10] + except IndexError: + break + # need to add some input checking here? Yup, probably. + else: + data1 = f.readline() + data2 = f.readline() + data3 = f.readline() + data4 = f.readline() + if not all([data1, data2, data3, data4]): + break + + if actual_readlen == 0: + if inf[-3:] != '.gz' and not IS_SAM: + totalSize = os.path.getsize(inf) + entrySize = sum([len(n) for n in [data1, data2, data3, data4]]) + print('estimated number of reads in file:', int(float(totalSize) / entrySize)) + actual_readlen = len(data4) - 1 + print('assuming read length is uniform...') + print('detected read length (from first read found):', actual_readlen) + priorQ = np.zeros([actual_readlen, RQ]) + totalQ = [None] + [np.zeros([RQ, RQ]) for n in range(actual_readlen - 1)] + + # sanity-check readlengths + if len(data4) - 1 != actual_readlen: + print('skipping read with unexpected length...') + continue + + for i in range(len(data4) - 1): + q = ord(data4[i]) - offQ + qDict[q] = True + if i == 0: + priorQ[i][q] += 1 + else: + totalQ[i][prevQ, q] += 1 + priorQ[i][q] += 1 + prevQ = q + + rRead += 1 + if rRead % PRINT_EVERY == 0: + print(rRead) + if MAX_READS > 0 and rRead >= MAX_READS: + break + f.close() + + # some sanity checking again... + QRANGE = [min(qDict.keys()), max(qDict.keys())] + if QRANGE[0] < 0: + print('\nError: Read in Q-scores below 0\n') + exit(1) + if QRANGE[1] > RQ: + print('\nError: Read in Q-scores above specified maximum:', QRANGE[1], '>', RQ, '\n') + exit(1) + + print('computing probabilities...') + probQ = [None] + [[[0. for m in range(RQ)] for n in range(RQ)] for p in range(actual_readlen - 1)] + for p in range(1, actual_readlen): + for i in range(RQ): + rowSum = float(np.sum(totalQ[p][i, :])) + PROB_SMOOTH * RQ + if rowSum <= 0.: + continue + for j in range(RQ): + probQ[p][i][j] = (totalQ[p][i][j] + PROB_SMOOTH) / rowSum + + initQ = [[0. for m in range(RQ)] for n in range(actual_readlen)] + for i in range(actual_readlen): + rowSum = float(np.sum(priorQ[i, :])) + INIT_SMOOTH * RQ + if rowSum <= 0.: + continue + for j in range(RQ): + initQ[i][j] = (priorQ[i][j] + INIT_SMOOTH) / rowSum + + if PLOT_STUFF: + mpl.rcParams.update({'font.size': 14, 'font.weight': 'bold', 'lines.linewidth': 3}) + + mpl.figure(1) + Z = np.array(initQ).T + X, Y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) + mpl.pcolormesh(X, Y, Z, vmin=0., vmax=0.25) + mpl.axis([0, len(Z[0]), 0, len(Z)]) + mpl.yticks(range(0, len(Z), 10), range(0, len(Z), 10)) + mpl.xticks(range(0, len(Z[0]), 10), range(0, len(Z[0]), 10)) + mpl.xlabel('Read Position') + mpl.ylabel('Quality Score') + mpl.title('Q-Score Prior Probabilities') + mpl.colorbar() + + mpl.show() + + VMIN_LOG = [-4, 0] + minVal = 10 ** VMIN_LOG[0] + qLabels = [str(n) for n in range(QRANGE[0], QRANGE[1] + 1) if n % 5 == 0] + print(qLabels) + qTicksx = [int(n) + 0.5 for n in qLabels] + qTicksy = [(RQ - int(n)) - 0.5 for n in qLabels] + + for p in range(1, actual_readlen, 10): + currentDat = np.array(probQ[p]) + for i in range(len(currentDat)): + for j in range(len(currentDat[i])): + currentDat[i][j] = max(minVal, currentDat[i][j]) + + # matrix indices: pcolormesh plotting: plot labels and axes: + # + # y ^ ^ + # --> x | y | + # x | --> --> + # v y x + # + # to plot a MxN matrix 'Z' with rowNames and colNames we need to: + # + # pcolormesh(X,Y,Z[::-1,:]) # invert x-axis + # # swap x/y axis parameters and labels, remember x is still inverted: + # xlim([yMin,yMax]) + # ylim([M-xMax,M-xMin]) + # xticks() + # + + mpl.figure(p + 1) + Z = np.log10(currentDat) + X, Y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) + mpl.pcolormesh(X, Y, Z[::-1, :], vmin=VMIN_LOG[0], vmax=VMIN_LOG[1], cmap='jet') + mpl.xlim([QRANGE[0], QRANGE[1] + 1]) + mpl.ylim([RQ - QRANGE[1] - 1, RQ - QRANGE[0]]) + mpl.yticks(qTicksy, qLabels) + mpl.xticks(qTicksx, qLabels) + mpl.xlabel('\n' + r'$Q_{i+1}$') + mpl.ylabel(r'$Q_i$') + mpl.title('Q-Score Transition Frequencies [Read Pos:' + str(p) + ']') + cb = mpl.colorbar() + cb.set_ticks([-4, -3, -2, -1, 0]) + cb.set_ticklabels([r'$10^{-4}$', r'$10^{-3}$', r'$10^{-2}$', r'$10^{-1}$', r'$10^{0}$']) + + # mpl.tight_layout() + mpl.show() + + print('estimating average error rate via simulation...') + Qscores = range(RQ) + # print (len(initQ), len(initQ[0])) + # print (len(probQ), len(probQ[1]), len(probQ[1][0])) + + initDistByPos = [DiscreteDistribution(initQ[i], Qscores) for i in range(len(initQ))] + probDistByPosByPrevQ = [None] + for i in range(1, len(initQ)): + probDistByPosByPrevQ.append([]) + for j in range(len(initQ[0])): + if np.sum(probQ[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + probDistByPosByPrevQ[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) + else: + probDistByPosByPrevQ[-1].append(DiscreteDistribution(probQ[i][j], Qscores)) + + countDict = {} + for q in Qscores: + countDict[q] = 0 + for samp in range(1, N_SAMP + 1): + if samp % PRINT_EVERY == 0: + print(samp) + myQ = initDistByPos[0].sample() + countDict[myQ] += 1 + for i in range(1, len(initQ)): + myQ = probDistByPosByPrevQ[i][myQ].sample() + countDict[myQ] += 1 + + totBases = float(sum(countDict.values())) + avgError = 0. + for k in sorted(countDict.keys()): + eVal = 10. ** (-k / 10.) + # print k, eVal, countDict[k] + avgError += eVal * (countDict[k] / totBases) + print('AVG ERROR RATE:', avgError) + + return initQ, probQ, avgError + parser = argparse.ArgumentParser(description='genSeqErrorModel.py') -parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") -parser.add_argument('-i2', type=str, required=False, metavar='', default=None, help="input_read2.fq (.gz) / input_read2.sam") -parser.add_argument('-p', type=str, required=False, metavar='', default=None, help="input_alignment.pileup") -parser.add_argument('-q', type=int, required=False, metavar='', default=33, help="quality score offset [33]") -parser.add_argument('-Q', type=int, required=False, metavar='', default=41, help="maximum quality score [41]") -parser.add_argument('-n', type=int, required=False, metavar='', default=-1, help="maximum number of reads to process [all]") -parser.add_argument('-s', type=int, required=False, metavar='', default=1000000, help="number of simulation iterations [1000000]") -parser.add_argument('--plot', required=False, action='store_true', default=False, help='perform some optional plotting') +parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") +parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") +parser.add_argument('-i2', type=str, required=False, metavar='', default=None, + help="input_read2.fq (.gz) / input_read2.sam") +parser.add_argument('-p', type=str, required=False, metavar='', default=None, help="input_alignment.pileup") +parser.add_argument('-q', type=int, required=False, metavar='', default=33, help="quality score offset [33]") +parser.add_argument('-Q', type=int, required=False, metavar='', default=41, help="maximum quality score [41]") +parser.add_argument('-n', type=int, required=False, metavar='', default=-1, + help="maximum number of reads to process [all]") +parser.add_argument('-s', type=int, required=False, metavar='', default=1000000, + help="number of simulation iterations [1000000]") +parser.add_argument('--plot', required=False, action='store_true', default=False, help='perform some optional plotting') args = parser.parse_args() (INF, OUF, offQ, maxQ, MAX_READS, N_SAMP) = (args.i, args.o, args.q, args.Q, args.n, args.s) (INF2, PILEUP) = (args.i2, args.p) -RQ = maxQ+1 +RQ = maxQ + 1 INIT_SMOOTH = 0. PROB_SMOOTH = 0. PRINT_EVERY = 10000 -PLOT_STUFF = args.plot +PLOT_STUFF = args.plot if PLOT_STUFF: - print 'plotting is desired, lets import matplotlib...' - import matplotlib.pyplot as mpl + print('plotting is desired, lets import matplotlib...') + import matplotlib.pyplot as mpl + def main(): + Qscores = range(RQ) + if INF2 == None: + (initQ, probQ, avgError) = parseFQ(INF) + else: + (initQ, probQ, avgError1) = parseFQ(INF) + (initQ2, probQ2, avgError2) = parseFQ(INF2) + avgError = (avgError1 + avgError2) / 2. + + # + # embed some default sequencing error parameters if no pileup is provided + # + if PILEUP == None: + + print('Using default sequencing error parameters...') + + # sequencing substitution transition probabilities + SSE_PROB = [[0., 0.4918, 0.3377, 0.1705], + [0.5238, 0., 0.2661, 0.2101], + [0.3754, 0.2355, 0., 0.3890], + [0.2505, 0.2552, 0.4942, 0.]] + # if a sequencing error occurs, what are the odds it's an indel? + SIE_RATE = 0.01 + # sequencing indel error length distribution + SIE_PROB = [0.999, 0.001] + SIE_VAL = [1, 2] + # if a sequencing indel error occurs, what are the odds it's an insertion as opposed to a deletion? + SIE_INS_FREQ = 0.4 + # if a sequencing insertion error occurs, what's the probability of it being an A, C, G, T... + SIE_INS_NUCL = [0.25, 0.25, 0.25, 0.25] + + # + # otherwise we need to parse a pileup and compute statistics! + # + else: + print('\nPileup parsing coming soon!\n') + exit(1) + + errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] + + # + # finally, let's save our output model + # + print('saving model...') + if INF2 == None: + pickle.dump([initQ, probQ, Qscores, offQ, avgError, errorParams], open(OUF, 'wb')) + else: + pickle.dump([initQ, probQ, initQ2, probQ2, Qscores, offQ, avgError, errorParams], open(OUF, 'wb')) - Qscores = range(RQ) - if INF2 == None: - (initQ, probQ, avgError) = parseFQ(INF) - else: - (initQ, probQ, avgError1) = parseFQ(INF) - (initQ2, probQ2, avgError2) = parseFQ(INF2) - avgError = (avgError1+avgError2)/2. - - # - # embed some default sequencing error parameters if no pileup is provided - # - if PILEUP == None: - - print 'Using default sequencing error parameters...' - - # sequencing substitution transition probabilities - SSE_PROB = [[0., 0.4918, 0.3377, 0.1705 ], - [0.5238, 0., 0.2661, 0.2101 ], - [0.3754, 0.2355, 0., 0.3890 ], - [0.2505, 0.2552, 0.4942, 0. ]] - # if a sequencing error occurs, what are the odds it's an indel? - SIE_RATE = 0.01 - # sequencing indel error length distribution - SIE_PROB = [0.999,0.001] - SIE_VAL = [1,2] - # if a sequencing indel error occurs, what are the odds it's an insertion as opposed to a deletion? - SIE_INS_FREQ = 0.4 - # if a sequencing insertion error occurs, what's the probability of it being an A, C, G, T... - SIE_INS_NUCL = [0.25, 0.25, 0.25, 0.25] - - # - # otherwise we need to parse a pileup and compute statistics! - # - else: - print '\nPileup parsing coming soon!\n' - exit(1) - - errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] - - # - # finally, let's save our output model - # - print 'saving model...' - if INF2 == None: - pickle.dump([initQ,probQ,Qscores,offQ,avgError,errorParams],open(OUF,'wb')) - else: - pickle.dump([initQ,probQ,initQ2,probQ2,Qscores,offQ,avgError,errorParams],open(OUF,'wb')) if __name__ == '__main__': - main() + main() diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 8d1e83d..57c838b 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -15,151 +15,156 @@ import matplotlib.cm as cmx import argparse -#mpl.rc('text',usetex=True) -#mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] - -parser = argparse.ArgumentParser(description='Plot and compare mutation models from genMutModel.py Usage: python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') -parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") -parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', help="* legend labels: model1_name [model2_name] [model3_name]...") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output pdf prefix") +# mpl.rc('text',usetex=True) +# mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] + +parser = argparse.ArgumentParser( + description='Plot and compare mutation models from genMutModel.py Usage: python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') +parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', + help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") +parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', + help="* legend labels: model1_name [model2_name] [model3_name]...") +parser.add_argument('-o', type=str, required=True, metavar='', help="* output pdf prefix") args = parser.parse_args() +def getColor(i, N, colormap='jet'): + cm = mpl.get_cmap(colormap) + cNorm = colors.Normalize(vmin=0, vmax=N + 1) + scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=cm) + colorVal = scalarMap.to_rgba(i) + return colorVal + + +def isInBed(track, ind): + if ind in track: + return True + elif bisect.bisect(track, ind) % 1 == 1: + return True + else: + return False + + +def getBedOverlap(track, ind_s, ind_e): + if ind_s in track: + myInd = track.index(ind_s) + return min([track[myInd + 1] - ind_s + 1, ind_e - ind_s + 1]) + else: + myInd = bisect.bisect(track, ind_s) + if myInd % 1 and myInd < len(track) - 1: + return min([track[myInd + 1] - ind_s + 1, ind_e - ind_s + 1]) + return 0 -def getColor(i,N,colormap='jet'): - cm = mpl.get_cmap(colormap) - cNorm = colors.Normalize(vmin=0, vmax=N+1) - scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=cm) - colorVal = scalarMap.to_rgba(i) - return colorVal - -def isInBed(track,ind): - if ind in track: - return True - elif bisect.bisect(track,ind)%1 == 1: - return True - else: - return False - -def getBedOverlap(track,ind_s,ind_e): - if ind_s in track: - myInd = track.index(ind_s) - return min([track[myInd+1]-ind_s+1,ind_e-ind_s+1]) - else: - myInd = bisect.bisect(track,ind_s) - if myInd%1 and myInd < len(track)-1: - return min([track[myInd+1]-ind_s+1,ind_e-ind_s+1]) - return 0 # a waaaaaaay slower version of the above function ^^ -#def getTrackOverlap(track1,track2): -# otrack = [0 for n in xrange(max(track1+track2)+1)] -# for i in xrange(0,len(track1),2): -# for j in xrange(track1[i],track1[i+1]+1): +# def getTrackOverlap(track1,track2): +# otrack = [0 for n in range(max(track1+track2)+1)] +# for i in range(0,len(track1),2): +# for j in range(track1[i],track1[i+1]+1): # otrack[j] = 1 # ocount = 0 -# for i in xrange(0,len(track2),2): -# for j in xrange(track2[i],track2[i+1]+1): +# for i in range(0,len(track2),2): +# for j in range(track2[i],track2[i+1]+1): # if otrack[j]: # ocount += 1 # return ocount -OUP = args.o +OUP = args.o LAB = args.l -#print LAB -INP = args.i +# print LAB +INP = args.i N_FILES = len(INP) -mpl.rcParams.update({'font.size': 13, 'font.weight':'bold', 'lines.linewidth': 3}) +mpl.rcParams.update({'font.size': 13, 'font.weight': 'bold', 'lines.linewidth': 3}) ################################################# # # BASIC STATS # ################################################# -mpl.figure(0,figsize=(12,10)) +mpl.figure(0, figsize=(12, 10)) -mpl.subplot(2,2,1) +mpl.subplot(2, 2, 1) colorInd = 0 for fn in INP: - myCol = getColor(colorInd,N_FILES) - colorInd += 1 - DATA_DICT = pickle.load( open( fn, "rb" ) ) - [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] - mpl.bar([colorInd-1],[AVG_MUT_RATE],1.,color=myCol) -mpl.xlim([-1,N_FILES+1]) + myCol = getColor(colorInd, N_FILES) + colorInd += 1 + DATA_DICT = pickle.load(open(fn, "rb")) + [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] + mpl.bar([colorInd - 1], [AVG_MUT_RATE], 1., color=myCol) +mpl.xlim([-1, N_FILES + 1]) mpl.grid() -mpl.xticks([],[]) +mpl.xticks([], []) mpl.ylabel('Frequency') mpl.title('Overall mutation rate (1/bp)') -mpl.subplot(2,2,2) +mpl.subplot(2, 2, 2) colorInd = 0 for fn in INP: - myCol = getColor(colorInd,N_FILES) - colorInd += 1 - DATA_DICT = pickle.load( open( fn, "rb" ) ) - [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] - mpl.bar([colorInd-1],[SNP_FREQ],1.,color=myCol) - mpl.bar([colorInd-1],[1.-SNP_FREQ],1.,color=myCol,bottom=[SNP_FREQ],hatch='/') -mpl.axis([-1,N_FILES+1,0,1.2]) + myCol = getColor(colorInd, N_FILES) + colorInd += 1 + DATA_DICT = pickle.load(open(fn, "rb")) + [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] + mpl.bar([colorInd - 1], [SNP_FREQ], 1., color=myCol) + mpl.bar([colorInd - 1], [1. - SNP_FREQ], 1., color=myCol, bottom=[SNP_FREQ], hatch='/') +mpl.axis([-1, N_FILES + 1, 0, 1.2]) mpl.grid() -mpl.xticks([],[]) -mpl.yticks([0,.2,.4,.6,.8,1.],[0,0.2,0.4,0.6,0.8,1.0]) +mpl.xticks([], []) +mpl.yticks([0, .2, .4, .6, .8, 1.], [0, 0.2, 0.4, 0.6, 0.8, 1.0]) mpl.ylabel('Frequency') mpl.title('SNP freq [ ] & indel freq [//]') -mpl.subplot(2,1,2) +mpl.subplot(2, 1, 2) colorInd = 0 -legText = LAB +legText = LAB for fn in INP: - myCol = getColor(colorInd,N_FILES) - colorInd += 1 - DATA_DICT = pickle.load( open( fn, "rb" ) ) - [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] - x = sorted(INDEL_FREQ.keys()) - y = [INDEL_FREQ[n] for n in x] - mpl.plot(x,y,color=myCol) - #legText.append(fn) + myCol = getColor(colorInd, N_FILES) + colorInd += 1 + DATA_DICT = pickle.load(open(fn, "rb")) + [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] + x = sorted(INDEL_FREQ.keys()) + y = [INDEL_FREQ[n] for n in x] + mpl.plot(x, y, color=myCol) +# legText.append(fn) mpl.grid() mpl.xlabel('Indel size (bp)', fontweight='bold') mpl.ylabel('Frequency') mpl.title('Indel frequency by size (- deletion, + insertion)') mpl.legend(legText) -#mpl.show() -mpl.savefig(OUP+'_plot1_mutRates.pdf') +# mpl.show() +mpl.savefig(OUP + '_plot1_mutRates.pdf') ################################################# # # TRINUC PRIOR PROB # ################################################# -mpl.figure(1,figsize=(14,6)) +mpl.figure(1, figsize=(14, 6)) colorInd = 0 -legText = LAB +legText = LAB for fn in INP: - myCol = getColor(colorInd,N_FILES) - colorInd += 1 - DATA_DICT = pickle.load( open( fn, "rb" ) ) - TRINUC_MUT_PROB = DATA_DICT['TRINUC_MUT_PROB'] - - x = range(colorInd-1,len(TRINUC_MUT_PROB)*N_FILES,N_FILES) - xt = sorted(TRINUC_MUT_PROB.keys()) - y = [TRINUC_MUT_PROB[k] for k in xt] - markerline, stemlines, baseline = mpl.stem(x,y,'-.') - mpl.setp(markerline, 'markerfacecolor', myCol) - mpl.setp(markerline, 'markeredgecolor', myCol) - mpl.setp(baseline, 'color', myCol, 'linewidth', 0) - mpl.setp(stemlines, 'color', myCol, 'linewidth', 3) - if colorInd == 1: - mpl.xticks(x,xt,rotation=90) - #legText.append(fn) + myCol = getColor(colorInd, N_FILES) + colorInd += 1 + DATA_DICT = pickle.load(open(fn, "rb")) + TRINUC_MUT_PROB = DATA_DICT['TRINUC_MUT_PROB'] + + x = range(colorInd - 1, len(TRINUC_MUT_PROB) * N_FILES, N_FILES) + xt = sorted(TRINUC_MUT_PROB.keys()) + y = [TRINUC_MUT_PROB[k] for k in xt] + markerline, stemlines, baseline = mpl.stem(x, y, '-.') + mpl.setp(markerline, 'markerfacecolor', myCol) + mpl.setp(markerline, 'markeredgecolor', myCol) + mpl.setp(baseline, 'color', myCol, 'linewidth', 0) + mpl.setp(stemlines, 'color', myCol, 'linewidth', 3) + if colorInd == 1: + mpl.xticks(x, xt, rotation=90) +# legText.append(fn) mpl.grid() mpl.ylabel('p(trinucleotide mutates)') mpl.legend(legText) -#mpl.show() -mpl.savefig(OUP+'_plot2_trinucPriors.pdf') +# mpl.show() +mpl.savefig(OUP + '_plot2_trinucPriors.pdf') ################################################# # @@ -168,45 +173,45 @@ def getBedOverlap(track,ind_s,ind_e): ################################################# plotNum = 3 for fn in INP: - fig = mpl.figure(plotNum,figsize=(12,10)) - DATA_DICT = pickle.load( open( fn, "rb" ) ) - TRINUC_TRANS_PROBS = DATA_DICT['TRINUC_TRANS_PROBS'] - - xt2 = [m[3] for m in sorted([(n[0],n[2],n[1],n) for n in xt])] - reverse_dict = {xt2[i]:i for i in xrange(len(xt2))} - Z = np.zeros((64,64)) - L = [['' for n in xrange(64)] for m in xrange(64)] - for k in TRINUC_TRANS_PROBS: - i = reverse_dict[k[0]] - j = reverse_dict[k[1]] - Z[i][j] = TRINUC_TRANS_PROBS[k] - - HARDCODED_LABEL = ['A_A','A_C','A_G','A_T', - 'C_A','C_C','C_G','C_T', - 'G_A','G_C','G_G','G_T', - 'T_A','T_C','T_G','T_T'] - - for pi in xrange(16): - mpl.subplot(4,4,pi+1) - Z2 = Z[pi*4:(pi+1)*4,pi*4:(pi+1)*4] - X, Y = np.meshgrid( range(0,len(Z2[0])+1), range(0,len(Z2)+1) ) - im = mpl.pcolormesh(X,Y,Z2[::-1,:],vmin=0.0,vmax=0.5) - mpl.axis([0,4,0,4]) - mpl.xticks([0.5,1.5,2.5,3.5],['A','C','G','T']) - mpl.yticks([0.5,1.5,2.5,3.5],['T','G','C','A']) - mpl.text(1.6, 1.8, HARDCODED_LABEL[pi], color='white') - - # colorbar haxx - fig.subplots_adjust(right=0.8) - cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7]) - cb = fig.colorbar(im,cax=cbar_ax) - cb.set_label(r"p(X$Y_1$Z->X$Y_2$Z | X_Z mutates)") - - #mpl.tight_layout() - #mpl.figtext(0.24,0.94,'Trinucleotide Mutation Frequency',size=20) - #mpl.show() - mpl.savefig(OUP+'_plot'+str(plotNum)+'_trinucTrans.pdf') - plotNum += 1 + fig = mpl.figure(plotNum, figsize=(12, 10)) + DATA_DICT = pickle.load(open(fn, "rb")) + TRINUC_TRANS_PROBS = DATA_DICT['TRINUC_TRANS_PROBS'] + + xt2 = [m[3] for m in sorted([(n[0], n[2], n[1], n) for n in xt])] + reverse_dict = {xt2[i]: i for i in range(len(xt2))} + Z = np.zeros((64, 64)) + L = [['' for n in range(64)] for m in range(64)] + for k in TRINUC_TRANS_PROBS: + i = reverse_dict[k[0]] + j = reverse_dict[k[1]] + Z[i][j] = TRINUC_TRANS_PROBS[k] + + HARDCODED_LABEL = ['A_A', 'A_C', 'A_G', 'A_T', + 'C_A', 'C_C', 'C_G', 'C_T', + 'G_A', 'G_C', 'G_G', 'G_T', + 'T_A', 'T_C', 'T_G', 'T_T'] + + for pi in range(16): + mpl.subplot(4, 4, pi + 1) + Z2 = Z[pi * 4:(pi + 1) * 4, pi * 4:(pi + 1) * 4] + X, Y = np.meshgrid(range(0, len(Z2[0]) + 1), range(0, len(Z2) + 1)) + im = mpl.pcolormesh(X, Y, Z2[::-1, :], vmin=0.0, vmax=0.5) + mpl.axis([0, 4, 0, 4]) + mpl.xticks([0.5, 1.5, 2.5, 3.5], ['A', 'C', 'G', 'T']) + mpl.yticks([0.5, 1.5, 2.5, 3.5], ['T', 'G', 'C', 'A']) + mpl.text(1.6, 1.8, HARDCODED_LABEL[pi], color='white') + + # colorbar haxx + fig.subplots_adjust(right=0.8) + cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7]) + cb = fig.colorbar(im, cax=cbar_ax) + cb.set_label(r"p(X$Y_1$Z->X$Y_2$Z | X_Z mutates)") + + # mpl.tight_layout() + # mpl.figtext(0.24,0.94,'Trinucleotide Mutation Frequency',size=20) + # mpl.show() + mpl.savefig(OUP + '_plot' + str(plotNum) + '_trinucTrans.pdf') + plotNum += 1 ################################################# # @@ -214,38 +219,41 @@ def getBedOverlap(track,ind_s,ind_e): # ################################################# track_byFile_byChr = [{} for n in INP] -bp_total_byFile = [0 for n in INP] +bp_total_byFile = [0 for n in INP] colorInd = 0 for fn in INP: - DATA_DICT = pickle.load( open( fn, "rb" ) ) - HIGH_MUT_REGIONS = DATA_DICT['HIGH_MUT_REGIONS'] - for region in HIGH_MUT_REGIONS: - if region[0] not in track_byFile_byChr[colorInd]: - track_byFile_byChr[colorInd][region[0]] = [] - track_byFile_byChr[colorInd][region[0]].extend([region[1],region[2]]) - bp_total_byFile[colorInd] += region[2]-region[1]+1 - colorInd += 1 + DATA_DICT = pickle.load(open(fn, "rb")) + HIGH_MUT_REGIONS = DATA_DICT['HIGH_MUT_REGIONS'] + for region in HIGH_MUT_REGIONS: + if region[0] not in track_byFile_byChr[colorInd]: + track_byFile_byChr[colorInd][region[0]] = [] + track_byFile_byChr[colorInd][region[0]].extend([region[1], region[2]]) + bp_total_byFile[colorInd] += region[2] - region[1] + 1 + colorInd += 1 bp_overlap_count = [[0 for m in INP] for n in INP] -for i in xrange(N_FILES): - bp_overlap_count[i][i] = bp_total_byFile[i] - for j in xrange(i+1,N_FILES): - for k in track_byFile_byChr[i].keys(): - if k in track_byFile_byChr[j]: - for ii in xrange(len(track_byFile_byChr[i][k][::2])): - bp_overlap_count[i][j] += getBedOverlap(track_byFile_byChr[j][k],track_byFile_byChr[i][k][ii*2],track_byFile_byChr[i][k][ii*2+1]) - -print '' -print 'HIGH_MUT_REGION OVERLAP BETWEEN '+str(N_FILES)+' MODELS...' -for i in xrange(N_FILES): - for j in xrange(i,N_FILES): - nDissimilar = (bp_overlap_count[i][i]-bp_overlap_count[i][j]) + (bp_overlap_count[j][j]-bp_overlap_count[i][j]) - if bp_overlap_count[i][j] == 0: - percentageV = 0.0 - else: - percentageV = bp_overlap_count[i][j]/float(bp_overlap_count[i][j]+nDissimilar) - print 'overlap['+str(i)+','+str(j)+'] = '+str(bp_overlap_count[i][j])+' bp ({0:.3f}%)'.format(percentageV*100.) -print '' +for i in range(N_FILES): + bp_overlap_count[i][i] = bp_total_byFile[i] + for j in range(i + 1, N_FILES): + for k in track_byFile_byChr[i].keys(): + if k in track_byFile_byChr[j]: + for ii in range(len(track_byFile_byChr[i][k][::2])): + bp_overlap_count[i][j] += getBedOverlap(track_byFile_byChr[j][k], track_byFile_byChr[i][k][ii * 2], + track_byFile_byChr[i][k][ii * 2 + 1]) + +print('') +print('HIGH_MUT_REGION OVERLAP BETWEEN ' + str(N_FILES) + ' MODELS...') +for i in range(N_FILES): + for j in range(i, N_FILES): + nDissimilar = (bp_overlap_count[i][i] - bp_overlap_count[i][j]) + ( + bp_overlap_count[j][j] - bp_overlap_count[i][j]) + if bp_overlap_count[i][j] == 0: + percentageV = 0.0 + else: + percentageV = bp_overlap_count[i][j] / float(bp_overlap_count[i][j] + nDissimilar) + print('overlap[' + str(i) + ',' + str(j) + '] = ' + str(bp_overlap_count[i][j]) + ' bp ({0:.3f}%)'.format( + percentageV * 100.)) +print('') ################################################# # @@ -255,24 +263,22 @@ def getBedOverlap(track,ind_s,ind_e): setofVars = [set([]) for n in INP] colorInd = 0 for fn in INP: - DATA_DICT = pickle.load( open( fn, "rb" ) ) - COMMON_VARIANTS = DATA_DICT['COMMON_VARIANTS'] - for n in COMMON_VARIANTS: - setofVars[colorInd].add(n) - colorInd += 1 - -print '' -print 'COMMON_VARIANTS OVERLAP BETWEEN '+str(N_FILES)+' MODELS...' -for i in xrange(N_FILES): - for j in xrange(i,N_FILES): - overlapCount = len(setofVars[i].intersection(setofVars[j])) - nDissimilar = (len(setofVars[i])-overlapCount) + (len(setofVars[j])-overlapCount) - if overlapCount == 0: - percentageV = 0.0 - else: - percentageV = overlapCount/float(overlapCount+nDissimilar) - print 'overlap['+str(i)+','+str(j)+'] = '+str(overlapCount)+' variants ({0:.3f}%)'.format(percentageV*100.) -print '' - - - + DATA_DICT = pickle.load(open(fn, "rb")) + COMMON_VARIANTS = DATA_DICT['COMMON_VARIANTS'] + for n in COMMON_VARIANTS: + setofVars[colorInd].add(n) + colorInd += 1 + +print('') +print('COMMON_VARIANTS OVERLAP BETWEEN ' + str(N_FILES) + ' MODELS...') +for i in range(N_FILES): + for j in range(i, N_FILES): + overlapCount = len(setofVars[i].intersection(setofVars[j])) + nDissimilar = (len(setofVars[i]) - overlapCount) + (len(setofVars[j]) - overlapCount) + if overlapCount == 0: + percentageV = 0.0 + else: + percentageV = overlapCount / float(overlapCount + nDissimilar) + print('overlap[' + str(i) + ',' + str(j) + '] = ' + str(overlapCount) + ' variants ({0:.3f}%)'.format( + percentageV * 100.)) +print('') diff --git a/utilities/validateBam.py b/utilities/validateBam.py index 47da72e..97c777c 100644 --- a/utilities/validateBam.py +++ b/utilities/validateBam.py @@ -5,80 +5,82 @@ import gzip from struct import unpack -BAM_EOF = ['1f', '8b', '08', '04', '00', '00', '00', '00', '00', 'ff', '06', '00', '42', '43', '02', '00', '1b', '00', '03', '00', '00', '00', '00', '00', '00', '00', '00', '00'] +BAM_EOF = ['1f', '8b', '08', '04', '00', '00', '00', '00', '00', 'ff', '06', '00', '42', '43', '02', '00', '1b', '00', + '03', '00', '00', '00', '00', '00', '00', '00', '00', '00'] + + +def getBytes(fmt, amt): + if fmt == '>16)&65535 - mapq = (bmqnl>>8)&255 - lrn = bmqnl&255 - print '-- bmqnl:', bmqnl, '(bin='+str(binv)+', mapq='+str(mapq)+', l_readname+1='+str(lrn)+')' - flgnc = getBytes('>16)&65535 - ncig = flgnc&65535 - print '-- flgnc:', flgnc, '(flag='+str(flag)+', ncig='+str(ncig)+')' - print '-- l_seq:', getBytes('> 16) & 65535 + mapq = (bmqnl >> 8) & 255 + lrn = bmqnl & 255 + print('-- bmqnl:', bmqnl, '(bin=' + str(binv) + ', mapq=' + str(mapq) + ', l_readname+1=' + str(lrn) + ')') + flgnc = getBytes('> 16) & 65535 + ncig = flgnc & 65535 + print('-- flgnc:', flgnc, '(flag=' + str(flag) + ', ncig=' + str(ncig) + ')') + print('-- l_seq:', getBytes('?@ABCDEFGHIJ' ALLOWED_NUCL = 'ACGTN' -def validate4lines(l1,l2,l3,l4): - failed = 0 - # make sure lines contain correct delimiters - if l1[0] != '@' or l1[-2] != '/' or l3[0] != '+': - failed = 1 - # make sure seq len == qual length - if len(l2) != len(l4): - failed = 2 - # make sure seq string contains only valid characters - for n in l2: - if n not in ALLOWED_NUCL: - failed = 3 - # make sure qual string contains only valid characters - for n in l4: - if n not in ALLOWED_QUAL: - failed = 4 - if failed: - print '\nError: malformed lines:' - if failed == 1: print ' ---- invalid delimiters\n' - elif failed == 2: print ' ---- seq len != qual len\n' - elif failed == 3: print ' ---- seq contains invalid characters\n' - elif failed == 4: print ' ---- qual contains invalid characters\n' - print l1+'\n'+l2+'\n'+l3+'\n'+l4+'\n' - exit(1) -f1 = open(sys.argv[1],'r') +def validate4lines(l1, l2, l3, l4): + failed = 0 + # make sure lines contain correct delimiters + if l1[0] != '@' or l1[-2] != '/' or l3[0] != '+': + failed = 1 + # make sure seq len == qual length + if len(l2) != len(l4): + failed = 2 + # make sure seq string contains only valid characters + for n in l2: + if n not in ALLOWED_NUCL: + failed = 3 + # make sure qual string contains only valid characters + for n in l4: + if n not in ALLOWED_QUAL: + failed = 4 + if failed: + print('\nError: malformed lines:') + if failed == 1: + print(' ---- invalid delimiters\n') + elif failed == 2: + print(' ---- seq len != qual len\n') + elif failed == 3: + print(' ---- seq contains invalid characters\n') + elif failed == 4: + print(' ---- qual contains invalid characters\n') + print(l1 + '\n' + l2 + '\n' + l3 + '\n' + l4 + '\n') + exit(1) + + +f1 = open(sys.argv[1], 'r') (l1_r1, l2_r1, l3_r1, l4_r1) = get4lines(f1) f2 = None if len(sys.argv) == 3: - f2 = open(sys.argv[2],'r') - (l1_r2, l2_r2, l3_r2, l4_r2) = get4lines(f2) + f2 = open(sys.argv[2], 'r') + (l1_r2, l2_r2, l3_r2, l4_r2) = get4lines(f2) while l1_r1: - # check line syntax - validate4lines(l1_r1,l2_r1,l3_r1,l4_r1) - if f2 != None: - validate4lines(l1_r2,l2_r2,l3_r2,l4_r2) - # make sure seq id is same for r1/r2 - if l1_r1[:-1] != l1_r2[:-1]: - print '\nError: mismatched r1/r2 name:\n' - print l1_r1+'\n'+l1_r2+'\n' - exit(1) + # check line syntax + validate4lines(l1_r1, l2_r1, l3_r1, l4_r1) + if f2 != None: + validate4lines(l1_r2, l2_r2, l3_r2, l4_r2) + # make sure seq id is same for r1/r2 + if l1_r1[:-1] != l1_r2[:-1]: + print('\nError: mismatched r1/r2 name:\n') + print(l1_r1 + '\n' + l1_r2 + '\n') + exit(1) - # grab next 4 lines... - (l1_r1, l2_r1, l3_r1, l4_r1) = get4lines(f1) - if f2 != None: - (l1_r2, l2_r2, l3_r2, l4_r2) = get4lines(f2) + # grab next 4 lines... + (l1_r1, l2_r1, l3_r1, l4_r1) = get4lines(f1) + if f2 != None: + (l1_r2, l2_r2, l3_r2, l4_r2) = get4lines(f2) if f2 != None: - f2.close() + f2.close() f1.close() -print '\nPASSED WITH FLYING COLORS. GOOD DAY.\n' - +print('\nPASSED WITH FLYING COLORS. GOOD DAY.\n') diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index d451ee6..fa9d061 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -22,700 +22,719 @@ import numpy as np import optparse +EV_BPRANGE = 50 # how far to either side of a particular variant location do we want to check for equivalents? -EV_BPRANGE = 50 # how far to either side of a particular variant location do we want to check for equivalents? +DEFAULT_QUAL = -666 # if we can't find a qual score, use this instead so we know it's missing -DEFAULT_QUAL = -666 # if we can't find a qual score, use this instead so we know it's missing +MAX_VAL = 9999999999999 # an unreasonably large value that no reference fasta could concievably be longer than -MAX_VAL = 9999999999999 # an unreasonably large value that no reference fasta could concievably be longer than +DESC = """%prog: vcf comparison script.""" +VERS = 0.1 -DESC = """%prog: vcf comparison script.""" -VERS = 0.1 - -PARSER = optparse.OptionParser('python %prog [options] -r -g -w ',description=DESC,version="%prog v"+str(VERS)) +PARSER = optparse.OptionParser('python %prog [options] -r -g -w ', description=DESC, + version="%prog v" + str(VERS)) PARSER.add_option('-r', help='* Reference Fasta', dest='REFF', action='store', metavar='') -PARSER.add_option('-g', help='* Golden VCF', dest='GVCF', action='store', metavar='') -PARSER.add_option('-w', help='* Workflow VCF', dest='WVCF', action='store', metavar='') -PARSER.add_option('-o', help='* Output Prefix', dest='OUTF', action='store', metavar='') +PARSER.add_option('-g', help='* Golden VCF', dest='GVCF', action='store', metavar='') +PARSER.add_option('-w', help='* Workflow VCF', dest='WVCF', action='store', metavar='') +PARSER.add_option('-o', help='* Output Prefix', dest='OUTF', action='store', metavar='') PARSER.add_option('-m', help='Mappability Track', dest='MTRK', action='store', metavar='') -PARSER.add_option('-M', help='Maptrack Min Len', dest='MTMM', action='store', metavar='') +PARSER.add_option('-M', help='Maptrack Min Len', dest='MTMM', action='store', metavar='') PARSER.add_option('-t', help='Targetted Regions', dest='TREG', action='store', metavar='') -PARSER.add_option('-T', help='Min Region Len', dest='MTRL', action='store', metavar='') -PARSER.add_option('-c', help='Coverage Filter Threshold [%default]', dest='DP_THRESH', default=15, action='store', metavar='') -PARSER.add_option('-a', help='Allele Freq Filter Threshold [%default]', dest='AF_THRESH', default=0.3, action='store', metavar='') - -PARSER.add_option('--vcf-out', help="Output Match/FN/FP variants [%default]", dest='VCF_OUT', default=False, action='store_true') -PARSER.add_option('--no-plot', help="No plotting [%default]", dest='NO_PLOT', default=False, action='store_true') -PARSER.add_option('--incl-homs', help="Include homozygous ref calls [%default]", dest='INCL_H', default=False, action='store_true') -PARSER.add_option('--incl-fail', help="Include calls that failed filters [%default]", dest='INCL_F', default=False, action='store_true') -PARSER.add_option('--fast', help="No equivalent variant detection [%default]", dest='FAST', default=False, action='store_true') - -(OPTS,ARGS) = PARSER.parse_args() - -REFERENCE = OPTS.REFF -GOLDEN_VCF = OPTS.GVCF +PARSER.add_option('-T', help='Min Region Len', dest='MTRL', action='store', metavar='') +PARSER.add_option('-c', help='Coverage Filter Threshold [%default]', dest='DP_THRESH', default=15, action='store', + metavar='') +PARSER.add_option('-a', help='Allele Freq Filter Threshold [%default]', dest='AF_THRESH', default=0.3, action='store', + metavar='') + +PARSER.add_option('--vcf-out', help="Output Match/FN/FP variants [%default]", dest='VCF_OUT', default=False, + action='store_true') +PARSER.add_option('--no-plot', help="No plotting [%default]", dest='NO_PLOT', default=False, action='store_true') +PARSER.add_option('--incl-homs', help="Include homozygous ref calls [%default]", dest='INCL_H', default=False, + action='store_true') +PARSER.add_option('--incl-fail', help="Include calls that failed filters [%default]", dest='INCL_F', default=False, + action='store_true') +PARSER.add_option('--fast', help="No equivalent variant detection [%default]", dest='FAST', default=False, + action='store_true') + +(OPTS, ARGS) = PARSER.parse_args() + +REFERENCE = OPTS.REFF +GOLDEN_VCF = OPTS.GVCF WORKFLOW_VCF = OPTS.WVCF -OUT_PREFIX = OPTS.OUTF -MAPTRACK = OPTS.MTRK -MIN_READLEN = OPTS.MTMM -BEDFILE = OPTS.TREG -DP_THRESH = int(OPTS.DP_THRESH) -AF_THRESH = float(OPTS.AF_THRESH) - -VCF_OUT = OPTS.VCF_OUT -NO_PLOT = OPTS.NO_PLOT +OUT_PREFIX = OPTS.OUTF +MAPTRACK = OPTS.MTRK +MIN_READLEN = OPTS.MTMM +BEDFILE = OPTS.TREG +DP_THRESH = int(OPTS.DP_THRESH) +AF_THRESH = float(OPTS.AF_THRESH) + +VCF_OUT = OPTS.VCF_OUT +NO_PLOT = OPTS.NO_PLOT INCLUDE_HOMS = OPTS.INCL_H INCLUDE_FAIL = OPTS.INCL_F -FAST = OPTS.FAST +FAST = OPTS.FAST if len(sys.argv[1:]) == 0: - PARSER.print_help() - exit(1) + PARSER.print_help() + exit(1) if OPTS.MTRL != None: - MINREGIONLEN = int(OPTS.MTRL) + MINREGIONLEN = int(OPTS.MTRL) else: - MINREGIONLEN = None + MINREGIONLEN = None if MIN_READLEN == None: - MIN_READLEN = 0 + MIN_READLEN = 0 else: - MIN_READLEN = int(MIN_READLEN) + MIN_READLEN = int(MIN_READLEN) if REFERENCE == None: - print 'Error: No reference provided.' - exit(1) + print('Error: No reference provided.') + exit(1) if GOLDEN_VCF == None: - print 'Error: No golden VCF provided.' - exit(1) + print('Error: No golden VCF provided.') + exit(1) if WORKFLOW_VCF == None: - print 'Error: No workflow VCF provided.' - exit(1) + print('Error: No workflow VCF provided.') + exit(1) if OUT_PREFIX == None: - print 'Error: No output prefix provided.' - exit(1) + print('Error: No output prefix provided.') + exit(1) if (BEDFILE != None and MINREGIONLEN == None) or (BEDFILE == None and MINREGIONLEN != None): - print 'Error: Both -t and -T must be specified' - exit(1) + print('Error: Both -t and -T must be specified') + exit(1) if NO_PLOT == False: - import matplotlib - matplotlib.use('Agg') - import matplotlib.pyplot as mpl - from matplotlib_venn import venn2, venn3 - import warnings - warnings.filterwarnings("ignore", category=UserWarning, module='matplotlib_venn') + import matplotlib + + matplotlib.use('Agg') + import matplotlib.pyplot as mpl + from matplotlib_venn import venn2, venn3 + import warnings + + warnings.filterwarnings("ignore", category=UserWarning, module='matplotlib_venn') AF_STEPS = 20 -AF_KEYS = np.linspace(0.0,1.0,AF_STEPS+1) +AF_KEYS = np.linspace(0.0, 1.0, AF_STEPS + 1) + def quantize_AF(af): - if af >= 1.0: - return AF_STEPS - elif af <= 0.0: - return 0 - else: - return int(af*AF_STEPS) - -VCF_HEADER = '##fileformat=VCFv4.1\n##reference='+REFERENCE+'##INFO=\n##INFO=\n' - -DP_TOKENS = ['DP','DPU','DPI'] # in the order that we'll look for them - -def parseLine(splt,colDict,colSamp): - - # check if we want to proceed.. - ra = splt[colDict['REF']] - aa = splt[colDict['ALT']] - if not(INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): - return None - if not(INCLUDE_FAIL) and (splt[colDict['FILTER']] != 'PASS' and splt[colDict['FILTER']] != '.'): - return None - - # default vals - cov = None - qual = DEFAULT_QUAL - alt_alleles = [] - alt_freqs = [None] - - # any alt alleles? - alt_split = aa.split(',') - if len(alt_split) > 1: - alt_alleles = alt_split - - # cov - for dp_tok in DP_TOKENS: - # check INFO for DP first - if 'INFO' in colDict and dp_tok+'=' in splt[colDict['INFO']]: - cov = int(re.findall(re.escape(dp_tok)+r"=[0-9]+",splt[colDict['INFO']])[0][3:]) - # check FORMAT/SAMPLE for DP second: - elif 'FORMAT' in colDict and len(colSamp): - format = splt[colDict['FORMAT']]+':' - if ':'+dp_tok+':' in format: - dpInd = format.split(':').index(dp_tok) - cov = int(splt[colSamp[0]].split(':')[dpInd]) - if cov != None: - break - - # check INFO for AF first - af = None - if 'INFO' in colDict and ';AF=' in ';'+splt[colDict['INFO']]: - info = splt[colDict['INFO']]+';' - af = re.findall(r"AF=.*?(?=;)",info)[0][3:] - # check FORMAT/SAMPLE for AF second: - elif 'FORMAT' in colDict and len(colSamp): - format = splt[colDict['FORMAT']]+':' - if ':AF:' in format: - afInd = splt[colDict['FORMAT']].split(':').index('AF') - af = splt[colSamp[0]].split(':')[afInd] - - if af != None: - af_splt = af.split(',') - while(len(af_splt) < len(alt_alleles)): # are we lacking enough AF values for some reason? - af_splt.append(af_splt[-1]) # phone it in. - if len(af_splt) != 0 and af_splt[0] != '.' and af_splt[0] != '': # missing data, yay - alt_freqs = [float(n) for n in af_splt] - else: - alt_freqs = [None]*max([len(alt_alleles),1]) - - # get QUAL if it's interesting - if 'QUAL' in colDict and splt[colDict['QUAL']] != '.': - qual = float(splt[colDict['QUAL']]) - - return (cov, qual, alt_alleles, alt_freqs) - - -def parseVCF(VCF_FILENAME,refName,targRegionsFl,outFile,outBool): - v_Hashed = {} - v_posHash = {} - v_Alts = {} - v_Cov = {} - v_AF = {} - v_Qual = {} - v_TargLen = {} - nBelowMinRLen = 0 - line_unique = 0 # number of lines in vcf file containing unique variant - hash_coll = 0 # number of times we saw a hash collision ("per line" so non-unique alt alleles don't get counted multiple times) - var_filtered = 0 # number of variants excluded due to filters (e.g. hom-refs, qual) - var_merged = 0 # number of variants we merged into another due to having the same position specified - colDict = {} - colSamp = [] - for line in open(VCF_FILENAME,'r'): - if line[0] != '#': - if len(colDict) == 0: - print '\n\nError: VCF has no header?\n'+VCF_FILENAME+'\n\n' - exit(1) - splt = line[:-1].split('\t') - if splt[0] == refName: - - var = (int(splt[1]),splt[3],splt[4]) - targInd = bisect.bisect(targRegionsFl,var[0]) - - if targInd%2 == 1: - targLen = targRegionsFl[targInd]-targRegionsFl[targInd-1] - if (BEDFILE != None and targLen >= MINREGIONLEN) or BEDFILE == None: - - pl_out = parseLine(splt,colDict,colSamp) - if pl_out == None: - var_filtered += 1 - continue - (cov, qual, aa, af) = pl_out - - if var not in v_Hashed: - - vpos = var[0] - if vpos in v_posHash: - if len(aa) == 0: - aa = [var[2]] - aa.extend([n[2] for n in v_Hashed.keys() if n[0] == vpos]) - var_merged += 1 - v_posHash[vpos] = 1 - - if len(aa): - allVars = [(var[0],var[1],n) for n in aa] - for i in xrange(len(allVars)): - v_Hashed[allVars[i]] = 1 - #if allVars[i] not in v_Alts: - # v_Alts[allVars[i]] = [] - #v_Alts[allVars[i]].extend(allVars) - v_Alts[allVars[i]] = allVars - else: - v_Hashed[var] = 1 - - if cov != None: - v_Cov[var] = cov - v_AF[var] = af[0] # only use first AF, even if multiple. fix this later? - v_Qual[var] = qual - v_TargLen[var] = targLen - line_unique += 1 - - else: - hash_coll += 1 - - else: - nBelowMinRLen += 1 - else: - if line[1] != '#': - cols = line[1:-1].split('\t') - for i in xrange(len(cols)): - if 'FORMAT' in colDict: - colSamp.append(i) - colDict[cols[i]] = i - if VCF_OUT and outBool: - outBool = False - outFile.write(line) - - return (v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_TargLen, nBelowMinRLen, line_unique, var_filtered, var_merged, hash_coll) + if af >= 1.0: + return AF_STEPS + elif af <= 0.0: + return 0 + else: + return int(af * AF_STEPS) + + +VCF_HEADER = '##fileformat=VCFv4.1\n##reference=' + REFERENCE + '##INFO=\n##INFO=\n' + +DP_TOKENS = ['DP', 'DPU', 'DPI'] # in the order that we'll look for them + + +def parseLine(splt, colDict, colSamp): + # check if we want to proceed.. + ra = splt[colDict['REF']] + aa = splt[colDict['ALT']] + if not (INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): + return None + if not (INCLUDE_FAIL) and (splt[colDict['FILTER']] != 'PASS' and splt[colDict['FILTER']] != '.'): + return None + + # default vals + cov = None + qual = DEFAULT_QUAL + alt_alleles = [] + alt_freqs = [None] + + # any alt alleles? + alt_split = aa.split(',') + if len(alt_split) > 1: + alt_alleles = alt_split + + # cov + for dp_tok in DP_TOKENS: + # check INFO for DP first + if 'INFO' in colDict and dp_tok + '=' in splt[colDict['INFO']]: + cov = int(re.findall(re.escape(dp_tok) + r"=[0-9]+", splt[colDict['INFO']])[0][3:]) + # check FORMAT/SAMPLE for DP second: + elif 'FORMAT' in colDict and len(colSamp): + format = splt[colDict['FORMAT']] + ':' + if ':' + dp_tok + ':' in format: + dpInd = format.split(':').index(dp_tok) + cov = int(splt[colSamp[0]].split(':')[dpInd]) + if cov != None: + break + + # check INFO for AF first + af = None + if 'INFO' in colDict and ';AF=' in ';' + splt[colDict['INFO']]: + info = splt[colDict['INFO']] + ';' + af = re.findall(r"AF=.*?(?=;)", info)[0][3:] + # check FORMAT/SAMPLE for AF second: + elif 'FORMAT' in colDict and len(colSamp): + format = splt[colDict['FORMAT']] + ':' + if ':AF:' in format: + afInd = splt[colDict['FORMAT']].split(':').index('AF') + af = splt[colSamp[0]].split(':')[afInd] + + if af != None: + af_splt = af.split(',') + while (len(af_splt) < len(alt_alleles)): # are we lacking enough AF values for some reason? + af_splt.append(af_splt[-1]) # phone it in. + if len(af_splt) != 0 and af_splt[0] != '.' and af_splt[0] != '': # missing data, yay + alt_freqs = [float(n) for n in af_splt] + else: + alt_freqs = [None] * max([len(alt_alleles), 1]) + + # get QUAL if it's interesting + if 'QUAL' in colDict and splt[colDict['QUAL']] != '.': + qual = float(splt[colDict['QUAL']]) + + return (cov, qual, alt_alleles, alt_freqs) + + +def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): + v_Hashed = {} + v_posHash = {} + v_Alts = {} + v_Cov = {} + v_AF = {} + v_Qual = {} + v_TargLen = {} + nBelowMinRLen = 0 + line_unique = 0 # number of lines in vcf file containing unique variant + hash_coll = 0 # number of times we saw a hash collision ("per line" so non-unique alt alleles don't get counted multiple times) + var_filtered = 0 # number of variants excluded due to filters (e.g. hom-refs, qual) + var_merged = 0 # number of variants we merged into another due to having the same position specified + colDict = {} + colSamp = [] + for line in open(VCF_FILENAME, 'r'): + if line[0] != '#': + if len(colDict) == 0: + print('\n\nError: VCF has no header?\n' + VCF_FILENAME + '\n\n') + exit(1) + splt = line[:-1].split('\t') + if splt[0] == refName: + + var = (int(splt[1]), splt[3], splt[4]) + targInd = bisect.bisect(targRegionsFl, var[0]) + + if targInd % 2 == 1: + targLen = targRegionsFl[targInd] - targRegionsFl[targInd - 1] + if (BEDFILE != None and targLen >= MINREGIONLEN) or BEDFILE == None: + + pl_out = parseLine(splt, colDict, colSamp) + if pl_out == None: + var_filtered += 1 + continue + (cov, qual, aa, af) = pl_out + + if var not in v_Hashed: + + vpos = var[0] + if vpos in v_posHash: + if len(aa) == 0: + aa = [var[2]] + aa.extend([n[2] for n in v_Hashed.keys() if n[0] == vpos]) + var_merged += 1 + v_posHash[vpos] = 1 + + if len(aa): + allVars = [(var[0], var[1], n) for n in aa] + for i in range(len(allVars)): + v_Hashed[allVars[i]] = 1 + # if allVars[i] not in v_Alts: + # v_Alts[allVars[i]] = [] + # v_Alts[allVars[i]].extend(allVars) + v_Alts[allVars[i]] = allVars + else: + v_Hashed[var] = 1 + + if cov != None: + v_Cov[var] = cov + v_AF[var] = af[0] # only use first AF, even if multiple. fix this later? + v_Qual[var] = qual + v_TargLen[var] = targLen + line_unique += 1 + + else: + hash_coll += 1 + + else: + nBelowMinRLen += 1 + else: + if line[1] != '#': + cols = line[1:-1].split('\t') + for i in range(len(cols)): + if 'FORMAT' in colDict: + colSamp.append(i) + colDict[cols[i]] = i + if VCF_OUT and outBool: + outBool = False + outFile.write(line) + + return ( + v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_TargLen, nBelowMinRLen, line_unique, var_filtered, var_merged, hash_coll) def condenseByPos(listIn): - varListOfInterest = [n for n in listIn] - indCount = {} - for n in varListOfInterest: - c = n[0] - if c not in indCount: - indCount[c] = 0 - indCount[c] += 1 - #nonUniqueDict = {n:[] for n in sorted(indCount.keys()) if indCount[n] > 1} # the python 2.7 way - nonUniqueDict = {} - for n in sorted(indCount.keys()): - if indCount[n] > 1: - nonUniqueDict[n] = [] - delList = [] - for i in xrange(len(varListOfInterest)): - if varListOfInterest[i][0] in nonUniqueDict: - nonUniqueDict[varListOfInterest[i][0]].append(varListOfInterest[i]) - delList.append(i) - delList = sorted(delList,reverse=True) - for di in delList: - del varListOfInterest[di] - for v in nonUniqueDict.values(): - var = (v[0][0],v[0][1],','.join([n[2] for n in v[::-1]])) - varListOfInterest.append(var) - return varListOfInterest + varListOfInterest = [n for n in listIn] + indCount = {} + for n in varListOfInterest: + c = n[0] + if c not in indCount: + indCount[c] = 0 + indCount[c] += 1 + # nonUniqueDict = {n:[] for n in sorted(indCount.keys()) if indCount[n] > 1} # the python 2.7 way + nonUniqueDict = {} + for n in sorted(indCount.keys()): + if indCount[n] > 1: + nonUniqueDict[n] = [] + delList = [] + for i in range(len(varListOfInterest)): + if varListOfInterest[i][0] in nonUniqueDict: + nonUniqueDict[varListOfInterest[i][0]].append(varListOfInterest[i]) + delList.append(i) + delList = sorted(delList, reverse=True) + for di in delList: + del varListOfInterest[di] + for v in nonUniqueDict.values(): + var = (v[0][0], v[0][1], ','.join([n[2] for n in v[::-1]])) + varListOfInterest.append(var) + return varListOfInterest def main(): - - ref = [] - f = open(REFERENCE,'r') - nLines = 0 - prevR = None - prevP = None - ref_inds = [] - sys.stdout.write('\nindexing reference fasta... ') - sys.stdout.flush() - tt = time.time() - while 1: - nLines += 1 - data = f.readline() - if not data: - ref_inds.append( (prevR, prevP, f.tell()-len(data)) ) - break - if data[0] == '>': - if prevP != None: - ref_inds.append( (prevR, prevP, f.tell()-len(data)) ) - prevP = f.tell() - prevR = data[1:-1] - print '{0:.3f} (sec)'.format(time.time()-tt) - #ref_inds = [('chrM', 6, 16909), ('chr1', 16915, 254252549), ('chr2', 254252555, 502315916), ('chr3', 502315922, 704298801), ('chr4', 704298807, 899276169), ('chr5', 899276175, 1083809741), ('chr6', 1083809747, 1258347116), ('chr7', 1258347122, 1420668559), ('chr8', 1420668565, 1569959868), ('chr9', 1569959874, 1713997574), ('chr10', 1713997581, 1852243023), ('chr11', 1852243030, 1989949677), ('chr12', 1989949684, 2126478617), ('chr13', 2126478624, 2243951900), ('chr14', 2243951907, 2353448438), ('chr15', 2353448445, 2458030465), ('chr16', 2458030472, 2550192321), ('chr17', 2550192328, 2633011443), ('chr18', 2633011450, 2712650243), ('chr19', 2712650250, 2772961813), ('chr20', 2772961820, 2837247851), ('chr21', 2837247858, 2886340351), ('chr22', 2886340358, 2938671016), ('chrX', 2938671022, 3097046994), ('chrY', 3097047000, 3157608038)] - - ztV = 0 # total golden variants - ztW = 0 # total workflow variants - znP = 0 # total perfect matches - zfP = 0 # total false positives - znF = 0 # total false negatives - znE = 0 # total equivalent variants detected - zgF = 0 # total golden variants that were filtered and excluded - zgR = 0 # total golden variants that were excluded for being redundant - zgM = 0 # total golden variants that were merged into a single position - zwF = 0 # total workflow variants that were filtered and excluded - zwR = 0 # total workflow variants that were excluded for being redundant - zwM = 0 # total workflow variants that were merged into a single position - if BEDFILE != None: - zbM = 0 - - mappability_vs_FN = {0:0, 1:0} # [0] = # of FNs that were in mappable regions, [1] = # of FNs that were in unmappable regions - coverage_vs_FN = {} # [C] = # of FNs that were covered by C reads - alleleBal_vs_FN = {} # [AF] = # of FNs that were heterozygous genotypes with allele freq AF (quantized to multiples of 1/AF_STEPS) - for n in AF_KEYS: - alleleBal_vs_FN[n] = 0 - - # - # read in mappability track - # - mappability_tracks = {} # indexed by chr string (e.g. 'chr1'), has boolean array - prevRef = '' - relevantRegions = [] - if MAPTRACK != None: - mtf = open(MAPTRACK,'r') - for line in mtf: - splt = line.strip().split('\t') - if prevRef != '' and splt[0] != prevRef: - # do stuff - if len(relevantRegions): - myTrack = [0]*(relevantRegions[-1][1]+100) - for r in relevantRegions: - for ri in xrange(r[0],r[1]): - myTrack[ri] = 1 - mappability_tracks[prevRef] = [n for n in myTrack] - # - relevantRegions = [] - if int(splt[3]) >= MIN_READLEN: - relevantRegions.append((int(splt[1]),int(splt[2]))) - prevRef = splt[0] - mtf.close() - # do stuff - if len(relevantRegions): - myTrack = [0]*(relevantRegions[-1][1]+100) - for r in relevantRegions: - for ri in xrange(r[0],r[1]): - myTrack[ri] = 1 - mappability_tracks[prevRef] = [n for n in myTrack] - # - - # - # init vcf output, if desired - # - vcfo2 = None - vcfo3 = None - global vcfo2_firstTime - global vcfo3_firstTime - vcfo2_firstTime = False - vcfo3_firstTime = False - if VCF_OUT: - vcfo2 = open(OUT_PREFIX+'_FN.vcf','w') - vcfo3 = open(OUT_PREFIX+'_FP.vcf','w') - vcfo2_firstTime = True - vcfo3_firstTime = True - - # - # data for plotting FN analysis - # - set1 = [] - set2 = [] - set3 = [] - varAdj = 0 - - # - # - # For each sequence in reference fasta... - # - # - for n_RI in ref_inds: - - refName = n_RI[0] - if FAST == False: - f.seek(n_RI[1]) - print 'reading '+refName+'...', - myDat = f.read(n_RI[2]-n_RI[1]).split('\n') - myLen = sum([len(m) for m in myDat]) - if sys.version_info >= (2,7): - print '{:,} bp'.format(myLen) - else: - print '{0:} bp'.format(myLen) - inWidth = len(myDat[0]) - if len(myDat[-1]) == 0: # if last line is empty, remove it. - del myDat[-1] - if inWidth*(len(myDat)-1)+len(myDat[-1]) != myLen: - print 'fasta column-width not consistent.' - print myLen, inWidth*(len(myDat)-1)+len(myDat[-1]) - for i in xrange(len(myDat)): - if len(myDat[i]) != inWidth: - print i, len(myDat[i]), inWidth - exit(1) - - myDat = bytearray(''.join(myDat)).upper() - myLen = len(myDat) - - # - # Parse relevant targeted regions - # - targRegionsFl = [] - if BEDFILE != None: - bedfile = open(BEDFILE,'r') - for line in bedfile: - splt = line.split('\t') - if splt[0] == refName: - targRegionsFl.extend((int(splt[1]),int(splt[2]))) - bedfile.close() - else: - targRegionsFl = [-1,MAX_VAL+1] - - # - # Parse vcf files - # - sys.stdout.write('comparing variation in '+refName+'... ') - sys.stdout.flush() - tt = time.time() - - (correctHashed, correctAlts, correctCov, correctAF, correctQual, correctTargLen, correctBelowMinRLen, correctUnique, gFiltered, gMerged, gRedundant) = parseVCF(GOLDEN_VCF, refName, targRegionsFl, vcfo2, vcfo2_firstTime) - (workflowHashed, workflowAlts, workflowCov, workflowAF, workflowQual, workflowTarLen, workflowBelowMinRLen, workflowUnique, wFiltered, wMerged, wRedundant) = parseVCF(WORKFLOW_VCF, refName, targRegionsFl, vcfo3, vcfo3_firstTime) - zgF += gFiltered - zgR += gRedundant - zgM += gMerged - zwF += wFiltered - zwR += wRedundant - zwM += wMerged - - # - # Deduce which variants are FP / FN - # - solvedInds = {} - for var in correctHashed.keys(): - if var in workflowHashed or var[0] in solvedInds: - correctHashed[var] = 2 - workflowHashed[var] = 2 - solvedInds[var[0]] = True - for var in correctHashed.keys()+workflowHashed.keys(): - if var[0] in solvedInds: - correctHashed[var] = 2 - workflowHashed[var] = 2 - nPerfect = len(solvedInds) - - # correctHashed[var] = 1: were not found - # = 2: should be discluded because we were found - # = 3: should be discluded because an alt was found - notFound = [n for n in sorted(correctHashed.keys()) if correctHashed[n] == 1] - FPvariants = [n for n in sorted(workflowHashed.keys()) if workflowHashed[n] == 1] - - # - # condense all variants who have alternate alleles and were *not* found to have perfect matches - # into a single variant again. These will not be included in the candidates for equivalency checking. Sorry! - # - notFound = condenseByPos(notFound) - FPvariants = condenseByPos(FPvariants) - - # - # tally up some values, if there are no golden variants lets save some CPU cycles and move to the next ref - # - totalGoldenVariants = nPerfect + len(notFound) - totalWorkflowVariants = nPerfect + len(FPvariants) - if totalGoldenVariants == 0: - zfP += len(FPvariants) - ztW += totalWorkflowVariants - print '{0:.3f} (sec)'.format(time.time()-tt) - continue - - # - # let's check for equivalent variants - # - if FAST == False: - delList_i = [] - delList_j = [] - regionsToCheck = [] - for i in xrange(len(FPvariants)): - pos = FPvariants[i][0] - regionsToCheck.append((max([pos-EV_BPRANGE-1,0]),min([pos+EV_BPRANGE,len(myDat)-1]))) - - for n in regionsToCheck: - refSection = myDat[n[0]:n[1]] - - fpWithin = [] - for i in xrange(len(FPvariants)): - m = FPvariants[i] - if (m[0] > n[0] and m[0] < n[1]): - fpWithin.append((m,i)) - fpWithin = sorted(fpWithin) - adj = 0 - altSection = copy.deepcopy(refSection) - for (m,i) in fpWithin: - lr = len(m[1]) - la = len(m[2]) - dpos = m[0]-n[0]+adj - altSection = altSection[:dpos-1] + m[2] + altSection[dpos-1+lr:] - adj += la-lr - - nfWithin = [] - for j in xrange(len(notFound)): - m = notFound[j] - if (m[0] > n[0] and m[0] < n[1]): - nfWithin.append((m,j)) - nfWithin = sorted(nfWithin) - adj = 0 - altSection2 = copy.deepcopy(refSection) - for (m,j) in nfWithin: - lr = len(m[1]) - la = len(m[2]) - dpos = m[0]-n[0]+adj - altSection2 = altSection2[:dpos-1] + m[2] + altSection2[dpos-1+lr:] - adj += la-lr - - if altSection == altSection2: - for (m,i) in fpWithin: - if i not in delList_i: - delList_i.append(i) - for (m,j) in nfWithin: - if j not in delList_j: - delList_j.append(j) - - nEquiv = 0 - for i in sorted(list(set(delList_i)),reverse=True): - del FPvariants[i] - for j in sorted(list(set(delList_j)),reverse=True): - del notFound[j] - nEquiv += 1 - nPerfect += nEquiv - - # - # Tally up errors and whatnot - # - ztV += totalGoldenVariants - ztW += totalWorkflowVariants - znP += nPerfect - zfP += len(FPvariants) - znF += len(notFound) - if FAST == False: - znE += nEquiv - if BEDFILE != None: - zbM += correctBelowMinRLen - - # - # try to identify a reason for FN variants: - # - - venn_data = [[0,0,0] for n in notFound] # [i] = (unmappable, low cov, low het) - for i in xrange(len(notFound)): - var = notFound[i] - - noReason = True - - # mappability? - if MAPTRACK != None: - if refName in mappability_tracks and var[0] < len(mappability_tracks[refName]): - if mappability_tracks[refName][var[0]]: - mappability_vs_FN[1] += 1 - venn_data[i][0] = 1 - noReason = False - else: - mappability_vs_FN[0] += 1 - - # coverage? - if var in correctCov: - c = correctCov[var] - if c != None: - if c not in coverage_vs_FN: - coverage_vs_FN[c] = 0 - coverage_vs_FN[c] += 1 - if c < DP_THRESH: - venn_data[i][1] = 1 - noReason = False - - # heterozygous genotype messing things up? - #if var in correctAF: - # a = correctAF[var] - # if a != None: - # a = AF_KEYS[quantize_AF(a)] - # if a not in alleleBal_vs_FN: - # alleleBal_vs_FN[a] = 0 - # alleleBal_vs_FN[a] += 1 - # if a < AF_THRESH: - # venn_data[i][2] = 1 - - # no reason? - if noReason: - venn_data[i][2] += 1 - - for i in xrange(len(notFound)): - if venn_data[i][0]: set1.append(i+varAdj) - if venn_data[i][1]: set2.append(i+varAdj) - if venn_data[i][2]: set3.append(i+varAdj) - varAdj += len(notFound) - - # - # if desired, write out vcf files. - # - notFound = sorted(notFound) - FPvariants = sorted(FPvariants) - if VCF_OUT: - for line in open(GOLDEN_VCF,'r'): - if line[0] != '#': - splt = line.split('\t') - if splt[0] == refName: - var = (int(splt[1]),splt[3],splt[4]) - if var in notFound: - vcfo2.write(line) - for line in open(WORKFLOW_VCF,'r'): - if line[0] != '#': - splt = line.split('\t') - if splt[0] == refName: - var = (int(splt[1]),splt[3],splt[4]) - if var in FPvariants: - vcfo3.write(line) - - print '{0:.3f} (sec)'.format(time.time()-tt) - - # - # close vcf output - # - print '' - if VCF_OUT: - print OUT_PREFIX+'_FN.vcf' - print OUT_PREFIX+'_FP.vcf' - vcfo2.close() - vcfo3.close() - - # - # plot some FN stuff - # - if NO_PLOT == False: - nDetected = len(set(set1+set2+set3)) - set1 = set(set1) - set2 = set(set2) - set3 = set(set3) - - if len(set1): s1 = 'Unmappable' - else: s1 = '' - if len(set2): s2 = 'DP < '+str(DP_THRESH) - else: s2 = '' - #if len(set3): s3 = 'AF < '+str(AF_THRESH) - if len(set3): s3 = 'Unknown' - else: s3 = '' - - mpl.figure(0) - tstr1 = 'False Negative Variants (Missed Detections)' - #tstr2 = str(nDetected)+' / '+str(znF)+' FN variants categorized' - tstr2 = '' - if MAPTRACK != None: - v = venn3([set1, set2, set3], (s1, s2, s3)) - else: - v = venn2([set2, set3], (s2, s3)) - mpl.figtext(0.5,0.95,tstr1,fontdict={'size':14,'weight':'bold'},horizontalalignment='center') - mpl.figtext(0.5,0.03,tstr2,fontdict={'size':14,'weight':'bold'},horizontalalignment='center') - - ouf = OUT_PREFIX+'_FNvenn.pdf' - print ouf - mpl.savefig(ouf) - - # - # spit out results to console - # - print '\n**********************************\n' - if BEDFILE != None: - print 'ONLY CONSIDERING VARIANTS FOUND WITHIN TARGETED REGIONS\n\n' - print 'Total Golden Variants: ',ztV,'\t[',zgF,'filtered,',zgM,'merged,',zgR,'redundant ]' - print 'Total Workflow Variants:',ztW,'\t[',zwF,'filtered,',zwM,'merged,',zwR,'redundant ]' - print '' - if ztV > 0 and ztW > 0: - print 'Perfect Matches:',znP,'({0:.2f}%)'.format(100.*float(znP)/ztV) - print 'FN variants: ',znF,'({0:.2f}%)'.format(100.*float(znF)/ztV) - print 'FP variants: ',zfP#,'({0:.2f}%)'.format(100.*float(zfP)/ztW) - if FAST == False: - print '\nNumber of equivalent variants denoted differently between the two vcfs:',znE - if BEDFILE != None: - print '\nNumber of golden variants located in targeted regions that were too small to be sampled from:',zbM - if FAST: - print "\nWarning! Running with '--fast' means that identical variants denoted differently between the two vcfs will not be detected! The values above may be lower than the true accuracy." - #if NO_PLOT: - if True: - print '\n#unmappable: ',len(set1) - print '#low_coverage:',len(set2) - print '#unknown: ',len(set3) - print '\n**********************************\n' - - - + ref = [] + f = open(REFERENCE, 'r') + nLines = 0 + prevR = None + prevP = None + ref_inds = [] + sys.stdout.write('\nindexing reference fasta... ') + sys.stdout.flush() + tt = time.time() + while 1: + nLines += 1 + data = f.readline() + if not data: + ref_inds.append((prevR, prevP, f.tell() - len(data))) + break + if data[0] == '>': + if prevP != None: + ref_inds.append((prevR, prevP, f.tell() - len(data))) + prevP = f.tell() + prevR = data[1:-1] + print('{0:.3f} (sec)'.format(time.time() - tt)) + # ref_inds = [('chrM', 6, 16909), ('chr1', 16915, 254252549), ('chr2', 254252555, 502315916), ('chr3', 502315922, 704298801), ('chr4', 704298807, 899276169), ('chr5', 899276175, 1083809741), ('chr6', 1083809747, 1258347116), ('chr7', 1258347122, 1420668559), ('chr8', 1420668565, 1569959868), ('chr9', 1569959874, 1713997574), ('chr10', 1713997581, 1852243023), ('chr11', 1852243030, 1989949677), ('chr12', 1989949684, 2126478617), ('chr13', 2126478624, 2243951900), ('chr14', 2243951907, 2353448438), ('chr15', 2353448445, 2458030465), ('chr16', 2458030472, 2550192321), ('chr17', 2550192328, 2633011443), ('chr18', 2633011450, 2712650243), ('chr19', 2712650250, 2772961813), ('chr20', 2772961820, 2837247851), ('chr21', 2837247858, 2886340351), ('chr22', 2886340358, 2938671016), ('chrX', 2938671022, 3097046994), ('chrY', 3097047000, 3157608038)] + + ztV = 0 # total golden variants + ztW = 0 # total workflow variants + znP = 0 # total perfect matches + zfP = 0 # total false positives + znF = 0 # total false negatives + znE = 0 # total equivalent variants detected + zgF = 0 # total golden variants that were filtered and excluded + zgR = 0 # total golden variants that were excluded for being redundant + zgM = 0 # total golden variants that were merged into a single position + zwF = 0 # total workflow variants that were filtered and excluded + zwR = 0 # total workflow variants that were excluded for being redundant + zwM = 0 # total workflow variants that were merged into a single position + if BEDFILE != None: + zbM = 0 + + mappability_vs_FN = {0: 0, + 1: 0} # [0] = # of FNs that were in mappable regions, [1] = # of FNs that were in unmappable regions + coverage_vs_FN = {} # [C] = # of FNs that were covered by C reads + alleleBal_vs_FN = {} # [AF] = # of FNs that were heterozygous genotypes with allele freq AF (quantized to multiples of 1/AF_STEPS) + for n in AF_KEYS: + alleleBal_vs_FN[n] = 0 + + # + # read in mappability track + # + mappability_tracks = {} # indexed by chr string (e.g. 'chr1'), has boolean array + prevRef = '' + relevantRegions = [] + if MAPTRACK != None: + mtf = open(MAPTRACK, 'r') + for line in mtf: + splt = line.strip().split('\t') + if prevRef != '' and splt[0] != prevRef: + # do stuff + if len(relevantRegions): + myTrack = [0] * (relevantRegions[-1][1] + 100) + for r in relevantRegions: + for ri in range(r[0], r[1]): + myTrack[ri] = 1 + mappability_tracks[prevRef] = [n for n in myTrack] + # + relevantRegions = [] + if int(splt[3]) >= MIN_READLEN: + relevantRegions.append((int(splt[1]), int(splt[2]))) + prevRef = splt[0] + mtf.close() + # do stuff + if len(relevantRegions): + myTrack = [0] * (relevantRegions[-1][1] + 100) + for r in relevantRegions: + for ri in range(r[0], r[1]): + myTrack[ri] = 1 + mappability_tracks[prevRef] = [n for n in myTrack] + # + + # + # init vcf output, if desired + # + vcfo2 = None + vcfo3 = None + global vcfo2_firstTime + global vcfo3_firstTime + vcfo2_firstTime = False + vcfo3_firstTime = False + if VCF_OUT: + vcfo2 = open(OUT_PREFIX + '_FN.vcf', 'w') + vcfo3 = open(OUT_PREFIX + '_FP.vcf', 'w') + vcfo2_firstTime = True + vcfo3_firstTime = True + + # + # data for plotting FN analysis + # + set1 = [] + set2 = [] + set3 = [] + varAdj = 0 + + # + # + # For each sequence in reference fasta... + # + # + for n_RI in ref_inds: + + refName = n_RI[0] + if FAST == False: + f.seek(n_RI[1]) + print('reading ' + refName + '...', end=' ') + myDat = f.read(n_RI[2] - n_RI[1]).split('\n') + myLen = sum([len(m) for m in myDat]) + if sys.version_info >= (2, 7): + print('{:,} bp'.format(myLen)) + else: + print('{0:} bp'.format(myLen)) + inWidth = len(myDat[0]) + if len(myDat[-1]) == 0: # if last line is empty, remove it. + del myDat[-1] + if inWidth * (len(myDat) - 1) + len(myDat[-1]) != myLen: + print('fasta column-width not consistent.') + print(myLen, inWidth * (len(myDat) - 1) + len(myDat[-1])) + for i in range(len(myDat)): + if len(myDat[i]) != inWidth: + print(i, len(myDat[i]), inWidth) + exit(1) + + myDat = bytearray(''.join(myDat)).upper() + myLen = len(myDat) + + # + # Parse relevant targeted regions + # + targRegionsFl = [] + if BEDFILE != None: + bedfile = open(BEDFILE, 'r') + for line in bedfile: + splt = line.split('\t') + if splt[0] == refName: + targRegionsFl.extend((int(splt[1]), int(splt[2]))) + bedfile.close() + else: + targRegionsFl = [-1, MAX_VAL + 1] + + # + # Parse vcf files + # + sys.stdout.write('comparing variation in ' + refName + '... ') + sys.stdout.flush() + tt = time.time() + + (correctHashed, correctAlts, correctCov, correctAF, correctQual, correctTargLen, correctBelowMinRLen, + correctUnique, gFiltered, gMerged, gRedundant) = parseVCF(GOLDEN_VCF, refName, targRegionsFl, vcfo2, + vcfo2_firstTime) + (workflowHashed, workflowAlts, workflowCov, workflowAF, workflowQual, workflowTarLen, workflowBelowMinRLen, + workflowUnique, wFiltered, wMerged, wRedundant) = parseVCF(WORKFLOW_VCF, refName, targRegionsFl, vcfo3, + vcfo3_firstTime) + zgF += gFiltered + zgR += gRedundant + zgM += gMerged + zwF += wFiltered + zwR += wRedundant + zwM += wMerged + + # + # Deduce which variants are FP / FN + # + solvedInds = {} + for var in correctHashed.keys(): + if var in workflowHashed or var[0] in solvedInds: + correctHashed[var] = 2 + workflowHashed[var] = 2 + solvedInds[var[0]] = True + for var in correctHashed.keys() + workflowHashed.keys(): + if var[0] in solvedInds: + correctHashed[var] = 2 + workflowHashed[var] = 2 + nPerfect = len(solvedInds) + + # correctHashed[var] = 1: were not found + # = 2: should be discluded because we were found + # = 3: should be discluded because an alt was found + notFound = [n for n in sorted(correctHashed.keys()) if correctHashed[n] == 1] + FPvariants = [n for n in sorted(workflowHashed.keys()) if workflowHashed[n] == 1] + + # + # condense all variants who have alternate alleles and were *not* found to have perfect matches + # into a single variant again. These will not be included in the candidates for equivalency checking. Sorry! + # + notFound = condenseByPos(notFound) + FPvariants = condenseByPos(FPvariants) + + # + # tally up some values, if there are no golden variants lets save some CPU cycles and move to the next ref + # + totalGoldenVariants = nPerfect + len(notFound) + totalWorkflowVariants = nPerfect + len(FPvariants) + if totalGoldenVariants == 0: + zfP += len(FPvariants) + ztW += totalWorkflowVariants + print('{0:.3f} (sec)'.format(time.time() - tt)) + continue + + # + # let's check for equivalent variants + # + if FAST == False: + delList_i = [] + delList_j = [] + regionsToCheck = [] + for i in range(len(FPvariants)): + pos = FPvariants[i][0] + regionsToCheck.append((max([pos - EV_BPRANGE - 1, 0]), min([pos + EV_BPRANGE, len(myDat) - 1]))) + + for n in regionsToCheck: + refSection = myDat[n[0]:n[1]] + + fpWithin = [] + for i in range(len(FPvariants)): + m = FPvariants[i] + if (m[0] > n[0] and m[0] < n[1]): + fpWithin.append((m, i)) + fpWithin = sorted(fpWithin) + adj = 0 + altSection = copy.deepcopy(refSection) + for (m, i) in fpWithin: + lr = len(m[1]) + la = len(m[2]) + dpos = m[0] - n[0] + adj + altSection = altSection[:dpos - 1] + m[2] + altSection[dpos - 1 + lr:] + adj += la - lr + + nfWithin = [] + for j in range(len(notFound)): + m = notFound[j] + if (m[0] > n[0] and m[0] < n[1]): + nfWithin.append((m, j)) + nfWithin = sorted(nfWithin) + adj = 0 + altSection2 = copy.deepcopy(refSection) + for (m, j) in nfWithin: + lr = len(m[1]) + la = len(m[2]) + dpos = m[0] - n[0] + adj + altSection2 = altSection2[:dpos - 1] + m[2] + altSection2[dpos - 1 + lr:] + adj += la - lr + + if altSection == altSection2: + for (m, i) in fpWithin: + if i not in delList_i: + delList_i.append(i) + for (m, j) in nfWithin: + if j not in delList_j: + delList_j.append(j) + + nEquiv = 0 + for i in sorted(list(set(delList_i)), reverse=True): + del FPvariants[i] + for j in sorted(list(set(delList_j)), reverse=True): + del notFound[j] + nEquiv += 1 + nPerfect += nEquiv + + # + # Tally up errors and whatnot + # + ztV += totalGoldenVariants + ztW += totalWorkflowVariants + znP += nPerfect + zfP += len(FPvariants) + znF += len(notFound) + if FAST == False: + znE += nEquiv + if BEDFILE != None: + zbM += correctBelowMinRLen + + # + # try to identify a reason for FN variants: + # + + venn_data = [[0, 0, 0] for n in notFound] # [i] = (unmappable, low cov, low het) + for i in range(len(notFound)): + var = notFound[i] + + noReason = True + + # mappability? + if MAPTRACK != None: + if refName in mappability_tracks and var[0] < len(mappability_tracks[refName]): + if mappability_tracks[refName][var[0]]: + mappability_vs_FN[1] += 1 + venn_data[i][0] = 1 + noReason = False + else: + mappability_vs_FN[0] += 1 + + # coverage? + if var in correctCov: + c = correctCov[var] + if c != None: + if c not in coverage_vs_FN: + coverage_vs_FN[c] = 0 + coverage_vs_FN[c] += 1 + if c < DP_THRESH: + venn_data[i][1] = 1 + noReason = False + + # heterozygous genotype messing things up? + # if var in correctAF: + # a = correctAF[var] + # if a != None: + # a = AF_KEYS[quantize_AF(a)] + # if a not in alleleBal_vs_FN: + # alleleBal_vs_FN[a] = 0 + # alleleBal_vs_FN[a] += 1 + # if a < AF_THRESH: + # venn_data[i][2] = 1 + + # no reason? + if noReason: + venn_data[i][2] += 1 + + for i in range(len(notFound)): + if venn_data[i][0]: set1.append(i + varAdj) + if venn_data[i][1]: set2.append(i + varAdj) + if venn_data[i][2]: set3.append(i + varAdj) + varAdj += len(notFound) + + # + # if desired, write out vcf files. + # + notFound = sorted(notFound) + FPvariants = sorted(FPvariants) + if VCF_OUT: + for line in open(GOLDEN_VCF, 'r'): + if line[0] != '#': + splt = line.split('\t') + if splt[0] == refName: + var = (int(splt[1]), splt[3], splt[4]) + if var in notFound: + vcfo2.write(line) + for line in open(WORKFLOW_VCF, 'r'): + if line[0] != '#': + splt = line.split('\t') + if splt[0] == refName: + var = (int(splt[1]), splt[3], splt[4]) + if var in FPvariants: + vcfo3.write(line) + + print('{0:.3f} (sec)'.format(time.time() - tt)) + + # + # close vcf output + # + print('') + if VCF_OUT: + print(OUT_PREFIX + '_FN.vcf') + print(OUT_PREFIX + '_FP.vcf') + vcfo2.close() + vcfo3.close() + + # + # plot some FN stuff + # + if NO_PLOT == False: + nDetected = len(set(set1 + set2 + set3)) + set1 = set(set1) + set2 = set(set2) + set3 = set(set3) + + if len(set1): + s1 = 'Unmappable' + else: + s1 = '' + if len(set2): + s2 = 'DP < ' + str(DP_THRESH) + else: + s2 = '' + # if len(set3): s3 = 'AF < '+str(AF_THRESH) + if len(set3): + s3 = 'Unknown' + else: + s3 = '' + + mpl.figure(0) + tstr1 = 'False Negative Variants (Missed Detections)' + # tstr2 = str(nDetected)+' / '+str(znF)+' FN variants categorized' + tstr2 = '' + if MAPTRACK != None: + v = venn3([set1, set2, set3], (s1, s2, s3)) + else: + v = venn2([set2, set3], (s2, s3)) + mpl.figtext(0.5, 0.95, tstr1, fontdict={'size': 14, 'weight': 'bold'}, horizontalalignment='center') + mpl.figtext(0.5, 0.03, tstr2, fontdict={'size': 14, 'weight': 'bold'}, horizontalalignment='center') + + ouf = OUT_PREFIX + '_FNvenn.pdf' + print(ouf) + mpl.savefig(ouf) + + # + # spit out results to console + # + print('\n**********************************\n') + if BEDFILE != None: + print('ONLY CONSIDERING VARIANTS FOUND WITHIN TARGETED REGIONS\n\n') + print('Total Golden Variants: ', ztV, '\t[', zgF, 'filtered,', zgM, 'merged,', zgR, 'redundant ]') + print('Total Workflow Variants:', ztW, '\t[', zwF, 'filtered,', zwM, 'merged,', zwR, 'redundant ]') + print('') + if ztV > 0 and ztW > 0: + print('Perfect Matches:', znP, '({0:.2f}%)'.format(100. * float(znP) / ztV)) + print('FN variants: ', znF, '({0:.2f}%)'.format(100. * float(znF) / ztV)) + print('FP variants: ', zfP) # ,'({0:.2f}%)'.format(100.*float(zfP)/ztW) + if FAST == False: + print('\nNumber of equivalent variants denoted differently between the two vcfs:', znE) + if BEDFILE != None: + print('\nNumber of golden variants located in targeted regions that were too small to be sampled from:', zbM) + if FAST: + print( + "\nWarning! Running with '--fast' means that identical variants denoted differently between the two vcfs will not be detected! The values above may be lower than the true accuracy.") + # if NO_PLOT: + if True: + print('\n#unmappable: ', len(set1)) + print('#low_coverage:', len(set2)) + print('#unknown: ', len(set3)) + print('\n**********************************\n') if __name__ == '__main__': - main() + main() From 01ddc58c01094f7064058b40e2606934b5aea536 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Wed, 8 Jan 2020 12:56:19 -0600 Subject: [PATCH 003/323] Making some basic modifications to bring it inline with Py3 --- py/biopython_modified_bgzf.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/py/biopython_modified_bgzf.py b/py/biopython_modified_bgzf.py index 7da4c31..e74e87e 100755 --- a/py/biopython_modified_bgzf.py +++ b/py/biopython_modified_bgzf.py @@ -26,8 +26,7 @@ def __init__(self, filename=None, mode="w", fileobj=None, compresslevel=6): assert filename is None handle = fileobj else: - if "w" not in mode.lower() \ - and "a" not in mode.lower(): + if "w" not in mode.lower() and "a" not in mode.lower(): raise ValueError("Must use write or append mode, not %r" % mode) if "a" in mode.lower(): handle = open(filename, "ab") @@ -99,4 +98,4 @@ def __enter__(self): return self def __exit__(self, type, value, traceback): - self.close() \ No newline at end of file + self.close() From badfe5607f36b990de48b0228053c77d7dd99b29 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Tue, 11 Feb 2020 16:20:45 -0600 Subject: [PATCH 004/323] Added docstrings to inputChecking.py --- py/SequenceContainer.py | 5 +++-- py/inputChecking.py | 44 ++++++++++++++++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 70e3d71..7a5259c 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -17,7 +17,7 @@ 'GA':8, 'GC':9, 'GG':10, 'GT':11, 'TA':12, 'TC':13, 'TG':14, 'TT':15} NUC_IND = {'A':0, 'C':1, 'G':2, 'T':3} ALL_TRI = [NUCL[i]+NUCL[j]+NUCL[k] for i in range(len(NUCL)) for j in range(len(NUCL)) for k in range(len(NUCL))] -ALL_IND = {ALL_TRI[i]:i for i in range(len(ALL_TRI))} +ALL_IND = {ALL_TRI[i]: i for i in range(len(ALL_TRI))} # DEBUG IGNORE_TRINUC = False @@ -161,7 +161,8 @@ def init_coverage(self,coverageDat,fragDist=None): #mpl.show() #exit(1) - self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals,range(len(coverage_vals))) + self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals, + range(len(coverage_vals))) return np.mean(avg_out) diff --git a/py/inputChecking.py b/py/inputChecking.py index e47e849..45ec25c 100644 --- a/py/inputChecking.py +++ b/py/inputChecking.py @@ -1,14 +1,33 @@ +""" +This file contains several standard functions that will be used throughout the program. Each function checks input +and issues an error if there is something wrong. +""" + import os import sys -def requiredField(s, errString): +def requiredField(s: any, errString: str) -> None: + """ + If required field s is empty, issues an error. Otherwise this does nothing + + :param s: Any input type + :param errString: A string with the error message + :return: None + """ if s is None: print('\n' + errString + '\n') exit(1) -def checkFileOpen(fn, errString, required=False): +def checkFileOpen(fn: str, errString: str, required: bool = False) -> None: + """ + Checks that the filename is not empty and that it is indeed a file + :param fn: file name, string + :param errString: string of the error if it is not a file + :param required: If not required, skips the check + :return: None + """ if required or fn is not None: if fn is None: print('\n' + errString + '\n') @@ -16,18 +35,33 @@ def checkFileOpen(fn, errString, required=False): else: try: open(fn, 'r') - except: + except ValueError: print('\n' + errString + '\n') exit(1) -def checkDir(dir, errString): +def checkDir(dir: str, errString: str) -> None: + """ + Checks that directory exists and is a directory + :param dir: string of the directory path + :param errString: string of the error in case it is not a directory or doesn't exist + :return: None + """ if not os.path.isdir(dir): print('\n' + errString + '\n') exit(1) -def isInRange(val, lb, ub, errString): +def isInRange(val: float, lb: float, ub: float, errString: str) -> None: + """ + Checks that value (val) is between the lower bound (lb) and upper bound (ub), and if not prints an error message + (errString) and exits the program. + :param val: float for the value + :param lb: float for the upper bound + :param ub: float for the lower bound + :param errString: string of the error message to print if the value is out of range + :return: None + """ if val < lb or val > ub: print('\n' + errString + '\n') exit(1) From ea9d3cddd3f94b2e1f72fd6451346bd6f14ea4d4 Mon Sep 17 00:00:00 2001 From: Zachary Stephens Date: Thu, 27 Feb 2020 17:28:39 -0600 Subject: [PATCH 005/323] encoding required to load this particular pickle in python3 --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 7a5259c..0d619df 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -654,7 +654,7 @@ def __init__(self, readLen, errorModel, reScaledError): self.readLen = readLen - errorDat = pickle.load(open(errorModel,'rb')) + errorDat = pickle.load(open(errorModel,'rb'), encoding='bytes') self.UNIFORM = False if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True From 5afe2324f6a059405a70092713bd026eaf5ee320 Mon Sep 17 00:00:00 2001 From: jallen17 Date: Fri, 28 Feb 2020 13:56:48 -0600 Subject: [PATCH 006/323] Progress on python3 conversion --- py/SequenceContainer.py | 2 +- py/refFunc.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 0d619df..560efb3 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -224,7 +224,7 @@ def init_trinucBias(self): self.trinuc_bias = [None for n in range(self.ploidy)] for p in range(self.ploidy): for i in range(self.winBuffer+1,self.seqLen-1): - trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] + trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[self.sequences[p][i-1:i+2].decode()]] self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seqLen-1],range(self.winBuffer+1,self.seqLen-1)) def update(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None): diff --git a/py/refFunc.py b/py/refFunc.py index 597498f..7114e35 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -79,7 +79,7 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): refFile = open(refPath, 'r') refFile.seek(ref_inds_i[1]) myDat = ''.join(refFile.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) - myDat = bytearray(myDat.upper()) + myDat = bytearray(myDat.upper(), 'utf8') # find N regions # data explanation: myDat[N_atlas[0][0]:N_atlas[0][1]] = solid block of Ns From fa175fea937e65a3ce1c376528a975324c9d8881 Mon Sep 17 00:00:00 2001 From: jallen17 Date: Fri, 28 Feb 2020 14:02:36 -0600 Subject: [PATCH 007/323] More progress on python3 conversion --- py/SequenceContainer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 560efb3..2ccf482 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -79,7 +79,7 @@ def init_coverage(self,coverageDat,fragDist=None): # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): - gc_c = self.sequences[i][j:j+self.windowSize].count('G') + self.sequences[i][j:j+self.windowSize].count('C') + gc_c = self.sequences[i][j:j+self.windowSize].count(ord('G')) + self.sequences[i][j:j+self.windowSize].count(ord('C')) gcCov_vals[i].extend([gc_scalars[gc_c]]*self.windowSize) j += self.windowSize gc_c = self.sequences[i][-self.windowSize:].count('G') + self.sequences[i][-self.windowSize:].count('C') @@ -413,7 +413,7 @@ def random_mutations(self): print('\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]), '\n') exit(1) else: - self.sequences[i][vPos] = all_snps[i][j][2] + self.sequences[i][vPos] = ord(all_snps[i][j][2]) # organize the indels we want to insert for i in range(len(all_indels)): From 0cbd868554cfa3990301f79d163b5086743a648e Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Wed, 4 Mar 2020 10:12:18 -0600 Subject: [PATCH 008/323] minor python 3 changes --- py/OutputFileWriter.py | 33 +++++++++++++++++---------------- py/SequenceContainer.py | 6 +++--- py/biopython_modified_bgzf.py | 2 ++ py/refFunc.py | 2 +- 4 files changed, 23 insertions(+), 20 deletions(-) diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index f72d079..00a4726 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -88,26 +88,27 @@ def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gz # WRITE VCF HEADER (if parallel: only for first job) if jobTuple[0] == 1: - self.vcf_file.write('##fileformat=VCFv4.1\n') - self.vcf_file.write('##reference=' + VCF_header[0] + '\n') - self.vcf_file.write('##INFO=\n') - self.vcf_file.write('##INFO=\n') + self.vcf_file.write('##fileformat=VCFv4.1\n'.encode('utf-8')) + reference = '##reference=' + VCF_header[0] + '\n' + self.vcf_file.write(reference.encode('utf-8')) + self.vcf_file.write('##INFO=\n'.encode('utf-8')) + self.vcf_file.write('##INFO=\n'.encode('utf-8')) # self.vcf_file.write('##INFO=\n') self.vcf_file.write( - '##INFO=\n') + '##INFO=\n'.encode('utf-8')) self.vcf_file.write( - '##INFO=\n') - self.vcf_file.write('##INFO=\n') + '##INFO=\n'.encode('utf-8')) + self.vcf_file.write('##INFO=\n'.encode('utf-8')) self.vcf_file.write( - '##INFO=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('##ALT=\n') - self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n') + '##INFO=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n'.encode('utf-8')) # # BAM OUTPUT diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 2ccf482..834e4bc 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -66,7 +66,7 @@ def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): self.blackList[p][-self.winBuffer] = 3 self.blackList[p][-self.winBuffer-1] = 3 - def init_coverage(self,coverageDat,fragDist=None): + def init_coverage(self, coverageDat, fragDist=None): # if we're only creating a vcf, skip some expensive initialization related to coverage depth if not self.onlyVCF: (self.windowSize, gc_scalars, targetCov_vals) = coverageDat @@ -82,7 +82,7 @@ def init_coverage(self,coverageDat,fragDist=None): gc_c = self.sequences[i][j:j+self.windowSize].count(ord('G')) + self.sequences[i][j:j+self.windowSize].count(ord('C')) gcCov_vals[i].extend([gc_scalars[gc_c]]*self.windowSize) j += self.windowSize - gc_c = self.sequences[i][-self.windowSize:].count('G') + self.sequences[i][-self.windowSize:].count('C') + gc_c = self.sequences[i][-self.windowSize:].count(ord('G')) + self.sequences[i][-self.windowSize:].count(ord('C')) gcCov_vals[i].extend([gc_scalars[gc_c]]*(len(self.sequences[i])-len(gcCov_vals[i]))) # trCov_vals[i].append(targetCov_vals[0]) @@ -743,7 +743,7 @@ def getSequencingErrors(self, readData, isReverseStrand=False): myQ = self.initDistByPos1[0].sample() qOut[0] = myQ - for i in range(1,self.readLen): + for i in range(1, self.readLen): if self.PE_MODELS and isReverseStrand: myQ = self.probDistByPosByPrevQ2[self.qIndRemap[i]][myQ].sample() else: diff --git a/py/biopython_modified_bgzf.py b/py/biopython_modified_bgzf.py index e74e87e..2177a01 100755 --- a/py/biopython_modified_bgzf.py +++ b/py/biopython_modified_bgzf.py @@ -63,6 +63,8 @@ def _write_block(self, block): self._handle.write(data) def write(self, data): + if type(data) is str: + data = data.encode('utf-8') data_len = len(data) if len(self._buffer) + data_len < 65536: self._buffer += data diff --git a/py/refFunc.py b/py/refFunc.py index 7114e35..7a94925 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -108,7 +108,7 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): N_info['all'].extend(region) if region[1] - region[0] <= N_handling[1]: for i in range(region[0], region[1]): - myDat[i] = random.choice(ALLOWED_NUCL) + myDat[i] = ord(random.choice(ALLOWED_NUCL)) else: N_info['big'].extend(region) elif N_handling[0] == 'allChr' and N_handling[2] in OK_CHR_ORD: From 6bce0f6add6912de40530cb849159e71b4a2bf9d Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Wed, 4 Mar 2020 10:57:11 -0600 Subject: [PATCH 009/323] Found places where integer division made more sense and converted / to // in those places. --- genReads.py | 4 ++-- py/OutputFileWriter.py | 12 ++++++------ py/SequenceContainer.py | 6 +++--- py/refFunc.py | 2 +- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/genReads.py b/genReads.py index 426f89b..0d307e8 100644 --- a/genReads.py +++ b/genReads.py @@ -728,9 +728,9 @@ def main(): else: print('') if ONLY_VCF: - print('VCF generation completed in', end=' ') + print('VCF generation completed in', end='') else: - print('Read sampling completed in', end=' ') + print('Read sampling completed in', end='') print(int(time.time() - tt), '(sec)') # write all output variants for this reference diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 00a4726..97f89f2 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -20,11 +20,11 @@ def RC(s): # SAMtools reg2bin function def reg2bin(a, b): b -= 1 - if (a >> 14 == b >> 14): return ((1 << 15) - 1) / 7 + (a >> 14) - if (a >> 17 == b >> 17): return ((1 << 12) - 1) / 7 + (a >> 17) - if (a >> 20 == b >> 20): return ((1 << 9) - 1) / 7 + (a >> 20) - if (a >> 23 == b >> 23): return ((1 << 6) - 1) / 7 + (a >> 23) - if (a >> 26 == b >> 26): return ((1 << 3) - 1) / 7 + (a >> 26) + if (a >> 14 == b >> 14): return ((1 << 15) - 1) // 7 + (a >> 14) + if (a >> 17 == b >> 17): return ((1 << 12) - 1) // 7 + (a >> 17) + if (a >> 20 == b >> 20): return ((1 << 9) - 1) // 7 + (a >> 20) + if (a >> 23 == b >> 23): return ((1 << 6) - 1) // 7 + (a >> 23) + if (a >> 26 == b >> 26): return ((1 << 3) - 1) // 7 + (a >> 26) return 0 @@ -180,7 +180,7 @@ def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, mate for i in range(cig_ops): encodedCig += pack(' int(self.readLen/2.): - trCov_vals[i] = [0.0]*int(self.readLen/2) + trCov_vals[i][:-int(self.readLen/2.)] + trCov_vals[i] = [0.0]*int(self.readLen//2) + trCov_vals[i][:-int(self.readLen/2.)] # fill in missing indices trCov_vals[i].extend([0.0]*(len(self.sequences[i])-len(trCov_vals[i]))) @@ -182,7 +182,7 @@ def init_mutModels(self,mutationModels,mutRate): if self.mutRescale == None: self.mutScalar = 1.0 else: - self.mutScalar = float(self.mutRescale)/(mutRateSum/float(len(self.modelData))) + self.mutScalar = float(self.mutRescale)//(mutRateSum/float(len(self.modelData))) # how are mutations spread to each ploid, based on their specified mut rates? self.ploidMutFrac = [float(n[0])/mutRateSum for n in self.modelData] @@ -700,7 +700,7 @@ def __init__(self, readLen, errorModel, reScaledError): else: print('Warning: Read length of error model (' + str(len(initQ1)) + ') does not match -R value (' + str( self.readLen) + '), rescaling model...') - self.qIndRemap = [max([1,len(initQ1)*n/readLen]) for n in range(readLen)] + self.qIndRemap = [max([1,len(initQ1)*n//readLen]) for n in range(readLen)] # initialize probability distributions self.initDistByPos1 = [DiscreteDistribution(initQ1[i],Qscores) for i in range(len(initQ1))] diff --git a/py/refFunc.py b/py/refFunc.py index 7a94925..a9b9484 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -24,7 +24,7 @@ def indexRef(refPath): seqLen = int(splt[1]) offset = int(splt[2]) lineLn = int(splt[3]) - nLines = seqLen / lineLn + nLines = seqLen // lineLn if seqLen % lineLn != 0: nLines += 1 ref_inds.append((splt[0], offset, offset + seqLen + nLines, seqLen)) From 5f61a2618945b097f24e18f8d2119a4d86300470 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Fri, 6 Mar 2020 10:38:58 -0600 Subject: [PATCH 010/323] Added a comment --- py/OutputFileWriter.py | 9 +++++---- py/SequenceContainer.py | 6 ++++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 97f89f2..1918d6c 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -176,16 +176,17 @@ def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, mate else: my_tlen = -pos_0 - len(seq) + next_pos - encodedCig = '' + encodedCig = bytearray() for i in range(cig_ops): - encodedCig += pack(' Date: Tue, 10 Mar 2020 14:11:59 -0500 Subject: [PATCH 011/323] Moving bulk of genReads.py within the main clause and cleaning up some bytearray problems --- genReads.py | 482 +++++++++++++++++++--------------------- py/OutputFileWriter.py | 5 + py/SequenceContainer.py | 20 +- py/refFunc.py | 12 +- 4 files changed, 254 insertions(+), 265 deletions(-) diff --git a/genReads.py b/genReads.py index 0d307e8..3d15f07 100644 --- a/genReads.py +++ b/genReads.py @@ -25,10 +25,6 @@ import numpy as np import argparse -# absolute path to this script -SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) -sys.path.append(SIM_PATH + '/py/') - from py.inputChecking import requiredField, checkFileOpen, checkDir, isInRange from py.refFunc import indexRef, readRef, getAllRefRegions, partitionRefRegions from py.vcfFunc import parseVCF @@ -36,229 +32,235 @@ from py.probability import DiscreteDistribution, mean_ind_of_weighted_list from py.SequenceContainer import SequenceContainer, ReadContainer, parseInputMutationModel -# if coverage val for a given window/position is below this value, consider it effectively zero. -LOW_COV_THRESH = 50 - """////////////////////////////////////////////////// //////////// PARSE INPUT ARGUMENTS //////////// //////////////////////////////////////////////////""" -parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') -parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") -parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") -parser.add_argument('-c', type=float, required=False, metavar='', default=10., help="average coverage") -parser.add_argument('-e', type=str, required=False, metavar='', default=None, help="sequencing error model") -parser.add_argument('-E', type=float, required=False, metavar='', default=-1, - help="rescale avg sequencing error rate to this") -parser.add_argument('-p', type=int, required=False, metavar='', default=2, help="ploidy") -parser.add_argument('-t', type=str, required=False, metavar='', default=None, - help="bed file containing targeted regions") -parser.add_argument('-to', type=float, required=False, metavar='', default=0.00, - help="off-target coverage scalar") -parser.add_argument('-m', type=str, required=False, metavar='', default=None, help="mutation model pickle file") -parser.add_argument('-M', type=float, required=False, metavar='', default=-1, - help="rescale avg mutation rate to this") -parser.add_argument('-Mb', type=str, required=False, metavar='', default=None, - help="bed file containing positional mut rates") -parser.add_argument('-N', type=int, required=False, metavar='', default=-1, - help="below this qual, replace base-calls with 'N's") -# parser.add_argument('-s', type=str, required=False, metavar='', default=None, help="input sample model") -parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") - -parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(None, None), - help='paired-end fragment length mean and std') -parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, - help='empirical fragment length distribution') -# parser.add_argument('--cancer', required=False, action='store_true', default=False, help='produce tumor/normal datasets') -# parser.add_argument('-cm', type=str, required=False, metavar='', default=None, help="cancer mutation model directory") -# parser.add_argument('-cp', type=float, required=False, metavar='', default=0.8, help="tumor sample purity") -parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, - help='empirical GC coverage bias distribution') -parser.add_argument('--job', nargs=2, type=int, required=False, metavar=('', ''), default=(0, 0), - help='jobs IDs for generating reads in parallel') -parser.add_argument('--nnr', required=False, action='store_true', default=False, - help='save non-N ref regions (for parallel jobs)') -parser.add_argument('--bam', required=False, action='store_true', default=False, help='output golden BAM file') -parser.add_argument('--vcf', required=False, action='store_true', default=False, help='output golden VCF file') -parser.add_argument('--fa', required=False, action='store_true', default=False, help='output FASTA instead of FASTQ') -parser.add_argument('--rng', type=int, required=False, metavar='', default=-1, - help='rng seed value; identical RNG value should produce identical runs of the program, so things like read locations, variant positions, error positions, etc, should all be the same.') -parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') -parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') -args = parser.parse_args() - -# required args -(REFERENCE, READLEN, OUT_PREFIX) = (args.r, args.R, args.o) -# various dataset parameters -(COVERAGE, PLOIDS, INPUT_BED, SE_MODEL, SE_RATE, MUT_MODEL, MUT_RATE, MUT_BED, INPUT_VCF) = ( -args.c, args.p, args.t, args.e, args.E, args.m, args.M, args.Mb, args.v) -# cancer params (disabled currently) -# (CANCER, CANCER_MODEL, CANCER_PURITY) = (args.cancer, args.cm, args.cp) -(CANCER, CANCER_MODEL, CANCER_PURITY) = (False, None, 0.8) -(OFFTARGET_SCALAR) = (args.to) -# important flags -(SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) - -ONLY_VCF = (NO_FASTQ and SAVE_VCF and not (SAVE_BAM)) -if ONLY_VCF: - print('Only producing VCF output, that should speed things up a bit...') - -# sequencing model parameters -(FRAGMENT_SIZE, FRAGMENT_STD) = args.pe -FRAGLEN_MODEL = args.pe_model -GC_BIAS_MODEL = args.gc_model -N_MAX_QUAL = args.N - -# if user specified no fastq, no bam, no vcf, then inform them of their wasteful ways and exit -if NO_FASTQ == True and SAVE_BAM == False and SAVE_VCF == False: - print('\nError: No files will be written when --no-fastq is specified without --vcf or --bam.') - exit(1) - -# if user specified mean/std, use artificial fragment length distribution, otherwise use -# the empirical model specified. If neither, then we're doing single-end reads. -PAIRED_END = False -PAIRED_END_ARTIFICIAL = False -if FRAGMENT_SIZE != None and FRAGMENT_STD != None: - PAIRED_END = True - PAIRED_END_ARTIFICIAL = True -elif FRAGLEN_MODEL != None: - PAIRED_END = True + +def main(): + parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') + parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") + parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") + parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") + parser.add_argument('-c', type=float, required=False, metavar='', default=10., help="average coverage") + parser.add_argument('-e', type=str, required=False, metavar='', default=None, help="sequencing error model") + parser.add_argument('-E', type=float, required=False, metavar='', default=-1, + help="rescale avg sequencing error rate to this") + parser.add_argument('-p', type=int, required=False, metavar='', default=2, help="ploidy") + parser.add_argument('-t', type=str, required=False, metavar='', default=None, + help="bed file containing targeted regions") + parser.add_argument('-to', type=float, required=False, metavar='', default=0.00, + help="off-target coverage scalar") + parser.add_argument('-m', type=str, required=False, metavar='', default=None, + help="mutation model pickle file") + parser.add_argument('-M', type=float, required=False, metavar='', default=-1, + help="rescale avg mutation rate to this") + parser.add_argument('-Mb', type=str, required=False, metavar='', default=None, + help="bed file containing positional mut rates") + parser.add_argument('-N', type=int, required=False, metavar='', default=-1, + help="below this qual, replace base-calls with 'N's") + parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") + + parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(None, None), + help='paired-end fragment length mean and std') + parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, + help='empirical fragment length distribution') + parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, + help='empirical GC coverage bias distribution') + parser.add_argument('--job', nargs=2, type=int, required=False, metavar=('', ''), default=(0, 0), + help='jobs IDs for generating reads in parallel') + parser.add_argument('--nnr', required=False, action='store_true', default=False, + help='save non-N ref regions (for parallel jobs)') + parser.add_argument('--bam', required=False, action='store_true', default=False, help='output golden BAM file') + parser.add_argument('--vcf', required=False, action='store_true', default=False, help='output golden VCF file') + parser.add_argument('--fa', required=False, action='store_true', default=False, + help='output FASTA instead of FASTQ') + parser.add_argument('--rng', type=int, required=False, metavar='', default=-1, + help='rng seed value; identical RNG value should produce identical runs of the program, so ' + 'things like read locations, variant positions, error positions, etc, ' + 'should all be the same.') + parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') + parser.add_argument('--no-fastq', required=False, action='store_true', default=False, + help='bypass fastq generation') + args = parser.parse_args() + + + """ + Set variables for processing + """ + # absolute path to this script + SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) + sys.path.append(SIM_PATH + '/py/') + + # if coverage val for a given window/position is below this value, consider it effectively zero. + LOW_COV_THRESH = 50 + + + # required args + (REFERENCE, READLEN, OUT_PREFIX) = (args.r, args.R, args.o) + # various dataset parameters + (COVERAGE, PLOIDS, INPUT_BED, SE_MODEL, SE_RATE, MUT_MODEL, MUT_RATE, MUT_BED, INPUT_VCF) = \ + (args.c, args.p, args.t, args.e, args.E, args.m, args.M, args.Mb, args.v) + (OFFTARGET_SCALAR) = (args.to) + # important flags + (SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = \ + (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) + + ONLY_VCF = (NO_FASTQ and SAVE_VCF and not (SAVE_BAM)) + if ONLY_VCF: + print('Only producing VCF output, that should speed things up a bit...') + + # sequencing model parameters + (FRAGMENT_SIZE, FRAGMENT_STD) = args.pe + FRAGLEN_MODEL = args.pe_model + GC_BIAS_MODEL = args.gc_model + N_MAX_QUAL = args.N + + # if user specified no fastq, no bam, no vcf, then inform them of their wasteful ways and exit + if NO_FASTQ is True and SAVE_BAM is False and SAVE_VCF is False: + print('\nError: No files will be written when --no-fastq is specified without --vcf or --bam.') + exit(1) + + # if user specified mean/std, use artificial fragment length distribution, otherwise use + # the empirical model specified. If neither, then we're doing single-end reads. + PAIRED_END = False PAIRED_END_ARTIFICIAL = False + if FRAGMENT_SIZE is not None and FRAGMENT_STD is not None: + PAIRED_END = True + PAIRED_END_ARTIFICIAL = True + elif FRAGLEN_MODEL is not None: + PAIRED_END = True + PAIRED_END_ARTIFICIAL = False + + (MYJOB, NJOBS) = args.job + if MYJOB == 0: + MYJOB = 1 + NJOBS = 1 + SAVE_NON_N = args.nnr + + RNG_SEED = args.rng + if RNG_SEED == -1: + RNG_SEED = random.randint(1, 99999999) + random.seed(RNG_SEED) + + """************************************************ + **** INPUT ERROR CHECKING + ************************************************""" -(MYJOB, NJOBS) = args.job -if MYJOB == 0: - MYJOB = 1 - NJOBS = 1 -SAVE_NON_N = args.nnr - -RNG_SEED = args.rng -if RNG_SEED == -1: - RNG_SEED = random.randint(1, 99999999) -random.seed(RNG_SEED) - -"""************************************************ -**** INPUT ERROR CHECKING -************************************************""" - -checkFileOpen(REFERENCE, 'ERROR: could not open reference', required=True) -checkFileOpen(INPUT_VCF, 'ERROR: could not open input VCF', required=False) -checkFileOpen(INPUT_BED, 'ERROR: could not open input BED', required=False) -requiredField(OUT_PREFIX, 'ERROR: no output prefix provided') -if (FRAGMENT_SIZE == None and FRAGMENT_STD != None) or (FRAGMENT_SIZE != None and FRAGMENT_STD == None): - print('\nError: --pe argument takes 2 space-separated arguments.\n') - exit(1) - -"""************************************************ -**** LOAD INPUT MODELS -************************************************""" - -# mutation models -# -MUT_MODEL = parseInputMutationModel(MUT_MODEL, 1) -if CANCER: - CANCER_MODEL = parseInputMutationModel(CANCER_MODEL, 2) -if MUT_RATE < 0.: - MUT_RATE = None - -# sequencing error model -# -if SE_RATE < 0.: - SE_RATE = None -if SE_MODEL == None: - print('Using default sequencing error model.') - SE_MODEL = SIM_PATH + '/models/errorModel_toy.p' - SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) -else: - # probably need to do some sanity checking - SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) - -# GC-bias model -# -if GC_BIAS_MODEL == None: - print('Using default gc-bias model.') - GC_BIAS_MODEL = SIM_PATH + '/models/gcBias_toy.p' - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] -else: - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] - -# fragment length distribution -# -if PAIRED_END and not (PAIRED_END_ARTIFICIAL): - print('Using empirical fragment length distribution.') - [potential_vals, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) - FRAGLEN_VALS = [] - FRAGLEN_PROB = [] - for i in range(len(potential_vals)): - if potential_vals[i] > READLEN: - FRAGLEN_VALS.append(potential_vals[i]) - FRAGLEN_PROB.append(potential_prob[i]) - # should probably add some validation and sanity-checking code here... - FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) - FRAGMENT_SIZE = FRAGLEN_VALS[mean_ind_of_weighted_list(FRAGLEN_PROB)] - -# Indicate not writing FASTQ reads -# -if NO_FASTQ: - print('Bypassing FASTQ generation...') - -"""************************************************ -**** HARD-CODED CONSTANTS -************************************************""" - -# target window size for read sampling. how many times bigger than read/frag length -WINDOW_TARGET_SCALE = 100 -# sub-window size for read sampling windows. this is basically the finest resolution -# that can be obtained for targeted region boundaries and GC% bias -SMALL_WINDOW = 20 -# is the mutation model constant throughout the simulation? If so we can save a lot of time -CONSTANT_MUT_MODEL = True - -"""************************************************ -**** DEFAULT MODELS -************************************************""" - -# fragment length distribution: normal distribution that goes out to +- 6 standard deviations -if PAIRED_END and PAIRED_END_ARTIFICIAL: - print('Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) - if FRAGMENT_STD == 0: - FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerateVal=FRAGMENT_SIZE) + checkFileOpen(REFERENCE, 'ERROR: could not open reference', required=True) + checkFileOpen(INPUT_VCF, 'ERROR: could not open input VCF', required=False) + checkFileOpen(INPUT_BED, 'ERROR: could not open input BED', required=False) + requiredField(OUT_PREFIX, 'ERROR: no output prefix provided') + if (FRAGMENT_SIZE is None and FRAGMENT_STD is not None) or (FRAGMENT_SIZE is not None and FRAGMENT_STD is None): + print('\nError: --pe argument takes 2 space-separated arguments.\n') + exit(1) + + """************************************************ + **** LOAD INPUT MODELS + ************************************************""" + + # mutation models + # + MUT_MODEL = parseInputMutationModel(MUT_MODEL, 1) + if MUT_RATE < 0.: + MUT_RATE = None + + # sequencing error model + # + if SE_RATE < 0.: + SE_RATE = None + if SE_MODEL is None: + print('Using default sequencing error model.') + SE_MODEL = SIM_PATH + '/models/errorModel_toy.p' + SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) + else: + # probably need to do some sanity checking + SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) + + # GC-bias model + # + if GC_BIAS_MODEL is None: + print('Using default gc-bias model.') + GC_BIAS_MODEL = SIM_PATH + '/models/gcBias_toy.p' + [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) + GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] else: - potential_vals = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) + [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) + GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] + + # fragment length distribution + # + if PAIRED_END and not (PAIRED_END_ARTIFICIAL): + print('Using empirical fragment length distribution.') + [potential_vals, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) FRAGLEN_VALS = [] + FRAGLEN_PROB = [] for i in range(len(potential_vals)): if potential_vals[i] > READLEN: FRAGLEN_VALS.append(potential_vals[i]) - FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in FRAGLEN_VALS] + FRAGLEN_PROB.append(potential_prob[i]) + # should probably add some validation and sanity-checking code here... FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) + FRAGMENT_SIZE = FRAGLEN_VALS[mean_ind_of_weighted_list(FRAGLEN_PROB)] -"""************************************************ -**** MORE INPUT ERROR CHECKING -************************************************""" - -isInRange(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') -isInRange(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') -isInRange(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') -isInRange(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') -if MUT_RATE != -1 and MUT_RATE != None: - isInRange(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') -if SE_RATE != -1 and SE_RATE != None: - isInRange(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') -if NJOBS != 1: - isInRange(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') -if N_MAX_QUAL != -1: - isInRange(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') - -"""************************************************ -**** MAIN() -************************************************""" + # Indicate not writing FASTQ reads + # + if NO_FASTQ: + print('Bypassing FASTQ generation...') + """************************************************ + **** HARD-CODED CONSTANTS + ************************************************""" + + # target window size for read sampling. how many times bigger than read/frag length + WINDOW_TARGET_SCALE = 100 + # sub-window size for read sampling windows. this is basically the finest resolution + # that can be obtained for targeted region boundaries and GC% bias + SMALL_WINDOW = 20 + # is the mutation model constant throughout the simulation? If so we can save a lot of time + CONSTANT_MUT_MODEL = True + + """************************************************ + **** DEFAULT MODELS + ************************************************""" + + # fragment length distribution: normal distribution that goes out to +- 6 standard deviations + if PAIRED_END and PAIRED_END_ARTIFICIAL: + print('Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) + if FRAGMENT_STD == 0: + FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerateVal=FRAGMENT_SIZE) + else: + potential_vals = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) + FRAGLEN_VALS = [] + for i in range(len(potential_vals)): + if potential_vals[i] > READLEN: + FRAGLEN_VALS.append(potential_vals[i]) + FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in FRAGLEN_VALS] + FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) + + """************************************************ + **** MORE INPUT ERROR CHECKING + ************************************************""" + + isInRange(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') + isInRange(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') + isInRange(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') + isInRange(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') + if MUT_RATE != -1 and MUT_RATE is not None: + isInRange(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') + if SE_RATE != -1 and SE_RATE is not None: + isInRange(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') + if NJOBS != 1: + isInRange(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') + isInRange(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') + isInRange(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') + if N_MAX_QUAL != -1: + isInRange(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') + + """************************************************ + **** Process Inputs + ************************************************""" -def main(): ALLOWED_NUCL = ['A', 'C', 'G', 'T'] # index reference refIndex = indexRef(REFERENCE) @@ -270,20 +272,15 @@ def main(): # parse input variants, if present inputVariants = [] - if INPUT_VCF != None: - if CANCER: - (sampNames, inputVariants) = parseVCF(INPUT_VCF, tumorNormal=True, ploidy=PLOIDS) - tumorInd = sampNames.index('TUMOR') - normalInd = sampNames.index('NORMAL') - else: - (sampNames, inputVariants) = parseVCF(INPUT_VCF, ploidy=PLOIDS) + if INPUT_VCF is not None: + (sampNames, inputVariants) = parseVCF(INPUT_VCF, ploidy=PLOIDS) for k in sorted(inputVariants.keys()): inputVariants[k].sort() # parse input targeted regions, if present inputRegions = {} refList = [n[0] for n in refIndex] - if INPUT_BED != None: + if INPUT_BED is not None: with open(INPUT_BED, 'r') as f: for line in f: [myChr, pos1, pos2] = line.strip().split('\t')[:3] @@ -309,7 +306,7 @@ def main(): # parse input mutation rate rescaling regions, if present mutRateRegions = {} mutRateValues = {} - if MUT_BED != None: + if MUT_BED is not None: with open(MUT_BED, 'r') as f: for line in f: [myChr, pos1, pos2, metaData] = line.strip().split('\t')[:4] @@ -348,16 +345,9 @@ def main(): corrected_nJobs = 1 # initialize output files (part II) - if CANCER: - OFW = OutputFileWriter(OUT_PREFIX + '_normal', paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, - gzipped=GZIPPED_OUT, noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) - OFW_CANCER = OutputFileWriter(OUT_PREFIX + '_tumor', paired=PAIRED_END, BAM_header=bamHeader, - VCF_header=vcfHeader, gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), - noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) - else: - OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, - gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), noFASTQ=NO_FASTQ, - FASTA_instead=FASTA_INSTEAD) + OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, + gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), noFASTQ=NO_FASTQ, + FASTA_instead=FASTA_INSTEAD) OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] """************************************************ @@ -461,7 +451,6 @@ def main(): end = min([start + bpd, pf]) # print '------------------RAWR:', (pi,pf), nTargWindows, bpd varsFromPrevOverlap = [] - varsCancerFromPrevOverlap = [] vindFromPrev = 0 isLastTime = False havePrinted100 = False @@ -527,7 +516,7 @@ def main(): # compute coverage modifiers coverage_avg = None coverage_dat = [GC_WINDOW_SIZE, GC_SCALE_VAL, []] - if INPUT_BED == None: + if INPUT_BED is None: coverage_dat[2] = [1.0] * (end - start) else: if refIndex[RI][0] not in inputRegions: @@ -560,7 +549,7 @@ def main(): continue # construct sequence data that we will sample reads from - if sequences == None: + if sequences is None: sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, [MUT_MODEL] * PLOIDS, MUT_RATE, onlyVCF=ONLY_VCF) else: @@ -579,23 +568,11 @@ def main(): else: coverage_avg = sequences.init_coverage(tuple(coverage_dat)) - # unused cancer stuff - if CANCER: - tumor_sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, - [CANCER_MODEL] * PLOIDS, MUT_RATE, coverage_dat) - tumor_sequences.insert_mutations(varsCancerFromPrevOverlap + all_inserted_variants) - all_cancer_variants = tumor_sequences.random_mutations() - # which variants do we need to keep for next time (because of window overlap)? varsFromPrevOverlap = [] - varsCancerFromPrevOverlap = [] for n in all_inserted_variants: if n[0] >= end - overlap - 1: varsFromPrevOverlap.append(n) - if CANCER: - for n in all_cancer_variants: - if n[0] >= end - overlap - 1: - varsCancerFromPrevOverlap.append(n) # if we're only producing VCF, no need to go through the hassle of generating reads if ONLY_VCF: @@ -619,23 +596,23 @@ def main(): if PAIRED_END: myFraglen = FRAGLEN_DISTRIBUTION.sample() myReadData = sequences.sample_read(SE_CLASS, myFraglen) - if myReadData == None: # skip if we failed to find a valid position to sample read + if myReadData is None: # skip if we failed to find a valid position to sample read continue - if myReadData[0][0] == None: + if myReadData[0][0] is None: isUnmapped.append(True) else: isUnmapped.append(False) myReadData[0][0] += start # adjust mapping position based on window start - if myReadData[1][0] == None: + if myReadData[1][0] is None: isUnmapped.append(True) else: isUnmapped.append(False) myReadData[1][0] += start else: myReadData = sequences.sample_read(SE_CLASS) - if myReadData == None: # skip if we failed to find a valid position to sample read + if myReadData is None: # skip if we failed to find a valid position to sample read continue - if myReadData[0][0] == None: # unmapped read (lives in large insertion) + if myReadData[0][0] is None: # unmapped read (lives in large insertion) isUnmapped = [True] else: isUnmapped = [False] @@ -758,9 +735,6 @@ def main(): # close output files OFW.closeFiles() - if CANCER: - OFW_CANCER.closeFiles() - if __name__ == '__main__': main() diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 1918d6c..35e0665 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -3,6 +3,11 @@ import re import gzip from struct import pack +from Bio.Seq import Seq +from Bio.Alphabet import IUPAC +from Bio import SeqIO +import gzip +from Bio.bgzf import * from py.biopython_modified_bgzf import BgzfWriter diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index bbf6175..3c67a1e 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -1,10 +1,14 @@ import random import copy -import re import os import bisect import pickle import numpy as np +from Bio.Seq import Seq +from Bio.Alphabet import IUPAC +from Bio import SeqIO +import gzip +from Bio.bgzf import * from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -47,7 +51,7 @@ def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): self.x = xOffset self.ploidy = ploidy self.readLen = readLen - self.sequences = [bytearray(sequence) for n in range(self.ploidy)] + self.sequences = [Seq(sequence).tomutable() for n in range(self.ploidy)] self.seqLen = len(sequence) self.indelList = [[] for n in range(self.ploidy)] self.snpList = [[] for n in range(self.ploidy)] @@ -79,10 +83,10 @@ def init_coverage(self, coverageDat, fragDist=None): # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): - gc_c = self.sequences[i][j:j+self.windowSize].count(ord('G')) + self.sequences[i][j:j+self.windowSize].count(ord('C')) + gc_c = self.sequences[i][j:j+self.windowSize].count('G') + self.sequences[i][j:j+self.windowSize].count('C') gcCov_vals[i].extend([gc_scalars[gc_c]]*self.windowSize) j += self.windowSize - gc_c = self.sequences[i][-self.windowSize:].count(ord('G')) + self.sequences[i][-self.windowSize:].count(ord('C')) + gc_c = self.sequences[i][-self.windowSize:].count('G') + self.sequences[i][-self.windowSize:].count('C') gcCov_vals[i].extend([gc_scalars[gc_c]]*(len(self.sequences[i])-len(gcCov_vals[i]))) # trCov_vals[i].append(targetCov_vals[0]) @@ -415,7 +419,7 @@ def random_mutations(self): print('\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]), '\n') exit(1) else: - self.sequences[i][vPos] = ord(all_snps[i][j][2]) + self.sequences[i][vPos] = all_snps[i][j][2] # organize the indels we want to insert for i in range(len(all_indels)): @@ -440,7 +444,9 @@ def random_mutations(self): exit(1) else: # alter reference sequence - self.sequences[i] = self.sequences[i][:vPos] + bytearray(all_indels_ins[i][j][2]) + self.sequences[i][vPos2:] + self.sequences[i] = self.sequences[i][:vPos] + Seq(all_indels_ins[i][j][2], + IUPAC.unambiguous_dna).tomutable() + \ + self.sequences[i][vPos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) if d > 0: @@ -630,7 +636,7 @@ def sample_read(self, sequencingModel, fragLen=None): else: # substitution errors, much easier by comparison... if chr(r[3][ePos+sse_adj[ePos]]) == error[3]: - r[3][ePos+sse_adj[ePos]] = ord(error[4]) + r[3][ePos+sse_adj[ePos]] = error[4] else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') exit(1) diff --git a/py/refFunc.py b/py/refFunc.py index a9b9484..aac3f0f 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -2,6 +2,9 @@ import time import os import random +from Bio.Seq import Seq +from Bio.Alphabet import IUPAC +from Bio.bgzf import * # Index reference fasta @@ -69,7 +72,7 @@ def indexRef(refPath): # - ('ignore') --> do not alter nucleotides in N regions # def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): - OK_CHR_ORD = {ord('A'): True, ord('C'): True, ord('G'): True, ord('T'): True, ord('U'): True} + OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] tt = time.time() if not quiet: @@ -79,7 +82,8 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): refFile = open(refPath, 'r') refFile.seek(ref_inds_i[1]) myDat = ''.join(refFile.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) - myDat = bytearray(myDat.upper(), 'utf8') + myDat = Seq(myDat.upper(), IUPAC.unambiguous_dna) + myDat = myDat.tomutable() # find N regions # data explanation: myDat[N_atlas[0][0]:N_atlas[0][1]] = solid block of Ns @@ -87,7 +91,7 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): nCount = 0 N_atlas = [] for i in range(len(myDat)): - if myDat[i] == ord('N') or (N_unknowns and myDat[i] not in OK_CHR_ORD): + if myDat[i] == 'N' or (N_unknowns and myDat[i] not in OK_CHR_ORD): if nCount == 0: prevNI = i nCount += 1 @@ -108,7 +112,7 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): N_info['all'].extend(region) if region[1] - region[0] <= N_handling[1]: for i in range(region[0], region[1]): - myDat[i] = ord(random.choice(ALLOWED_NUCL)) + myDat[i] = random.choice(ALLOWED_NUCL) else: N_info['big'].extend(region) elif N_handling[0] == 'allChr' and N_handling[2] in OK_CHR_ORD: From 876af86d758c28037c67fbb4b31699939f632fee Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 25 Mar 2020 10:22:25 -0500 Subject: [PATCH 012/323] changed bytearray to sequence container --- py/SequenceContainer.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 2ccf482..7a0ed6f 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -5,6 +5,8 @@ import bisect import pickle import numpy as np +from Bio.Seq import Seq +from Bio.Alphabet import IUPAC from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -47,7 +49,7 @@ def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): self.x = xOffset self.ploidy = ploidy self.readLen = readLen - self.sequences = [bytearray(sequence) for n in range(self.ploidy)] + self.sequences = [Seq(sequence, IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] self.seqLen = len(sequence) self.indelList = [[] for n in range(self.ploidy)] self.snpList = [[] for n in range(self.ploidy)] @@ -79,7 +81,7 @@ def init_coverage(self,coverageDat,fragDist=None): # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): - gc_c = self.sequences[i][j:j+self.windowSize].count(ord('G')) + self.sequences[i][j:j+self.windowSize].count(ord('C')) + gc_c = self.sequences[i][j:j+self.windowSize].count('G') + self.sequences[i][j:j+self.windowSize].count('C') gcCov_vals[i].extend([gc_scalars[gc_c]]*self.windowSize) j += self.windowSize gc_c = self.sequences[i][-self.windowSize:].count('G') + self.sequences[i][-self.windowSize:].count('C') @@ -331,17 +333,17 @@ def random_mutations(self): inLen = self.models[i][4].sample() # sequence content of random insertions is uniformly random (change this later, maybe) inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) - refNucl = chr(self.sequences[i][eventPos]) + refNucl = self.sequences[i][eventPos] myIndel = (eventPos,refNucl,refNucl+inSeq) else: # deletion inLen = self.models[i][5].sample() if eventPos+inLen+1 >= len(self.sequences[i]): # skip if deletion too close to boundary continue if inLen == 1: - inSeq = chr(self.sequences[i][eventPos+1]) + inSeq = self.sequences[i][eventPos+1] else: inSeq = str(self.sequences[i][eventPos+1:eventPos+inLen+1]) - refNucl = chr(self.sequences[i][eventPos]) + refNucl = self.sequences[i][eventPos] myIndel = (eventPos,refNucl+inSeq,refNucl) # if event too close to boundary, skip. if event conflicts with other indel, skip. @@ -389,8 +391,8 @@ def random_mutations(self): if eventPos == -1: continue - refNucl = chr(self.sequences[i][eventPos]) - context = str(chr(self.sequences[i][eventPos-1])+chr(self.sequences[i][eventPos+1])) + refNucl = self.sequences[i][eventPos] + context = str(self.sequences[i][eventPos-1])+chr(self.sequences[i][eventPos+1]) # sample from tri-nucleotide substitution matrices to get SNP alt allele newNucl = self.models[i][6][TRI_IND[context]][NUC_IND[refNucl]].sample() mySNP = (eventPos,refNucl,newNucl) @@ -409,11 +411,11 @@ def random_mutations(self): for j in range(len(all_snps[i])): vPos = all_snps[i][j][0] - if all_snps[i][j][1] != chr(self.sequences[i][vPos]): - print('\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]), '\n') + if all_snps[i][j][1] != self.sequences[i][vPos]: + print('\nError: Something went wrong!\n', all_snps[i][j], self.sequences[i][vPos], '\n') exit(1) else: - self.sequences[i][vPos] = ord(all_snps[i][j][2]) + self.sequences[i][vPos] = all_snps[i][j][2] # organize the indels we want to insert for i in range(len(all_indels)): From b89d704e753800912832690fd9c2c8a0dcac4051 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 25 Mar 2020 10:31:20 -0500 Subject: [PATCH 013/323] Merged online changes with local --- py/SequenceContainer.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index fc3d7a7..ab8cec7 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -6,12 +6,9 @@ import numpy as np from Bio.Seq import Seq from Bio.Alphabet import IUPAC -<<<<<<< HEAD -======= from Bio import SeqIO import gzip from Bio.bgzf import * ->>>>>>> 90f96d0f63b7bc485f6739690e6d8aa9680902e1 from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -54,11 +51,7 @@ def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): self.x = xOffset self.ploidy = ploidy self.readLen = readLen -<<<<<<< HEAD self.sequences = [Seq(sequence, IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] -======= - self.sequences = [Seq(sequence).tomutable() for n in range(self.ploidy)] ->>>>>>> 90f96d0f63b7bc485f6739690e6d8aa9680902e1 self.seqLen = len(sequence) self.indelList = [[] for n in range(self.ploidy)] self.snpList = [[] for n in range(self.ploidy)] @@ -420,15 +413,10 @@ def random_mutations(self): for j in range(len(all_snps[i])): vPos = all_snps[i][j][0] -<<<<<<< HEAD if all_snps[i][j][1] != self.sequences[i][vPos]: print('\nError: Something went wrong!\n', all_snps[i][j], self.sequences[i][vPos], '\n') -======= - if all_snps[i][j][1] != chr(self.sequences[i][vPos]): print(all_snps[i][j]) print(self.sequences[i][vPos]) - print('\nError: Something went wrong!\n', all_snps[i][j], chr(self.sequences[i][vPos]), '\n') ->>>>>>> 90f96d0f63b7bc485f6739690e6d8aa9680902e1 exit(1) else: self.sequences[i][vPos] = all_snps[i][j][2] From 8b5783e620dae95f73b1d32751035d1ca9a870f9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 27 Mar 2020 10:30:15 -0500 Subject: [PATCH 014/323] Converted a utility to python 3 (plutMutModel.py) --- py/refFunc.py | 2 +- utilities/computeFraglen.py | 1 + utilities/genMutModel.py | 8 ++++++-- utilities/plotMutModel.py | 5 +++-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/py/refFunc.py b/py/refFunc.py index aac3f0f..df0174a 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -4,7 +4,7 @@ import random from Bio.Seq import Seq from Bio.Alphabet import IUPAC -from Bio.bgzf import * +# from Bio.bgzf import * # Index reference fasta diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index f3715a1..96f3780 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -7,6 +7,7 @@ # Usage: samtools view normal.bam | python computeFraglen.py # # +# Python 3 ready import sys import fileinput diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 12ef023..f448660 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -12,7 +12,7 @@ SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) sys.path.append(SIM_PATH+'/py/') -from py.refFunc import indexRef +from refFunc import indexRef REF_WHITELIST = [str(n) for n in range(1,30)] + ['x','y','X','Y','mt','Mt','MT'] REF_WHITELIST += ['chr'+n for n in REF_WHITELIST] @@ -38,6 +38,7 @@ def getChrFromFasta(refPath,ref_inds,chrName): myDat = ''.join(refFile.read(ref_inds_i[2]-ref_inds_i[1]).split('\n')) return myDat + # cluster a sorted list def clusterList(l,delta): outList = [[l[0]]] @@ -53,6 +54,7 @@ def clusterList(l,delta): prevVal = n return outList + def list_2_countDict(l): cDict = {} for n in l: @@ -61,6 +63,7 @@ def list_2_countDict(l): cDict[n] += 1 return cDict + def getBedTracks(fn): f = open(fn,'r') trackDict = {} @@ -72,6 +75,7 @@ def getBedTracks(fn): f.close() return trackDict + def getTrackLen(trackDict): totSum = 0 for k in trackDict.keys(): @@ -142,7 +146,7 @@ def isInBed(track,ind): MYBED = (getBedTracks(args.bi),True) elif args.be != None: print('only considering variants outside of specified bed regions...') -MYBED = (getBedTracks(args.be),False) + MYBED = (getBedTracks(args.be),False) if TSV[-4:] == '.vcf': IS_VCF = True diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 57c838b..7a70693 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -5,6 +5,7 @@ # # python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix # +# Python 3 ready import sys import pickle @@ -90,7 +91,7 @@ def getBedOverlap(track, ind_s, ind_e): for fn in INP: myCol = getColor(colorInd, N_FILES) colorInd += 1 - DATA_DICT = pickle.load(open(fn, "rb")) + DATA_DICT = pickle.load(open(fn, "rb"), encoding="utf-8") [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] mpl.bar([colorInd - 1], [AVG_MUT_RATE], 1., color=myCol) mpl.xlim([-1, N_FILES + 1]) @@ -104,7 +105,7 @@ def getBedOverlap(track, ind_s, ind_e): for fn in INP: myCol = getColor(colorInd, N_FILES) colorInd += 1 - DATA_DICT = pickle.load(open(fn, "rb")) + DATA_DICT = pickle.load(open(fn, "rb"), encoding='utf-8') [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] mpl.bar([colorInd - 1], [SNP_FREQ], 1., color=myCol) mpl.bar([colorInd - 1], [1. - SNP_FREQ], 1., color=myCol, bottom=[SNP_FREQ], hatch='/') From 024e65faad4c7b81d400af67d7c96849a113b1b9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 27 Mar 2020 11:33:48 -0500 Subject: [PATCH 015/323] computeGC.py checked for python 3 compatability --- utilities/computeGC.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/utilities/computeGC.py b/utilities/computeGC.py index 5f4294d..1cc0b15 100644 --- a/utilities/computeGC.py +++ b/utilities/computeGC.py @@ -6,13 +6,12 @@ # Takes output file from bedtools genomecov to generate GC/coverage model # # Usage: bedtools genomecov -d -ibam input.bam -g reference.fa > genomeCov.dat -# python computeGC.py -r reference.fa -i genomeCov.dat -W [sliding window length] -o output_name.p -# +# python computeGC.py -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p # # +# Python 3 ready import time -import sys import argparse import numpy as np import pickle From 7690877b4fdd5c5377504f3cf6844e62079d1234 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 30 Mar 2020 10:17:38 -0500 Subject: [PATCH 016/323] Checking python 3 compatability of validateBam.py and validateFQ.py --- utilities/validateBam.py | 4 +++- utilities/validateFQ.py | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/utilities/validateBam.py b/utilities/validateBam.py index 97c777c..9c164f7 100644 --- a/utilities/validateBam.py +++ b/utilities/validateBam.py @@ -1,5 +1,7 @@ #!/usr/bin/env python +# Python 3 ready + import sys import os import gzip @@ -33,7 +35,7 @@ def getBytes(fmt, amt): IN_BAM = sys.argv[1] f = open(IN_BAM, 'rb') f.seek(os.path.getsize(IN_BAM) - 28) -EOF = [format(ord(n), '02x') for n in f.read()] +EOF = [format(n, '02x') for n in f.read()] print('EOF_MARKER: ', ' '.join(EOF)) if EOF != BAM_EOF: print('\nWARNING: BAM EOF DOES NOT MATCH EXPECTED STRING.\n') diff --git a/utilities/validateFQ.py b/utilities/validateFQ.py index 047d7f2..bc2db60 100644 --- a/utilities/validateFQ.py +++ b/utilities/validateFQ.py @@ -5,6 +5,7 @@ # # python validateFQ.py read1.fq [read2.fq] # +# Python 3 ready import sys From 83a85db872a4848b3b210d20cafb5fbb9c5056b6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 30 Mar 2020 11:05:20 -0500 Subject: [PATCH 017/323] Preparing vcf_compare_OLD.py for python 3 compatability --- utilities/vcf_compare_OLD.py | 63 +++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 29 deletions(-) diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index fa9d061..acdced3 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -1,6 +1,8 @@ #!/usr/bin/env python # encoding: utf-8 +# Python 3 ready + """ ************************************************** vcf_compare.py @@ -14,7 +16,6 @@ ************************************************** """ import sys -import os import copy import time import bisect @@ -22,6 +23,9 @@ import numpy as np import optparse +from Bio.Seq import Seq +from Bio.Alphabet import IUPAC + EV_BPRANGE = 50 # how far to either side of a particular variant location do we want to check for equivalents? DEFAULT_QUAL = -666 # if we can't find a qual score, use this instead so we know it's missing @@ -79,33 +83,33 @@ PARSER.print_help() exit(1) -if OPTS.MTRL != None: +if OPTS.MTRL is not None: MINREGIONLEN = int(OPTS.MTRL) else: MINREGIONLEN = None -if MIN_READLEN == None: +if MIN_READLEN is None: MIN_READLEN = 0 else: MIN_READLEN = int(MIN_READLEN) -if REFERENCE == None: +if REFERENCE is None: print('Error: No reference provided.') exit(1) -if GOLDEN_VCF == None: +if GOLDEN_VCF is None: print('Error: No golden VCF provided.') exit(1) -if WORKFLOW_VCF == None: +if WORKFLOW_VCF is None: print('Error: No workflow VCF provided.') exit(1) -if OUT_PREFIX == None: +if OUT_PREFIX is None: print('Error: No output prefix provided.') exit(1) -if (BEDFILE != None and MINREGIONLEN == None) or (BEDFILE == None and MINREGIONLEN != None): +if (BEDFILE is not None and MINREGIONLEN is None) or (BEDFILE is None and MINREGIONLEN is not None): print('Error: Both -t and -T must be specified') exit(1) -if NO_PLOT == False: +if NO_PLOT is False: import matplotlib matplotlib.use('Agg') @@ -164,7 +168,7 @@ def parseLine(splt, colDict, colSamp): if ':' + dp_tok + ':' in format: dpInd = format.split(':').index(dp_tok) cov = int(splt[colSamp[0]].split(':')[dpInd]) - if cov != None: + if cov is not None: break # check INFO for AF first @@ -179,7 +183,7 @@ def parseLine(splt, colDict, colSamp): afInd = splt[colDict['FORMAT']].split(':').index('AF') af = splt[colSamp[0]].split(':')[afInd] - if af != None: + if af is not None: af_splt = af.split(',') while (len(af_splt) < len(alt_alleles)): # are we lacking enough AF values for some reason? af_splt.append(af_splt[-1]) # phone it in. @@ -223,10 +227,10 @@ def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): if targInd % 2 == 1: targLen = targRegionsFl[targInd] - targRegionsFl[targInd - 1] - if (BEDFILE != None and targLen >= MINREGIONLEN) or BEDFILE == None: + if (BEDFILE is not None and targLen >= MINREGIONLEN) or BEDFILE is None: pl_out = parseLine(splt, colDict, colSamp) - if pl_out == None: + if pl_out is None: var_filtered += 1 continue (cov, qual, aa, af) = pl_out @@ -252,7 +256,7 @@ def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): else: v_Hashed[var] = 1 - if cov != None: + if cov is not None: v_Cov[var] = cov v_AF[var] = af[0] # only use first AF, even if multiple. fix this later? v_Qual[var] = qual @@ -276,7 +280,8 @@ def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): outFile.write(line) return ( - v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_TargLen, nBelowMinRLen, line_unique, var_filtered, var_merged, hash_coll) + v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_TargLen, nBelowMinRLen, line_unique, var_filtered, var_merged, + hash_coll) def condenseByPos(listIn): @@ -323,7 +328,7 @@ def main(): ref_inds.append((prevR, prevP, f.tell() - len(data))) break if data[0] == '>': - if prevP != None: + if prevP is not None: ref_inds.append((prevR, prevP, f.tell() - len(data))) prevP = f.tell() prevR = data[1:-1] @@ -342,7 +347,7 @@ def main(): zwF = 0 # total workflow variants that were filtered and excluded zwR = 0 # total workflow variants that were excluded for being redundant zwM = 0 # total workflow variants that were merged into a single position - if BEDFILE != None: + if BEDFILE is not None: zbM = 0 mappability_vs_FN = {0: 0, @@ -358,7 +363,7 @@ def main(): mappability_tracks = {} # indexed by chr string (e.g. 'chr1'), has boolean array prevRef = '' relevantRegions = [] - if MAPTRACK != None: + if MAPTRACK is not None: mtf = open(MAPTRACK, 'r') for line in mtf: splt = line.strip().split('\t') @@ -436,14 +441,14 @@ def main(): print(i, len(myDat[i]), inWidth) exit(1) - myDat = bytearray(''.join(myDat)).upper() + myDat = Seq(''.join(myDat)).upper().tomutable() myLen = len(myDat) # # Parse relevant targeted regions # targRegionsFl = [] - if BEDFILE != None: + if BEDFILE is not None: bedfile = open(BEDFILE, 'r') for line in bedfile: splt = line.split('\t') @@ -480,9 +485,9 @@ def main(): for var in correctHashed.keys(): if var in workflowHashed or var[0] in solvedInds: correctHashed[var] = 2 - workflowHashed[var] = 2 + workflowHashed[var] = 20 solvedInds[var[0]] = True - for var in correctHashed.keys() + workflowHashed.keys(): + for var in list(correctHashed.keys()) + list(workflowHashed.keys()): if var[0] in solvedInds: correctHashed[var] = 2 workflowHashed[var] = 2 @@ -580,9 +585,9 @@ def main(): znP += nPerfect zfP += len(FPvariants) znF += len(notFound) - if FAST == False: + if FAST is False: znE += nEquiv - if BEDFILE != None: + if BEDFILE is not None: zbM += correctBelowMinRLen # @@ -596,7 +601,7 @@ def main(): noReason = True # mappability? - if MAPTRACK != None: + if MAPTRACK is not None: if refName in mappability_tracks and var[0] < len(mappability_tracks[refName]): if mappability_tracks[refName][var[0]]: mappability_vs_FN[1] += 1 @@ -608,7 +613,7 @@ def main(): # coverage? if var in correctCov: c = correctCov[var] - if c != None: + if c is not None: if c not in coverage_vs_FN: coverage_vs_FN[c] = 0 coverage_vs_FN[c] += 1 @@ -697,7 +702,7 @@ def main(): tstr1 = 'False Negative Variants (Missed Detections)' # tstr2 = str(nDetected)+' / '+str(znF)+' FN variants categorized' tstr2 = '' - if MAPTRACK != None: + if MAPTRACK is not None: v = venn3([set1, set2, set3], (s1, s2, s3)) else: v = venn2([set2, set3], (s2, s3)) @@ -712,7 +717,7 @@ def main(): # spit out results to console # print('\n**********************************\n') - if BEDFILE != None: + if BEDFILE is not None: print('ONLY CONSIDERING VARIANTS FOUND WITHIN TARGETED REGIONS\n\n') print('Total Golden Variants: ', ztV, '\t[', zgF, 'filtered,', zgM, 'merged,', zgR, 'redundant ]') print('Total Workflow Variants:', ztW, '\t[', zwF, 'filtered,', zwM, 'merged,', zwR, 'redundant ]') @@ -723,7 +728,7 @@ def main(): print('FP variants: ', zfP) # ,'({0:.2f}%)'.format(100.*float(zfP)/ztW) if FAST == False: print('\nNumber of equivalent variants denoted differently between the two vcfs:', znE) - if BEDFILE != None: + if BEDFILE is not None: print('\nNumber of golden variants located in targeted regions that were too small to be sampled from:', zbM) if FAST: print( From e1a01a8c54cc515252829d483dc9005e5bced3b1 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 30 Mar 2020 11:32:30 -0500 Subject: [PATCH 018/323] Update model software for python 3 --- py/refFunc.py | 14 -------------- utilities/genMutModel.py | 4 +++- utilities/genSeqErrorModel.py | 4 ++-- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/py/refFunc.py b/py/refFunc.py index df0174a..1672998 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -4,7 +4,6 @@ import random from Bio.Seq import Seq from Bio.Alphabet import IUPAC -# from Bio.bgzf import * # Index reference fasta @@ -58,19 +57,6 @@ def indexRef(refPath): print('{0:.3f} (sec)'.format(time.time() - tt)) return ref_inds - -# -# Read in sequence data from reference fasta -# -# N_unknowns = True --> all ambiguous characters will be treated as Ns -# N_handling = (mode,params) -# - ('random',read/frag len) --> all regions of Ns smaller than read or fragment -# length (whichever is bigger) will be replaced -# with uniformly random nucleotides -# - ('allChr',read/frag len, chr) --> same as above, but replaced instead with a string -# of 'chr's -# - ('ignore') --> do not alter nucleotides in N regions -# def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index f448660..a105473 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -1,5 +1,7 @@ #!/usr/bin/env python +# Python 3 ready + import sys import os import re @@ -158,7 +160,7 @@ def isInBed(track,ind): ##################################### -# main() # +# main() #c ##################################### diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index dfd2680..867c975 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -9,12 +9,12 @@ # Usage: python genSeqErrorModel.py -i input_reads.fq -o path/to/output_name.p # # +# Python 3 ready import os import sys import gzip -import random import numpy as np import argparse import pickle @@ -23,7 +23,7 @@ SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' sys.path.append(SIM_PATH) -from py.probability import DiscreteDistribution +from probability import DiscreteDistribution def parseFQ(inf): From 792cf6b9c2de816bcabf3d786a37a5afe093e9db Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 30 Mar 2020 13:09:28 -0500 Subject: [PATCH 019/323] cleaning up functions --- py/refFunc.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/py/refFunc.py b/py/refFunc.py index 1672998..58aca20 100644 --- a/py/refFunc.py +++ b/py/refFunc.py @@ -4,6 +4,7 @@ import random from Bio.Seq import Seq from Bio.Alphabet import IUPAC +# from Bio.bgzf import * # Index reference fasta @@ -57,6 +58,7 @@ def indexRef(refPath): print('{0:.3f} (sec)'.format(time.time() - tt)) return ref_inds + def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] From 1318d8a26f279d0164f36b056972bad21b1a43e3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 30 Mar 2020 15:30:09 -0500 Subject: [PATCH 020/323] minor updates to sequence container --- genReads.py | 2 +- py/SequenceContainer.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/genReads.py b/genReads.py index 3d15f07..7571aad 100644 --- a/genReads.py +++ b/genReads.py @@ -25,7 +25,7 @@ import numpy as np import argparse -from py.inputChecking import requiredField, checkFileOpen, checkDir, isInRange +from py.inputChecking import requiredField, checkFileOpen, isInRange from py.refFunc import indexRef, readRef, getAllRefRegions, partitionRefRegions from py.vcfFunc import parseVCF from py.OutputFileWriter import OutputFileWriter diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index ab8cec7..b9a0435 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -662,7 +662,7 @@ def __init__(self, readLen, errorModel, reScaledError): self.readLen = readLen - errorDat = pickle.load(open(errorModel,'rb'), encoding='bytes') + errorDat = pickle.load(open(errorModel, 'rb'), encoding='latin1') self.UNIFORM = False if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True From 2748272383994e52920f5196c4943882e494a0af Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 9 Apr 2020 21:51:17 -0500 Subject: [PATCH 021/323] Updates to python 3 compatability --- genReads.py | 3 ++- py/SequenceContainer.py | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/genReads.py b/genReads.py index 7571aad..5a23798 100644 --- a/genReads.py +++ b/genReads.py @@ -505,7 +505,8 @@ def main(): newPercent = int((currentProgress * 100) / float(total_bp_span)) if newPercent > currentPercent: if newPercent <= 99 or (newPercent == 100 and not havePrinted100): - sys.stdout.write(str(newPercent) + '% ') + if newPercent % 5 == 0: + sys.stdout.write(str(newPercent) + '% ') sys.stdout.flush() currentPercent = newPercent if currentPercent == 100: diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index b9a0435..89b9c79 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -7,8 +7,8 @@ from Bio.Seq import Seq from Bio.Alphabet import IUPAC from Bio import SeqIO -import gzip -from Bio.bgzf import * +# import gzip +# from Bio.bgzf import * from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -51,7 +51,7 @@ def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): self.x = xOffset self.ploidy = ploidy self.readLen = readLen - self.sequences = [Seq(sequence, IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] + self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] self.seqLen = len(sequence) self.indelList = [[] for n in range(self.ploidy)] self.snpList = [[] for n in range(self.ploidy)] @@ -228,7 +228,7 @@ def init_trinucBias(self): self.trinuc_bias = [None for n in range(self.ploidy)] for p in range(self.ploidy): for i in range(self.winBuffer+1,self.seqLen-1): - trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[self.sequences[p][i-1:i+2].decode()]] + trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seqLen-1],range(self.winBuffer+1,self.seqLen-1)) def update(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None): @@ -394,7 +394,7 @@ def random_mutations(self): continue refNucl = self.sequences[i][eventPos] - context = str(self.sequences[i][eventPos-1])+chr(self.sequences[i][eventPos+1]) + context = str(self.sequences[i][eventPos-1])+str(self.sequences[i][eventPos+1]) # sample from tri-nucleotide substitution matrices to get SNP alt allele newNucl = self.models[i][6][TRI_IND[context]][NUC_IND[refNucl]].sample() mySNP = (eventPos,refNucl,newNucl) @@ -623,7 +623,7 @@ def sample_read(self, sequencingModel, fragLen=None): # insert insertion error into read and update cigar string accordingly else: myadj = sse_adj[ePos] - if chr(r[3][ePos+myadj]) == error[3]: + if str(r[3][ePos+myadj]) == error[3]: r[3] = r[3][:ePos+myadj] + error[4] + r[3][ePos+myadj+1:] expandedCigar = expandedCigar[:ePos+myadj] + ['I']*eLen + expandedCigar[ePos+myadj:] else: @@ -635,7 +635,7 @@ def sample_read(self, sequencingModel, fragLen=None): sse_adj[i] += eLen else: # substitution errors, much easier by comparison... - if chr(r[3][ePos+sse_adj[ePos]]) == error[3]: + if str(r[3][ePos+sse_adj[ePos]]) == error[3]: r[3][ePos+sse_adj[ePos]] = error[4] else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') @@ -648,7 +648,7 @@ def sample_read(self, sequencingModel, fragLen=None): r[3] = r[3][:self.readLen] - rOut.append([self.FM_pos[myPloid][r[0]], myCigar, r[3].decode(), str(r[1])]) + rOut.append([self.FM_pos[myPloid][r[0]], myCigar, str(r[3]), str(r[1])]) # rOut[i] = (pos, cigar, read_string, qual_string) return rOut @@ -662,7 +662,7 @@ def __init__(self, readLen, errorModel, reScaledError): self.readLen = readLen - errorDat = pickle.load(open(errorModel, 'rb'), encoding='latin1') + errorDat = pickle.load(open(errorModel, 'rb'), encoding="bytes") self.UNIFORM = False if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True @@ -788,18 +788,18 @@ def getSequencingErrors(self, readData, isReverseStrand=False): # errorOut = (type, len, pos, ref, alt) if isSub: # insert substitution error - myNucl = chr(readData[ind]) + myNucl = str(readData[ind]) newNucl = self.errSSE[NUC_IND[myNucl]].sample() sOut.append(('S',1,ind,myNucl,newNucl)) else: # insert indel error indelLen = self.errSIE.sample() if random.random() < self.errP[4]: # insertion error - myNucl = chr(readData[ind]) + myNucl = str(readData[ind]) newNucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) sOut.append(('I',len(newNucl)-1,ind,myNucl,newNucl)) elif ind < self.readLen-2-nDelSoFar: # deletion error (prevent too many of them from stacking up) myNucl = str(readData[ind:ind+indelLen+1]) - newNucl = chr(readData[ind]) + newNucl = str(readData[ind]) nDelSoFar += len(myNucl)-1 sOut.append(('D',len(myNucl)-1,ind,myNucl,newNucl)) for i in range(ind+1,ind+indelLen+1): From 40abc841a0b7efa11cd6d0c20ab12946f571ce34 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 20 Apr 2020 09:59:24 -0500 Subject: [PATCH 022/323] Some minor bug fixes for python3 --- genReads.py | 6 +++--- py/SequenceContainer.py | 7 ++----- utilities/genSeqErrorModel.py | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/genReads.py b/genReads.py index 5a23798..548b7e3 100644 --- a/genReads.py +++ b/genReads.py @@ -435,7 +435,7 @@ def main(): for i in range(len(N_regions['non_N'])): (pi, pf) = N_regions['non_N'][i] - nTargWindows = max([1, (pf - pi) / targSize]) + nTargWindows = max([1, (pf - pi) // targSize]) bpd = int((pf - pi) / float(nTargWindows)) # bpd += GC_WINDOW_SIZE - bpd%GC_WINDOW_SIZE @@ -706,9 +706,9 @@ def main(): else: print('') if ONLY_VCF: - print('VCF generation completed in', end='') + print('VCF generation completed in ', end='') else: - print('Read sampling completed in', end='') + print('Read sampling completed in ', end='') print(int(time.time() - tt), '(sec)') # write all output variants for this reference diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 89b9c79..8c0b5a3 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -6,9 +6,6 @@ import numpy as np from Bio.Seq import Seq from Bio.Alphabet import IUPAC -from Bio import SeqIO -# import gzip -# from Bio.bgzf import * from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -432,7 +429,7 @@ def random_mutations(self): rollingAdj = 0 tempSymbolString = ['M' for n in self.sequences[i]] # there's an off-by-one error somewhere in the position sampling routines.. this might fix it - tempSymbolString.append('M') + # tempSymbolString.append('M') for j in range(len(all_indels_ins[i])): vPos = all_indels_ins[i][j][0] + rollingAdj vPos2 = vPos + len(all_indels_ins[i][j][1]) @@ -701,7 +698,7 @@ def __init__(self, readLen, errorModel, reScaledError): print('Warning: Quality scores no longer exactly representative of error probability. ' 'Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale)) - if self.UNIFORM == False: + if not self.UNIFORM: # adjust length to match desired read length if self.readLen == len(initQ1): self.qIndRemap = range(self.readLen) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 867c975..3013295 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -78,7 +78,7 @@ def parseFQ(inf): continue for i in range(len(data4) - 1): - q = ord(data4[i]) - offQ + q = ord(str(data4[i])) - offQ qDict[q] = True if i == 0: priorQ[i][q] += 1 From bd384687063933c3c93076f669eeec565576e608 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 20 Apr 2020 10:00:26 -0500 Subject: [PATCH 023/323] Some minor bug fixes for python3 --- utilities/genSeqErrorModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 3013295..95439a5 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -78,7 +78,7 @@ def parseFQ(inf): continue for i in range(len(data4) - 1): - q = ord(str(data4[i])) - offQ + q = ord(chr(data4[i])) - offQ qDict[q] = True if i == 0: priorQ[i][q] += 1 From 4266b41f6b13653c2bf7262e38dbf6b734b291c7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 22 Apr 2020 10:31:18 -0500 Subject: [PATCH 024/323] Patch to a bug I was encountering --- py/SequenceContainer.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 8c0b5a3..7eddee8 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -77,6 +77,9 @@ def init_coverage(self, coverageDat, fragDist=None): avg_out = [] for i in range(len(self.sequences)): max_coord = min([len(self.sequences[i])-self.readLen, len(self.allCigar[i])-self.readLen]) + # Trying to fix a problem wherein the above line gives a negative answer + if max_coord <= 0: + max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): @@ -89,7 +92,7 @@ def init_coverage(self, coverageDat, fragDist=None): trCov_vals[i].append(targetCov_vals[0]) prevVal = self.FM_pos[i][0] for j in range(1,max_coord): - if self.FM_pos[i][j] == None: + if self.FM_pos[i][j] is None: trCov_vals[i].append(targetCov_vals[prevVal]) elif self.FM_span[i][j]-self.FM_pos[i][j] <= 1: trCov_vals[i].append(targetCov_vals[prevVal]) From 62f63825fabeb578ed5980532e597e939077641a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 22 Apr 2020 14:44:47 -0500 Subject: [PATCH 025/323] eliminated an unnecessary import --- genReads.py | 3 +-- py/probability.py | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/genReads.py b/genReads.py index 548b7e3..684b624 100644 --- a/genReads.py +++ b/genReads.py @@ -505,8 +505,7 @@ def main(): newPercent = int((currentProgress * 100) / float(total_bp_span)) if newPercent > currentPercent: if newPercent <= 99 or (newPercent == 100 and not havePrinted100): - if newPercent % 5 == 0: - sys.stdout.write(str(newPercent) + '% ') + sys.stdout.write(str(newPercent) + '% ') sys.stdout.flush() currentPercent = newPercent if currentPercent == 100: diff --git a/py/probability.py b/py/probability.py index 699a966..f7d0355 100644 --- a/py/probability.py +++ b/py/probability.py @@ -1,4 +1,3 @@ -import math import random import bisect import copy From 2d0fa6ea504dfa94fc334cef85644e0d72095022 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 27 Apr 2020 11:39:48 -0500 Subject: [PATCH 026/323] Minor changes to Sequence Container --- py/SequenceContainer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 7eddee8..a5873d4 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -78,8 +78,8 @@ def init_coverage(self, coverageDat, fragDist=None): for i in range(len(self.sequences)): max_coord = min([len(self.sequences[i])-self.readLen, len(self.allCigar[i])-self.readLen]) # Trying to fix a problem wherein the above line gives a negative answer - if max_coord <= 0: - max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) + # if max_coord <= 0: + # max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): From 7c17cfe8a57a0109da3322df25eaeea6be891372 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 27 Apr 2020 11:40:08 -0500 Subject: [PATCH 027/323] Minor changes to Sequence Container --- py/SequenceContainer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index a5873d4..926cd2c 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -78,9 +78,9 @@ def init_coverage(self, coverageDat, fragDist=None): for i in range(len(self.sequences)): max_coord = min([len(self.sequences[i])-self.readLen, len(self.allCigar[i])-self.readLen]) # Trying to fix a problem wherein the above line gives a negative answer - # if max_coord <= 0: - # max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) - # compute gc-bias + if max_coord <= 0: + max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) + compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): gc_c = self.sequences[i][j:j+self.windowSize].count('G') + self.sequences[i][j:j+self.windowSize].count('C') From 2830f6387f1aee27b597554407b14fde0d5aa57e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 27 Apr 2020 11:40:34 -0500 Subject: [PATCH 028/323] Minor changes to Sequence Container --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 926cd2c..7eddee8 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -80,7 +80,7 @@ def init_coverage(self, coverageDat, fragDist=None): # Trying to fix a problem wherein the above line gives a negative answer if max_coord <= 0: max_coord = min([len(self.sequences[i]), len(self.allCigar[i])]) - compute gc-bias + # compute gc-bias j = 0 while j+self.windowSize < len(self.sequences[i]): gc_c = self.sequences[i][j:j+self.windowSize].count('G') + self.sequences[i][j:j+self.windowSize].count('C') From 2b7833f630dee5a35c6461bf015ddc347194ccb2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 1 May 2020 11:37:54 -0500 Subject: [PATCH 029/323] a few minor changes --- utilities/computeFraglen.py | 111 ++++++++++++++++++++---------------- 1 file changed, 62 insertions(+), 49 deletions(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 96f3780..cf4c5ef 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -18,72 +18,85 @@ FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median - -def quick_median(countDict): - midPoint = sum(countDict.values()) / 2 +def quick_median(count_dict): + midPoint = sum(count_dict.values()) // 2 mySum = 0 myInd = 0 - sk = sorted(countDict.keys()) + sk = sorted(count_dict.keys()) while mySum < midPoint: - mySum += countDict[sk[myInd]] + mySum += count_dict[sk[myInd]] if mySum >= midPoint: break myInd += 1 return myInd -def median_deviation_from_median(countDict): - myMedian = quick_median(countDict) +def median_deviation_from_median(count_dict): + myMedian = quick_median(count_dict) deviations = {} - for k in sorted(countDict.keys()): + for k in sorted(count_dict.keys()): d = abs(k - myMedian) - deviations[d] = countDict[k] + deviations[d] = count_dict[k] return quick_median(deviations) -if len(sys.argv) != 1: - print("Usage: samtools view normal.bam | python computeFraglen.py") - exit(1) +def count_frags(file: str) -> dict: + count_dict = {} + PRINT_EVERY = 100000 + i = 0 + for line in fileinput.input(): + # Skip all comments and headers + if line[0] == '#' or line[0] == '@': + continue + splt = line.strip().split('\t') + samFlag = int(splt[1]) + myRef = splt[2] + mapQual = int(splt[4]) + mateRef = splt[6] + myTlen = abs(int(splt[8])) + + # if read is paired, and is first in pair, and is confidently mapped... + if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: + # and mate is mapped to same reference + if mateRef == '=' or mateRef == myRef: + if myTlen not in count_dict: + count_dict[myTlen] = 0 + count_dict[myTlen] += 1 + i += 1 + if i % PRINT_EVERY == 0: + print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) + return count_dict + -all_tlens = {} -PRINT_EVERY = 100000 -BREAK_AFTER = 1000000 -i = 0 -for line in fileinput.input(): - splt = line.strip().split('\t') - samFlag = int(splt[1]) - myRef = splt[2] - mapQual = int(splt[4]) - mateRef = splt[6] - myTlen = abs(int(splt[8])) +def compute_probs(count_dict: dict) -> (list, list): + values = [] + probabilities = [] + med = quick_median(count_dict) + mdm = median_deviation_from_median(count_dict) - if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: # if read is paired, and is first in pair, and is confidently mapped... - if mateRef == '=' or mateRef == myRef: # and mate is mapped to same reference - if myTlen not in all_tlens: - all_tlens[myTlen] = 0 - all_tlens[myTlen] += 1 - i += 1 - if i % PRINT_EVERY == 0: - print('---', i, quick_median(all_tlens), median_deviation_from_median(all_tlens)) - # for k in sorted(all_tlens.keys()): - # print k, all_tlens[k] + for k in sorted(count_dict.keys()): + if k > 0 and k < med + FILTER_MEDDEV_M * mdm: + if count_dict[k] >= FILTER_MINREADS: + print(k, count_dict[k]) + values.append(k) + probabilities.append(count_dict[k]) + countSum = float(sum(probabilities)) + probabilities = [n / countSum for n in probabilities] + return values, probabilities - # if i > BREAK_AFTER: - # break +def main(): + # TODO implement a more robust checking + if len(sys.argv) > 2: + print("Usage: samtools view normal.bam | python computeFraglen.py") + print("Usage: python computeFraglen.py normal.sam") + exit(1) -med = quick_median(all_tlens) -mdm = median_deviation_from_median(all_tlens) + all_tlens = count_frags(sys.arv[1]) + print('\nsaving model...') + out_vals, out_probs = compute_probs(all_tlens) + print(out_probs) + pickle.dump([out_vals, out_probs], open('fraglen.p', 'wb')) -outVals = [] -outProbs = [] -for k in sorted(all_tlens.keys()): - if k > 0 and k < med + FILTER_MEDDEV_M * mdm: - if all_tlens[k] >= FILTER_MINREADS: - print(k, all_tlens[k]) - outVals.append(k) - outProbs.append(all_tlens[k]) -countSum = float(sum(outProbs)) -outProbs = [n / countSum for n in outProbs] -print('\nsaving model...') -pickle.dump([outVals, outProbs], open('fraglen.p', 'wb')) +if __name__ == "__main()": + main() From 57593c58897fa85c650328c0685a907252972d91 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 1 May 2020 11:50:19 -0500 Subject: [PATCH 030/323] Bug fix for reading mut models' --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 7eddee8..62fc636 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -872,7 +872,7 @@ def parseInputMutationModel(model=None, whichDefault=1): trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] which_have_we_seen = {n:False for n in ALL_TRI} - trinuc_mean = np.mean(trinuc_mut_prob.values()) + trinuc_mean = np.mean(list(trinuc_mut_prob.values())) for trinuc in trinuc_mut_prob.keys(): outModel[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] which_have_we_seen[trinuc] = True From 4a3178dfcb347654c89d4d6b7da62eb2107b6478 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 1 May 2020 13:36:21 -0500 Subject: [PATCH 031/323] fixing some byte issues in outputfilewriter.py --- py/OutputFileWriter.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 35e0665..435ec1d 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -190,7 +190,7 @@ def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, mate if seqLen & 1: seq += '=' for i in range(encodedLen): - print(seq[2*i], seq[2*i+1]) + # print(seq[2*i], seq[2*i+1]) encodedSeq.extend(pack('= BUFFER_BATCH_SIZE or len(self.bam_buffer) >= BUFFER_BATCH_SIZE) or ( @@ -257,7 +257,7 @@ def flushBuffers(self, bamMax=None, lastTime=False): ind_to_stop_at = i + 1 else: break - self.bam_file.write(''.join([n[2] for n in bam_data[:ind_to_stop_at]])) + self.bam_file.write(b''.join([n[2] for n in bam_data[:ind_to_stop_at]])) ####print 'BAM WRITING:',ind_to_stop_at,'/',len(bam_data) if ind_to_stop_at >= len(bam_data): self.bam_buffer = [] From e50b2c2dd05fe074164f21e8380e1ea63cc4e888 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 1 May 2020 13:46:54 -0500 Subject: [PATCH 032/323] fixing some byte issues in outputfilewriter.py --- py/OutputFileWriter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/OutputFileWriter.py b/py/OutputFileWriter.py index 435ec1d..2904292 100644 --- a/py/OutputFileWriter.py +++ b/py/OutputFileWriter.py @@ -246,7 +246,7 @@ def flushBuffers(self, bamMax=None, lastTime=False): if len(self.bam_buffer): bam_data = sorted(self.bam_buffer) if lastTime: - self.bam_file.write(''.join([n[2] for n in bam_data])) + self.bam_file.write(b''.join([n[2] for n in bam_data])) self.bam_buffer = [] else: ind_to_stop_at = 0 From f5af61c9db2b3d16b3320a11793b938c91f1f122 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Mon, 4 May 2020 13:39:07 -0500 Subject: [PATCH 033/323] Small bugfix in genSeqErrorModel.py --- utilities/genSeqErrorModel.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 95439a5..de16d1e 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -20,10 +20,10 @@ import pickle # absolute path to this script -SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' -sys.path.append(SIM_PATH) +# SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' +# sys.path.append(SIM_PATH) -from probability import DiscreteDistribution +from py.probability import DiscreteDistribution def parseFQ(inf): @@ -78,7 +78,7 @@ def parseFQ(inf): continue for i in range(len(data4) - 1): - q = ord(chr(data4[i])) - offQ + q = ord(data4[i]) - offQ qDict[q] = True if i == 0: priorQ[i][q] += 1 From 33d8a016c18a8c7fa321289d640c98ae361a9423 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Mon, 4 May 2020 14:55:24 -0500 Subject: [PATCH 034/323] Updating computeFraglen.py --- utilities/computeFraglen.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index cf4c5ef..02c44c4 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -9,10 +9,9 @@ # # Python 3 ready -import sys import fileinput import pickle -import numpy as np +import argparse FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it @@ -85,17 +84,20 @@ def compute_probs(count_dict: dict) -> (list, list): return values, probabilities def main(): - # TODO implement a more robust checking - if len(sys.argv) > 2: - print("Usage: samtools view normal.bam | python computeFraglen.py") - print("Usage: python computeFraglen.py normal.sam") - exit(1) + parser = argparse.ArgumentParser(description="computeFraglen.py") + parser.add_argument('-i', type=str, required=True, default=None, help="Sam file input (samtools view name.bam > name.sam") + parser.add_argument('-o', type=str, required=True, default=None, help="Prefix for output") - all_tlens = count_frags(sys.arv[1]) + args = parser.parse_args() + input_file = args.i + output_prefix = args.o + output = output_prefix + '.p' + + all_tlens = count_frags(input_file) print('\nsaving model...') out_vals, out_probs = compute_probs(all_tlens) print(out_probs) - pickle.dump([out_vals, out_probs], open('fraglen.p', 'wb')) + pickle.dump([out_vals, out_probs], open(output, 'wb')) if __name__ == "__main()": From 88abba53bae54e045dde0fe1acdf2135b2ce34b7 Mon Sep 17 00:00:00 2001 From: joshfactorial Date: Tue, 5 May 2020 05:12:06 -0500 Subject: [PATCH 035/323] updated argparse arguments for computeFraglen.py --- utilities/computeFraglen.py | 50 +++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 02c44c4..136cea1 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -43,27 +43,28 @@ def count_frags(file: str) -> dict: count_dict = {} PRINT_EVERY = 100000 i = 0 - for line in fileinput.input(): - # Skip all comments and headers - if line[0] == '#' or line[0] == '@': - continue - splt = line.strip().split('\t') - samFlag = int(splt[1]) - myRef = splt[2] - mapQual = int(splt[4]) - mateRef = splt[6] - myTlen = abs(int(splt[8])) - - # if read is paired, and is first in pair, and is confidently mapped... - if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: - # and mate is mapped to same reference - if mateRef == '=' or mateRef == myRef: - if myTlen not in count_dict: - count_dict[myTlen] = 0 - count_dict[myTlen] += 1 - i += 1 - if i % PRINT_EVERY == 0: - print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) + with open(file, 'r') as f: + for line in f: + # Skip all comments and headers + if line[0] == '#' or line[0] == '@': + continue + splt = line.strip().split('\t') + samFlag = int(splt[1]) + myRef = splt[2] + mapQual = int(splt[4]) + mateRef = splt[6] + myTlen = abs(int(splt[8])) + + # if read is paired, and is first in pair, and is confidently mapped... + if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: + # and mate is mapped to same reference + if mateRef == '=' or mateRef == myRef: + if myTlen not in count_dict: + count_dict[myTlen] = 0 + count_dict[myTlen] += 1 + i += 1 + if i % PRINT_EVERY == 0: + print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) return count_dict @@ -83,10 +84,11 @@ def compute_probs(count_dict: dict) -> (list, list): probabilities = [n / countSum for n in probabilities] return values, probabilities + def main(): parser = argparse.ArgumentParser(description="computeFraglen.py") - parser.add_argument('-i', type=str, required=True, default=None, help="Sam file input (samtools view name.bam > name.sam") - parser.add_argument('-o', type=str, required=True, default=None, help="Prefix for output") + parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") + parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") args = parser.parse_args() input_file = args.i @@ -100,5 +102,5 @@ def main(): pickle.dump([out_vals, out_probs], open(output, 'wb')) -if __name__ == "__main()": +if __name__ == "__main__": main() From a2130e2e3b324208e0efb9da1698a1339cbf56de Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 May 2020 13:42:04 -0500 Subject: [PATCH 036/323] playing at installing pysam for compute fraglen so it can read bams as well as sams --- utilities/computeFraglen.py | 50 +++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 136cea1..22dfa3f 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -12,12 +12,15 @@ import fileinput import pickle import argparse +import pysam -FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality -FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it -FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median -def quick_median(count_dict): +def quick_median(count_dict: dict) -> int: + """ + Finds the median of a counting dictionary + :param count_dict: the counting dictionary to find the median of + :return: integer index of the location of the median + """ midPoint = sum(count_dict.values()) // 2 mySum = 0 myInd = 0 @@ -30,7 +33,13 @@ def quick_median(count_dict): return myInd -def median_deviation_from_median(count_dict): +def median_deviation_from_median(count_dict: dict) -> int: + """ + calculates the deviation from the median of each element of counting dictionary, + then returns the median of that dictionary + :param count_dict: Counting dictionary to analyze + :return: index of median of the deviations + """ myMedian = quick_median(count_dict) deviations = {} for k in sorted(count_dict.keys()): @@ -40,6 +49,13 @@ def median_deviation_from_median(count_dict): def count_frags(file: str) -> dict: + """ + Takes a sam file input and creates a counting dictionary of the number of reads that are paired, + first in the pair, confidently mapped and whose pair is mapped to the same reference + :param file: A sam input file + :return: A dictionary of the counts of the above reads + """ + FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality count_dict = {} PRINT_EVERY = 100000 i = 0 @@ -69,13 +85,21 @@ def count_frags(file: str) -> dict: def compute_probs(count_dict: dict) -> (list, list): + """ + Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median + deviations from the median. + :param count_dict: A dictionary of fragments with counts + :return: A list of values that meet the criteria and a list of -their associated probabilities + """ + FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it + FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median values = [] probabilities = [] med = quick_median(count_dict) mdm = median_deviation_from_median(count_dict) for k in sorted(count_dict.keys()): - if k > 0 and k < med + FILTER_MEDDEV_M * mdm: + if 0 < k < med + FILTER_MEDDEV_M * mdm: if count_dict[k] >= FILTER_MINREADS: print(k, count_dict[k]) values.append(k) @@ -86,8 +110,20 @@ def compute_probs(count_dict: dict) -> (list, list): def main(): + """ + Main function takes 2 arguments: + input - a samfile input that can be formed by applying samtools to a bam file + in the follawing way: samtools view nameof.bam > nameof.sam + + output - the prefix of the output. The actual output will be the prefix plus ".p" at the end + for pickle file. The list of values and list of probabilities are dumped as a list of lists + into a pickle file on completion of the analysis + + :return: None + """ parser = argparse.ArgumentParser(description="computeFraglen.py") - parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") + parser.add_argument('-i', type=str, metavar="input", required=True, default=None, + help="Sam file input (samtools view name.bam > name.sam)") parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") args = parser.parse_args() From c93a6ab2181a892d7c80425621b96f305e5ef583 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 May 2020 15:43:24 -0500 Subject: [PATCH 037/323] added bam reading capability to computeFraglen.py --- utilities/computeFraglen.py | 53 +++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 23 deletions(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 22dfa3f..502fa80 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -9,7 +9,6 @@ # # Python 3 ready -import fileinput import pickle import argparse import pysam @@ -59,28 +58,36 @@ def count_frags(file: str) -> dict: count_dict = {} PRINT_EVERY = 100000 i = 0 - with open(file, 'r') as f: - for line in f: - # Skip all comments and headers - if line[0] == '#' or line[0] == '@': - continue - splt = line.strip().split('\t') - samFlag = int(splt[1]) - myRef = splt[2] - mapQual = int(splt[4]) - mateRef = splt[6] - myTlen = abs(int(splt[8])) - - # if read is paired, and is first in pair, and is confidently mapped... - if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: - # and mate is mapped to same reference - if mateRef == '=' or mateRef == myRef: - if myTlen not in count_dict: - count_dict[myTlen] = 0 - count_dict[myTlen] += 1 - i += 1 - if i % PRINT_EVERY == 0: - print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) + if file[-4:] == ".sam": + file_to_parse = open(file, 'r') + elif file[-4:] == ".bam": + file_to_parse = pysam.AlignmentFile(file, 'rb') + else: + print("Unknown file type, must be bam or sam") + exit(1) + + for item in file_to_parse: + line = str(item) + # Skip all comments and headers + if line[0] == '#' or line[0] == '@': + continue + splt = line.strip().split('\t') + samFlag = int(splt[1]) + myRef = splt[2] + mapQual = int(splt[4]) + mateRef = splt[6] + myTlen = abs(int(splt[8])) + + # if read is paired, and is first in pair, and is confidently mapped... + if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: + # and mate is mapped to same reference + if mateRef == '=' or mateRef == myRef: + if myTlen not in count_dict: + count_dict[myTlen] = 0 + count_dict[myTlen] += 1 + i += 1 + if i % PRINT_EVERY == 0: + print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) return count_dict From 84e93e82dd36a802885ba46dfa59a9ed0dddf58c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 May 2020 10:16:47 -0500 Subject: [PATCH 038/323] Added a comment to computeFraglen.py --- utilities/computeFraglen.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 502fa80..04d131d 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -58,6 +58,7 @@ def count_frags(file: str) -> dict: count_dict = {} PRINT_EVERY = 100000 i = 0 + # Check if the file is sam or bam and decide how to open based on that if file[-4:] == ".sam": file_to_parse = open(file, 'r') elif file[-4:] == ".bam": @@ -67,6 +68,7 @@ def count_frags(file: str) -> dict: exit(1) for item in file_to_parse: + # Need to convert bam iterable objects into strings for the next part line = str(item) # Skip all comments and headers if line[0] == '#' or line[0] == '@': From b26a527dfabb195889aa9cd14aee59d0ce4bc1ad Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 May 2020 10:25:13 -0500 Subject: [PATCH 039/323] Added a comment to computeFraglen.py --- utilities/computeFraglen.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/computeFraglen.py b/utilities/computeFraglen.py index 04d131d..89e9b6c 100644 --- a/utilities/computeFraglen.py +++ b/utilities/computeFraglen.py @@ -7,7 +7,7 @@ # Usage: samtools view normal.bam | python computeFraglen.py # # -# Python 3 ready +# Upgraded 5/6/2020 to match Python 3 standards and refactored for easier reading import pickle import argparse From fce987409603cf26e26ddcf9fe80de7be4363cd2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 May 2020 11:44:20 -0500 Subject: [PATCH 040/323] trying out seqio for reading the fasta in computeGC.py --- utilities/computeGC.py | 211 ++++++++++++++++++++++------------------- 1 file changed, 115 insertions(+), 96 deletions(-) diff --git a/utilities/computeGC.py b/utilities/computeGC.py index 1cc0b15..67126c2 100644 --- a/utilities/computeGC.py +++ b/utilities/computeGC.py @@ -15,99 +15,118 @@ import argparse import numpy as np import pickle - -parser = argparse.ArgumentParser(description='computeGC.py') -parser.add_argument('-i', type=str, required=True, metavar='', help="* input.genomecov") -parser.add_argument('-r', type=str, required=True, metavar='', help="* reference.fa") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") -parser.add_argument('-w', type=int, required=False, metavar='', help="sliding window length [50]", default=50) -args = parser.parse_args() - -(IN_GCB, REF_FILE, WINDOW_SIZE, OUT_P) = (args.i, args.r, args.w, args.o) - -GC_BINS = {n: [] for n in range(WINDOW_SIZE + 1)} - -print('reading ref...') -allRefs = {} -f = open(REF_FILE, 'r') -for line in f: - if line[0] == '>': - refName = line.strip()[1:] - allRefs[refName] = [] - print(refName) - # if refName == 'chr2': - # break - else: - allRefs[refName].append(line.strip()) -f.close() - -print('capitalizing ref...') -for k in sorted(allRefs.keys()): - print(k) - allRefs[k] = ''.join(allRefs[k]) - allRefs[k] = allRefs[k].upper() - -print('reading genomecov file...') -tt = time.time() -f = open(IN_GCB, 'r') -currentLine = 0 -currentRef = None -currentCov = 0 -linesProcessed = 0 -PRINT_EVERY = 1000000 -STOP_AFTER = 1000000 -for line in f: - splt = line.strip().split('\t') - if linesProcessed % PRINT_EVERY == 0: - print(linesProcessed) - linesProcessed += 1 - - # if linesProcessed > STOP_AFTER: - # break - - if currentLine == 0: - currentRef = splt[0] - sPos = int(splt[1]) - 1 - - if currentRef not in allRefs: - continue - - currentLine += 1 - currentCov += float(splt[2]) - - if currentLine == WINDOW_SIZE: - currentLine = 0 - seq = allRefs[currentRef][sPos:sPos + WINDOW_SIZE] - if 'N' not in seq: - gc_count = seq.count('G') + seq.count('C') - GC_BINS[gc_count].append(currentCov) - currentCov = 0 - -f.close() - -runningTot = 0 -allMean = 0.0 -for k in sorted(GC_BINS.keys()): - if len(GC_BINS[k]) == 0: - print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), 0.0, 0) - GC_BINS[k] = 0 - else: - myMean = np.mean(GC_BINS[k]) - myLen = len(GC_BINS[k]) - print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), myMean, myLen) - allMean += myMean * myLen - runningTot += myLen - GC_BINS[k] = myMean - -avgCov = allMean / float(runningTot) -print('AVERAGE COVERAGE =', avgCov) - -y_out = [] -for k in sorted(GC_BINS.keys()): - GC_BINS[k] /= avgCov - y_out.append(GC_BINS[k]) - -print('saving model...') -pickle.dump([range(WINDOW_SIZE + 1), y_out], open(OUT_P, 'wb')) - -print(time.time() - tt, '(sec)') +from Bio import SeqIO + + +def process_fasta(file: str) -> dict: + ref_dict = {} + + try: + ref_dict = SeqIO.to_dict(SeqIO.parse(file, 'fasta')) + # ref_dict = {rec.id: rec.seq for rec in SeqIO.parse(file, "fasta")} + except UnicodeDecodeError: + print("Input file incorrect: -r should specify the reference fasta") + exit(1) + + if not ref_dict: + print("Input file incorrect: -r should specify the reference fasta") + exit(1) + + return ref_dict + + +def capitalize_ref(input_dict: dict) -> dict: + for k in sorted(input_dict.keys()): + print("Capitalizing " + k) + input_dict[k] = ''.join(input_dict[k]) + input_dict[k] = input_dict[k].upper() + + +def main(): + parser = argparse.ArgumentParser(description='computeGC.py') + parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") + parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") + parser.add_argument('-o', type=str, required=True, metavar='output prefix', + help="prefix for output (/path/to/output)") + parser.add_argument('-w', type=int, required=False, metavar='sliding window', + help="sliding window length [50]", default=50) + args = parser.parse_args() + + (IN_GCB, REF_FILE, WINDOW_SIZE, OUT_P) = (args.i, args.r, args.w, args.o) + + GC_BINS = {n: [] for n in range(WINDOW_SIZE + 1)} + + print('reading ref...') + allrefs = process_fasta(REF_FILE) + + print('capitalizing ref...') + allrefs = capitalize_ref(allrefs) + + print('reading genomecov file...') + tt = time.time() + f = open(IN_GCB, 'r') + currentLine = 0 + currentRef = None + currentCov = 0 + linesProcessed = 0 + PRINT_EVERY = 1000000 + STOP_AFTER = 1000000 + for line in f: + splt = line.strip().split('\t') + if linesProcessed % PRINT_EVERY == 0: + print(linesProcessed) + linesProcessed += 1 + + # if linesProcessed > STOP_AFTER: + # break + + if currentLine == 0: + currentRef = splt[0] + sPos = int(splt[1]) - 1 + + if currentRef not in allrefs: + continue + + currentLine += 1 + currentCov += float(splt[2]) + + if currentLine == WINDOW_SIZE: + currentLine = 0 + seq = allrefs[currentRef][sPos:sPos + WINDOW_SIZE] + if 'N' not in seq: + gc_count = seq.count('G') + seq.count('C') + GC_BINS[gc_count].append(currentCov) + currentCov = 0 + + f.close() + + runningTot = 0 + allMean = 0.0 + for k in sorted(GC_BINS.keys()): + if len(GC_BINS[k]) == 0: + print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), 0.0, 0) + GC_BINS[k] = 0 + else: + myMean = np.mean(GC_BINS[k]) + myLen = len(GC_BINS[k]) + print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), myMean, myLen) + allMean += myMean * myLen + runningTot += myLen + GC_BINS[k] = myMean + + avgCov = allMean / float(runningTot) + print('AVERAGE COVERAGE =', avgCov) + + y_out = [] + for k in sorted(GC_BINS.keys()): + GC_BINS[k] /= avgCov + y_out.append(GC_BINS[k]) + + print('saving model...') + pickle.dump([range(WINDOW_SIZE + 1), y_out], open(OUT_P, 'wb')) + + print(time.time() - tt, '(sec)') + + +if __name__ == "__main__": + main() \ No newline at end of file From 97235d1cf3b9d1e2764ac25c1f63a1145fe7de39 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 May 2020 13:46:56 -0500 Subject: [PATCH 041/323] Brining computeGC.py up to python 3 standards --- utilities/computeGC.py | 157 +++++++++++++++++++++++------------------ 1 file changed, 88 insertions(+), 69 deletions(-) diff --git a/utilities/computeGC.py b/utilities/computeGC.py index 67126c2..2ca14c5 100644 --- a/utilities/computeGC.py +++ b/utilities/computeGC.py @@ -19,30 +19,98 @@ def process_fasta(file: str) -> dict: + """ + Takes a fasta file, converts it into a dictionary of upper case sequences. Does some basic error checking, + like the file is readable and the reference dictionary is not empty + :param file: path to a fasta file + :return: dictionary form of the sequences indexed by chromosome + """ ref_dict = {} try: - ref_dict = SeqIO.to_dict(SeqIO.parse(file, 'fasta')) - # ref_dict = {rec.id: rec.seq for rec in SeqIO.parse(file, "fasta")} + # reads in fasta file, converts sequence to upper case + ref_dict = {rec.id: rec.seq.upper() for rec in SeqIO.parse(file, "fasta")} except UnicodeDecodeError: + # if the file isn't readable, this exception should catch it print("Input file incorrect: -r should specify the reference fasta") exit(1) if not ref_dict: + # if the file was readable by SeqIO but wasn't a fasta file, this should catch it print("Input file incorrect: -r should specify the reference fasta") exit(1) return ref_dict -def capitalize_ref(input_dict: dict) -> dict: - for k in sorted(input_dict.keys()): - print("Capitalizing " + k) - input_dict[k] = ''.join(input_dict[k]) - input_dict[k] = input_dict[k].upper() +def process_genomecov(file: str, ref_dict: dict, window) -> dict: + + gc_bins = {n: [] for n in range(window + 1)} + + # variables needed to parse coverage file + current_line = 0 + current_ref = None + current_cov = 0 + lines_processed = 0 + print_every = 1000000 + + f = open(file, 'r') + for line in f: + splt = line.strip().split('\t') + if lines_processed % print_every == 0: + print(lines_processed) + lines_processed += 1 + if current_line == 0: + current_ref = splt[0] + sPos = int(splt[1]) - 1 + + if current_ref not in ref_dict: + continue + + current_line += 1 + current_cov += float(splt[2]) + + if current_line == window: + current_line = 0 + seq = str(ref_dict[current_ref][sPos:sPos + window]) + if 'N' not in seq: + gc_count = seq.count('G') + seq.count('C') + gc_bins[gc_count].append(current_cov) + current_cov = 0 + + f.close() + return gc_bins + + +def calculate_coverage(bin_dict: dict, window: int) -> float: + running_total = 0 + all_mean = 0.0 + for k in sorted(bin_dict.keys()): + if len(bin_dict[k]) == 0: + print('{0:0.2%}'.format(k / float(window)), 0.0, 0) + bin_dict[k] = 0 + else: + myMean = np.mean(bin_dict[k]) + myLen = len(bin_dict[k]) + print('{0:0.2%}'.format(k / float(window)), myMean, myLen) + all_mean += myMean * myLen + running_total += myLen + bin_dict[k] = myMean + + return all_mean / float(running_total) def main(): + """ + Reads in arguments and processes the inputs to a GC count for the sequence. + Parameters: + -i is the genome coverage input file + -r is the reference file + -o is the prefix for the output + -w is the sliding window length. The default is 50, but you can declare any reasonable integer + + :return: None + """ parser = argparse.ArgumentParser(description='computeGC.py') parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") @@ -52,81 +120,32 @@ def main(): help="sliding window length [50]", default=50) args = parser.parse_args() - (IN_GCB, REF_FILE, WINDOW_SIZE, OUT_P) = (args.i, args.r, args.w, args.o) + (in_gcb, ref_file, window_size, out_p) = (args.i, args.r, args.w, args.o) - GC_BINS = {n: [] for n in range(WINDOW_SIZE + 1)} - print('reading ref...') - allrefs = process_fasta(REF_FILE) - print('capitalizing ref...') - allrefs = capitalize_ref(allrefs) + print('Reading ref...') + allrefs = process_fasta(ref_file) - print('reading genomecov file...') tt = time.time() - f = open(IN_GCB, 'r') - currentLine = 0 - currentRef = None - currentCov = 0 - linesProcessed = 0 - PRINT_EVERY = 1000000 - STOP_AFTER = 1000000 - for line in f: - splt = line.strip().split('\t') - if linesProcessed % PRINT_EVERY == 0: - print(linesProcessed) - linesProcessed += 1 - - # if linesProcessed > STOP_AFTER: - # break - - if currentLine == 0: - currentRef = splt[0] - sPos = int(splt[1]) - 1 - - if currentRef not in allrefs: - continue - - currentLine += 1 - currentCov += float(splt[2]) - - if currentLine == WINDOW_SIZE: - currentLine = 0 - seq = allrefs[currentRef][sPos:sPos + WINDOW_SIZE] - if 'N' not in seq: - gc_count = seq.count('G') + seq.count('C') - GC_BINS[gc_count].append(currentCov) - currentCov = 0 - - f.close() + print('Reading genome coverage file...') + gc_bins = process_genomecov(in_gcb, allrefs, window_size) - runningTot = 0 - allMean = 0.0 - for k in sorted(GC_BINS.keys()): - if len(GC_BINS[k]) == 0: - print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), 0.0, 0) - GC_BINS[k] = 0 - else: - myMean = np.mean(GC_BINS[k]) - myLen = len(GC_BINS[k]) - print('{0:0.2%}'.format(k / float(WINDOW_SIZE)), myMean, myLen) - allMean += myMean * myLen - runningTot += myLen - GC_BINS[k] = myMean + print("Calculating average coverage") + average_coverage = calculate_coverage(gc_bins, window_size) - avgCov = allMean / float(runningTot) - print('AVERAGE COVERAGE =', avgCov) + print('AVERAGE COVERAGE =', average_coverage) y_out = [] - for k in sorted(GC_BINS.keys()): - GC_BINS[k] /= avgCov - y_out.append(GC_BINS[k]) + for k in sorted(gc_bins.keys()): + gc_bins[k] /= average_coverage + y_out.append(gc_bins[k]) print('saving model...') - pickle.dump([range(WINDOW_SIZE + 1), y_out], open(OUT_P, 'wb')) + pickle.dump([range(window_size + 1), y_out], open(out_p, 'wb')) print(time.time() - tt, '(sec)') if __name__ == "__main__": - main() \ No newline at end of file + main() From 0f90919fff329822f04c7c849a4a30a00d3f565d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 May 2020 10:01:49 -0500 Subject: [PATCH 042/323] Bringing computeGC.py up to python 3 standards --- utilities/computeGC.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/utilities/computeGC.py b/utilities/computeGC.py index 2ca14c5..c642dfd 100644 --- a/utilities/computeGC.py +++ b/utilities/computeGC.py @@ -9,7 +9,7 @@ # python computeGC.py -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p # # -# Python 3 ready +# Updated to Python 3 standards import time import argparse @@ -44,7 +44,6 @@ def process_fasta(file: str) -> dict: def process_genomecov(file: str, ref_dict: dict, window) -> dict: - gc_bins = {n: [] for n in range(window + 1)} # variables needed to parse coverage file @@ -57,8 +56,6 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: f = open(file, 'r') for line in f: splt = line.strip().split('\t') - if lines_processed % print_every == 0: - print(lines_processed) lines_processed += 1 if current_line == 0: current_ref = splt[0] @@ -122,8 +119,6 @@ def main(): (in_gcb, ref_file, window_size, out_p) = (args.i, args.r, args.w, args.o) - - print('Reading ref...') allrefs = process_fasta(ref_file) @@ -131,7 +126,7 @@ def main(): print('Reading genome coverage file...') gc_bins = process_genomecov(in_gcb, allrefs, window_size) - print("Calculating average coverage") + print("Calculating average coverage...") average_coverage = calculate_coverage(gc_bins, window_size) print('AVERAGE COVERAGE =', average_coverage) From 49119cac6377e5a36d30e5cb889c9be423989e5b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 May 2020 15:46:13 -0500 Subject: [PATCH 043/323] renaming some modules, reworking genMutModel.py --- genReads.py | 4 +- py/{refFunc.py => ref_func.py} | 3 +- .../{computeFraglen.py => compute_fraglen.py} | 6 +- utilities/{computeGC.py => compute_gc.py} | 6 +- ...indNucleotideContextOnReference.healthy.pl | 508 ------------------ .../FindNucleotideContextOnReference.pl | 307 ----------- utilities/deprecated/README.md | 16 - utilities/genMutModel.py | 466 ++++++++-------- 8 files changed, 229 insertions(+), 1087 deletions(-) rename py/{refFunc.py => ref_func.py} (99%) rename utilities/{computeFraglen.py => compute_fraglen.py} (96%) rename utilities/{computeGC.py => compute_gc.py} (95%) delete mode 100755 utilities/deprecated/FindNucleotideContextOnReference.healthy.pl delete mode 100755 utilities/deprecated/FindNucleotideContextOnReference.pl delete mode 100644 utilities/deprecated/README.md diff --git a/genReads.py b/genReads.py index 684b624..cdf00f6 100644 --- a/genReads.py +++ b/genReads.py @@ -26,7 +26,7 @@ import argparse from py.inputChecking import requiredField, checkFileOpen, isInRange -from py.refFunc import indexRef, readRef, getAllRefRegions, partitionRefRegions +from py.ref_func import index_ref, readRef, getAllRefRegions, partitionRefRegions from py.vcfFunc import parseVCF from py.OutputFileWriter import OutputFileWriter from py.probability import DiscreteDistribution, mean_ind_of_weighted_list @@ -263,7 +263,7 @@ def main(): ALLOWED_NUCL = ['A', 'C', 'G', 'T'] # index reference - refIndex = indexRef(REFERENCE) + refIndex = index_ref(REFERENCE) if PAIRED_END: N_HANDLING = ('random', FRAGMENT_SIZE) else: diff --git a/py/refFunc.py b/py/ref_func.py similarity index 99% rename from py/refFunc.py rename to py/ref_func.py index 58aca20..e00f383 100644 --- a/py/refFunc.py +++ b/py/ref_func.py @@ -4,11 +4,10 @@ import random from Bio.Seq import Seq from Bio.Alphabet import IUPAC -# from Bio.bgzf import * # Index reference fasta -def indexRef(refPath): +def index_ref(refPath): tt = time.time() fn = None diff --git a/utilities/computeFraglen.py b/utilities/compute_fraglen.py similarity index 96% rename from utilities/computeFraglen.py rename to utilities/compute_fraglen.py index 89e9b6c..bfbaa4b 100644 --- a/utilities/computeFraglen.py +++ b/utilities/compute_fraglen.py @@ -1,10 +1,10 @@ # # # Compute Fragment Length Model for genReads.py -# computeFraglen.py +# compute_fraglen.py # # -# Usage: samtools view normal.bam | python computeFraglen.py +# Usage: samtools view normal.bam | python compute_fraglen.py # # # Upgraded 5/6/2020 to match Python 3 standards and refactored for easier reading @@ -130,7 +130,7 @@ def main(): :return: None """ - parser = argparse.ArgumentParser(description="computeFraglen.py") + parser = argparse.ArgumentParser(description="compute_fraglen.py") parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") diff --git a/utilities/computeGC.py b/utilities/compute_gc.py similarity index 95% rename from utilities/computeGC.py rename to utilities/compute_gc.py index c642dfd..5d9b7bc 100644 --- a/utilities/computeGC.py +++ b/utilities/compute_gc.py @@ -1,12 +1,12 @@ # # -# computeGC.py +# compute_gc.py # Compute GC and coverage model for genReads.py # # Takes output file from bedtools genomecov to generate GC/coverage model # # Usage: bedtools genomecov -d -ibam input.bam -g reference.fa > genomeCov.dat -# python computeGC.py -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p +# python compute_gc.py -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p # # # Updated to Python 3 standards @@ -108,7 +108,7 @@ def main(): :return: None """ - parser = argparse.ArgumentParser(description='computeGC.py') + parser = argparse.ArgumentParser(description='compute_gc.py') parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") parser.add_argument('-o', type=str, required=True, metavar='output prefix', diff --git a/utilities/deprecated/FindNucleotideContextOnReference.healthy.pl b/utilities/deprecated/FindNucleotideContextOnReference.healthy.pl deleted file mode 100755 index ee982cb..0000000 --- a/utilities/deprecated/FindNucleotideContextOnReference.healthy.pl +++ /dev/null @@ -1,508 +0,0 @@ -#!/usr/bin/perl - -use strict; -use Math::Round; - - -if ($#ARGV < 1) { - print "parameter mismatch\nTo run type this command:\nperl $0 fastahack reference input_pos_file output_file human_gff_file\n\n"; - - print " first argument = full path to fastahack\n"; - print " second argument = full path to reference genome\n"; - print " third argument = input file with arbitrary number of columns, but 1st col=chromosome name and 2nd col=position\n"; - print " fourth argument = output file with three columns: chromosome name, position of the center nucleotide, and the thre-nucleotide context for that position\n"; - print " fifth argument = full path to human gff file\n\n\n"; - exit 1; -} - - -my $Fastahack=$ARGV[0]; -my $Reference=$ARGV[1]; -open(InputPositions, '<', $ARGV[2]) || die("Could not open file!"); -open(OutputTrinucleotideContext, '>', $ARGV[3]) || die("Could not open file!"); -open(HumanGFF, '<', $ARGV[4]) || die("Could not open file!"); - - - -################ read in one coordinate at a time and execute fastahack on it - -# reading the header -my $head = ; -$head =~ s/\n|\r//; -print OutputTrinucleotideContext "$head\tContext\n"; -my $gffHead = ; -chomp $gffHead; - -# creating trinucleotide context data hash, insertion and deletion counts -my %trinucleotide_context_data; -my %context_tally_across_mutated_to; -my %gff_hash; -my $gffMatch; -my %location; -# my %genotype_hash; -my %insertion_hash; -my %deletion_hash; -my $insertion_total; -my $deletion_total; -my $zygotes_total; -my %annotation_hash; -my $annotation_total; -my %exonic_consequence_hash; -my $intronic; -my $exonic; -my $intergenic; - -# reading the positional information -my $line_count = 1; -while () { - $_ =~ s/\n|\r//; - #print "$_\n"; - my @line = split('\t', $_); - - # getting the chromosome and coordinate fields from input file - # fastahack will need to the chromosome and coordinate to read the information from the reference - my $chromosome = $line[0]; - my $coordinate = $line[1]; - - # get coordinates of first and last character in the context - my $start_region = $coordinate - 1; - my $end_region = $coordinate + 1; - - # if the coordinate is the very first letter on the chromosome, then do not read before that position - # the context becomes 2 letter code, as opposed to a trinucleotide - if ( $start_region == 0 ) { - $start_region = 1; - $end_region = 2; - } - - #print "$Fastahack -r $chromosome:$start_region..$end_region $Reference\n"; - my $context = `$Fastahack -r $chromosome:$start_region..$end_region $Reference`; - - # capitalize context letters - $context = uc($context); - - #### IF USING CONTROLLED DATA, split germline column into germline allele and mutated_to allele - # my @germline = split ('/', $line[6]); - - # if germline allele does not equal reference allele, print "start_region germline allele end_region" - # specifically, replace the middle letter of the context with the germline allele - #print "$germline[0], $germline[1]\n"; - # if ($germline[0] ne $germline[1]) { - # print "germline/reference mismatch, line number $line_count\n"; - # if ($coordinate != 1) { - # substr($context,1,1)= $germline[1]; - # } - # else { - # substr($context,0,1)= $germline[1]; - # } - # } - - print OutputTrinucleotideContext "$_\t$context"; - - - ############################### - # new section: forming the data structure - ############################### - - # to create N_N contexts for data structure, context_code is defined as the trinucleotide context with a blank middle allele - my $context_code=$context; - $context_code =~ s/\n|\r//; - substr($context_code,1,1) = "_"; - - # create variables for mutated_from and mutated_to nucleotides - my $mutated_from = $line[3]; - my $mutated_to = $line[4]; - - # creating genotype variable from column 10 of VCF - my $genotype = $line[9]; - - # incrementing each genotype - # $genotype_hash{$genotype} = $genotype_hash{$genotype} + 1; - - # splitting heterozygosity by comma, defining heterozygosity total - my @zygotes = split (',', $mutated_to); - my $zygotes_length = scalar(@zygotes); - - # identify heterozygosity, choose one at random to use. Count heterozygosity instances - if ($zygotes_length > 1) { - my $zygotesRand = $zygotes_length*rand(); - my $zygotesRound = round($zygotesRand) - 1; - $zygotes_total = $zygotes_total + 1; - - $mutated_to = $zygotes[$zygotesRound]; - # print "@zygotes\t$mutated_to\n"; - } - # print "@zygotes\t$mutated_to\n"; - - # my $round_rand_test = round(rand()); - # print $round_rand_test; - - # define length of insertions and deletions - my $insertion_length; - my $deletion_length; - if ($mutated_from eq "-") { - $insertion_length = length( $mutated_to ); - } - else { - $insertion_length = length( $mutated_to ) - 1; - } - if ($mutated_to eq "-") { - $deletion_length = length( $mutated_from ); - } - else { - $deletion_length = length( $mutated_from ) - 1; - } - - # context_codes are totalled - $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to} = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to} + 1; - $context_tally_across_mutated_to{$context_code}{$mutated_from} = $context_tally_across_mutated_to{$context_code}{$mutated_from} + 1; - - # insertion and deletion lengths are totalled - if ($insertion_length > $deletion_length) { - $insertion_hash{$insertion_length} = $insertion_hash{$insertion_length} + 1; - } - if ($deletion_length > $insertion_length) { - $deletion_hash{$deletion_length} = $deletion_hash{$deletion_length} + 1; - } - - # total insertions and deletions - if ($insertion_length != $deletion_length) { - if ($insertion_length > $deletion_length) { - $insertion_total = $insertion_total + 1; - } - elsif ($deletion_length > $insertion_length) { - $deletion_total = $deletion_total + 1; - } - } - - # Find variant annotation and exonic consequence in ANNOVAR outfile - my $annotation = $line[7]; - if ( $annotation =~ /Func.refGene=(.{1,30});Gene\.refGene/ ) { - # print "$1\n"; - $annotation_hash{$1}++; - $annotation_total++; - } - if ( $annotation =~ /ExonicFunc.refGene=(.{1,30});AAChange\.refGene/ ) { - # print "$1\n"; - $exonic_consequence_hash{$1}++; - } - if ( $annotation =~ /Func.refGene=.{0,15}intronic\;/ ) { - $intronic++; - } - if ( $annotation !~ /Func.refGene=ncRNA_exonic/ ) { - if ( $annotation =~ /Func.refGene=.{0,15}exonic\;/ ) { - $exonic++; - } - } - if ( $annotation =~ /Func.refGene=.{0,15}intergenic\;/ ) { - $intergenic++; - } - elsif ( $annotation =~ /Func.refGene=.{0,15}ncRNA_splicing\;/ ) { - $intergenic++; - } - elsif ( $annotation =~ /Func.refGene=.{0,15}upstream\;/ ) { - $intergenic++; - } - elsif ( $annotation =~ /Func.refGene=.{0,15}downstream\;/ ) { - $intergenic++; - } - - $location{$coordinate}++; - # Reading input gff file, incrementing gff variant region hash - # while () { - # $_ =~ s/\n|\r//; - # my @line = split('\t', $_); - # my $region_name = "$line[3]-$line[4]"; - # if ($coordinate >= $line[3] && $coordinate <= $line[4]) { - # $gff_hash{$region_name}++; - # $gffMatch++; - # print "$coordinate $region_name\n"; - # } - # } - #print "$region_name, $gff_hash{$region_name}\n"; - - - # to keep track of progress - # 1000000 for LARGE dbsnp vcfs, 10000 for smaller vcf/tsv tumor mutation files - unless ($line_count%10000) { - print "processed $line_count lines\n"; - } - $line_count++; -} -# end working through the input file - -# print total number of mutations -my $mutation_total = $line_count; -print "Number of Mutations -- $mutation_total\n"; - - -################### Reading the input gff and creating custom BED file #################### - -my $gffBED = "vars.bed"; -open(my $bed_handle, '>', $gffBED) || die("Could not open file!"); - -# Print BED file Header -print $bed_handle "START\tEND\tVariant_Frequency\n"; - -# Reading input gff file, incrementing gff variant region hash -while () { - $_ =~ s/\n|\r//; - my @line = split('\t', $_); - my $region_name = "$line[3]-$line[4]"; - my $region_length = $line[4] - $line[3]; - my $region_freq = 0; - foreach my $coordinate (sort(keys %location)) { - if ($coordinate >= $line[3] && $coordinate <= $line[4]) { - $gff_hash{$region_name}++; - $gffMatch++; - # print "$coordinate $region_name\n"; - } - } - if ($gff_hash{$region_name} == 0) { - print $bed_handle "$line[3]\t$line[4]\t$region_freq\n"; - } - if ($gff_hash{$region_name} > 0) { - $region_freq = $gff_hash{$region_name} / $region_length; - print $bed_handle "$line[3]\t$line[4]\t$region_freq\n"; - print "Region $region_name variant frequency -- $region_freq\n"; - print "Total variants in region $region_name -- $gff_hash{$region_name}\n"; - } -} - #print "$region_name, $gff_hash{$region_name}\n"; - -print "GFF Match -- $gffMatch\n"; - - -######################### open files for writing ########################## - - -# my $genotype_name = "zygosity.prob"; -# open(my $genotype_handle, '>', $genotype_name) || die("Could not open file!"); - -my $insertion_file_name = "SSM_insLength.prob"; -open(my $insertion_prob_handle, '>', $insertion_file_name) || die("Could not open file!"); - -my $deletion_file_name = "SSM_delLength.prob"; -open(my $deletion_prob_handle, '>', $deletion_file_name) || die("Could not open file!"); - -my $overall_file_name = "SSM_overall.prob"; -open(my $overall_prob_handle, '>', $overall_file_name) || die("Could not open file!"); - -my $heterozygosity_file_name = "heterozygosity.prob"; -open(my $heterozygosity_prob_handle, '>', $heterozygosity_file_name) || die("Could not open file!"); - -my $annotation_file_name = "annofreq.prob"; -open(my $annotation_handle, '>', $annotation_file_name) || die("Could not open file!"); - -my $exonic_con_file_name = "exonic_consequences.prob"; -open(my $exonic_con_handle, '>', $exonic_con_file_name) || die("Could not open file!"); - -my $intronic_file_name = "intronic_vars.prob"; -open(my $intronic_handle, '>', $intronic_file_name) || die("Could not open file!"); - -my $exonic_file_name = "exonic_vars.prob"; -open(my $exonic_handle, '>', $exonic_file_name) || die ("Could not open file!"); - -my $intergenic_file_name = "intergenic_vars.prob"; -open(my $intergenic_handle, '>', $intergenic_file_name) || die ("Could not open file!"); - - -######################### Calculate frequency models ####################### - - -# calculate zygosity ratio frequency, print to file -# foreach my $genotype (sort(keys %genotype_hash)) { - # my $zygosity_frequency; - # $zygosity_frequency = $genotype_hash{$genotype}/$mutation_total; - # print $genotype_handle "$genotype\t$zygosity_frequency\n"; - # print "Genotype, $genotype -- $genotype_hash{$genotype}\n"; -# } - -# print annotation and exonic consequence frequencies -foreach $1 (sort(keys %annotation_hash)) { - my $annotation_frequency; - $annotation_frequency = $annotation_hash{$1}/$mutation_total; - print "$1 -- $annotation_hash{$1}, $annotation_frequency\n"; - print $annotation_handle "$1\t$annotation_frequency\n"; -} -foreach $1 (sort(keys %exonic_consequence_hash)) { - my $exonic_con_freq; - if ( $1 ne "." ) { - $exonic_con_freq = $exonic_consequence_hash{$1}/$mutation_total; - print "Exonic Consequence: $1 -- $exonic_consequence_hash{$1}, $exonic_con_freq\n"; - print $exonic_con_handle "$1\t$exonic_con_freq\n"; - } -} - -# Calculating exonic, intronic, and intergenic frequencies, printing to files -my $intronic_freq; -my $exonic_freq; -my $intergenic_freq; -$intronic_freq = $intronic/$mutation_total; -$exonic_freq = $exonic/$mutation_total; -$intergenic_freq = $intergenic/$mutation_total; -print $intronic_handle "$intronic_freq\n"; -print $exonic_handle "$exonic_freq\n"; -print $intergenic_handle "$intergenic_freq\n"; - -print "Intronic -- $intronic\nExonic -- $exonic\nIntergenic -- $intergenic\n"; -#print "Total Annotations -- $annotation_total\n"; - -# print overall likelihood file headers -print $overall_prob_handle "mutation_type\tprobability\n"; - -# print insertions and deletion probabilities out of all mutations -my $insertion_prob_all = $insertion_total / $mutation_total; -my $deletion_prob_all = $deletion_total / $mutation_total; -print $overall_prob_handle "insertion\t$insertion_prob_all\ndeletion\t$deletion_prob_all\n"; -# print $overall_prob_handle "Deletion Probability -- $deletion_prob_all\n"; - -# print InDel totals -print "Insertions $insertion_total\n"; -print "Deletions $deletion_total\n"; - -# print insertion and deletion headers -print $insertion_prob_handle "insertion_length\tprobability\n"; -print $deletion_prob_handle "deletion_length\tprobability\n"; - -# calculate InDel length totals and probability out of total number of insertions/deletions. Print probabilities to file. -foreach my $insertion_length (sort(keys %insertion_hash)) { - my $insertion_probability; - $insertion_probability = $insertion_hash{$insertion_length}/$insertion_total; - print $insertion_prob_handle "$insertion_length\t$insertion_probability\n"; - # print "Insertion, $insertion_length, total , $insertion_hash{$insertion_length}\n"; -} -foreach my $deletion_length (sort(keys %deletion_hash)) { - my $deletion_probability; - $deletion_probability = $deletion_hash{$deletion_length}/$deletion_total; - print $deletion_prob_handle "$deletion_length\t$deletion_probability\n"; - # print "Deletion, $deletion_length, total, $deletion_hash{$deletion_length}\n"; -} - -# print heterozygosity frequency to file -my $zygote_frequency = $zygotes_total / $mutation_total; -print $heterozygosity_prob_handle "$zygote_frequency\n"; - -print "heterozygous alleles -- $zygotes_total\n"; - - -# define nucleotide array -my @nucleotides = ("A", "C", "G", "T"); - -foreach my $nt1 (@nucleotides) { - foreach my $nt3 (@nucleotides) { - - # define the output file name and open it for writing - my $trinucleotide_SNP_probability_file_name = "Context".$nt1."-".$nt3.".trinuc"; - open(my $trinuc_prob_handle, '>', $trinucleotide_SNP_probability_file_name) || die("Could not open file!"); - - - # print trinucleotide contexts and corresponding totals for every mutated_to nucleotide - my $context_code=$nt1."_".$nt3; - - #foreach my $mutated_from_nucl_key (keys %{ $trinucleotide_context_data{$context_code} }) { - foreach my $mutated_from (@nucleotides) { - # define the "mutated_to" keys in trinuc context hash - # my $mutated_to_nucl_key; - - # the sum is only across mutated_to, and will be redefined for each mutated_from - my $context_sum_across_mutated_to = 0; - my $context_sum_across_indel = 0; - - # print "\nRaw counts for mutated_from $mutated_from \n"; - - - # foreach $mutated_to_nucl_key (keys %{ $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key} }) { - foreach my $mutated_to (@nucleotides) { - my $mutated_from_length = length( $mutated_from ); - my $mutated_to_length = length( $mutated_to ); - if ( $mutated_from_length == 1 ) { - if ( $mutated_from ne "-" ) { - if ( $mutated_to_length == 1 ) { - if ( $mutated_to ne "-" ) { - # print "$context_code, $mutated_from_nucl_key, $mutated_to_nucl_key -- $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key}{$mutated_to_nucl_key}\n"; - $context_sum_across_mutated_to = $context_sum_across_mutated_to + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - # print "$context_code, $mutated_from, $mutated_to-- $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}\n"; - }# end of loop over mutated_to - - # print "\nProbabilities for mutated_from $mutated_from:\n"; - - - foreach my $mutated_to (@nucleotides) { - #foreach $mutated_to_nucl_key (keys %{ $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key} }) { - my $mutated_from_length = length( $mutated_from); - my $mutated_to_length = length( $mutated_to); - if ( $mutated_from_length == 1 ) { - if ( $mutated_from ne "-" ) { - if ( $mutated_to_length == 1 ) { - if ( $mutated_to ne "-" ) { - my $SNP_probability; - if ( $context_sum_across_mutated_to == 0 ) { - $SNP_probability = 0; - } - else { - $SNP_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_mutated_to; - } - if ( $mutated_to eq "T" ) { - print $trinuc_prob_handle "$SNP_probability"; - } - else { - # print "$context_code, $mutated_from, $mutated_to, context_sum_across_mutated_to=$context_sum_across_mutated_to -- $SNP_probability\n"; - print $trinuc_prob_handle "$SNP_probability\t"; - } - }# end of if statement - else { - my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - # my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - # my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - my $indel_probability; - if ( $context_sum_across_indel = 0 ) { - $indel_probability = 0; - } - else { - # $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - } - }# end else statement - }# end of loop over mutated_to - print $trinuc_prob_handle "\n"; - - }# end of loop over mutated_from - - # print "\n\n"; - - - }# end loop over nt3 -}# end loop over nt1 - - - - diff --git a/utilities/deprecated/FindNucleotideContextOnReference.pl b/utilities/deprecated/FindNucleotideContextOnReference.pl deleted file mode 100755 index 61fed2c..0000000 --- a/utilities/deprecated/FindNucleotideContextOnReference.pl +++ /dev/null @@ -1,307 +0,0 @@ -#!/usr/bin/perl - -use strict; - - -if ($#ARGV < 1) { - print "parameter mismatch\nTo run type this command:\nperl $0 fastahack reference input_pos_file output_file\n\n"; - - print " first argument = full path to fastahack\n"; - print " second argument = full path to reference genome\n"; - print " third argument = input file with arbitrary number of columns, but 1st col=chromosome name and 2nd col=position\n"; - print " fourth argument = output file with three columns: chromosome name, position of the center nucleotide, and the thre-nucleotide context for that position\n\n\n"; - exit 1; -} - - -my $Fastahack=$ARGV[0]; -my $Reference=$ARGV[1]; -open(InputPositions, '<', $ARGV[2]) || die("Could not open file!"); -open(OutputTrinucleotideContext, '>', $ARGV[3]) || die("Could not open file!"); - - - - -################ read in one coordinate at a time and execute fastahack on it - -# reading the header -my $head = ; -$head =~ s/\n|\r//; -print OutputTrinucleotideContext "$head\tContext\n"; - -# creating trinucleotide context data hash, insertion and deletion counts -my %trinucleotide_context_data; -my %context_tally_across_mutated_to; -my %insertion_hash; -my %deletion_hash; -my $insertion_total; -my $deletion_total; - - -# reading the positional information -my $line_count = 1; -while () { - $_ =~ s/\n|\r//; - #print "$_\n"; - my @line = split('\t', $_); - - # getting the chromosome and coordinate fields from input file - # fastahack will need to the chromosome and coordinate to read the information from the reference - my $chromosome = $line[0]; - my $coordinate = $line[1]; - - # get coordinates of first and last character in the context - my $start_region = $coordinate - 1; - my $end_region = $coordinate + 1; - - # if the coordinate is the very first letter on the chromosome, then do not read before that position - # the context becomes 2 letter code, as opposed to a trinucleotide - if ( $start_region == 0 ) { - $start_region = 1; - $end_region = 2; - } - - #print "$Fastahack -r $chromosome:$start_region..$end_region $Reference\n"; - my $context = `$Fastahack -r $chromosome:$start_region..$end_region $Reference`; - - # capitalize context letters - $context = uc($context); - - # split germline column into germline allele and mutated_to allele - # my @germline = split ('/', $line[6]); - - # if germline allele does not equal reference allele, print "start_region germline allele end_region" - # specifically, replace the middle letter of the context with the germline allele - #print "$germline[0], $germline[1]\n"; - # if ($germline[0] ne $germline[1]) { - # print "germline/reference mismatch, line number $line_count\n"; - # if ($coordinate != 1) { - # substr($context,1,1)= $germline[1]; - # } - # else { - # substr($context,0,1)= $germline[1]; - # } - # } - - print OutputTrinucleotideContext "$_\t$context"; - - - - ############################### - # new section: forming the data structure - ############################### - - # to create N_N contexts for data structure, context_code is defined as the trinucleotide context with a blank middle allele - my $context_code=$context; - $context_code =~ s/\n|\r//; - substr($context_code,1,1) = "_"; - - # create variables for mutated_from and mutated_to nucleotides - my $mutated_from = $line[9]; - my $mutated_to = $line[10]; - - # define length of insertions and deletions - # if ($mutated_from eq "-") { - my $insertion_length = length( $mutated_to ); - # } - - # if ($mutated_to eq "-") { - my $deletion_length = length( $mutated_from ); - # } - - # context_codes are totalled - $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to} = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to} + 1; - $context_tally_across_mutated_to{$context_code}{$mutated_from} = $context_tally_across_mutated_to{$context_code}{$mutated_from} + 1; - - # insertion and deletion lengths are totalled - if ($mutated_from eq "-") { - $insertion_hash{$insertion_length} = $insertion_hash{$insertion_length} + 1; - } - if ($mutated_to eq "-") { - $deletion_hash{$deletion_length} = $deletion_hash{$deletion_length} + 1; - } - - # total insertions and deletions - if ($mutated_from eq "-") { - $insertion_total = $insertion_total + 1; - } - if ($mutated_to eq "-") { - $deletion_total = $deletion_total + 1; - } - - - - # to keep track of progress - unless ($line_count%10000) { - print "processed $line_count lines\n"; - } - $line_count++; -} -# end working through the input file - -# print total number of mutations -my $mutation_total = $line_count - 1; -print "Number of Mutations -- $mutation_total\n"; - -# define the output file name for insertions, deletions, and overall likelihoods. Open files for writing -my $insertion_file_name = "Leukemia_OPEN_insLength.prob"; -open(my $insertion_prob_handle, '>', $insertion_file_name) || die("Could not open file!"); - -my $deletion_file_name = "Leukemia_OPEN_delLength.prob"; -open(my $deletion_prob_handle, '>', $deletion_file_name) || die("Could not open file!"); - -my $overall_file_name = "Leukemia_OPEN_overall.prob"; -open(my $overall_prob_handle, '>', $overall_file_name) || die("Could not open file!"); - -# print overall likelihood file headers -print $overall_prob_handle "mutation_type\tprobability\n"; - -# print insertions and deletion probabilities out of all mutations -my $insertion_prob_all = $insertion_total / $mutation_total; -my $deletion_prob_all = $deletion_total / $mutation_total; -print $overall_prob_handle "insertion\t$insertion_prob_all\ndeletion\t$deletion_prob_all\n"; -# print $overall_prob_handle "Deletion Probability -- $deletion_prob_all\n"; - -# print InDel totals -print "Insertions $insertion_total\n"; -print "Deletions $deletion_total\n"; - -# print insertion and deletion headers -print $insertion_prob_handle "insertion_length\tprobability\n"; -print $deletion_prob_handle "deletion_length\tprobability\n"; - -# calculate InDel length totals and probability out of total number of insertions/deletions. Print probabilities to file. -foreach my $insertion_length (sort(keys %insertion_hash)) { - my $insertion_probability; - $insertion_probability = $insertion_hash{$insertion_length}/$insertion_total; - print $insertion_prob_handle "$insertion_length\t$insertion_probability\n"; - print "Insertion, $insertion_length, total , $insertion_hash{$insertion_length}\n"; -} -foreach my $deletion_length (sort(keys %deletion_hash)) { - my $deletion_probability; - $deletion_probability = $deletion_hash{$deletion_length}/$deletion_total; - print $deletion_prob_handle "$deletion_length\t$deletion_probability\n"; - print "Deletion, $deletion_length, total, $deletion_hash{$deletion_length}\n"; -} - - -# define nucleotide array -my @nucleotides = ("A", "C", "G", "T"); - -foreach my $nt1 (@nucleotides) { - foreach my $nt3 (@nucleotides) { - - # define the output file name and open it for writing - my $trinucleotide_SNP_probability_file_name = "Leukemia_OPEN_".$nt1."-".$nt3.".trinuc"; - open(my $trinuc_prob_handle, '>', $trinucleotide_SNP_probability_file_name) || die("Could not open file!"); - - - # print trinucleotide contexts and corresponding totals for every mutated_to nucleotide - my $context_code=$nt1."_".$nt3; - - #foreach my $mutated_from_nucl_key (keys %{ $trinucleotide_context_data{$context_code} }) { - foreach my $mutated_from (@nucleotides) { - # define the "mutated_to" keys in trinuc context hash - # my $mutated_to_nucl_key; - - # the sum is only across mutated_to, and will be redefined for each mutated_from - my $context_sum_across_mutated_to = 0; - my $context_sum_across_indel = 0; - - # print "\nRaw counts for mutated_from $mutated_from \n"; - - - # foreach $mutated_to_nucl_key (keys %{ $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key} }) { - foreach my $mutated_to (@nucleotides) { - my $mutated_from_length = length( $mutated_from ); - my $mutated_to_length = length( $mutated_to ); - if ( $mutated_from_length == 1 ) { - if ( $mutated_from ne "-" ) { - if ( $mutated_to_length == 1 ) { - if ( $mutated_to ne "-" ) { - # print "$context_code, $mutated_from_nucl_key, $mutated_to_nucl_key -- $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key}{$mutated_to_nucl_key}\n"; - $context_sum_across_mutated_to = $context_sum_across_mutated_to + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - }# end if statement - else { - $context_sum_across_indel = $context_sum_across_indel + $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}; - }# end else statement - # print "$context_code, $mutated_from, $mutated_to-- $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}\n"; - }# end of loop over mutated_to - - # print "\nProbabilities for mutated_from $mutated_from:\n"; - - - foreach my $mutated_to (@nucleotides) { - #foreach $mutated_to_nucl_key (keys %{ $trinucleotide_context_data{$context_code}{$mutated_from_nucl_key} }) { - my $mutated_from_length = length( $mutated_from); - my $mutated_to_length = length( $mutated_to); - if ( $mutated_from_length == 1 ) { - if ( $mutated_from ne "-" ) { - if ( $mutated_to_length == 1 ) { - if ( $mutated_to ne "-" ) { - my $SNP_probability; - if ( $context_sum_across_mutated_to == 0 ) { - $SNP_probability = 0; - } - else { - $SNP_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_mutated_to; - } - if ( $mutated_to eq "T" ) { - print $trinuc_prob_handle "$SNP_probability"; - } - else { - # print "$context_code, $mutated_from, $mutated_to, context_sum_across_mutated_to=$context_sum_across_mutated_to -- $SNP_probability\n"; - print $trinuc_prob_handle "$SNP_probability\t"; - } - }# end of if statement - else { - my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - # my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - # my $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - }# end else statement - }# end of if statement - else { - my $indel_probability; - if ( $context_sum_across_indel = 0 ) { - $indel_probability = 0; - } - else { - # $indel_probability = $trinucleotide_context_data{$context_code}{$mutated_from}{$mutated_to}/$context_sum_across_indel; - # print $indel_prob_handle "$context_code, $mutated_from, $mutated_to, context_sum_across_indel=$context_sum_across_indel -- $indel_probability\n"; - } - }# end else statement - }# end of loop over mutated_to - print $trinuc_prob_handle "\n"; - - }# end of loop over mutated_from - - # print "\n\n"; - - - }# end loop over nt3 -}# end loop over nt1 - - - - diff --git a/utilities/deprecated/README.md b/utilities/deprecated/README.md deleted file mode 100644 index 01613ce..0000000 --- a/utilities/deprecated/README.md +++ /dev/null @@ -1,16 +0,0 @@ -#Deprecated Perl Scripts -These scripts were updated and rewritten in python to improve ease of use and speed. Usage and a quick description of the deprecated scripts can be found below. Please use genMutModel.py to generate mutation models. - -##FindNucleotideContextOnReference.pl -This script takes in VCF files and generates variant frequency models for NEAT. Coordinates for each variant are located within the HG19 human reference. The corresponding trinucleotide context around that location on the reference is returned into a new column. - -## Running the Script -The script requires 5 arguments to be entered after the full path to FindNucleotideContextOnReference.healthy.pl - -``` -1. Full path to Fastahack -2. Full path to Reference Genome -3. Full path to input VCF -4. Full path to output file -5. Full path to human GFF -``` diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index a105473..ba054d1 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -9,19 +9,12 @@ import pickle import argparse import numpy as np +from Bio import SeqIO +import pyfaidx -# absolute path to the directory above this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) -sys.path.append(SIM_PATH+'/py/') - -from refFunc import indexRef - -REF_WHITELIST = [str(n) for n in range(1,30)] + ['x','y','X','Y','mt','Mt','MT'] -REF_WHITELIST += ['chr'+n for n in REF_WHITELIST] -VALID_NUCL = ['A','C','G','T'] -VALID_TRINUC = [VALID_NUCL[i]+VALID_NUCL[j]+VALID_NUCL[k] for i in range(len(VALID_NUCL)) for j in range(len(VALID_NUCL)) for k in range(len(VALID_NUCL))] -# if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq -VCF_DEFAULT_POP_FREQ = 0.00001 +sys.path.append(SIM_PATH) +print(sys.path) ######################################################### @@ -29,25 +22,13 @@ ######################################################### -# given a reference index, grab the sequence string of a specified reference -def getChrFromFasta(refPath,ref_inds,chrName): - for i in range(len(ref_inds)): - if ref_inds[i][0] == chrName: - ref_inds_i = ref_inds[i] - break - refFile = open(refPath,'r') - refFile.seek(ref_inds_i[1]) - myDat = ''.join(refFile.read(ref_inds_i[2]-ref_inds_i[1]).split('\n')) - return myDat - - # cluster a sorted list -def clusterList(l,delta): - outList = [[l[0]]] - prevVal = l[0] +def cluster_list(l: list, delta: float) -> list: + outList = [[l[0]]] + prevVal = l[0] currentInd = 0 for n in l[1:]: - if n-prevVal <= delta: + if n - prevVal <= delta: outList[currentInd].append(n) else: currentInd += 1 @@ -57,7 +38,7 @@ def clusterList(l,delta): return outList -def list_2_countDict(l): +def list_2_countDict(l: list) -> dict: cDict = {} for n in l: if n not in cDict: @@ -66,98 +47,35 @@ def list_2_countDict(l): return cDict -def getBedTracks(fn): - f = open(fn,'r') +def getBedTracks(fn: str) -> dict: + f = open(fn, 'r') trackDict = {} for line in f: splt = line.strip().split('\t') if splt[0] not in trackDict: trackDict[splt[0]] = [] - trackDict[splt[0]].extend([int(splt[1]),int(splt[2])]) + trackDict[splt[0]].extend([int(splt[1]), int(splt[2])]) f.close() return trackDict -def getTrackLen(trackDict): +def getTrackLen(trackDict: dict) -> float: totSum = 0 for k in trackDict.keys(): - for i in range(0,len(trackDict[k]),2): - totSum += trackDict[k][i+1] - trackDict[k][i] + 1 + for i in range(0, len(trackDict[k]), 2): + totSum += trackDict[k][i + 1] - trackDict[k][i] + 1 return totSum -def isInBed(track,ind): - myInd = bisect.bisect(track,ind) - if myInd&1: + +def isInBed(track, ind): + myInd = bisect.bisect(track, ind) + if myInd & 1: return True if myInd < len(track): - if track[myInd-1] == ind: + if track[myInd - 1] == ind: return True return False -## return the mean distance to the median of a cluster -#def mean_dist_from_median(c): -# centroid = np.median([n for n in c]) -# dists = [] -# for n in c: -# dists.append(abs(n-centroid)) -# return np.mean(dists) -# -## get median value from counting dictionary -#def quick_median(countDict): -# midPoint = sum(countDict.values())/2 -# mySum = 0 -# myInd = 0 -# sk = sorted(countDict.keys()) -# while mySum < midPoint: -# mySum += countDict[sk[myInd]] -# if mySum >= midPoint: -# break -# myInd += 1 -# return myInd -# -## get median deviation from median of counting dictionary -#def median_deviation_from_median(countDict): -# myMedian = quick_median(countDict) -# deviations = {} -# for k in sorted(countDict.keys()): -# d = abs(k-myMedian) -# deviations[d] = countDict[k] -# return quick_median(deviations) - - -################################################# -# PARSE INPUT OPTIONS # -################################################# - - -parser = argparse.ArgumentParser(description='genMutModel.py') -parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") -parser.add_argument('-m', type=str, required=True, metavar='', help="* mutations.tsv [.vcf]") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") -parser.add_argument('-bi', type=str, required=False, metavar='', default=None, help="only_use_these_regions.bed") -parser.add_argument('-be', type=str, required=False, metavar='', default=None, help="exclude_these_regions.bed") -parser.add_argument('--save-trinuc', required=False,action='store_true', default=False, help='save trinuc counts for ref') -parser.add_argument('--no-whitelist',required=False,action='store_true', default=False, help='allow any non-standard ref') -parser.add_argument('--skip-common', required=False,action='store_true', default=False, help='do not save common snps + high mut regions') -args = parser.parse_args() -(REF, TSV, OUT_PICKLE, SAVE_TRINUC, NO_WHITELIST, SKIP_COMMON) = (args.r, args.m, args.o, args.save_trinuc, args.no_whitelist, args.skip_common) - -MYBED = None -if args.bi != None: - print('only considering variants in specified bed regions...') - MYBED = (getBedTracks(args.bi),True) -elif args.be != None: - print('only considering variants outside of specified bed regions...') - MYBED = (getBedTracks(args.be),False) - -if TSV[-4:] == '.vcf': - IS_VCF = True -elif TSV[-4:] == '.tsv': - IS_VCF = False -else: - print('\nError: Unknown format for mutation input.\n') - exit(1) - ##################################### # main() #c @@ -165,14 +83,65 @@ def isInBed(track,ind): def main(): + # Some constants we'll need later + REF_WHITELIST = [str(n) for n in range(1, 30)] + ['x', 'y', 'X', 'Y', 'mt', 'Mt', 'MT'] + REF_WHITELIST += ['chr' + n for n in REF_WHITELIST] + VALID_NUCL = ['A', 'C', 'G', 'T'] + VALID_TRINUC = [VALID_NUCL[i] + VALID_NUCL[j] + VALID_NUCL[k] for i in range(len(VALID_NUCL)) for j in + range(len(VALID_NUCL)) for k in range(len(VALID_NUCL))] + # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq + VCF_DEFAULT_POP_FREQ = 0.00001 + + parser = argparse.ArgumentParser(description='genMutModel.py') + parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") + parser.add_argument('-m', type=str, required=True, metavar='', help="* mutations.tsv [.vcf]") + parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") + parser.add_argument('-bi', type=str, required=False, metavar='', default=None, + help="only_use_these_regions.bed") + parser.add_argument('-be', type=str, required=False, metavar='', default=None, + help="exclude_these_regions.bed") + parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, + help='save trinuc counts for ref') + # parser.add_argument('--no-whitelist', required=False, action='store_true', default=False, + # help='allow any non-standard ref') + parser.add_argument('--skip-common', required=False, action='store_true', default=False, + help='do not save common snps + high mut regions') + args = parser.parse_args() + # (ref, tsv, out_pickle, save_trinuc, no_whitelist, skip_common) = ( + # args.r, args.m, args.o, args.save_trinuc, args.no_whitelist, args.skip_common) + + (ref, tsv, out_pickle, save_trinuc, skip_common) = ( + args.r, args.m, args.o, args.save_trinuc, args.skip_common) + + mybed = None + if args.bi is not None: + print('only considering variants in specified bed regions...') + mybed = (getBedTracks(args.bi), True) + elif args.be is not None: + print('only considering variants outside of specified bed regions...') + mybed = (getBedTracks(args.be), False) + + if tsv[-4:] == '.vcf': + is_vcf = True + elif tsv[-4:] == '.tsv': + is_vcf = False + else: + print('\nError: Unknown format for mutation input.\n') + exit(1) + + ref_inds = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) + + # simplify naming + for key in ref_inds.keys(): + splt = key.split("|") + ref_inds[splt[0]] = ref_inds.pop(key) - ref_inds = indexRef(REF) - refList = [n[0] for n in ref_inds] + ref_list = list(ref_inds.keys()) # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} TRINUC_BED_COUNT = {} - printBedWarning = True + printBedWarning = True # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs @@ -191,56 +160,55 @@ def main(): HIGH_MUT_REGIONS = [] # load and process variants in each reference sequence individually, for memory reasons... - for refName in refList: + for ref_name in ref_list: - if (refName not in REF_WHITELIST) and (not NO_WHITELIST): - print(refName, 'is not in our whitelist, skipping...') - continue + # if (ref_name not in REF_WHITELIST) and (not no_whitelist): + # print(ref_name, 'is not in our whitelist, skipping...') + # continue - print('reading reference "' + refName + '"...') - refSequence = getChrFromFasta(REF,ref_inds,refName).upper() - TOTAL_REFLEN += len(refSequence) - refSequence.count('N') + # Count the number of non-N nucleotides for the reference + TOTAL_REFLEN += len(ref_inds[ref_name].seq) - ref_inds[ref_name].seq.count('N') # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) VDAT_COMMON = [] - """ ########################################################################## - ### COUNT TRINUCLEOTIDES IN REF ### + ### COUNT TRINUCLEOTIDES IN ref ### ########################################################################## """ - - if MYBED != None: + if mybed is not None: if printBedWarning: - print( - "since you're using a bed input, we have to count trinucs in bed region even if you specified a trinuc count file for the reference...") + print("since you're using a bed input, " + "we have to count trinucs in bed region even if " + "you specified a trinuc count file for the reference...") printBedWarning = False - if refName in MYBED[0]: - refKey = refName - elif ('chr' in refName) and (refName not in MYBED[0]) and (refName[3:] in MYBED[0]): - refKey = refName[3:] - elif ('chr' not in refName) and (refName not in MYBED[0]) and ('chr'+refName in MYBED[0]): - refKey = 'chr'+refName - if refKey in MYBED[0]: - subRegions = [(MYBED[0][refKey][n],MYBED[0][refKey][n+1]) for n in range(0,len(MYBED[0][refKey]),2)] + if ref_name in mybed[0]: + refKey = ref_name + elif ('chr' in ref_name) and (ref_name not in mybed[0]) and (ref_name[3:] in mybed[0]): + refKey = ref_name[3:] + elif ('chr' not in ref_name) and (ref_name not in mybed[0]) and ('chr' + ref_name in mybed[0]): + refKey = 'chr' + ref_name + if refKey in mybed[0]: + subRegions = [(mybed[0][refKey][n], mybed[0][refKey][n + 1]) for n in + range(0, len(mybed[0][refKey]), 2)] for sr in subRegions: - for i in range(sr[0],sr[1]+1-2): - trinuc = refSequence[i:i+3] + for i in range(sr[0], sr[1] + 1 - 2): + trinuc = ref_inds[ref_name][i:i + 3] if not trinuc in VALID_TRINUC: - continue # skip if trinuc contains invalid characters, or not in specified bed region + continue # skip if trinuc contains invalid characters, or not in specified bed region if trinuc not in TRINUC_BED_COUNT: TRINUC_BED_COUNT[trinuc] = 0 TRINUC_BED_COUNT[trinuc] += 1 - if not os.path.isfile(REF+'.trinucCounts'): + if not os.path.isfile(ref + '.trinucCounts'): print('counting trinucleotides in reference...') - for i in range(len(refSequence)-2): - if i%1000000 == 0 and i > 0: - print(i, '/', len(refSequence)) - #break - trinuc = refSequence[i:i+3] + for i in range(len(ref_inds[ref_name]) - 2): + if i % 1000000 == 0 and i > 0: + print(i, '/', len(ref_inds[ref_name])) + # break + trinuc = ref_inds[ref_name][i:i + 3] if not trinuc in VALID_TRINUC: - continue # skip if trinuc contains invalid characters + continue # skip if trinuc contains invalid characters if trinuc not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 TRINUC_REF_COUNT[trinuc] += 1 @@ -252,125 +220,132 @@ def main(): ########################################################################## """ print('reading input variants...') - f = open(TSV,'r') + f = open(tsv, 'r') isFirst = True for line in f: - if IS_VCF and line[0] == '#': + if is_vcf and line[0] == '#': continue if isFirst: - if IS_VCF: + if is_vcf: # hard-code index values based on expected columns in vcf - (c1,c2,c3,m1,m2,m3) = (0,1,1,3,3,4) + (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) else: # determine columns of fields we're interested in splt = line.strip().split('\t') - (c1,c2,c3) = (splt.index('chromosome'),splt.index('chromosome_start'),splt.index('chromosome_end')) - (m1,m2,m3) = (splt.index('reference_genome_allele'),splt.index('mutated_from_allele'),splt.index('mutated_to_allele')) + (c1, c2, c3) = ( + splt.index('chromosome'), splt.index('chromosome_start'), splt.index('chromosome_end')) + (m1, m2, m3) = (splt.index('reference_genome_allele'), splt.index('mutated_from_allele'), + splt.index('mutated_to_allele')) (d_id) = (splt.index('icgc_donor_id')) isFirst = False continue splt = line.strip().split('\t') # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based - [chrName,chrStart,chrEnd] = [splt[c1],int(splt[c2])-1,int(splt[c3])-1] - [allele_ref,allele_normal,allele_tumor] = [splt[m1].upper(),splt[m2].upper(),splt[m3].upper()] - if IS_VCF: + [chrName, chrStart, chrEnd] = [splt[c1], int(splt[c2]) - 1, int(splt[c3]) - 1] + [allele_ref, allele_normal, allele_tumor] = [splt[m1].upper(), splt[m2].upper(), splt[m3].upper()] + if is_vcf: if len(allele_ref) != len(allele_tumor): # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles - [allele_ref,allele_normal,allele_tumor] = [allele_ref[1:],allele_normal[1:],allele_tumor[1:]] + [allele_ref, allele_normal, allele_tumor] = [allele_ref[1:], allele_normal[1:], allele_tumor[1:]] if not allele_ref: allele_ref = '-' if not allele_normal: allele_normal = '-' if not allele_tumor: allele_tumor = '-' # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later if ',' in allele_tumor: continue - vcf_info = ';'+splt[7]+';' + vcf_info = ';' + splt[7] + ';' else: [donor_id] = [splt[d_id]] # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... - if ('-' not in allele_normal and '-' not in allele_tumor) and (len(allele_normal) > 1 or len(allele_tumor) > 1): + if ('-' not in allele_normal and '-' not in allele_tumor) and ( + len(allele_normal) > 1 or len(allele_tumor) > 1): print('skipping a complex variant...') continue # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. if 'chr' not in chrName: - chrName = 'chr'+chrName - if 'chr' not in refName: - refName = 'chr'+refName + chrName = 'chr' + chrName + if 'chr' not in ref_name: + ref_name = 'chr' + ref_name # skip irrelevant variants - if chrName != refName: + if chrName != ref_name: continue # if variant is outside the regions we're interested in (if specified), skip it... - if MYBED != None: - refKey = refName - if not refKey in MYBED[0] and refKey[3:] in MYBED[0]: # account for 1 vs chr1, again... + if mybed is not None: + refKey = ref_name + if not refKey in mybed[0] and refKey[3:] in mybed[0]: # account for 1 vs chr1, again... refKey = refKey[3:] - if refKey not in MYBED[0]: + if refKey not in mybed[0]: inBed = False else: - inBed = isInBed(MYBED[0][refKey],chrStart) - if inBed != MYBED[1]: + inBed = isInBed(mybed[0][refKey], chrStart) + if inBed != mybed[1]: continue # we want only snps # so, no '-' characters allowed, and chrStart must be same as chrEnd if '-' not in allele_normal and '-' not in allele_tumor and chrStart == chrEnd: - trinuc_ref = refSequence[chrStart-1:chrStart+2] + trinuc_ref = ref_inds[ref_name][chrStart - 1:chrStart + 2] if not trinuc_ref in VALID_TRINUC: - continue # skip ref trinuc with invalid characters + continue # skip ref trinuc with invalid characters # only consider positions where ref allele in tsv matches the nucleotide in our reference if allele_ref == trinuc_ref[1]: - trinuc_normal = refSequence[chrStart-1] + allele_normal + refSequence[chrStart+1] - trinuc_tumor = refSequence[chrStart-1] + allele_tumor + refSequence[chrStart+1] + trinuc_normal = ref_inds[ref_name][chrStart - 1] + allele_normal + ref_inds[ref_name][chrStart + 1] + trinuc_tumor = ref_inds[ref_name][chrStart - 1] + allele_tumor + ref_inds[ref_name][chrStart + 1] if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: - continue # skip if mutation contains invalid char - key = (trinuc_normal,trinuc_tumor) + continue # skip if mutation contains invalid char + key = (trinuc_normal, trinuc_tumor) if key not in TRINUC_TRANSITION_COUNT: TRINUC_TRANSITION_COUNT[key] = 0 TRINUC_TRANSITION_COUNT[key] += 1 SNP_COUNT += 1 - key2 = (allele_normal,allele_tumor) + key2 = (allele_normal, allele_tumor) if key2 not in SNP_TRANSITION_COUNT: SNP_TRANSITION_COUNT[key2] = 0 SNP_TRANSITION_COUNT[key2] += 1 - if IS_VCF: + if is_vcf: myPopFreq = VCF_DEFAULT_POP_FREQ if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] + cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] if ',' in cafStr: myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor, myPopFreq)) else: - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor)) TOTAL_DONORS[donor_id] = True else: print('\nError: ref allele in variant call does not match reference.\n') exit(1) # now let's look for indels... - if '-' in allele_normal: len_normal = 0 - else: len_normal = len(allele_normal) - if '-' in allele_tumor: len_tumor = 0 - else: len_tumor = len(allele_tumor) + if '-' in allele_normal: + len_normal = 0 + else: + len_normal = len(allele_normal) + if '-' in allele_tumor: + len_tumor = 0 + else: + len_tumor = len(allele_tumor) if len_normal != len_tumor: indel_len = len_tumor - len_normal if indel_len not in INDEL_COUNT: INDEL_COUNT[indel_len] = 0 INDEL_COUNT[indel_len] += 1 - if IS_VCF: + if is_vcf: myPopFreq = VCF_DEFAULT_POP_FREQ if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)",vcf_info)[0] + cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] if ',' in cafStr: myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor,myPopFreq)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor, myPopFreq)) else: - VDAT_COMMON.append((chrStart,allele_ref,allele_normal,allele_tumor)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor)) TOTAL_DONORS[donor_id] = True f.close() @@ -383,77 +358,81 @@ def main(): # identify common mutations # percentile_var = 95 - if IS_VCF: - minVal = np.percentile([n[4] for n in VDAT_COMMON],percentile_var) + if is_vcf: + minVal = np.percentile([n[4] for n in VDAT_COMMON], percentile_var) for k in sorted(VDAT_COMMON): if k[4] >= minVal: - COMMON_VARIANTS.append((refName,k[0],k[1],k[3],k[4])) - VDAT_COMMON = {(n[0],n[1],n[2],n[3]):n[4] for n in VDAT_COMMON} + COMMON_VARIANTS.append((ref_name, k[0], k[1], k[3], k[4])) + VDAT_COMMON = {(n[0], n[1], n[2], n[3]): n[4] for n in VDAT_COMMON} else: N_DONORS = len(TOTAL_DONORS) VDAT_COMMON = list_2_countDict(VDAT_COMMON) - minVal = int(np.percentile(VDAT_COMMON.values(),percentile_var)) + minVal = int(np.percentile(VDAT_COMMON.values(), percentile_var)) for k in sorted(VDAT_COMMON.keys()): if VDAT_COMMON[k] >= minVal: - COMMON_VARIANTS.append((refName,k[0],k[1],k[3],VDAT_COMMON[k]/float(N_DONORS))) + COMMON_VARIANTS.append((ref_name, k[0], k[1], k[3], VDAT_COMMON[k] / float(N_DONORS))) # # identify areas that have contained significantly higher random mutation rates # - dist_thresh = 2000 + dist_thresh = 2000 percentile_clust = 97 - qptn = 1000 + qptn = 1000 # identify regions with disproportionately more variants in them VARIANT_POS = sorted([n[0] for n in VDAT_COMMON.keys()]) - clustered_pos = clusterList(VARIANT_POS,dist_thresh) - byLen = [(len(clustered_pos[i]),min(clustered_pos[i]),max(clustered_pos[i]),i) for i in range(len(clustered_pos))] - #byLen = sorted(byLen,reverse=True) - #minLen = int(np.percentile([n[0] for n in byLen],percentile_clust)) - #byLen = [n for n in byLen if n[0] >= minLen] + clustered_pos = cluster_list(VARIANT_POS, dist_thresh) + byLen = [(len(clustered_pos[i]), min(clustered_pos[i]), max(clustered_pos[i]), i) for i in + range(len(clustered_pos))] + # byLen = sorted(byLen,reverse=True) + # minLen = int(np.percentile([n[0] for n in byLen],percentile_clust)) + # byLen = [n for n in byLen if n[0] >= minLen] candidate_regions = [] for n in byLen: - bi = int((n[1]-dist_thresh)/float(qptn))*qptn - bf = int((n[2]+dist_thresh)/float(qptn))*qptn - candidate_regions.append((n[0]/float(bf-bi),max([0,bi]),min([len(refSequence),bf]))) - minVal = np.percentile([n[0] for n in candidate_regions],percentile_clust) + bi = int((n[1] - dist_thresh) / float(qptn)) * qptn + bf = int((n[2] + dist_thresh) / float(qptn)) * qptn + candidate_regions.append((n[0] / float(bf - bi), max([0, bi]), min([len(ref_inds[ref_name]), bf]))) + minVal = np.percentile([n[0] for n in candidate_regions], percentile_clust) for n in candidate_regions: if n[0] >= minVal: - HIGH_MUT_REGIONS.append((refName,n[1],n[2],n[0])) + HIGH_MUT_REGIONS.append((ref_name, n[1], n[2], n[0])) # collapse overlapping regions - for i in range(len(HIGH_MUT_REGIONS)-1,0,-1): - if HIGH_MUT_REGIONS[i-1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i-1][0] == HIGH_MUT_REGIONS[i][0]: - avgMutRate = 0.5*HIGH_MUT_REGIONS[i-1][3]+0.5*HIGH_MUT_REGIONS[i][3] # not accurate, but I'm lazy - HIGH_MUT_REGIONS[i-1] = (HIGH_MUT_REGIONS[i-1][0], HIGH_MUT_REGIONS[i-1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) + for i in range(len(HIGH_MUT_REGIONS) - 1, 0, -1): + if HIGH_MUT_REGIONS[i - 1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i - 1][0] == \ + HIGH_MUT_REGIONS[i][0]: + avgMutRate = 0.5 * HIGH_MUT_REGIONS[i - 1][3] + 0.5 * HIGH_MUT_REGIONS[i][ + 3] # not accurate, but I'm lazy + HIGH_MUT_REGIONS[i - 1] = ( + HIGH_MUT_REGIONS[i - 1][0], HIGH_MUT_REGIONS[i - 1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) del HIGH_MUT_REGIONS[i] # # if we didn't count ref trinucs because we found file, read in ref counts from file now # - if os.path.isfile(REF+'.trinucCounts'): + if os.path.isfile(ref + '.trinucCounts'): print('reading pre-computed trinuc counts...') - f = open(REF+'.trinucCounts','r') + f = open(ref + '.trinucCounts', 'r') for line in f: splt = line.strip().split('\t') TRINUC_REF_COUNT[splt[0]] = int(splt[1]) f.close() # otherwise, save trinuc counts to file, if desired - elif SAVE_TRINUC: - if MYBED != None: + elif save_trinuc: + if mybed is not None: print('unable to save trinuc counts to file because using input bed region...') else: print('saving trinuc counts to file...') - f = open(REF+'.trinucCounts','w') + f = open(ref + '.trinucCounts', 'w') for trinuc in sorted(TRINUC_REF_COUNT.keys()): - f.write(trinuc+'\t'+str(TRINUC_REF_COUNT[trinuc])+'\n') + f.write(trinuc + '\t' + str(TRINUC_REF_COUNT[trinuc]) + '\n') f.close() # # if using an input bed region, make necessary adjustments to trinuc ref counts based on the bed region trinuc counts # - if MYBED != None: - if MYBED[1] == True: # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts + if mybed is not None: + if mybed[1] == True: # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts TRINUC_REF_COUNT = TRINUC_BED_COUNT - else: # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs + else: # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs for k in TRINUC_REF_COUNT.keys(): if k in TRINUC_BED_COUNT: TRINUC_REF_COUNT[k] -= TRINUC_BED_COUNT[k] @@ -469,11 +448,10 @@ def main(): ### COMPUTE PROBABILITIES ### ########################################################################## """ - - #for k in sorted(TRINUC_REF_COUNT.keys()): + # for k in sorted(TRINUC_REF_COUNT.keys()): # print k, TRINUC_REF_COUNT[k] # - #for k in sorted(TRINUC_TRANSITION_COUNT.keys()): + # for k in sorted(TRINUC_TRANSITION_COUNT.keys()): # print k, TRINUC_TRANSITION_COUNT[k] # frequency that each trinuc mutated into anything else @@ -494,36 +472,36 @@ def main(): TRINUC_TRANS_PROBS[k] = TRINUC_TRANSITION_COUNT[k] / float(myCount) for n1 in VALID_NUCL: - rollingTot = sum([SNP_TRANSITION_COUNT[(n1,n2)] for n2 in VALID_NUCL if (n1,n2) in SNP_TRANSITION_COUNT]) + rollingTot = sum([SNP_TRANSITION_COUNT[(n1, n2)] for n2 in VALID_NUCL if (n1, n2) in SNP_TRANSITION_COUNT]) for n2 in VALID_NUCL: - key2 = (n1,n2) + key2 = (n1, n2) if key2 in SNP_TRANSITION_COUNT: SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rollingTot) # compute average snp and indel frequencies - SNP_FREQ = SNP_COUNT/float(totalVar) - AVG_INDEL_FREQ = 1.-SNP_FREQ - INDEL_FREQ = {k:(INDEL_COUNT[k]/float(totalVar))/AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} - if MYBED != None: - if MYBED[1] == True: - AVG_MUT_RATE = totalVar/float(getTrackLen(MYBED[0])) + SNP_FREQ = SNP_COUNT / float(totalVar) + AVG_INDEL_FREQ = 1. - SNP_FREQ + INDEL_FREQ = {k: (INDEL_COUNT[k] / float(totalVar)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} + if mybed is not None: + if mybed[1] == True: + AVG_MUT_RATE = totalVar / float(getTrackLen(mybed[0])) else: - AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN - getTrackLen(MYBED[0])) + AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN - getTrackLen(mybed[0])) else: - AVG_MUT_RATE = totalVar/float(TOTAL_REFLEN) + AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN) # # if values weren't found in data, appropriately append null entries # printTrinucWarning = False for trinuc in VALID_TRINUC: - trinuc_mut = [trinuc[0]+n+trinuc[2] for n in VALID_NUCL if n != trinuc[1]] + trinuc_mut = [trinuc[0] + n + trinuc[2] for n in VALID_NUCL if n != trinuc[1]] if trinuc not in TRINUC_MUT_PROB: TRINUC_MUT_PROB[trinuc] = 0. printTrinucWarning = True for trinuc2 in trinuc_mut: - if (trinuc,trinuc2) not in TRINUC_TRANS_PROBS: - TRINUC_TRANS_PROBS[(trinuc,trinuc2)] = 0. + if (trinuc, trinuc2) not in TRINUC_TRANS_PROBS: + TRINUC_TRANS_PROBS[(trinuc, trinuc2)] = 0. printTrinucWarning = True if printTrinucWarning: print( @@ -548,10 +526,10 @@ def main(): for k in sorted(SNP_TRANS_FREQ.keys()): print('p(' + k[0] + ' --> ' + k[1] + ' | SNP occurs) =', SNP_TRANS_FREQ[k]) - #for n in COMMON_VARIANTS: + # for n in COMMON_VARIANTS: # print n - #for n in HIGH_MUT_REGIONS: + # for n in HIGH_MUT_REGIONS: # print n print('p(snp) =', SNP_FREQ) @@ -562,28 +540,24 @@ def main(): # # save variables to file # - if SKIP_COMMON: - OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, - 'SNP_FREQ':SNP_FREQ, - 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, - 'INDEL_FREQ':INDEL_FREQ, - 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, - 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS} + if skip_common: + OUT_DICT = {'AVG_MUT_RATE': AVG_MUT_RATE, + 'SNP_FREQ': SNP_FREQ, + 'SNP_TRANS_FREQ': SNP_TRANS_FREQ, + 'INDEL_FREQ': INDEL_FREQ, + 'TRINUC_MUT_PROB': TRINUC_MUT_PROB, + 'TRINUC_TRANS_PROBS': TRINUC_TRANS_PROBS} else: - OUT_DICT = {'AVG_MUT_RATE':AVG_MUT_RATE, - 'SNP_FREQ':SNP_FREQ, - 'SNP_TRANS_FREQ':SNP_TRANS_FREQ, - 'INDEL_FREQ':INDEL_FREQ, - 'TRINUC_MUT_PROB':TRINUC_MUT_PROB, - 'TRINUC_TRANS_PROBS':TRINUC_TRANS_PROBS, - 'COMMON_VARIANTS':COMMON_VARIANTS, - 'HIGH_MUT_REGIONS':HIGH_MUT_REGIONS} - pickle.dump(OUT_DICT, open(OUT_PICKLE, "wb")) + OUT_DICT = {'AVG_MUT_RATE': AVG_MUT_RATE, + 'SNP_FREQ': SNP_FREQ, + 'SNP_TRANS_FREQ': SNP_TRANS_FREQ, + 'INDEL_FREQ': INDEL_FREQ, + 'TRINUC_MUT_PROB': TRINUC_MUT_PROB, + 'TRINUC_TRANS_PROBS': TRINUC_TRANS_PROBS, + 'COMMON_VARIANTS': COMMON_VARIANTS, + 'HIGH_MUT_REGIONS': HIGH_MUT_REGIONS} + pickle.dump(OUT_DICT, open(out_pickle, "wb")) if __name__ == "__main__": main() - - - - From 8d8f232ebfe80fbc79eb48bfd6b50dc4046aff47 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 14 May 2020 16:12:43 -0500 Subject: [PATCH 044/323] Working on updating genMutModel.py --- utilities/genMutModel.py | 337 +++++++++++++++++----------------- utilities/genSeqErrorModel.py | 8 +- 2 files changed, 174 insertions(+), 171 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index ba054d1..8202445 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -10,7 +10,7 @@ import argparse import numpy as np from Bio import SeqIO -import pyfaidx +import pandas as pd SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) sys.path.append(SIM_PATH) @@ -93,55 +93,26 @@ def main(): VCF_DEFAULT_POP_FREQ = 0.00001 parser = argparse.ArgumentParser(description='genMutModel.py') - parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") - parser.add_argument('-m', type=str, required=True, metavar='', help="* mutations.tsv [.vcf]") - parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") - parser.add_argument('-bi', type=str, required=False, metavar='', default=None, + parser.add_argument('-r', type=str, required=True, metavar='Reference, in fasta format', help="* ref.fa") + parser.add_argument('-m', type=str, required=True, metavar='A vcf with mutations to model', help="* mutations.vcf") + parser.add_argument('-o', type=str, required=True, metavar='The name of the output model', help="* output.p") + parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include', default=None, help="only_use_these_regions.bed") - parser.add_argument('-be', type=str, required=False, metavar='', default=None, + parser.add_argument('-be', type=str, required=False, metavar='Bed file of regions to exclued', default=None, help="exclude_these_regions.bed") parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, help='save trinuc counts for ref') - # parser.add_argument('--no-whitelist', required=False, action='store_true', default=False, - # help='allow any non-standard ref') parser.add_argument('--skip-common', required=False, action='store_true', default=False, help='do not save common snps + high mut regions') args = parser.parse_args() - # (ref, tsv, out_pickle, save_trinuc, no_whitelist, skip_common) = ( - # args.r, args.m, args.o, args.save_trinuc, args.no_whitelist, args.skip_common) (ref, tsv, out_pickle, save_trinuc, skip_common) = ( args.r, args.m, args.o, args.save_trinuc, args.skip_common) - mybed = None - if args.bi is not None: - print('only considering variants in specified bed regions...') - mybed = (getBedTracks(args.bi), True) - elif args.be is not None: - print('only considering variants outside of specified bed regions...') - mybed = (getBedTracks(args.be), False) - - if tsv[-4:] == '.vcf': - is_vcf = True - elif tsv[-4:] == '.tsv': - is_vcf = False - else: - print('\nError: Unknown format for mutation input.\n') - exit(1) - - ref_inds = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) - - # simplify naming - for key in ref_inds.keys(): - splt = key.split("|") - ref_inds[splt[0]] = ref_inds.pop(key) - - ref_list = list(ref_inds.keys()) - # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} TRINUC_BED_COUNT = {} - printBedWarning = True + print_bed_warning = True # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs @@ -159,15 +130,63 @@ def main(): # identify regions that have significantly higher local mutation rates than the average HIGH_MUT_REGIONS = [] - # load and process variants in each reference sequence individually, for memory reasons... + mybed = None + if args.bi is not None: + print('only considering variants in specified bed regions...') + mybed = (getBedTracks(args.bi), True) + elif args.be is not None: + print('only considering variants outside of specified bed regions...') + mybed = (getBedTracks(args.be), False) + + if tsv[-4:] == '.vcf': + is_vcf = True + elif tsv[-4:] == '.tsv': + is_vcf = False + else: + print('\nError: Unknown format for mutation input.\n') + exit(1) + + reference = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) + + # simplify naming + ref_dict = {} + for key in reference.keys(): + key_split = key.split("|") + ref_dict[key_split[0]] = reference[key] + + ref_list = list(ref_dict.keys()) + + # Pre-parsing + print('reading input variants...') + header = ["CHROM", 'POS', 'ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO'] + variants = pd.read_csv(tsv, sep='\t', comment='#', names=header) + # hard-code index values based on expected columns in vcf + (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) + variant_chroms = variants['CHROM'].to_list() + matching_chromosomes = [] for ref_name in ref_list: + if ref_name not in variant_chroms: + print("Warning: {} not in reference. Skipping this chromosome".format(ref_name)) + print("(Note that if this behavior is unexpected, check that chromosome names in VCF match the reference)") + continue + else: + matching_chromosomes.append(ref_name) - # if (ref_name not in REF_WHITELIST) and (not no_whitelist): - # print(ref_name, 'is not in our whitelist, skipping...') - # continue + # Check to make sure there are some matches + if not matching_chromosomes: + print("Found no chromosomes in common between VCF and Fasta. Please fix the chromosome names and try again") + exit(-1) + matching_variants = variants[variants['CHROM'].isin(matching_chromosomes)] + + if not matching_variants: + print("No variants matched with the Reference. This may be a chromosome naming problem.") + exit(-1) + + # load and process variants in each reference sequence individually, for memory reasons... + for ref_name in ref_list: # Count the number of non-N nucleotides for the reference - TOTAL_REFLEN += len(ref_inds[ref_name].seq) - ref_inds[ref_name].seq.count('N') + TOTAL_REFLEN += len(ref_dict[ref_name].seq) - ref_dict[ref_name].seq.count('N') # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) VDAT_COMMON = [] @@ -177,23 +196,23 @@ def main(): ########################################################################## """ if mybed is not None: - if printBedWarning: + if print_bed_warning: print("since you're using a bed input, " "we have to count trinucs in bed region even if " "you specified a trinuc count file for the reference...") - printBedWarning = False + print_bed_warning = False if ref_name in mybed[0]: - refKey = ref_name + ref_key = ref_name elif ('chr' in ref_name) and (ref_name not in mybed[0]) and (ref_name[3:] in mybed[0]): - refKey = ref_name[3:] + ref_key = ref_name[3:] elif ('chr' not in ref_name) and (ref_name not in mybed[0]) and ('chr' + ref_name in mybed[0]): - refKey = 'chr' + ref_name - if refKey in mybed[0]: - subRegions = [(mybed[0][refKey][n], mybed[0][refKey][n + 1]) for n in - range(0, len(mybed[0][refKey]), 2)] + ref_key = 'chr' + ref_name + if ref_key in mybed[0]: + subRegions = [(mybed[0][ref_key][n], mybed[0][ref_key][n + 1]) for n in + range(0, len(mybed[0][ref_key]), 2)] for sr in subRegions: for i in range(sr[0], sr[1] + 1 - 2): - trinuc = ref_inds[ref_name][i:i + 3] + trinuc = ref_dict[ref_name][i:i + 3].seq if not trinuc in VALID_TRINUC: continue # skip if trinuc contains invalid characters, or not in specified bed region if trinuc not in TRINUC_BED_COUNT: @@ -202,14 +221,14 @@ def main(): if not os.path.isfile(ref + '.trinucCounts'): print('counting trinucleotides in reference...') - for i in range(len(ref_inds[ref_name]) - 2): + for i in range(len(ref_dict[ref_name]) - 2): if i % 1000000 == 0 and i > 0: - print(i, '/', len(ref_inds[ref_name])) + print(i, '/', len(ref_dict[ref_name])) # break - trinuc = ref_inds[ref_name][i:i + 3] - if not trinuc in VALID_TRINUC: + trinuc = ref_dict[ref_name][i:i + 3].seq + if not str(trinuc) in VALID_TRINUC: continue # skip if trinuc contains invalid characters - if trinuc not in TRINUC_REF_COUNT: + if str(trinuc) not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 TRINUC_REF_COUNT[trinuc] += 1 else: @@ -220,122 +239,78 @@ def main(): ########################################################################## """ print('reading input variants...') - f = open(tsv, 'r') - isFirst = True - for line in f: - if is_vcf and line[0] == '#': - continue - if isFirst: - if is_vcf: - # hard-code index values based on expected columns in vcf - (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) - else: - # determine columns of fields we're interested in - splt = line.strip().split('\t') - (c1, c2, c3) = ( - splt.index('chromosome'), splt.index('chromosome_start'), splt.index('chromosome_end')) - (m1, m2, m3) = (splt.index('reference_genome_allele'), splt.index('mutated_from_allele'), - splt.index('mutated_to_allele')) - (d_id) = (splt.index('icgc_donor_id')) - isFirst = False - continue + # TODO change all this to pandas + # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based - splt = line.strip().split('\t') - # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based - [chrName, chrStart, chrEnd] = [splt[c1], int(splt[c2]) - 1, int(splt[c3]) - 1] - [allele_ref, allele_normal, allele_tumor] = [splt[m1].upper(), splt[m2].upper(), splt[m3].upper()] - if is_vcf: - if len(allele_ref) != len(allele_tumor): - # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles - [allele_ref, allele_normal, allele_tumor] = [allele_ref[1:], allele_normal[1:], allele_tumor[1:]] - if not allele_ref: allele_ref = '-' - if not allele_normal: allele_normal = '-' - if not allele_tumor: allele_tumor = '-' - # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later - if ',' in allele_tumor: - continue - vcf_info = ';' + splt[7] + ';' - else: - [donor_id] = [splt[d_id]] - # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... - if ('-' not in allele_normal and '-' not in allele_tumor) and ( - len(allele_normal) > 1 or len(allele_tumor) > 1): - print('skipping a complex variant...') + [chrName, chrStart, chrEnd] = [splt[c1], int(splt[c2]) - 1, int(splt[c3]) - 1] + [allele_ref, allele_normal, allele_alternate] = [splt[m1].upper(), splt[m2].upper(), splt[m3].upper()] + if is_vcf: + if len(allele_ref) != len(allele_alternate): + # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles + [allele_ref, allele_normal, allele_alternate] = [allele_ref[1:], allele_normal[1:], allele_alternate[1:]] + if not allele_ref: + allele_ref = '-' + if not allele_normal: + allele_normal = '-' + if not allele_alternate: + allele_alternate = '-' + # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later + if ',' in allele_alternate: continue + vcf_info = ';' + splt[7] + ';' + else: + [donor_id] = [splt[d_id]] - # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. - if 'chr' not in chrName: - chrName = 'chr' + chrName - if 'chr' not in ref_name: - ref_name = 'chr' + ref_name - # skip irrelevant variants - if chrName != ref_name: - continue + # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... + if ('-' not in allele_normal and '-' not in allele_alternate) and ( + len(allele_normal) > 1 or len(allele_alternate) > 1): + print('skipping a complex variant...') + continue - # if variant is outside the regions we're interested in (if specified), skip it... - if mybed is not None: - refKey = ref_name - if not refKey in mybed[0] and refKey[3:] in mybed[0]: # account for 1 vs chr1, again... - refKey = refKey[3:] - if refKey not in mybed[0]: - inBed = False - else: - inBed = isInBed(mybed[0][refKey], chrStart) - if inBed != mybed[1]: - continue - - # we want only snps - # so, no '-' characters allowed, and chrStart must be same as chrEnd - if '-' not in allele_normal and '-' not in allele_tumor and chrStart == chrEnd: - trinuc_ref = ref_inds[ref_name][chrStart - 1:chrStart + 2] - if not trinuc_ref in VALID_TRINUC: - continue # skip ref trinuc with invalid characters - # only consider positions where ref allele in tsv matches the nucleotide in our reference - if allele_ref == trinuc_ref[1]: - trinuc_normal = ref_inds[ref_name][chrStart - 1] + allele_normal + ref_inds[ref_name][chrStart + 1] - trinuc_tumor = ref_inds[ref_name][chrStart - 1] + allele_tumor + ref_inds[ref_name][chrStart + 1] - if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: - continue # skip if mutation contains invalid char - key = (trinuc_normal, trinuc_tumor) - if key not in TRINUC_TRANSITION_COUNT: - TRINUC_TRANSITION_COUNT[key] = 0 - TRINUC_TRANSITION_COUNT[key] += 1 - SNP_COUNT += 1 - key2 = (allele_normal, allele_tumor) - if key2 not in SNP_TRANSITION_COUNT: - SNP_TRANSITION_COUNT[key2] = 0 - SNP_TRANSITION_COUNT[key2] += 1 - - if is_vcf: - myPopFreq = VCF_DEFAULT_POP_FREQ - if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] - if ',' in cafStr: - myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor, myPopFreq)) - else: - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor)) - TOTAL_DONORS[donor_id] = True - else: - print('\nError: ref allele in variant call does not match reference.\n') - exit(1) + # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. + if 'chr' not in chrName: + chrName = 'chr' + chrName + if 'chr' not in ref_name: + ref_name = 'chr' + ref_name + # skip irrelevant variants + if chrName != ref_name: + continue - # now let's look for indels... - if '-' in allele_normal: - len_normal = 0 - else: - len_normal = len(allele_normal) - if '-' in allele_tumor: - len_tumor = 0 + # if variant is outside the regions we're interested in (if specified), skip it... + if mybed is not None: + ref_key = ref_name + if not ref_key in mybed[0] and ref_key[3:] in mybed[0]: # account for 1 vs chr1, again... + ref_key = ref_key[3:] + if ref_key not in mybed[0]: + inBed = False else: - len_tumor = len(allele_tumor) - if len_normal != len_tumor: - indel_len = len_tumor - len_normal - if indel_len not in INDEL_COUNT: - INDEL_COUNT[indel_len] = 0 - INDEL_COUNT[indel_len] += 1 + inBed = isInBed(mybed[0][ref_key], chrStart) + if inBed != mybed[1]: + continue + + # we want only snps + # so, no '-' characters allowed, and chrStart must be same as chrEnd + if '-' not in allele_normal and '-' not in allele_alternate and chrStart == chrEnd: + trinuc_ref = ref_dict[ref_name][chrStart - 1:chrStart + 2] + if not trinuc_ref in VALID_TRINUC: + continue # skip ref trinuc with invalid characters + # only consider positions where ref allele in tsv matches the nucleotide in our reference + if allele_ref == trinuc_ref[1]: + trinuc_normal = ref_dict[ref_name][chrStart - 1] + allele_normal + ref_dict[ref_name][chrStart + 1] + trinuc_tumor = ref_dict[ref_name][chrStart - 1] + allele_alternate + ref_dict[ref_name][chrStart + 1] + if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: + continue # skip if mutation contains invalid char + key = (trinuc_normal, trinuc_tumor) + if key not in TRINUC_TRANSITION_COUNT: + TRINUC_TRANSITION_COUNT[key] = 0 + TRINUC_TRANSITION_COUNT[key] += 1 + SNP_COUNT += 1 + key2 = (allele_normal, allele_alternate) + if key2 not in SNP_TRANSITION_COUNT: + SNP_TRANSITION_COUNT[key2] = 0 + SNP_TRANSITION_COUNT[key2] += 1 if is_vcf: myPopFreq = VCF_DEFAULT_POP_FREQ @@ -343,11 +318,39 @@ def main(): cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] if ',' in cafStr: myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor, myPopFreq)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate, myPopFreq)) else: - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_tumor)) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate)) TOTAL_DONORS[donor_id] = True - f.close() + else: + print('\nError: ref allele in variant call does not match reference.\n') + exit(1) + + # now let's look for indels... + if '-' in allele_normal: + len_normal = 0 + else: + len_normal = len(allele_normal) + if '-' in allele_alternate: + len_tumor = 0 + else: + len_tumor = len(allele_alternate) + if len_normal != len_tumor: + indel_len = len_tumor - len_normal + if indel_len not in INDEL_COUNT: + INDEL_COUNT[indel_len] = 0 + INDEL_COUNT[indel_len] += 1 + + if is_vcf: + myPopFreq = VCF_DEFAULT_POP_FREQ + if ';CAF=' in vcf_info: + cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] + if ',' in cafStr: + myPopFreq = float(cafStr[5:].split(',')[1]) + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate, myPopFreq)) + else: + VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate)) + TOTAL_DONORS[donor_id] = True # if we didn't find anything, skip ahead along to the next reference sequence if not len(VDAT_COMMON): @@ -390,7 +393,7 @@ def main(): for n in byLen: bi = int((n[1] - dist_thresh) / float(qptn)) * qptn bf = int((n[2] + dist_thresh) / float(qptn)) * qptn - candidate_regions.append((n[0] / float(bf - bi), max([0, bi]), min([len(ref_inds[ref_name]), bf]))) + candidate_regions.append((n[0] / float(bf - bi), max([0, bi]), min([len(ref_dict[ref_name]), bf]))) minVal = np.percentile([n[0] for n in candidate_regions], percentile_clust) for n in candidate_regions: if n[0] >= minVal: diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index de16d1e..02e57f4 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -13,17 +13,17 @@ import os -import sys import gzip import numpy as np import argparse +import sys import pickle # absolute path to this script -# SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' -# sys.path.append(SIM_PATH) +SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' +sys.path.append(SIM_PATH) -from py.probability import DiscreteDistribution +from probability import DiscreteDistribution def parseFQ(inf): From ce95aae2a007f55d0829c2d2895606956618b259 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 15 May 2020 14:49:24 -0500 Subject: [PATCH 045/323] adding pandas functionality to genMutModel.py' --- utilities/genMutModel.py | 99 ++++++++++++++++++++++------------------ 1 file changed, 54 insertions(+), 45 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 8202445..e5b8370 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -11,10 +11,10 @@ import numpy as np from Bio import SeqIO import pandas as pd - -SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) -sys.path.append(SIM_PATH) -print(sys.path) +# +# SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) +# sys.path.append(SIM_PATH) +# print(sys.path) ######################################################### @@ -93,22 +93,29 @@ def main(): VCF_DEFAULT_POP_FREQ = 0.00001 parser = argparse.ArgumentParser(description='genMutModel.py') - parser.add_argument('-r', type=str, required=True, metavar='Reference, in fasta format', help="* ref.fa") - parser.add_argument('-m', type=str, required=True, metavar='A vcf with mutations to model', help="* mutations.vcf") - parser.add_argument('-o', type=str, required=True, metavar='The name of the output model', help="* output.p") + parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', + help="Reference file for organism in fasta format") + parser.add_argument('-m', type=str, required=True, metavar='/path/to/mutations.vcf', + help="Mutation file for organism in VCF format") + parser.add_argument('-o', type=str, required=True, metavar='/path/to/output/and/prefix', + help="Name of output file (final model will append \'.p\')") parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include', default=None, help="only_use_these_regions.bed") parser.add_argument('-be', type=str, required=False, metavar='Bed file of regions to exclued', default=None, help="exclude_these_regions.bed") parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, - help='save trinuc counts for ref') + help='save trinucleotide counts for reference') + parser.add_argument('--human-sample', required=False, action='store_true', default=False, + help='To skip unnumbered scaffolds in human references') parser.add_argument('--skip-common', required=False, action='store_true', default=False, - help='do not save common snps + high mut regions') + help='Do not save common snps + high mut regions') args = parser.parse_args() - (ref, tsv, out_pickle, save_trinuc, skip_common) = ( + (ref, vcf, out_pickle, save_trinuc, skip_common) = ( args.r, args.m, args.o, args.save_trinuc, args.skip_common) + is_human = args.human_sample + # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} TRINUC_BED_COUNT = {} @@ -138,13 +145,8 @@ def main(): print('only considering variants outside of specified bed regions...') mybed = (getBedTracks(args.be), False) - if tsv[-4:] == '.vcf': - is_vcf = True - elif tsv[-4:] == '.tsv': - is_vcf = False - else: - print('\nError: Unknown format for mutation input.\n') - exit(1) + if vcf[-4:] == '.tsv': + print("Warning! TSV file must follow VCF specifications.") reference = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) @@ -152,22 +154,26 @@ def main(): ref_dict = {} for key in reference.keys(): key_split = key.split("|") - ref_dict[key_split[0]] = reference[key] + if is_human: + if key_split[0] in REF_WHITELIST: + ref_dict[key_split[0]] = reference[key] + else: + continue + else: + ref_dict[key_split[0]] = reference[key] ref_list = list(ref_dict.keys()) # Pre-parsing print('reading input variants...') header = ["CHROM", 'POS', 'ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO'] - variants = pd.read_csv(tsv, sep='\t', comment='#', names=header) + variants = pd.read_csv(vcf, sep='\t', comment='#', names=header) # hard-code index values based on expected columns in vcf (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) variant_chroms = variants['CHROM'].to_list() matching_chromosomes = [] for ref_name in ref_list: if ref_name not in variant_chroms: - print("Warning: {} not in reference. Skipping this chromosome".format(ref_name)) - print("(Note that if this behavior is unexpected, check that chromosome names in VCF match the reference)") continue else: matching_chromosomes.append(ref_name) @@ -179,18 +185,27 @@ def main(): matching_variants = variants[variants['CHROM'].isin(matching_chromosomes)] - if not matching_variants: + if matching_variants.empty: print("No variants matched with the Reference. This may be a chromosome naming problem.") exit(-1) + # Rename variants dataframe for processing + matching_variants = matching_variants.rename(columns={'POS': 'chr_start'}) + # Change the indexing by -1 to match VCF format indexing + matching_variants['chr_start'] = matching_variants['chr_start'] - 1 + matching_variants['chr_end'] = matching_variants['chr_start'] + # load and process variants in each reference sequence individually, for memory reasons... - for ref_name in ref_list: + for ref_name in matching_chromosomes: # Count the number of non-N nucleotides for the reference TOTAL_REFLEN += len(ref_dict[ref_name].seq) - ref_dict[ref_name].seq.count('N') # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) VDAT_COMMON = [] + # narrow variants list to current ref + df_to_process = matching_variants[matching_variants["CHROM"] == ref_name] + """ ########################################################################## ### COUNT TRINUCLEOTIDES IN ref ### ########################################################################## """ @@ -241,27 +256,21 @@ def main(): print('reading input variants...') # TODO change all this to pandas - # we have -1 because tsv/vcf coords are 1-based, and our reference string index is 0-based - - - [chrName, chrStart, chrEnd] = [splt[c1], int(splt[c2]) - 1, int(splt[c3]) - 1] - [allele_ref, allele_normal, allele_alternate] = [splt[m1].upper(), splt[m2].upper(), splt[m3].upper()] - if is_vcf: - if len(allele_ref) != len(allele_alternate): - # indels in tsv don't include the preserved first nucleotide, so lets trim the vcf alleles - [allele_ref, allele_normal, allele_alternate] = [allele_ref[1:], allele_normal[1:], allele_alternate[1:]] - if not allele_ref: - allele_ref = '-' - if not allele_normal: - allele_normal = '-' - if not allele_alternate: - allele_alternate = '-' - # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later - if ',' in allele_alternate: - continue - vcf_info = ';' + splt[7] + ';' - else: - [donor_id] = [splt[d_id]] + # we have -1 because vcf/vcf coords are 1-based, and our reference string index is 0-based + + if len(allele_ref) != len(allele_alternate): + # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles + [allele_ref, allele_normal, allele_alternate] = [allele_ref[1:], allele_normal[1:], allele_alternate[1:]] + if not allele_ref: + allele_ref = '-' + if not allele_normal: + allele_normal = '-' + if not allele_alternate: + allele_alternate = '-' + # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later + if ',' in allele_alternate: + continue + vcf_info = ';' + splt[7] + ';' # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... if ('-' not in allele_normal and '-' not in allele_alternate) and ( @@ -296,7 +305,7 @@ def main(): trinuc_ref = ref_dict[ref_name][chrStart - 1:chrStart + 2] if not trinuc_ref in VALID_TRINUC: continue # skip ref trinuc with invalid characters - # only consider positions where ref allele in tsv matches the nucleotide in our reference + # only consider positions where ref allele in vcf matches the nucleotide in our reference if allele_ref == trinuc_ref[1]: trinuc_normal = ref_dict[ref_name][chrStart - 1] + allele_normal + ref_dict[ref_name][chrStart + 1] trinuc_tumor = ref_dict[ref_name][chrStart - 1] + allele_alternate + ref_dict[ref_name][chrStart + 1] From b3f543fd99115280cefb06aa73769c851c7fdce2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Sun, 17 May 2020 04:57:59 -0500 Subject: [PATCH 046/323] Minor changes to genMutModel.py to add pandas functionality --- utilities/genMutModel.py | 1 - 1 file changed, 1 deletion(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index e5b8370..c994a1c 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -256,7 +256,6 @@ def main(): print('reading input variants...') # TODO change all this to pandas - # we have -1 because vcf/vcf coords are 1-based, and our reference string index is 0-based if len(allele_ref) != len(allele_alternate): # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles From 1bad90182658c58fcff47fb034290536f17a2eb9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 18 May 2020 10:49:36 -0500 Subject: [PATCH 047/323] Updating genMutModel.py to pandas compatible to try to speed it up --- utilities/genMutModel.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index c994a1c..2fecc91 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -256,14 +256,20 @@ def main(): print('reading input variants...') # TODO change all this to pandas + indices_to_indels = df_to_process.loc[df_to_process.ALT != df_to_process.REF].index + + # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles + ref_values_to_change = df_to_process.loc[indices_to_indels, 'REF'].str[1:] + alt_values_to_change = df_to_process.loc[indices_to_indels, 'ALT'].str[1:] + df_to_process.loc[indices_to_indels, "REF"] = ref_values_to_change + df_to_process.loc[indices_to_indels, "ALT"] = alt_values_to_change + if len(allele_ref) != len(allele_alternate): # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles [allele_ref, allele_normal, allele_alternate] = [allele_ref[1:], allele_normal[1:], allele_alternate[1:]] if not allele_ref: allele_ref = '-' - if not allele_normal: - allele_normal = '-' if not allele_alternate: allele_alternate = '-' # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later From 2d2c7168a6afce9031d61dee950073316eb72313 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 19 May 2020 10:05:53 -0500 Subject: [PATCH 048/323] further pandas conversion for genMutModel --- utilities/genMutModel.py | 61 +++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 35 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 2fecc91..1465985 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -166,11 +166,11 @@ def main(): # Pre-parsing print('reading input variants...') - header = ["CHROM", 'POS', 'ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO'] - variants = pd.read_csv(vcf, sep='\t', comment='#', names=header) + variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None) # hard-code index values based on expected columns in vcf (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) - variant_chroms = variants['CHROM'].to_list() + variant_chroms = variants[0].to_list() + variant_chroms = list(set(variant_chroms)) matching_chromosomes = [] for ref_name in ref_list: if ref_name not in variant_chroms: @@ -183,14 +183,15 @@ def main(): print("Found no chromosomes in common between VCF and Fasta. Please fix the chromosome names and try again") exit(-1) - matching_variants = variants[variants['CHROM'].isin(matching_chromosomes)] + matching_variants = variants[variants[0].isin(matching_chromosomes)] if matching_variants.empty: print("No variants matched with the Reference. This may be a chromosome naming problem.") exit(-1) - # Rename variants dataframe for processing - matching_variants = matching_variants.rename(columns={'POS': 'chr_start'}) + # Rename header in dataframe for processing + matching_variants = matching_variants.rename(columns={0: "CHROM", 1: 'chr_start', 2: 'ID', 3: 'REF', 4: 'ALT', + 5: 'QUAL', 6: 'FILTER', 7: 'INFO'}) # Change the indexing by -1 to match VCF format indexing matching_variants['chr_start'] = matching_variants['chr_start'] - 1 matching_variants['chr_end'] = matching_variants['chr_start'] @@ -204,7 +205,7 @@ def main(): VDAT_COMMON = [] # narrow variants list to current ref - df_to_process = matching_variants[matching_variants["CHROM"] == ref_name] + df_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() """ ########################################################################## ### COUNT TRINUCLEOTIDES IN ref ### @@ -255,43 +256,33 @@ def main(): print('reading input variants...') - # TODO change all this to pandas - indices_to_indels = df_to_process.loc[df_to_process.ALT != df_to_process.REF].index + indices_to_indels = df_to_process.loc[df_to_process.ALT.apply(len) != df_to_process.REF.apply(len)].index # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles - ref_values_to_change = df_to_process.loc[indices_to_indels, 'REF'].str[1:] - alt_values_to_change = df_to_process.loc[indices_to_indels, 'ALT'].str[1:] + ref_values_to_change = df_to_process.loc[indices_to_indels, 'REF'].copy().str[1:] + alt_values_to_change = df_to_process.loc[indices_to_indels, 'ALT'].copy().str[1:] df_to_process.loc[indices_to_indels, "REF"] = ref_values_to_change df_to_process.loc[indices_to_indels, "ALT"] = alt_values_to_change + df_to_process.replace('', '-', inplace=True) - - if len(allele_ref) != len(allele_alternate): - # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles - [allele_ref, allele_normal, allele_alternate] = [allele_ref[1:], allele_normal[1:], allele_alternate[1:]] - if not allele_ref: - allele_ref = '-' - if not allele_alternate: - allele_alternate = '-' # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later - if ',' in allele_alternate: - continue - vcf_info = ';' + splt[7] + ';' + indices_to_ignore = df_to_process[df_to_process['ALT'].str.contains(',')].index + df_to_process = df_to_process.drop(indices_to_ignore) - # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... - if ('-' not in allele_normal and '-' not in allele_alternate) and ( - len(allele_normal) > 1 or len(allele_alternate) > 1): - print('skipping a complex variant...') - continue + # Not sure what the point of this line is + # vcf_info = ';' + splt[7] + ';' - # to deal with '1' vs 'chr1' references, manually change names. this is hacky and bad. - if 'chr' not in chrName: - chrName = 'chr' + chrName - if 'chr' not in ref_name: - ref_name = 'chr' + ref_name - # skip irrelevant variants - if chrName != ref_name: - continue + # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... + # Alt and Ref contain no dashes + no_dashes = df_to_process[ + ~df_to_process['REF'].str.contains('-') & ~df_to_process['ALT'].str.contains('-')].index + # Alt and Ref lengths are greater than 1 + long_variants = df_to_process[ + (df_to_process['REF'].apply(len) > 1) & (df_to_process['ALT'].apply(len) > 1)].index + complex_variants = list(set(no_dashes) & set(long_variants)) + df_to_process = df_to_process.drop(complex_variants) + # TODO change all this to pandas # if variant is outside the regions we're interested in (if specified), skip it... if mybed is not None: ref_key = ref_name From 249579d74728bcb0dc405a0a30612917ecfe60ff Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 21 May 2020 09:07:24 -0500 Subject: [PATCH 049/323] Further updates to genMutModel --- utilities/genMutModel.py | 236 +++++++++++++++++++++------------------ 1 file changed, 130 insertions(+), 106 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 1465985..e420352 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -101,8 +101,9 @@ def main(): help="Name of output file (final model will append \'.p\')") parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include', default=None, help="only_use_these_regions.bed") - parser.add_argument('-be', type=str, required=False, metavar='Bed file of regions to exclued', default=None, - help="exclude_these_regions.bed") + # This was not implemented correctly in the original file. Will circle back to it. + # parser.add_argument('-be', type=str, required=False, metavar='Bed file of regions to exclued', default=None, + # help="exclude_these_regions.bed") parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, help='save trinucleotide counts for reference') parser.add_argument('--human-sample', required=False, action='store_true', default=False, @@ -119,7 +120,6 @@ def main(): # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} TRINUC_BED_COUNT = {} - print_bed_warning = True # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs @@ -137,20 +137,29 @@ def main(): # identify regions that have significantly higher local mutation rates than the average HIGH_MUT_REGIONS = [] + # Process bed file + is_bed = False mybed = None if args.bi is not None: - print('only considering variants in specified bed regions...') - mybed = (getBedTracks(args.bi), True) - elif args.be is not None: - print('only considering variants outside of specified bed regions...') - mybed = (getBedTracks(args.be), False) - - if vcf[-4:] == '.tsv': - print("Warning! TSV file must follow VCF specifications.") - - reference = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) + print('Processing bed file...') + try: + mybed = pd.read_csv(args.bi, sep='\t', header=None, index_col=None) + is_bed = True + except ValueError: + print('Problem parsing bed file. Ensure bed file is tab separated, standard bed format') + exit(1) + mybed = mybed.rename(columns={0: 'chrom', 1: 'start', 2: 'end'}) + mybed['coords'] = list(zip(mybed.start, mybed.end)) + + # Process reference file + print('Processing reference...') + try: + reference = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) + except ValueError: + print("Problems parsing reference file. Ensure reference is in proper fasta format") + exit(1) - # simplify naming + # simplify naming and filter out actual human genomes from scaffolding ref_dict = {} for key in reference.keys(): key_split = key.split("|") @@ -164,11 +173,20 @@ def main(): ref_list = list(ref_dict.keys()) - # Pre-parsing - print('reading input variants...') - variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None) - # hard-code index values based on expected columns in vcf - (c1, c2, c3, m1, m2, m3) = (0, 1, 1, 3, 3, 4) + # Process VCF file. First check if it's been entered as a TSV + if vcf[-3:] == 'tsv': + print("Warning! TSV file must follow VCF specifications.") + + # Pre-parsing to find all the matching chromosomes between ref and vcf + print('Processing VCF file...') + try: + variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None) + except ValueError: + print("VCF must be in standard VCF format with tab-separated columns") + exit(1) + + # Narrow chromosomes to those matching the reference + # This is in part to make sure the names match variant_chroms = variants[0].to_list() variant_chroms = list(set(variant_chroms)) matching_chromosomes = [] @@ -181,22 +199,104 @@ def main(): # Check to make sure there are some matches if not matching_chromosomes: print("Found no chromosomes in common between VCF and Fasta. Please fix the chromosome names and try again") - exit(-1) - - matching_variants = variants[variants[0].isin(matching_chromosomes)] + exit(1) + # Double check that there are matches + try: + matching_variants = variants[variants[0].isin(matching_chromosomes)] + except ValueError: + print("Problem matching variants with reference.") + exit(1) if matching_variants.empty: - print("No variants matched with the Reference. This may be a chromosome naming problem.") - exit(-1) + print("There is no overlap between reference and variant file. This could be a chromosome naming problem") + exit(1) + # Rename header in dataframe for processing matching_variants = matching_variants.rename(columns={0: "CHROM", 1: 'chr_start', 2: 'ID', 3: 'REF', 4: 'ALT', 5: 'QUAL', 6: 'FILTER', 7: 'INFO'}) - # Change the indexing by -1 to match VCF format indexing + + # Change the indexing by -1 to match python format indexing (0-based) matching_variants['chr_start'] = matching_variants['chr_start'] - 1 matching_variants['chr_end'] = matching_variants['chr_start'] - # load and process variants in each reference sequence individually, for memory reasons... + # Process the variant table + indices_to_indels = \ + matching_variants.loc[matching_variants.ALT.apply(len) != matching_variants.REF.apply(len)].index + + # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles + ref_values_to_change = matching_variants.loc[indices_to_indels, 'REF'].copy().str[1:] + alt_values_to_change = matching_variants.loc[indices_to_indels, 'ALT'].copy().str[1:] + matching_variants.loc[indices_to_indels, "REF"] = ref_values_to_change + matching_variants.loc[indices_to_indels, "ALT"] = alt_values_to_change + matching_variants.replace('', '-', inplace=True) + + # If multi-alternate alleles are present, lets just ignore this variant. I may come back and improve this later + indices_to_ignore = matching_variants[matching_variants['ALT'].str.contains(',')].index + matching_variants = matching_variants.drop(indices_to_ignore) + + # Not sure what the point of this line is + # TODO take this out if it's not needed + # vcf_info = ';' + splt[7] + ';' + + # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... + + # Alt and Ref contain no dashes + no_dashes = matching_variants[ + ~matching_variants['REF'].str.contains('-') & ~matching_variants['ALT'].str.contains('-')].index + # Alt and Ref lengths are greater than 1 + long_variants = matching_variants[ + (matching_variants['REF'].apply(len) > 1) & (matching_variants['ALT'].apply(len) > 1)].index + complex_variants = list(set(no_dashes) & set(long_variants)) + matching_variants = matching_variants.drop(complex_variants) + + # Now we check that the bed and vcf have matching regions + # This also checks that the vcf and bed have the same naming conventions and cuts out scaffolding. + if is_bed: + bed_chroms = list(set(mybed['chrom'])) + matching_bed_keys = list(set(bed_chroms) & set(variant_chroms)) + try: + matching_bed = mybed[mybed['chrom'].isin(matching_bed_keys)] + except ValueError: + print('Problem matching bed chromosomes to variant file.') + exit(1) + if matching_bed.empty: + print("There is no overlap between bed and variant file. " + "This could be a chromosome naming problem") + exit(1) + + # Count Trinucleotides in reference, based on bed or not + print('Counting trinucleotides in reference...') + if is_bed: + print("since you're using a bed input, we have to count trinucs in bed region even if\n" + "you already have a trinuc count file for the reference...") + sub_regions = matching_bed['coords'].to_list() + for sr in sub_regions: + for i in range(sr[0], sr[1] + 1): + for ref_name in matching_chromosomes: + trinuc = ref_dict[ref_name][i:i + 3].seq + # skip if trinuc contains invalid characters, or not in specified bed region + if not trinuc in VALID_TRINUC: + continue + if trinuc not in TRINUC_BED_COUNT: + TRINUC_BED_COUNT[trinuc] = 0 + TRINUC_BED_COUNT[trinuc] += 1 + + elif not os.path.isfile(ref + '.trinucCounts'): + for i in range(len(ref_dict[ref_name]) - 2): + if i % 1000000 == 0 and i > 0: + print(i, '/', len(ref_dict[ref_name])) + trinuc = ref_dict[ref_name][i:i + 3].seq + if not str(trinuc) in VALID_TRINUC: + continue # skip if trinuc contains invalid characters + if str(trinuc) not in TRINUC_REF_COUNT: + TRINUC_REF_COUNT[trinuc] = 0 + TRINUC_REF_COUNT[trinuc] += 1 + else: + print('Found trinucCounts file, using that.') + + # Load and process variants in each reference sequence individually, for memory reasons... + print('Creating mutational model...') for ref_name in matching_chromosomes: # Count the number of non-N nucleotides for the reference TOTAL_REFLEN += len(ref_dict[ref_name].seq) - ref_dict[ref_name].seq.count('N') @@ -204,94 +304,18 @@ def main(): # list to be used for counting variants that occur multiple times in file (i.e. in multiple samples) VDAT_COMMON = [] - # narrow variants list to current ref + # Create a view that narrows variants list to current ref df_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() + bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() - """ ########################################################################## - ### COUNT TRINUCLEOTIDES IN ref ### - ########################################################################## """ - - if mybed is not None: - if print_bed_warning: - print("since you're using a bed input, " - "we have to count trinucs in bed region even if " - "you specified a trinuc count file for the reference...") - print_bed_warning = False - if ref_name in mybed[0]: - ref_key = ref_name - elif ('chr' in ref_name) and (ref_name not in mybed[0]) and (ref_name[3:] in mybed[0]): - ref_key = ref_name[3:] - elif ('chr' not in ref_name) and (ref_name not in mybed[0]) and ('chr' + ref_name in mybed[0]): - ref_key = 'chr' + ref_name - if ref_key in mybed[0]: - subRegions = [(mybed[0][ref_key][n], mybed[0][ref_key][n + 1]) for n in - range(0, len(mybed[0][ref_key]), 2)] - for sr in subRegions: - for i in range(sr[0], sr[1] + 1 - 2): - trinuc = ref_dict[ref_name][i:i + 3].seq - if not trinuc in VALID_TRINUC: - continue # skip if trinuc contains invalid characters, or not in specified bed region - if trinuc not in TRINUC_BED_COUNT: - TRINUC_BED_COUNT[trinuc] = 0 - TRINUC_BED_COUNT[trinuc] += 1 - - if not os.path.isfile(ref + '.trinucCounts'): - print('counting trinucleotides in reference...') - for i in range(len(ref_dict[ref_name]) - 2): - if i % 1000000 == 0 and i > 0: - print(i, '/', len(ref_dict[ref_name])) - # break - trinuc = ref_dict[ref_name][i:i + 3].seq - if not str(trinuc) in VALID_TRINUC: - continue # skip if trinuc contains invalid characters - if str(trinuc) not in TRINUC_REF_COUNT: - TRINUC_REF_COUNT[trinuc] = 0 - TRINUC_REF_COUNT[trinuc] += 1 - else: - print('skipping trinuc counts (for whole reference) because we found a file...') - - """ ########################################################################## - ### READ INPUT VARIANTS ### - ########################################################################## """ - - print('reading input variants...') - - indices_to_indels = df_to_process.loc[df_to_process.ALT.apply(len) != df_to_process.REF.apply(len)].index - - # indels in vcf don't include the preserved first nucleotide, so lets trim the vcf alleles - ref_values_to_change = df_to_process.loc[indices_to_indels, 'REF'].copy().str[1:] - alt_values_to_change = df_to_process.loc[indices_to_indels, 'ALT'].copy().str[1:] - df_to_process.loc[indices_to_indels, "REF"] = ref_values_to_change - df_to_process.loc[indices_to_indels, "ALT"] = alt_values_to_change - df_to_process.replace('', '-', inplace=True) - - # if alternate alleles are present, lets just ignore this variant. I may come back and improve this later - indices_to_ignore = df_to_process[df_to_process['ALT'].str.contains(',')].index - df_to_process = df_to_process.drop(indices_to_ignore) - - # Not sure what the point of this line is - # vcf_info = ';' + splt[7] + ';' - - # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... - # Alt and Ref contain no dashes - no_dashes = df_to_process[ - ~df_to_process['REF'].str.contains('-') & ~df_to_process['ALT'].str.contains('-')].index - # Alt and Ref lengths are greater than 1 - long_variants = df_to_process[ - (df_to_process['REF'].apply(len) > 1) & (df_to_process['ALT'].apply(len) > 1)].index - complex_variants = list(set(no_dashes) & set(long_variants)) - df_to_process = df_to_process.drop(complex_variants) # TODO change all this to pandas # if variant is outside the regions we're interested in (if specified), skip it... if mybed is not None: - ref_key = ref_name - if not ref_key in mybed[0] and ref_key[3:] in mybed[0]: # account for 1 vs chr1, again... - ref_key = ref_key[3:] - if ref_key not in mybed[0]: + if ref_name not in mybed[0]: inBed = False else: - inBed = isInBed(mybed[0][ref_key], chrStart) + inBed = isInBed(mybed[0][ref_name], chrStart) if inBed != mybed[1]: continue From 6f859e83a0b4f66ae10ec119ca8918ead569b39e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 1 Jun 2020 17:03:59 -0500 Subject: [PATCH 050/323] Updating genMutModel to pandas --- utilities/genMutModel.py | 128 ++++++++++++++++++--------------------- 1 file changed, 60 insertions(+), 68 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index e420352..c62db9d 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -235,10 +235,6 @@ def main(): indices_to_ignore = matching_variants[matching_variants['ALT'].str.contains(',')].index matching_variants = matching_variants.drop(indices_to_ignore) - # Not sure what the point of this line is - # TODO take this out if it's not needed - # vcf_info = ';' + splt[7] + ';' - # if we encounter a multi-np (i.e. 3 nucl --> 3 different nucl), let's skip it for now... # Alt and Ref contain no dashes @@ -250,6 +246,10 @@ def main(): complex_variants = list(set(no_dashes) & set(long_variants)) matching_variants = matching_variants.drop(complex_variants) + # This is solely to make regex easier later, since we can't predict where in the line a string will be + new_info = ';' + matching_variants['INFO'].copy() + ';' + matching_variants['INFO'] = new_info + # Now we check that the bed and vcf have matching regions # This also checks that the vcf and bed have the same naming conventions and cuts out scaffolding. if is_bed: @@ -305,81 +305,73 @@ def main(): VDAT_COMMON = [] # Create a view that narrows variants list to current ref - df_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() + variants_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() + ref_sequence = str(ref_dict[ref_name].seq) # TODO change all this to pandas - # if variant is outside the regions we're interested in (if specified), skip it... - if mybed is not None: - if ref_name not in mybed[0]: - inBed = False - else: - inBed = isInBed(mybed[0][ref_name], chrStart) - if inBed != mybed[1]: - continue # we want only snps # so, no '-' characters allowed, and chrStart must be same as chrEnd - if '-' not in allele_normal and '-' not in allele_alternate and chrStart == chrEnd: - trinuc_ref = ref_dict[ref_name][chrStart - 1:chrStart + 2] - if not trinuc_ref in VALID_TRINUC: - continue # skip ref trinuc with invalid characters + snp_df = variants_to_process[~variants_to_process.index.isin(indices_to_indels)] + snp_df = snp_df.loc[snp_df['chr_start'] == snp_df['chr_end']] + if not snp_df.empty: # only consider positions where ref allele in vcf matches the nucleotide in our reference - if allele_ref == trinuc_ref[1]: - trinuc_normal = ref_dict[ref_name][chrStart - 1] + allele_normal + ref_dict[ref_name][chrStart + 1] - trinuc_tumor = ref_dict[ref_name][chrStart - 1] + allele_alternate + ref_dict[ref_name][chrStart + 1] - if not trinuc_normal in VALID_TRINUC or not trinuc_tumor in VALID_TRINUC: - continue # skip if mutation contains invalid char - key = (trinuc_normal, trinuc_tumor) - if key not in TRINUC_TRANSITION_COUNT: - TRINUC_TRANSITION_COUNT[key] = 0 - TRINUC_TRANSITION_COUNT[key] += 1 - SNP_COUNT += 1 - key2 = (allele_normal, allele_alternate) - if key2 not in SNP_TRANSITION_COUNT: - SNP_TRANSITION_COUNT[key2] = 0 - SNP_TRANSITION_COUNT[key2] += 1 - - if is_vcf: - myPopFreq = VCF_DEFAULT_POP_FREQ - if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] - if ',' in cafStr: - myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate, myPopFreq)) + for index, row in snp_df.iterrows(): + trinuc_to_analyze = str(ref_sequence[row.chr_start - 1: row.chr_start + 2]) + if not trinuc_to_analyze in VALID_TRINUC: + continue + if row.REF == trinuc_to_analyze[1]: + trinuc_ref = trinuc_to_analyze + trinuc_alt = trinuc_to_analyze[0] + snp_df.loc[index, 'ALT'] + trinuc_to_analyze[2] + if not trinuc_alt in VALID_TRINUC: + continue + key = (trinuc_ref, trinuc_alt) + if key not in TRINUC_TRANSITION_COUNT: + TRINUC_TRANSITION_COUNT[key] = 0 + TRINUC_TRANSITION_COUNT[key] += 1 + SNP_COUNT += 1 + key2 = (str(row.REF), str(row.ALT)) + if key2 not in SNP_TRANSITION_COUNT: + SNP_TRANSITION_COUNT[key2] = 0 + SNP_TRANSITION_COUNT[key2] += 1 + + my_pop_freq = VCF_DEFAULT_POP_FREQ + if ';CAF=' in snp_df.loc[index, 'INFO']: + caf_str = re.findall(r";CAF=.*?(?=;)", row.INFO)[0] + if ',' in caf_str: + my_pop_freq = float(caf_str[5:].split(',')[1]) + VDAT_COMMON.append( + (row.chr_start, row.REF, row.ALT, my_pop_freq)) else: - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate)) - TOTAL_DONORS[donor_id] = True - else: - print('\nError: ref allele in variant call does not match reference.\n') - exit(1) + print('\nError: ref allele in variant call does not match reference.\n') + exit(1) # now let's look for indels... - if '-' in allele_normal: - len_normal = 0 - else: - len_normal = len(allele_normal) - if '-' in allele_alternate: - len_tumor = 0 - else: - len_tumor = len(allele_alternate) - if len_normal != len_tumor: - indel_len = len_tumor - len_normal - if indel_len not in INDEL_COUNT: - INDEL_COUNT[indel_len] = 0 - INDEL_COUNT[indel_len] += 1 - - if is_vcf: - myPopFreq = VCF_DEFAULT_POP_FREQ - if ';CAF=' in vcf_info: - cafStr = re.findall(r";CAF=.*?(?=;)", vcf_info)[0] - if ',' in cafStr: - myPopFreq = float(cafStr[5:].split(',')[1]) - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate, myPopFreq)) - else: - VDAT_COMMON.append((chrStart, allele_ref, allele_normal, allele_alternate)) - TOTAL_DONORS[donor_id] = True + indel_df = variants_to_process[variants_to_process.index.isin(indices_to_indels)] + if not indel_df.empty: + for index, row in indel_df.iterrows(): + if "-" in row.REF: + len_ref = 0 + else: + len_ref = len(row.REF) + if "-" in row.ALT: + len_alt = 0 + else: + len_alt = len(row.ALT) + if len_ref != len_alt: + indel_len = len_alt - len_ref + if indel_len not in INDEL_COUNT: + INDEL_COUNT[indel_len] = 0 + INDEL_COUNT[indel_len] += 1 + + my_pop_freq = VCF_DEFAULT_POP_FREQ + if ';CAF=' in row.INFO: + caf_str = re.findall(r";CAF=.*?(?=;))", row.INFO)[0] + if ',' in caf_str: + my_pop_freq = float(caf_str[5:].split(',')[1]) + VDAT_COMMON.append((row.chr_start, row.REF, row.ALT, my_pop_freq)) # if we didn't find anything, skip ahead along to the next reference sequence if not len(VDAT_COMMON): From 32112d7e1ae4ba69c30b9ed1ebf5913676c3fba5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 8 Jun 2020 14:03:24 -0500 Subject: [PATCH 051/323] Committing some updates to genMutModel --- utilities/genMutModel.py | 104 ++++++++++++++++++--------------------- 1 file changed, 48 insertions(+), 56 deletions(-) diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index c62db9d..79982ea 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -22,20 +22,25 @@ ######################################################### -# cluster a sorted list -def cluster_list(l: list, delta: float) -> list: - outList = [[l[0]]] - prevVal = l[0] - currentInd = 0 - for n in l[1:]: - if n - prevVal <= delta: - outList[currentInd].append(n) +def cluster_list(list_to_cluster: list, delta: float) -> list: + """ + Clusters a sorted list + :param list_to_cluster: a sorted list + :param delta: the value to compare list items to + :return: a clustered list of values + """ + out_list = [[list_to_cluster[0]]] + previous_value = list_to_cluster[0] + current_index = 0 + for item in list_to_cluster[1:]: + if item - previous_value <= delta: + out_list[current_index].append(item) else: - currentInd += 1 - outList.append([]) - outList[currentInd].append(n) - prevVal = n - return outList + current_index += 1 + out_list.append([]) + out_list[current_index].append(item) + previous_value = item + return out_list def list_2_countDict(l: list) -> dict: @@ -309,9 +314,6 @@ def main(): bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() ref_sequence = str(ref_dict[ref_name].seq) - - # TODO change all this to pandas - # we want only snps # so, no '-' characters allowed, and chrStart must be same as chrEnd snp_df = variants_to_process[~variants_to_process.index.isin(indices_to_indels)] @@ -343,7 +345,7 @@ def main(): if ',' in caf_str: my_pop_freq = float(caf_str[5:].split(',')[1]) VDAT_COMMON.append( - (row.chr_start, row.REF, row.ALT, my_pop_freq)) + (row.chr_start, row.REF, row.REF, row.ALT, my_pop_freq)) else: print('\nError: ref allele in variant call does not match reference.\n') exit(1) @@ -368,70 +370,58 @@ def main(): my_pop_freq = VCF_DEFAULT_POP_FREQ if ';CAF=' in row.INFO: - caf_str = re.findall(r";CAF=.*?(?=;))", row.INFO)[0] + caf_str = re.findall(r";CAF=.*?(?=;)", row.INFO)[0] if ',' in caf_str: my_pop_freq = float(caf_str[5:].split(',')[1]) - VDAT_COMMON.append((row.chr_start, row.REF, row.ALT, my_pop_freq)) + VDAT_COMMON.append((row.chr_start, row.REF, row.REF, row.ALT, my_pop_freq)) # if we didn't find anything, skip ahead along to the next reference sequence if not len(VDAT_COMMON): - print('Found no variants for this reference, moving along...') + print('Found no variants for this reference.') continue - # # identify common mutations - # percentile_var = 95 - if is_vcf: - minVal = np.percentile([n[4] for n in VDAT_COMMON], percentile_var) - for k in sorted(VDAT_COMMON): - if k[4] >= minVal: - COMMON_VARIANTS.append((ref_name, k[0], k[1], k[3], k[4])) - VDAT_COMMON = {(n[0], n[1], n[2], n[3]): n[4] for n in VDAT_COMMON} - else: - N_DONORS = len(TOTAL_DONORS) - VDAT_COMMON = list_2_countDict(VDAT_COMMON) - minVal = int(np.percentile(VDAT_COMMON.values(), percentile_var)) - for k in sorted(VDAT_COMMON.keys()): - if VDAT_COMMON[k] >= minVal: - COMMON_VARIANTS.append((ref_name, k[0], k[1], k[3], VDAT_COMMON[k] / float(N_DONORS))) - - # + min_value = np.percentile([n[4] for n in VDAT_COMMON], percentile_var) + for k in sorted(VDAT_COMMON): + if k[4] >= min_value: + COMMON_VARIANTS.append((ref_name, k[0], k[1], k[3], k[4])) + VDAT_COMMON = {(n[0], n[1], n[2], n[3]): n[4] for n in VDAT_COMMON} + # identify areas that have contained significantly higher random mutation rates - # dist_thresh = 2000 percentile_clust = 97 - qptn = 1000 + scaler = 1000 # identify regions with disproportionately more variants in them VARIANT_POS = sorted([n[0] for n in VDAT_COMMON.keys()]) clustered_pos = cluster_list(VARIANT_POS, dist_thresh) - byLen = [(len(clustered_pos[i]), min(clustered_pos[i]), max(clustered_pos[i]), i) for i in + by_len = [(len(clustered_pos[i]), min(clustered_pos[i]), max(clustered_pos[i]), i) for i in range(len(clustered_pos))] - # byLen = sorted(byLen,reverse=True) - # minLen = int(np.percentile([n[0] for n in byLen],percentile_clust)) - # byLen = [n for n in byLen if n[0] >= minLen] + # Not sure what this was intended to do or why it is commented out. Leaving it here for now. + # by_len = sorted(by_len,reverse=True) + # minLen = int(np.percentile([n[0] for n in by_len],percentile_clust)) + # by_len = [n for n in by_len if n[0] >= minLen] candidate_regions = [] - for n in byLen: - bi = int((n[1] - dist_thresh) / float(qptn)) * qptn - bf = int((n[2] + dist_thresh) / float(qptn)) * qptn + for n in by_len: + bi = int((n[1] - dist_thresh) / float(scaler)) * scaler + bf = int((n[2] + dist_thresh) / float(scaler)) * scaler candidate_regions.append((n[0] / float(bf - bi), max([0, bi]), min([len(ref_dict[ref_name]), bf]))) - minVal = np.percentile([n[0] for n in candidate_regions], percentile_clust) + minimum_value = np.percentile([n[0] for n in candidate_regions], percentile_clust) for n in candidate_regions: - if n[0] >= minVal: + if n[0] >= minimum_value: HIGH_MUT_REGIONS.append((ref_name, n[1], n[2], n[0])) # collapse overlapping regions for i in range(len(HIGH_MUT_REGIONS) - 1, 0, -1): if HIGH_MUT_REGIONS[i - 1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i - 1][0] == \ HIGH_MUT_REGIONS[i][0]: + # Might need to research a more accurate way to get the mutation rate for this region avgMutRate = 0.5 * HIGH_MUT_REGIONS[i - 1][3] + 0.5 * HIGH_MUT_REGIONS[i][ - 3] # not accurate, but I'm lazy + 3] HIGH_MUT_REGIONS[i - 1] = ( HIGH_MUT_REGIONS[i - 1][0], HIGH_MUT_REGIONS[i - 1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) del HIGH_MUT_REGIONS[i] - # # if we didn't count ref trinucs because we found file, read in ref counts from file now - # if os.path.isfile(ref + '.trinucCounts'): print('reading pre-computed trinuc counts...') f = open(ref + '.trinucCounts', 'r') @@ -450,13 +440,15 @@ def main(): f.write(trinuc + '\t' + str(TRINUC_REF_COUNT[trinuc]) + '\n') f.close() - # - # if using an input bed region, make necessary adjustments to trinuc ref counts based on the bed region trinuc counts - # + # if using an input bed region, make necessary adjustments to + # trinuc ref counts based on the bed region trinuc counts + #TODO figure out how to make this next part work if mybed is not None: - if mybed[1] == True: # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts + # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts + if mybed[1] == True: TRINUC_REF_COUNT = TRINUC_BED_COUNT - else: # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs + # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs + else: for k in TRINUC_REF_COUNT.keys(): if k in TRINUC_BED_COUNT: TRINUC_REF_COUNT[k] -= TRINUC_BED_COUNT[k] From e55096b98d0c2edf633d31c501cbeef185bcc2a3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 12 Jun 2020 12:24:43 -0500 Subject: [PATCH 052/323] Cleaning up some names in compute_fraglen --- utilities/compute_fraglen.py | 36 +++++++++++------------ utilities/genMutModel.py | 56 ++++++++++-------------------------- 2 files changed, 33 insertions(+), 59 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index bfbaa4b..c056e44 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -20,16 +20,16 @@ def quick_median(count_dict: dict) -> int: :param count_dict: the counting dictionary to find the median of :return: integer index of the location of the median """ - midPoint = sum(count_dict.values()) // 2 - mySum = 0 - myInd = 0 + mid_point = sum(count_dict.values()) // 2 + my_sum = 0 + my_ind = 0 sk = sorted(count_dict.keys()) - while mySum < midPoint: - mySum += count_dict[sk[myInd]] - if mySum >= midPoint: + while my_sum < mid_point: + my_sum += count_dict[sk[my_ind]] + if my_sum >= mid_point: break - myInd += 1 - return myInd + my_ind += 1 + return my_ind def median_deviation_from_median(count_dict: dict) -> int: @@ -39,11 +39,11 @@ def median_deviation_from_median(count_dict: dict) -> int: :param count_dict: Counting dictionary to analyze :return: index of median of the deviations """ - myMedian = quick_median(count_dict) + my_median = quick_median(count_dict) deviations = {} - for k in sorted(count_dict.keys()): - d = abs(k - myMedian) - deviations[d] = count_dict[k] + for key in sorted(count_dict.keys()): + delta = abs(key - my_median) + deviations[delta] = count_dict[key] return quick_median(deviations) @@ -78,15 +78,15 @@ def count_frags(file: str) -> dict: myRef = splt[2] mapQual = int(splt[4]) mateRef = splt[6] - myTlen = abs(int(splt[8])) + my_tlen = abs(int(splt[8])) # if read is paired, and is first in pair, and is confidently mapped... if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: # and mate is mapped to same reference if mateRef == '=' or mateRef == myRef: - if myTlen not in count_dict: - count_dict[myTlen] = 0 - count_dict[myTlen] += 1 + if my_tlen not in count_dict: + count_dict[my_tlen] = 0 + count_dict[my_tlen] += 1 i += 1 if i % PRINT_EVERY == 0: print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) @@ -113,8 +113,8 @@ def compute_probs(count_dict: dict) -> (list, list): print(k, count_dict[k]) values.append(k) probabilities.append(count_dict[k]) - countSum = float(sum(probabilities)) - probabilities = [n / countSum for n in probabilities] + count_sum = float(sum(probabilities)) + probabilities = [n / count_sum for n in probabilities] return values, probabilities diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 79982ea..ba42ad8 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -52,8 +52,8 @@ def list_2_countDict(l: list) -> dict: return cDict -def getBedTracks(fn: str) -> dict: - f = open(fn, 'r') +def getBedTracks(file_name: str) -> dict: + f = open(file_name, 'r') trackDict = {} for line in f: splt = line.strip().split('\t') @@ -63,7 +63,7 @@ def getBedTracks(fn: str) -> dict: f.close() return trackDict - +#TODO Convert this function to pandas def getTrackLen(trackDict: dict) -> float: totSum = 0 for k in trackDict.keys(): @@ -83,7 +83,7 @@ def isInBed(track, ind): ##################################### -# main() #c +# main() # ##################################### @@ -104,11 +104,10 @@ def main(): help="Mutation file for organism in VCF format") parser.add_argument('-o', type=str, required=True, metavar='/path/to/output/and/prefix', help="Name of output file (final model will append \'.p\')") - parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include', default=None, + parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include ' + '(use bedtools complement if you have a ' + 'bed of exclusion areas)', default=None, help="only_use_these_regions.bed") - # This was not implemented correctly in the original file. Will circle back to it. - # parser.add_argument('-be', type=str, required=False, metavar='Bed file of regions to exclued', default=None, - # help="exclude_these_regions.bed") parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, help='save trinucleotide counts for reference') parser.add_argument('--human-sample', required=False, action='store_true', default=False, @@ -124,7 +123,6 @@ def main(): # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} - TRINUC_BED_COUNT = {} # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs @@ -142,7 +140,7 @@ def main(): # identify regions that have significantly higher local mutation rates than the average HIGH_MUT_REGIONS = [] - # Process bed file + # Process bed file, is_bed = False mybed = None if args.bi is not None: @@ -283,9 +281,9 @@ def main(): # skip if trinuc contains invalid characters, or not in specified bed region if not trinuc in VALID_TRINUC: continue - if trinuc not in TRINUC_BED_COUNT: - TRINUC_BED_COUNT[trinuc] = 0 - TRINUC_BED_COUNT[trinuc] += 1 + if trinuc not in TRINUC_REF_COUNT: + TRINUC_REF_COUNT[trinuc] = 0 + TRINUC_REF_COUNT[trinuc] += 1 elif not os.path.isfile(ref + '.trinucCounts'): for i in range(len(ref_dict[ref_name]) - 2): @@ -440,19 +438,6 @@ def main(): f.write(trinuc + '\t' + str(TRINUC_REF_COUNT[trinuc]) + '\n') f.close() - # if using an input bed region, make necessary adjustments to - # trinuc ref counts based on the bed region trinuc counts - #TODO figure out how to make this next part work - if mybed is not None: - # we are restricting our attention to bed regions, so ONLY use bed region trinuc counts - if mybed[1] == True: - TRINUC_REF_COUNT = TRINUC_BED_COUNT - # we are only looking outside bed regions, so subtract bed region trinucs from entire reference trinucs - else: - for k in TRINUC_REF_COUNT.keys(): - if k in TRINUC_BED_COUNT: - TRINUC_REF_COUNT[k] -= TRINUC_BED_COUNT[k] - # if for some reason we didn't find any valid input variants, exit gracefully... totalVar = SNP_COUNT + sum(INDEL_COUNT.values()) if totalVar == 0: @@ -460,15 +445,8 @@ def main(): '\nError: No valid variants were found, model could not be created. (Are you using the correct reference?)\n') exit(1) - """ ########################################################################## - ### COMPUTE PROBABILITIES ### - ########################################################################## """ - # for k in sorted(TRINUC_REF_COUNT.keys()): - # print k, TRINUC_REF_COUNT[k] - # - # for k in sorted(TRINUC_TRANSITION_COUNT.keys()): - # print k, TRINUC_TRANSITION_COUNT[k] + ### COMPUTE PROBABILITIES # frequency that each trinuc mutated into anything else TRINUC_MUT_PROB = {} @@ -498,17 +476,13 @@ def main(): SNP_FREQ = SNP_COUNT / float(totalVar) AVG_INDEL_FREQ = 1. - SNP_FREQ INDEL_FREQ = {k: (INDEL_COUNT[k] / float(totalVar)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} - if mybed is not None: - if mybed[1] == True: - AVG_MUT_RATE = totalVar / float(getTrackLen(mybed[0])) - else: - AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN - getTrackLen(mybed[0])) + #TODO fix this get track len function + if is_bed: + AVG_MUT_RATE = totalVar / float(getTrackLen(mybed)) else: AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN) - # # if values weren't found in data, appropriately append null entries - # printTrinucWarning = False for trinuc in VALID_TRINUC: trinuc_mut = [trinuc[0] + n + trinuc[2] for n in VALID_NUCL if n != trinuc[1]] From 5fbfb3221642cd97b2336454cad7762a10762fc7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 12 Jun 2020 14:11:20 -0500 Subject: [PATCH 053/323] Cleaning up some names in compute_fraglen --- utilities/compute_fraglen.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index c056e44..773300e 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -107,12 +107,12 @@ def compute_probs(count_dict: dict) -> (list, list): med = quick_median(count_dict) mdm = median_deviation_from_median(count_dict) - for k in sorted(count_dict.keys()): - if 0 < k < med + FILTER_MEDDEV_M * mdm: - if count_dict[k] >= FILTER_MINREADS: - print(k, count_dict[k]) - values.append(k) - probabilities.append(count_dict[k]) + for key in sorted(count_dict.keys()): + if 0 < key < med + FILTER_MEDDEV_M * mdm: + if count_dict[key] >= FILTER_MINREADS: + print(key, count_dict[key]) + values.append(key) + probabilities.append(count_dict[key]) count_sum = float(sum(probabilities)) probabilities = [n / count_sum for n in probabilities] return values, probabilities From af869aaeb82db4ed757c03f127e150fbea771d3d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 11:13:58 -0500 Subject: [PATCH 054/323] fixing the median functions --- utilities/compute_fraglen.py | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 773300e..9c4cd9a 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -20,16 +20,17 @@ def quick_median(count_dict: dict) -> int: :param count_dict: the counting dictionary to find the median of :return: integer index of the location of the median """ - mid_point = sum(count_dict.values()) // 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - return my_ind + list = [] + for key in count_dict.keys(): + for i in range(count_dict[key]): + list.append(key) + list = sorted(list) + midpoint = len(list)//2 + if len(list) % 2 == 0: + median = (list[midpoint] + list[midpoint-1])//2 + else: + median = list[midpoint] + return median def median_deviation_from_median(count_dict: dict) -> int: @@ -42,11 +43,11 @@ def median_deviation_from_median(count_dict: dict) -> int: my_median = quick_median(count_dict) deviations = {} for key in sorted(count_dict.keys()): - delta = abs(key - my_median) - deviations[delta] = count_dict[key] + X_value = abs(key - my_median) + deviations[X_value] = count_dict[key] + print(deviations) return quick_median(deviations) - def count_frags(file: str) -> dict: """ Takes a sam file input and creates a counting dictionary of the number of reads that are paired, From bc0adf28bdcf8449ef34b59d2bd3c110e3e2dc0e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 11:27:19 -0500 Subject: [PATCH 055/323] fixing the median functions --- utilities/compute_fraglen.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 9c4cd9a..a2ae677 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -18,7 +18,7 @@ def quick_median(count_dict: dict) -> int: """ Finds the median of a counting dictionary :param count_dict: the counting dictionary to find the median of - :return: integer index of the location of the median + :return: The median of the set """ list = [] for key in count_dict.keys(): @@ -33,6 +33,19 @@ def quick_median(count_dict: dict) -> int: return median +def quick_median_old(count_dict: dict) -> int: + mid_point = sum(count_dict.values()) / 2 + my_sum = 0 + my_ind = 0 + sk = sorted(count_dict.keys()) + while my_sum < mid_point: + my_sum += count_dict[sk[my_ind]] + if my_sum >= mid_point: + break + my_ind += 1 + return sk[my_ind] + + def median_deviation_from_median(count_dict: dict) -> int: """ calculates the deviation from the median of each element of counting dictionary, @@ -45,7 +58,6 @@ def median_deviation_from_median(count_dict: dict) -> int: for key in sorted(count_dict.keys()): X_value = abs(key - my_median) deviations[X_value] = count_dict[key] - print(deviations) return quick_median(deviations) def count_frags(file: str) -> dict: From d20dbde4e4a3a3ef8d5a6f272f33ac9e7d7adc91 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 13:03:43 -0500 Subject: [PATCH 056/323] fixing the median functions --- utilities/compute_fraglen.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index a2ae677..4a2dfc7 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -20,16 +20,21 @@ def quick_median(count_dict: dict) -> int: :param count_dict: the counting dictionary to find the median of :return: The median of the set """ - list = [] - for key in count_dict.keys(): - for i in range(count_dict[key]): - list.append(key) - list = sorted(list) - midpoint = len(list)//2 - if len(list) % 2 == 0: - median = (list[midpoint] + list[midpoint-1])//2 + mid_point = sum(count_dict.values()) / 2 + my_sum = 0 + my_ind = 0 + sk = sorted(count_dict.keys()) + while my_sum < mid_point: + my_sum += count_dict[sk[my_ind]] + if my_sum >= mid_point: + break + my_ind += 1 + if sum(count_dict.values())%2 == 0: + print(sk[my_ind]) + print(sk[my_ind-1]) + median = (sk[my_ind] + sk[my_ind-1])//2 else: - median = list[midpoint] + median = sk[my_ind] return median From 40fa82dad67b80674d9754499a3fedf9e7e10747 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 13:04:59 -0500 Subject: [PATCH 057/323] fixing the median functions --- utilities/compute_fraglen.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 4a2dfc7..79bda95 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -29,9 +29,7 @@ def quick_median(count_dict: dict) -> int: if my_sum >= mid_point: break my_ind += 1 - if sum(count_dict.values())%2 == 0: - print(sk[my_ind]) - print(sk[my_ind-1]) + if sum(count_dict.values()) % 2 == 0: median = (sk[my_ind] + sk[my_ind-1])//2 else: median = sk[my_ind] From f36cd6ee2bb8370b85f3af6dc7c76175b2afe5e2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 13:10:07 -0500 Subject: [PATCH 058/323] fixing the median functions --- utilities/compute_fraglen.py | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 79bda95..0993410 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -16,7 +16,9 @@ def quick_median(count_dict: dict) -> int: """ - Finds the median of a counting dictionary + Finds the median of a counting dictionary. A counting dictionary is a representation of a list of data. + For example, the data [1,1,2,2,2] could be represented in dictionary form as {1:2, 2:3}, indicating that 1 is + repeated twice and 2 is repeating three times. :param count_dict: the counting dictionary to find the median of :return: The median of the set """ @@ -36,19 +38,6 @@ def quick_median(count_dict: dict) -> int: return median -def quick_median_old(count_dict: dict) -> int: - mid_point = sum(count_dict.values()) / 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - return sk[my_ind] - - def median_deviation_from_median(count_dict: dict) -> int: """ calculates the deviation from the median of each element of counting dictionary, From aefed5bfcd21050f824a9270615ffa92ba8ed657 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 13:17:57 -0500 Subject: [PATCH 059/323] fixing the median functions --- utilities/compute_fraglen.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 0993410..945199c 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -22,15 +22,20 @@ def quick_median(count_dict: dict) -> int: :param count_dict: the counting dictionary to find the median of :return: The median of the set """ + # The sum of the values of the counting dictionary tells us how long the expanded list is. To find the midpoint + # We divide by 2 mid_point = sum(count_dict.values()) / 2 my_sum = 0 my_ind = 0 sk = sorted(count_dict.keys()) + # Here we basically count up one group of dictionary values at a time until we're at the midpoint while my_sum < mid_point: my_sum += count_dict[sk[my_ind]] if my_sum >= mid_point: break my_ind += 1 + # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an + # odd number of values, or the average of the two middle valuse if there are an even number if sum(count_dict.values()) % 2 == 0: median = (sk[my_ind] + sk[my_ind-1])//2 else: @@ -40,16 +45,21 @@ def quick_median(count_dict: dict) -> int: def median_deviation_from_median(count_dict: dict) -> int: """ - calculates the deviation from the median of each element of counting dictionary, - then returns the median of that dictionary + Calculates the deviation from the median of each element of counting dictionary, + then returns the median of that dictionary. A counting dictionary such as {2: 3, 5:2} expands to [2,2,2,5,5] :param count_dict: Counting dictionary to analyze :return: index of median of the deviations """ my_median = quick_median(count_dict) deviations = {} for key in sorted(count_dict.keys()): + # We take the absolute difference between the value and the median X_value = abs(key - my_median) + # We retain the number of items for each element of the dictionary + # This is equivalent to subtracting the median from each value of the expanded dataset deviations[X_value] = count_dict[key] + # Taking the median of this dataset gives us the median deviation from the median + # (also called the Median Absolute Deviation) return quick_median(deviations) def count_frags(file: str) -> dict: From c3c360764fcafb60c1e99dfe495c325298b698fc Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 15 Jun 2020 13:38:55 -0500 Subject: [PATCH 060/323] Update compute_fraglen.py --- utilities/compute_fraglen.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 945199c..e38d066 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -24,23 +24,26 @@ def quick_median(count_dict: dict) -> int: """ # The sum of the values of the counting dictionary tells us how long the expanded list is. To find the midpoint # We divide by 2 - mid_point = sum(count_dict.values()) / 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - # Here we basically count up one group of dictionary values at a time until we're at the midpoint - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an - # odd number of values, or the average of the two middle valuse if there are an even number - if sum(count_dict.values()) % 2 == 0: - median = (sk[my_ind] + sk[my_ind-1])//2 + if not count_dict: + raise Exception('This Counting Dictionary is Empty. Please input a dictionary with at least one entry.') else: - median = sk[my_ind] - return median + mid_point = sum(count_dict.values()) / 2 + my_sum = 0 + my_ind = 0 + sk = sorted(count_dict.keys()) + # Here we basically count up one group of dictionary values at a time until we're at the midpoint + while my_sum < mid_point: + my_sum += count_dict[sk[my_ind]] + if my_sum >= mid_point: + break + my_ind += 1 + # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an + # odd number of values, or the average of the two middle valuse if there are an even number + if sum(count_dict.values()) % 2 == 0: + median = (sk[my_ind] + sk[my_ind-1])//2 + else: + median = sk[my_ind] + return median def median_deviation_from_median(count_dict: dict) -> int: From 8d347b07714bb9337d60a57d86388584d1186739 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 15 Jun 2020 16:39:07 -0500 Subject: [PATCH 061/323] Added a notebook for testing compute_fraglen.py --- Testing_compute_fraglen.ipynb | 881 ++++++++++++++++++++++++++++++++++ utilities/compute_fraglen.py | 39 +- utilities/genMutModel.py | 10 +- 3 files changed, 907 insertions(+), 23 deletions(-) create mode 100644 Testing_compute_fraglen.ipynb diff --git a/Testing_compute_fraglen.ipynb b/Testing_compute_fraglen.ipynb new file mode 100644 index 0000000..730aa16 --- /dev/null +++ b/Testing_compute_fraglen.ipynb @@ -0,0 +1,881 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 363, + "metadata": {}, + "outputs": [], + "source": [ + "cd = {1:4, 2:6, 3:1, 4:8, 5:3, 10:2}" + ] + }, + { + "cell_type": "code", + "execution_count": 392, + "metadata": {}, + "outputs": [], + "source": [ + "list = []\n", + "for key in cd.keys():\n", + " for i in range(cd[key]):\n", + " list.append(key)\n", + "list = sorted(list)" + ] + }, + { + "cell_type": "code", + "execution_count": 393, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "data": { + "text/plain": [ + "[202,\n", + " 221,\n", + " 234,\n", + " 240,\n", + " 245,\n", + " 251,\n", + " 251,\n", + " 252,\n", + " 254,\n", + " 255,\n", + " 256,\n", + " 258,\n", + " 258,\n", + " 259,\n", + " 259,\n", + " 263,\n", + " 263,\n", + " 264,\n", + " 266,\n", + " 267,\n", + " 268,\n", + " 269,\n", + " 269,\n", + " 270,\n", + " 271,\n", + " 273,\n", + " 273,\n", + " 274,\n", + " 274,\n", + " 275,\n", + " 276,\n", + " 276,\n", + " 277,\n", + " 278,\n", + " 278,\n", + " 278,\n", + " 280,\n", + " 280,\n", + " 280,\n", + " 280,\n", + " 280,\n", + " 281,\n", + " 282,\n", + " 282,\n", + " 283,\n", + " 283,\n", + " 284,\n", + " 284,\n", + " 285,\n", + " 285,\n", + " 286,\n", + " 287,\n", + " 288,\n", + " 288,\n", + " 288,\n", + " 288,\n", + " 288,\n", + " 289,\n", + " 290,\n", + " 291,\n", + " 291,\n", + " 292,\n", + " 293,\n", + " 294,\n", + " 294,\n", + " 294,\n", + " 294,\n", + " 294,\n", + " 295,\n", + " 295,\n", + " 295,\n", + " 296,\n", + " 296,\n", + " 297,\n", + " 297,\n", + " 297,\n", + " 298,\n", + " 298,\n", + " 298,\n", + " 298,\n", + " 298,\n", + " 299,\n", + " 299,\n", + " 300,\n", + " 300,\n", + " 300,\n", + " 300,\n", + " 301,\n", + " 301,\n", + " 302,\n", + " 303,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 304,\n", + " 305,\n", + " 305,\n", + " 305,\n", + " 305,\n", + " 306,\n", + " 307,\n", + " 307,\n", + " 307,\n", + " 307,\n", + " 307,\n", + " 309,\n", + " 309,\n", + " 309,\n", + " 309,\n", + " 309,\n", + " 309,\n", + " 310,\n", + " 311,\n", + " 312,\n", + " 312,\n", + " 312,\n", + " 313,\n", + " 313,\n", + " 313,\n", + " 314,\n", + " 315,\n", + " 315,\n", + " 315,\n", + " 316,\n", + " 317,\n", + " 318,\n", + " 318,\n", + " 319,\n", + " 320,\n", + " 320,\n", + " 320,\n", + " 321,\n", + " 321,\n", + " 322,\n", + " 322,\n", + " 323,\n", + " 324,\n", + " 324,\n", + " 325,\n", + " 326,\n", + " 327,\n", + " 327,\n", + " 330,\n", + " 330,\n", + " 330,\n", + " 331,\n", + " 331,\n", + " 331,\n", + " 331,\n", + " 331,\n", + " 331,\n", + " 332,\n", + " 332,\n", + " 332,\n", + " 333,\n", + " 334,\n", + " 334,\n", + " 335,\n", + " 335,\n", + " 336,\n", + " 337,\n", + " 340,\n", + " 342,\n", + " 343,\n", + " 345,\n", + " 346,\n", + " 349,\n", + " 350,\n", + " 350,\n", + " 351,\n", + " 351,\n", + " 354,\n", + " 354,\n", + " 355,\n", + " 355,\n", + " 357,\n", + " 357,\n", + " 366,\n", + " 391,\n", + " 702,\n", + " 170812,\n", + " 170867,\n", + " 176223,\n", + " 176232,\n", + " 176246,\n", + " 176246,\n", + " 176264,\n", + " 176823,\n", + " 176843,\n", + " 176853,\n", + " 176857,\n", + " 176872,\n", + " 176873,\n", + " 176882,\n", + " 176901,\n", + " 227861,\n", + " 227929,\n", + " 228788,\n", + " 234681,\n", + " 234709,\n", + " 266239,\n", + " 334312,\n", + " 334397,\n", + " 355486,\n", + " 356237,\n", + " 356286,\n", + " 358848,\n", + " 414700,\n", + " 570127,\n", + " 570166,\n", + " 174159732,\n", + " 223639769,\n", + " 223816267,\n", + " 242562011]" + ] + }, + "execution_count": 393, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "list" + ] + }, + { + "cell_type": "code", + "execution_count": 369, + "metadata": {}, + "outputs": [], + "source": [ + "def quick_median(count_dict: dict) -> int:\n", + " \"\"\"\n", + " Finds the median of a counting dictionary\n", + " :param count_dict: the counting dictionary to find the median of\n", + " :return: integer index of the location of the median\n", + " \"\"\"\n", + " list = []\n", + " for key in count_dict.keys():\n", + " for i in range(count_dict[key]):\n", + " list.append(key)\n", + " list = sorted(list)\n", + " midpoint = len(list)//2\n", + " if len(list)%2 == 0:\n", + " median = (list[midpoint] + list[midpoint-1])//2\n", + " else:\n", + " median = list[midpoint]\n", + " return median" + ] + }, + { + "cell_type": "code", + "execution_count": 305, + "metadata": {}, + "outputs": [], + "source": [ + "def quick_median_old(count_dict: dict) -> int:\n", + " mid_point = sum(count_dict.values()) / 2\n", + " my_sum = 0\n", + " my_ind = 0\n", + " sk = sorted(count_dict.keys())\n", + " while my_sum < mid_point:\n", + " my_sum += count_dict[sk[my_ind]]\n", + " if my_sum >= mid_point:\n", + " break\n", + " my_ind += 1\n", + " return sk[my_ind]" + ] + }, + { + "cell_type": "code", + "execution_count": 323, + "metadata": {}, + "outputs": [], + "source": [ + "cd = {4: 10, 236: 13, 99: 43, 88: 43, 127: 15}" + ] + }, + { + "cell_type": "code", + "execution_count": 370, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "4" + ] + }, + "execution_count": 370, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 325, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "99" + ] + }, + "execution_count": 325, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median_old(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 326, + "metadata": {}, + "outputs": [], + "source": [ + "cd2 = {4: 10, 236: 13, 99: 43, 88: 43, 127: 14, 8:102}" + ] + }, + { + "cell_type": "code", + "execution_count": 327, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "88" + ] + }, + "execution_count": 327, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median(cd2)" + ] + }, + { + "cell_type": "code", + "execution_count": 328, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "88" + ] + }, + "execution_count": 328, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median_old(cd2)" + ] + }, + { + "cell_type": "code", + "execution_count": 308, + "metadata": {}, + "outputs": [], + "source": [ + "my_median1 = quick_median(cd)\n", + "my_median2 = quick_median(cd2)" + ] + }, + { + "cell_type": "code", + "execution_count": 309, + "metadata": {}, + "outputs": [], + "source": [ + "def median_deviation_from_median(count_dict: dict) -> int:\n", + " \"\"\"\n", + " calculates the deviation from the median of each element of counting dictionary,\n", + " then returns the median of that dictionary\n", + " :param count_dict: Counting dictionary to analyze\n", + " :return: index of median of the deviations\n", + " \"\"\"\n", + " my_median = quick_median(count_dict)\n", + " deviations = {}\n", + " for key in sorted(count_dict.keys()):\n", + " X_value = abs(key - my_median)\n", + " deviations[X_value] = count_dict[key]\n", + " print(deviations)\n", + " return quick_median(deviations)" + ] + }, + { + "cell_type": "code", + "execution_count": 342, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{95: 10, 11: 43, 0: 43, 28: 15, 137: 13}\n" + ] + }, + { + "data": { + "text/plain": [ + "11" + ] + }, + "execution_count": 342, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "median_deviation_from_median(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 353, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137]\n" + ] + } + ], + "source": [ + "print(sorted([abs(x-99) for x in list]))" + ] + }, + { + "cell_type": "code", + "execution_count": 329, + "metadata": {}, + "outputs": [], + "source": [ + "cd3 = {1:100, 100:100}" + ] + }, + { + "cell_type": "code", + "execution_count": 330, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "50" + ] + }, + "execution_count": 330, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median(cd3)" + ] + }, + { + "cell_type": "code", + "execution_count": 331, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "1" + ] + }, + "execution_count": 331, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median_old(cd3)" + ] + }, + { + "cell_type": "code", + "execution_count": 401, + "metadata": {}, + "outputs": [], + "source": [ + "def quick_median_new(count_dict: dict) -> int:\n", + " mid_point = sum(count_dict.values()) / 2\n", + " my_sum = 0\n", + " my_ind = 0\n", + " sk = sorted(count_dict.keys())\n", + " while my_sum < mid_point:\n", + " my_sum += count_dict[sk[my_ind]]\n", + " if my_sum >= mid_point:\n", + " break\n", + " my_ind += 1\n", + " if sum(count_dict.values())%2 == 0:\n", + " median = (sk[my_ind] + sk[my_ind-1])//2\n", + " else:\n", + " median = sk[my_ind]\n", + " return median" + ] + }, + { + "cell_type": "code", + "execution_count": 378, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "12.0\n", + "4\n", + "10\n", + "11\n", + "19\n" + ] + }, + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 378, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "quick_median_new(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 315, + "metadata": {}, + "outputs": [], + "source": [ + "def count_frags(file: str) -> dict:\n", + " \"\"\"\n", + " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", + " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", + " :param file: A sam input file\n", + " :return: A dictionary of the counts of the above reads\n", + " \"\"\"\n", + " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", + " count_dict = {}\n", + " PRINT_EVERY = 100000\n", + " i = 0\n", + " # Check if the file is sam or bam and decide how to open based on that\n", + " if file[-4:] == \".sam\":\n", + " file_to_parse = open(file, 'r')\n", + " elif file[-4:] == \".bam\":\n", + " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", + " else:\n", + " print(\"Unknown file type, must be bam or sam\")\n", + " exit(1)\n", + "\n", + " for item in file_to_parse:\n", + " # Need to convert bam iterable objects into strings for the next part\n", + " line = str(item)\n", + " # Skip all comments and headers\n", + " if line[0] == '#' or line[0] == '@':\n", + " continue\n", + " splt = line.strip().split('\\t')\n", + " samFlag = int(splt[1])\n", + " myRef = splt[2]\n", + " mapQual = int(splt[4])\n", + " mateRef = splt[6]\n", + " myTlen = abs(int(splt[8]))\n", + "\n", + " # if read is paired, and is first in pair, and is confidently mapped...\n", + " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", + " # and mate is mapped to same reference\n", + " if mateRef == '=' or mateRef == myRef:\n", + " if myTlen not in count_dict:\n", + " count_dict[myTlen] = 0\n", + " count_dict[myTlen] += 1\n", + " i += 1\n", + " if i % PRINT_EVERY == 0:\n", + " print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict))\n", + " return count_dict" + ] + }, + { + "cell_type": "code", + "execution_count": 391, + "metadata": {}, + "outputs": [], + "source": [ + "cd = count_frags(\"C:/Users/joshf/Documents/work_stuff/neat_data/baby.sam\")" + ] + }, + { + "cell_type": "code", + "execution_count": 317, + "metadata": {}, + "outputs": [], + "source": [ + "FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", + "count_dict = {}\n", + "PRINT_EVERY = 100000\n", + "i = 0" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [], + "source": [ + "for item in file_to_parse:\n", + " # Need to convert bam iterable objects into strings for the next part\n", + " line = str(item)\n", + " # Skip all comments and headers\n", + " if line[0] == '#' or line[0] == '@':\n", + " continue\n", + " splt = line.strip().split('\\t')\n", + " samFlag = int(splt[1])\n", + " myRef = splt[2]\n", + " mapQual = int(splt[4])\n", + " mateRef = splt[6]\n", + " myTlen = abs(int(splt[8]))" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "128" + ] + }, + "execution_count": 52, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(count_dict)" + ] + }, + { + "cell_type": "code", + "execution_count": 361, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_probs(count_dict: dict) -> (list, list):\n", + " \"\"\"\n", + " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", + " deviations from the median.\n", + " :param count_dict: A dictionary of fragments with counts\n", + " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", + " \"\"\"\n", + " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", + " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", + " values = []\n", + " probabilities = []\n", + " med = quick_median(count_dict)\n", + " mdm = median_deviation_from_median(count_dict)\n", + "\n", + " for key in sorted(count_dict.keys()):\n", + " if 0 < key < med + FILTER_MEDDEV_M * mdm:\n", + " if count_dict[key] >= FILTER_MINREADS:\n", + " print(key, count_dict[key])\n", + " values.append(key)\n", + " probabilities.append(count_dict[key])\n", + " count_sum = float(sum(probabilities))\n", + " probabilities = [n / count_sum for n in probabilities]\n", + " return values, probabilities" + ] + }, + { + "cell_type": "code", + "execution_count": 362, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{84: 10, 80: 102, 0: 43, 11: 43, 39: 14, 148: 13}\n", + "8 102\n" + ] + }, + { + "data": { + "text/plain": [ + "([8], [1.0])" + ] + }, + "execution_count": 362, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "compute_probs(cd2)" + ] + }, + { + "cell_type": "code", + "execution_count": 394, + "metadata": {}, + "outputs": [], + "source": [ + "import timeit" + ] + }, + { + "cell_type": "code", + "execution_count": 395, + "metadata": {}, + "outputs": [], + "source": [ + "def wrapper(func, *args, **kwargs):\n", + " def wrapped():\n", + " return func(*args, **kwargs)\n", + " return wrapped" + ] + }, + { + "cell_type": "code", + "execution_count": 404, + "metadata": {}, + "outputs": [ + { + "ename": "ModuleNotFoundError", + "evalue": "No module named 'pysam'", + "output_type": "error", + "traceback": [ + "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", + "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpysam\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mcd\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcount_frags\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"C:/Users/joshf/Documents/work_stuff/neat_data/WGS_chr20_21_22_normal.bam\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", + "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'pysam'" + ] + } + ], + "source": [ + "import pysam\n", + "cd = count_frags(\"C:/Users/joshf/Documents/work_stuff/neat_data/WGS_chr20_21_22_normal.bam\")" + ] + }, + { + "cell_type": "code", + "execution_count": 397, + "metadata": {}, + "outputs": [], + "source": [ + "wrapped = wrapper(quick_median, cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 399, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.06138989998726174" + ] + }, + "execution_count": 399, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "timeit.timeit(wrapped, number=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 402, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.01676309999311343" + ] + }, + "execution_count": 402, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "wrapped2 = wrapper(quick_median_new, cd)\n", + "timeit.timeit(wrapped2, number=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.6" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 945199c..e616067 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -24,26 +24,29 @@ def quick_median(count_dict: dict) -> int: """ # The sum of the values of the counting dictionary tells us how long the expanded list is. To find the midpoint # We divide by 2 - mid_point = sum(count_dict.values()) / 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - # Here we basically count up one group of dictionary values at a time until we're at the midpoint - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an - # odd number of values, or the average of the two middle valuse if there are an even number - if sum(count_dict.values()) % 2 == 0: - median = (sk[my_ind] + sk[my_ind-1])//2 + if not count_dict: + raise Exception('Empty counting dictionary. Check that sam input was correctly formatted.') else: - median = sk[my_ind] + mid_point = sum(count_dict.values()) / 2 + my_sum = 0 + my_ind = 0 + sk = sorted(count_dict.keys()) + # Here we basically count up one group of dictionary values at a time until we're at the midpoint + while my_sum < mid_point: + my_sum += count_dict[sk[my_ind]] + if my_sum >= mid_point: + break + my_ind += 1 + # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an + # odd number of values, or the average of the two middle values if there are an even number + if sum(count_dict.values()) % 2 == 0: + median = (sk[my_ind] + sk[my_ind-1])//2 + else: + median = sk[my_ind] return median -def median_deviation_from_median(count_dict: dict) -> int: +def median_absolute_deviation(count_dict: dict) -> int: """ Calculates the deviation from the median of each element of counting dictionary, then returns the median of that dictionary. A counting dictionary such as {2: 3, 5:2} expands to [2,2,2,5,5] @@ -104,7 +107,7 @@ def count_frags(file: str) -> dict: count_dict[my_tlen] += 1 i += 1 if i % PRINT_EVERY == 0: - print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) + print('---', i, quick_median(count_dict), median_absolute_deviation(count_dict)) return count_dict @@ -120,7 +123,7 @@ def compute_probs(count_dict: dict) -> (list, list): values = [] probabilities = [] med = quick_median(count_dict) - mdm = median_deviation_from_median(count_dict) + mdm = median_absolute_deviation(count_dict) for key in sorted(count_dict.keys()): if 0 < key < med + FILTER_MEDDEV_M * mdm: diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index ba42ad8..901ae3b 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -64,11 +64,11 @@ def getBedTracks(file_name: str) -> dict: return trackDict #TODO Convert this function to pandas -def getTrackLen(trackDict: dict) -> float: +def get_track_len(track_df: pd.DataFrame) -> float: totSum = 0 - for k in trackDict.keys(): - for i in range(0, len(trackDict[k]), 2): - totSum += trackDict[k][i + 1] - trackDict[k][i] + 1 + for k in track_df.keys(): + for i in range(0, len(track_df[k]), 2): + totSum += track_df[k][i + 1] - track_df[k][i] + 1 return totSum @@ -478,7 +478,7 @@ def main(): INDEL_FREQ = {k: (INDEL_COUNT[k] / float(totalVar)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} #TODO fix this get track len function if is_bed: - AVG_MUT_RATE = totalVar / float(getTrackLen(mybed)) + AVG_MUT_RATE = totalVar / float(get_track_len(mybed)) else: AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN) From 24155679bf393d4991bb86967c2f15bb64131972 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 16 Jun 2020 13:22:08 -0500 Subject: [PATCH 062/323] Eliminated a stray line --- utilities/compute_gc.py | 1 - 1 file changed, 1 deletion(-) diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 5d9b7bc..9bd695e 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -51,7 +51,6 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: current_ref = None current_cov = 0 lines_processed = 0 - print_every = 1000000 f = open(file, 'r') for line in f: From af5e28131d2e14ad2bb4024d2b5e1b460b4cb960 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 16 Jun 2020 18:07:44 -0500 Subject: [PATCH 063/323] Updating compute_fraglen.py with the datalist method. --- Testing_compute_fraglen.ipynb | 1396 ++++++++++++++++++++++----------- utilities/compute_fraglen.py | 124 ++- 2 files changed, 975 insertions(+), 545 deletions(-) diff --git a/Testing_compute_fraglen.ipynb b/Testing_compute_fraglen.ipynb index 730aa16..c187b88 100644 --- a/Testing_compute_fraglen.ipynb +++ b/Testing_compute_fraglen.ipynb @@ -2,16 +2,59 @@ "cells": [ { "cell_type": "code", - "execution_count": 363, + "execution_count": 15, + "metadata": { + "scrolled": true + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Defaulting to user installation because normal site-packages is not writeable\n", + "Collecting ipython-autotime\n", + " Downloading ipython-autotime-0.1.tar.bz2 (1.2 kB)\n", + "Could not build wheels for ipython-autotime, since package 'wheel' is not installed.\n", + "Installing collected packages: ipython-autotime\n", + " Running setup.py install for ipython-autotime ... \u001b[?25ldone\n", + "\u001b[?25hSuccessfully installed ipython-autotime-0.1\n", + "\u001b[33mWARNING: You are using pip version 20.1; however, version 20.1.1 is available.\n", + "You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.\u001b[0m\n" + ] + } + ], + "source": [ + "!pip install ipython-autotime\n", + "%load_ext autotime" + ] + }, + { + "cell_type": "code", + "execution_count": 16, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 628 µs\n" + ] + } + ], "source": [ "cd = {1:4, 2:6, 3:1, 4:8, 5:3, 10:2}" ] }, { "cell_type": "code", - "execution_count": 392, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -24,246 +67,27 @@ }, { "cell_type": "code", - "execution_count": 393, + "execution_count": null, "metadata": { "scrolled": true }, - "outputs": [ - { - "data": { - "text/plain": [ - "[202,\n", - " 221,\n", - " 234,\n", - " 240,\n", - " 245,\n", - " 251,\n", - " 251,\n", - " 252,\n", - " 254,\n", - " 255,\n", - " 256,\n", - " 258,\n", - " 258,\n", - " 259,\n", - " 259,\n", - " 263,\n", - " 263,\n", - " 264,\n", - " 266,\n", - " 267,\n", - " 268,\n", - " 269,\n", - " 269,\n", - " 270,\n", - " 271,\n", - " 273,\n", - " 273,\n", - " 274,\n", - " 274,\n", - " 275,\n", - " 276,\n", - " 276,\n", - " 277,\n", - " 278,\n", - " 278,\n", - " 278,\n", - " 280,\n", - " 280,\n", - " 280,\n", - " 280,\n", - " 280,\n", - " 281,\n", - " 282,\n", - " 282,\n", - " 283,\n", - " 283,\n", - " 284,\n", - " 284,\n", - " 285,\n", - " 285,\n", - " 286,\n", - " 287,\n", - " 288,\n", - " 288,\n", - " 288,\n", - " 288,\n", - " 288,\n", - " 289,\n", - " 290,\n", - " 291,\n", - " 291,\n", - " 292,\n", - " 293,\n", - " 294,\n", - " 294,\n", - " 294,\n", - " 294,\n", - " 294,\n", - " 295,\n", - " 295,\n", - " 295,\n", - " 296,\n", - " 296,\n", - " 297,\n", - " 297,\n", - " 297,\n", - " 298,\n", - " 298,\n", - " 298,\n", - " 298,\n", - " 298,\n", - " 299,\n", - " 299,\n", - " 300,\n", - " 300,\n", - " 300,\n", - " 300,\n", - " 301,\n", - " 301,\n", - " 302,\n", - " 303,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 304,\n", - " 305,\n", - " 305,\n", - " 305,\n", - " 305,\n", - " 306,\n", - " 307,\n", - " 307,\n", - " 307,\n", - " 307,\n", - " 307,\n", - " 309,\n", - " 309,\n", - " 309,\n", - " 309,\n", - " 309,\n", - " 309,\n", - " 310,\n", - " 311,\n", - " 312,\n", - " 312,\n", - " 312,\n", - " 313,\n", - " 313,\n", - " 313,\n", - " 314,\n", - " 315,\n", - " 315,\n", - " 315,\n", - " 316,\n", - " 317,\n", - " 318,\n", - " 318,\n", - " 319,\n", - " 320,\n", - " 320,\n", - " 320,\n", - " 321,\n", - " 321,\n", - " 322,\n", - " 322,\n", - " 323,\n", - " 324,\n", - " 324,\n", - " 325,\n", - " 326,\n", - " 327,\n", - " 327,\n", - " 330,\n", - " 330,\n", - " 330,\n", - " 331,\n", - " 331,\n", - " 331,\n", - " 331,\n", - " 331,\n", - " 331,\n", - " 332,\n", - " 332,\n", - " 332,\n", - " 333,\n", - " 334,\n", - " 334,\n", - " 335,\n", - " 335,\n", - " 336,\n", - " 337,\n", - " 340,\n", - " 342,\n", - " 343,\n", - " 345,\n", - " 346,\n", - " 349,\n", - " 350,\n", - " 350,\n", - " 351,\n", - " 351,\n", - " 354,\n", - " 354,\n", - " 355,\n", - " 355,\n", - " 357,\n", - " 357,\n", - " 366,\n", - " 391,\n", - " 702,\n", - " 170812,\n", - " 170867,\n", - " 176223,\n", - " 176232,\n", - " 176246,\n", - " 176246,\n", - " 176264,\n", - " 176823,\n", - " 176843,\n", - " 176853,\n", - " 176857,\n", - " 176872,\n", - " 176873,\n", - " 176882,\n", - " 176901,\n", - " 227861,\n", - " 227929,\n", - " 228788,\n", - " 234681,\n", - " 234709,\n", - " 266239,\n", - " 334312,\n", - " 334397,\n", - " 355486,\n", - " 356237,\n", - " 356286,\n", - " 358848,\n", - " 414700,\n", - " 570127,\n", - " 570166,\n", - " 174159732,\n", - " 223639769,\n", - " 223816267,\n", - " 242562011]" - ] - }, - "execution_count": 393, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], + "source": [ + "cd = list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], "source": [ - "list" + "cd" ] }, { "cell_type": "code", - "execution_count": 369, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -288,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 305, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -307,7 +131,7 @@ }, { "cell_type": "code", - "execution_count": 323, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -316,47 +140,25 @@ }, { "cell_type": "code", - "execution_count": 370, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "4" - ] - }, - "execution_count": 370, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median(cd)" ] }, { "cell_type": "code", - "execution_count": 325, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "99" - ] - }, - "execution_count": 325, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median_old(cd)" ] }, { "cell_type": "code", - "execution_count": 326, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -365,47 +167,25 @@ }, { "cell_type": "code", - "execution_count": 327, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "88" - ] - }, - "execution_count": 327, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median(cd2)" ] }, { "cell_type": "code", - "execution_count": 328, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "88" - ] - }, - "execution_count": 328, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median_old(cd2)" ] }, { "cell_type": "code", - "execution_count": 308, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -415,75 +195,49 @@ }, { "cell_type": "code", - "execution_count": 309, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "def median_deviation_from_median(count_dict: dict) -> int:\n", + "def median_deviation_from_median1(count_dict: dict) -> int:\n", " \"\"\"\n", " calculates the deviation from the median of each element of counting dictionary,\n", " then returns the median of that dictionary\n", " :param count_dict: Counting dictionary to analyze\n", " :return: index of median of the deviations\n", " \"\"\"\n", - " my_median = quick_median(count_dict)\n", + " my_median = quick_median1(count_dict)\n", " deviations = {}\n", " for key in sorted(count_dict.keys()):\n", " X_value = abs(key - my_median)\n", " deviations[X_value] = count_dict[key]\n", " print(deviations)\n", - " return quick_median(deviations)" + " return quick_median1(deviations)" ] }, { "cell_type": "code", - "execution_count": 342, + "execution_count": null, "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{95: 10, 11: 43, 0: 43, 28: 15, 137: 13}\n" - ] - }, - { - "data": { - "text/plain": [ - "11" - ] - }, - "execution_count": 342, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "median_deviation_from_median(cd)" ] }, { "cell_type": "code", - "execution_count": 353, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137]\n" - ] - } - ], + "outputs": [], "source": [ "print(sorted([abs(x-99) for x in list]))" ] }, { "cell_type": "code", - "execution_count": 329, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -492,51 +246,29 @@ }, { "cell_type": "code", - "execution_count": 330, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "50" - ] - }, - "execution_count": 330, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median(cd3)" ] }, { "cell_type": "code", - "execution_count": 331, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "1" - ] - }, - "execution_count": 331, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median_old(cd3)" ] }, { "cell_type": "code", - "execution_count": 401, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "def quick_median_new(count_dict: dict) -> int:\n", + "def quick_median1(count_dict: dict) -> int:\n", " mid_point = sum(count_dict.values()) / 2\n", " my_sum = 0\n", " my_ind = 0\n", @@ -555,42 +287,20 @@ }, { "cell_type": "code", - "execution_count": 378, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "12.0\n", - "4\n", - "10\n", - "11\n", - "19\n" - ] - }, - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 378, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "quick_median_new(cd)" ] }, { "cell_type": "code", - "execution_count": 315, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "def count_frags(file: str) -> dict:\n", + "def count_frags1(file: str) -> dict:\n", " \"\"\"\n", " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", @@ -600,7 +310,6 @@ " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", " count_dict = {}\n", " PRINT_EVERY = 100000\n", - " i = 0\n", " # Check if the file is sam or bam and decide how to open based on that\n", " if file[-4:] == \".sam\":\n", " file_to_parse = open(file, 'r')\n", @@ -630,15 +339,12 @@ " if myTlen not in count_dict:\n", " count_dict[myTlen] = 0\n", " count_dict[myTlen] += 1\n", - " i += 1\n", - " if i % PRINT_EVERY == 0:\n", - " print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict))\n", " return count_dict" ] }, { "cell_type": "code", - "execution_count": 391, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -647,7 +353,7 @@ }, { "cell_type": "code", - "execution_count": 317, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -659,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -679,31 +385,20 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "128" - ] - }, - "execution_count": 52, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "len(count_dict)" ] }, { "cell_type": "code", - "execution_count": 361, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "def compute_probs(count_dict: dict) -> (list, list):\n", + "def compute_probs1(count_dict: dict) -> (list, list):\n", " \"\"\"\n", " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", " deviations from the median.\n", @@ -714,8 +409,8 @@ " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", " values = []\n", " probabilities = []\n", - " med = quick_median(count_dict)\n", - " mdm = median_deviation_from_median(count_dict)\n", + " med = quick_median1(count_dict)\n", + " mdm = median_deviation_from_median1(count_dict)\n", "\n", " for key in sorted(count_dict.keys()):\n", " if 0 < key < med + FILTER_MEDDEV_M * mdm:\n", @@ -730,35 +425,16 @@ }, { "cell_type": "code", - "execution_count": 362, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{84: 10, 80: 102, 0: 43, 11: 43, 39: 14, 148: 13}\n", - "8 102\n" - ] - }, - { - "data": { - "text/plain": [ - "([8], [1.0])" - ] - }, - "execution_count": 362, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "compute_probs(cd2)" ] }, { "cell_type": "code", - "execution_count": 394, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -767,7 +443,7 @@ }, { "cell_type": "code", - "execution_count": 395, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -779,74 +455,846 @@ }, { "cell_type": "code", - "execution_count": 404, + "execution_count": 7, "metadata": {}, - "outputs": [ - { - "ename": "ModuleNotFoundError", - "evalue": "No module named 'pysam'", - "output_type": "error", - "traceback": [ - "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mimport\u001b[0m \u001b[0mpysam\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 2\u001b[0m \u001b[0mcd\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcount_frags\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;34m\"C:/Users/joshf/Documents/work_stuff/neat_data/WGS_chr20_21_22_normal.bam\"\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", - "\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'pysam'" - ] - } - ], + "outputs": [], "source": [ - "import pysam\n", - "cd = count_frags(\"C:/Users/joshf/Documents/work_stuff/neat_data/WGS_chr20_21_22_normal.bam\")" + "import pysam" ] }, { "cell_type": "code", - "execution_count": 397, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ - "wrapped = wrapper(quick_median, cd)" + "cd = count_frags(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" ] }, { "cell_type": "code", - "execution_count": 399, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.06138989998726174" - ] - }, - "execution_count": 399, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "timeit.timeit(wrapped, number=1000)" + "wrapped = wrapper(quick_median, cd)\n", + "timeit.timeit(wrapped, number=100)" ] }, { "cell_type": "code", - "execution_count": 402, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.01676309999311343" - ] - }, - "execution_count": 402, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "wrapped2 = wrapper(quick_median_new, cd)\n", - "timeit.timeit(wrapped2, number=1000)" + "timeit.timeit(wrapped2, number=100)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 21.5 ms\n" + ] + } + ], + "source": [ + "def quick_median_new2(count_dict: dict) -> int:\n", + " mid_point = sum(count_dict.values()) / 2\n", + " print(mid_point)\n", + " my_sum = 0\n", + " my_ind = 0\n", + " sk = sorted(count_dict.keys())\n", + " while my_sum < mid_point:\n", + " my_sum += count_dict[sk[my_ind]]\n", + " if my_sum >= mid_point:\n", + " my_ind += 1\n", + " break\n", + " my_ind += 1\n", + " # correction if we miss the mark too far\n", + " if sum(count_dict.values())%2 == 0:\n", + " median = (sk[my_ind] + sk[my_ind-1])//2\n", + " else:\n", + " median = sk[my_ind]\n", + " return median" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 7.22 ms\n" + ] + } + ], + "source": [ + "count_d = {1:4, 2:6, 3:3, 4:8, 5:3, 10:2}" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 4.65 ms\n" + ] + } + ], + "source": [ + "list = []\n", + "for key in count_d.keys():\n", + " for i in range(count_d[key]):\n", + " list.append(key)\n", + "list = sorted(list)" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 34, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 5.68 ms\n" + ] + } + ], + "source": [ + "(list[13] + list[12])//2" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "13.0\n" + ] + }, + { + "data": { + "text/plain": [ + "3" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 6.58 ms\n" + ] + } + ], + "source": [ + "quick_median_new2(count_d)" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "def count_frags_new(file: str) -> list:\n", + " \"\"\"\n", + " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", + " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", + " :param file: A sam input file\n", + " :return: A dictionary of the counts of the above reads\n", + " \"\"\"\n", + " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", + " count_list = []\n", + " PRINT_EVERY = 100000\n", + " i = 0\n", + " # Check if the file is sam or bam and decide how to open based on that\n", + " if file[-4:] == \".sam\":\n", + " file_to_parse = open(file, 'r')\n", + " elif file[-4:] == \".bam\":\n", + " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", + " else:\n", + " print(\"Unknown file type, must be bam or sam\")\n", + " exit(1)\n", + "\n", + " for item in file_to_parse:\n", + " # Need to convert bam iterable objects into strings for the next part\n", + " line = str(item)\n", + " # Skip all comments and headers\n", + " if line[0] == '#' or line[0] == '@':\n", + " continue\n", + " splt = line.strip().split('\\t')\n", + " samFlag = int(splt[1])\n", + " myRef = splt[2]\n", + " mapQual = int(splt[4])\n", + " mateRef = splt[6]\n", + " myTlen = abs(int(splt[8]))\n", + "\n", + " # if read is paired, and is first in pair, and is confidently mapped...\n", + " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", + " # and mate is mapped to same reference\n", + " if mateRef == '=' or mateRef == myRef:\n", + " count_list.append(myTlen)\n", + " count_list = sorted(count_list)\n", + " return count_list" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wrapped3 = wrapper(count_frags, \"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", + "timeit.timeit(wrapped3, number=1)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "wrapped4 = wrapper(count_frags_new, \"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", + "timeit.timeit(wrapped4, number=1)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def quick_median_new(datalist: list) -> float:\n", + " \"\"\"\n", + " Finds the median of a counting dictionary\n", + " :param count_dict: the counting dictionary to find the median of\n", + " :return: integer index of the location of the median\n", + " \"\"\"\n", + " midpoint = len(datalist)//2\n", + " if len(datalist) % 2 == 0:\n", + " median = (datalist[midpoint] + datalist[midpoint-1])/2\n", + " else:\n", + " median = datalist[midpoint]\n", + " return median" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "quick_median(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def median_deviation_from_median_new(datalist: list) -> float:\n", + " \"\"\"\n", + " calculates the deviation from the median of each element of counting dictionary,\n", + " then returns the median of that dictionary\n", + " :param count_dict: Counting dictionary to analyze\n", + " :return: index of median of the deviations\n", + " \"\"\"\n", + " my_median = quick_median_new(datalist)\n", + " deviations = []\n", + " for item in datalist:\n", + " X_value = abs(item - my_median)\n", + " deviations.append(X_value)\n", + " return quick_median_new(sorted(deviations))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "median_deviation_from_median(cd)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "def compute_probs_new(datalist: list) -> (list, list):\n", + " \"\"\"\n", + " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", + " deviations from the median.\n", + " :param count_dict: A dictionary of fragments with counts\n", + " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", + " \"\"\"\n", + " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", + " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", + " values = []\n", + " probabilities = []\n", + " med = quick_median_new(datalist)\n", + " mdm = median_deviation_from_median_new(datalist)\n", + " \n", + " for item in list(set(datalist)):\n", + " if 0 < item < med + FILTER_MEDDEV_M * mdm:\n", + " if datalist.count(item) >= FILTER_MINREADS:\n", + " values.append(item)\n", + " probabilities.append(datalist.count(item))\n", + " count_sum = float(sum(probabilities))\n", + " probabilities = [n / count_sum for n in probabilities]\n", + " return values, probabilities" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "sum(x == 10 for x in cd)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "list.count(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "computing probs\n" + ] + }, + { + "data": { + "text/plain": [ + "([81,\n", + " 82,\n", + " 83,\n", + " 84,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 94,\n", + " 95,\n", + " 96,\n", + " 97,\n", + " 98,\n", + " 99,\n", + " 100],\n", + " [0.0014269858886951008,\n", + " 0.0019132181174356536,\n", + " 0.0021669044976481157,\n", + " 0.0028539717773902015,\n", + " 0.0024734422070715077,\n", + " 0.007071507848422388,\n", + " 0.00800169124253475,\n", + " 0.007927699381639449,\n", + " 0.008033402040061307,\n", + " 0.007853707520744147,\n", + " 0.03276782411077639,\n", + " 0.0322287405528249,\n", + " 0.03289466730088262,\n", + " 0.03376142909994186,\n", + " 0.02844458538132234,\n", + " 0.23078061413244544,\n", + " 0.21153216003382486,\n", + " 0.1821996723217589,\n", + " 0.16061518947201522,\n", + " 0.005052587072564875])" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", + "print(\"computing probs\")\n", + "compute_probs_new(counting_list)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Below are the two competing compute frag length programs, so that I can run side-by-side time comparisons." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 22.8 ms\n" + ] + } + ], + "source": [ + "# Count_dict method\n", + "\n", + "def quick_median1(count_dict: dict) -> int:\n", + " mid_point = sum(count_dict.values()) / 2\n", + " my_sum = 0\n", + " my_ind = 0\n", + " sk = sorted(count_dict.keys())\n", + " while my_sum < mid_point:\n", + " my_sum += count_dict[sk[my_ind]]\n", + " if my_sum >= mid_point:\n", + " break\n", + " my_ind += 1\n", + " if sum(count_dict.values())%2 == 0:\n", + " median = (sk[my_ind] + sk[my_ind-1])//2\n", + " else:\n", + " median = sk[my_ind]\n", + " return median\n", + "\n", + "\n", + "def median_deviation_from_median1(count_dict: dict) -> int:\n", + " \"\"\"\n", + " calculates the deviation from the median of each element of counting dictionary,\n", + " then returns the median of that dictionary\n", + " :param count_dict: Counting dictionary to analyze\n", + " :return: index of median of the deviations\n", + " \"\"\"\n", + " my_median = quick_median1(count_dict)\n", + " deviations = {}\n", + " for key in sorted(count_dict.keys()):\n", + " X_value = abs(key - my_median)\n", + " deviations[X_value] = count_dict[key]\n", + " return quick_median1(deviations)\n", + "\n", + "\n", + "def count_frags1(file: str) -> dict:\n", + " \"\"\"\n", + " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", + " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", + " :param file: A sam input file\n", + " :return: A dictionary of the counts of the above reads\n", + " \"\"\"\n", + " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", + " count_dict = {}\n", + " PRINT_EVERY = 100000\n", + " # Check if the file is sam or bam and decide how to open based on that\n", + " if file[-4:] == \".sam\":\n", + " file_to_parse = open(file, 'r')\n", + " elif file[-4:] == \".bam\":\n", + " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", + " else:\n", + " print(\"Unknown file type, must be bam or sam\")\n", + " exit(1)\n", + "\n", + " for item in file_to_parse:\n", + " # Need to convert bam iterable objects into strings for the next part\n", + " line = str(item)\n", + " # Skip all comments and headers\n", + " if line[0] == '#' or line[0] == '@':\n", + " continue\n", + " splt = line.strip().split('\\t')\n", + " samFlag = int(splt[1])\n", + " myRef = splt[2]\n", + " mapQual = int(splt[4])\n", + " mateRef = splt[6]\n", + " myTlen = abs(int(splt[8]))\n", + "\n", + " # if read is paired, and is first in pair, and is confidently mapped...\n", + " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", + " # and mate is mapped to same reference\n", + " if mateRef == '=' or mateRef == myRef:\n", + " if myTlen not in count_dict:\n", + " count_dict[myTlen] = 0\n", + " count_dict[myTlen] += 1\n", + " return count_dict\n", + "\n", + "\n", + "def compute_probs1(count_dict: dict) -> (list, list):\n", + " \"\"\"\n", + " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", + " deviations from the median.\n", + " :param count_dict: A dictionary of fragments with counts\n", + " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", + " \"\"\"\n", + " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", + " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", + " values = []\n", + " probabilities = []\n", + " med = quick_median1(count_dict)\n", + " mdm = median_deviation_from_median1(count_dict)\n", + "\n", + " for key in sorted(count_dict.keys()):\n", + " if 0 < key < med + FILTER_MEDDEV_M * mdm:\n", + " if count_dict[key] >= FILTER_MINREADS:\n", + " values.append(key)\n", + " probabilities.append(count_dict[key])\n", + " count_sum = float(sum(probabilities))\n", + " probabilities = [n / count_sum for n in probabilities]\n", + " return values, probabilities" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 24min 3s\n" + ] + } + ], + "source": [ + "counting_list = count_frags1(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{81: 13, 80: 3, 79: 8, 78: 4, 77: 2, 76: 5, 75: 6, 74: 7, 73: 9, 72: 13, 71: 3, 70: 5, 69: 9, 68: 3, 67: 9, 66: 2, 65: 8, 64: 6, 63: 7, 62: 6, 61: 7, 60: 10, 59: 10, 58: 5, 57: 12, 56: 8, 55: 5, 54: 5, 53: 12, 52: 8, 51: 12, 50: 5, 49: 11, 48: 11, 47: 7, 46: 10, 45: 10, 44: 14, 43: 8, 42: 5, 41: 10, 40: 7, 39: 13, 38: 7, 37: 10, 36: 16, 35: 6, 34: 11, 33: 9, 32: 16, 31: 14, 30: 9, 29: 25, 28: 19, 27: 20, 26: 17, 25: 23, 24: 34, 23: 55, 22: 42, 21: 37, 20: 81, 19: 135, 18: 181, 17: 205, 16: 270, 15: 234, 14: 669, 13: 757, 12: 750, 11: 760, 10: 743, 9: 3100, 8: 3049, 7: 3112, 6: 3194, 5: 2691, 4: 21833, 3: 20012, 2: 17237, 1: 12661399, 0: 478}\n", + "81 135\n", + "82 181\n", + "83 205\n", + "84 270\n", + "85 234\n", + "86 669\n", + "87 757\n", + "88 750\n", + "89 760\n", + "90 743\n", + "91 3100\n", + "92 3049\n", + "93 3112\n", + "94 3194\n", + "95 2691\n", + "96 21833\n", + "97 20012\n", + "98 17237\n", + "99 15195\n", + "100 478\n", + "101 12661399\n" + ] + }, + { + "data": { + "text/plain": [ + "([81,\n", + " 82,\n", + " 83,\n", + " 84,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 94,\n", + " 95,\n", + " 96,\n", + " 97,\n", + " 98,\n", + " 99,\n", + " 100,\n", + " 101],\n", + " [1.0583251620178232e-05,\n", + " 1.4189396616683407e-05,\n", + " 1.607086357138176e-05,\n", + " 2.1166503240356464e-05,\n", + " 1.8344302808308934e-05,\n", + " 5.244589136221657e-05,\n", + " 5.934460352944386e-05,\n", + " 5.879584233432351e-05,\n", + " 5.9579786898781155e-05,\n", + " 5.824708113920316e-05,\n", + " 0.0002430228149818705,\n", + " 0.0002390246977031365,\n", + " 0.00024396354845921967,\n", + " 0.0002503918938877724,\n", + " 0.00021095948229555274,\n", + " 0.00171158616758038,\n", + " 0.0015688298623926426,\n", + " 0.0013512852457556457,\n", + " 0.0011912037656933942,\n", + " 3.747255018107551e-05,\n", + " 0.9925834924479484])" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 21.4 ms\n" + ] + } + ], + "source": [ + "compute_probs1(counting_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 22.3 ms\n" + ] + } + ], + "source": [ + "# Datalist method\n", + "\n", + "def quick_median_new(datalist: list) -> float:\n", + " \"\"\"\n", + " Finds the median of a counting dictionary\n", + " :param count_dict: the counting dictionary to find the median of\n", + " :return: integer index of the location of the median\n", + " \"\"\"\n", + " midpoint = len(datalist)//2\n", + " if len(datalist) % 2 == 0:\n", + " median = (datalist[midpoint] + datalist[midpoint-1])/2\n", + " else:\n", + " median = datalist[midpoint]\n", + " return median\n", + "\n", + "\n", + "def median_deviation_from_median_new(datalist: list) -> float:\n", + " \"\"\"\n", + " calculates the deviation from the median of each element of counting dictionary,\n", + " then returns the median of that dictionary\n", + " :param count_dict: Counting dictionary to analyze\n", + " :return: index of median of the deviations\n", + " \"\"\"\n", + " my_median = quick_median_new(datalist)\n", + " deviations = []\n", + " for item in datalist:\n", + " X_value = abs(item - my_median)\n", + " deviations.append(X_value)\n", + " return quick_median_new(sorted(deviations))\n", + "\n", + "\n", + "def count_frags_new(file: str) -> list:\n", + " \"\"\"\n", + " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", + " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", + " :param file: A sam input file\n", + " :return: A dictionary of the counts of the above reads\n", + " \"\"\"\n", + " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", + " count_list = []\n", + " PRINT_EVERY = 100000\n", + " i = 0\n", + " # Check if the file is sam or bam and decide how to open based on that\n", + " if file[-4:] == \".sam\":\n", + " file_to_parse = open(file, 'r')\n", + " elif file[-4:] == \".bam\":\n", + " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", + " else:\n", + " print(\"Unknown file type, must be bam or sam\")\n", + " exit(1)\n", + "\n", + " for item in file_to_parse:\n", + " # Need to convert bam iterable objects into strings for the next part\n", + " line = str(item)\n", + " # Skip all comments and headers\n", + " if line[0] == '#' or line[0] == '@':\n", + " continue\n", + " splt = line.strip().split('\\t')\n", + " samFlag = int(splt[1])\n", + " myRef = splt[2]\n", + " mapQual = int(splt[4])\n", + " mateRef = splt[6]\n", + " myTlen = abs(int(splt[8]))\n", + "\n", + " # if read is paired, and is first in pair, and is confidently mapped...\n", + " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", + " # and mate is mapped to same reference\n", + " if mateRef == '=' or mateRef == myRef:\n", + " count_list.append(myTlen)\n", + " count_list = sorted(count_list)\n", + " file_to_parse.close()\n", + " return count_list\n", + "\n", + "\n", + "def compute_probs_new(datalist: list) -> (list, list):\n", + " \"\"\"\n", + " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", + " deviations from the median.\n", + " :param count_dict: A dictionary of fragments with counts\n", + " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", + " \"\"\"\n", + " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", + " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", + " values = []\n", + " probabilities = []\n", + " med = quick_median_new(datalist)\n", + " mdm = median_deviation_from_median_new(datalist)\n", + " \n", + " for item in list(set(datalist)):\n", + " if 0 < item < med + FILTER_MEDDEV_M * mdm:\n", + " data_count = datalist.count(item)\n", + " if data_count >= FILTER_MINREADS:\n", + " values.append(item)\n", + " probabilities.append(data_count)\n", + " count_sum = float(sum(probabilities))\n", + " probabilities = [n / count_sum for n in probabilities]\n", + " return values, probabilities" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 18min 4s\n" + ] + } + ], + "source": [ + "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "([81,\n", + " 82,\n", + " 83,\n", + " 84,\n", + " 85,\n", + " 86,\n", + " 87,\n", + " 88,\n", + " 89,\n", + " 90,\n", + " 91,\n", + " 92,\n", + " 93,\n", + " 94,\n", + " 95,\n", + " 96,\n", + " 97,\n", + " 98,\n", + " 99,\n", + " 100],\n", + " [0.0014269858886951008,\n", + " 0.0019132181174356536,\n", + " 0.0021669044976481157,\n", + " 0.0028539717773902015,\n", + " 0.0024734422070715077,\n", + " 0.007071507848422388,\n", + " 0.00800169124253475,\n", + " 0.007927699381639449,\n", + " 0.008033402040061307,\n", + " 0.007853707520744147,\n", + " 0.03276782411077639,\n", + " 0.0322287405528249,\n", + " 0.03289466730088262,\n", + " 0.03376142909994186,\n", + " 0.02844458538132234,\n", + " 0.23078061413244544,\n", + " 0.21153216003382486,\n", + " 0.1821996723217589,\n", + " 0.16061518947201522,\n", + " 0.005052587072564875])" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "time: 1min 13s\n" + ] + } + ], + "source": [ + "compute_probs_new(counting_list)" ] }, { @@ -873,7 +1321,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.7.6" + "version": "3.8.2" } }, "nbformat": 4, diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index e616067..d968256 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -14,75 +14,61 @@ import pysam -def quick_median(count_dict: dict) -> int: +def median(datalist: list) -> float: """ - Finds the median of a counting dictionary. A counting dictionary is a representation of a list of data. - For example, the data [1,1,2,2,2] could be represented in dictionary form as {1:2, 2:3}, indicating that 1 is - repeated twice and 2 is repeating three times. - :param count_dict: the counting dictionary to find the median of + Finds the median of a list of data. For this function, the data are expected to be a list of + numbers, either float or int. + :param datalist: the list of data to find the median of. This should be a set of numbers. :return: The median of the set """ - # The sum of the values of the counting dictionary tells us how long the expanded list is. To find the midpoint - # We divide by 2 - if not count_dict: - raise Exception('Empty counting dictionary. Check that sam input was correctly formatted.') + # using integer division here gives the index of the midpoint, due to zero-based indexing. + midpoint = len(datalist)//2 + + # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an + # odd number of values, or the average of the two middle values if there are an even number + if len(datalist) % 2 == 0: + median = (datalist[midpoint] + datalist[midpoint-1])/2 else: - mid_point = sum(count_dict.values()) / 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - # Here we basically count up one group of dictionary values at a time until we're at the midpoint - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an - # odd number of values, or the average of the two middle values if there are an even number - if sum(count_dict.values()) % 2 == 0: - median = (sk[my_ind] + sk[my_ind-1])//2 - else: - median = sk[my_ind] + median = datalist[midpoint] return median -def median_absolute_deviation(count_dict: dict) -> int: + +def median_absolute_deviation(datalist: list) -> float: """ - Calculates the deviation from the median of each element of counting dictionary, + Calculates the median deviation from the median for each element of of a datalist. then returns the median of that dictionary. A counting dictionary such as {2: 3, 5:2} expands to [2,2,2,5,5] - :param count_dict: Counting dictionary to analyze + :param datalist: A list of data to find the MAD of :return: index of median of the deviations """ - my_median = quick_median(count_dict) - deviations = {} - for key in sorted(count_dict.keys()): + my_median = median(datalist) + deviations = [] + for item in datalist: # We take the absolute difference between the value and the median - X_value = abs(key - my_median) - # We retain the number of items for each element of the dictionary - # This is equivalent to subtracting the median from each value of the expanded dataset - deviations[X_value] = count_dict[key] - # Taking the median of this dataset gives us the median deviation from the median - # (also called the Median Absolute Deviation) - return quick_median(deviations) - -def count_frags(file: str) -> dict: + X_value = abs(item - my_median) + # This creates a dataset that is the absolute deviations about the median + deviations.append(X_value) + # The median of the absolute deviations is the median absolute deviation + return median(sorted(deviations)) + + +def count_frags(file: str) -> list: """ - Takes a sam file input and creates a counting dictionary of the number of reads that are paired, + Takes a sam or bam file input and creates a list of the number of reads that are paired, first in the pair, confidently mapped and whose pair is mapped to the same reference :param file: A sam input file - :return: A dictionary of the counts of the above reads + :return: A list of the tlens from the bam/sam file """ FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality - count_dict = {} - PRINT_EVERY = 100000 - i = 0 + count_list = [] # Check if the file is sam or bam and decide how to open based on that if file[-4:] == ".sam": file_to_parse = open(file, 'r') elif file[-4:] == ".bam": + print("WARNING: Must have pysam installed to read bam files. Pysam does not work on Windows OS.") file_to_parse = pysam.AlignmentFile(file, 'rb') else: - print("Unknown file type, must be bam or sam") + print("Unknown file type, file extension must be bam or sam") exit(1) for item in file_to_parse: @@ -96,41 +82,38 @@ def count_frags(file: str) -> dict: myRef = splt[2] mapQual = int(splt[4]) mateRef = splt[6] - my_tlen = abs(int(splt[8])) + myTlen = abs(int(splt[8])) # if read is paired, and is first in pair, and is confidently mapped... if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: # and mate is mapped to same reference if mateRef == '=' or mateRef == myRef: - if my_tlen not in count_dict: - count_dict[my_tlen] = 0 - count_dict[my_tlen] += 1 - i += 1 - if i % PRINT_EVERY == 0: - print('---', i, quick_median(count_dict), median_absolute_deviation(count_dict)) - return count_dict + count_list.append(myTlen) + count_list = sorted(count_list) + file_to_parse.close() + return count_list -def compute_probs(count_dict: dict) -> (list, list): +def compute_probs(datalist: list) -> (list, list): """ Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median deviations from the median. - :param count_dict: A dictionary of fragments with counts - :return: A list of values that meet the criteria and a list of -their associated probabilities + :param datalist: A list of fragments with counts + :return: A list of values that meet the criteria and a list of their associated probabilities """ FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median values = [] probabilities = [] - med = quick_median(count_dict) - mdm = median_absolute_deviation(count_dict) - - for key in sorted(count_dict.keys()): - if 0 < key < med + FILTER_MEDDEV_M * mdm: - if count_dict[key] >= FILTER_MINREADS: - print(key, count_dict[key]) - values.append(key) - probabilities.append(count_dict[key]) + med = median(datalist) + mad = median_absolute_deviation(datalist) + + for item in list(set(datalist)): + if 0 < item < med + FILTER_MEDDEV_M * mad: + data_count = datalist.count(item) + if data_count >= FILTER_MINREADS: + values.append(item) + probabilities.append(data_count) count_sum = float(sum(probabilities)) probabilities = [n / count_sum for n in probabilities] return values, probabilities @@ -139,10 +122,10 @@ def compute_probs(count_dict: dict) -> (list, list): def main(): """ Main function takes 2 arguments: - input - a samfile input that can be formed by applying samtools to a bam file + input - a path to a sam or bam file input. Note that sam files can be formed by applying samtools to a bam file in the follawing way: samtools view nameof.bam > nameof.sam - output - the prefix of the output. The actual output will be the prefix plus ".p" at the end + output - the string prefix of the output. The actual output will be the prefix plus ".p" at the end for pickle file. The list of values and list of probabilities are dumped as a list of lists into a pickle file on completion of the analysis @@ -159,11 +142,10 @@ def main(): output = output_prefix + '.p' all_tlens = count_frags(input_file) - print('\nsaving model...') + print('\nSaving model...') out_vals, out_probs = compute_probs(all_tlens) - print(out_probs) pickle.dump([out_vals, out_probs], open(output, 'wb')) - + print('\nModel successfully saved.') if __name__ == "__main__": main() From 0fd2890d093b0a1bed2276863caf3e8adebd1b99 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 17 Jun 2020 09:15:32 -0500 Subject: [PATCH 064/323] fixi --- utilities/compute_gc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 9bd695e..c339674 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -43,7 +43,7 @@ def process_fasta(file: str) -> dict: return ref_dict -def process_genomecov(file: str, ref_dict: dict, window) -> dict: +def process_genomecov(file: str, ref_dict: dict, window: int) -> dict: gc_bins = {n: [] for n in range(window + 1)} # variables needed to parse coverage file @@ -58,7 +58,7 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: lines_processed += 1 if current_line == 0: current_ref = splt[0] - sPos = int(splt[1]) - 1 + current_pos = int(splt[1]) - 1 if current_ref not in ref_dict: continue @@ -68,7 +68,7 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: if current_line == window: current_line = 0 - seq = str(ref_dict[current_ref][sPos:sPos + window]) + seq = str(ref_dict[current_ref][current_pos:current_pos + window]) if 'N' not in seq: gc_count = seq.count('G') + seq.count('C') gc_bins[gc_count].append(current_cov) From 8b2e8956234141d72a0b3b5d45ac5a2e9626d8a5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 17 Jun 2020 09:17:52 -0500 Subject: [PATCH 065/323] fixing a variable name in compute_gc --- utilities/compute_gc.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index c339674..d2af2c9 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -86,12 +86,12 @@ def calculate_coverage(bin_dict: dict, window: int) -> float: print('{0:0.2%}'.format(k / float(window)), 0.0, 0) bin_dict[k] = 0 else: - myMean = np.mean(bin_dict[k]) - myLen = len(bin_dict[k]) - print('{0:0.2%}'.format(k / float(window)), myMean, myLen) - all_mean += myMean * myLen - running_total += myLen - bin_dict[k] = myMean + my_mean = np.mean(bin_dict[k]) + my_len = len(bin_dict[k]) + print('{0:0.2%}'.format(k / float(window)), my_mean, my_len) + all_mean += my_mean * my_len + running_total += my_len + bin_dict[k] = my_mean return all_mean / float(running_total) From 9355c2e72130db7ef9e8217ae6c0d14af1d194f7 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Wed, 17 Jun 2020 15:09:28 -0500 Subject: [PATCH 066/323] Update compute_gc.py --- utilities/compute_gc.py | 53 +++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 12 deletions(-) diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 5d9b7bc..a30d037 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -43,7 +43,15 @@ def process_fasta(file: str) -> dict: return ref_dict -def process_genomecov(file: str, ref_dict: dict, window) -> dict: +def process_genomecov(file: str, ref_dict: dict, window: int) -> dict: + """ + Takes a genomecov file and converts it into a dictionary made up of 'window' sized sections + that record the number of GCs and the coverage measure for each section. + :param file: path to a genomecov file + :param ref_dict: dictionary created from using the process_fasta function + :param window: Length of each section of base pairs to count in the reference dictionary + :return: dictionary form of genomecov file based on window size and ref_dict data + """ gc_bins = {n: [] for n in range(window + 1)} # variables needed to parse coverage file @@ -51,7 +59,6 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: current_ref = None current_cov = 0 lines_processed = 0 - print_every = 1000000 f = open(file, 'r') for line in f: @@ -59,7 +66,7 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: lines_processed += 1 if current_line == 0: current_ref = splt[0] - sPos = int(splt[1]) - 1 + current_pos = int(splt[1]) - 1 if current_ref not in ref_dict: continue @@ -69,7 +76,7 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: if current_line == window: current_line = 0 - seq = str(ref_dict[current_ref][sPos:sPos + window]) + seq = str(ref_dict[current_ref][current_pos:current_pos + window]) if 'N' not in seq: gc_count = seq.count('G') + seq.count('C') gc_bins[gc_count].append(current_cov) @@ -80,6 +87,28 @@ def process_genomecov(file: str, ref_dict: dict, window) -> dict: def calculate_coverage(bin_dict: dict, window: int) -> float: + """ + Takes the dictionary created in process_genomecov and finds the average coverage value. + Also ouputs the average coverage value for each window, along with the number of entries in that window. + :param bin_dict: dictionary created from using the process_genomecov function + :param window: Length of each section of base pairs to count, + should be the same as the window value in process_genomecov + :return: Average coverage value for the whole sample, along with average coverage values for each window. + + + Parameters + ---------- + bin_dict : dict + DESCRIPTION. + window : int + DESCRIPTION. + + Returns + ------- + float + DESCRIPTION. + + """ running_total = 0 all_mean = 0.0 for k in sorted(bin_dict.keys()): @@ -87,12 +116,12 @@ def calculate_coverage(bin_dict: dict, window: int) -> float: print('{0:0.2%}'.format(k / float(window)), 0.0, 0) bin_dict[k] = 0 else: - myMean = np.mean(bin_dict[k]) - myLen = len(bin_dict[k]) - print('{0:0.2%}'.format(k / float(window)), myMean, myLen) - all_mean += myMean * myLen - running_total += myLen - bin_dict[k] = myMean + my_mean = np.mean(bin_dict[k]) + my_len = len(bin_dict[k]) + print('{0:0.2%}'.format(k / float(window)), my_mean, my_len) + all_mean += my_mean * my_len + running_total += my_len + bin_dict[k] = my_mean return all_mean / float(running_total) @@ -101,8 +130,8 @@ def main(): """ Reads in arguments and processes the inputs to a GC count for the sequence. Parameters: - -i is the genome coverage input file - -r is the reference file + -i is the genome coverage input file (genomecov) + -r is the reference file (fasta) -o is the prefix for the output -w is the sliding window length. The default is 50, but you can declare any reasonable integer From 382562d5606e6f02af7be1b8d5787e79571916f5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 17 Jun 2020 16:29:08 -0500 Subject: [PATCH 067/323] changed a less than to less than equal to, to cover edge cases --- Testing_compute_fraglen.ipynb | 425 +++++++--------------------------- utilities/compute_fraglen.py | 2 +- 2 files changed, 79 insertions(+), 348 deletions(-) diff --git a/Testing_compute_fraglen.ipynb b/Testing_compute_fraglen.ipynb index c187b88..02b519c 100644 --- a/Testing_compute_fraglen.ipynb +++ b/Testing_compute_fraglen.ipynb @@ -2,27 +2,11 @@ "cells": [ { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": { "scrolled": true }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Defaulting to user installation because normal site-packages is not writeable\n", - "Collecting ipython-autotime\n", - " Downloading ipython-autotime-0.1.tar.bz2 (1.2 kB)\n", - "Could not build wheels for ipython-autotime, since package 'wheel' is not installed.\n", - "Installing collected packages: ipython-autotime\n", - " Running setup.py install for ipython-autotime ... \u001b[?25ldone\n", - "\u001b[?25hSuccessfully installed ipython-autotime-0.1\n", - "\u001b[33mWARNING: You are using pip version 20.1; however, version 20.1.1 is available.\n", - "You should consider upgrading via the '/usr/bin/python3.8 -m pip install --upgrade pip' command.\u001b[0m\n" - ] - } - ], + "outputs": [], "source": [ "!pip install ipython-autotime\n", "%load_ext autotime" @@ -30,17 +14,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 628 µs\n" - ] - } - ], + "outputs": [], "source": [ "cd = {1:4, 2:6, 3:1, 4:8, 5:3, 10:2}" ] @@ -455,7 +431,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -493,17 +469,9 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 21.5 ms\n" - ] - } - ], + "outputs": [], "source": [ "def quick_median_new2(count_dict: dict) -> int:\n", " mid_point = sum(count_dict.values()) / 2\n", @@ -527,34 +495,18 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 7.22 ms\n" - ] - } - ], + "outputs": [], "source": [ "count_d = {1:4, 2:6, 3:3, 4:8, 5:3, 10:2}" ] }, { "cell_type": "code", - "execution_count": 30, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 4.65 ms\n" - ] - } - ], + "outputs": [], "source": [ "list = []\n", "for key in count_d.keys():\n", @@ -565,68 +517,25 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 34, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 5.68 ms\n" - ] - } - ], + "outputs": [], "source": [ "(list[13] + list[12])//2" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "13.0\n" - ] - }, - { - "data": { - "text/plain": [ - "3" - ] - }, - "execution_count": 29, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 6.58 ms\n" - ] - } - ], + "outputs": [], "source": [ "quick_median_new2(count_d)" ] }, { "cell_type": "code", - "execution_count": 1, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -694,7 +603,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -723,7 +632,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -753,7 +662,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": null, "metadata": {}, "outputs": [], "source": [ @@ -801,66 +710,9 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "computing probs\n" - ] - }, - { - "data": { - "text/plain": [ - "([81,\n", - " 82,\n", - " 83,\n", - " 84,\n", - " 85,\n", - " 86,\n", - " 87,\n", - " 88,\n", - " 89,\n", - " 90,\n", - " 91,\n", - " 92,\n", - " 93,\n", - " 94,\n", - " 95,\n", - " 96,\n", - " 97,\n", - " 98,\n", - " 99,\n", - " 100],\n", - " [0.0014269858886951008,\n", - " 0.0019132181174356536,\n", - " 0.0021669044976481157,\n", - " 0.0028539717773902015,\n", - " 0.0024734422070715077,\n", - " 0.007071507848422388,\n", - " 0.00800169124253475,\n", - " 0.007927699381639449,\n", - " 0.008033402040061307,\n", - " 0.007853707520744147,\n", - " 0.03276782411077639,\n", - " 0.0322287405528249,\n", - " 0.03289466730088262,\n", - " 0.03376142909994186,\n", - " 0.02844458538132234,\n", - " 0.23078061413244544,\n", - " 0.21153216003382486,\n", - " 0.1821996723217589,\n", - " 0.16061518947201522,\n", - " 0.005052587072564875])" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", "print(\"computing probs\")\n", @@ -876,17 +728,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 22.8 ms\n" - ] - } - ], + "outputs": [], "source": [ "# Count_dict method\n", "\n", @@ -990,130 +834,27 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 24min 3s\n" - ] - } - ], + "outputs": [], "source": [ "counting_list = count_frags1(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" ] }, { "cell_type": "code", - "execution_count": 22, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "{81: 13, 80: 3, 79: 8, 78: 4, 77: 2, 76: 5, 75: 6, 74: 7, 73: 9, 72: 13, 71: 3, 70: 5, 69: 9, 68: 3, 67: 9, 66: 2, 65: 8, 64: 6, 63: 7, 62: 6, 61: 7, 60: 10, 59: 10, 58: 5, 57: 12, 56: 8, 55: 5, 54: 5, 53: 12, 52: 8, 51: 12, 50: 5, 49: 11, 48: 11, 47: 7, 46: 10, 45: 10, 44: 14, 43: 8, 42: 5, 41: 10, 40: 7, 39: 13, 38: 7, 37: 10, 36: 16, 35: 6, 34: 11, 33: 9, 32: 16, 31: 14, 30: 9, 29: 25, 28: 19, 27: 20, 26: 17, 25: 23, 24: 34, 23: 55, 22: 42, 21: 37, 20: 81, 19: 135, 18: 181, 17: 205, 16: 270, 15: 234, 14: 669, 13: 757, 12: 750, 11: 760, 10: 743, 9: 3100, 8: 3049, 7: 3112, 6: 3194, 5: 2691, 4: 21833, 3: 20012, 2: 17237, 1: 12661399, 0: 478}\n", - "81 135\n", - "82 181\n", - "83 205\n", - "84 270\n", - "85 234\n", - "86 669\n", - "87 757\n", - "88 750\n", - "89 760\n", - "90 743\n", - "91 3100\n", - "92 3049\n", - "93 3112\n", - "94 3194\n", - "95 2691\n", - "96 21833\n", - "97 20012\n", - "98 17237\n", - "99 15195\n", - "100 478\n", - "101 12661399\n" - ] - }, - { - "data": { - "text/plain": [ - "([81,\n", - " 82,\n", - " 83,\n", - " 84,\n", - " 85,\n", - " 86,\n", - " 87,\n", - " 88,\n", - " 89,\n", - " 90,\n", - " 91,\n", - " 92,\n", - " 93,\n", - " 94,\n", - " 95,\n", - " 96,\n", - " 97,\n", - " 98,\n", - " 99,\n", - " 100,\n", - " 101],\n", - " [1.0583251620178232e-05,\n", - " 1.4189396616683407e-05,\n", - " 1.607086357138176e-05,\n", - " 2.1166503240356464e-05,\n", - " 1.8344302808308934e-05,\n", - " 5.244589136221657e-05,\n", - " 5.934460352944386e-05,\n", - " 5.879584233432351e-05,\n", - " 5.9579786898781155e-05,\n", - " 5.824708113920316e-05,\n", - " 0.0002430228149818705,\n", - " 0.0002390246977031365,\n", - " 0.00024396354845921967,\n", - " 0.0002503918938877724,\n", - " 0.00021095948229555274,\n", - " 0.00171158616758038,\n", - " 0.0015688298623926426,\n", - " 0.0013512852457556457,\n", - " 0.0011912037656933942,\n", - " 3.747255018107551e-05,\n", - " 0.9925834924479484])" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 21.4 ms\n" - ] - } - ], + "outputs": [], "source": [ "compute_probs1(counting_list)" ] }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 9, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 22.3 ms\n" - ] - } - ], + "outputs": [], "source": [ "# Datalist method\n", "\n", @@ -1204,7 +945,7 @@ " mdm = median_deviation_from_median_new(datalist)\n", " \n", " for item in list(set(datalist)):\n", - " if 0 < item < med + FILTER_MEDDEV_M * mdm:\n", + " if 0 < item <= med + FILTER_MEDDEV_M * mdm:\n", " data_count = datalist.count(item)\n", " if data_count >= FILTER_MINREADS:\n", " values.append(item)\n", @@ -1216,85 +957,75 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "compute_probs_new(counting_list)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "cd = {50:10, 75: 10, 100:1000}\n", + "\n", + "datalist = []\n", + "for key in cd.keys():\n", + " for i in range(cd[key]):\n", + " datalist.append(key)\n", + "datalist = sorted(datalist)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, "metadata": {}, "outputs": [ { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 18min 4s\n" - ] + "data": { + "text/plain": [ + "100.0" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" + "quick_median_new(datalist)" ] }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "([81,\n", - " 82,\n", - " 83,\n", - " 84,\n", - " 85,\n", - " 86,\n", - " 87,\n", - " 88,\n", - " 89,\n", - " 90,\n", - " 91,\n", - " 92,\n", - " 93,\n", - " 94,\n", - " 95,\n", - " 96,\n", - " 97,\n", - " 98,\n", - " 99,\n", - " 100],\n", - " [0.0014269858886951008,\n", - " 0.0019132181174356536,\n", - " 0.0021669044976481157,\n", - " 0.0028539717773902015,\n", - " 0.0024734422070715077,\n", - " 0.007071507848422388,\n", - " 0.00800169124253475,\n", - " 0.007927699381639449,\n", - " 0.008033402040061307,\n", - " 0.007853707520744147,\n", - " 0.03276782411077639,\n", - " 0.0322287405528249,\n", - " 0.03289466730088262,\n", - " 0.03376142909994186,\n", - " 0.02844458538132234,\n", - " 0.23078061413244544,\n", - " 0.21153216003382486,\n", - " 0.1821996723217589,\n", - " 0.16061518947201522,\n", - " 0.005052587072564875])" + "([100], [1.0])" ] }, - "execution_count": 24, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "time: 1min 13s\n" - ] } ], "source": [ - "compute_probs_new(counting_list)" + "compute_probs_new(datalist)" ] }, { @@ -1321,7 +1052,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.8.2" + "version": "3.7.6" } }, "nbformat": 4, diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index d968256..e9598e2 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -109,7 +109,7 @@ def compute_probs(datalist: list) -> (list, list): mad = median_absolute_deviation(datalist) for item in list(set(datalist)): - if 0 < item < med + FILTER_MEDDEV_M * mad: + if 0 < item <= med + FILTER_MEDDEV_M * mad: data_count = datalist.count(item) if data_count >= FILTER_MINREADS: values.append(item) From cac18c0d7ba346a25248df112dfc6b6edc55924a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 18 Jun 2020 13:27:50 -0500 Subject: [PATCH 068/323] Changing camel case variable names to python3 preferred format --- Testing_compute_fraglen.ipynb | 34 +++++++++++++++++++--------------- utilities/compute_fraglen.py | 16 ++++++++-------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/Testing_compute_fraglen.ipynb b/Testing_compute_fraglen.ipynb index 02b519c..e130f57 100644 --- a/Testing_compute_fraglen.ipynb +++ b/Testing_compute_fraglen.ipynb @@ -975,11 +975,11 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 20, "metadata": {}, "outputs": [], "source": [ - "cd = {50:10, 75: 10, 100:1000}\n", + "cd = {50:100, 75: 100, 100:100}\n", "\n", "datalist = []\n", "for key in cd.keys():\n", @@ -990,36 +990,33 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 24, "metadata": {}, "outputs": [ { - "data": { - "text/plain": [ - "100.0" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" + "name": "stdout", + "output_type": "stream", + "text": [ + "75.0 25.0\n" + ] } ], "source": [ - "quick_median_new(datalist)" + "print(quick_median_new(datalist), median_deviation_from_median_new(datalist))" ] }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "([100], [1.0])" + "([50, 75, 100], [0.3333333333333333, 0.3333333333333333, 0.3333333333333333])" ] }, - "execution_count": 12, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1028,6 +1025,13 @@ "compute_probs_new(datalist)" ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, { "cell_type": "code", "execution_count": null, diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index e9598e2..8124e8d 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -78,17 +78,17 @@ def count_frags(file: str) -> list: if line[0] == '#' or line[0] == '@': continue splt = line.strip().split('\t') - samFlag = int(splt[1]) - myRef = splt[2] - mapQual = int(splt[4]) - mateRef = splt[6] - myTlen = abs(int(splt[8])) + sam_flag = int(splt[1]) + my_ref = splt[2] + map_qual = int(splt[4]) + mate_ref = splt[6] + my_tlen = abs(int(splt[8])) # if read is paired, and is first in pair, and is confidently mapped... - if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: + if sam_flag & 1 and sam_flag & 64 and map_qual > FILTER_MAPQUAL: # and mate is mapped to same reference - if mateRef == '=' or mateRef == myRef: - count_list.append(myTlen) + if mate_ref == '=' or mate_ref == my_ref: + count_list.append(my_tlen) count_list = sorted(count_list) file_to_parse.close() return count_list From 1963f56639829c4023a15f3a3491b5ae0e71281e Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 18 Jun 2020 14:49:13 -0500 Subject: [PATCH 069/323] Add not about pysam not working on windows --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index c731a72..bc90c3d 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,8 @@ NEAT-genReads is a fine-grained read simulator. GenReads simulates real-looking This is an in-progress v2.0 of the software. For a previous stable release please see: [genReads1](https://github.com/zstephens/genReads1) +***PLEASE NOTE: The module "pysam" does not work on Windows OS. If you are using a windows system and wish to input a BAM file, you will first have to use samtools to convert the BAM to a SAM file.**** + Table of Contents ================= From 31370adb15e18af80ab879b8ec0ff3e129de8cd0 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 18 Jun 2020 14:51:45 -0500 Subject: [PATCH 070/323] Update compute_fraglen.py --- utilities/compute_fraglen.py | 151 +++++++++++++++++------------------ 1 file changed, 73 insertions(+), 78 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index e38d066..4ba6c7f 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -12,77 +12,76 @@ import pickle import argparse import pysam +import doctest -def quick_median(count_dict: dict) -> int: +def median(datalist: list) -> float: """ - Finds the median of a counting dictionary. A counting dictionary is a representation of a list of data. - For example, the data [1,1,2,2,2] could be represented in dictionary form as {1:2, 2:3}, indicating that 1 is - repeated twice and 2 is repeating three times. - :param count_dict: the counting dictionary to find the median of + Finds the median of a list of data. For this function, the data are expected to be a list of + numbers, either float or int. + :param datalist: the list of data to find the median of. This should be a set of numbers. :return: The median of the set + >>> median([2]) + 2 + >>> median([2183, 2292, 4064, 4795, 7471, 12766, 14603, 15182, 16803, 18704, 21504, 21677, 23347, 23586, 24612, 24878, 25310, 25993, 26448, 28018, 28352, 28373, 28786, 30037, 31659, 31786, 33487, 33531, 34442, 39138, 39718, 39815, 41518, 41934, 43301]) + 25993 + >>> median([1,2,4,6,8,12,14,15,17,21]) + 10.0 """ - # The sum of the values of the counting dictionary tells us how long the expanded list is. To find the midpoint - # We divide by 2 - if not count_dict: - raise Exception('This Counting Dictionary is Empty. Please input a dictionary with at least one entry.') + # using integer division here gives the index of the midpoint, due to zero-based indexing. + midpoint = (len(datalist))//2 + + # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an + # odd number of values, or the average of the two middle values if there are an even number + if len(datalist) % 2 == 0: + median = (datalist[midpoint] + datalist[midpoint-1])/2 else: - mid_point = sum(count_dict.values()) / 2 - my_sum = 0 - my_ind = 0 - sk = sorted(count_dict.keys()) - # Here we basically count up one group of dictionary values at a time until we're at the midpoint - while my_sum < mid_point: - my_sum += count_dict[sk[my_ind]] - if my_sum >= mid_point: - break - my_ind += 1 - # Once we've found the midpoint, we calculate the median, which is just the middle value if there are an - # odd number of values, or the average of the two middle valuse if there are an even number - if sum(count_dict.values()) % 2 == 0: - median = (sk[my_ind] + sk[my_ind-1])//2 - else: - median = sk[my_ind] - return median - - -def median_deviation_from_median(count_dict: dict) -> int: + median = datalist[midpoint] + return median + + + +def median_absolute_deviation(datalist: list) -> float: """ - Calculates the deviation from the median of each element of counting dictionary, - then returns the median of that dictionary. A counting dictionary such as {2: 3, 5:2} expands to [2,2,2,5,5] - :param count_dict: Counting dictionary to analyze + Calculates the absolute value of the median deviation from the median for each element of of a datalist. + Then returns the median of these values. + :param datalist: A list of data to find the MAD of :return: index of median of the deviations + >>> median_absolute_deviation([2183, 2292, 4064, 4795, 7471, 12766, 14603, 15182, 16803, 18704, 21504, 21677, 23347, 23586, 24612, 24878, 25310, 25993, 26448, 28018, 28352, 28373, 28786, 30037, 31659, 31786, 33487, 33531, 34442, 39138, 39718, 39815, 41518, 41934, 43301]) + 7494 + >>> median_absolute_deviation([1,2,4,6,8,12,14,15,17,21]) + 5.5 + >>> median_absolute_deviation([0,2]) + 1.0 """ - my_median = quick_median(count_dict) - deviations = {} - for key in sorted(count_dict.keys()): + my_median = median(datalist) + deviations = [] + for item in datalist: # We take the absolute difference between the value and the median - X_value = abs(key - my_median) - # We retain the number of items for each element of the dictionary - # This is equivalent to subtracting the median from each value of the expanded dataset - deviations[X_value] = count_dict[key] - # Taking the median of this dataset gives us the median deviation from the median - # (also called the Median Absolute Deviation) - return quick_median(deviations) - -def count_frags(file: str) -> dict: + X_value = abs(item - my_median) + # This creates a dataset that is the absolute deviations about the median + deviations.append(X_value) + # The median of the absolute deviations is the median absolute deviation + return median(sorted(deviations)) + + +def count_frags(file: str) -> list: """ - Takes a sam file input and creates a counting dictionary of the number of reads that are paired, + Takes a sam or bam file input and creates a list of the number of reads that are paired, first in the pair, confidently mapped and whose pair is mapped to the same reference :param file: A sam input file - :return: A dictionary of the counts of the above reads + :return: A list of the tlens from the bam/sam file """ FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality - count_dict = {} - PRINT_EVERY = 100000 - i = 0 + count_list = [] # Check if the file is sam or bam and decide how to open based on that if file[-4:] == ".sam": file_to_parse = open(file, 'r') elif file[-4:] == ".bam": + print("WARNING: Must have pysam installed to read bam files. Pysam does not work on Windows OS.") file_to_parse = pysam.AlignmentFile(file, 'rb') else: - print("Unknown file type, must be bam or sam") + print("Unknown file type, file extension must be bam or sam") exit(1) for item in file_to_parse: @@ -96,41 +95,38 @@ def count_frags(file: str) -> dict: myRef = splt[2] mapQual = int(splt[4]) mateRef = splt[6] - my_tlen = abs(int(splt[8])) + myTlen = abs(int(splt[8])) # if read is paired, and is first in pair, and is confidently mapped... if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL: # and mate is mapped to same reference if mateRef == '=' or mateRef == myRef: - if my_tlen not in count_dict: - count_dict[my_tlen] = 0 - count_dict[my_tlen] += 1 - i += 1 - if i % PRINT_EVERY == 0: - print('---', i, quick_median(count_dict), median_deviation_from_median(count_dict)) - return count_dict + count_list.append(myTlen) + count_list = sorted(count_list) + file_to_parse.close() + return count_list -def compute_probs(count_dict: dict) -> (list, list): +def compute_probs(datalist: list) -> (list, list): """ Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median deviations from the median. - :param count_dict: A dictionary of fragments with counts - :return: A list of values that meet the criteria and a list of -their associated probabilities + :param datalist: A list of fragments with counts + :return: A list of values that meet the criteria and a list of their associated probabilities """ FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median values = [] probabilities = [] - med = quick_median(count_dict) - mdm = median_deviation_from_median(count_dict) - - for key in sorted(count_dict.keys()): - if 0 < key < med + FILTER_MEDDEV_M * mdm: - if count_dict[key] >= FILTER_MINREADS: - print(key, count_dict[key]) - values.append(key) - probabilities.append(count_dict[key]) + med = median(datalist) + mad = median_absolute_deviation(datalist) + + for item in list(set(datalist)): + if 0 < item < med + FILTER_MEDDEV_M * mad: + data_count = datalist.count(item) + if data_count >= FILTER_MINREADS: + values.append(item) + probabilities.append(data_count) count_sum = float(sum(probabilities)) probabilities = [n / count_sum for n in probabilities] return values, probabilities @@ -139,13 +135,13 @@ def compute_probs(count_dict: dict) -> (list, list): def main(): """ Main function takes 2 arguments: - input - a samfile input that can be formed by applying samtools to a bam file + input - a path to a sam or bam file input. Note that sam files can be formed by applying samtools to a bam file in the follawing way: samtools view nameof.bam > nameof.sam - - output - the prefix of the output. The actual output will be the prefix plus ".p" at the end +​ + output - the string prefix of the output. The actual output will be the prefix plus ".p" at the end for pickle file. The list of values and list of probabilities are dumped as a list of lists into a pickle file on completion of the analysis - +​ :return: None """ parser = argparse.ArgumentParser(description="compute_fraglen.py") @@ -159,11 +155,10 @@ def main(): output = output_prefix + '.p' all_tlens = count_frags(input_file) - print('\nsaving model...') + print('\nSaving model...') out_vals, out_probs = compute_probs(all_tlens) - print(out_probs) pickle.dump([out_vals, out_probs], open(output, 'wb')) - + print('\nModel successfully saved.') if __name__ == "__main__": - main() + main() \ No newline at end of file From ee555a7c9e14a86b7fa8fef4c4f9566734eae8f5 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 18 Jun 2020 14:57:27 -0500 Subject: [PATCH 071/323] Update compute_gc.py --- utilities/compute_gc.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index a30d037..b13efef 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -95,19 +95,19 @@ def calculate_coverage(bin_dict: dict, window: int) -> float: should be the same as the window value in process_genomecov :return: Average coverage value for the whole sample, along with average coverage values for each window. - +​ Parameters ---------- bin_dict : dict DESCRIPTION. window : int DESCRIPTION. - +​ Returns ------- float DESCRIPTION. - +​ """ running_total = 0 all_mean = 0.0 @@ -134,7 +134,7 @@ def main(): -r is the reference file (fasta) -o is the prefix for the output -w is the sliding window length. The default is 50, but you can declare any reasonable integer - +​ :return: None """ parser = argparse.ArgumentParser(description='compute_gc.py') @@ -172,4 +172,4 @@ def main(): if __name__ == "__main__": - main() + main() \ No newline at end of file From a70a334f30a9f609df87386da2895da1a8d076d1 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 18 Jun 2020 15:47:26 -0500 Subject: [PATCH 072/323] Update README.md --- utilities/README.md | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/utilities/README.md b/utilities/README.md index 1864d6c..3ac998a 100644 --- a/utilities/README.md +++ b/utilities/README.md @@ -1,4 +1,4 @@ -# computeGC.py +# compute_gc.py Takes .genomecov files produced by BEDtools genomeCov (with -d option). @@ -10,20 +10,39 @@ bedtools genomecov ``` ``` -python computeGC.py \ - -r reference.fa \ - -i genomecovfile \ - -w [sliding window length] \ - -o /path/to/model.p +python computeGC.py \ + -r reference.fasta \ + -i genomecov \ + -w [sliding window length] \ + -o /path/to/output ``` -# computeFraglen.py +The main function in this file processes the inputs (reference.fasta, genome.cov, window length), and outputs a GC count for the sequence in the form of a pickle file at the location and with the name from the path the user provides with the -o command. -Takes SAM file via stdin: -./samtools view toy.bam | python computeFraglen.py -and creates fraglen.p model in working directory. +# compute_fraglen.py + +Takes SAM or BAM files and uses console commands for processing: + +``` +python computeGC.py \ + -i path to sam file \ + -o path/to/output +``` + +The main function in this file will save a pickle (.p) in the location and with the name from the path the user provides with the -o command. + +**Please be aware that pysam is not usable on windows, so any BAM file will need to be turned into a SAM file using samtools beforehand. + +To use samtools, use the following command: + +``` +Turn SAM file into BAM file: \ + samtools view nameof.bam > nameof.sam +``` + + # genMutModel.py From 309b0bb579f00310e0e752c9fe3cf4d8fab81c41 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 18 Jun 2020 15:50:36 -0500 Subject: [PATCH 073/323] Update README.md --- utilities/README.md | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/utilities/README.md b/utilities/README.md index 3ac998a..d5f425c 100644 --- a/utilities/README.md +++ b/utilities/README.md @@ -4,13 +4,13 @@ Takes .genomecov files produced by BEDtools genomeCov (with -d option). ``` bedtools genomecov - -d \ - -ibam normal.bam \ + -d \ + -ibam normal.bam \ -g reference.fa ``` ``` -python computeGC.py \ +python computeGC.py \ -r reference.fasta \ -i genomecov \ -w [sliding window length] \ @@ -26,8 +26,8 @@ The main function in this file processes the inputs (reference.fasta, genome.cov Takes SAM or BAM files and uses console commands for processing: ``` -python computeGC.py \ - -i path to sam file \ +python computeGC.py \ + -i path to sam file \ -o path/to/output ``` @@ -35,11 +35,10 @@ The main function in this file will save a pickle (.p) in the location and with **Please be aware that pysam is not usable on windows, so any BAM file will need to be turned into a SAM file using samtools beforehand. -To use samtools, use the following command: +To convert a BAM file to a SAM file using samtools, use the following command: ``` -Turn SAM file into BAM file: \ - samtools view nameof.bam > nameof.sam +samtools view nameof.bam > nameof.sam ``` From 6f6d88a9e3c6b477333c543672687ed84c3b41c3 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Fri, 19 Jun 2020 13:27:00 -0500 Subject: [PATCH 074/323] Update compute_fraglen.py --- utilities/compute_fraglen.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 0a5745b..e8351a3 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -11,8 +11,11 @@ import pickle import argparse -import pysam +import platform import doctest +os = platform.system() +if os !='Windows': + import pysam def median(datalist: list) -> float: @@ -79,7 +82,10 @@ def count_frags(file: str) -> list: file_to_parse = open(file, 'r') elif file[-4:] == ".bam": print("WARNING: Must have pysam installed to read bam files. Pysam does not work on Windows OS.") - file_to_parse = pysam.AlignmentFile(file, 'rb') + if os != 'Windows': + file_to_parse = pysam.AlignmentFile(file, 'rb') + else: + raise Exception("Your machine is running Windows. Please convert any BAM files to SAM files using samtools prior to input") else: print("Unknown file type, file extension must be bam or sam") exit(1) From 2a60aefb93c5a817acee271b50d7cdd3aa9b9134 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Fri, 19 Jun 2020 16:40:50 -0500 Subject: [PATCH 075/323] variable renaming --- utilities/genSeqErrorModel.py | 229 +++++++++++++++++----------------- 1 file changed, 115 insertions(+), 114 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 02e57f4..a3072c0 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -20,13 +20,13 @@ import pickle # absolute path to this script -SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' -sys.path.append(SIM_PATH) +sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' +sys.path.append(sim_path) from probability import DiscreteDistribution -def parseFQ(inf): +def parse_fq(inf): print('reading ' + inf + '...') if inf[-3:] == '.gz': print('detected gzip suffix...') @@ -34,17 +34,17 @@ def parseFQ(inf): else: f = open(inf, 'r') - IS_SAM = False + is_sam = False if inf[-4:] == '.sam': print('detected sam input...') - IS_SAM = True + is_sam = True - rRead = 0 + r_read = 0 actual_readlen = 0 - qDict = {} + q_dict = {} while True: - if IS_SAM: + if is_sam: data4 = f.readline() if not len(data4): break @@ -62,15 +62,15 @@ def parseFQ(inf): break if actual_readlen == 0: - if inf[-3:] != '.gz' and not IS_SAM: - totalSize = os.path.getsize(inf) - entrySize = sum([len(n) for n in [data1, data2, data3, data4]]) - print('estimated number of reads in file:', int(float(totalSize) / entrySize)) + if inf[-3:] != '.gz' and not is_sam: + total_size = os.path.getsize(inf) + entry_size = sum([len(n) for n in [data1, data2, data3, data4]]) + print('estimated number of reads in file:', int(float(total_size) / entry_size)) actual_readlen = len(data4) - 1 print('assuming read length is uniform...') print('detected read length (from first read found):', actual_readlen) - priorQ = np.zeros([actual_readlen, RQ]) - totalQ = [None] + [np.zeros([RQ, RQ]) for n in range(actual_readlen - 1)] + prior_q = np.zeros([actual_readlen, r_q]) + total_q = [None] + [np.zeros([r_q, r_q]) for n in range(actual_readlen - 1)] # sanity-check readlengths if len(data4) - 1 != actual_readlen: @@ -78,54 +78,55 @@ def parseFQ(inf): continue for i in range(len(data4) - 1): - q = ord(data4[i]) - offQ - qDict[q] = True + q = ord(data4[i]) - off_q + q_dict[q] = True + prev_q = q if i == 0: - priorQ[i][q] += 1 + prior_q[i][q] += 1 else: - totalQ[i][prevQ, q] += 1 - priorQ[i][q] += 1 - prevQ = q - - rRead += 1 - if rRead % PRINT_EVERY == 0: - print(rRead) - if MAX_READS > 0 and rRead >= MAX_READS: + total_q[i][prev_q, q] += 1 + prior_q[i][q] += 1 + + + r_read += 1 + if r_read % print_every == 0: + print(r_read) + if max_reads > 0 and r_read >= max_reads: break f.close() # some sanity checking again... - QRANGE = [min(qDict.keys()), max(qDict.keys())] - if QRANGE[0] < 0: + q_range = [min(q_dict.keys()), max(q_dict.keys())] + if q_range[0] < 0: print('\nError: Read in Q-scores below 0\n') exit(1) - if QRANGE[1] > RQ: - print('\nError: Read in Q-scores above specified maximum:', QRANGE[1], '>', RQ, '\n') + if q_range[1] > r_q: + print('\nError: Read in Q-scores above specified maximum:', q_range[1], '>', r_q, '\n') exit(1) print('computing probabilities...') - probQ = [None] + [[[0. for m in range(RQ)] for n in range(RQ)] for p in range(actual_readlen - 1)] + prob_q = [None] + [[[0. for m in range(r_q)] for n in range(r_q)] for p in range(actual_readlen - 1)] for p in range(1, actual_readlen): - for i in range(RQ): - rowSum = float(np.sum(totalQ[p][i, :])) + PROB_SMOOTH * RQ - if rowSum <= 0.: + for i in range(r_q): + row_sum = float(np.sum(total_q[p][i, :])) + prob_smooth * r_q + if row_sum <= 0.: continue - for j in range(RQ): - probQ[p][i][j] = (totalQ[p][i][j] + PROB_SMOOTH) / rowSum + for j in range(r_q): + prob_q[p][i][j] = (total_q[p][i][j] + prob_smooth) / row_sum - initQ = [[0. for m in range(RQ)] for n in range(actual_readlen)] + init_q = [[0. for m in range(r_q)] for n in range(actual_readlen)] for i in range(actual_readlen): - rowSum = float(np.sum(priorQ[i, :])) + INIT_SMOOTH * RQ - if rowSum <= 0.: + row_sum = float(np.sum(prior_q[i, :])) + INIT_SMOOTH * r_q + if row_sum <= 0.: continue - for j in range(RQ): - initQ[i][j] = (priorQ[i][j] + INIT_SMOOTH) / rowSum + for j in range(r_q): + init_q[i][j] = (prior_q[i][j] + INIT_SMOOTH) / row_sum - if PLOT_STUFF: + if plot_stuff: mpl.rcParams.update({'font.size': 14, 'font.weight': 'bold', 'lines.linewidth': 3}) mpl.figure(1) - Z = np.array(initQ).T + Z = np.array(init_q).T X, Y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) mpl.pcolormesh(X, Y, Z, vmin=0., vmax=0.25) mpl.axis([0, len(Z[0]), 0, len(Z)]) @@ -138,18 +139,18 @@ def parseFQ(inf): mpl.show() - VMIN_LOG = [-4, 0] - minVal = 10 ** VMIN_LOG[0] - qLabels = [str(n) for n in range(QRANGE[0], QRANGE[1] + 1) if n % 5 == 0] - print(qLabels) - qTicksx = [int(n) + 0.5 for n in qLabels] - qTicksy = [(RQ - int(n)) - 0.5 for n in qLabels] + v_min_log = [-4, 0] + min_val = 10 ** v_min_log[0] + q_labels = [str(n) for n in range(q_range[0], q_range[1] + 1) if n % 5 == 0] + print(q_labels) + q_ticks_x = [int(n) + 0.5 for n in q_labels] + qTicksy = [(r_q - int(n)) - 0.5 for n in q_labels] for p in range(1, actual_readlen, 10): - currentDat = np.array(probQ[p]) - for i in range(len(currentDat)): - for j in range(len(currentDat[i])): - currentDat[i][j] = max(minVal, currentDat[i][j]) + current_data = np.array(prob_q[p]) + for i in range(len(current_data)): + for j in range(len(current_data[i])): + current_data[i][j] = max(min_val, current_data[i][j]) # matrix indices: pcolormesh plotting: plot labels and axes: # @@ -168,13 +169,13 @@ def parseFQ(inf): # mpl.figure(p + 1) - Z = np.log10(currentDat) - X, Y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) - mpl.pcolormesh(X, Y, Z[::-1, :], vmin=VMIN_LOG[0], vmax=VMIN_LOG[1], cmap='jet') - mpl.xlim([QRANGE[0], QRANGE[1] + 1]) - mpl.ylim([RQ - QRANGE[1] - 1, RQ - QRANGE[0]]) - mpl.yticks(qTicksy, qLabels) - mpl.xticks(qTicksx, qLabels) + z = np.log10(current_data) + x, y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) + mpl.pcolormesh(x, y, z[::-1, :], vmin=v_min_log[0], vmax=v_min_log[1], cmap='jet') + mpl.xlim([q_range[0], q_range[1] + 1]) + mpl.ylim([r_q - q_range[1] - 1, r_q - q_range[0]]) + mpl.yticks(qTicksy, q_labels) + mpl.xticks(q_ticks_x, q_labels) mpl.xlabel('\n' + r'$Q_{i+1}$') mpl.ylabel(r'$Q_i$') mpl.title('Q-Score Transition Frequencies [Read Pos:' + str(p) + ']') @@ -186,41 +187,41 @@ def parseFQ(inf): mpl.show() print('estimating average error rate via simulation...') - Qscores = range(RQ) - # print (len(initQ), len(initQ[0])) - # print (len(probQ), len(probQ[1]), len(probQ[1][0])) - - initDistByPos = [DiscreteDistribution(initQ[i], Qscores) for i in range(len(initQ))] - probDistByPosByPrevQ = [None] - for i in range(1, len(initQ)): - probDistByPosByPrevQ.append([]) - for j in range(len(initQ[0])): - if np.sum(probQ[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - probDistByPosByPrevQ[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) + q_scores = range(r_q) + # print (len(init_q), len(init_q[0])) + # print (len(prob_q), len(prob_q[1]), len(prob_q[1][0])) + + init_dist_by_pos = [DiscreteDistribution(init_q[i], q_scores) for i in range(len(init_q))] + prob_dist_by_pos_by_prev_q = [None] + for i in range(1, len(init_q)): + prob_dist_by_pos_by_prev_q.append([]) + for j in range(len(init_q[0])): + if np.sum(prob_q[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + prob_dist_by_pos_by_prev_q[-1].append(DiscreteDistribution([1], [q_scores[j]], degenerateVal=q_scores[j])) else: - probDistByPosByPrevQ[-1].append(DiscreteDistribution(probQ[i][j], Qscores)) + prob_dist_by_pos_by_prev_q[-1].append(DiscreteDistribution(prob_q[i][j], q_scores)) - countDict = {} - for q in Qscores: - countDict[q] = 0 - for samp in range(1, N_SAMP + 1): - if samp % PRINT_EVERY == 0: + count_dict = {} + for q in q_scores: + count_dict[q] = 0 + for samp in range(1, n_samp + 1): + if samp % print_every == 0: print(samp) - myQ = initDistByPos[0].sample() - countDict[myQ] += 1 - for i in range(1, len(initQ)): - myQ = probDistByPosByPrevQ[i][myQ].sample() - countDict[myQ] += 1 - - totBases = float(sum(countDict.values())) - avgError = 0. - for k in sorted(countDict.keys()): + my_q = init_dist_by_pos[0].sample() + count_dict[my_q] += 1 + for i in range(1, len(init_q)): + my_q = prob_dist_by_pos_by_prev_q[i][my_q].sample() + count_dict[my_q] += 1 + + tot_bases = float(sum(count_dict.values())) + avg_err = 0. + for k in sorted(count_dict.keys()): eVal = 10. ** (-k / 10.) - # print k, eVal, countDict[k] - avgError += eVal * (countDict[k] / totBases) - print('AVG ERROR RATE:', avgError) + # print k, eVal, count_dict[k] + avg_err += eVal * (count_dict[k] / tot_bases) + print('AVG ERROR RATE:', avg_err) - return initQ, probQ, avgError + return init_q, prob_q, avg_err parser = argparse.ArgumentParser(description='genSeqErrorModel.py') @@ -238,50 +239,50 @@ def parseFQ(inf): parser.add_argument('--plot', required=False, action='store_true', default=False, help='perform some optional plotting') args = parser.parse_args() -(INF, OUF, offQ, maxQ, MAX_READS, N_SAMP) = (args.i, args.o, args.q, args.Q, args.n, args.s) -(INF2, PILEUP) = (args.i2, args.p) +(inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) +(inf2, pileup) = (args.i2, args.p) -RQ = maxQ + 1 +r_q = max_q + 1 -INIT_SMOOTH = 0. -PROB_SMOOTH = 0. -PRINT_EVERY = 10000 -PLOT_STUFF = args.plot -if PLOT_STUFF: +init_smooth = 0. +prob_smooth = 0. +print_every = 10000 +plot_stuff = args.plot +if plot_stuff: print('plotting is desired, lets import matplotlib...') import matplotlib.pyplot as mpl def main(): - Qscores = range(RQ) - if INF2 == None: - (initQ, probQ, avgError) = parseFQ(INF) + q_scores = range(r_q) + if inf2 == None: + (init_q, prob_q, avg_err) = parse_fq(inf) else: - (initQ, probQ, avgError1) = parseFQ(INF) - (initQ2, probQ2, avgError2) = parseFQ(INF2) - avgError = (avgError1 + avgError2) / 2. + (init_q, prob_q, avg_err1) = parse_fq(inf) + (init_q2, prob_q2, avg_err2) = parse_fq(inf2) + avg_err = (avg_err1 + avg_err2) / 2. # # embed some default sequencing error parameters if no pileup is provided # - if PILEUP == None: + if pileup == None: print('Using default sequencing error parameters...') # sequencing substitution transition probabilities - SSE_PROB = [[0., 0.4918, 0.3377, 0.1705], + sse_prob = [[0., 0.4918, 0.3377, 0.1705], [0.5238, 0., 0.2661, 0.2101], [0.3754, 0.2355, 0., 0.3890], [0.2505, 0.2552, 0.4942, 0.]] # if a sequencing error occurs, what are the odds it's an indel? - SIE_RATE = 0.01 + sie_rate = 0.01 # sequencing indel error length distribution - SIE_PROB = [0.999, 0.001] - SIE_VAL = [1, 2] + sie_prob = [0.999, 0.001] + sie_val = [1, 2] # if a sequencing indel error occurs, what are the odds it's an insertion as opposed to a deletion? - SIE_INS_FREQ = 0.4 + sie_ins_freq = 0.4 # if a sequencing insertion error occurs, what's the probability of it being an A, C, G, T... - SIE_INS_NUCL = [0.25, 0.25, 0.25, 0.25] + sie_ins_nucl = [0.25, 0.25, 0.25, 0.25] # # otherwise we need to parse a pileup and compute statistics! @@ -290,16 +291,16 @@ def main(): print('\nPileup parsing coming soon!\n') exit(1) - errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] + err_params = [sse_prob, sie_rate, sie_prob, sie_val, sie_ins_freq, sie_ins_nucl] # # finally, let's save our output model # print('saving model...') - if INF2 == None: - pickle.dump([initQ, probQ, Qscores, offQ, avgError, errorParams], open(OUF, 'wb')) + if inf2 == None: + pickle.dump([init_q, prob_q, q_scores, off_q, avg_err, err_params], open(ouf, 'wb')) else: - pickle.dump([initQ, probQ, initQ2, probQ2, Qscores, offQ, avgError, errorParams], open(OUF, 'wb')) + pickle.dump([init_q, prob_q, init_q2, prob_q2, q_scores, off_q, avg_err, err_params], open(ouf, 'wb')) if __name__ == '__main__': From e262b41081cd9ddcc85335a9a36cd10c69589bdc Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 24 Jun 2020 16:12:22 -0500 Subject: [PATCH 076/323] finished rough draft of genMutModel.py --- Testing_compute_fraglen.ipynb | 1064 --------------------------------- utilities/genMutModel.py | 46 +- 2 files changed, 5 insertions(+), 1105 deletions(-) delete mode 100644 Testing_compute_fraglen.ipynb diff --git a/Testing_compute_fraglen.ipynb b/Testing_compute_fraglen.ipynb deleted file mode 100644 index e130f57..0000000 --- a/Testing_compute_fraglen.ipynb +++ /dev/null @@ -1,1064 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "!pip install ipython-autotime\n", - "%load_ext autotime" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd = {1:4, 2:6, 3:1, 4:8, 5:3, 10:2}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "list = []\n", - "for key in cd.keys():\n", - " for i in range(cd[key]):\n", - " list.append(key)\n", - "list = sorted(list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "cd = list" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def quick_median(count_dict: dict) -> int:\n", - " \"\"\"\n", - " Finds the median of a counting dictionary\n", - " :param count_dict: the counting dictionary to find the median of\n", - " :return: integer index of the location of the median\n", - " \"\"\"\n", - " list = []\n", - " for key in count_dict.keys():\n", - " for i in range(count_dict[key]):\n", - " list.append(key)\n", - " list = sorted(list)\n", - " midpoint = len(list)//2\n", - " if len(list)%2 == 0:\n", - " median = (list[midpoint] + list[midpoint-1])//2\n", - " else:\n", - " median = list[midpoint]\n", - " return median" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def quick_median_old(count_dict: dict) -> int:\n", - " mid_point = sum(count_dict.values()) / 2\n", - " my_sum = 0\n", - " my_ind = 0\n", - " sk = sorted(count_dict.keys())\n", - " while my_sum < mid_point:\n", - " my_sum += count_dict[sk[my_ind]]\n", - " if my_sum >= mid_point:\n", - " break\n", - " my_ind += 1\n", - " return sk[my_ind]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd = {4: 10, 236: 13, 99: 43, 88: 43, 127: 15}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median_old(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd2 = {4: 10, 236: 13, 99: 43, 88: 43, 127: 14, 8:102}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median(cd2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median_old(cd2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "my_median1 = quick_median(cd)\n", - "my_median2 = quick_median(cd2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def median_deviation_from_median1(count_dict: dict) -> int:\n", - " \"\"\"\n", - " calculates the deviation from the median of each element of counting dictionary,\n", - " then returns the median of that dictionary\n", - " :param count_dict: Counting dictionary to analyze\n", - " :return: index of median of the deviations\n", - " \"\"\"\n", - " my_median = quick_median1(count_dict)\n", - " deviations = {}\n", - " for key in sorted(count_dict.keys()):\n", - " X_value = abs(key - my_median)\n", - " deviations[X_value] = count_dict[key]\n", - " print(deviations)\n", - " return quick_median1(deviations)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "median_deviation_from_median(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(sorted([abs(x-99) for x in list]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd3 = {1:100, 100:100}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median(cd3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median_old(cd3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def quick_median1(count_dict: dict) -> int:\n", - " mid_point = sum(count_dict.values()) / 2\n", - " my_sum = 0\n", - " my_ind = 0\n", - " sk = sorted(count_dict.keys())\n", - " while my_sum < mid_point:\n", - " my_sum += count_dict[sk[my_ind]]\n", - " if my_sum >= mid_point:\n", - " break\n", - " my_ind += 1\n", - " if sum(count_dict.values())%2 == 0:\n", - " median = (sk[my_ind] + sk[my_ind-1])//2\n", - " else:\n", - " median = sk[my_ind]\n", - " return median" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median_new(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def count_frags1(file: str) -> dict:\n", - " \"\"\"\n", - " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", - " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", - " :param file: A sam input file\n", - " :return: A dictionary of the counts of the above reads\n", - " \"\"\"\n", - " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", - " count_dict = {}\n", - " PRINT_EVERY = 100000\n", - " # Check if the file is sam or bam and decide how to open based on that\n", - " if file[-4:] == \".sam\":\n", - " file_to_parse = open(file, 'r')\n", - " elif file[-4:] == \".bam\":\n", - " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", - " else:\n", - " print(\"Unknown file type, must be bam or sam\")\n", - " exit(1)\n", - "\n", - " for item in file_to_parse:\n", - " # Need to convert bam iterable objects into strings for the next part\n", - " line = str(item)\n", - " # Skip all comments and headers\n", - " if line[0] == '#' or line[0] == '@':\n", - " continue\n", - " splt = line.strip().split('\\t')\n", - " samFlag = int(splt[1])\n", - " myRef = splt[2]\n", - " mapQual = int(splt[4])\n", - " mateRef = splt[6]\n", - " myTlen = abs(int(splt[8]))\n", - "\n", - " # if read is paired, and is first in pair, and is confidently mapped...\n", - " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", - " # and mate is mapped to same reference\n", - " if mateRef == '=' or mateRef == myRef:\n", - " if myTlen not in count_dict:\n", - " count_dict[myTlen] = 0\n", - " count_dict[myTlen] += 1\n", - " return count_dict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd = count_frags(\"C:/Users/joshf/Documents/work_stuff/neat_data/baby.sam\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", - "count_dict = {}\n", - "PRINT_EVERY = 100000\n", - "i = 0" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "for item in file_to_parse:\n", - " # Need to convert bam iterable objects into strings for the next part\n", - " line = str(item)\n", - " # Skip all comments and headers\n", - " if line[0] == '#' or line[0] == '@':\n", - " continue\n", - " splt = line.strip().split('\\t')\n", - " samFlag = int(splt[1])\n", - " myRef = splt[2]\n", - " mapQual = int(splt[4])\n", - " mateRef = splt[6]\n", - " myTlen = abs(int(splt[8]))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "len(count_dict)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_probs1(count_dict: dict) -> (list, list):\n", - " \"\"\"\n", - " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", - " deviations from the median.\n", - " :param count_dict: A dictionary of fragments with counts\n", - " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", - " \"\"\"\n", - " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", - " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", - " values = []\n", - " probabilities = []\n", - " med = quick_median1(count_dict)\n", - " mdm = median_deviation_from_median1(count_dict)\n", - "\n", - " for key in sorted(count_dict.keys()):\n", - " if 0 < key < med + FILTER_MEDDEV_M * mdm:\n", - " if count_dict[key] >= FILTER_MINREADS:\n", - " print(key, count_dict[key])\n", - " values.append(key)\n", - " probabilities.append(count_dict[key])\n", - " count_sum = float(sum(probabilities))\n", - " probabilities = [n / count_sum for n in probabilities]\n", - " return values, probabilities" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "compute_probs(cd2)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import timeit" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def wrapper(func, *args, **kwargs):\n", - " def wrapped():\n", - " return func(*args, **kwargs)\n", - " return wrapped" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import pysam" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cd = count_frags(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "wrapped = wrapper(quick_median, cd)\n", - "timeit.timeit(wrapped, number=100)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "wrapped2 = wrapper(quick_median_new, cd)\n", - "timeit.timeit(wrapped2, number=100)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def quick_median_new2(count_dict: dict) -> int:\n", - " mid_point = sum(count_dict.values()) / 2\n", - " print(mid_point)\n", - " my_sum = 0\n", - " my_ind = 0\n", - " sk = sorted(count_dict.keys())\n", - " while my_sum < mid_point:\n", - " my_sum += count_dict[sk[my_ind]]\n", - " if my_sum >= mid_point:\n", - " my_ind += 1\n", - " break\n", - " my_ind += 1\n", - " # correction if we miss the mark too far\n", - " if sum(count_dict.values())%2 == 0:\n", - " median = (sk[my_ind] + sk[my_ind-1])//2\n", - " else:\n", - " median = sk[my_ind]\n", - " return median" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "count_d = {1:4, 2:6, 3:3, 4:8, 5:3, 10:2}" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "list = []\n", - "for key in count_d.keys():\n", - " for i in range(count_d[key]):\n", - " list.append(key)\n", - "list = sorted(list)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "(list[13] + list[12])//2" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median_new2(count_d)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def count_frags_new(file: str) -> list:\n", - " \"\"\"\n", - " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", - " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", - " :param file: A sam input file\n", - " :return: A dictionary of the counts of the above reads\n", - " \"\"\"\n", - " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", - " count_list = []\n", - " PRINT_EVERY = 100000\n", - " i = 0\n", - " # Check if the file is sam or bam and decide how to open based on that\n", - " if file[-4:] == \".sam\":\n", - " file_to_parse = open(file, 'r')\n", - " elif file[-4:] == \".bam\":\n", - " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", - " else:\n", - " print(\"Unknown file type, must be bam or sam\")\n", - " exit(1)\n", - "\n", - " for item in file_to_parse:\n", - " # Need to convert bam iterable objects into strings for the next part\n", - " line = str(item)\n", - " # Skip all comments and headers\n", - " if line[0] == '#' or line[0] == '@':\n", - " continue\n", - " splt = line.strip().split('\\t')\n", - " samFlag = int(splt[1])\n", - " myRef = splt[2]\n", - " mapQual = int(splt[4])\n", - " mateRef = splt[6]\n", - " myTlen = abs(int(splt[8]))\n", - "\n", - " # if read is paired, and is first in pair, and is confidently mapped...\n", - " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", - " # and mate is mapped to same reference\n", - " if mateRef == '=' or mateRef == myRef:\n", - " count_list.append(myTlen)\n", - " count_list = sorted(count_list)\n", - " return count_list" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "wrapped3 = wrapper(count_frags, \"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", - "timeit.timeit(wrapped3, number=1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "wrapped4 = wrapper(count_frags_new, \"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", - "timeit.timeit(wrapped4, number=1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def quick_median_new(datalist: list) -> float:\n", - " \"\"\"\n", - " Finds the median of a counting dictionary\n", - " :param count_dict: the counting dictionary to find the median of\n", - " :return: integer index of the location of the median\n", - " \"\"\"\n", - " midpoint = len(datalist)//2\n", - " if len(datalist) % 2 == 0:\n", - " median = (datalist[midpoint] + datalist[midpoint-1])/2\n", - " else:\n", - " median = datalist[midpoint]\n", - " return median" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "quick_median(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def median_deviation_from_median_new(datalist: list) -> float:\n", - " \"\"\"\n", - " calculates the deviation from the median of each element of counting dictionary,\n", - " then returns the median of that dictionary\n", - " :param count_dict: Counting dictionary to analyze\n", - " :return: index of median of the deviations\n", - " \"\"\"\n", - " my_median = quick_median_new(datalist)\n", - " deviations = []\n", - " for item in datalist:\n", - " X_value = abs(item - my_median)\n", - " deviations.append(X_value)\n", - " return quick_median_new(sorted(deviations))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "median_deviation_from_median(cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def compute_probs_new(datalist: list) -> (list, list):\n", - " \"\"\"\n", - " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", - " deviations from the median.\n", - " :param count_dict: A dictionary of fragments with counts\n", - " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", - " \"\"\"\n", - " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", - " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", - " values = []\n", - " probabilities = []\n", - " med = quick_median_new(datalist)\n", - " mdm = median_deviation_from_median_new(datalist)\n", - " \n", - " for item in list(set(datalist)):\n", - " if 0 < item < med + FILTER_MEDDEV_M * mdm:\n", - " if datalist.count(item) >= FILTER_MINREADS:\n", - " values.append(item)\n", - " probabilities.append(datalist.count(item))\n", - " count_sum = float(sum(probabilities))\n", - " probabilities = [n / count_sum for n in probabilities]\n", - " return values, probabilities" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "sum(x == 10 for x in cd)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "list.count(10)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")\n", - "print(\"computing probs\")\n", - "compute_probs_new(counting_list)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Below are the two competing compute frag length programs, so that I can run side-by-side time comparisons." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Count_dict method\n", - "\n", - "def quick_median1(count_dict: dict) -> int:\n", - " mid_point = sum(count_dict.values()) / 2\n", - " my_sum = 0\n", - " my_ind = 0\n", - " sk = sorted(count_dict.keys())\n", - " while my_sum < mid_point:\n", - " my_sum += count_dict[sk[my_ind]]\n", - " if my_sum >= mid_point:\n", - " break\n", - " my_ind += 1\n", - " if sum(count_dict.values())%2 == 0:\n", - " median = (sk[my_ind] + sk[my_ind-1])//2\n", - " else:\n", - " median = sk[my_ind]\n", - " return median\n", - "\n", - "\n", - "def median_deviation_from_median1(count_dict: dict) -> int:\n", - " \"\"\"\n", - " calculates the deviation from the median of each element of counting dictionary,\n", - " then returns the median of that dictionary\n", - " :param count_dict: Counting dictionary to analyze\n", - " :return: index of median of the deviations\n", - " \"\"\"\n", - " my_median = quick_median1(count_dict)\n", - " deviations = {}\n", - " for key in sorted(count_dict.keys()):\n", - " X_value = abs(key - my_median)\n", - " deviations[X_value] = count_dict[key]\n", - " return quick_median1(deviations)\n", - "\n", - "\n", - "def count_frags1(file: str) -> dict:\n", - " \"\"\"\n", - " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", - " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", - " :param file: A sam input file\n", - " :return: A dictionary of the counts of the above reads\n", - " \"\"\"\n", - " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", - " count_dict = {}\n", - " PRINT_EVERY = 100000\n", - " # Check if the file is sam or bam and decide how to open based on that\n", - " if file[-4:] == \".sam\":\n", - " file_to_parse = open(file, 'r')\n", - " elif file[-4:] == \".bam\":\n", - " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", - " else:\n", - " print(\"Unknown file type, must be bam or sam\")\n", - " exit(1)\n", - "\n", - " for item in file_to_parse:\n", - " # Need to convert bam iterable objects into strings for the next part\n", - " line = str(item)\n", - " # Skip all comments and headers\n", - " if line[0] == '#' or line[0] == '@':\n", - " continue\n", - " splt = line.strip().split('\\t')\n", - " samFlag = int(splt[1])\n", - " myRef = splt[2]\n", - " mapQual = int(splt[4])\n", - " mateRef = splt[6]\n", - " myTlen = abs(int(splt[8]))\n", - "\n", - " # if read is paired, and is first in pair, and is confidently mapped...\n", - " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", - " # and mate is mapped to same reference\n", - " if mateRef == '=' or mateRef == myRef:\n", - " if myTlen not in count_dict:\n", - " count_dict[myTlen] = 0\n", - " count_dict[myTlen] += 1\n", - " return count_dict\n", - "\n", - "\n", - "def compute_probs1(count_dict: dict) -> (list, list):\n", - " \"\"\"\n", - " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", - " deviations from the median.\n", - " :param count_dict: A dictionary of fragments with counts\n", - " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", - " \"\"\"\n", - " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", - " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", - " values = []\n", - " probabilities = []\n", - " med = quick_median1(count_dict)\n", - " mdm = median_deviation_from_median1(count_dict)\n", - "\n", - " for key in sorted(count_dict.keys()):\n", - " if 0 < key < med + FILTER_MEDDEV_M * mdm:\n", - " if count_dict[key] >= FILTER_MINREADS:\n", - " values.append(key)\n", - " probabilities.append(count_dict[key])\n", - " count_sum = float(sum(probabilities))\n", - " probabilities = [n / count_sum for n in probabilities]\n", - " return values, probabilities" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counting_list = count_frags1(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "compute_probs1(counting_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "# Datalist method\n", - "\n", - "def quick_median_new(datalist: list) -> float:\n", - " \"\"\"\n", - " Finds the median of a counting dictionary\n", - " :param count_dict: the counting dictionary to find the median of\n", - " :return: integer index of the location of the median\n", - " \"\"\"\n", - " midpoint = len(datalist)//2\n", - " if len(datalist) % 2 == 0:\n", - " median = (datalist[midpoint] + datalist[midpoint-1])/2\n", - " else:\n", - " median = datalist[midpoint]\n", - " return median\n", - "\n", - "\n", - "def median_deviation_from_median_new(datalist: list) -> float:\n", - " \"\"\"\n", - " calculates the deviation from the median of each element of counting dictionary,\n", - " then returns the median of that dictionary\n", - " :param count_dict: Counting dictionary to analyze\n", - " :return: index of median of the deviations\n", - " \"\"\"\n", - " my_median = quick_median_new(datalist)\n", - " deviations = []\n", - " for item in datalist:\n", - " X_value = abs(item - my_median)\n", - " deviations.append(X_value)\n", - " return quick_median_new(sorted(deviations))\n", - "\n", - "\n", - "def count_frags_new(file: str) -> list:\n", - " \"\"\"\n", - " Takes a sam file input and creates a counting dictionary of the number of reads that are paired,\n", - " first in the pair, confidently mapped and whose pair is mapped to the same reference\n", - " :param file: A sam input file\n", - " :return: A dictionary of the counts of the above reads\n", - " \"\"\"\n", - " FILTER_MAPQUAL = 10 # only consider reads that are mapped with at least this mapping quality\n", - " count_list = []\n", - " PRINT_EVERY = 100000\n", - " i = 0\n", - " # Check if the file is sam or bam and decide how to open based on that\n", - " if file[-4:] == \".sam\":\n", - " file_to_parse = open(file, 'r')\n", - " elif file[-4:] == \".bam\":\n", - " file_to_parse = pysam.AlignmentFile(file, 'rb')\n", - " else:\n", - " print(\"Unknown file type, must be bam or sam\")\n", - " exit(1)\n", - "\n", - " for item in file_to_parse:\n", - " # Need to convert bam iterable objects into strings for the next part\n", - " line = str(item)\n", - " # Skip all comments and headers\n", - " if line[0] == '#' or line[0] == '@':\n", - " continue\n", - " splt = line.strip().split('\\t')\n", - " samFlag = int(splt[1])\n", - " myRef = splt[2]\n", - " mapQual = int(splt[4])\n", - " mateRef = splt[6]\n", - " myTlen = abs(int(splt[8]))\n", - "\n", - " # if read is paired, and is first in pair, and is confidently mapped...\n", - " if samFlag & 1 and samFlag & 64 and mapQual > FILTER_MAPQUAL:\n", - " # and mate is mapped to same reference\n", - " if mateRef == '=' or mateRef == myRef:\n", - " count_list.append(myTlen)\n", - " count_list = sorted(count_list)\n", - " file_to_parse.close()\n", - " return count_list\n", - "\n", - "\n", - "def compute_probs_new(datalist: list) -> (list, list):\n", - " \"\"\"\n", - " Computes the probabilities for fragments with at least 100 pairs supporting it and that are at least 10 median\n", - " deviations from the median.\n", - " :param count_dict: A dictionary of fragments with counts\n", - " :return: A list of values that meet the criteria and a list of -their associated probabilities\n", - " \"\"\"\n", - " FILTER_MINREADS = 100 # only consider fragment lengths that have at least this many read pairs supporting it\n", - " FILTER_MEDDEV_M = 10 # only consider fragment lengths this many median deviations above the median\n", - " values = []\n", - " probabilities = []\n", - " med = quick_median_new(datalist)\n", - " mdm = median_deviation_from_median_new(datalist)\n", - " \n", - " for item in list(set(datalist)):\n", - " if 0 < item <= med + FILTER_MEDDEV_M * mdm:\n", - " data_count = datalist.count(item)\n", - " if data_count >= FILTER_MINREADS:\n", - " values.append(item)\n", - " probabilities.append(data_count)\n", - " count_sum = float(sum(probabilities))\n", - " probabilities = [n / count_sum for n in probabilities]\n", - " return values, probabilities" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "counting_list = count_frags_new(\"/home/joshfactorial/Documents/neat_data/WGS_chr20_21_22_normal.bam\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "compute_probs_new(counting_list)" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [], - "source": [ - "cd = {50:100, 75: 100, 100:100}\n", - "\n", - "datalist = []\n", - "for key in cd.keys():\n", - " for i in range(cd[key]):\n", - " datalist.append(key)\n", - "datalist = sorted(datalist)" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "75.0 25.0\n" - ] - } - ], - "source": [ - "print(quick_median_new(datalist), median_deviation_from_median_new(datalist))" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "([50, 75, 100], [0.3333333333333333, 0.3333333333333333, 0.3333333333333333])" - ] - }, - "execution_count": 22, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "compute_probs_new(datalist)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.6" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/utilities/genMutModel.py b/utilities/genMutModel.py index 901ae3b..2782eb4 100644 --- a/utilities/genMutModel.py +++ b/utilities/genMutModel.py @@ -43,45 +43,6 @@ def cluster_list(list_to_cluster: list, delta: float) -> list: return out_list -def list_2_countDict(l: list) -> dict: - cDict = {} - for n in l: - if n not in cDict: - cDict[n] = 0 - cDict[n] += 1 - return cDict - - -def getBedTracks(file_name: str) -> dict: - f = open(file_name, 'r') - trackDict = {} - for line in f: - splt = line.strip().split('\t') - if splt[0] not in trackDict: - trackDict[splt[0]] = [] - trackDict[splt[0]].extend([int(splt[1]), int(splt[2])]) - f.close() - return trackDict - -#TODO Convert this function to pandas -def get_track_len(track_df: pd.DataFrame) -> float: - totSum = 0 - for k in track_df.keys(): - for i in range(0, len(track_df[k]), 2): - totSum += track_df[k][i + 1] - track_df[k][i] + 1 - return totSum - - -def isInBed(track, ind): - myInd = bisect.bisect(track, ind) - if myInd & 1: - return True - if myInd < len(track): - if track[myInd - 1] == ind: - return True - return False - - ##################################### # main() # ##################################### @@ -152,7 +113,9 @@ def main(): print('Problem parsing bed file. Ensure bed file is tab separated, standard bed format') exit(1) mybed = mybed.rename(columns={0: 'chrom', 1: 'start', 2: 'end'}) + # Adding a couple of columns we'll need for later calculations mybed['coords'] = list(zip(mybed.start, mybed.end)) + mybed['track_len'] = mybed.end - mybed.start + 1 # Process reference file print('Processing reference...') @@ -476,9 +439,10 @@ def main(): SNP_FREQ = SNP_COUNT / float(totalVar) AVG_INDEL_FREQ = 1. - SNP_FREQ INDEL_FREQ = {k: (INDEL_COUNT[k] / float(totalVar)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} - #TODO fix this get track len function + if is_bed: - AVG_MUT_RATE = totalVar / float(get_track_len(mybed)) + track_sum = float(mybed['track_len'].sum()) + AVG_MUT_RATE = totalVar / track_sum else: AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN) From e7c017d0fddf747f9d873b967875c929047d17be Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 24 Jun 2020 16:16:20 -0500 Subject: [PATCH 077/323] Changed name of genMutModel.py to gen_mut_model.py, in keeping with PEP 8. --- utilities/{genMutModel.py => gen_mut_model.py} | 13 +------------ utilities/plotMutModel.py | 2 +- 2 files changed, 2 insertions(+), 13 deletions(-) rename utilities/{genMutModel.py => gen_mut_model.py} (98%) diff --git a/utilities/genMutModel.py b/utilities/gen_mut_model.py similarity index 98% rename from utilities/genMutModel.py rename to utilities/gen_mut_model.py index 2782eb4..4c72b6f 100644 --- a/utilities/genMutModel.py +++ b/utilities/gen_mut_model.py @@ -2,19 +2,13 @@ # Python 3 ready -import sys import os import re -import bisect import pickle import argparse import numpy as np from Bio import SeqIO import pandas as pd -# -# SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-2]) -# sys.path.append(SIM_PATH) -# print(sys.path) ######################################################### @@ -58,7 +52,7 @@ def main(): # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq VCF_DEFAULT_POP_FREQ = 0.00001 - parser = argparse.ArgumentParser(description='genMutModel.py') + parser = argparse.ArgumentParser(description='gen_mut_model.py') parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-m', type=str, required=True, metavar='/path/to/mutations.vcf', @@ -480,11 +474,6 @@ def main(): for k in sorted(SNP_TRANS_FREQ.keys()): print('p(' + k[0] + ' --> ' + k[1] + ' | SNP occurs) =', SNP_TRANS_FREQ[k]) - # for n in COMMON_VARIANTS: - # print n - - # for n in HIGH_MUT_REGIONS: - # print n print('p(snp) =', SNP_FREQ) print('p(indel) =', AVG_INDEL_FREQ) diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 7a70693..6301943 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -20,7 +20,7 @@ # mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] parser = argparse.ArgumentParser( - description='Plot and compare mutation models from genMutModel.py Usage: python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') + description='Plot and compare mutation models from gen_mut_model.py Usage: python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', From b88644edb35466fe8364ab96f7e93bcaecf840d8 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 25 Jun 2020 09:29:53 -0500 Subject: [PATCH 078/323] Changed name of genMutModel.py to gen_mut_model.py, in keeping with PEP 8. --- utilities/gen_mut_model.py | 57 +++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 4c72b6f..ca64c66 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -78,6 +78,7 @@ def main(): # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} + TRINUC_BED_COUNT = {} # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs @@ -140,7 +141,7 @@ def main(): # Pre-parsing to find all the matching chromosomes between ref and vcf print('Processing VCF file...') try: - variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None) + variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None, header=None) except ValueError: print("VCF must be in standard VCF format with tab-separated columns") exit(1) @@ -232,10 +233,10 @@ def main(): "you already have a trinuc count file for the reference...") sub_regions = matching_bed['coords'].to_list() for sr in sub_regions: - for i in range(sr[0], sr[1] + 1): - for ref_name in matching_chromosomes: - trinuc = ref_dict[ref_name][i:i + 3].seq - # skip if trinuc contains invalid characters, or not in specified bed region + for ref_name in matching_chromosomes: + for i in range(sr[0], sr[1] - 2): + trinuc = str(ref_dict[ref_name][i:i + 3].seq) + # skip if trinuc contains invalid characters if not trinuc in VALID_TRINUC: continue if trinuc not in TRINUC_REF_COUNT: @@ -243,15 +244,15 @@ def main(): TRINUC_REF_COUNT[trinuc] += 1 elif not os.path.isfile(ref + '.trinucCounts'): - for i in range(len(ref_dict[ref_name]) - 2): - if i % 1000000 == 0 and i > 0: - print(i, '/', len(ref_dict[ref_name])) - trinuc = ref_dict[ref_name][i:i + 3].seq - if not str(trinuc) in VALID_TRINUC: - continue # skip if trinuc contains invalid characters - if str(trinuc) not in TRINUC_REF_COUNT: - TRINUC_REF_COUNT[trinuc] = 0 - TRINUC_REF_COUNT[trinuc] += 1 + for ref_name in matching_chromosomes: + for i in range(len(ref_dict[ref_name]) - 2): + trinuc = str(ref_dict[ref_name][i:i + 3].seq) + # skip if trinuc contains invalid characters + if not trinuc in VALID_TRINUC: + continue + if trinuc not in TRINUC_REF_COUNT: + TRINUC_REF_COUNT[trinuc] = 0 + TRINUC_REF_COUNT[trinuc] += 1 else: print('Found trinucCounts file, using that.') @@ -277,12 +278,12 @@ def main(): # only consider positions where ref allele in vcf matches the nucleotide in our reference for index, row in snp_df.iterrows(): trinuc_to_analyze = str(ref_sequence[row.chr_start - 1: row.chr_start + 2]) - if not trinuc_to_analyze in VALID_TRINUC: + if trinuc_to_analyze not in VALID_TRINUC: continue if row.REF == trinuc_to_analyze[1]: trinuc_ref = trinuc_to_analyze trinuc_alt = trinuc_to_analyze[0] + snp_df.loc[index, 'ALT'] + trinuc_to_analyze[2] - if not trinuc_alt in VALID_TRINUC: + if trinuc_alt not in VALID_TRINUC: continue key = (trinuc_ref, trinuc_alt) if key not in TRINUC_TRANSITION_COUNT: @@ -386,7 +387,7 @@ def main(): f.close() # otherwise, save trinuc counts to file, if desired elif save_trinuc: - if mybed is not None: + if is_bed: print('unable to save trinuc counts to file because using input bed region...') else: print('saving trinuc counts to file...') @@ -396,8 +397,8 @@ def main(): f.close() # if for some reason we didn't find any valid input variants, exit gracefully... - totalVar = SNP_COUNT + sum(INDEL_COUNT.values()) - if totalVar == 0: + total_var = SNP_COUNT + sum(INDEL_COUNT.values()) + if total_var == 0: print( '\nError: No valid variants were found, model could not be created. (Are you using the correct reference?)\n') exit(1) @@ -430,28 +431,28 @@ def main(): SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rollingTot) # compute average snp and indel frequencies - SNP_FREQ = SNP_COUNT / float(totalVar) + SNP_FREQ = SNP_COUNT / float(total_var) AVG_INDEL_FREQ = 1. - SNP_FREQ - INDEL_FREQ = {k: (INDEL_COUNT[k] / float(totalVar)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} + INDEL_FREQ = {k: (INDEL_COUNT[k] / float(total_var)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} if is_bed: track_sum = float(mybed['track_len'].sum()) - AVG_MUT_RATE = totalVar / track_sum + AVG_MUT_RATE = total_var / track_sum else: - AVG_MUT_RATE = totalVar / float(TOTAL_REFLEN) + AVG_MUT_RATE = total_var / float(TOTAL_REFLEN) # if values weren't found in data, appropriately append null entries - printTrinucWarning = False + print_trinuc_warning = False for trinuc in VALID_TRINUC: trinuc_mut = [trinuc[0] + n + trinuc[2] for n in VALID_NUCL if n != trinuc[1]] if trinuc not in TRINUC_MUT_PROB: TRINUC_MUT_PROB[trinuc] = 0. - printTrinucWarning = True + print_trinuc_warning = True for trinuc2 in trinuc_mut: if (trinuc, trinuc2) not in TRINUC_TRANS_PROBS: TRINUC_TRANS_PROBS[(trinuc, trinuc2)] = 0. - printTrinucWarning = True - if printTrinucWarning: + print_trinuc_warning = True + if print_trinuc_warning: print( 'Warning: Some trinucleotides transitions were not encountered in the input dataset, ' 'probabilities of 0.0 have been assigned to these events.') @@ -478,7 +479,7 @@ def main(): print('p(snp) =', SNP_FREQ) print('p(indel) =', AVG_INDEL_FREQ) print('overall average mut rate:', AVG_MUT_RATE) - print('total variants processed:', totalVar) + print('total variants processed:', total_var) # # save variables to file From 2055880b55ddcbcd4caf83ea64f58530b0a632d5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 25 Jun 2020 13:06:44 -0500 Subject: [PATCH 079/323] minor changes to gen_mut_model.py --- utilities/gen_mut_model.py | 1 - 1 file changed, 1 deletion(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index ca64c66..41a00d2 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -78,7 +78,6 @@ def main(): # how many times do we observe each trinucleotide in the reference (and input bed region, if present)? TRINUC_REF_COUNT = {} - TRINUC_BED_COUNT = {} # [(trinuc_a, trinuc_b)] = # of times we observed a mutation from trinuc_a into trinuc_b TRINUC_TRANSITION_COUNT = {} # total count of SNPs From 74cc02b849916c0e099ffd093218e11d3cea40cf Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 25 Jun 2020 13:17:35 -0500 Subject: [PATCH 080/323] Removed some spurious lines of code --- utilities/gen_mut_model.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 41a00d2..cf1bee1 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -105,7 +105,7 @@ def main(): is_bed = True except ValueError: print('Problem parsing bed file. Ensure bed file is tab separated, standard bed format') - exit(1) + mybed = mybed.rename(columns={0: 'chrom', 1: 'start', 2: 'end'}) # Adding a couple of columns we'll need for later calculations mybed['coords'] = list(zip(mybed.start, mybed.end)) @@ -117,7 +117,6 @@ def main(): reference = SeqIO.to_dict(SeqIO.parse(ref, "fasta")) except ValueError: print("Problems parsing reference file. Ensure reference is in proper fasta format") - exit(1) # simplify naming and filter out actual human genomes from scaffolding ref_dict = {} @@ -143,7 +142,6 @@ def main(): variants = pd.read_csv(vcf, sep='\t', comment='#', index_col=None, header=None) except ValueError: print("VCF must be in standard VCF format with tab-separated columns") - exit(1) # Narrow chromosomes to those matching the reference # This is in part to make sure the names match @@ -166,7 +164,7 @@ def main(): matching_variants = variants[variants[0].isin(matching_chromosomes)] except ValueError: print("Problem matching variants with reference.") - exit(1) + if matching_variants.empty: print("There is no overlap between reference and variant file. This could be a chromosome naming problem") exit(1) @@ -219,7 +217,7 @@ def main(): matching_bed = mybed[mybed['chrom'].isin(matching_bed_keys)] except ValueError: print('Problem matching bed chromosomes to variant file.') - exit(1) + if matching_bed.empty: print("There is no overlap between bed and variant file. " "This could be a chromosome naming problem") From b98006b311a1107108e3d9268fd9276decf31d9e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 29 Jun 2020 16:22:41 -0500 Subject: [PATCH 081/323] Minor changes to gen_mut_model.py --- utilities/gen_mut_model.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index cf1bee1..2b1a14d 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -59,9 +59,9 @@ def main(): help="Mutation file for organism in VCF format") parser.add_argument('-o', type=str, required=True, metavar='/path/to/output/and/prefix', help="Name of output file (final model will append \'.p\')") - parser.add_argument('-bi', type=str, required=False, metavar='Bed file of regions to include ' - '(use bedtools complement if you have a ' - 'bed of exclusion areas)', default=None, + parser.add_argument('-b', type=str, required=False, metavar='Bed file of regions to include ' + '(use bedtools complement if you have a ' + 'bed of exclusion areas)', default=None, help="only_use_these_regions.bed") parser.add_argument('--save-trinuc', required=False, action='store_true', default=False, help='save trinucleotide counts for reference') @@ -98,10 +98,10 @@ def main(): # Process bed file, is_bed = False mybed = None - if args.bi is not None: + if args.b is not None: print('Processing bed file...') try: - mybed = pd.read_csv(args.bi, sep='\t', header=None, index_col=None) + mybed = pd.read_csv(args.b, sep='\t', header=None, index_col=None) is_bed = True except ValueError: print('Problem parsing bed file. Ensure bed file is tab separated, standard bed format') From 0a5d4ca417d19e83076beba317e988558e9d94de Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Tue, 30 Jun 2020 14:28:40 -0500 Subject: [PATCH 082/323] Renamed variables to current standards --- utilities/genSeqErrorModel.py | 12 +- utilities/gen_mut_model.py | 32 +-- utilities/plotMutModel.py | 132 ++++----- utilities/validateBam.py | 50 ++-- utilities/validateFQ.py | 16 +- utilities/vcf_compare_OLD.py | 496 +++++++++++++++++----------------- 6 files changed, 369 insertions(+), 369 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index a3072c0..7625b05 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -116,11 +116,11 @@ def parse_fq(inf): init_q = [[0. for m in range(r_q)] for n in range(actual_readlen)] for i in range(actual_readlen): - row_sum = float(np.sum(prior_q[i, :])) + INIT_SMOOTH * r_q + row_sum = float(np.sum(prior_q[i, :])) + init_smooth * r_q if row_sum <= 0.: continue for j in range(r_q): - init_q[i][j] = (prior_q[i][j] + INIT_SMOOTH) / row_sum + init_q[i][j] = (prior_q[i][j] + init_smooth) / row_sum if plot_stuff: mpl.rcParams.update({'font.size': 14, 'font.weight': 'bold', 'lines.linewidth': 3}) @@ -144,7 +144,7 @@ def parse_fq(inf): q_labels = [str(n) for n in range(q_range[0], q_range[1] + 1) if n % 5 == 0] print(q_labels) q_ticks_x = [int(n) + 0.5 for n in q_labels] - qTicksy = [(r_q - int(n)) - 0.5 for n in q_labels] + q_ticks_y = [(r_q - int(n)) - 0.5 for n in q_labels] for p in range(1, actual_readlen, 10): current_data = np.array(prob_q[p]) @@ -174,7 +174,7 @@ def parse_fq(inf): mpl.pcolormesh(x, y, z[::-1, :], vmin=v_min_log[0], vmax=v_min_log[1], cmap='jet') mpl.xlim([q_range[0], q_range[1] + 1]) mpl.ylim([r_q - q_range[1] - 1, r_q - q_range[0]]) - mpl.yticks(qTicksy, q_labels) + mpl.yticks(q_ticks_y, q_labels) mpl.xticks(q_ticks_x, q_labels) mpl.xlabel('\n' + r'$Q_{i+1}$') mpl.ylabel(r'$Q_i$') @@ -240,7 +240,7 @@ def parse_fq(inf): args = parser.parse_args() (inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) -(inf2, pileup) = (args.i2, args.p) +(inf2, pile_up) = (args.i2, args.p) r_q = max_q + 1 @@ -265,7 +265,7 @@ def main(): # # embed some default sequencing error parameters if no pileup is provided # - if pileup == None: + if pile_up == None: print('Using default sequencing error parameters...') diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 2b1a14d..d9d0688 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -97,19 +97,19 @@ def main(): # Process bed file, is_bed = False - mybed = None + my_bed = None if args.b is not None: print('Processing bed file...') try: - mybed = pd.read_csv(args.b, sep='\t', header=None, index_col=None) + my_bed = pd.read_csv(args.b, sep='\t', header=None, index_col=None) is_bed = True except ValueError: print('Problem parsing bed file. Ensure bed file is tab separated, standard bed format') - mybed = mybed.rename(columns={0: 'chrom', 1: 'start', 2: 'end'}) + my_bed = my_bed.rename(columns={0: 'chrom', 1: 'start', 2: 'end'}) # Adding a couple of columns we'll need for later calculations - mybed['coords'] = list(zip(mybed.start, mybed.end)) - mybed['track_len'] = mybed.end - mybed.start + 1 + my_bed['coords'] = list(zip(my_bed.start, my_bed.end)) + my_bed['track_len'] = my_bed.end - my_bed.start + 1 # Process reference file print('Processing reference...') @@ -211,10 +211,10 @@ def main(): # Now we check that the bed and vcf have matching regions # This also checks that the vcf and bed have the same naming conventions and cuts out scaffolding. if is_bed: - bed_chroms = list(set(mybed['chrom'])) + bed_chroms = list(set(my_bed['chrom'])) matching_bed_keys = list(set(bed_chroms) & set(variant_chroms)) try: - matching_bed = mybed[mybed['chrom'].isin(matching_bed_keys)] + matching_bed = my_bed[my_bed['chrom'].isin(matching_bed_keys)] except ValueError: print('Problem matching bed chromosomes to variant file.') @@ -368,10 +368,10 @@ def main(): if HIGH_MUT_REGIONS[i - 1][2] >= HIGH_MUT_REGIONS[i][1] and HIGH_MUT_REGIONS[i - 1][0] == \ HIGH_MUT_REGIONS[i][0]: # Might need to research a more accurate way to get the mutation rate for this region - avgMutRate = 0.5 * HIGH_MUT_REGIONS[i - 1][3] + 0.5 * HIGH_MUT_REGIONS[i][ + avg_mut_rate = 0.5 * HIGH_MUT_REGIONS[i - 1][3] + 0.5 * HIGH_MUT_REGIONS[i][ 3] HIGH_MUT_REGIONS[i - 1] = ( - HIGH_MUT_REGIONS[i - 1][0], HIGH_MUT_REGIONS[i - 1][1], HIGH_MUT_REGIONS[i][2], avgMutRate) + HIGH_MUT_REGIONS[i - 1][0], HIGH_MUT_REGIONS[i - 1][1], HIGH_MUT_REGIONS[i][2], avg_mut_rate) del HIGH_MUT_REGIONS[i] # if we didn't count ref trinucs because we found file, read in ref counts from file now @@ -411,21 +411,21 @@ def main(): SNP_TRANS_FREQ = {} for trinuc in sorted(TRINUC_REF_COUNT.keys()): - myCount = 0 + my_count = 0 for k in sorted(TRINUC_TRANSITION_COUNT.keys()): if k[0] == trinuc: - myCount += TRINUC_TRANSITION_COUNT[k] - TRINUC_MUT_PROB[trinuc] = myCount / float(TRINUC_REF_COUNT[trinuc]) + my_count += TRINUC_TRANSITION_COUNT[k] + TRINUC_MUT_PROB[trinuc] = my_count / float(TRINUC_REF_COUNT[trinuc]) for k in sorted(TRINUC_TRANSITION_COUNT.keys()): if k[0] == trinuc: - TRINUC_TRANS_PROBS[k] = TRINUC_TRANSITION_COUNT[k] / float(myCount) + TRINUC_TRANS_PROBS[k] = TRINUC_TRANSITION_COUNT[k] / float(my_count) for n1 in VALID_NUCL: - rollingTot = sum([SNP_TRANSITION_COUNT[(n1, n2)] for n2 in VALID_NUCL if (n1, n2) in SNP_TRANSITION_COUNT]) + rolling_tot = sum([SNP_TRANSITION_COUNT[(n1, n2)] for n2 in VALID_NUCL if (n1, n2) in SNP_TRANSITION_COUNT]) for n2 in VALID_NUCL: key2 = (n1, n2) if key2 in SNP_TRANSITION_COUNT: - SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rollingTot) + SNP_TRANS_FREQ[key2] = SNP_TRANSITION_COUNT[key2] / float(rolling_tot) # compute average snp and indel frequencies SNP_FREQ = SNP_COUNT / float(total_var) @@ -433,7 +433,7 @@ def main(): INDEL_FREQ = {k: (INDEL_COUNT[k] / float(total_var)) / AVG_INDEL_FREQ for k in INDEL_COUNT.keys()} if is_bed: - track_sum = float(mybed['track_len'].sum()) + track_sum = float(my_bed['track_len'].sum()) AVG_MUT_RATE = total_var / track_sum else: AVG_MUT_RATE = total_var / float(TOTAL_REFLEN) diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 6301943..159b532 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -29,15 +29,15 @@ args = parser.parse_args() -def getColor(i, N, colormap='jet'): +def get_color(i, N, colormap='jet'): cm = mpl.get_cmap(colormap) - cNorm = colors.Normalize(vmin=0, vmax=N + 1) - scalarMap = cmx.ScalarMappable(norm=cNorm, cmap=cm) - colorVal = scalarMap.to_rgba(i) - return colorVal + c_norm = colors.Normalize(vmin=0, vmax=N + 1) + scalar_map = cmx.ScalarMappable(norm=c_norm, cmap=cm) + color_val = scalar_map.to_rgba(i) + return color_val -def isInBed(track, ind): +def is_in_bed(track, ind): if ind in track: return True elif bisect.bisect(track, ind) % 1 == 1: @@ -46,14 +46,14 @@ def isInBed(track, ind): return False -def getBedOverlap(track, ind_s, ind_e): +def get_bed_overlap(track, ind_s, ind_e): if ind_s in track: - myInd = track.index(ind_s) - return min([track[myInd + 1] - ind_s + 1, ind_e - ind_s + 1]) + my_ind = track.index(ind_s) + return min([track[my_ind + 1] - ind_s + 1, ind_e - ind_s + 1]) else: - myInd = bisect.bisect(track, ind_s) - if myInd % 1 and myInd < len(track) - 1: - return min([track[myInd + 1] - ind_s + 1, ind_e - ind_s + 1]) + my_ind = bisect.bisect(track, ind_s) + if my_ind % 1 and my_ind < len(track) - 1: + return min([track[my_ind + 1] - ind_s + 1, ind_e - ind_s + 1]) return 0 @@ -87,13 +87,13 @@ def getBedOverlap(track, ind_s, ind_e): mpl.figure(0, figsize=(12, 10)) mpl.subplot(2, 2, 1) -colorInd = 0 +color_ind = 0 for fn in INP: - myCol = getColor(colorInd, N_FILES) - colorInd += 1 + my_col = get_color(color_ind, N_FILES) + color_ind += 1 DATA_DICT = pickle.load(open(fn, "rb"), encoding="utf-8") [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] - mpl.bar([colorInd - 1], [AVG_MUT_RATE], 1., color=myCol) + mpl.bar([color_ind - 1], [AVG_MUT_RATE], 1., color=my_col) mpl.xlim([-1, N_FILES + 1]) mpl.grid() mpl.xticks([], []) @@ -101,14 +101,14 @@ def getBedOverlap(track, ind_s, ind_e): mpl.title('Overall mutation rate (1/bp)') mpl.subplot(2, 2, 2) -colorInd = 0 +color_ind = 0 for fn in INP: - myCol = getColor(colorInd, N_FILES) - colorInd += 1 + my_col = get_color(color_ind, N_FILES) + color_ind += 1 DATA_DICT = pickle.load(open(fn, "rb"), encoding='utf-8') [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] - mpl.bar([colorInd - 1], [SNP_FREQ], 1., color=myCol) - mpl.bar([colorInd - 1], [1. - SNP_FREQ], 1., color=myCol, bottom=[SNP_FREQ], hatch='/') + mpl.bar([color_ind - 1], [SNP_FREQ], 1., color=my_col) + mpl.bar([color_ind - 1], [1. - SNP_FREQ], 1., color=my_col, bottom=[SNP_FREQ], hatch='/') mpl.axis([-1, N_FILES + 1, 0, 1.2]) mpl.grid() mpl.xticks([], []) @@ -117,22 +117,22 @@ def getBedOverlap(track, ind_s, ind_e): mpl.title('SNP freq [ ] & indel freq [//]') mpl.subplot(2, 1, 2) -colorInd = 0 -legText = LAB +color_ind = 0 +leg_text = LAB for fn in INP: - myCol = getColor(colorInd, N_FILES) - colorInd += 1 + my_col = get_color(color_ind, N_FILES) + color_ind += 1 DATA_DICT = pickle.load(open(fn, "rb")) [AVG_MUT_RATE, SNP_FREQ, INDEL_FREQ] = [DATA_DICT['AVG_MUT_RATE'], DATA_DICT['SNP_FREQ'], DATA_DICT['INDEL_FREQ']] x = sorted(INDEL_FREQ.keys()) y = [INDEL_FREQ[n] for n in x] - mpl.plot(x, y, color=myCol) -# legText.append(fn) + mpl.plot(x, y, color=my_col) +# leg_text.append(fn) mpl.grid() mpl.xlabel('Indel size (bp)', fontweight='bold') mpl.ylabel('Frequency') mpl.title('Indel frequency by size (- deletion, + insertion)') -mpl.legend(legText) +mpl.legend(leg_text) # mpl.show() mpl.savefig(OUP + '_plot1_mutRates.pdf') @@ -142,28 +142,28 @@ def getBedOverlap(track, ind_s, ind_e): # ################################################# mpl.figure(1, figsize=(14, 6)) -colorInd = 0 -legText = LAB +color_ind = 0 +leg_text = LAB for fn in INP: - myCol = getColor(colorInd, N_FILES) - colorInd += 1 + my_col = get_color(color_ind, N_FILES) + color_ind += 1 DATA_DICT = pickle.load(open(fn, "rb")) TRINUC_MUT_PROB = DATA_DICT['TRINUC_MUT_PROB'] - x = range(colorInd - 1, len(TRINUC_MUT_PROB) * N_FILES, N_FILES) + x = range(color_ind - 1, len(TRINUC_MUT_PROB) * N_FILES, N_FILES) xt = sorted(TRINUC_MUT_PROB.keys()) y = [TRINUC_MUT_PROB[k] for k in xt] markerline, stemlines, baseline = mpl.stem(x, y, '-.') - mpl.setp(markerline, 'markerfacecolor', myCol) - mpl.setp(markerline, 'markeredgecolor', myCol) - mpl.setp(baseline, 'color', myCol, 'linewidth', 0) - mpl.setp(stemlines, 'color', myCol, 'linewidth', 3) - if colorInd == 1: + mpl.setp(markerline, 'markerfacecolor', my_col) + mpl.setp(markerline, 'markeredgecolor', my_col) + mpl.setp(baseline, 'color', my_col, 'linewidth', 0) + mpl.setp(stemlines, 'color', my_col, 'linewidth', 3) + if color_ind == 1: mpl.xticks(x, xt, rotation=90) -# legText.append(fn) +# leg_text.append(fn) mpl.grid() mpl.ylabel('p(trinucleotide mutates)') -mpl.legend(legText) +mpl.legend(leg_text) # mpl.show() mpl.savefig(OUP + '_plot2_trinucPriors.pdf') @@ -172,9 +172,9 @@ def getBedOverlap(track, ind_s, ind_e): # TRINUC TRANS PROB # ################################################# -plotNum = 3 +plot_num = 3 for fn in INP: - fig = mpl.figure(plotNum, figsize=(12, 10)) + fig = mpl.figure(plot_num, figsize=(12, 10)) DATA_DICT = pickle.load(open(fn, "rb")) TRINUC_TRANS_PROBS = DATA_DICT['TRINUC_TRANS_PROBS'] @@ -211,8 +211,8 @@ def getBedOverlap(track, ind_s, ind_e): # mpl.tight_layout() # mpl.figtext(0.24,0.94,'Trinucleotide Mutation Frequency',size=20) # mpl.show() - mpl.savefig(OUP + '_plot' + str(plotNum) + '_trinucTrans.pdf') - plotNum += 1 + mpl.savefig(OUP + '_plot' + str(plot_num) + '_trinucTrans.pdf') + plot_num += 1 ################################################# # @@ -221,16 +221,16 @@ def getBedOverlap(track, ind_s, ind_e): ################################################# track_byFile_byChr = [{} for n in INP] bp_total_byFile = [0 for n in INP] -colorInd = 0 +color_ind = 0 for fn in INP: DATA_DICT = pickle.load(open(fn, "rb")) HIGH_MUT_REGIONS = DATA_DICT['HIGH_MUT_REGIONS'] for region in HIGH_MUT_REGIONS: - if region[0] not in track_byFile_byChr[colorInd]: - track_byFile_byChr[colorInd][region[0]] = [] - track_byFile_byChr[colorInd][region[0]].extend([region[1], region[2]]) - bp_total_byFile[colorInd] += region[2] - region[1] + 1 - colorInd += 1 + if region[0] not in track_byFile_byChr[color_ind]: + track_byFile_byChr[color_ind][region[0]] = [] + track_byFile_byChr[color_ind][region[0]].extend([region[1], region[2]]) + bp_total_byFile[color_ind] += region[2] - region[1] + 1 + color_ind += 1 bp_overlap_count = [[0 for m in INP] for n in INP] for i in range(N_FILES): @@ -239,21 +239,21 @@ def getBedOverlap(track, ind_s, ind_e): for k in track_byFile_byChr[i].keys(): if k in track_byFile_byChr[j]: for ii in range(len(track_byFile_byChr[i][k][::2])): - bp_overlap_count[i][j] += getBedOverlap(track_byFile_byChr[j][k], track_byFile_byChr[i][k][ii * 2], + bp_overlap_count[i][j] += get_bed_overlap(track_byFile_byChr[j][k], track_byFile_byChr[i][k][ii * 2], track_byFile_byChr[i][k][ii * 2 + 1]) print('') print('HIGH_MUT_REGION OVERLAP BETWEEN ' + str(N_FILES) + ' MODELS...') for i in range(N_FILES): for j in range(i, N_FILES): - nDissimilar = (bp_overlap_count[i][i] - bp_overlap_count[i][j]) + ( + n_dissimilar = (bp_overlap_count[i][i] - bp_overlap_count[i][j]) + ( bp_overlap_count[j][j] - bp_overlap_count[i][j]) if bp_overlap_count[i][j] == 0: - percentageV = 0.0 + percentage_v = 0.0 else: - percentageV = bp_overlap_count[i][j] / float(bp_overlap_count[i][j] + nDissimilar) + percentage_v = bp_overlap_count[i][j] / float(bp_overlap_count[i][j] + n_dissimilar) print('overlap[' + str(i) + ',' + str(j) + '] = ' + str(bp_overlap_count[i][j]) + ' bp ({0:.3f}%)'.format( - percentageV * 100.)) + percentage_v * 100.)) print('') ################################################# @@ -261,25 +261,25 @@ def getBedOverlap(track, ind_s, ind_e): # COMMON VARIANTS # ################################################# -setofVars = [set([]) for n in INP] -colorInd = 0 +set_of_vars = [set([]) for n in INP] +color_ind = 0 for fn in INP: DATA_DICT = pickle.load(open(fn, "rb")) COMMON_VARIANTS = DATA_DICT['COMMON_VARIANTS'] for n in COMMON_VARIANTS: - setofVars[colorInd].add(n) - colorInd += 1 + set_of_vars[color_ind].add(n) + color_ind += 1 print('') print('COMMON_VARIANTS OVERLAP BETWEEN ' + str(N_FILES) + ' MODELS...') for i in range(N_FILES): for j in range(i, N_FILES): - overlapCount = len(setofVars[i].intersection(setofVars[j])) - nDissimilar = (len(setofVars[i]) - overlapCount) + (len(setofVars[j]) - overlapCount) - if overlapCount == 0: - percentageV = 0.0 + overlap_count = len(set_of_vars[i].intersection(set_of_vars[j])) + n_dissimilar = (len(set_of_vars[i]) - overlap_count) + (len(set_of_vars[j]) - overlap_count) + if overlap_count == 0: + percentage_v = 0.0 else: - percentageV = overlapCount / float(overlapCount + nDissimilar) - print('overlap[' + str(i) + ',' + str(j) + '] = ' + str(overlapCount) + ' variants ({0:.3f}%)'.format( - percentageV * 100.)) + percentage_v = overlap_count / float(overlap_count + n_dissimilar) + print('overlap[' + str(i) + ',' + str(j) + '] = ' + str(overlap_count) + ' variants ({0:.3f}%)'.format( + percentage_v * 100.)) print('') diff --git a/utilities/validateBam.py b/utilities/validateBam.py index 9c164f7..f4d85fb 100644 --- a/utilities/validateBam.py +++ b/utilities/validateBam.py @@ -11,24 +11,24 @@ '03', '00', '00', '00', '00', '00', '00', '00', '00', '00'] -def getBytes(fmt, amt): +def get_bytes(fmt, amt): if fmt == '> 16) & 65535 mapq = (bmqnl >> 8) & 255 lrn = bmqnl & 255 print('-- bmqnl:', bmqnl, '(bin=' + str(binv) + ', mapq=' + str(mapq) + ', l_readname+1=' + str(lrn) + ')') - flgnc = getBytes('> 16) & 65535 ncig = flgnc & 65535 print('-- flgnc:', flgnc, '(flag=' + str(flag) + ', ncig=' + str(ncig) + ')') - print('-- l_seq:', getBytes('= MINREGIONLEN) or BEDFILE is None: + if targ_ind % 2 == 1: + targ_Len = targ_regions_FL[targ_ind] - targ_regions_FL[targ_ind - 1] + if (BEDFILE is not None and targ_Len >= MIN_REGION_LEN) or BEDFILE is None: - pl_out = parseLine(splt, colDict, colSamp) + pl_out = parse_line(splt, col_dict, col_samp) if pl_out is None: var_filtered += 1 continue @@ -237,22 +237,22 @@ def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): if var not in v_Hashed: - vpos = var[0] - if vpos in v_posHash: + v_pos = var[0] + if v_pos in v_pos_Hash: if len(aa) == 0: aa = [var[2]] - aa.extend([n[2] for n in v_Hashed.keys() if n[0] == vpos]) + aa.extend([n[2] for n in v_Hashed.keys() if n[0] == v_pos]) var_merged += 1 - v_posHash[vpos] = 1 + v_pos_Hash[v_pos] = 1 if len(aa): - allVars = [(var[0], var[1], n) for n in aa] - for i in range(len(allVars)): - v_Hashed[allVars[i]] = 1 - # if allVars[i] not in v_Alts: - # v_Alts[allVars[i]] = [] - # v_Alts[allVars[i]].extend(allVars) - v_Alts[allVars[i]] = allVars + all_vars = [(var[0], var[1], n) for n in aa] + for i in range(len(all_vars)): + v_Hashed[all_vars[i]] = 1 + # if all_vars[i] not in v_Alts: + # v_Alts[all_vars[i]] = [] + # v_Alts[all_vars[i]].extend(all_vars) + v_Alts[all_vars[i]] = all_vars else: v_Hashed[var] = 1 @@ -260,78 +260,78 @@ def parseVCF(VCF_FILENAME, refName, targRegionsFl, outFile, outBool): v_Cov[var] = cov v_AF[var] = af[0] # only use first AF, even if multiple. fix this later? v_Qual[var] = qual - v_TargLen[var] = targLen + v_Targ_Len[var] = targ_Len line_unique += 1 else: hash_coll += 1 else: - nBelowMinRLen += 1 + n_below_min_R_Len += 1 else: if line[1] != '#': cols = line[1:-1].split('\t') for i in range(len(cols)): - if 'FORMAT' in colDict: - colSamp.append(i) - colDict[cols[i]] = i - if VCF_OUT and outBool: - outBool = False - outFile.write(line) + if 'FORMAT' in col_dict: + col_samp.append(i) + col_dict[cols[i]] = i + if VCF_OUT and out_bool: + out_bool = False + out_file.write(line) return ( - v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_TargLen, nBelowMinRLen, line_unique, var_filtered, var_merged, + v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_Targ_Len, n_below_min_R_Len, line_unique, var_filtered, var_merged, hash_coll) -def condenseByPos(listIn): - varListOfInterest = [n for n in listIn] - indCount = {} - for n in varListOfInterest: +def condense_by_pos(list_in): + var_list_of_interest = [n for n in list_in] + ind_count = {} + for n in var_list_of_interest: c = n[0] - if c not in indCount: - indCount[c] = 0 - indCount[c] += 1 - # nonUniqueDict = {n:[] for n in sorted(indCount.keys()) if indCount[n] > 1} # the python 2.7 way - nonUniqueDict = {} - for n in sorted(indCount.keys()): - if indCount[n] > 1: - nonUniqueDict[n] = [] - delList = [] - for i in range(len(varListOfInterest)): - if varListOfInterest[i][0] in nonUniqueDict: - nonUniqueDict[varListOfInterest[i][0]].append(varListOfInterest[i]) - delList.append(i) - delList = sorted(delList, reverse=True) - for di in delList: - del varListOfInterest[di] - for v in nonUniqueDict.values(): + if c not in ind_count: + ind_count[c] = 0 + ind_count[c] += 1 + # non_unique_dict = {n:[] for n in sorted(ind_count.keys()) if ind_count[n] > 1} # the python 2.7 way + non_unique_dict = {} + for n in sorted(ind_count.keys()): + if ind_count[n] > 1: + non_unique_dict[n] = [] + del_list = [] + for i in range(len(var_list_of_interest)): + if var_list_of_interest[i][0] in non_unique_dict: + non_unique_dict[var_list_of_interest[i][0]].append(var_list_of_interest[i]) + del_list.append(i) + del_list = sorted(del_list, reverse=True) + for di in del_list: + del var_list_of_interest[di] + for v in non_unique_dict.values(): var = (v[0][0], v[0][1], ','.join([n[2] for n in v[::-1]])) - varListOfInterest.append(var) - return varListOfInterest + var_list_of_interest.append(var) + return var_list_of_interest def main(): ref = [] f = open(REFERENCE, 'r') - nLines = 0 - prevR = None - prevP = None + n_lines = 0 + prev_R = None + prev_P = None ref_inds = [] sys.stdout.write('\nindexing reference fasta... ') sys.stdout.flush() tt = time.time() while 1: - nLines += 1 + n_lines += 1 data = f.readline() if not data: - ref_inds.append((prevR, prevP, f.tell() - len(data))) + ref_inds.append((prev_R, prev_P, f.tell() - len(data))) break if data[0] == '>': - if prevP is not None: - ref_inds.append((prevR, prevP, f.tell() - len(data))) - prevP = f.tell() - prevR = data[1:-1] + if prev_P is not None: + ref_inds.append((prev_R, prev_P, f.tell() - len(data))) + prev_P = f.tell() + prev_R = data[1:-1] print('{0:.3f} (sec)'.format(time.time() - tt)) # ref_inds = [('chrM', 6, 16909), ('chr1', 16915, 254252549), ('chr2', 254252555, 502315916), ('chr3', 502315922, 704298801), ('chr4', 704298807, 899276169), ('chr5', 899276175, 1083809741), ('chr6', 1083809747, 1258347116), ('chr7', 1258347122, 1420668559), ('chr8', 1420668565, 1569959868), ('chr9', 1569959874, 1713997574), ('chr10', 1713997581, 1852243023), ('chr11', 1852243030, 1989949677), ('chr12', 1989949684, 2126478617), ('chr13', 2126478624, 2243951900), ('chr14', 2243951907, 2353448438), ('chr15', 2353448445, 2458030465), ('chr16', 2458030472, 2550192321), ('chr17', 2550192328, 2633011443), ('chr18', 2633011450, 2712650243), ('chr19', 2712650250, 2772961813), ('chr20', 2772961820, 2837247851), ('chr21', 2837247858, 2886340351), ('chr22', 2886340358, 2938671016), ('chrX', 2938671022, 3097046994), ('chrY', 3097047000, 3157608038)] @@ -353,41 +353,41 @@ def main(): mappability_vs_FN = {0: 0, 1: 0} # [0] = # of FNs that were in mappable regions, [1] = # of FNs that were in unmappable regions coverage_vs_FN = {} # [C] = # of FNs that were covered by C reads - alleleBal_vs_FN = {} # [AF] = # of FNs that were heterozygous genotypes with allele freq AF (quantized to multiples of 1/AF_STEPS) + allele_bal_vs_FN = {} # [AF] = # of FNs that were heterozygous genotypes with allele freq AF (quantized to multiples of 1/AF_STEPS) for n in AF_KEYS: - alleleBal_vs_FN[n] = 0 + allele_bal_vs_FN[n] = 0 # # read in mappability track # mappability_tracks = {} # indexed by chr string (e.g. 'chr1'), has boolean array - prevRef = '' - relevantRegions = [] + prev_Ref = '' + relevant_regions = [] if MAPTRACK is not None: mtf = open(MAPTRACK, 'r') for line in mtf: splt = line.strip().split('\t') - if prevRef != '' and splt[0] != prevRef: + if prev_Ref != '' and splt[0] != prev_Ref: # do stuff - if len(relevantRegions): - myTrack = [0] * (relevantRegions[-1][1] + 100) - for r in relevantRegions: + if len(relevant_regions): + my_track = [0] * (relevant_regions[-1][1] + 100) + for r in relevant_regions: for ri in range(r[0], r[1]): - myTrack[ri] = 1 - mappability_tracks[prevRef] = [n for n in myTrack] + my_track[ri] = 1 + mappability_tracks[prev_Ref] = [n for n in my_track] # - relevantRegions = [] - if int(splt[3]) >= MIN_READLEN: - relevantRegions.append((int(splt[1]), int(splt[2]))) - prevRef = splt[0] + relevant_regions = [] + if int(splt[3]) >= MIN_READ_LEN: + relevant_regions.append((int(splt[1]), int(splt[2]))) + prev_Ref = splt[0] mtf.close() # do stuff - if len(relevantRegions): - myTrack = [0] * (relevantRegions[-1][1] + 100) - for r in relevantRegions: + if len(relevant_regions): + my_track = [0] * (relevant_regions[-1][1] + 100) + for r in relevant_regions: for ri in range(r[0], r[1]): - myTrack[ri] = 1 - mappability_tracks[prevRef] = [n for n in myTrack] + my_track[ri] = 1 + mappability_tracks[prev_Ref] = [n for n in my_track] # # @@ -395,15 +395,15 @@ def main(): # vcfo2 = None vcfo3 = None - global vcfo2_firstTime - global vcfo3_firstTime - vcfo2_firstTime = False - vcfo3_firstTime = False + global vcfo2_first_time + global vcfo3_first_time + vcfo2_first_time = False + vcfo3_first_time = False if VCF_OUT: vcfo2 = open(OUT_PREFIX + '_FN.vcf', 'w') vcfo3 = open(OUT_PREFIX + '_FP.vcf', 'w') - vcfo2_firstTime = True - vcfo3_firstTime = True + vcfo2_first_time = True + vcfo3_first_time = True # # data for plotting FN analysis @@ -411,7 +411,7 @@ def main(): set1 = [] set2 = [] set3 = [] - varAdj = 0 + var_adj = 0 # # @@ -420,99 +420,99 @@ def main(): # for n_RI in ref_inds: - refName = n_RI[0] + ref_name = n_RI[0] if FAST == False: f.seek(n_RI[1]) - print('reading ' + refName + '...', end=' ') - myDat = f.read(n_RI[2] - n_RI[1]).split('\n') - myLen = sum([len(m) for m in myDat]) + print('reading ' + ref_name + '...', end=' ') + my_dat = f.read(n_RI[2] - n_RI[1]).split('\n') + my_len = sum([len(m) for m in my_dat]) if sys.version_info >= (2, 7): - print('{:,} bp'.format(myLen)) + print('{:,} bp'.format(my_len)) else: - print('{0:} bp'.format(myLen)) - inWidth = len(myDat[0]) - if len(myDat[-1]) == 0: # if last line is empty, remove it. - del myDat[-1] - if inWidth * (len(myDat) - 1) + len(myDat[-1]) != myLen: + print('{0:} bp'.format(my_len)) + in_width = len(my_dat[0]) + if len(my_dat[-1]) == 0: # if last line is empty, remove it. + del my_dat[-1] + if in_width * (len(my_dat) - 1) + len(my_dat[-1]) != my_len: print('fasta column-width not consistent.') - print(myLen, inWidth * (len(myDat) - 1) + len(myDat[-1])) - for i in range(len(myDat)): - if len(myDat[i]) != inWidth: - print(i, len(myDat[i]), inWidth) + print(my_len, in_width * (len(my_dat) - 1) + len(my_dat[-1])) + for i in range(len(my_dat)): + if len(my_dat[i]) != in_width: + print(i, len(my_dat[i]), in_width) exit(1) - myDat = Seq(''.join(myDat)).upper().tomutable() - myLen = len(myDat) + my_dat = Seq(''.join(my_dat)).upper().tomutable() + my_len = len(my_dat) # # Parse relevant targeted regions # - targRegionsFl = [] + targ_regions_FL = [] if BEDFILE is not None: bedfile = open(BEDFILE, 'r') for line in bedfile: splt = line.split('\t') - if splt[0] == refName: - targRegionsFl.extend((int(splt[1]), int(splt[2]))) + if splt[0] == ref_name: + targ_regions_FL.extend((int(splt[1]), int(splt[2]))) bedfile.close() else: - targRegionsFl = [-1, MAX_VAL + 1] + targ_regions_FL = [-1, MAX_VAL + 1] # # Parse vcf files # - sys.stdout.write('comparing variation in ' + refName + '... ') + sys.stdout.write('comparing variation in ' + ref_name + '... ') sys.stdout.flush() tt = time.time() - (correctHashed, correctAlts, correctCov, correctAF, correctQual, correctTargLen, correctBelowMinRLen, - correctUnique, gFiltered, gMerged, gRedundant) = parseVCF(GOLDEN_VCF, refName, targRegionsFl, vcfo2, - vcfo2_firstTime) - (workflowHashed, workflowAlts, workflowCov, workflowAF, workflowQual, workflowTarLen, workflowBelowMinRLen, - workflowUnique, wFiltered, wMerged, wRedundant) = parseVCF(WORKFLOW_VCF, refName, targRegionsFl, vcfo3, - vcfo3_firstTime) - zgF += gFiltered - zgR += gRedundant - zgM += gMerged - zwF += wFiltered - zwR += wRedundant - zwM += wMerged + (correct_hashed, correct_alts, correct_cov, correct_AF, correct_qual, correct_targ_len, correct_below_min_R_len, + correct_unique, g_filtered, g_merged, g_redundant) = parse_vcf(GOLDEN_VCF, ref_name, targ_regions_FL, vcfo2, + vcfo2_first_time) + (workflow_hashed, workflow_alts, workflow_COV, workflow_AF, workflow_qual, workflow_tar_len, workflow_below_min_R_len, + workflow_unique, w_filtered, w_merged, w_redundant) = parse_vcf(WORKFLOW_VCF, ref_name, targ_regions_FL, vcfo3, + vcfo3_first_time) + zgF += g_filtered + zgR += g_redundant + zgM += g_merged + zwF += w_filtered + zwR += w_redundant + zwM += w_merged # # Deduce which variants are FP / FN # - solvedInds = {} - for var in correctHashed.keys(): - if var in workflowHashed or var[0] in solvedInds: - correctHashed[var] = 2 - workflowHashed[var] = 20 - solvedInds[var[0]] = True - for var in list(correctHashed.keys()) + list(workflowHashed.keys()): - if var[0] in solvedInds: - correctHashed[var] = 2 - workflowHashed[var] = 2 - nPerfect = len(solvedInds) - - # correctHashed[var] = 1: were not found + solved_inds = {} + for var in correct_hashed.keys(): + if var in workflow_hashed or var[0] in solved_inds: + correct_hashed[var] = 2 + workflow_hashed[var] = 20 + solved_inds[var[0]] = True + for var in list(correct_hashed.keys()) + list(workflow_hashed.keys()): + if var[0] in solved_inds: + correct_hashed[var] = 2 + workflow_hashed[var] = 2 + n_perfect = len(solved_inds) + + # correct_hashed[var] = 1: were not found # = 2: should be discluded because we were found # = 3: should be discluded because an alt was found - notFound = [n for n in sorted(correctHashed.keys()) if correctHashed[n] == 1] - FPvariants = [n for n in sorted(workflowHashed.keys()) if workflowHashed[n] == 1] + not_found = [n for n in sorted(correct_hashed.keys()) if correct_hashed[n] == 1] + FP_variants = [n for n in sorted(workflow_hashed.keys()) if workflow_hashed[n] == 1] # # condense all variants who have alternate alleles and were *not* found to have perfect matches # into a single variant again. These will not be included in the candidates for equivalency checking. Sorry! # - notFound = condenseByPos(notFound) - FPvariants = condenseByPos(FPvariants) + not_found = condense_by_pos(not_found) + FP_variants = condense_by_pos(FP_variants) # # tally up some values, if there are no golden variants lets save some CPU cycles and move to the next ref # - totalGoldenVariants = nPerfect + len(notFound) - totalWorkflowVariants = nPerfect + len(FPvariants) - if totalGoldenVariants == 0: - zfP += len(FPvariants) + tot_golden_variants = n_perfect + len(not_found) + totalWorkflowVariants = n_perfect + len(FP_variants) + if tot_golden_variants == 0: + zfP += len(FP_variants) ztW += totalWorkflowVariants print('{0:.3f} (sec)'.format(time.time() - tt)) continue @@ -521,146 +521,146 @@ def main(): # let's check for equivalent variants # if FAST == False: - delList_i = [] - delList_j = [] - regionsToCheck = [] - for i in range(len(FPvariants)): - pos = FPvariants[i][0] - regionsToCheck.append((max([pos - EV_BPRANGE - 1, 0]), min([pos + EV_BPRANGE, len(myDat) - 1]))) - - for n in regionsToCheck: - refSection = myDat[n[0]:n[1]] - - fpWithin = [] - for i in range(len(FPvariants)): - m = FPvariants[i] + del_list_i = [] + del_list_j = [] + regions_to_check = [] + for i in range(len(FP_variants)): + pos = FP_variants[i][0] + regions_to_check.append((max([pos - EV_BPRANGE - 1, 0]), min([pos + EV_BPRANGE, len(my_dat) - 1]))) + + for n in regions_to_check: + ref_section = my_dat[n[0]:n[1]] + + FP_within = [] + for i in range(len(FP_variants)): + m = FP_variants[i] if (m[0] > n[0] and m[0] < n[1]): - fpWithin.append((m, i)) - fpWithin = sorted(fpWithin) + FP_within.append((m, i)) + FP_within = sorted(FP_within) adj = 0 - altSection = copy.deepcopy(refSection) - for (m, i) in fpWithin: + alt_section = copy.deepcopy(ref_section) + for (m, i) in FP_within: lr = len(m[1]) la = len(m[2]) - dpos = m[0] - n[0] + adj - altSection = altSection[:dpos - 1] + m[2] + altSection[dpos - 1 + lr:] + d_pos = m[0] - n[0] + adj + alt_section = alt_section[:d_pos - 1] + m[2] + alt_section[d_pos - 1 + lr:] adj += la - lr - nfWithin = [] - for j in range(len(notFound)): - m = notFound[j] + nf_within = [] + for j in range(len(not_found)): + m = not_found[j] if (m[0] > n[0] and m[0] < n[1]): - nfWithin.append((m, j)) - nfWithin = sorted(nfWithin) + nf_within.append((m, j)) + nf_within = sorted(nf_within) adj = 0 - altSection2 = copy.deepcopy(refSection) - for (m, j) in nfWithin: + alt_section2 = copy.deepcopy(ref_section) + for (m, j) in nf_within: lr = len(m[1]) la = len(m[2]) - dpos = m[0] - n[0] + adj - altSection2 = altSection2[:dpos - 1] + m[2] + altSection2[dpos - 1 + lr:] + d_pos = m[0] - n[0] + adj + alt_section2 = alt_section2[:d_pos - 1] + m[2] + alt_section2[d_pos - 1 + lr:] adj += la - lr - if altSection == altSection2: - for (m, i) in fpWithin: - if i not in delList_i: - delList_i.append(i) - for (m, j) in nfWithin: - if j not in delList_j: - delList_j.append(j) - - nEquiv = 0 - for i in sorted(list(set(delList_i)), reverse=True): - del FPvariants[i] - for j in sorted(list(set(delList_j)), reverse=True): - del notFound[j] - nEquiv += 1 - nPerfect += nEquiv + if alt_section == alt_section2: + for (m, i) in FP_within: + if i not in del_list_i: + del_list_i.append(i) + for (m, j) in nf_within: + if j not in del_list_j: + del_list_j.append(j) + + n_equiv = 0 + for i in sorted(list(set(del_list_i)), reverse=True): + del FP_variants[i] + for j in sorted(list(set(del_list_j)), reverse=True): + del not_found[j] + n_equiv += 1 + n_perfect += n_equiv # # Tally up errors and whatnot # - ztV += totalGoldenVariants + ztV += tot_golden_variants ztW += totalWorkflowVariants - znP += nPerfect - zfP += len(FPvariants) - znF += len(notFound) + znP += n_perfect + zfP += len(FP_variants) + znF += len(not_found) if FAST is False: - znE += nEquiv + znE += n_equiv if BEDFILE is not None: - zbM += correctBelowMinRLen + zbM += correct_below_min_R_len # # try to identify a reason for FN variants: # - venn_data = [[0, 0, 0] for n in notFound] # [i] = (unmappable, low cov, low het) - for i in range(len(notFound)): - var = notFound[i] + venn_data = [[0, 0, 0] for n in not_found] # [i] = (unmappable, low cov, low het) + for i in range(len(not_found)): + var = not_found[i] - noReason = True + no_reason = True # mappability? if MAPTRACK is not None: - if refName in mappability_tracks and var[0] < len(mappability_tracks[refName]): - if mappability_tracks[refName][var[0]]: + if ref_name in mappability_tracks and var[0] < len(mappability_tracks[ref_name]): + if mappability_tracks[ref_name][var[0]]: mappability_vs_FN[1] += 1 venn_data[i][0] = 1 - noReason = False + no_reason = False else: mappability_vs_FN[0] += 1 # coverage? - if var in correctCov: - c = correctCov[var] + if var in correct_cov: + c = correct_cov[var] if c is not None: if c not in coverage_vs_FN: coverage_vs_FN[c] = 0 coverage_vs_FN[c] += 1 if c < DP_THRESH: venn_data[i][1] = 1 - noReason = False + no_reason = False # heterozygous genotype messing things up? - # if var in correctAF: - # a = correctAF[var] + # if var in correct_AF: + # a = correct_AF[var] # if a != None: # a = AF_KEYS[quantize_AF(a)] - # if a not in alleleBal_vs_FN: - # alleleBal_vs_FN[a] = 0 - # alleleBal_vs_FN[a] += 1 + # if a not in allele_bal_vs_FN: + # allele_bal_vs_FN[a] = 0 + # allele_bal_vs_FN[a] += 1 # if a < AF_THRESH: # venn_data[i][2] = 1 # no reason? - if noReason: + if no_reason: venn_data[i][2] += 1 - for i in range(len(notFound)): - if venn_data[i][0]: set1.append(i + varAdj) - if venn_data[i][1]: set2.append(i + varAdj) - if venn_data[i][2]: set3.append(i + varAdj) - varAdj += len(notFound) + for i in range(len(not_found)): + if venn_data[i][0]: set1.append(i + var_adj) + if venn_data[i][1]: set2.append(i + var_adj) + if venn_data[i][2]: set3.append(i + var_adj) + var_adj += len(not_found) # # if desired, write out vcf files. # - notFound = sorted(notFound) - FPvariants = sorted(FPvariants) + not_found = sorted(not_found) + FP_variants = sorted(FP_variants) if VCF_OUT: for line in open(GOLDEN_VCF, 'r'): if line[0] != '#': splt = line.split('\t') - if splt[0] == refName: + if splt[0] == ref_name: var = (int(splt[1]), splt[3], splt[4]) - if var in notFound: + if var in not_found: vcfo2.write(line) for line in open(WORKFLOW_VCF, 'r'): if line[0] != '#': splt = line.split('\t') - if splt[0] == refName: + if splt[0] == ref_name: var = (int(splt[1]), splt[3], splt[4]) - if var in FPvariants: + if var in FP_variants: vcfo3.write(line) print('{0:.3f} (sec)'.format(time.time() - tt)) @@ -679,7 +679,7 @@ def main(): # plot some FN stuff # if NO_PLOT == False: - nDetected = len(set(set1 + set2 + set3)) + n_detected = len(set(set1 + set2 + set3)) set1 = set(set1) set2 = set(set2) set3 = set(set3) @@ -700,7 +700,7 @@ def main(): mpl.figure(0) tstr1 = 'False Negative Variants (Missed Detections)' - # tstr2 = str(nDetected)+' / '+str(znF)+' FN variants categorized' + # tstr2 = str(n_detected)+' / '+str(znF)+' FN variants categorized' tstr2 = '' if MAPTRACK is not None: v = venn3([set1, set2, set3], (s1, s2, s3)) From 40044fd2fae2928d82a2a568163edb340dcdc98d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 1 Jul 2020 16:15:17 -0500 Subject: [PATCH 083/323] Fixed a bug that was slowing down gen_mut_model.py --- utilities/genSeqErrorModel.py | 4 ++-- utilities/gen_mut_model.py | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index a3072c0..9fc247f 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -116,11 +116,11 @@ def parse_fq(inf): init_q = [[0. for m in range(r_q)] for n in range(actual_readlen)] for i in range(actual_readlen): - row_sum = float(np.sum(prior_q[i, :])) + INIT_SMOOTH * r_q + row_sum = float(np.sum(prior_q[i, :])) + init_smooth * r_q if row_sum <= 0.: continue for j in range(r_q): - init_q[i][j] = (prior_q[i][j] + INIT_SMOOTH) / row_sum + init_q[i][j] = (prior_q[i][j] + init_smooth) / row_sum if plot_stuff: mpl.rcParams.update({'font.size': 14, 'font.weight': 'bold', 'lines.linewidth': 3}) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 2b1a14d..37f2a71 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -225,23 +225,23 @@ def main(): # Count Trinucleotides in reference, based on bed or not print('Counting trinucleotides in reference...') - if is_bed: - print("since you're using a bed input, we have to count trinucs in bed region even if\n" - "you already have a trinuc count file for the reference...") - sub_regions = matching_bed['coords'].to_list() - for sr in sub_regions: - for ref_name in matching_chromosomes: + for ref_name in matching_chromosomes: + if is_bed: + print("since you're using a bed input, we have to count trinucs in bed region even if " + "you already have a trinuc count file for the reference...") + sub_bed = matching_bed[matching_bed['chrom'] == ref_name] + sub_regions = sub_bed['coords'].to_list() + for sr in sub_regions: for i in range(sr[0], sr[1] - 2): trinuc = str(ref_dict[ref_name][i:i + 3].seq) # skip if trinuc contains invalid characters - if not trinuc in VALID_TRINUC: + if trinuc not in VALID_TRINUC: continue if trinuc not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 TRINUC_REF_COUNT[trinuc] += 1 - elif not os.path.isfile(ref + '.trinucCounts'): - for ref_name in matching_chromosomes: + elif not os.path.isfile(ref + '.trinucCounts'): for i in range(len(ref_dict[ref_name]) - 2): trinuc = str(ref_dict[ref_name][i:i + 3].seq) # skip if trinuc contains invalid characters @@ -250,8 +250,8 @@ def main(): if trinuc not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 TRINUC_REF_COUNT[trinuc] += 1 - else: - print('Found trinucCounts file, using that.') + else: + print('Found trinucCounts file, using that.') # Load and process variants in each reference sequence individually, for memory reasons... print('Creating mutational model...') From e49f9b13feb1a1c10bb9aa39626f081e8bf022bb Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 2 Jul 2020 13:20:06 -0500 Subject: [PATCH 084/323] Changed r_q to RQ --- utilities/genSeqErrorModel.py | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 7625b05..83d8c13 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -27,6 +27,7 @@ def parse_fq(inf): + #Takes a gzip or sam file and returns the simulation's average error rate, print('reading ' + inf + '...') if inf[-3:] == '.gz': print('detected gzip suffix...') @@ -69,8 +70,8 @@ def parse_fq(inf): actual_readlen = len(data4) - 1 print('assuming read length is uniform...') print('detected read length (from first read found):', actual_readlen) - prior_q = np.zeros([actual_readlen, r_q]) - total_q = [None] + [np.zeros([r_q, r_q]) for n in range(actual_readlen - 1)] + prior_q = np.zeros([actual_readlen, RQ]) + total_q = [None] + [np.zeros([RQ, RQ]) for n in range(actual_readlen - 1)] # sanity-check readlengths if len(data4) - 1 != actual_readlen: @@ -100,26 +101,26 @@ def parse_fq(inf): if q_range[0] < 0: print('\nError: Read in Q-scores below 0\n') exit(1) - if q_range[1] > r_q: - print('\nError: Read in Q-scores above specified maximum:', q_range[1], '>', r_q, '\n') + if q_range[1] > RQ: + print('\nError: Read in Q-scores above specified maximum:', q_range[1], '>', RQ, '\n') exit(1) print('computing probabilities...') - prob_q = [None] + [[[0. for m in range(r_q)] for n in range(r_q)] for p in range(actual_readlen - 1)] + prob_q = [None] + [[[0. for m in range(RQ)] for n in range(RQ)] for p in range(actual_readlen - 1)] for p in range(1, actual_readlen): - for i in range(r_q): - row_sum = float(np.sum(total_q[p][i, :])) + prob_smooth * r_q + for i in range(RQ): + row_sum = float(np.sum(total_q[p][i, :])) + prob_smooth * RQ if row_sum <= 0.: continue - for j in range(r_q): + for j in range(RQ): prob_q[p][i][j] = (total_q[p][i][j] + prob_smooth) / row_sum - init_q = [[0. for m in range(r_q)] for n in range(actual_readlen)] + init_q = [[0. for m in range(RQ)] for n in range(actual_readlen)] for i in range(actual_readlen): - row_sum = float(np.sum(prior_q[i, :])) + init_smooth * r_q + row_sum = float(np.sum(prior_q[i, :])) + init_smooth * RQ if row_sum <= 0.: continue - for j in range(r_q): + for j in range(RQ): init_q[i][j] = (prior_q[i][j] + init_smooth) / row_sum if plot_stuff: @@ -144,7 +145,7 @@ def parse_fq(inf): q_labels = [str(n) for n in range(q_range[0], q_range[1] + 1) if n % 5 == 0] print(q_labels) q_ticks_x = [int(n) + 0.5 for n in q_labels] - q_ticks_y = [(r_q - int(n)) - 0.5 for n in q_labels] + q_ticks_y = [(RQ - int(n)) - 0.5 for n in q_labels] for p in range(1, actual_readlen, 10): current_data = np.array(prob_q[p]) @@ -173,7 +174,7 @@ def parse_fq(inf): x, y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) mpl.pcolormesh(x, y, z[::-1, :], vmin=v_min_log[0], vmax=v_min_log[1], cmap='jet') mpl.xlim([q_range[0], q_range[1] + 1]) - mpl.ylim([r_q - q_range[1] - 1, r_q - q_range[0]]) + mpl.ylim([RQ - q_range[1] - 1, RQ - q_range[0]]) mpl.yticks(q_ticks_y, q_labels) mpl.xticks(q_ticks_x, q_labels) mpl.xlabel('\n' + r'$Q_{i+1}$') @@ -187,7 +188,7 @@ def parse_fq(inf): mpl.show() print('estimating average error rate via simulation...') - q_scores = range(r_q) + q_scores = range(RQ) # print (len(init_q), len(init_q[0])) # print (len(prob_q), len(prob_q[1]), len(prob_q[1][0])) @@ -242,7 +243,7 @@ def parse_fq(inf): (inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) (inf2, pile_up) = (args.i2, args.p) -r_q = max_q + 1 +RQ = max_q + 1 init_smooth = 0. prob_smooth = 0. @@ -254,7 +255,7 @@ def parse_fq(inf): def main(): - q_scores = range(r_q) + q_scores = range(RQ) if inf2 == None: (init_q, prob_q, avg_err) = parse_fq(inf) else: @@ -305,3 +306,5 @@ def main(): if __name__ == '__main__': main() + +main('C:/Users/Meridith/Documents/SPIN Internship/Python Code/test.fasta') From b9c56534cf1455115fcbb384524b3f27b7b88d46 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 2 Jul 2020 14:12:24 -0500 Subject: [PATCH 085/323] Minor fixes to genSeqErrorModel.py --- utilities/genSeqErrorModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 7625b05..8d8176a 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -23,7 +23,7 @@ sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' sys.path.append(sim_path) -from probability import DiscreteDistribution +from py.probability import DiscreteDistribution def parse_fq(inf): From a4eb025b6d24add254d0787c6d56c6741bf18eac Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 2 Jul 2020 14:14:30 -0500 Subject: [PATCH 086/323] Minor fixes to genSeqErrorModel.py --- utilities/genSeqErrorModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 66a8d94..83d8c13 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -23,7 +23,7 @@ sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' sys.path.append(sim_path) -from py.probability import DiscreteDistribution +from probability import DiscreteDistribution def parse_fq(inf): From 3dd5b3d3d7bc420f2ec1b9667a1ef05ee5e1bf96 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 2 Jul 2020 14:41:14 -0500 Subject: [PATCH 087/323] Minor fixes to genSeqErrorModel.py --- utilities/genSeqErrorModel.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 83d8c13..8706227 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -79,7 +79,7 @@ def parse_fq(inf): continue for i in range(len(data4) - 1): - q = ord(data4[i]) - off_q + q = data4[i] - off_q q_dict[q] = True prev_q = q if i == 0: From 0f946c4b279231f3817820169e0874d575770429 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 2 Jul 2020 15:17:12 -0500 Subject: [PATCH 088/323] eliminated copy-paster error --- utilities/genSeqErrorModel.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 8706227..71f706b 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -306,5 +306,3 @@ def main(): if __name__ == '__main__': main() - -main('C:/Users/Meridith/Documents/SPIN Internship/Python Code/test.fasta') From 24cef73dc0afd7d3b5305e7437e14bea0db3dc75 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 2 Jul 2020 16:16:56 -0500 Subject: [PATCH 089/323] Fixed a problem of gen_mut_model.py being very slow --- utilities/gen_mut_model.py | 34 +++++++++++++++------------------- 1 file changed, 15 insertions(+), 19 deletions(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index a4c4018..2312048 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -225,33 +225,29 @@ def main(): # Count Trinucleotides in reference, based on bed or not print('Counting trinucleotides in reference...') - for ref_name in matching_chromosomes: - if is_bed: - print("since you're using a bed input, we have to count trinucs in bed region even if " - "you already have a trinuc count file for the reference...") + + if is_bed: + print("since you're using a bed input, we have to count trinucs in bed region even if " + "you already have a trinuc count file for the reference...") + for ref_name in matching_chromosomes: sub_bed = matching_bed[matching_bed['chrom'] == ref_name] sub_regions = sub_bed['coords'].to_list() for sr in sub_regions: - for i in range(sr[0], sr[1] - 2): - trinuc = str(ref_dict[ref_name][i:i + 3].seq) - # skip if trinuc contains invalid characters - if trinuc not in VALID_TRINUC: - continue + sub_seq = ref_dict[ref_name][sr[0]: sr[1]].seq + for trinuc in VALID_TRINUC: if trinuc not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 - TRINUC_REF_COUNT[trinuc] += 1 + TRINUC_REF_COUNT[trinuc] += sub_seq.count_overlap(trinuc) - elif not os.path.isfile(ref + '.trinucCounts'): - for i in range(len(ref_dict[ref_name]) - 2): - trinuc = str(ref_dict[ref_name][i:i + 3].seq) - # skip if trinuc contains invalid characters - if not trinuc in VALID_TRINUC: - continue + elif not os.path.isfile(ref + '.trinucCounts'): + for ref_name in matching_chromosomes: + sub_seq = ref_dict[ref_name].seq + for trinuc in VALID_TRINUC: if trinuc not in TRINUC_REF_COUNT: TRINUC_REF_COUNT[trinuc] = 0 - TRINUC_REF_COUNT[trinuc] += 1 - else: - print('Found trinucCounts file, using that.') + TRINUC_REF_COUNT[trinuc] += sub_seq.count_overlap(trinuc) + else: + print('Found trinucCounts file, using that.') # Load and process variants in each reference sequence individually, for memory reasons... print('Creating mutational model...') From f1f26befeda547e8e94d67d928e9bb6b35c63b4f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 6 Jul 2020 16:13:31 -0500 Subject: [PATCH 090/323] refactoring genSeqErrorModel.py --- utilities/genSeqErrorModel.py | 107 +++++++++++++++++----------------- 1 file changed, 53 insertions(+), 54 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 71f706b..a5535b0 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -18,16 +18,21 @@ import argparse import sys import pickle +import matplotlib.pyplot as mpl -# absolute path to this script -sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' -sys.path.append(sim_path) +# # absolute path to this script +# sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' +# sys.path.append(sim_path) -from probability import DiscreteDistribution +from py.probability import DiscreteDistribution -def parse_fq(inf): - #Takes a gzip or sam file and returns the simulation's average error rate, +def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): + init_smooth = 0. + prob_smooth = 0. + print_every = 10000 + + #Takes a gzip or sam file and returns the simulation's average error rate, print('reading ' + inf + '...') if inf[-3:] == '.gz': print('detected gzip suffix...') @@ -70,8 +75,8 @@ def parse_fq(inf): actual_readlen = len(data4) - 1 print('assuming read length is uniform...') print('detected read length (from first read found):', actual_readlen) - prior_q = np.zeros([actual_readlen, RQ]) - total_q = [None] + [np.zeros([RQ, RQ]) for n in range(actual_readlen - 1)] + prior_q = np.zeros([actual_readlen, real_q]) + total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] # sanity-check readlengths if len(data4) - 1 != actual_readlen: @@ -87,7 +92,7 @@ def parse_fq(inf): else: total_q[i][prev_q, q] += 1 prior_q[i][q] += 1 - + r_read += 1 if r_read % print_every == 0: @@ -101,26 +106,26 @@ def parse_fq(inf): if q_range[0] < 0: print('\nError: Read in Q-scores below 0\n') exit(1) - if q_range[1] > RQ: - print('\nError: Read in Q-scores above specified maximum:', q_range[1], '>', RQ, '\n') + if q_range[1] > real_q: + print('\nError: Read in Q-scores above specified maximum:', q_range[1], '>', real_q, '\n') exit(1) print('computing probabilities...') - prob_q = [None] + [[[0. for m in range(RQ)] for n in range(RQ)] for p in range(actual_readlen - 1)] + prob_q = [None] + [[[0. for m in range(real_q)] for n in range(real_q)] for p in range(actual_readlen - 1)] for p in range(1, actual_readlen): - for i in range(RQ): - row_sum = float(np.sum(total_q[p][i, :])) + prob_smooth * RQ + for i in range(real_q): + row_sum = float(np.sum(total_q[p][i, :])) + prob_smooth * real_q if row_sum <= 0.: continue - for j in range(RQ): + for j in range(real_q): prob_q[p][i][j] = (total_q[p][i][j] + prob_smooth) / row_sum - init_q = [[0. for m in range(RQ)] for n in range(actual_readlen)] + init_q = [[0. for m in range(real_q)] for n in range(actual_readlen)] for i in range(actual_readlen): - row_sum = float(np.sum(prior_q[i, :])) + init_smooth * RQ + row_sum = float(np.sum(prior_q[i, :])) + init_smooth * real_q if row_sum <= 0.: continue - for j in range(RQ): + for j in range(real_q): init_q[i][j] = (prior_q[i][j] + init_smooth) / row_sum if plot_stuff: @@ -145,7 +150,7 @@ def parse_fq(inf): q_labels = [str(n) for n in range(q_range[0], q_range[1] + 1) if n % 5 == 0] print(q_labels) q_ticks_x = [int(n) + 0.5 for n in q_labels] - q_ticks_y = [(RQ - int(n)) - 0.5 for n in q_labels] + q_ticks_y = [(real_q - int(n)) - 0.5 for n in q_labels] for p in range(1, actual_readlen, 10): current_data = np.array(prob_q[p]) @@ -174,7 +179,7 @@ def parse_fq(inf): x, y = np.meshgrid(range(0, len(Z[0]) + 1), range(0, len(Z) + 1)) mpl.pcolormesh(x, y, z[::-1, :], vmin=v_min_log[0], vmax=v_min_log[1], cmap='jet') mpl.xlim([q_range[0], q_range[1] + 1]) - mpl.ylim([RQ - q_range[1] - 1, RQ - q_range[0]]) + mpl.ylim([real_q - q_range[1] - 1, real_q - q_range[0]]) mpl.yticks(q_ticks_y, q_labels) mpl.xticks(q_ticks_x, q_labels) mpl.xlabel('\n' + r'$Q_{i+1}$') @@ -188,7 +193,7 @@ def parse_fq(inf): mpl.show() print('estimating average error rate via simulation...') - q_scores = range(RQ) + q_scores = range(real_q) # print (len(init_q), len(init_q[0])) # print (len(prob_q), len(prob_q[1]), len(prob_q[1][0])) @@ -225,42 +230,36 @@ def parse_fq(inf): return init_q, prob_q, avg_err -parser = argparse.ArgumentParser(description='genSeqErrorModel.py') -parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") -parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") -parser.add_argument('-i2', type=str, required=False, metavar='', default=None, - help="input_read2.fq (.gz) / input_read2.sam") -parser.add_argument('-p', type=str, required=False, metavar='', default=None, help="input_alignment.pileup") -parser.add_argument('-q', type=int, required=False, metavar='', default=33, help="quality score offset [33]") -parser.add_argument('-Q', type=int, required=False, metavar='', default=41, help="maximum quality score [41]") -parser.add_argument('-n', type=int, required=False, metavar='', default=-1, - help="maximum number of reads to process [all]") -parser.add_argument('-s', type=int, required=False, metavar='', default=1000000, - help="number of simulation iterations [1000000]") -parser.add_argument('--plot', required=False, action='store_true', default=False, help='perform some optional plotting') -args = parser.parse_args() - -(inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) -(inf2, pile_up) = (args.i2, args.p) - -RQ = max_q + 1 - -init_smooth = 0. -prob_smooth = 0. -print_every = 10000 -plot_stuff = args.plot -if plot_stuff: - print('plotting is desired, lets import matplotlib...') - import matplotlib.pyplot as mpl - - def main(): - q_scores = range(RQ) + parser = argparse.ArgumentParser(description='genSeqErrorModel.py') + parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") + parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") + parser.add_argument('-i2', type=str, required=False, metavar='', default=None, + help="input_read2.fq (.gz) / input_read2.sam") + parser.add_argument('-p', type=str, required=False, metavar='', default=None, help="input_alignment.pileup") + parser.add_argument('-q', type=int, required=False, metavar='', default=33, help="quality score offset [33]") + parser.add_argument('-Q', type=int, required=False, metavar='', default=41, help="maximum quality score [41]") + parser.add_argument('-n', type=int, required=False, metavar='', default=-1, + help="maximum number of reads to process [all]") + parser.add_argument('-s', type=int, required=False, metavar='', default=1000000, + help="number of simulation iterations [1000000]") + parser.add_argument('--plot', required=False, action='store_true', default=False, + help='perform some optional plotting') + args = parser.parse_args() + + (inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) + (inf2, pile_up) = (args.i2, args.p) + + real_q = max_q + 1 + + plot_stuff = args.plot + + q_scores = range(real_q) if inf2 == None: - (init_q, prob_q, avg_err) = parse_fq(inf) + (init_q, prob_q, avg_err) = parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff) else: - (init_q, prob_q, avg_err1) = parse_fq(inf) - (init_q2, prob_q2, avg_err2) = parse_fq(inf2) + (init_q, prob_q, avg_err1) = parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff) + (init_q2, prob_q2, avg_err2) = parse_fq(inf2, real_q, off_q, max_reads, n_samp, plot_stuff) avg_err = (avg_err1 + avg_err2) / 2. # From e388153f53450e0a9764e380c421b8bd3bc05675 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 6 Jul 2020 16:54:29 -0500 Subject: [PATCH 091/323] Added a very basic bacterial wrapper. --- bacterial_genreads_wrapper.py | 41 +++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 bacterial_genreads_wrapper.py diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py new file mode 100644 index 0000000..b672437 --- /dev/null +++ b/bacterial_genreads_wrapper.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python + +import genReads +import argparse + +def cull(bacteria): + """ + The purpose of this function will be to cull the bacteria created in the model + :param bacteria: + :return: + """ + return None + +def evolve(reference, read_length, output_prefix): + """ + The purpose of this function is to evolve the bacteria + :param bacteria: + :return: + """ + args = ['-r', reference, '-R', read_length, '-o', output_prefix] + new_fasta = genReads.main(args) + return new_fasta + + +def main(): + parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') + parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', + help="Reference file for organism in fasta format") + parser.add_argument('-R', type=int, required=True, metavar='', help="read length") + parser.add_argument('-o', type=str, required=True, metavar='', help="output prefix") + parser.add_argument('-C', type=str, required=True, metavar='', help="Number of cycles to run") + args = parser.parse_args() + + (ref_fasta, read_len, out_pref) = (args.r, args.R, args.o) + cycles = args.C + + old_fasta = ref_fasta + for i in range(cycles): + new_fasta = evolve(old_fasta, read_len, out_pref) + cull(new_fasta) + old_fasta = new_fasta From d5ebcda3bb56c904b7b1b5a5a92b9b4fa55b28b5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 8 Jul 2020 16:21:18 -0500 Subject: [PATCH 092/323] updated bacterial wrapper and genReads for compatability --- bacterial_genreads_wrapper.py | 14 +++++++++----- genReads.py | 5 ++--- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index b672437..84b76e0 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -3,21 +3,25 @@ import genReads import argparse -def cull(bacteria): + +def cull(fasta): """ The purpose of this function will be to cull the bacteria created in the model - :param bacteria: + :param fasta: :return: """ - return None + return fasta + def evolve(reference, read_length, output_prefix): """ The purpose of this function is to evolve the bacteria - :param bacteria: + :param reference: + :param read_length: + :param output_prefix :return: """ - args = ['-r', reference, '-R', read_length, '-o', output_prefix] + args = ['-r', reference, '-R', str(read_length), '-o', output_prefix] new_fasta = genReads.main(args) return new_fasta diff --git a/genReads.py b/genReads.py index cdf00f6..0bfc859 100644 --- a/genReads.py +++ b/genReads.py @@ -37,7 +37,7 @@ //////////////////////////////////////////////////""" -def main(): +def main(raw_args=None): parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") @@ -82,8 +82,7 @@ def main(): parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') - args = parser.parse_args() - + args = parser.parse_args(raw_args) """ Set variables for processing From 987d4cfc311405cb7abe84db1d7eda7686e5a743 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 9 Jul 2020 15:38:48 -0500 Subject: [PATCH 093/323] put a bed line in an if is_bed statement --- utilities/gen_mut_model.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 2312048..3ce5eda 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -260,8 +260,9 @@ def main(): # Create a view that narrows variants list to current ref variants_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() - bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() ref_sequence = str(ref_dict[ref_name].seq) + if is_bed: + bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() # we want only snps # so, no '-' characters allowed, and chrStart must be same as chrEnd From 7b5befae06cb32c94db46a4bcbf00859df29fd2d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 14 Jul 2020 15:13:39 -0500 Subject: [PATCH 094/323] Updates to genreads and bacterial wrapper --- bacterial_genreads_wrapper.py | 57 +++++++++++++++++++++++++++-------- genReads.py | 2 +- utilities/gen_mut_model.py | 7 +++-- 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 84b76e0..ec1d280 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -4,26 +4,52 @@ import argparse -def cull(fasta): +def cull(population: list) -> list: """ The purpose of this function will be to cull the bacteria created in the model - :param fasta: + :param population: :return: """ - return fasta + return population -def evolve(reference, read_length, output_prefix): +def create_fasta(neat_input): + """ + The purpose of this function will be to convert the output from neat-genreads into something + that can be an input back into neat genreads + :param neat_input: + :return fasta_output: + """ + fasta_output = None + return fasta_output + + +def crossover(population: list) -> list: + """ + This function will take a list of individuals and do crossover type mixing + :param population: + :return new_population: + """ + new_population = population + return new_population + + +def evolve(reference, read_length, output_prefix, pop_size): """ The purpose of this function is to evolve the bacteria :param reference: :param read_length: - :param output_prefix - :return: + :param output_prefix: + :param cycles: + :return population: """ args = ['-r', reference, '-R', str(read_length), '-o', output_prefix] - new_fasta = genReads.main(args) - return new_fasta + population = [] + for i in range(pop_size): + new_evolution = genReads.main(args) + new_member = create_fasta(new_evolution) + population.append(new_member) + return population def main(): @@ -32,14 +58,19 @@ def main(): help="Reference file for organism in fasta format") parser.add_argument('-R', type=int, required=True, metavar='', help="read length") parser.add_argument('-o', type=str, required=True, metavar='', help="output prefix") - parser.add_argument('-C', type=str, required=True, metavar='', help="Number of cycles to run") + parser.add_argument('-C', type=int, required=True, metavar='', help="Number of cycles to run") + parser.add_argument('-p', type=int, required=True, metavar='', help="Population size per cycle") args = parser.parse_args() - (ref_fasta, read_len, out_pref) = (args.r, args.R, args.o) + (ref_fasta, read_len, out_pref, population_size) = (args.r, args.R, args.o, args.p) cycles = args.C old_fasta = ref_fasta + candidate_population = evolve(old_fasta, read_len, out_pref, population_size) for i in range(cycles): - new_fasta = evolve(old_fasta, read_len, out_pref) - cull(new_fasta) - old_fasta = new_fasta + new_population = cull(candidate_population) + # If all elements get culled, then break and quit + if not new_population: + break + new_population = crossover(new_population) + candidate_population = evolve(new_population) diff --git a/genReads.py b/genReads.py index 0bfc859..9a90d7f 100644 --- a/genReads.py +++ b/genReads.py @@ -89,7 +89,7 @@ def main(raw_args=None): """ # absolute path to this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) - sys.path.append(SIM_PATH + '/py/') + print("The sim path is: ", SIM_PATH) # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 3ce5eda..948ff18 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -261,13 +261,16 @@ def main(): # Create a view that narrows variants list to current ref variants_to_process = matching_variants[matching_variants["CHROM"] == ref_name].copy() ref_sequence = str(ref_dict[ref_name].seq) - if is_bed: - bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() # we want only snps # so, no '-' characters allowed, and chrStart must be same as chrEnd snp_df = variants_to_process[~variants_to_process.index.isin(indices_to_indels)] snp_df = snp_df.loc[snp_df['chr_start'] == snp_df['chr_end']] + if is_bed: + bed_to_process = matching_bed[matching_bed['chrom'] == ref_name].copy() + # TODO fix this line (need the intersection of these two, I think) + snp_df = bed_to_process.join(snp_df) + if not snp_df.empty: # only consider positions where ref allele in vcf matches the nucleotide in our reference for index, row in snp_df.iterrows(): From c1b4fe08c7dea2f971fddc76215a39dc4d316e0f Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Thu, 16 Jul 2020 15:56:39 -0500 Subject: [PATCH 095/323] renamed variables --- genReads.py | 7 +- py/SequenceContainer.py | 455 +++++++++--------- .../OutputFileWriter.cpython-37.pyc | Bin 0 -> 7674 bytes .../SequenceContainer.cpython-37.pyc | Bin 0 -> 31358 bytes py/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 173 bytes .../biopython_modified_bgzf.cpython-37.pyc | Bin 0 -> 2695 bytes py/__pycache__/inputChecking.cpython-37.pyc | Bin 0 -> 2391 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 0 -> 3011 bytes py/__pycache__/probability.cpython-37.pyc | Bin 0 -> 3974 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 0 -> 4818 bytes py/__pycache__/vcfFunc.cpython-37.pyc | Bin 0 -> 4688 bytes py/vcfFunc.py | 168 +++---- 12 files changed, 316 insertions(+), 314 deletions(-) create mode 100644 py/__pycache__/OutputFileWriter.cpython-37.pyc create mode 100644 py/__pycache__/SequenceContainer.cpython-37.pyc create mode 100644 py/__pycache__/__init__.cpython-37.pyc create mode 100644 py/__pycache__/biopython_modified_bgzf.cpython-37.pyc create mode 100644 py/__pycache__/inputChecking.cpython-37.pyc create mode 100644 py/__pycache__/neat_cigar.cpython-37.pyc create mode 100644 py/__pycache__/probability.cpython-37.pyc create mode 100644 py/__pycache__/ref_func.cpython-37.pyc create mode 100644 py/__pycache__/vcfFunc.cpython-37.pyc diff --git a/genReads.py b/genReads.py index 0bfc859..825d1ed 100644 --- a/genReads.py +++ b/genReads.py @@ -37,7 +37,7 @@ //////////////////////////////////////////////////""" -def main(raw_args=None): +def main(): parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") @@ -82,7 +82,7 @@ def main(raw_args=None): parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') - args = parser.parse_args(raw_args) + args = parser.parse_args() """ Set variables for processing @@ -90,7 +90,7 @@ def main(raw_args=None): # absolute path to this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) sys.path.append(SIM_PATH + '/py/') - + print('The SIM_PATH variable is {}.'.format(SIM_PATH)) # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 @@ -170,6 +170,7 @@ def main(raw_args=None): SE_RATE = None if SE_MODEL is None: print('Using default sequencing error model.') + print('The SIM_PATH variable is {}.'.format(SIM_PATH)) SE_MODEL = SIM_PATH + '/models/errorModel_toy.p' SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) else: diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 62fc636..4f5c349 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -8,7 +8,7 @@ from Bio.Alphabet import IUPAC from py.probability import DiscreteDistribution, poisson_list, quantize_list -from py.neat_cigar import CigarString +from py.neat_cigar import cigar_string MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations @@ -31,12 +31,12 @@ # Container for reference sequences, applies mutations # class SequenceContainer: - def __init__(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None, onlyVCF=False): + def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None, only_vcf=False): # initialize basic variables - self.onlyVCF = onlyVCF - self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) + self.only_vcf = only_vcf + self.init_basicVars(x_offset, sequence, ploidy, window_overlap, read_len) # initialize mutation models - self.init_mutModels(mutationModels, mutRate) + self.init_mutModels(mut_models, mut_rate) # sample the number of variants that will be inserted into each ploid self.init_poisson() self.indelsToAdd = [n.sample() for n in self.ind_pois] @@ -44,112 +44,112 @@ def __init__(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationMo # initialize trinuc snp bias self.init_trinucBias() - def init_basicVars(self, xOffset, sequence, ploidy, windowOverlap, readLen): - self.x = xOffset + def init_basicVars(self, x_offset, sequence, ploidy, window_overlap, read_len): + self.x = x_offset self.ploidy = ploidy - self.readLen = readLen + self.read_len = read_len self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] - self.seqLen = len(sequence) + self.seq_Len = len(sequence) self.indelList = [[] for n in range(self.ploidy)] self.snpList = [[] for n in range(self.ploidy)] - self.allCigar = [[] for n in range(self.ploidy)] + self.all_cigar = [[] for n in range(self.ploidy)] self.FM_pos = [[] for n in range(self.ploidy)] self.FM_span = [[] for n in range(self.ploidy)] # blackList[ploid][pos] = 0 safe to insert variant here # blackList[ploid][pos] = 1 indel inserted here # blackList[ploid][pos] = 2 snp inserted here # blackList[ploid][pos] = 3 invalid position for various processing reasons - self.blackList = [np.zeros(self.seqLen,dtype=' int(self.readLen/2.): - trCov_vals[i] = [0.0]*int(self.readLen//2) + trCov_vals[i][:-int(self.readLen/2.)] + if len(tr_cov_vals[i]) > int(self.read_len/2.): + tr_cov_vals[i] = [0.0]*int(self.read_len//2) + tr_cov_vals[i][:-int(self.read_len/2.)] # fill in missing indices - trCov_vals[i].extend([0.0]*(len(self.sequences[i])-len(trCov_vals[i]))) + tr_cov_vals[i].extend([0.0]*(len(self.sequences[i])-len(tr_cov_vals[i]))) # - covvec = np.cumsum([trCov_vals[i][nnn]*gcCov_vals[i][nnn] for nnn in range(len(trCov_vals[i]))]) + covvec = np.cumsum([tr_cov_vals[i][nnn]*gcCov_vals[i][nnn] for nnn in range(len(tr_cov_vals[i]))]) coverage_vals = [] for j in range(0,max_coord): - coverage_vals.append(covvec[j+self.readLen] - covvec[j]) - avg_out.append(np.mean(coverage_vals)/float(self.readLen)) + coverage_vals.append(covvec[j+self.read_len] - covvec[j]) + avg_out.append(np.mean(coverage_vals)/float(self.read_len)) - if fragDist == None: + if frag_dist == None: self.coverage_distribution.append(DiscreteDistribution(coverage_vals,range(len(coverage_vals)))) # fragment length nightmare else: - currentThresh = 0. + current_thresh = 0. index_list = [0] - for j in range(len(fragDist.cumP)): - if fragDist.cumP[j] >= currentThresh + COV_FRAGLEN_PERCENTILE/100.0: - currentThresh = fragDist.cumP[j] + for j in range(len(frag_dist.cumP)): + if frag_dist.cumP[j] >= current_thresh + COV_FRAGLEN_PERCENTILE/100.0: + current_thresh = frag_dist.cumP[j] index_list.append(j) - flq = [fragDist.values[nnn] for nnn in index_list] - if fragDist.values[-1] not in flq: - flq.append(fragDist.values[-1]) + flq = [frag_dist.values[nnn] for nnn in index_list] + if frag_dist.values[-1] not in flq: + flq.append(frag_dist.values[-1]) flq.append(LARGE_NUMBER) - self.fraglens_indMap = {} - for j in fragDist.values: + self.fraglens_ind_map = {} + for j in frag_dist.values: bInd = bisect.bisect(flq,j) if abs(flq[bInd-1] - j) <= abs(flq[bInd] - j): - self.fraglens_indMap[j] = flq[bInd-1] + self.fraglens_ind_map[j] = flq[bInd-1] else: - self.fraglens_indMap[j] = flq[bInd] + self.fraglens_ind_map[j] = flq[bInd] self.coverage_distribution.append({}) - for flv in sorted(list(set(self.fraglens_indMap.values()))): - buffer_val = self.readLen - for j in fragDist.values: - if self.fraglens_indMap[j] == flv and j > buffer_val: + for flv in sorted(list(set(self.fraglens_ind_map.values()))): + buffer_val = self.read_len + for j in frag_dist.values: + if self.fraglens_ind_map[j] == flv and j > buffer_val: buffer_val = j - max_coord = min([len(self.sequences[i])-buffer_val-1, len(self.allCigar[i])-buffer_val+self.readLen-2]) + max_coord = min([len(self.sequences[i])-buffer_val-1, len(self.all_cigar[i])-buffer_val+self.read_len-2]) #print 'BEFORE:', len(self.sequences[i])-buffer_val - #print 'AFTER: ', len(self.allCigar[i])-buffer_val+self.readLen-2 + #print 'AFTER: ', len(self.all_cigar[i])-buffer_val+self.read_len-2 #print 'AFTER2:', max_coord coverage_vals = [] for j in range(0,max_coord): - coverage_vals.append(covvec[j+self.readLen] - covvec[j] + covvec[j+flv] - covvec[j+flv-self.readLen]) + coverage_vals.append(covvec[j+self.read_len] - covvec[j] + covvec[j+flv] - covvec[j+flv-self.read_len]) # EXPERIMENTAL #quantized_covVals = quantize_list(coverage_vals) @@ -159,9 +159,9 @@ def init_coverage(self, coverageDat, fragDist=None): #import matplotlib.pyplot as mpl #print len(coverage_vals),'-->',len(quantized_covVals) #mpl.figure(0) - #mpl.plot(range(len(coverage_vals)),coverage_vals) + #mpl.plot(range(len(coverage_vals)), coverage_vals) #for qcv in quantized_covVals: - # mpl.plot([qcv[0],qcv[1]+1],[qcv[2],qcv[2]],'r') + # mpl.plot([qcv[0], qcv[1]+1], [qcv[2],qcv[2]], 'r') #mpl.show() #exit(1) @@ -170,27 +170,28 @@ def init_coverage(self, coverageDat, fragDist=None): return np.mean(avg_out) - def init_mutModels(self,mutationModels,mutRate): - if mutationModels == []: + + def init_mutModels(self,mut_models,mut_rate): + if mut_models == []: ml = [copy.deepcopy(DEFAULT_MODEL_1) for n in range(self.ploidy)] - self.modelData = ml[:self.ploidy] + self.model_data = ml[:self.ploidy] else: - if len(mutationModels) != self.ploidy: + if len(mut_models) != self.ploidy: print('\nError: Number of mutation models recieved is not equal to specified ploidy\n') exit(1) - self.modelData = copy.deepcopy(mutationModels) + self.model_data = copy.deepcopy(mut_models) # do we need to rescale mutation frequencies? - mutRateSum = sum([n[0] for n in self.modelData]) - self.mutRescale = mutRate - if self.mutRescale == None: - self.mutScalar = 1.0 + mut_rateSum = sum([n[0] for n in self.model_data]) + self.mut_rescale = mut_rate + if self.mut_rescale == None: + self.mut_scalar = 1.0 else: - self.mutScalar = float(self.mutRescale)//(mutRateSum/float(len(self.modelData))) + self.mut_scalar = float(self.mut_rescale)//(mut_rateSum/float(len(self.model_data))) # how are mutations spread to each ploid, based on their specified mut rates? - self.ploidMutFrac = [float(n[0])/mutRateSum for n in self.modelData] - self.ploidMutPrior = DiscreteDistribution(self.ploidMutFrac,range(self.ploidy)) + self.ploid_mut_frac = [float(n[0])/mut_rateSum for n in self.model_data] + self.ploid_mut_prior = DiscreteDistribution(self.ploid_mut_frac,range(self.ploidy)) # init mutation models # @@ -203,19 +204,19 @@ def init_mutModels(self,mutationModels,mutRate): # self.models[ploid][6] = distribution of trinucleotide SNP transitions # self.models[ploid][7] = p(trinuc mutates) self.models = [] - for n in self.modelData: - self.models.append([self.mutScalar*n[0],n[1],n[2],n[3],DiscreteDistribution(n[5],n[4]),DiscreteDistribution(n[7],n[6]),[]]) + for n in self.model_data: + self.models.append([self.mut_scalar*n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), DiscreteDistribution(n[7], n[6]), []]) for m in n[8]: - self.models[-1][6].append([DiscreteDistribution(m[0],NUCL), - DiscreteDistribution(m[1],NUCL), - DiscreteDistribution(m[2],NUCL), - DiscreteDistribution(m[3],NUCL)]) + self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), + DiscreteDistribution(m[1], NUCL), + DiscreteDistribution(m[2], NUCL), + DiscreteDistribution(m[3], NUCL)]) self.models[-1].append([m for m in n[9]]) def init_poisson(self): - ind_l_list = [self.seqLen*self.models[i][0]*self.models[i][2]*self.ploidMutFrac[i] for i in range(len(self.models))] - snp_l_list = [self.seqLen*self.models[i][0]*(1.-self.models[i][2])*self.ploidMutFrac[i] for i in range(len(self.models))] - k_range = range(int(self.seqLen*MAX_MUTFRAC)) + ind_l_list = [self.seq_Len*self.models[i][0]*self.models[i][2]*self.ploid_mut_frac[i] for i in range(len(self.models))] + snp_l_list = [self.seq_Len*self.models[i][0]*(1.-self.models[i][2])*self.ploid_mut_frac[i] for i in range(len(self.models))] + k_range = range(int(self.seq_Len*MAX_MUTFRAC)) self.ind_pois = [poisson_list(k_range,ind_l_list[n]) for n in range(len(self.models))] self.snp_pois = [poisson_list(k_range,snp_l_list[n]) for n in range(len(self.models))] @@ -224,25 +225,25 @@ def init_trinucBias(self): # # note: since indels are added before snps, it's possible these positional biases aren't correctly utilized # at positions affected by indels. At the moment I'm going to consider this negligible. - trinuc_snp_bias = [[0. for n in range(self.seqLen)] for m in range(self.ploidy)] + trinuc_snp_bias = [[0. for n in range(self.seq_Len)] for m in range(self.ploidy)] self.trinuc_bias = [None for n in range(self.ploidy)] for p in range(self.ploidy): - for i in range(self.winBuffer+1,self.seqLen-1): + for i in range(self.winBuffer+1,self.seq_Len-1): trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] - self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seqLen-1],range(self.winBuffer+1,self.seqLen-1)) + self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seq_Len-1],range(self.winBuffer+1,self.seq_Len-1)) - def update(self, xOffset, sequence, ploidy, windowOverlap, readLen, mutationModels=[], mutRate=None): + def update(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None): # if mutation model is changed, we have to reinitialize it... - if ploidy != self.ploidy or mutRate != self.mutRescale or mutationModels != []: + if ploidy != self.ploidy or mut_rate != self.mut_rescale or mut_models != []: self.ploidy = ploidy - self.mutRescale = mutRate - self.init_mutModels(mutationModels, mutRate) + self.mut_rescale = mut_rate + self.init_mutModels(mut_models, mut_rate) # if sequence length is different than previous window, we have to redo snp/indel poissons - if len(sequence) != self.seqLen: - self.seqLen = len(sequence) + if len(sequence) != self.seq_Len: + self.seq_Len = len(sequence) self.init_poisson() # basic vars - self.init_basicVars(xOffset, sequence, ploidy, windowOverlap, readLen) + self.init_basicVars(x_offset, sequence, ploidy, window_overlap, read_len) self.indelsToAdd = [n.sample() for n in self.ind_pois] self.snpsToAdd = [n.sample() for n in self.snp_pois] # initialize trinuc snp bias @@ -254,7 +255,7 @@ def insert_mutations(self, inputList): whichPloid = [] wps = inpV[4][0] if wps == None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates - whichPloid.append(self.ploidMutPrior.sample()) + whichPloid.append(self.ploid_mut_prior.sample()) whichAlt = [0] else: if '/' in wps or '|' in wps: @@ -317,12 +318,12 @@ def random_mutations(self): if random.random() <= self.models[i][1]: # insert homozygous indel whichPloid = range(self.ploidy) else: # insert heterozygous indel - whichPloid = [self.ploidMutPrior.sample()] + whichPloid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert indels eventPos = -1 for attempt in range(MAX_ATTEMPTS): - eventPos = random.randint(self.winBuffer,self.seqLen-1) + eventPos = random.randint(self.winBuffer,self.seq_Len-1) for p in whichPloid: if self.blackList[p][eventPos]: eventPos = -1 @@ -335,8 +336,8 @@ def random_mutations(self): inLen = self.models[i][4].sample() # sequence content of random insertions is uniformly random (change this later, maybe) inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) - refNucl = self.sequences[i][eventPos] - myIndel = (eventPos,refNucl,refNucl+inSeq) + ref_nucl = self.sequences[i][eventPos] + myIndel = (eventPos, ref_nucl, ref_nucl+inSeq) else: # deletion inLen = self.models[i][5].sample() if eventPos+inLen+1 >= len(self.sequences[i]): # skip if deletion too close to boundary @@ -345,17 +346,17 @@ def random_mutations(self): inSeq = self.sequences[i][eventPos+1] else: inSeq = str(self.sequences[i][eventPos+1:eventPos+inLen+1]) - refNucl = self.sequences[i][eventPos] - myIndel = (eventPos,refNucl+inSeq,refNucl) + ref_nucl = self.sequences[i][eventPos] + myIndel = (eventPos, ref_nucl+inSeq, ref_nucl) # if event too close to boundary, skip. if event conflicts with other indel, skip. skipEvent = False - if eventPos+len(myIndel[1]) >= self.seqLen-self.winBuffer-1: + if eventPos+len(myIndel[1]) >= self.seq_Len-self.winBuffer-1: skipEvent = True if skipEvent: continue for p in whichPloid: - for k in range(eventPos,eventPos+inLen+1): + for k in range(eventPos, eventPos+inLen+1): if self.blackList[p][k]: skipEvent = True if skipEvent: @@ -373,7 +374,7 @@ def random_mutations(self): if random.random() <= self.models[i][1]: # insert homozygous SNP whichPloid = range(self.ploidy) else: # insert heterozygous SNP - whichPloid = [self.ploidMutPrior.sample()] + whichPloid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert snps eventPos = -1 @@ -381,7 +382,7 @@ def random_mutations(self): # based on the mutation model for the specified ploid, choose a SNP location based on trinuc bias # (if there are multiple ploids, choose one at random) if IGNORE_TRINUC: - eventPos = random.randint(self.winBuffer+1,self.seqLen-2) + eventPos = random.randint(self.winBuffer+1,self.seq_Len-2) else: ploid_to_use = whichPloid[random.randint(0,len(whichPloid)-1)] eventPos = self.trinuc_bias[ploid_to_use].sample() @@ -393,11 +394,11 @@ def random_mutations(self): if eventPos == -1: continue - refNucl = self.sequences[i][eventPos] + ref_nucl = self.sequences[i][eventPos] context = str(self.sequences[i][eventPos-1])+str(self.sequences[i][eventPos+1]) # sample from tri-nucleotide substitution matrices to get SNP alt allele - newNucl = self.models[i][6][TRI_IND[context]][NUC_IND[refNucl]].sample() - mySNP = (eventPos,refNucl,newNucl) + new_nucl = self.models[i][6][TRI_IND[context]][NUC_IND[ref_nucl]].sample() + mySNP = (eventPos,ref_nucl,new_nucl) for p in whichPloid: all_snps[p].append(mySNP) @@ -411,15 +412,15 @@ def random_mutations(self): # MODIFY REFERENCE STRING: SNPS for i in range(len(all_snps)): for j in range(len(all_snps[i])): - vPos = all_snps[i][j][0] + v_pos = all_snps[i][j][0] - if all_snps[i][j][1] != self.sequences[i][vPos]: - print('\nError: Something went wrong!\n', all_snps[i][j], self.sequences[i][vPos], '\n') + if all_snps[i][j][1] != self.sequences[i][v_pos]: + print('\nError: Something went wrong!\n', all_snps[i][j], self.sequences[i][v_pos], '\n') print(all_snps[i][j]) - print(self.sequences[i][vPos]) + print(self.sequences[i][v_pos]) exit(1) else: - self.sequences[i][vPos] = all_snps[i][j][2] + self.sequences[i][v_pos] = all_snps[i][j][2] # organize the indels we want to insert for i in range(len(all_indels)): @@ -427,80 +428,80 @@ def random_mutations(self): all_indels_ins = [sorted([list(m) for m in n]) for n in all_indels] # MODIFY REFERENCE STRING: INDELS - adjToAdd = [[] for n in range(self.ploidy)] + adj_to_add = [[] for n in range(self.ploidy)] for i in range(len(all_indels_ins)): - rollingAdj = 0 - tempSymbolString = ['M' for n in self.sequences[i]] + rolling_adj = 0 + temp_symbol_string = ['M' for n in self.sequences[i]] # there's an off-by-one error somewhere in the position sampling routines.. this might fix it - # tempSymbolString.append('M') + # temp_symbol_string.append('M') for j in range(len(all_indels_ins[i])): - vPos = all_indels_ins[i][j][0] + rollingAdj - vPos2 = vPos + len(all_indels_ins[i][j][1]) - rollingAdj += len(all_indels_ins[i][j][2])-len(all_indels_ins[i][j][1]) + v_pos = all_indels_ins[i][j][0] + rolling_adj + v_pos2 = v_pos + len(all_indels_ins[i][j][1]) + rolling_adj += len(all_indels_ins[i][j][2])-len(all_indels_ins[i][j][1]) - if all_indels_ins[i][j][1] != str(self.sequences[i][vPos:vPos2]): - print('\nError: Something went wrong!\n', all_indels_ins[i][j], [vPos, vPos2], - str(self.sequences[i][vPos:vPos2]), '\n') + if all_indels_ins[i][j][1] != str(self.sequences[i][v_pos:v_pos2]): + print('\nError: Something went wrong!\n', all_indels_ins[i][j], [v_pos, v_pos2], + str(self.sequences[i][v_pos:v_pos2]), '\n') exit(1) else: # alter reference sequence - self.sequences[i] = self.sequences[i][:vPos] + Seq(all_indels_ins[i][j][2], + self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2], IUPAC.unambiguous_dna).tomutable() + \ - self.sequences[i][vPos2:] + self.sequences[i][v_pos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) if d > 0: - tempSymbolString = tempSymbolString[:vPos+1] + ['I']*d + tempSymbolString[vPos2+1:] + temp_symbol_string = temp_symbol_string[:v_pos+1] + ['I']*d + temp_symbol_string[v_pos2+1:] elif d < 0: - tempSymbolString[vPos+1] = 'D'*abs(d)+'M' + temp_symbol_string[v_pos+1] = 'D'*abs(d)+'M' # precompute cigar strings - for j in range(len(tempSymbolString)-self.readLen): - self.allCigar[i].append(CigarString(listIn=tempSymbolString[j:j+self.readLen]).getString()) + for j in range(len(temp_symbol_string)-self.read_len): + self.all_cigar[i].append(cigar_string(listIn=temp_symbol_string[j:j+self.read_len]).getString()) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. corresponding to the unmodified reference genome) # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from this coordinate - MD_soFar = 0 - for j in range(len(tempSymbolString)): - self.FM_pos[i].append(MD_soFar) + MD_so_far = 0 + for j in range(len(temp_symbol_string)): + self.FM_pos[i].append(MD_so_far) # fix an edge case with deletions - if 'D' in tempSymbolString[j]: - self.FM_pos[i][-1] += tempSymbolString[j].count('D') + if 'D' in temp_symbol_string[j]: + self.FM_pos[i][-1] += temp_symbol_string[j].count('D') # compute number of ref matches for each read - span_dif = len([n for n in tempSymbolString[j:j+self.readLen] if 'M' in n]) + span_dif = len([n for n in temp_symbol_string[j:j+self.read_len] if 'M' in n]) self.FM_span[i].append(self.FM_pos[i][-1] + span_dif) - MD_soFar += tempSymbolString[j].count('M') + tempSymbolString[j].count('D') + MD_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') # tally up all the variants we handled... - countDict = {} + count_dict = {} all_variants = [sorted(all_snps[i]+all_indels[i]) for i in range(self.ploidy)] for i in range(len(all_variants)): for j in range(len(all_variants[i])): all_variants[i][j] = tuple([all_variants[i][j][0]+self.x])+all_variants[i][j][1:] t = tuple(all_variants[i][j]) - if t not in countDict: - countDict[t] = [] - countDict[t].append(i) + if t not in count_dict: + count_dict[t] = [] + count_dict[t].append(i) # # TODO: combine multiple variants that happened to occur at same position into single vcf entry? # output_variants = [] - for k in sorted(countDict.keys()): - output_variants.append(k+tuple([len(countDict[k])/float(self.ploidy)])) + for k in sorted(count_dict.keys()): + output_variants.append(k+tuple([len(count_dict[k])/float(self.ploidy)])) ploid_string = ['0' for n in range(self.ploidy)] - for k2 in [n for n in countDict[k]]: + for k2 in [n for n in count_dict[k]]: ploid_string[k2] = '1' output_variants[-1] += tuple(['WP='+'/'.join(ploid_string)]) return output_variants - def sample_read(self, sequencingModel, fragLen=None): + def sample_read(self, sequencingModel, frag_len=None): # choose a ploid - myPloid = random.randint(0,self.ploidy-1) + my_ploid = random.randint(0,self.ploidy-1) # stop attempting to find a valid position if we fail enough times MAX_READPOS_ATTEMPTS = 100 @@ -508,28 +509,28 @@ def sample_read(self, sequencingModel, fragLen=None): # choose a random position within the ploid, and generate quality scores / sequencing errors readsToSample = [] - if fragLen == None: - rPos = self.coverage_distribution[myPloid].sample() + if frag_len == None: + r_pos = self.coverage_distribution[my_ploid].sample() # sample read position and call function to compute quality scores / sequencing errors - rDat = self.sequences[myPloid][rPos:rPos+self.readLen] - (myQual, myErrors) = sequencingModel.getSequencingErrors(rDat) - readsToSample.append([rPos,myQual,myErrors,rDat]) + r_dat = self.sequences[my_ploid][r_pos:r_pos+self.read_len] + (myQual, myErrors) = sequencingModel.getSequencingErrors(r_dat) + readsToSample.append([r_pos,myQual,myErrors,r_dat]) else: - rPos1 = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() + r_pos1 = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() # EXPERIMENTAL - #coords_to_select_from = self.coverage_distribution[myPloid][self.fraglens_indMap[fragLen]].sample() - #rPos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) + #coords_to_select_from = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() + #r_pos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) - rPos2 = rPos1 + fragLen - self.readLen - rDat1 = self.sequences[myPloid][rPos1:rPos1+self.readLen] - rDat2 = self.sequences[myPloid][rPos2:rPos2+self.readLen] - (myQual1, myErrors1) = sequencingModel.getSequencingErrors(rDat1) - (myQual2, myErrors2) = sequencingModel.getSequencingErrors(rDat2,isReverseStrand=True) - readsToSample.append([rPos1,myQual1,myErrors1,rDat1]) - readsToSample.append([rPos2,myQual2,myErrors2,rDat2]) + r_pos2 = r_pos1 + frag_len - self.read_len + r_dat1 = self.sequences[my_ploid][r_pos1:r_pos1+self.read_len] + r_dat2 = self.sequences[my_ploid][r_pos2:r_pos2+self.read_len] + (myQual1, myErrors1) = sequencingModel.getSequencingErrors(r_dat1) + (myQual2, myErrors2) = sequencingModel.getSequencingErrors(r_dat2,isReverseStrand=True) + readsToSample.append([r_pos1,myQual1,myErrors1,r_dat1]) + readsToSample.append([r_pos2,myQual2,myErrors2,r_dat2]) # error format: # myError[i] = (type, len, pos, ref, alt) @@ -537,27 +538,27 @@ def sample_read(self, sequencingModel, fragLen=None): # examine sequencing errors to-be-inserted. # - remove deletions that don't have enough bordering sequence content to "fill in" # if error is valid, make the changes to the read data - rOut = [] + r_out = [] for r in readsToSample: try: - myCigar = self.allCigar[myPloid][r[0]] + myCigar = self.all_cigar[my_ploid][r[0]] except IndexError: print('Index error when attempting to find cigar string.') - print(myPloid, len(self.allCigar[myPloid]), r[0]) - if fragLen is not None: - print((rPos1, rPos2)) - print(fragLen, self.fraglens_indMap[fragLen]) + print(my_ploid, len(self.all_cigar[my_ploid]), r[0]) + if frag_len is not None: + print((r_pos1, r_pos2)) + print(frag_len, self.fraglens_ind_map[frag_len]) exit(1) totalD = sum([error[1] for error in r[2] if error[0] == 'D']) totalI = sum([error[1] for error in r[2] if error[0] == 'I']) - availB = len(self.sequences[myPloid]) - r[0] - self.readLen - 1 + availB = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted - r[3] += self.sequences[myPloid][r[0]+self.readLen:r[0]+self.readLen+totalD] - expandedCigar = [] + r[3] += self.sequences[my_ploid][r[0]+self.read_len:r[0]+self.read_len+totalD] + expanded_cigar = [] extraCigar = [] adj = 0 - sse_adj = [0 for n in range(self.readLen + max(sequencingModel.errP[3]))] - anyIndelErr = False + sse_adj = [0 for n in range(self.read_len + max(sequencingModel.errP[3]))] + any_indel_err = False # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors # secondarily, sort by index @@ -568,7 +569,7 @@ def sample_read(self, sequencingModel, fragLen=None): for k in sorted(arrangedErrors.keys()): sortedErrors.extend([n[1] for n in sorted(arrangedErrors[k])]) - skipIndels = False + skip_indels = False #FIXED TdB 05JUN2018 @@ -580,7 +581,7 @@ def sample_read(self, sequencingModel, fragLen=None): eLen = error[1] ePos = error[2] if error[0] == 'D' or error[0] == 'I': - anyIndelErr = True + any_indel_err = True #FIXED TdB 05JUN2018 #Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read @@ -589,17 +590,17 @@ def sample_read(self, sequencingModel, fragLen=None): if totalD > availB: # if not enough bases to fill-in deletions, skip all indel erors continue - if expandedCigar == []: - expandedCigar = CigarString(stringIn=myCigar).getList() + if expanded_cigar == []: + expanded_cigar = cigar_string(stringIn=myCigar).getList() fillToGo = totalD - totalI + 1 if fillToGo > 0: try: - extraCigarVal = CigarString(stringIn=self.allCigar[myPloid][r[0]+fillToGo]).getList()[-fillToGo:] + extraCigarVal = cigar_string(stringIn=self.all_cigar[my_ploid][r[0]+fillToGo]).getList()[-fillToGo:] except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors - skipIndels = True + skip_indels = True - if skipIndels: + if skip_indels: continue # insert deletion error into read and update cigar string accordingly @@ -609,10 +610,10 @@ def sample_read(self, sequencingModel, fragLen=None): pf = ePos+myadj+eLen+1 if str(r[3][pi:pf]) == str(error[3]): r[3] = r[3][:pi+1] + r[3][pf:] - expandedCigar = expandedCigar[:pi+1] + expandedCigar[pf:] - if pi+1 == len(expandedCigar): # weird edge case with del at very end of region. Make a guess and add a "M" - expandedCigar.append('M') - expandedCigar[pi+1] = 'D'*eLen + expandedCigar[pi+1] + expanded_cigar = expanded_cigar[:pi+1] + expanded_cigar[pf:] + if pi+1 == len(expanded_cigar): # weird edge case with del at very end of region. Make a guess and add a "M" + expanded_cigar.append('M') + expanded_cigar[pi+1] = 'D'*eLen + expanded_cigar[pi+1] else: print('\nError, ref does not match alt while attempting to insert deletion error!\n') exit(1) @@ -625,7 +626,7 @@ def sample_read(self, sequencingModel, fragLen=None): myadj = sse_adj[ePos] if str(r[3][ePos+myadj]) == error[3]: r[3] = r[3][:ePos+myadj] + error[4] + r[3][ePos+myadj+1:] - expandedCigar = expandedCigar[:ePos+myadj] + ['I']*eLen + expandedCigar[ePos+myadj:] + expanded_cigar = expanded_cigar[:ePos+myadj] + ['I']*eLen + expanded_cigar[ePos+myadj:] else: print('\nError, ref does not match alt while attempting to insert insertion error!\n') print('---', chr(r[3][ePos + myadj]), '!=', error[3]) @@ -641,41 +642,41 @@ def sample_read(self, sequencingModel, fragLen=None): print('\nError, ref does not match alt while attempting to insert substitution error!\n') exit(1) - if anyIndelErr: - if len(expandedCigar): - relevantCigar = (expandedCigar+extraCigarVal)[:self.readLen] - myCigar = CigarString(listIn=relevantCigar).getString() + if any_indel_err: + if len(expanded_cigar): + relevantCigar = (expanded_cigar+extraCigarVal)[:self.read_len] + myCigar = cigar_string(listIn=relevantCigar).getString() - r[3] = r[3][:self.readLen] + r[3] = r[3][:self.read_len] - rOut.append([self.FM_pos[myPloid][r[0]], myCigar, str(r[3]), str(r[1])]) + r_out.append([self.FM_pos[my_ploid][r[0]], myCigar, str(r[3]), str(r[1])]) - # rOut[i] = (pos, cigar, read_string, qual_string) - return rOut + # r_out[i] = (pos, cigar, read_string, qual_string) + return r_out # # Container for read data, computes quality scores and positions to insert errors # class ReadContainer: - def __init__(self, readLen, errorModel, reScaledError): + def __init__(self, read_len, errorModel, reScaledError): - self.readLen = readLen + self.read_len = read_len - errorDat = pickle.load(open(errorModel, 'rb'), encoding="bytes") + error_dat = pickle.load(open(errorModel, 'rb'), encoding="bytes") self.UNIFORM = False - if len(errorDat) == 4: # uniform-error SE reads (e.g. PacBio) + if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True - [Qscores,offQ,avgError,errorParams] = errorDat - self.uniform_qscore = int(-10.*np.log10(avgError)+0.5) + [Qscores, offQ, avgError, errorParams] = error_dat + self.uniform_qscore = int(-10. * np.log10(avgError) + 0.5) print('Using uniform sequencing error model. (q=' + str(self.uniform_qscore) + '+' + str( offQ) + ', p(err)={0:0.2f}%)'.format(100. * avgError)) - if len(errorDat) == 6: # only 1 q-score model present, use same model for both strands - [initQ1,probQ1,Qscores,offQ,avgError,errorParams] = errorDat + if len(error_dat) == 6: # only 1 q-score model present, use same model for both strands + [initQ1, probQ1, Qscores, offQ, avgError, errorParams] = error_dat self.PE_MODELS = False - elif len(errorDat) == 8: # found a q-score model for both forward and reverse strands + elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands #print 'Using paired-read quality score profiles...' - [initQ1,probQ1,initQ2,probQ2,Qscores,offQ,avgError,errorParams] = errorDat + [initQ1 ,probQ1, initQ2, probQ2, Qscores, offQ, avgError, errorParams] = error_dat self.PE_MODELS = True if len(initQ1) != len(initQ2) or len(probQ1) != len(probQ2): print('\nError: R1 and R2 quality score models are of different length.\n') @@ -689,9 +690,9 @@ def __init__(self, readLen, errorModel, reScaledError): # errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] self.errP = errorParams - self.errSSE = [DiscreteDistribution(n,NUCL) for n in self.errP[0]] - self.errSIE = DiscreteDistribution(self.errP[2],self.errP[3]) - self.errSIN = DiscreteDistribution(self.errP[5],NUCL) + self.errSSE = [DiscreteDistribution(n, NUCL) for n in self.errP[0]] + self.errSIE = DiscreteDistribution(self.errP[2], self.errP[3]) + self.errSIN = DiscreteDistribution(self.errP[5], NUCL) # adjust sequencing error frequency to match desired rate if reScaledError == None: @@ -703,45 +704,45 @@ def __init__(self, readLen, errorModel, reScaledError): if not self.UNIFORM: # adjust length to match desired read length - if self.readLen == len(initQ1): - self.qIndRemap = range(self.readLen) + if self.read_len == len(initQ1): + self.qIndRemap = range(self.read_len) else: print('Warning: Read length of error model (' + str(len(initQ1)) + ') does not match -R value (' + str( - self.readLen) + '), rescaling model...') - self.qIndRemap = [max([1,len(initQ1)*n//readLen]) for n in range(readLen)] + self.read_len) + '), rescaling model...') + self.qIndRemap = [max([1, len(initQ1) * n // read_len]) for n in range(read_len)] # initialize probability distributions - self.initDistByPos1 = [DiscreteDistribution(initQ1[i],Qscores) for i in range(len(initQ1))] + self.initDistByPos1 = [DiscreteDistribution(initQ1[i], Qscores) for i in range(len(initQ1))] self.probDistByPosByPrevQ1 = [None] - for i in range(1,len(initQ1)): + for i in range(1, len(initQ1)): self.probDistByPosByPrevQ1.append([]) for j in range(len(initQ1[0])): if np.sum(probQ1[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) else: - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j],Qscores)) + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j], Qscores)) if self.PE_MODELS: - self.initDistByPos2 = [DiscreteDistribution(initQ2[i],Qscores) for i in range(len(initQ2))] + self.initDistByPos2 = [DiscreteDistribution(initQ2[i], Qscores) for i in range(len(initQ2))] self.probDistByPosByPrevQ2 = [None] - for i in range(1,len(initQ2)): + for i in range(1, len(initQ2)): self.probDistByPosByPrevQ2.append([]) for j in range(len(initQ2[0])): if np.sum(probQ2[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1],[Qscores[j]],degenerateVal=Qscores[j])) + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) else: - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j],Qscores)) + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], Qscores)) def getSequencingErrors(self, readData, isReverseStrand=False): - qOut = [0]*self.readLen + qOut = [0]*self.read_len sErr = [] if self.UNIFORM: - myQ = [self.uniform_qscore + self.offQ for n in range(self.readLen)] + myQ = [self.uniform_qscore + self.offQ for n in range(self.read_len)] qOut = ''.join([chr(n) for n in myQ]) - for i in range(self.readLen): - if random.random() < self.errorScale*self.qErrRate[self.uniform_qscore]: + for i in range(self.read_len): + if random.random() < self.errorScale * self.qErrRate[self.uniform_qscore]: sErr.append(i) else: @@ -751,7 +752,7 @@ def getSequencingErrors(self, readData, isReverseStrand=False): myQ = self.initDistByPos1[0].sample() qOut[0] = myQ - for i in range(1, self.readLen): + for i in range(1, self.read_len): if self.PE_MODELS and isReverseStrand: myQ = self.probDistByPosByPrevQ2[self.qIndRemap[i]][myQ].sample() else: @@ -761,14 +762,14 @@ def getSequencingErrors(self, readData, isReverseStrand=False): if isReverseStrand: qOut = qOut[::-1] - for i in range(self.readLen): + for i in range(self.read_len): if random.random() < self.errorScale * self.qErrRate[qOut[i]]: sErr.append(i) qOut = ''.join([chr(n + self.offQ) for n in qOut]) if self.errorScale == 0.0: - return (qOut,[]) + return (qOut, []) sOut = [] nDelSoFar = 0 @@ -781,28 +782,28 @@ def getSequencingErrors(self, readData, isReverseStrand=False): # determine error type isSub = True - if ind != 0 and ind != self.readLen-1-max(self.errP[3]) and abs(ind-prevIndel) > 1: + if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind-prevIndel) > 1: if random.random() < self.errP[1]: isSub = False - # errorOut = (type, len, pos, ref, alt) + # error_out = (type, len, pos, ref, alt) if isSub: # insert substitution error myNucl = str(readData[ind]) - newNucl = self.errSSE[NUC_IND[myNucl]].sample() - sOut.append(('S',1,ind,myNucl,newNucl)) + new_nucl = self.errSSE[NUC_IND[myNucl]].sample() + sOut.append(('S', 1, ind, myNucl, new_nucl)) else: # insert indel error indelLen = self.errSIE.sample() if random.random() < self.errP[4]: # insertion error myNucl = str(readData[ind]) - newNucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) - sOut.append(('I',len(newNucl)-1,ind,myNucl,newNucl)) - elif ind < self.readLen-2-nDelSoFar: # deletion error (prevent too many of them from stacking up) + new_nucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) + sOut.append(('I', len(new_nucl) - 1, ind, myNucl, new_nucl)) + elif ind < self.read_len - 2 - nDelSoFar: # deletion error (prevent too many of them from stacking up) myNucl = str(readData[ind:ind+indelLen+1]) - newNucl = str(readData[ind]) + new_nucl = str(readData[ind]) nDelSoFar += len(myNucl)-1 - sOut.append(('D',len(myNucl)-1,ind,myNucl,newNucl)) - for i in range(ind+1,ind+indelLen+1): + sOut.append(('D', len(myNucl) - 1, ind, myNucl, new_nucl)) + for i in range(ind+1, ind + indelLen+1): delBlacklist.append(i) prevIndel = ind diff --git a/py/__pycache__/OutputFileWriter.cpython-37.pyc b/py/__pycache__/OutputFileWriter.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..23a59c87c9f4686562243875158005cd375c2c29 GIT binary patch literal 7674 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 literal 0 HcmV?d00001 diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..17ce93c029b86a6478820327e46183390dd9ad68 GIT binary patch literal 31358 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 literal 0 HcmV?d00001 diff --git a/py/__pycache__/__init__.cpython-37.pyc b/py/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1a110d71d2bbfca72127e1c903557424da76f28e GIT binary patch literal 173 zcmZ?b<>g`k0*iS(@gVv!h=2h`Aj1KOi&=m~3PUi1CZpdI z}5iniLbBUzDAhmmcquS(KVwl3!FA@8{|m5|fvj uSfZPrnpc#Xm{J^5P#F^+pP83g5+AQuPUNge$CFz{$_?N3kxlV@AePv zL@qJ*BMs)C2j(tX`8yEFB+uAJ-SZ9pfJq^}*Gzi*Vnay&ch>RWU?1xah|WJB%w4o{ z9YnDWE*W-TlD-UH^9@givhkX2_%f1B^nq;23+O}HmJ8?`a#3DHAIT;84*I6M=dx|B zY|VzxbZV6DTK?iq2;qYOggzRO>i5yge}PnUx|PCVpRA(d%3BqHlTs|2PNqKHpq$>O54`cUN%+rlwUxQ4HBbX8rw)ly59m>DK2kcBsTpmq7K7=I z%1ycXAT^&&`R&03r6xiQL$}C55MObQSp5|@|c&uHQp<3`~y7Tc4++VhV(!q=^qAre&ruDD}Kn) zw+`7d+Y7$-aW-&gS^1^$BzSlJ0`1!it5Eu5roT4rg9Sh&JQRCj-gcu#J#u_>ETy^3 zu%l70LklNGw(inwcs%QL#W<=&)mUa#fEJ=f(5LBaTCAFfoFhU3xeMJA;mqFqcSI4$ z*ipzW&TGK&k+)sA)(-iG*XrH~g24NXt{OFsbZ#>qys4rq*eWS9>dcc>ar?CDkOZ)c1 z{F)P#MXPJ;5AQu$TeS<|l1FQgl80+g*B;tvzSRc9Y+8%f6^O_ zZQx?5)6$pdlEA5F+YU|12yg@V+okDglN7^Ysf^_V+nP&O(s~ezV`Vy1_VP48T}hz% zmKj-}%y$t`6G9{|aMvd8x<6s2Btk%K@g)(V7ib~Bg#HR|VP;XZ!CmD`ptI$(z&#`B z1ia)<%4rU~--9uX;A;3dqI`BBBteZ+F4_mI(X(xTA6ab~sTtr~shE$MihsfcaudPg z?U|Ri=4Y@!(BD#_WK7`kQ4W%`~P=5&0@!b3955U`qJWB38=T-d&tlmQ_uYfSbdW%PJ;Uf3NV(qx4 zGmdk98xWM~qyEHW|HJ?mk_8mx92VY!g%tj%1#el16mVi8e=eTkOuf&A6a1QRobnF* zLtNp)%kS2abaVvcnz*SGoU_&ifTqgX;kDhAKu_W0mb#cK+aS!Dc7;+LpPe<(q5i}` z%4-A*2Z>u?kk3dprY}KdmeLY4wi3eGM(q%@fUZzrUv!rJ}pJ;yN^uz+bE}Y{~ zK;EeRLa&TiCTSf}hi$WtS5*wpL*g&k{1mPBl<-B!BcFirmZzMs6HgHos5wtj3altA z@~)Hp%P(S^NrF12bdn6{HdjRW?8+Iqoo=YJDno=ZMAz{>^pbc7b^;UL#Z{z!$FDK) z5qKMXMK#+tjqVLp9|`Q7!Bqa#ODcauY@h4#cA=}+JAVDoqN_=dPK!=bDNhpHN~o+( zGveDx@_gFM>J?47+6APGHHSl|qyB^z?hrYJs^ci#X|nPvTDb@kiPlndEn0{oG|#Oe dynjRceourp|B@6NeOhbvS4!0-X&v#%`x*JVc#;4B literal 0 HcmV?d00001 diff --git a/py/__pycache__/inputChecking.cpython-37.pyc b/py/__pycache__/inputChecking.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..00142fac6a5a7a6c274d1d3cf6818e725a7739b9 GIT binary patch literal 2391 zcmah~L66%+6!zFoH|r*4TTly}=1_^XSoR8vD%7&=LJw>uS|}`$A}2H1xN&C8%(zRc zy`c7IR0s|n_zV0CuD){Wof9X%H%@k~T~^rfjPvGs=FR)Q@6BiZeiGpNh$s z4mZdKO9H>Eq6fdO-1IkD`>#9Vns^J=M1+rn^!kh6k|(p=@@Za3KGDi$xw72K=h9>a zw=Pp6GlEYmHF3Gdkeg+WALm8E$C6i83RsM;j%K=Yc$K^~`p9I9UH%}O%uYY#lbM{% zEzeb1xdgNF+}cW7o+&Pk(T3+!`rJqiaH|*6&2n|bkBwGGyU80QB{)c$VYkrU3SKf6I3^y9Y$|f-jX>E42`l{LRfFEepSPp8IykXdC8rGc>-@7`NKjtnC z4Q0bnI(`q#Cc1yV-y00Sw$j+)m(t_{%M9=9Nwtv5+2QB8`=S~TpK3El5TpA@!^CN` z934Ek_hhJK<~}--%E(OEVYwW7AomDVc<+|Wy1&ldKBbO`Zi&-Dx68Jexr(>_G_J#` z@*&mTwY!NiG@&r*q8`#{5L9?M32o1#xM`lP(A>QYO?78^&4uuaUxqAr8mOH(aM3(5 zGZxT&*>~RsD*U$LLg&Tb9v;8572Ao`qz{!XJUan$Lkf_W=np~U_z}5<1a~s--P7!HNai>)}is%@VYBc47K;E(gS6a#duHgnNuEPpZM}?kb<`oT9dqtzXc|}KF z(SKe*5oCSa2#-dd8$ANzCIQi@ zqvu&shsC%Kt8ohuLWM5s3H3cZb_dN#aKh$+-9jJEW3vr`v6Bd8b`1*7urpAypHQbR z;DRM9$+yv^1jksqV=0wqY@v^(;bUC^sqJE%ddRA>JTq3~bf*Eb;k_?_twW_i>H5&fPVl0 literal 0 HcmV?d00001 diff --git a/py/__pycache__/neat_cigar.cpython-37.pyc b/py/__pycache__/neat_cigar.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..92877fa16b6c8afe9279c3ef0667d2a8ee2ea5b7 GIT binary patch literal 3011 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 literal 0 HcmV?d00001 diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9660c918016c6e3b800f2331f9fdfdd3584ee6ee GIT binary patch literal 4818 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 1 and all([n[-1] == varsOut[r][i][1][-1] for n in varsOut[r][i][2]]): - varsOut[r][i][1] = varsOut[r][i][1][:-1] - varsOut[r][i][2] = [n[:-1] for n in varsOut[r][i][2]] - varsOut[r][i] = tuple(varsOut[r][i]) - - print('found', sum([len(n) for n in allVars.values()]), 'valid variants in input vcf.') - print(' *', nSkipped, 'variants skipped: (qual filtered / ref genotypes / invalid syntax)') - print(' *', nSkipped_becauseHash, 'variants skipped due to multiple variants found per position') + for i in range(len(vars_out[r])): + while len(vars_out[r][i][1]) > 1 and all([n[-1] == vars_out[r][i][1][-1] for n in vars_out[r][i][2]]): + vars_out[r][i][1] = vars_out[r][i][1][:-1] + vars_out[r][i][2] = [n[:-1] for n in vars_out[r][i][2]] + vars_out[r][i] = tuple(vars_out[r][i]) + + print('found', sum([len(n) for n in all_vars.values()]), 'valid variants in input vcf.') + print(' *', n_skipped, 'variants skipped: (qual filtered / ref genotypes / invalid syntax)') + print(' *', n_skipped_because_hash, 'variants skipped due to multiple variants found per position') print('--------------------------------') - return (sampNames, varsOut) + return (samp_names, vars_out) From a96f180cdbcbf009f22c010faf264762013e9188 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 17 Jul 2020 11:23:45 -0500 Subject: [PATCH 096/323] Minor changes to genreads --- genReads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/genReads.py b/genReads.py index 9a90d7f..414a311 100644 --- a/genReads.py +++ b/genReads.py @@ -87,9 +87,10 @@ def main(raw_args=None): """ Set variables for processing """ + # TODO change these to pathlib.Path objects so they are machine agnostic # absolute path to this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) - print("The sim path is: ", SIM_PATH) + print("sim path is ", SIM_PATH) # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 From 5bf8a63327c6a06584a1123e7cc0ec03b8b1259d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 17 Jul 2020 11:28:30 -0500 Subject: [PATCH 097/323] minor change to neat_cigar --- py/neat_cigar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/neat_cigar.py b/py/neat_cigar.py index ab588f9..8965116 100644 --- a/py/neat_cigar.py +++ b/py/neat_cigar.py @@ -1,7 +1,7 @@ import re -class CigarString: +class cigar_string: def __init__(self, stringIn=None, listIn=None): if stringIn is None and listIn is None: From 6c54fbf5c98890ff1e43b183817118452736300d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 17 Jul 2020 11:29:00 -0500 Subject: [PATCH 098/323] minor change to genreads --- genReads.py | 1 - 1 file changed, 1 deletion(-) diff --git a/genReads.py b/genReads.py index 414a311..66dac5d 100644 --- a/genReads.py +++ b/genReads.py @@ -90,7 +90,6 @@ def main(raw_args=None): # TODO change these to pathlib.Path objects so they are machine agnostic # absolute path to this script SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) - print("sim path is ", SIM_PATH) # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 From 2e163fb718521ae058e5e21e7c01564f042adaee Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 17 Jul 2020 11:48:53 -0500 Subject: [PATCH 099/323] renaming in genReads --- genReads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genReads.py b/genReads.py index 66dac5d..39e7afa 100644 --- a/genReads.py +++ b/genReads.py @@ -550,7 +550,7 @@ def main(raw_args=None): # construct sequence data that we will sample reads from if sequences is None: sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, - [MUT_MODEL] * PLOIDS, MUT_RATE, onlyVCF=ONLY_VCF) + [MUT_MODEL] * PLOIDS, MUT_RATE, only_vcf=ONLY_VCF) else: sequences.update(start, refSequence[start:end], PLOIDS, overlap, READLEN, [MUT_MODEL] * PLOIDS, MUT_RATE) From e88b60496b6b0eb5da99572769247fcadca2526d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 17 Jul 2020 14:26:30 -0500 Subject: [PATCH 100/323] minor fix to genreads --- genReads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/genReads.py b/genReads.py index 39e7afa..e84f5f3 100644 --- a/genReads.py +++ b/genReads.py @@ -563,7 +563,7 @@ def main(raw_args=None): # init coverage if sum(coverage_dat[2]) >= LOW_COV_THRESH: if PAIRED_END: - coverage_avg = sequences.init_coverage(tuple(coverage_dat), fragDist=FRAGLEN_DISTRIBUTION) + coverage_avg = sequences.init_coverage(tuple(coverage_dat), frag_dist=FRAGLEN_DISTRIBUTION) else: coverage_avg = sequences.init_coverage(tuple(coverage_dat)) From e474b07917254bdb95297d573ef73fc36cfe1ad0 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 6 Aug 2020 15:01:05 -0500 Subject: [PATCH 101/323] Bringing py/input_checking.py into PEP8 compliance. --- genReads.py | 30 ++++----- py/__pycache__/inputChecking.cpython-37.pyc | Bin 2391 -> 0 bytes py/inputChecking.py | 67 -------------------- py/input_checking.py | 66 +++++++++++++++++++ 4 files changed, 81 insertions(+), 82 deletions(-) delete mode 100644 py/__pycache__/inputChecking.cpython-37.pyc delete mode 100644 py/inputChecking.py create mode 100644 py/input_checking.py diff --git a/genReads.py b/genReads.py index e84f5f3..2b700d4 100644 --- a/genReads.py +++ b/genReads.py @@ -25,7 +25,7 @@ import numpy as np import argparse -from py.inputChecking import requiredField, checkFileOpen, isInRange +from py.input_checking import required_field, check_file_open, is_in_range from py.ref_func import index_ref, readRef, getAllRefRegions, partitionRefRegions from py.vcfFunc import parseVCF from py.OutputFileWriter import OutputFileWriter @@ -146,10 +146,10 @@ def main(raw_args=None): **** INPUT ERROR CHECKING ************************************************""" - checkFileOpen(REFERENCE, 'ERROR: could not open reference', required=True) - checkFileOpen(INPUT_VCF, 'ERROR: could not open input VCF', required=False) - checkFileOpen(INPUT_BED, 'ERROR: could not open input BED', required=False) - requiredField(OUT_PREFIX, 'ERROR: no output prefix provided') + check_file_open(REFERENCE, 'ERROR: could not open reference', required=True) + check_file_open(INPUT_VCF, 'ERROR: could not open input VCF', required=False) + check_file_open(INPUT_BED, 'ERROR: could not open input BED', required=False) + required_field(OUT_PREFIX, 'ERROR: no output prefix provided') if (FRAGMENT_SIZE is None and FRAGMENT_STD is not None) or (FRAGMENT_SIZE is not None and FRAGMENT_STD is None): print('\nError: --pe argument takes 2 space-separated arguments.\n') exit(1) @@ -241,20 +241,20 @@ def main(raw_args=None): **** MORE INPUT ERROR CHECKING ************************************************""" - isInRange(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') - isInRange(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') - isInRange(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') - isInRange(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') + is_in_range(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') + is_in_range(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') + is_in_range(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') + is_in_range(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') if MUT_RATE != -1 and MUT_RATE is not None: - isInRange(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') + is_in_range(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') if SE_RATE != -1 and SE_RATE is not None: - isInRange(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') + is_in_range(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') if NJOBS != 1: - isInRange(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') - isInRange(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') + is_in_range(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') + is_in_range(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') + is_in_range(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') if N_MAX_QUAL != -1: - isInRange(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') + is_in_range(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') """************************************************ **** Process Inputs diff --git a/py/__pycache__/inputChecking.cpython-37.pyc b/py/__pycache__/inputChecking.cpython-37.pyc deleted file mode 100644 index 00142fac6a5a7a6c274d1d3cf6818e725a7739b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2391 zcmah~L66%+6!zFoH|r*4TTly}=1_^XSoR8vD%7&=LJw>uS|}`$A}2H1xN&C8%(zRc zy`c7IR0s|n_zV0CuD){Wof9X%H%@k~T~^rfjPvGs=FR)Q@6BiZeiGpNh$s z4mZdKO9H>Eq6fdO-1IkD`>#9Vns^J=M1+rn^!kh6k|(p=@@Za3KGDi$xw72K=h9>a zw=Pp6GlEYmHF3Gdkeg+WALm8E$C6i83RsM;j%K=Yc$K^~`p9I9UH%}O%uYY#lbM{% zEzeb1xdgNF+}cW7o+&Pk(T3+!`rJqiaH|*6&2n|bkBwGGyU80QB{)c$VYkrU3SKf6I3^y9Y$|f-jX>E42`l{LRfFEepSPp8IykXdC8rGc>-@7`NKjtnC z4Q0bnI(`q#Cc1yV-y00Sw$j+)m(t_{%M9=9Nwtv5+2QB8`=S~TpK3El5TpA@!^CN` z934Ek_hhJK<~}--%E(OEVYwW7AomDVc<+|Wy1&ldKBbO`Zi&-Dx68Jexr(>_G_J#` z@*&mTwY!NiG@&r*q8`#{5L9?M32o1#xM`lP(A>QYO?78^&4uuaUxqAr8mOH(aM3(5 zGZxT&*>~RsD*U$LLg&Tb9v;8572Ao`qz{!XJUan$Lkf_W=np~U_z}5<1a~s--P7!HNai>)}is%@VYBc47K;E(gS6a#duHgnNuEPpZM}?kb<`oT9dqtzXc|}KF z(SKe*5oCSa2#-dd8$ANzCIQi@ zqvu&shsC%Kt8ohuLWM5s3H3cZb_dN#aKh$+-9jJEW3vr`v6Bd8b`1*7urpAypHQbR z;DRM9$+yv^1jksqV=0wqY@v^(;bUC^sqJE%ddRA>JTq3~bf*Eb;k_?_twW_i>H5&fPVl0 diff --git a/py/inputChecking.py b/py/inputChecking.py deleted file mode 100644 index 45ec25c..0000000 --- a/py/inputChecking.py +++ /dev/null @@ -1,67 +0,0 @@ -""" -This file contains several standard functions that will be used throughout the program. Each function checks input -and issues an error if there is something wrong. -""" - -import os -import sys - - -def requiredField(s: any, errString: str) -> None: - """ - If required field s is empty, issues an error. Otherwise this does nothing - - :param s: Any input type - :param errString: A string with the error message - :return: None - """ - if s is None: - print('\n' + errString + '\n') - exit(1) - - -def checkFileOpen(fn: str, errString: str, required: bool = False) -> None: - """ - Checks that the filename is not empty and that it is indeed a file - :param fn: file name, string - :param errString: string of the error if it is not a file - :param required: If not required, skips the check - :return: None - """ - if required or fn is not None: - if fn is None: - print('\n' + errString + '\n') - exit(1) - else: - try: - open(fn, 'r') - except ValueError: - print('\n' + errString + '\n') - exit(1) - - -def checkDir(dir: str, errString: str) -> None: - """ - Checks that directory exists and is a directory - :param dir: string of the directory path - :param errString: string of the error in case it is not a directory or doesn't exist - :return: None - """ - if not os.path.isdir(dir): - print('\n' + errString + '\n') - exit(1) - - -def isInRange(val: float, lb: float, ub: float, errString: str) -> None: - """ - Checks that value (val) is between the lower bound (lb) and upper bound (ub), and if not prints an error message - (errString) and exits the program. - :param val: float for the value - :param lb: float for the upper bound - :param ub: float for the lower bound - :param errString: string of the error message to print if the value is out of range - :return: None - """ - if val < lb or val > ub: - print('\n' + errString + '\n') - exit(1) diff --git a/py/input_checking.py b/py/input_checking.py new file mode 100644 index 0000000..4e8d895 --- /dev/null +++ b/py/input_checking.py @@ -0,0 +1,66 @@ +""" +This file contains several standard functions that will be used throughout the program. Each function checks input +and issues an error if there is something wrong. +""" + +import os + + +def required_field(variable_to_test: any, err_string: str) -> None: + """ + If required field variable_to_test is empty, issues an error. Otherwise this does nothing + + :param variable_to_test: Any input type + :param err_string: A string with the error message + :return: None + """ + if variable_to_test is None: + print('\n' + err_string + '\n') + exit(1) + + +def check_file_open(filename: str, err_string: str, required: bool = False) -> None: + """ + Checks that the filename is not empty and that it is indeed a file + :param filename: file name, string + :param err_string: string of the error if it is not a file + :param required: If not required, skips the check + :return: None + """ + if required or filename is not None: + if filename is None: + print('\n' + err_string + '\n') + exit(1) + else: + try: + open(filename, 'r') + except ValueError: + print('\n' + err_string + '\n') + exit(1) + + +def check_dir(directory: str, err_string: str) -> None: + """ + Checks that directory exists and is a directory + :param directory: string of the directory path + :param err_string: string of the error in case it is not a directory or doesn't exist + :return: None + """ + if not os.path.isdir(directory): + print('\n' + err_string + '\n') + exit(1) + + +def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string: str) -> None: + """ + Checks that value (val) is between the lower bound (lb) and upper bound (ub), and if not prints an error message + (errString) and exits the program. + :param value: float for the value + :param lower_bound: float for the upper bound + :param upper_bound: float for the lower bound + :param err_string: string of the error message to print if the value is out of range + :return: None + """ + if value < lower_bound or value > upper_bound: + print('\n' + err_string + '\n') + exit(1) From 94b310eeab6e1fd155518741d325adf2225ee24b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 6 Aug 2020 15:40:41 -0500 Subject: [PATCH 102/323] Started bringing neat_cigar.py up to PEP8 standards --- py/SequenceContainer.py | 10 ++-- py/neat_cigar.py | 105 +++++++++++++++++++++------------------- 2 files changed, 59 insertions(+), 56 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 4f5c349..bd35c33 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -8,7 +8,7 @@ from Bio.Alphabet import IUPAC from py.probability import DiscreteDistribution, poisson_list, quantize_list -from py.neat_cigar import cigar_string +from py.neat_cigar import CigarString MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations @@ -457,7 +457,7 @@ def random_mutations(self): # precompute cigar strings for j in range(len(temp_symbol_string)-self.read_len): - self.all_cigar[i].append(cigar_string(listIn=temp_symbol_string[j:j+self.read_len]).getString()) + self.all_cigar[i].append(CigarString(listIn=temp_symbol_string[j:j + self.read_len]).get_string()) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. corresponding to the unmodified reference genome) @@ -591,11 +591,11 @@ def sample_read(self, sequencingModel, frag_len=None): if totalD > availB: # if not enough bases to fill-in deletions, skip all indel erors continue if expanded_cigar == []: - expanded_cigar = cigar_string(stringIn=myCigar).getList() + expanded_cigar = CigarString(stringIn=myCigar).get_list() fillToGo = totalD - totalI + 1 if fillToGo > 0: try: - extraCigarVal = cigar_string(stringIn=self.all_cigar[my_ploid][r[0]+fillToGo]).getList()[-fillToGo:] + extraCigarVal = CigarString(stringIn=self.all_cigar[my_ploid][r[0] + fillToGo]).get_list()[-fillToGo:] except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors skip_indels = True @@ -645,7 +645,7 @@ def sample_read(self, sequencingModel, frag_len=None): if any_indel_err: if len(expanded_cigar): relevantCigar = (expanded_cigar+extraCigarVal)[:self.read_len] - myCigar = cigar_string(listIn=relevantCigar).getString() + myCigar = CigarString(listIn=relevantCigar).get_string() r[3] = r[3][:self.read_len] diff --git a/py/neat_cigar.py b/py/neat_cigar.py index 8965116..e6f821e 100644 --- a/py/neat_cigar.py +++ b/py/neat_cigar.py @@ -1,95 +1,97 @@ import re -class cigar_string: +class CigarString: def __init__(self, stringIn=None, listIn=None): if stringIn is None and listIn is None: print('\nError: CigarString object not initialized.\n') exit(1) - self.cigarData = [] + self.cigar_data = [] if stringIn is not None: - self.joinCigar(j_stringIn=stringIn) + self.join_cigar(j_string_in=stringIn) if listIn is not None: - self.joinCigar(j_listIn=listIn) + self.join_cigar(j_list_in=listIn) - def stringToList(self, s): + @staticmethod + def string_to_list(string_to_covert: str) -> list: - cigarDat = [] - letters = re.split(r"\d+", s)[1:] - numbers = [int(n) for n in re.findall(r"\d+", s)] - dReserve = 0 + cigar_dat = [] + letters = re.split(r"\d+", string_to_covert)[1:] + numbers = [int(n) for n in re.findall(r"\d+", string_to_covert)] + d_reserve = 0 for i in range(len(letters)): if letters[i] == 'D': - dReserve = numbers[i] + d_reserve = numbers[i] if letters[i] == 'M' or letters[i] == 'I': - if dReserve: - cigarDat += ['D' * dReserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) + if d_reserve: + cigar_dat += ['D' * d_reserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) else: - cigarDat += [letters[i]] * int(numbers[i]) - dReserve = 0 - return cigarDat + cigar_dat += [letters[i]] * int(numbers[i]) + d_reserve = 0 + return cigar_dat - def listToString(self, l): + @staticmethod + def list_to_string(list_to_convert: list) -> str: symbols = '' - currentSym = l[0] - currentCount = 1 - if 'D' in currentSym: - currentSym = currentSym[-1] - for k in range(1, len(l)): - nextSym = l[k] - if len(nextSym) == 1 and nextSym == currentSym: - currentCount += 1 + current_sym = list_to_convert[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(list_to_convert)): + next_sym = list_to_convert[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 else: - symbols += str(currentCount) + currentSym - if 'D' in nextSym: - symbols += str(nextSym.count('D')) + 'D' - currentSym = nextSym[-1] + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + 'D' + current_sym = next_sym[-1] else: - currentSym = nextSym - currentCount = 1 - symbols += str(currentCount) + currentSym + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym return symbols - def getList(self): + def get_list(self): - return self.cigarData + return self.cigar_data - def getString(self): + def get_string(self): - return self.listToString(self.cigarData) + return self.list_to_string(self.cigar_data) - def joinCigar(self, j_stringIn=None, j_listIn=None): + def join_cigar(self, j_string_in=None, j_list_in=None): - if j_stringIn is None and j_listIn is None: + if j_string_in is None and j_list_in is None: print('\nError: Invalid join operation in CigarString\n') exit(1) - if j_stringIn is not None: - self.cigarData += self.stringToList(j_stringIn) + if j_string_in is not None: + self.cigar_data += self.string_to_list(j_string_in) - if j_listIn is not None: - self.cigarData += j_listIn + if j_list_in is not None: + self.cigar_data += j_list_in - def insertCigarElement(self, pos, i_stringIn=None, i_listIn=None): + def insert_cigar_element(self, pos, i_string_in=None, i_list_in=None): - if i_stringIn == None and i_listIn == None: + if i_string_in is None and i_list_in is None: print('\nError: Invalid insertion operation in CigarString\n') exit(1) - if pos < 0 or pos >= len(self.cigarData): + if pos < 0 or pos >= len(self.cigar_data): print('\nError: Invalid insertion position in CigarString\n') exit(1) - if i_stringIn != None: - self.cigarData = self.cigarData[:pos] + self.stringToList(i_stringIn) + self.cigarData[pos:] + if i_string_in is not None: + self.cigar_data = self.cigar_data[:pos] + self.string_to_list(i_string_in) + self.cigar_data[pos:] - if i_listIn != None: - self.cigarData = self.cigarData[:pos] + i_listIn + self.cigarData[pos:] + if i_list_in is not None: + self.cigar_data = self.cigar_data[:pos] + i_list_in + self.cigar_data[pos:] if __name__ == '__main__': @@ -98,6 +100,7 @@ def insertCigarElement(self, pos, i_stringIn=None, i_listIn=None): str1 = '50M10D7I23M' str2 = '10I25M' iPos = 20 - myCigar = CigarString(stringIn=str1) - myCigar.insertCigarElement(iPos, i_stringIn=str2) - print(str1, '+', str2, '[inserted at position', str(iPos) + ']', '=', myCigar.getString()) + my_cigar = CigarString(stringIn=str1) + my_cigar.insert_cigar_element(iPos, i_string_in=str2) + assert(my_cigar.get_string() == "20M10I55M10D7I23M") + print("passed") From eb4ac2e9fce2e408dcc6f8018ad4083483a3cbbd Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 7 Aug 2020 10:59:37 -0500 Subject: [PATCH 103/323] basic pep8 conversion of output_file_writer.py. --- genReads.py | 68 +++--- .../OutputFileWriter.cpython-37.pyc | Bin 7674 -> 0 bytes ...putFileWriter.py => output_file_writer.py} | 226 ++++++++++-------- 3 files changed, 158 insertions(+), 136 deletions(-) delete mode 100644 py/__pycache__/OutputFileWriter.cpython-37.pyc rename py/{OutputFileWriter.py => output_file_writer.py} (52%) diff --git a/genReads.py b/genReads.py index 2b700d4..fe10bfd 100644 --- a/genReads.py +++ b/genReads.py @@ -28,7 +28,7 @@ from py.input_checking import required_field, check_file_open, is_in_range from py.ref_func import index_ref, readRef, getAllRefRegions, partitionRefRegions from py.vcfFunc import parseVCF -from py.OutputFileWriter import OutputFileWriter +from py.output_file_writer import OutputFileWriter from py.probability import DiscreteDistribution, mean_ind_of_weighted_list from py.SequenceContainer import SequenceContainer, ReadContainer, parseInputMutationModel @@ -344,9 +344,9 @@ def main(raw_args=None): corrected_nJobs = 1 # initialize output files (part II) - OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, BAM_header=bamHeader, VCF_header=vcfHeader, - gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_nJobs), noFASTQ=NO_FASTQ, - FASTA_instead=FASTA_INSTEAD) + OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, bam_header=bamHeader, vcf_header=vcfHeader, + gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_nJobs), no_fastq=NO_FASTQ, + fasta_instead=FASTA_INSTEAD) OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] """************************************************ @@ -646,46 +646,46 @@ def main(raw_args=None): myRefIndex = indices_by_refName[refIndex[RI][0]] if len(myReadData) == 1: if NO_FASTQ != True: - OFW.writeFASTQRecord(myReadName, myReadData[0][2], myReadData[0][3]) + OFW.write_fastq_record(myReadName, myReadData[0][2], myReadData[0][3]) if SAVE_BAM: if isUnmapped[0] == False: - OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=0) + OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], sam_flag=0) elif len(myReadData) == 2: if NO_FASTQ != True: - OFW.writeFASTQRecord(myReadName, myReadData[0][2], myReadData[0][3], - read2=myReadData[1][2], qual2=myReadData[1][3]) + OFW.write_fastq_record(myReadName, myReadData[0][2], myReadData[0][3], + read2=myReadData[1][2], qual2=myReadData[1][3]) if SAVE_BAM: if isUnmapped[0] == False and isUnmapped[1] == False: - OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], samFlag=99, - matePos=myReadData[1][0]) - OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[1][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - samFlag=147, matePos=myReadData[0][0]) + OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], sam_flag=99, + mate_pos=myReadData[1][0]) + OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[1][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + sam_flag=147, mate_pos=myReadData[0][0]) elif isUnmapped[0] == False and isUnmapped[1] == True: - OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], - samFlag=105, matePos=myReadData[0][0]) - OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[0][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - samFlag=149, matePos=myReadData[0][0], alnMapQual=0) + OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], + sam_flag=105, mate_pos=myReadData[0][0]) + OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[0][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + sam_flag=149, mate_pos=myReadData[0][0], aln_map_qual=0) elif isUnmapped[0] == True and isUnmapped[1] == False: - OFW.writeBAMRecord(myRefIndex, myReadName + '/1', myReadData[1][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], - samFlag=101, matePos=myReadData[1][0], alnMapQual=0) - OFW.writeBAMRecord(myRefIndex, myReadName + '/2', myReadData[1][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - samFlag=153, matePos=myReadData[1][0]) + OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[1][0], + myReadData[0][1], myReadData[0][2], myReadData[0][3], + sam_flag=101, mate_pos=myReadData[1][0], aln_map_qual=0) + OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[1][0], + myReadData[1][1], myReadData[1][2], myReadData[1][3], + sam_flag=153, mate_pos=myReadData[1][0]) else: print('\nError: Unexpected number of reads generated...\n') exit(1) # print 'READS:',time.time()-ASDF2_TT if not isLastTime: - OFW.flushBuffers(bamMax=next_start) + OFW.flush_buffers(bam_max=next_start) else: - OFW.flushBuffers(bamMax=end + 1) + OFW.flush_buffers(bam_max=end + 1) # tally up all the variants that got successfully introduced for n in all_inserted_variants: @@ -718,7 +718,7 @@ def main(raw_args=None): myQual = '.' myFilt = 'PASS' # k[0] + 1 because we're going back to 1-based vcf coords - OFW.writeVCFRecord(currentRef, str(int(k[0]) + 1), myID, k[1], k[2], myQual, myFilt, k[4]) + OFW.write_vcf_record(currentRef, str(int(k[0]) + 1), myID, k[1], k[2], myQual, myFilt, k[4]) # break @@ -727,13 +727,13 @@ def main(raw_args=None): print('writing unmapped reads to bam file...') for umr in unmapped_records: if PAIRED_END: - OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], matePos=0, - alnMapQual=0) + OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], mate_pos=0, + aln_map_qual=0) else: - OFW.writeBAMRecord(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], samFlag=umr[2], alnMapQual=0) + OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], aln_map_qual=0) # close output files - OFW.closeFiles() + OFW.close_files() if __name__ == '__main__': main() diff --git a/py/__pycache__/OutputFileWriter.cpython-37.pyc b/py/__pycache__/OutputFileWriter.cpython-37.pyc deleted file mode 100644 index 23a59c87c9f4686562243875158005cd375c2c29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7674 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 diff --git a/py/OutputFileWriter.py b/py/output_file_writer.py similarity index 52% rename from py/OutputFileWriter.py rename to py/output_file_writer.py index 2904292..6301d48 100644 --- a/py/OutputFileWriter.py +++ b/py/output_file_writer.py @@ -14,22 +14,37 @@ BAM_COMPRESSION_LEVEL = 6 - - -def RC(s): - # return the reverse complement of a string - RC_DICT = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} - return ''.join(RC_DICT[n] for n in s[::-1]) +def reverse_complement(dna_string: str) -> str: + """ + Return the reverse complement of a string from a DNA strand + :param dna_string: string of DNA + :return: the reverse compliment of the above string + """ + rc_dict = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} + return ''.join(rc_dict[n] for n in dna_string[::-1]) # SAMtools reg2bin function -def reg2bin(a, b): - b -= 1 - if (a >> 14 == b >> 14): return ((1 << 15) - 1) // 7 + (a >> 14) - if (a >> 17 == b >> 17): return ((1 << 12) - 1) // 7 + (a >> 17) - if (a >> 20 == b >> 20): return ((1 << 9) - 1) // 7 + (a >> 20) - if (a >> 23 == b >> 23): return ((1 << 6) - 1) // 7 + (a >> 23) - if (a >> 26 == b >> 26): return ((1 << 3) - 1) // 7 + (a >> 26) +def reg2bin(beg: int, end: int): + """ + Finds the largest superset bin of region. Numeric values taken from hts-specs + Note: description of this function taken from source code for bamnostic.bai + (https://bamnostic.readthedocs.io/en/latest/_modules/bamnostic/bai.html) + :param beg: inclusive beginning position of region + :param end: exclusive end position of region + :return: distinct bin ID or largest superset bin of region + """ + end -= 1 + if beg >> 14 == end >> 14: + return ((1 << 15) - 1) // 7 + (beg >> 14) + if beg >> 17 == end >> 17: + return ((1 << 12) - 1) // 7 + (beg >> 17) + if beg >> 20 == end >> 20: + return ((1 << 9) - 1) // 7 + (beg >> 20) + if beg >> 23 == end >> 23: + return ((1 << 6) - 1) // 7 + (beg >> 23) + if beg >> 26 == end >> 26: + return ((1 << 3) - 1) // 7 + (beg >> 26) return 0 @@ -48,27 +63,27 @@ def reg2bin(a, b): # gzipped = True for compressed FASTQ/VCF, False for uncompressed # class OutputFileWriter: - def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gzipped=False, jobTuple=(1, 1), - noFASTQ=False, FASTA_instead=False): - - jobSuffix = '' - if jobTuple[1] > 1: - jsl = len(str(jobTuple[1])) - jsb = '0' * (jsl - len(str(jobTuple[0]))) - jobSuffix = '.job' + jsb + str(jobTuple[0]) + 'of' + str(jobTuple[1]) - - self.FASTA_instead = FASTA_instead - if FASTA_instead: - fq1 = outPrefix + '_read1.fa' + jobSuffix - fq2 = outPrefix + '_read2.fa' + jobSuffix + def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, gzipped=False, job_tuple=(1, 1), + no_fastq=False, fasta_instead=False): + + job_suffix = '' + if job_tuple[1] > 1: + jsl = len(str(job_tuple[1])) + jsb = '0' * (jsl - len(str(job_tuple[0]))) + job_suffix = '.job' + jsb + str(job_tuple[0]) + 'of' + str(job_tuple[1]) + + self.fasta_instead = fasta_instead + if fasta_instead: + fq1 = out_prefix + '_read1.fa' + job_suffix + fq2 = out_prefix + '_read2.fa' + job_suffix else: - fq1 = outPrefix + '_read1.fq' + jobSuffix - fq2 = outPrefix + '_read2.fq' + jobSuffix - bam = outPrefix + '_golden.bam' + jobSuffix - vcf = outPrefix + '_golden.vcf' + jobSuffix + fq1 = out_prefix + '_read1.fq' + job_suffix + fq2 = out_prefix + '_read2.fq' + job_suffix + bam = out_prefix + '_golden.bam' + job_suffix + vcf = out_prefix + '_golden.vcf' + job_suffix - self.noFASTQ = noFASTQ - if not self.noFASTQ: + self.no_fastq = no_fastq + if not self.no_fastq: if gzipped: self.fq1_file = gzip.open(fq1 + '.gz', 'wb') else: @@ -85,27 +100,32 @@ def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gz # VCF OUTPUT # self.vcf_file = None - if VCF_header != None: + if vcf_header is not None: if gzipped: self.vcf_file = gzip.open(vcf + '.gz', 'wb') else: self.vcf_file = open(vcf, 'wb') # WRITE VCF HEADER (if parallel: only for first job) - if jobTuple[0] == 1: + if job_tuple[0] == 1: self.vcf_file.write('##fileformat=VCFv4.1\n'.encode('utf-8')) - reference = '##reference=' + VCF_header[0] + '\n' + reference = '##reference=' + vcf_header[0] + '\n' self.vcf_file.write(reference.encode('utf-8')) self.vcf_file.write('##INFO=\n'.encode('utf-8')) - self.vcf_file.write('##INFO=\n'.encode('utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode('utf-8')) # self.vcf_file.write('##INFO=\n') self.vcf_file.write( - '##INFO=\n'.encode('utf-8')) + '##INFO=\n'.encode( + 'utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode( + 'utf-8')) self.vcf_file.write( - '##INFO=\n'.encode('utf-8')) - self.vcf_file.write('##INFO=\n'.encode('utf-8')) + '##INFO=\n'.encode('utf-8')) self.vcf_file.write( - '##INFO=\n'.encode('utf-8')) + '##INFO=\n'.encode( + 'utf-8')) self.vcf_file.write('##ALT=\n'.encode('utf-8')) self.vcf_file.write('##ALT=\n'.encode('utf-8')) self.vcf_file.write('##ALT=\n'.encode('utf-8')) @@ -119,23 +139,23 @@ def __init__(self, outPrefix, paired=False, BAM_header=None, VCF_header=None, gz # BAM OUTPUT # self.bam_file = None - if BAM_header != None: + if bam_header is not None: self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) # WRITE BAM HEADER (if parallel: only for first job) - if True or jobTuple[0] == 1: + if True or job_tuple[0] == 1: self.bam_file.write("BAM\1") header = '@HD\tVN:1.5\tSO:coordinate\n' - for n in BAM_header[0]: + for n in bam_header[0]: header += '@SQ\tSN:' + n[0] + '\tLN:' + str(n[3]) + '\n' header += '@RG\tID:NEAT\tSM:NEAT\tLB:NEAT\tPL:NEAT\n' - headerBytes = len(header) - numRefs = len(BAM_header[0]) - self.bam_file.write(pack('' + readName + '/1\n' + read1 + '\n') - if read2 != None: - self.fq2_buffer.append('>' + readName + '/2\n' + RC(read2) + '\n') + def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None): + if self.fasta_instead: + self.fq1_buffer.append('>' + read_name + '/1\n' + read1 + '\n') + if read2 is not None: + self.fq2_buffer.append('>' + read_name + '/2\n' + reverse_complement(read2) + '\n') else: - self.fq1_buffer.append('@' + readName + '/1\n' + read1 + '\n+\n' + qual1 + '\n') - if read2 != None: - self.fq2_buffer.append('@' + readName + '/2\n' + RC(read2) + '\n+\n' + qual2[::-1] + '\n') + self.fq1_buffer.append('@' + read_name + '/1\n' + read1 + '\n+\n' + qual1 + '\n') + if read2 is not None: + self.fq2_buffer.append( + '@' + read_name + '/2\n' + reverse_complement(read2) + '\n+\n' + qual2[::-1] + '\n') - def writeVCFRecord(self, chrom, pos, idStr, ref, alt, qual, filt, info): + def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): self.vcf_file.write( - str(chrom) + '\t' + str(pos) + '\t' + str(idStr) + '\t' + str(ref) + '\t' + str(alt) + '\t' + str( + str(chrom) + '\t' + str(pos) + '\t' + str(id_str) + '\t' + str(ref) + '\t' + str(alt) + '\t' + str( qual) + '\t' + str(filt) + '\t' + str(info) + '\n') - def writeBAMRecord(self, refID, readName, pos_0, cigar, seq, qual, samFlag, matePos=None, alnMapQual=70): + def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, mate_pos=None, aln_map_qual=70): - myBin = reg2bin(pos_0, pos_0 + len(seq)) - # myBin = 0 # or just use a dummy value, does this actually matter? + my_bin = reg2bin(pos_0, pos_0 + len(seq)) + # my_bin = 0 # or just use a dummy value, does this actually matter? - myMapQual = alnMapQual + my_map_qual = aln_map_qual cig_letters = re.split(r"\d+", cigar)[1:] cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] cig_ops = len(cig_letters) - next_refID = refID - if matePos == None: + next_ref_id = ref_id + if mate_pos is None: next_pos = 0 my_tlen = 0 else: - next_pos = matePos + next_pos = mate_pos if pos_0 < next_pos: my_tlen = next_pos + len(seq) - pos_0 else: my_tlen = -pos_0 - len(seq) + next_pos - encodedCig = bytearray() + encoded_cig = bytearray() for i in range(cig_ops): - encodedCig.extend(pack('= BUFFER_BATCH_SIZE or len(self.bam_buffer) >= BUFFER_BATCH_SIZE) or ( - len(self.fq1_buffer) and lastTime) or (len(self.bam_buffer) and lastTime): + len(self.fq1_buffer) and last_time) or (len(self.bam_buffer) and last_time): # fq - if not self.noFASTQ: + if not self.no_fastq: self.fq1_file.write(''.join(self.fq1_buffer)) if len(self.fq2_buffer): self.fq2_file.write(''.join(self.fq2_buffer)) # bam if len(self.bam_buffer): bam_data = sorted(self.bam_buffer) - if lastTime: + if last_time: self.bam_file.write(b''.join([n[2] for n in bam_data])) self.bam_buffer = [] else: @@ -253,7 +275,7 @@ def flushBuffers(self, bamMax=None, lastTime=False): for i in range(0, len(bam_data)): # if we are from previous reference, or have coordinates lower # than next window position, it's safe to write out to file - if bam_data[i][0] != bam_data[-1][0] or bam_data[i][1] < bamMax: + if bam_data[i][0] != bam_data[-1][0] or bam_data[i][1] < bam_max: ind_to_stop_at = i + 1 else: break @@ -266,13 +288,13 @@ def flushBuffers(self, bamMax=None, lastTime=False): self.fq1_buffer = [] self.fq2_buffer = [] - def closeFiles(self): - self.flushBuffers(lastTime=True) - if not self.noFASTQ: + def close_files(self): + self.flush_buffers(last_time=True) + if not self.no_fastq: self.fq1_file.close() - if self.fq2_file != None: + if self.fq2_file is not None: self.fq2_file.close() - if self.vcf_file != None: + if self.vcf_file is not None: self.vcf_file.close() - if self.bam_file != None: + if self.bam_file is not None: self.bam_file.close() From af3bdfeba91b587e091ac24c3a37fa3d1703d77a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 7 Aug 2020 12:14:11 -0500 Subject: [PATCH 104/323] refactoring probability.py to PEP8 standards --- genReads.py | 2 +- py/SequenceContainer.py | 10 +-- py/probability.py | 126 +++++++++++++++++----------------- utilities/genSeqErrorModel.py | 2 +- 4 files changed, 70 insertions(+), 70 deletions(-) diff --git a/genReads.py b/genReads.py index fe10bfd..2eea68e 100644 --- a/genReads.py +++ b/genReads.py @@ -227,7 +227,7 @@ def main(raw_args=None): if PAIRED_END and PAIRED_END_ARTIFICIAL: print('Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) if FRAGMENT_STD == 0: - FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerateVal=FRAGMENT_SIZE) + FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerate_val=FRAGMENT_SIZE) else: potential_vals = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) FRAGLEN_VALS = [] diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index bd35c33..cf23c89 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -120,9 +120,9 @@ def init_coverage(self, coverage_data, frag_dist=None): else: current_thresh = 0. index_list = [0] - for j in range(len(frag_dist.cumP)): - if frag_dist.cumP[j] >= current_thresh + COV_FRAGLEN_PERCENTILE/100.0: - current_thresh = frag_dist.cumP[j] + for j in range(len(frag_dist.cum_prob)): + if frag_dist.cum_prob[j] >= current_thresh + COV_FRAGLEN_PERCENTILE/100.0: + current_thresh = frag_dist.cum_prob[j] index_list.append(j) flq = [frag_dist.values[nnn] for nnn in index_list] if frag_dist.values[-1] not in flq: @@ -718,7 +718,7 @@ def __init__(self, read_len, errorModel, reScaledError): self.probDistByPosByPrevQ1.append([]) for j in range(len(initQ1[0])): if np.sum(probQ1[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) else: self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j], Qscores)) @@ -729,7 +729,7 @@ def __init__(self, read_len, errorModel, reScaledError): self.probDistByPosByPrevQ2.append([]) for j in range(len(initQ2[0])): if np.sum(probQ2[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerateVal=Qscores[j])) + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) else: self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], Qscores)) diff --git a/py/probability.py b/py/probability.py index f7d0355..5fb39f3 100644 --- a/py/probability.py +++ b/py/probability.py @@ -6,17 +6,17 @@ LOW_PROB_THRESH = 1e-12 -def mean_ind_of_weighted_list(l): - myMid = sum(l) / 2.0 - mySum = 0.0 - for i in range(len(l)): - mySum += l[i] - if mySum >= myMid: +def mean_ind_of_weighted_list(candidate_list: list) -> int: + my_mid = sum(candidate_list) / 2.0 + my_sum = 0.0 + for i in range(len(candidate_list)): + my_sum += candidate_list[i] + if my_sum >= my_mid: return i class DiscreteDistribution: - def __init__(self, weights, values, degenerateVal=None, method='bisect'): + def __init__(self, weights, values, degenerate_val=None, method='bisect'): # some sanity checking if not len(weights) or not len(values): @@ -24,18 +24,18 @@ def __init__(self, weights, values, degenerateVal=None, method='bisect'): exit(1) self.method = method - sumWeight = float(sum(weights)) + sum_weight = float(sum(weights)) # if probability of all input events is 0, consider it degenerate and always return the first value - if sumWeight < LOW_PROB_THRESH: + if sum_weight < LOW_PROB_THRESH: self.degenerate = values[0] else: - self.weights = [n / sumWeight for n in weights] + self.weights = [n / sum_weight for n in weights] self.values = copy.deepcopy(values) if len(self.values) != len(self.weights): print('\nError: length and weights and values vectors must be the same.\n') exit(1) - self.degenerate = degenerateVal + self.degenerate = degenerate_val # prune values with probability too low to be worth using [DOESN'T REALLY IMPROVE PERFORMANCE] ####if self.degenerate != None: #### for i in xrange(len(self.weights)-1,-1,-1): @@ -47,101 +47,101 @@ def __init__(self, weights, values, degenerateVal=None, method='bisect'): #### exit(1) if self.method == 'alias': - K = len(self.weights) - q = np.zeros(K) - J = np.zeros(K, dtype=np.int) + len_weights = len(self.weights) + prob_vector = np.zeros(len_weights) + count_vector = np.zeros(len_weights, dtype=np.int) smaller = [] larger = [] for kk, prob in enumerate(self.weights): - q[kk] = K * prob - if q[kk] < 1.0: + prob_vector[kk] = len_weights * prob + if prob_vector[kk] < 1.0: smaller.append(kk) else: larger.append(kk) while len(smaller) > 0 and len(larger) > 0: small = smaller.pop() large = larger.pop() - J[small] = large - q[large] = (q[large] + q[small]) - 1.0 - if q[large] < 1.0: + count_vector[small] = large + prob_vector[large] = (prob_vector[large] + prob_vector[small]) - 1.0 + if prob_vector[large] < 1.0: smaller.append(large) else: larger.append(large) - self.a1 = len(J) - 1 - self.a2 = J.tolist() - self.a3 = q.tolist() + self.a1 = len(count_vector) - 1 + self.a2 = count_vector.tolist() + self.a3 = prob_vector.tolist() elif self.method == 'bisect': - self.cumP = np.cumsum(self.weights).tolist()[:-1] - self.cumP.insert(0, 0.) + self.cum_prob = np.cumsum(self.weights).tolist()[:-1] + self.cum_prob.insert(0, 0.) def __str__(self): return str(self.weights) + ' ' + str(self.values) + ' ' + self.method def sample(self): - if self.degenerate != None: + if self.degenerate is not None: return self.degenerate else: if self.method == 'alias': - r1 = random.randint(0, self.a1) - r2 = random.random() - if r2 < self.a3[r1]: - return self.values[r1] + random1 = random.randint(0, self.a1) + random2 = random.random() + if random2 < self.a3[random1]: + return self.values[random1] else: - return self.values[self.a2[r1]] + return self.values[self.a2[random1]] elif self.method == 'bisect': r = random.random() - return self.values[bisect.bisect(self.cumP, r) - 1] + return self.values[bisect.bisect(self.cum_prob, r) - 1] # takes k_range, lambda, [0,1,2,..], returns a DiscreteDistribution object with the corresponding to a poisson distribution -def poisson_list(k_range, l): - MIN_WEIGHT = 1e-12 - if l < MIN_WEIGHT: - return DiscreteDistribution([1], [0], degenerateVal=0) - logFactorial_list = [0.0] +def poisson_list(k_range, input_lambda): + min_weight = 1e-12 + if input_lambda < min_weight: + return DiscreteDistribution([1], [0], degenerate_val=0) + log_factorial_list = [0.0] for k in k_range[1:]: - logFactorial_list.append(np.log(float(k)) + logFactorial_list[k - 1]) - w_range = [np.exp(k * np.log(l) - l - logFactorial_list[k]) for k in k_range] - w_range = [n for n in w_range if n >= MIN_WEIGHT] + log_factorial_list.append(np.log(float(k)) + log_factorial_list[k - 1]) + w_range = [np.exp(k * np.log(input_lambda) - input_lambda - log_factorial_list[k]) for k in k_range] + w_range = [n for n in w_range if n >= min_weight] if len(w_range) <= 1: - return DiscreteDistribution([1], [0], degenerateVal=0) + return DiscreteDistribution([1], [0], degenerate_val=0) return DiscreteDistribution(w_range, k_range[:len(w_range)]) # quantize a list of values into blocks -def quantize_list(l): - MIN_PROB = 1e-12 - QUANT_BLOCKS = 10 - suml = float(sum(l)) - ls = sorted([n for n in l if n >= MIN_PROB * suml]) - if len(ls) == 0: +def quantize_list(list_to_quantize): + min_prob = 1e-12 + quant_blocks = 10 + sum_list = float(sum(list_to_quantize)) + sorted_list = sorted([n for n in list_to_quantize if n >= min_prob * sum_list]) + if len(sorted_list) == 0: return None qi = [] - for i in range(QUANT_BLOCKS): - # qi.append(ls[int((i)*(len(ls)/float(QUANT_BLOCKS)))]) - qi.append(ls[0] + (i / float(QUANT_BLOCKS)) * (ls[-1] - ls[0])) + for i in range(quant_blocks): + # qi.append(sorted_list[int((i)*(len(sorted_list)/float(quant_blocks)))]) + qi.append(sorted_list[0] + (i / float(quant_blocks)) * (sorted_list[-1] - sorted_list[0])) qi.append(1e12) - runningList = [] - prevBi = None - previ = None - for i in range(len(l)): - if l[i] >= MIN_PROB * suml: - bi = bisect.bisect(qi, l[i]) + running_list = [] + prev_bi = None + prev_i = None + for i in range(len(list_to_quantize)): + if list_to_quantize[i] >= min_prob * sum_list: + bi = bisect.bisect(qi, list_to_quantize[i]) # print i, l[i], qi[bi-1] - if prevBi != None: - if bi == prevBi and previ == i - 1: - runningList[-1][1] += 1 + if prev_bi is not None: + if bi == prev_bi and prev_i == i - 1: + running_list[-1][1] += 1 else: - runningList.append([i, i, qi[bi - 1]]) + running_list.append([i, i, qi[bi - 1]]) else: - runningList.append([i, i, qi[bi - 1]]) - prevBi = bi - previ = i - return runningList + running_list.append([i, i, qi[bi - 1]]) + prev_bi = bi + prev_i = i + return running_list diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index a5535b0..467fd38 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -203,7 +203,7 @@ def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): prob_dist_by_pos_by_prev_q.append([]) for j in range(len(init_q[0])): if np.sum(prob_q[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - prob_dist_by_pos_by_prev_q[-1].append(DiscreteDistribution([1], [q_scores[j]], degenerateVal=q_scores[j])) + prob_dist_by_pos_by_prev_q[-1].append(DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: prob_dist_by_pos_by_prev_q[-1].append(DiscreteDistribution(prob_q[i][j], q_scores)) From 131110f920eeb596279e6a4d18874a862abc57b2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 7 Aug 2020 12:32:27 -0500 Subject: [PATCH 105/323] Some basic PEP8 refactoring of ref_func.py --- genReads.py | 8 +- py/ref_func.py | 231 ++++++++++++++++++++++++------------------------- 2 files changed, 118 insertions(+), 121 deletions(-) diff --git a/genReads.py b/genReads.py index 2eea68e..0cc265e 100644 --- a/genReads.py +++ b/genReads.py @@ -26,7 +26,7 @@ import argparse from py.input_checking import required_field, check_file_open, is_in_range -from py.ref_func import index_ref, readRef, getAllRefRegions, partitionRefRegions +from py.ref_func import index_ref, read_ref, get_all_ref_regions, partition_ref_regions from py.vcfFunc import parseVCF from py.output_file_writer import OutputFileWriter from py.probability import DiscreteDistribution, mean_ind_of_weighted_list @@ -330,8 +330,8 @@ def main(raw_args=None): # If processing jobs in parallel, precompute the independent regions that can be process separately if NJOBS > 1: - parallelRegionList = getAllRefRegions(REFERENCE, refIndex, N_HANDLING, saveOutput=SAVE_NON_N) - (myRefs, myRegions) = partitionRefRegions(parallelRegionList, refIndex, MYJOB, NJOBS) + parallelRegionList = get_all_ref_regions(REFERENCE, refIndex, N_HANDLING, save_output=SAVE_NON_N) + (myRefs, myRegions) = partition_ref_regions(parallelRegionList, refIndex, MYJOB, NJOBS) if not len(myRegions): print('This job id has no regions to process, exiting...') exit(1) @@ -359,7 +359,7 @@ def main(raw_args=None): for RI in range(len(refIndex)): # read in reference sequence and notate blocks of Ns - (refSequence, N_regions) = readRef(REFERENCE, refIndex[RI], N_HANDLING) + (refSequence, N_regions) = read_ref(REFERENCE, refIndex[RI], N_HANDLING) # if we're processing jobs in parallel only take the regions relevant for the current job if NJOBS > 1: diff --git a/py/ref_func.py b/py/ref_func.py index e00f383..6ff8c8a 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -7,58 +7,58 @@ # Index reference fasta -def index_ref(refPath): +def index_ref(reference_path): tt = time.time() - fn = None - if os.path.isfile(refPath + 'i'): - print('found index ' + refPath + 'i') - fn = refPath + 'i' - if os.path.isfile(refPath + '.fai'): - print('found index ' + refPath + '.fai') - fn = refPath + '.fai' + filename = None + if os.path.isfile(reference_path + 'i'): + print('found index ' + reference_path + 'i') + filename = reference_path + 'i' + if os.path.isfile(reference_path + '.fai'): + print('found index ' + reference_path + '.fai') + filename = reference_path + '.fai' ref_inds = [] - if fn is not None: - fai = open(fn, 'r') + if filename is not None: + fai = open(filename, 'r') for line in fai: splt = line[:-1].split('\t') - seqLen = int(splt[1]) + seq_len = int(splt[1]) offset = int(splt[2]) - lineLn = int(splt[3]) - nLines = seqLen // lineLn - if seqLen % lineLn != 0: - nLines += 1 - ref_inds.append((splt[0], offset, offset + seqLen + nLines, seqLen)) + line_ln = int(splt[3]) + n_lines = seq_len // line_ln + if seq_len % line_ln != 0: + n_lines += 1 + ref_inds.append((splt[0], offset, offset + seq_len + n_lines, seq_len)) fai.close() return ref_inds sys.stdout.write('index not found, creating one... ') sys.stdout.flush() - refFile = open(refPath, 'r') - prevR = None - prevP = None - seqLen = 0 + ref_file = open(reference_path, 'r') + prev_r = None + prev_p = None + seq_len = 0 while 1: - data = refFile.readline() + data = ref_file.readline() if not data: - ref_inds.append((prevR, prevP, refFile.tell() - len(data), seqLen)) + ref_inds.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) break if data[0] == '>': - if prevP is not None: - ref_inds.append((prevR, prevP, refFile.tell() - len(data), seqLen)) - seqLen = 0 - prevP = refFile.tell() - prevR = data[1:-1] + if prev_p is not None: + ref_inds.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) + seq_len = 0 + prev_p = ref_file.tell() + prev_r = data[1:-1] else: - seqLen += len(data) - 1 - refFile.close() + seq_len += len(data) - 1 + ref_file.close() print('{0:.3f} (sec)'.format(time.time() - tt)) return ref_inds -def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): +def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] tt = time.time() @@ -66,129 +66,126 @@ def readRef(refPath, ref_inds_i, N_handling, N_unknowns=True, quiet=False): sys.stdout.write('reading ' + ref_inds_i[0] + '... ') sys.stdout.flush() - refFile = open(refPath, 'r') - refFile.seek(ref_inds_i[1]) - myDat = ''.join(refFile.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) - myDat = Seq(myDat.upper(), IUPAC.unambiguous_dna) - myDat = myDat.tomutable() + ref_file = open(ref_path, 'r') + ref_file.seek(ref_inds_i[1]) + my_dat = ''.join(ref_file.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) + my_dat = Seq(my_dat.upper(), IUPAC.unambiguous_dna) + my_dat = my_dat.tomutable() # find N regions - # data explanation: myDat[N_atlas[0][0]:N_atlas[0][1]] = solid block of Ns - prevNI = 0 - nCount = 0 - N_atlas = [] - for i in range(len(myDat)): - if myDat[i] == 'N' or (N_unknowns and myDat[i] not in OK_CHR_ORD): - if nCount == 0: - prevNI = i - nCount += 1 - if i == len(myDat) - 1: - N_atlas.append((prevNI, prevNI + nCount)) + # data explanation: my_dat[n_atlas[0][0]:n_atlas[0][1]] = solid block of Ns + prev_ni = 0 + n_count = 0 + n_atlas = [] + for i in range(len(my_dat)): + if my_dat[i] == 'N' or (n_unknowns and my_dat[i] not in OK_CHR_ORD): + if n_count == 0: + prev_ni = i + n_count += 1 + if i == len(my_dat) - 1: + n_atlas.append((prev_ni, prev_ni + n_count)) else: - if nCount > 0: - N_atlas.append((prevNI, prevNI + nCount)) - nCount = 0 + if n_count > 0: + n_atlas.append((prev_ni, prev_ni + n_count)) + n_count = 0 # handle N base-calls as desired - N_info = {} - N_info['all'] = [] - N_info['big'] = [] - N_info['non_N'] = [] - if N_handling[0] == 'random': - for region in N_atlas: - N_info['all'].extend(region) - if region[1] - region[0] <= N_handling[1]: + n_info = {'all': [], 'big': [], 'non_N': []} + if n_handling[0] == 'random': + for region in n_atlas: + n_info['all'].extend(region) + if region[1] - region[0] <= n_handling[1]: for i in range(region[0], region[1]): - myDat[i] = random.choice(ALLOWED_NUCL) + my_dat[i] = random.choice(ALLOWED_NUCL) else: - N_info['big'].extend(region) - elif N_handling[0] == 'allChr' and N_handling[2] in OK_CHR_ORD: - for region in N_atlas: - N_info['all'].extend(region) - if region[1] - region[0] <= N_handling[1]: + n_info['big'].extend(region) + elif n_handling[0] == 'allChr' and n_handling[2] in OK_CHR_ORD: + for region in n_atlas: + n_info['all'].extend(region) + if region[1] - region[0] <= n_handling[1]: for i in range(region[0], region[1]): - myDat[i] = N_handling[2] + my_dat[i] = n_handling[2] else: - N_info['big'].extend(region) - elif N_handling[0] == 'ignore': - for region in N_atlas: - N_info['all'].extend(region) - N_info['big'].extend(region) + n_info['big'].extend(region) + elif n_handling[0] == 'ignore': + for region in n_atlas: + n_info['all'].extend(region) + n_info['big'].extend(region) else: print('\nERROR: UNKNOWN N_HANDLING MODE\n') exit(1) - habitableRegions = [] - if N_info['big'] == []: - N_info['non_N'] = [(0, len(myDat))] + habitable_regions = [] + if not n_info['big']: + n_info['non_N'] = [(0, len(my_dat))] else: - for i in range(0, len(N_info['big']), 2): + for i in range(0, len(n_info['big']), 2): if i == 0: - habitableRegions.append((0, N_info['big'][0])) + habitable_regions.append((0, n_info['big'][0])) else: - habitableRegions.append((N_info['big'][i - 1], N_info['big'][i])) - habitableRegions.append((N_info['big'][-1], len(myDat))) - for n in habitableRegions: + habitable_regions.append((n_info['big'][i - 1], n_info['big'][i])) + habitable_regions.append((n_info['big'][-1], len(my_dat))) + for n in habitable_regions: if n[0] != n[1]: - N_info['non_N'].append(n) + n_info['non_N'].append(n) if not quiet: print('{0:.3f} (sec)'.format(time.time() - tt)) - return (myDat, N_info) + return my_dat, n_info # find all non-N regions in reference sequence ahead of time, for computing jobs in parallel -def getAllRefRegions(refPath, ref_inds, N_handling, saveOutput=False): - outRegions = {} - fn = refPath + '.nnr' - if os.path.isfile(fn) and not (saveOutput): +def get_all_ref_regions(ref_path, ref_inds, n_handling, save_output=False): + out_regions = {} + fn = ref_path + '.nnr' + if os.path.isfile(fn) and not (save_output): print('found list of preidentified non-N regions...') f = open(fn, 'r') for line in f: splt = line.strip().split('\t') - if splt[0] not in outRegions: - outRegions[splt[0]] = [] - outRegions[splt[0]].append((int(splt[1]), int(splt[2]))) + if splt[0] not in out_regions: + out_regions[splt[0]] = [] + out_regions[splt[0]].append((int(splt[1]), int(splt[2]))) f.close() - return outRegions + return out_regions else: print('enumerating all non-N regions in reference sequence...') for RI in range(len(ref_inds)): - (refSequence, N_regions) = readRef(refPath, ref_inds[RI], N_handling, quiet=True) - refName = ref_inds[RI][0] - outRegions[refName] = [n for n in N_regions['non_N']] - if saveOutput: + (refSequence, N_regions) = read_ref(ref_path, ref_inds[RI], n_handling, quiet=True) + ref_name = ref_inds[RI][0] + out_regions[ref_name] = [n for n in N_regions['non_N']] + if save_output: f = open(fn, 'w') - for k in outRegions.keys(): - for n in outRegions[k]: + for k in out_regions.keys(): + for n in out_regions[k]: f.write(k + '\t' + str(n[0]) + '\t' + str(n[1]) + '\n') f.close() - return outRegions + return out_regions # find which of the non-N regions are going to be used for this job -def partitionRefRegions(inRegions, ref_inds, myjob, njobs): - totSize = 0 +def partition_ref_regions(in_regions, ref_inds, my_job, n_jobs): + tot_size = 0 for RI in range(len(ref_inds)): - refName = ref_inds[RI][0] - for region in inRegions[refName]: - totSize += region[1] - region[0] - sizePerJob = int(totSize / float(njobs) - 0.5) - - regionsPerJob = [[] for n in range(njobs)] - refsPerJob = [{} for n in range(njobs)] - currentInd = 0 - currentCount = 0 + ref_name = ref_inds[RI][0] + for region in in_regions[ref_name]: + tot_size += region[1] - region[0] + size_per_job = int(tot_size / float(n_jobs) - 0.5) + + regions_per_job = [[] for n in range(n_jobs)] + refs_per_job = [{} for n in range(n_jobs)] + current_ind = 0 + current_count = 0 for RI in range(len(ref_inds)): - refName = ref_inds[RI][0] - for region in inRegions[refName]: - regionsPerJob[currentInd].append((refName, region[0], region[1])) - refsPerJob[currentInd][refName] = True - currentCount += region[1] - region[0] - if currentCount >= sizePerJob: - currentCount = 0 - currentInd = min([currentInd + 1, njobs - 1]) - - relevantRefs = refsPerJob[myjob - 1].keys() - relevantRegs = regionsPerJob[myjob - 1] - return (relevantRefs, relevantRegs) + ref_name = ref_inds[RI][0] + for region in in_regions[ref_name]: + regions_per_job[current_ind].append((ref_name, region[0], region[1])) + refs_per_job[current_ind][ref_name] = True + current_count += region[1] - region[0] + if current_count >= size_per_job: + current_count = 0 + current_ind = min([current_ind + 1, n_jobs - 1]) + + relevant_refs = refs_per_job[my_job - 1].keys() + relevant_regs = regions_per_job[my_job - 1] + return relevant_refs, relevant_regs From 681f3baf2b3ced275e248e2874b030736b9fece3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 10 Aug 2020 15:26:00 -0500 Subject: [PATCH 106/323] Working on the bacterial wrapper and updating some of SequenceContainer to PEP8 --- bacterial_genreads_wrapper.py | 48 +- py/SequenceContainer.py | 707 +++++++++--------- .../SequenceContainer.cpython-37.pyc | Bin 31358 -> 31477 bytes py/__pycache__/__init__.cpython-37.pyc | Bin 173 -> 146 bytes .../biopython_modified_bgzf.cpython-37.pyc | Bin 2695 -> 2668 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 3011 -> 3114 bytes py/__pycache__/probability.cpython-37.pyc | Bin 3974 -> 4082 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 4818 -> 4837 bytes py/__pycache__/vcfFunc.cpython-37.pyc | Bin 4688 -> 4668 bytes 9 files changed, 381 insertions(+), 374 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index ec1d280..2f427d6 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -2,6 +2,7 @@ import genReads import argparse +from Bio import SeqIO def cull(population: list) -> list: @@ -13,17 +14,6 @@ def cull(population: list) -> list: return population -def create_fasta(neat_input): - """ - The purpose of this function will be to convert the output from neat-genreads into something - that can be an input back into neat genreads - :param neat_input: - :return fasta_output: - """ - fasta_output = None - return fasta_output - - def crossover(population: list) -> list: """ This function will take a list of individuals and do crossover type mixing @@ -34,43 +24,47 @@ def crossover(population: list) -> list: return new_population -def evolve(reference, read_length, output_prefix, pop_size): +def initialize_population(reference: str, pop_size): """ The purpose of this function is to evolve the bacteria :param reference: - :param read_length: - :param output_prefix: - :param cycles: + :param pop_size: :return population: """ - args = ['-r', reference, '-R', str(read_length), '-o', output_prefix] + names = [] + for j in range(pop_size): + names.append("name" + str(j)) population = [] for i in range(pop_size): - new_evolution = genReads.main(args) - new_member = create_fasta(new_evolution) + args = ['-r', reference, '-R', '151', '-o', names[i], '--fa'] + new_member = genReads.main(args) population.append(new_member) return population +def evolve(new_population, param): + pass + + def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', help="Reference file for organism in fasta format") - parser.add_argument('-R', type=int, required=True, metavar='', help="read length") - parser.add_argument('-o', type=str, required=True, metavar='', help="output prefix") parser.add_argument('-C', type=int, required=True, metavar='', help="Number of cycles to run") - parser.add_argument('-p', type=int, required=True, metavar='', help="Population size per cycle") + parser.add_argument('-i', type=int, required=True, metavar='', help="Initial population size") + parser.add_argument('-c', type=float, required=False, metavar='', + help="Percentage of population to cull each cycle (0.5 will keep population relatively stable)", + default=0.5) args = parser.parse_args() - (ref_fasta, read_len, out_pref, population_size) = (args.r, args.R, args.o, args.p) - cycles = args.C + (ref_fasta, init_population_size, cycles) = (args.r, args.i, args.C) + cull_percentage = args.c - old_fasta = ref_fasta - candidate_population = evolve(old_fasta, read_len, out_pref, population_size) + population = initialize_population(ref_fasta, init_population_size) for i in range(cycles): - new_population = cull(candidate_population) + new_population = cull(population) # If all elements get culled, then break and quit if not new_population: break new_population = crossover(new_population) - candidate_population = evolve(new_population) + population = evolve(new_population, 2) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index cf23c89..bfa4bc7 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -10,14 +10,14 @@ from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString -MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position -MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations - -NUCL = ['A','C','G','T'] -TRI_IND = {'AA':0, 'AC':1, 'AG':2, 'AT':3, 'CA':4, 'CC':5, 'CG':6, 'CT':7, - 'GA':8, 'GC':9, 'GG':10, 'GT':11, 'TA':12, 'TC':13, 'TG':14, 'TT':15} -NUC_IND = {'A':0, 'C':1, 'G':2, 'T':3} -ALL_TRI = [NUCL[i]+NUCL[j]+NUCL[k] for i in range(len(NUCL)) for j in range(len(NUCL)) for k in range(len(NUCL))] +MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position +MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations + +NUCL = ['A', 'C', 'G', 'T'] +TRI_IND = {'AA': 0, 'AC': 1, 'AG': 2, 'AT': 3, 'CA': 4, 'CC': 5, 'CG': 6, 'CT': 7, + 'GA': 8, 'GC': 9, 'GG': 10, 'GT': 11, 'TA': 12, 'TC': 13, 'TG': 14, 'TT': 15} +NUC_IND = {'A': 0, 'C': 1, 'G': 2, 'T': 3} +ALL_TRI = [NUCL[i] + NUCL[j] + NUCL[k] for i in range(len(NUCL)) for j in range(len(NUCL)) for k in range(len(NUCL))] ALL_IND = {ALL_TRI[i]: i for i in range(len(ALL_TRI))} # DEBUG @@ -27,101 +27,107 @@ COV_FRAGLEN_PERCENTILE = 10. LARGE_NUMBER = 9999999999 + # # Container for reference sequences, applies mutations # class SequenceContainer: - def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None, only_vcf=False): + def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None, + only_vcf=False): # initialize basic variables self.only_vcf = only_vcf - self.init_basicVars(x_offset, sequence, ploidy, window_overlap, read_len) + self.init_basic_vars(x_offset, sequence, ploidy, window_overlap, read_len) # initialize mutation models - self.init_mutModels(mut_models, mut_rate) + self.init_mut_models(mut_models, mut_rate) # sample the number of variants that will be inserted into each ploid self.init_poisson() - self.indelsToAdd = [n.sample() for n in self.ind_pois] - self.snpsToAdd = [n.sample() for n in self.snp_pois] + self.indels_to_add = [n.sample() for n in self.ind_pois] + self.snps_to_add = [n.sample() for n in self.snp_pois] # initialize trinuc snp bias - self.init_trinucBias() + self.init_trinuc_bias() - def init_basicVars(self, x_offset, sequence, ploidy, window_overlap, read_len): - self.x = x_offset - self.ploidy = ploidy - self.read_len = read_len + def init_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len): + self.x = x_offset + self.ploidy = ploidy + self.read_len = read_len self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] - self.seq_Len = len(sequence) - self.indelList = [[] for n in range(self.ploidy)] - self.snpList = [[] for n in range(self.ploidy)] - self.all_cigar = [[] for n in range(self.ploidy)] - self.FM_pos = [[] for n in range(self.ploidy)] - self.FM_span = [[] for n in range(self.ploidy)] + self.seq_len = len(sequence) + self.indel_list = [[] for n in range(self.ploidy)] + self.snp_list = [[] for n in range(self.ploidy)] + self.all_cigar = [[] for n in range(self.ploidy)] + self.fm_pos = [[] for n in range(self.ploidy)] + self.fm_span = [[] for n in range(self.ploidy)] # blackList[ploid][pos] = 0 safe to insert variant here # blackList[ploid][pos] = 1 indel inserted here # blackList[ploid][pos] = 2 snp inserted here # blackList[ploid][pos] = 3 invalid position for various processing reasons - self.blackList = [np.zeros(self.seq_Len, dtype=' int(self.read_len/2.): - tr_cov_vals[i] = [0.0]*int(self.read_len//2) + tr_cov_vals[i][:-int(self.read_len/2.)] + if len(tr_cov_vals[i]) > int(self.read_len / 2.): + tr_cov_vals[i] = [0.0] * int(self.read_len // 2) + tr_cov_vals[i][:-int(self.read_len / 2.)] # fill in missing indices - tr_cov_vals[i].extend([0.0]*(len(self.sequences[i])-len(tr_cov_vals[i]))) + tr_cov_vals[i].extend([0.0] * (len(self.sequences[i]) - len(tr_cov_vals[i]))) # - covvec = np.cumsum([tr_cov_vals[i][nnn]*gcCov_vals[i][nnn] for nnn in range(len(tr_cov_vals[i]))]) + coverage_vector = np.cumsum([tr_cov_vals[i][nnn] * + gc_cov_vals[i][nnn] for nnn in range(len(tr_cov_vals[i]))]) coverage_vals = [] - for j in range(0,max_coord): - coverage_vals.append(covvec[j+self.read_len] - covvec[j]) - avg_out.append(np.mean(coverage_vals)/float(self.read_len)) + for j in range(0, max_coord): + coverage_vals.append(coverage_vector[j + self.read_len] - coverage_vector[j]) + avg_out.append(np.mean(coverage_vals) / float(self.read_len)) - if frag_dist == None: - self.coverage_distribution.append(DiscreteDistribution(coverage_vals,range(len(coverage_vals)))) + if frag_dist is None: + self.coverage_distribution.append(DiscreteDistribution(coverage_vals, range(len(coverage_vals)))) # fragment length nightmare else: current_thresh = 0. - index_list = [0] + index_list = [0] for j in range(len(frag_dist.cum_prob)): - if frag_dist.cum_prob[j] >= current_thresh + COV_FRAGLEN_PERCENTILE/100.0: + if frag_dist.cum_prob[j] >= current_thresh + COV_FRAGLEN_PERCENTILE / 100.0: current_thresh = frag_dist.cum_prob[j] index_list.append(j) flq = [frag_dist.values[nnn] for nnn in index_list] @@ -131,9 +137,9 @@ def init_coverage(self, coverage_data, frag_dist=None): self.fraglens_ind_map = {} for j in frag_dist.values: - bInd = bisect.bisect(flq,j) - if abs(flq[bInd-1] - j) <= abs(flq[bInd] - j): - self.fraglens_ind_map[j] = flq[bInd-1] + bInd = bisect.bisect(flq, j) + if abs(flq[bInd - 1] - j) <= abs(flq[bInd] - j): + self.fraglens_ind_map[j] = flq[bInd - 1] else: self.fraglens_ind_map[j] = flq[bInd] @@ -143,38 +149,39 @@ def init_coverage(self, coverage_data, frag_dist=None): for j in frag_dist.values: if self.fraglens_ind_map[j] == flv and j > buffer_val: buffer_val = j - max_coord = min([len(self.sequences[i])-buffer_val-1, len(self.all_cigar[i])-buffer_val+self.read_len-2]) - #print 'BEFORE:', len(self.sequences[i])-buffer_val - #print 'AFTER: ', len(self.all_cigar[i])-buffer_val+self.read_len-2 - #print 'AFTER2:', max_coord + max_coord = min([len(self.sequences[i]) - buffer_val - 1, + len(self.all_cigar[i]) - buffer_val + self.read_len - 2]) + # print 'BEFORE:', len(self.sequences[i])-buffer_val + # print 'AFTER: ', len(self.all_cigar[i])-buffer_val+self.read_len-2 + # print 'AFTER2:', max_coord coverage_vals = [] - for j in range(0,max_coord): - coverage_vals.append(covvec[j+self.read_len] - covvec[j] + covvec[j+flv] - covvec[j+flv-self.read_len]) + for j in range(0, max_coord): + coverage_vals.append(coverage_vector[j + self.read_len] - coverage_vector[j] + coverage_vector[j + flv] - coverage_vector[ + j + flv - self.read_len]) # EXPERIMENTAL - #quantized_covVals = quantize_list(coverage_vals) - #self.coverage_distribution[i][flv] = DiscreteDistribution([n[2] for n in quantized_covVals],[(n[0],n[1]) for n in quantized_covVals]) + # quantized_covVals = quantize_list(coverage_vals) + # self.coverage_distribution[i][flv] = DiscreteDistribution([n[2] for n in quantized_covVals],[(n[0],n[1]) for n in quantized_covVals]) # TESTING - #import matplotlib.pyplot as mpl - #print len(coverage_vals),'-->',len(quantized_covVals) - #mpl.figure(0) - #mpl.plot(range(len(coverage_vals)), coverage_vals) - #for qcv in quantized_covVals: + # import matplotlib.pyplot as mpl + # print len(coverage_vals),'-->',len(quantized_covVals) + # mpl.figure(0) + # mpl.plot(range(len(coverage_vals)), coverage_vals) + # for qcv in quantized_covVals: # mpl.plot([qcv[0], qcv[1]+1], [qcv[2],qcv[2]], 'r') - #mpl.show() - #exit(1) + # mpl.show() + # exit(1) self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals, range(len(coverage_vals))) return np.mean(avg_out) - - def init_mutModels(self,mut_models,mut_rate): - if mut_models == []: - ml = [copy.deepcopy(DEFAULT_MODEL_1) for n in range(self.ploidy)] - self.model_data = ml[:self.ploidy] + def init_mut_models(self, mut_models, mut_rate): + if not mut_models: + default_model = [copy.deepcopy(DEFAULT_MODEL_1) for n in range(self.ploidy)] + self.model_data = default_model[:self.ploidy] else: if len(mut_models) != self.ploidy: print('\nError: Number of mutation models recieved is not equal to specified ploidy\n') @@ -187,11 +194,11 @@ def init_mutModels(self,mut_models,mut_rate): if self.mut_rescale == None: self.mut_scalar = 1.0 else: - self.mut_scalar = float(self.mut_rescale)//(mut_rateSum/float(len(self.model_data))) + self.mut_scalar = float(self.mut_rescale) // (mut_rateSum / float(len(self.model_data))) # how are mutations spread to each ploid, based on their specified mut rates? - self.ploid_mut_frac = [float(n[0])/mut_rateSum for n in self.model_data] - self.ploid_mut_prior = DiscreteDistribution(self.ploid_mut_frac,range(self.ploidy)) + self.ploid_mut_frac = [float(n[0]) / mut_rateSum for n in self.model_data] + self.ploid_mut_prior = DiscreteDistribution(self.ploid_mut_frac, range(self.ploidy)) # init mutation models # @@ -205,7 +212,8 @@ def init_mutModels(self,mut_models,mut_rate): # self.models[ploid][7] = p(trinuc mutates) self.models = [] for n in self.model_data: - self.models.append([self.mut_scalar*n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), DiscreteDistribution(n[7], n[6]), []]) + self.models.append([self.mut_scalar * n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), + DiscreteDistribution(n[7], n[6]), []]) for m in n[8]: self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), DiscreteDistribution(m[1], NUCL), @@ -214,166 +222,169 @@ def init_mutModels(self,mut_models,mut_rate): self.models[-1].append([m for m in n[9]]) def init_poisson(self): - ind_l_list = [self.seq_Len*self.models[i][0]*self.models[i][2]*self.ploid_mut_frac[i] for i in range(len(self.models))] - snp_l_list = [self.seq_Len*self.models[i][0]*(1.-self.models[i][2])*self.ploid_mut_frac[i] for i in range(len(self.models))] - k_range = range(int(self.seq_Len*MAX_MUTFRAC)) - self.ind_pois = [poisson_list(k_range,ind_l_list[n]) for n in range(len(self.models))] - self.snp_pois = [poisson_list(k_range,snp_l_list[n]) for n in range(len(self.models))] - - def init_trinucBias(self): + ind_l_list = [self.seq_len * self.models[i][0] * self.models[i][2] * self.ploid_mut_frac[i] for i in + range(len(self.models))] + snp_l_list = [self.seq_len * self.models[i][0] * (1. - self.models[i][2]) * self.ploid_mut_frac[i] for i in + range(len(self.models))] + k_range = range(int(self.seq_len * MAX_MUTFRAC)) + self.ind_pois = [poisson_list(k_range, ind_l_list[n]) for n in range(len(self.models))] + self.snp_pois = [poisson_list(k_range, snp_l_list[n]) for n in range(len(self.models))] + + def init_trinuc_bias(self): # compute mutation positional bias given trinucleotide strings of the sequence (ONLY AFFECTS SNPs) # # note: since indels are added before snps, it's possible these positional biases aren't correctly utilized # at positions affected by indels. At the moment I'm going to consider this negligible. - trinuc_snp_bias = [[0. for n in range(self.seq_Len)] for m in range(self.ploidy)] + trinuc_snp_bias = [[0. for n in range(self.seq_len)] for m in range(self.ploidy)] self.trinuc_bias = [None for n in range(self.ploidy)] for p in range(self.ploidy): - for i in range(self.winBuffer+1,self.seq_Len-1): - trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i-1:i+2])]] - self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.winBuffer+1:self.seq_Len-1],range(self.winBuffer+1,self.seq_Len-1)) + for i in range(self.win_buffer + 1, self.seq_len - 1): + trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i - 1:i + 2])]] + self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.win_buffer + 1:self.seq_len - 1], + range(self.win_buffer + 1, self.seq_len - 1)) def update(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None): # if mutation model is changed, we have to reinitialize it... if ploidy != self.ploidy or mut_rate != self.mut_rescale or mut_models != []: self.ploidy = ploidy self.mut_rescale = mut_rate - self.init_mutModels(mut_models, mut_rate) + self.init_mut_models(mut_models, mut_rate) # if sequence length is different than previous window, we have to redo snp/indel poissons - if len(sequence) != self.seq_Len: - self.seq_Len = len(sequence) + if len(sequence) != self.seq_len: + self.seq_len = len(sequence) self.init_poisson() # basic vars - self.init_basicVars(x_offset, sequence, ploidy, window_overlap, read_len) - self.indelsToAdd = [n.sample() for n in self.ind_pois] - self.snpsToAdd = [n.sample() for n in self.snp_pois] + self.init_basic_vars(x_offset, sequence, ploidy, window_overlap, read_len) + self.indels_to_add = [n.sample() for n in self.ind_pois] + self.snps_to_add = [n.sample() for n in self.snp_pois] # initialize trinuc snp bias if not IGNORE_TRINUC: - self.init_trinucBias() + self.init_trinuc_bias() - def insert_mutations(self, inputList): - for inpV in inputList: - whichPloid = [] + def insert_mutations(self, input_list): + for inpV in input_list: + which_ploid = [] wps = inpV[4][0] - if wps == None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates - whichPloid.append(self.ploid_mut_prior.sample()) - whichAlt = [0] + if wps is None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates + which_ploid.append(self.ploid_mut_prior.sample()) + which_alt = [0] else: if '/' in wps or '|' in wps: if '/' in wps: splt = wps.split('/') else: splt = wps.split('|') - whichPloid = [] - whichAlt = [] + which_ploid = [] + which_alt = [] for i in range(len(splt)): if splt[i] == '1': - whichPloid.append(i) + which_ploid.append(i) # assume we're just using first alt for inserted variants? - whichAlt = [0 for n in whichPloid] - else: # otherwise assume monoploidy - whichPloid = [0] - whichAlt = [0] + which_alt = [0 for n in which_ploid] + else: # otherwise assume monoploidy + which_ploid = [0] + which_alt = [0] # ignore invalid ploids - for i in range(len(whichPloid)-1,-1,-1): - if whichPloid[i] >= self.ploidy: - del whichPloid[i] + for i in range(len(which_ploid) - 1, -1, -1): + if which_ploid[i] >= self.ploidy: + del which_ploid[i] - for i in range(len(whichPloid)): - p = whichPloid[i] - myAlt = inpV[2][whichAlt[i]] - myVar = (inpV[0]-self.x,inpV[1],myAlt) - inLen = max([len(inpV[1]),len(myAlt)]) + for i in range(len(which_ploid)): + p = which_ploid[i] + myAlt = inpV[2][which_alt[i]] + myVar = (inpV[0] - self.x, inpV[1], myAlt) + inLen = max([len(inpV[1]), len(myAlt)]) - if myVar[0] < 0 or myVar[0] >= len(self.blackList[p]): + if myVar[0] < 0 or myVar[0] >= len(self.black_list[p]): print('\nError: Attempting to insert variant out of window bounds:') - print(myVar, '--> blackList[0:' + str(len(self.blackList[p])) + ']\n') + print(myVar, '--> blackList[0:' + str(len(self.black_list[p])) + ']\n') exit(1) if len(inpV[1]) == 1 and len(myAlt) == 1: - if self.blackList[p][myVar[0]]: + if self.black_list[p][myVar[0]]: continue - self.snpList[p].append(myVar) - self.blackList[p][myVar[0]] = 2 + self.snp_list[p].append(myVar) + self.black_list[p][myVar[0]] = 2 else: indel_failed = False - for k in range(myVar[0],myVar[0]+inLen+1): - if k >= len(self.blackList[p]): + for k in range(myVar[0], myVar[0] + inLen + 1): + if k >= len(self.black_list[p]): indel_failed = True continue - if self.blackList[p][k]: + if self.black_list[p][k]: indel_failed = True continue if indel_failed: continue - for k in range(myVar[0],myVar[0]+inLen+1): - self.blackList[p][k] = 1 - self.indelList[p].append(myVar) + for k in range(myVar[0], myVar[0] + inLen + 1): + self.black_list[p][k] = 1 + self.indel_list[p].append(myVar) def random_mutations(self): # add random indels - all_indels = [[] for n in self.sequences] + all_indels = [[] for n in self.sequences] for i in range(self.ploidy): - for j in range(self.indelsToAdd[i]): - if random.random() <= self.models[i][1]: # insert homozygous indel + for j in range(self.indels_to_add[i]): + if random.random() <= self.models[i][1]: # insert homozygous indel whichPloid = range(self.ploidy) - else: # insert heterozygous indel + else: # insert heterozygous indel whichPloid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert indels eventPos = -1 for attempt in range(MAX_ATTEMPTS): - eventPos = random.randint(self.winBuffer,self.seq_Len-1) + eventPos = random.randint(self.win_buffer, self.seq_len - 1) for p in whichPloid: - if self.blackList[p][eventPos]: + if self.black_list[p][eventPos]: eventPos = -1 if eventPos != -1: break if eventPos == -1: continue - if random.random() <= self.models[i][3]: # insertion - inLen = self.models[i][4].sample() + if random.random() <= self.models[i][3]: # insertion + inLen = self.models[i][4].sample() # sequence content of random insertions is uniformly random (change this later, maybe) - inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) + inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) ref_nucl = self.sequences[i][eventPos] - myIndel = (eventPos, ref_nucl, ref_nucl+inSeq) - else: # deletion - inLen = self.models[i][5].sample() - if eventPos+inLen+1 >= len(self.sequences[i]): # skip if deletion too close to boundary + myIndel = (eventPos, ref_nucl, ref_nucl + inSeq) + else: # deletion + inLen = self.models[i][5].sample() + if eventPos + inLen + 1 >= len(self.sequences[i]): # skip if deletion too close to boundary continue if inLen == 1: - inSeq = self.sequences[i][eventPos+1] + inSeq = self.sequences[i][eventPos + 1] else: - inSeq = str(self.sequences[i][eventPos+1:eventPos+inLen+1]) + inSeq = str(self.sequences[i][eventPos + 1:eventPos + inLen + 1]) ref_nucl = self.sequences[i][eventPos] - myIndel = (eventPos, ref_nucl+inSeq, ref_nucl) + myIndel = (eventPos, ref_nucl + inSeq, ref_nucl) # if event too close to boundary, skip. if event conflicts with other indel, skip. skipEvent = False - if eventPos+len(myIndel[1]) >= self.seq_Len-self.winBuffer-1: + if eventPos + len(myIndel[1]) >= self.seq_len - self.win_buffer - 1: skipEvent = True if skipEvent: continue for p in whichPloid: - for k in range(eventPos, eventPos+inLen+1): - if self.blackList[p][k]: + for k in range(eventPos, eventPos + inLen + 1): + if self.black_list[p][k]: skipEvent = True if skipEvent: continue for p in whichPloid: - for k in range(eventPos,eventPos+inLen+1): - self.blackList[p][k] = 1 + for k in range(eventPos, eventPos + inLen + 1): + self.black_list[p][k] = 1 all_indels[p].append(myIndel) # add random snps - all_snps = [[] for n in self.sequences] + all_snps = [[] for n in self.sequences] for i in range(self.ploidy): - for j in range(self.snpsToAdd[i]): - if random.random() <= self.models[i][1]: # insert homozygous SNP + for j in range(self.snps_to_add[i]): + if random.random() <= self.models[i][1]: # insert homozygous SNP whichPloid = range(self.ploidy) - else: # insert heterozygous SNP + else: # insert heterozygous SNP whichPloid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert snps @@ -382,12 +393,12 @@ def random_mutations(self): # based on the mutation model for the specified ploid, choose a SNP location based on trinuc bias # (if there are multiple ploids, choose one at random) if IGNORE_TRINUC: - eventPos = random.randint(self.winBuffer+1,self.seq_Len-2) + eventPos = random.randint(self.win_buffer + 1, self.seq_len - 2) else: - ploid_to_use = whichPloid[random.randint(0,len(whichPloid)-1)] - eventPos = self.trinuc_bias[ploid_to_use].sample() + ploid_to_use = whichPloid[random.randint(0, len(whichPloid) - 1)] + eventPos = self.trinuc_bias[ploid_to_use].sample() for p in whichPloid: - if self.blackList[p][eventPos]: + if self.black_list[p][eventPos]: eventPos = -1 if eventPos != -1: break @@ -395,19 +406,19 @@ def random_mutations(self): continue ref_nucl = self.sequences[i][eventPos] - context = str(self.sequences[i][eventPos-1])+str(self.sequences[i][eventPos+1]) + context = str(self.sequences[i][eventPos - 1]) + str(self.sequences[i][eventPos + 1]) # sample from tri-nucleotide substitution matrices to get SNP alt allele new_nucl = self.models[i][6][TRI_IND[context]][NUC_IND[ref_nucl]].sample() - mySNP = (eventPos,ref_nucl,new_nucl) + mySNP = (eventPos, ref_nucl, new_nucl) for p in whichPloid: all_snps[p].append(mySNP) - self.blackList[p][mySNP[0]] = 2 + self.black_list[p][mySNP[0]] = 2 # combine random snps with inserted snps, remove any snps that overlap indels for p in range(len(all_snps)): - all_snps[p].extend(self.snpList[p]) - all_snps[p] = [n for n in all_snps[p] if self.blackList[p][n[0]] != 1] + all_snps[p].extend(self.snp_list[p]) + all_snps[p] = [n for n in all_snps[p] if self.black_list[p][n[0]] != 1] # MODIFY REFERENCE STRING: SNPS for i in range(len(all_snps)): @@ -424,7 +435,7 @@ def random_mutations(self): # organize the indels we want to insert for i in range(len(all_indels)): - all_indels[i].extend(self.indelList[i]) + all_indels[i].extend(self.indel_list[i]) all_indels_ins = [sorted([list(m) for m in n]) for n in all_indels] # MODIFY REFERENCE STRING: INDELS @@ -435,9 +446,9 @@ def random_mutations(self): # there's an off-by-one error somewhere in the position sampling routines.. this might fix it # temp_symbol_string.append('M') for j in range(len(all_indels_ins[i])): - v_pos = all_indels_ins[i][j][0] + rolling_adj - v_pos2 = v_pos + len(all_indels_ins[i][j][1]) - rolling_adj += len(all_indels_ins[i][j][2])-len(all_indels_ins[i][j][1]) + v_pos = all_indels_ins[i][j][0] + rolling_adj + v_pos2 = v_pos + len(all_indels_ins[i][j][1]) + rolling_adj += len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) if all_indels_ins[i][j][1] != str(self.sequences[i][v_pos:v_pos2]): print('\nError: Something went wrong!\n', all_indels_ins[i][j], [v_pos, v_pos2], @@ -446,17 +457,18 @@ def random_mutations(self): else: # alter reference sequence self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2], - IUPAC.unambiguous_dna).tomutable() + \ + IUPAC.unambiguous_dna).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) if d > 0: - temp_symbol_string = temp_symbol_string[:v_pos+1] + ['I']*d + temp_symbol_string[v_pos2+1:] + temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * d + temp_symbol_string[ + v_pos2 + 1:] elif d < 0: - temp_symbol_string[v_pos+1] = 'D'*abs(d)+'M' + temp_symbol_string[v_pos + 1] = 'D' * abs(d) + 'M' # precompute cigar strings - for j in range(len(temp_symbol_string)-self.read_len): + for j in range(len(temp_symbol_string) - self.read_len): self.all_cigar[i].append(CigarString(listIn=temp_symbol_string[j:j + self.read_len]).get_string()) # create some data structures we will need later: @@ -464,21 +476,21 @@ def random_mutations(self): # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from this coordinate MD_so_far = 0 for j in range(len(temp_symbol_string)): - self.FM_pos[i].append(MD_so_far) + self.fm_pos[i].append(MD_so_far) # fix an edge case with deletions if 'D' in temp_symbol_string[j]: - self.FM_pos[i][-1] += temp_symbol_string[j].count('D') + self.fm_pos[i][-1] += temp_symbol_string[j].count('D') # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string[j:j+self.read_len] if 'M' in n]) - self.FM_span[i].append(self.FM_pos[i][-1] + span_dif) + span_dif = len([n for n in temp_symbol_string[j:j + self.read_len] if 'M' in n]) + self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) MD_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') # tally up all the variants we handled... count_dict = {} - all_variants = [sorted(all_snps[i]+all_indels[i]) for i in range(self.ploidy)] + all_variants = [sorted(all_snps[i] + all_indels[i]) for i in range(self.ploidy)] for i in range(len(all_variants)): for j in range(len(all_variants[i])): - all_variants[i][j] = tuple([all_variants[i][j][0]+self.x])+all_variants[i][j][1:] + all_variants[i][j] = tuple([all_variants[i][j][0] + self.x]) + all_variants[i][j][1:] t = tuple(all_variants[i][j]) if t not in count_dict: count_dict[t] = [] @@ -490,22 +502,21 @@ def random_mutations(self): output_variants = [] for k in sorted(count_dict.keys()): - output_variants.append(k+tuple([len(count_dict[k])/float(self.ploidy)])) + output_variants.append(k + tuple([len(count_dict[k]) / float(self.ploidy)])) ploid_string = ['0' for n in range(self.ploidy)] for k2 in [n for n in count_dict[k]]: ploid_string[k2] = '1' - output_variants[-1] += tuple(['WP='+'/'.join(ploid_string)]) + output_variants[-1] += tuple(['WP=' + '/'.join(ploid_string)]) return output_variants - def sample_read(self, sequencingModel, frag_len=None): # choose a ploid - my_ploid = random.randint(0,self.ploidy-1) + my_ploid = random.randint(0, self.ploidy - 1) # stop attempting to find a valid position if we fail enough times MAX_READPOS_ATTEMPTS = 100 - attempts_thus_far = 0 + attempts_thus_far = 0 # choose a random position within the ploid, and generate quality scores / sequencing errors readsToSample = [] @@ -513,24 +524,24 @@ def sample_read(self, sequencingModel, frag_len=None): r_pos = self.coverage_distribution[my_ploid].sample() # sample read position and call function to compute quality scores / sequencing errors - r_dat = self.sequences[my_ploid][r_pos:r_pos+self.read_len] + r_dat = self.sequences[my_ploid][r_pos:r_pos + self.read_len] (myQual, myErrors) = sequencingModel.getSequencingErrors(r_dat) - readsToSample.append([r_pos,myQual,myErrors,r_dat]) + readsToSample.append([r_pos, myQual, myErrors, r_dat]) else: r_pos1 = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() # EXPERIMENTAL - #coords_to_select_from = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() - #r_pos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) + # coords_to_select_from = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() + # r_pos1 = random.randint(coords_to_select_from[0],coords_to_select_from[1]) r_pos2 = r_pos1 + frag_len - self.read_len - r_dat1 = self.sequences[my_ploid][r_pos1:r_pos1+self.read_len] - r_dat2 = self.sequences[my_ploid][r_pos2:r_pos2+self.read_len] + r_dat1 = self.sequences[my_ploid][r_pos1:r_pos1 + self.read_len] + r_dat2 = self.sequences[my_ploid][r_pos2:r_pos2 + self.read_len] (myQual1, myErrors1) = sequencingModel.getSequencingErrors(r_dat1) - (myQual2, myErrors2) = sequencingModel.getSequencingErrors(r_dat2,isReverseStrand=True) - readsToSample.append([r_pos1,myQual1,myErrors1,r_dat1]) - readsToSample.append([r_pos2,myQual2,myErrors2,r_dat2]) + (myQual2, myErrors2) = sequencingModel.getSequencingErrors(r_dat2, isReverseStrand=True) + readsToSample.append([r_pos1, myQual1, myErrors1, r_dat1]) + readsToSample.append([r_pos2, myQual2, myErrors2, r_dat2]) # error format: # myError[i] = (type, len, pos, ref, alt) @@ -549,107 +560,108 @@ def sample_read(self, sequencingModel, frag_len=None): print((r_pos1, r_pos2)) print(frag_len, self.fraglens_ind_map[frag_len]) exit(1) - totalD = sum([error[1] for error in r[2] if error[0] == 'D']) - totalI = sum([error[1] for error in r[2] if error[0] == 'I']) - availB = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 + total_d = sum([error[1] for error in r[2] if error[0] == 'D']) + total_i = sum([error[1] for error in r[2] if error[0] == 'I']) + availB = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted - r[3] += self.sequences[my_ploid][r[0]+self.read_len:r[0]+self.read_len+totalD] + r[3] += self.sequences[my_ploid][r[0] + self.read_len:r[0] + self.read_len + total_d] expanded_cigar = [] - extraCigar = [] - adj = 0 - sse_adj = [0 for n in range(self.read_len + max(sequencingModel.errP[3]))] - any_indel_err = False + extraCigar = [] + adj = 0 + sse_adj = [0 for n in range(self.read_len + max(sequencingModel.errP[3]))] + any_indel_err = False # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors # secondarily, sort by index - arrangedErrors = {'D':[],'I':[],'S':[]} + arrangedErrors = {'D': [], 'I': [], 'S': []} for error in r[2]: - arrangedErrors[error[0]].append((error[2],error)) + arrangedErrors[error[0]].append((error[2], error)) sortedErrors = [] for k in sorted(arrangedErrors.keys()): sortedErrors.extend([n[1] for n in sorted(arrangedErrors[k])]) skip_indels = False - - #FIXED TdB 05JUN2018 - #Moved this outside the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read - extraCigarVal = [] - #END FIXED TdB + # FIXED TdB 05JUN2018 + # Moved this outside the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + extra_cigar_val = [] + # END FIXED TdB for error in sortedErrors: - eLen = error[1] - ePos = error[2] + e_len = error[1] + e_pos = error[2] if error[0] == 'D' or error[0] == 'I': - any_indel_err = True + any_indel_err = True - #FIXED TdB 05JUN2018 - #Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read - #extraCigarVal = [] - #END FIXED TdB + # FIXED TdB 05JUN2018 + # Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + # extra_cigar_val = [] + # END FIXED TdB - if totalD > availB: # if not enough bases to fill-in deletions, skip all indel erors + if total_d > availB: # if not enough bases to fill-in deletions, skip all indel erors continue if expanded_cigar == []: expanded_cigar = CigarString(stringIn=myCigar).get_list() - fillToGo = totalD - totalI + 1 - if fillToGo > 0: + fill_to_go = total_d - total_i + 1 + if fill_to_go > 0: try: - extraCigarVal = CigarString(stringIn=self.all_cigar[my_ploid][r[0] + fillToGo]).get_list()[-fillToGo:] - except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors + extra_cigar_val = CigarString( + stringIn=self.all_cigar[my_ploid][r[0] + fill_to_go]).get_list()[-fill_to_go:] + except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors skip_indels = True - if skip_indels: continue # insert deletion error into read and update cigar string accordingly if error[0] == 'D': - myadj = sse_adj[ePos] - pi = ePos+myadj - pf = ePos+myadj+eLen+1 + my_adj = sse_adj[e_pos] + pi = e_pos + my_adj + pf = e_pos + my_adj + e_len + 1 if str(r[3][pi:pf]) == str(error[3]): - r[3] = r[3][:pi+1] + r[3][pf:] - expanded_cigar = expanded_cigar[:pi+1] + expanded_cigar[pf:] - if pi+1 == len(expanded_cigar): # weird edge case with del at very end of region. Make a guess and add a "M" + r[3] = r[3][:pi + 1] + r[3][pf:] + expanded_cigar = expanded_cigar[:pi + 1] + expanded_cigar[pf:] + if pi + 1 == len( + expanded_cigar): # weird edge case with del at very end of region. Make a guess and add a "M" expanded_cigar.append('M') - expanded_cigar[pi+1] = 'D'*eLen + expanded_cigar[pi+1] + expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] else: print('\nError, ref does not match alt while attempting to insert deletion error!\n') exit(1) - adj -= eLen - for i in range(ePos,len(sse_adj)): - sse_adj[i] -= eLen + adj -= e_len + for i in range(e_pos, len(sse_adj)): + sse_adj[i] -= e_len # insert insertion error into read and update cigar string accordingly else: - myadj = sse_adj[ePos] - if str(r[3][ePos+myadj]) == error[3]: - r[3] = r[3][:ePos+myadj] + error[4] + r[3][ePos+myadj+1:] - expanded_cigar = expanded_cigar[:ePos+myadj] + ['I']*eLen + expanded_cigar[ePos+myadj:] + my_adj = sse_adj[e_pos] + if str(r[3][e_pos + my_adj]) == error[3]: + r[3] = r[3][:e_pos + my_adj] + error[4] + r[3][e_pos + my_adj + 1:] + expanded_cigar = expanded_cigar[:e_pos + my_adj] + ['I'] * e_len + expanded_cigar[ + e_pos + my_adj:] else: print('\nError, ref does not match alt while attempting to insert insertion error!\n') - print('---', chr(r[3][ePos + myadj]), '!=', error[3]) + print('---', chr(r[3][e_pos + my_adj]), '!=', error[3]) exit(1) - adj += eLen - for i in range(ePos,len(sse_adj)): - sse_adj[i] += eLen + adj += e_len + for i in range(e_pos, len(sse_adj)): + sse_adj[i] += e_len - else: # substitution errors, much easier by comparison... - if str(r[3][ePos+sse_adj[ePos]]) == error[3]: - r[3][ePos+sse_adj[ePos]] = error[4] + else: # substitution errors, much easier by comparison... + if str(r[3][e_pos + sse_adj[e_pos]]) == error[3]: + r[3][e_pos + sse_adj[e_pos]] = error[4] else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') exit(1) if any_indel_err: if len(expanded_cigar): - relevantCigar = (expanded_cigar+extraCigarVal)[:self.read_len] + relevantCigar = (expanded_cigar + extra_cigar_val)[:self.read_len] myCigar = CigarString(listIn=relevantCigar).get_string() r[3] = r[3][:self.read_len] - r_out.append([self.FM_pos[my_ploid][r[0]], myCigar, str(r[3]), str(r[1])]) + r_out.append([self.fm_pos[my_ploid][r[0]], myCigar, str(r[3]), str(r[1])]) # r_out[i] = (pos, cigar, read_string, qual_string) return r_out @@ -665,31 +677,30 @@ def __init__(self, read_len, errorModel, reScaledError): error_dat = pickle.load(open(errorModel, 'rb'), encoding="bytes") self.UNIFORM = False - if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) + if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True [Qscores, offQ, avgError, errorParams] = error_dat self.uniform_qscore = int(-10. * np.log10(avgError) + 0.5) print('Using uniform sequencing error model. (q=' + str(self.uniform_qscore) + '+' + str( offQ) + ', p(err)={0:0.2f}%)'.format(100. * avgError)) - if len(error_dat) == 6: # only 1 q-score model present, use same model for both strands + if len(error_dat) == 6: # only 1 q-score model present, use same model for both strands [initQ1, probQ1, Qscores, offQ, avgError, errorParams] = error_dat self.PE_MODELS = False - elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands - #print 'Using paired-read quality score profiles...' - [initQ1 ,probQ1, initQ2, probQ2, Qscores, offQ, avgError, errorParams] = error_dat + elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands + # print 'Using paired-read quality score profiles...' + [initQ1, probQ1, initQ2, probQ2, Qscores, offQ, avgError, errorParams] = error_dat self.PE_MODELS = True if len(initQ1) != len(initQ2) or len(probQ1) != len(probQ2): print('\nError: R1 and R2 quality score models are of different length.\n') exit(1) - - self.qErrRate = [0.]*(max(Qscores)+1) + self.qErrRate = [0.] * (max(Qscores) + 1) for q in Qscores: - self.qErrRate[q] = 10.**(-q/10.) + self.qErrRate[q] = 10. ** (-q / 10.) self.offQ = offQ # errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] - self.errP = errorParams + self.errP = errorParams self.errSSE = [DiscreteDistribution(n, NUCL) for n in self.errP[0]] self.errSIE = DiscreteDistribution(self.errP[2], self.errP[3]) self.errSIN = DiscreteDistribution(self.errP[5], NUCL) @@ -698,7 +709,7 @@ def __init__(self, read_len, errorModel, reScaledError): if reScaledError == None: self.errorScale = 1.0 else: - self.errorScale = reScaledError/avgError + self.errorScale = reScaledError / avgError print('Warning: Quality scores no longer exactly representative of error probability. ' 'Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale)) @@ -712,34 +723,38 @@ def __init__(self, read_len, errorModel, reScaledError): self.qIndRemap = [max([1, len(initQ1) * n // read_len]) for n in range(read_len)] # initialize probability distributions - self.initDistByPos1 = [DiscreteDistribution(initQ1[i], Qscores) for i in range(len(initQ1))] + self.initDistByPos1 = [DiscreteDistribution(initQ1[i], Qscores) for i in range(len(initQ1))] self.probDistByPosByPrevQ1 = [None] for i in range(1, len(initQ1)): self.probDistByPosByPrevQ1.append([]) for j in range(len(initQ1[0])): - if np.sum(probQ1[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) + if np.sum(probQ1[i][ + j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + self.probDistByPosByPrevQ1[-1].append( + DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) else: self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j], Qscores)) if self.PE_MODELS: - self.initDistByPos2 = [DiscreteDistribution(initQ2[i], Qscores) for i in range(len(initQ2))] + self.initDistByPos2 = [DiscreteDistribution(initQ2[i], Qscores) for i in range(len(initQ2))] self.probDistByPosByPrevQ2 = [None] for i in range(1, len(initQ2)): self.probDistByPosByPrevQ2.append([]) for j in range(len(initQ2[0])): - if np.sum(probQ2[i][j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) + if np.sum(probQ2[i][ + j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + self.probDistByPosByPrevQ2[-1].append( + DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) else: self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], Qscores)) def getSequencingErrors(self, readData, isReverseStrand=False): - qOut = [0]*self.read_len + qOut = [0] * self.read_len sErr = [] if self.UNIFORM: - myQ = [self.uniform_qscore + self.offQ for n in range(self.read_len)] + myQ = [self.uniform_qscore + self.offQ for n in range(self.read_len)] qOut = ''.join([chr(n) for n in myQ]) for i in range(self.read_len): if random.random() < self.errorScale * self.qErrRate[self.uniform_qscore]: @@ -778,42 +793,41 @@ def getSequencingErrors(self, readData, isReverseStrand=False): # don't allow other sequencing errors to occur on bases removed by deletion errors delBlacklist = [] - for ind in sErr[::-1]: # for each error that we're going to insert... + for ind in sErr[::-1]: # for each error that we're going to insert... # determine error type isSub = True - if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind-prevIndel) > 1: + if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind - prevIndel) > 1: if random.random() < self.errP[1]: isSub = False # error_out = (type, len, pos, ref, alt) - if isSub: # insert substitution error - myNucl = str(readData[ind]) + if isSub: # insert substitution error + myNucl = str(readData[ind]) new_nucl = self.errSSE[NUC_IND[myNucl]].sample() sOut.append(('S', 1, ind, myNucl, new_nucl)) - else: # insert indel error + else: # insert indel error indelLen = self.errSIE.sample() - if random.random() < self.errP[4]: # insertion error - myNucl = str(readData[ind]) + if random.random() < self.errP[4]: # insertion error + myNucl = str(readData[ind]) new_nucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) sOut.append(('I', len(new_nucl) - 1, ind, myNucl, new_nucl)) - elif ind < self.read_len - 2 - nDelSoFar: # deletion error (prevent too many of them from stacking up) - myNucl = str(readData[ind:ind+indelLen+1]) + elif ind < self.read_len - 2 - nDelSoFar: # deletion error (prevent too many of them from stacking up) + myNucl = str(readData[ind:ind + indelLen + 1]) new_nucl = str(readData[ind]) - nDelSoFar += len(myNucl)-1 + nDelSoFar += len(myNucl) - 1 sOut.append(('D', len(myNucl) - 1, ind, myNucl, new_nucl)) - for i in range(ind+1, ind + indelLen+1): + for i in range(ind + 1, ind + indelLen + 1): delBlacklist.append(i) prevIndel = ind # remove blacklisted errors - for i in range(len(sOut)-1,-1,-1): + for i in range(len(sOut) - 1, -1, -1): if sOut[i][2] in delBlacklist: del sOut[i] - return (qOut,sOut) - + return (qOut, sOut) """************************************************ @@ -832,26 +846,26 @@ def parseInputMutationModel(model=None, whichDefault=1): exit(1) if model != None: - pickle_dict = pickle.load(open(model,"rb")) + pickle_dict = pickle.load(open(model, "rb")) outModel[0] = pickle_dict['AVG_MUT_RATE'] outModel[2] = 1. - pickle_dict['SNP_FREQ'] - insList = pickle_dict['INDEL_FREQ'] + insList = pickle_dict['INDEL_FREQ'] if len(insList): insCount = sum([insList[k] for k in insList.keys() if k >= 1]) delCount = sum([insList[k] for k in insList.keys() if k <= -1]) - insVals = [k for k in sorted(insList.keys()) if k >= 1] - insWght = [insList[k]/float(insCount) for k in insVals] - delVals = [k for k in sorted([abs(k) for k in insList.keys() if k <= -1])] - delWght = [insList[-k]/float(delCount) for k in delVals] - else: # degenerate case where no indel stats are provided + insVals = [k for k in sorted(insList.keys()) if k >= 1] + insWght = [insList[k] / float(insCount) for k in insVals] + delVals = [k for k in sorted([abs(k) for k in insList.keys() if k <= -1])] + delWght = [insList[-k] / float(delCount) for k in delVals] + else: # degenerate case where no indel stats are provided insCount = 1 delCount = 1 - insVals = [1] - insWght = [1.0] - delVals = [1] - delWght = [1.0] - outModel[3] = insCount/float(insCount + delCount) + insVals = [1] + insWght = [1.0] + delVals = [1] + delWght = [1.0] + outModel[3] = insCount / float(insCount + delCount) outModel[4] = insVals outModel[5] = insWght outModel[6] = delVals @@ -859,24 +873,24 @@ def parseInputMutationModel(model=None, whichDefault=1): trinuc_trans_prob = pickle_dict['TRINUC_TRANS_PROBS'] for k in sorted(trinuc_trans_prob.keys()): - myInd = TRI_IND[k[0][0]+k[0][2]] - (k1,k2) = (NUC_IND[k[0][1]],NUC_IND[k[1][1]]) + myInd = TRI_IND[k[0][0] + k[0][2]] + (k1, k2) = (NUC_IND[k[0][1]], NUC_IND[k[1][1]]) outModel[8][myInd][k1][k2] = trinuc_trans_prob[k] for i in range(len(outModel[8])): for j in range(len(outModel[8][i])): for l in range(len(outModel[8][i][j])): # if trinuc not present in input mutation model, assign it uniform probability if float(sum(outModel[8][i][j])) < 1e-12: - outModel[8][i][j] = [0.25,0.25,0.25,0.25] + outModel[8][i][j] = [0.25, 0.25, 0.25, 0.25] else: outModel[8][i][j][l] /= float(sum(outModel[8][i][j])) - trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] - which_have_we_seen = {n:False for n in ALL_TRI} - trinuc_mean = np.mean(list(trinuc_mut_prob.values())) + trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] + which_have_we_seen = {n: False for n in ALL_TRI} + trinuc_mean = np.mean(list(trinuc_mut_prob.values())) for trinuc in trinuc_mut_prob.keys(): outModel[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] - which_have_we_seen[trinuc] = True + which_have_we_seen[trinuc] = True for trinuc in which_have_we_seen.keys(): if which_have_we_seen[trinuc] == False: outModel[9][ALL_IND[trinuc]] = trinuc_mean @@ -906,9 +920,9 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): print('Reading in mutation model...') listing1 = [n for n in os.listdir(prefix) if n[-5:] == '.prob'] listing2 = [n for n in os.listdir(prefix) if n[-7:] == '.trinuc'] - listing = sorted(listing1) + sorted(listing2) + listing = sorted(listing1) + sorted(listing2) for l in listing: - f = open(prefix+l,'r') + f = open(prefix + l, 'r') fr = [n.split('\t') for n in f.read().split('\n')] f.close() @@ -947,8 +961,8 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): print('-', l) if '.trinuc' == l[-7:]: - context_ind = TRI_IND[l[-10]+l[-8]] - p_matrix = [[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1],[-1,-1,-1,-1]] + context_ind = TRI_IND[l[-10] + l[-8]] + p_matrix = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1]] for i in range(len(p_matrix)): for j in range(len(fr[i])): p_matrix[i][j] = float(fr[i][j]) @@ -963,58 +977,57 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): return outModel + ###################### # DEFAULT VALUES # ###################### -DEFAULT_1_OVERALL_MUT_RATE = 0.001 -DEFAULT_1_HOMOZYGOUS_FREQ = 0.010 -DEFAULT_1_INDEL_FRACTION = 0.05 -DEFAULT_1_INS_VS_DEL = 0.6 -DEFAULT_1_INS_LENGTH_VALUES = [1,2,3,4,5,6,7,8,9,10] +DEFAULT_1_OVERALL_MUT_RATE = 0.001 +DEFAULT_1_HOMOZYGOUS_FREQ = 0.010 +DEFAULT_1_INDEL_FRACTION = 0.05 +DEFAULT_1_INS_VS_DEL = 0.6 +DEFAULT_1_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] DEFAULT_1_INS_LENGTH_WEIGHTS = [0.4, 0.2, 0.1, 0.05, 0.05, 0.05, 0.05, 0.034, 0.033, 0.033] -DEFAULT_1_DEL_LENGTH_VALUES = [1,2,3,4,5] -DEFAULT_1_DEL_LENGTH_WEIGHTS = [0.3,0.2,0.2,0.2,0.1] -example_matrix_1 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] -DEFAULT_1_TRINUC_BIAS = [1./float(len(ALL_TRI)) for n in ALL_TRI] -DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, - DEFAULT_1_HOMOZYGOUS_FREQ, - DEFAULT_1_INDEL_FRACTION, - DEFAULT_1_INS_VS_DEL, - DEFAULT_1_INS_LENGTH_VALUES, - DEFAULT_1_INS_LENGTH_WEIGHTS, - DEFAULT_1_DEL_LENGTH_VALUES, - DEFAULT_1_DEL_LENGTH_WEIGHTS, - DEFAULT_1_TRI_FREQS, - DEFAULT_1_TRINUC_BIAS] - -DEFAULT_2_OVERALL_MUT_RATE = 0.002 -DEFAULT_2_HOMOZYGOUS_FREQ = 0.200 -DEFAULT_2_INDEL_FRACTION = 0.1 -DEFAULT_2_INS_VS_DEL = 0.3 -DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +DEFAULT_1_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] +DEFAULT_1_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] +example_matrix_1 = [[0.0, 0.15, 0.7, 0.15], + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] +DEFAULT_1_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, + DEFAULT_1_HOMOZYGOUS_FREQ, + DEFAULT_1_INDEL_FRACTION, + DEFAULT_1_INS_VS_DEL, + DEFAULT_1_INS_LENGTH_VALUES, + DEFAULT_1_INS_LENGTH_WEIGHTS, + DEFAULT_1_DEL_LENGTH_VALUES, + DEFAULT_1_DEL_LENGTH_WEIGHTS, + DEFAULT_1_TRI_FREQS, + DEFAULT_1_TRINUC_BIAS] + +DEFAULT_2_OVERALL_MUT_RATE = 0.002 +DEFAULT_2_HOMOZYGOUS_FREQ = 0.200 +DEFAULT_2_INDEL_FRACTION = 0.1 +DEFAULT_2_INS_VS_DEL = 0.3 +DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] DEFAULT_2_INS_LENGTH_WEIGHTS = [0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] -DEFAULT_2_DEL_LENGTH_VALUES = [1,2,3,4,5] -DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3,0.2,0.2,0.2,0.1] -example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] -DEFAULT_2_TRINUC_BIAS = [1./float(len(ALL_TRI)) for n in ALL_TRI] -DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, - DEFAULT_2_HOMOZYGOUS_FREQ, - DEFAULT_2_INDEL_FRACTION, - DEFAULT_2_INS_VS_DEL, - DEFAULT_2_INS_LENGTH_VALUES, - DEFAULT_2_INS_LENGTH_WEIGHTS, - DEFAULT_2_DEL_LENGTH_VALUES, - DEFAULT_2_DEL_LENGTH_WEIGHTS, - DEFAULT_2_TRI_FREQS, - DEFAULT_2_TRINUC_BIAS] - - +DEFAULT_2_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] +DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] +example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] +DEFAULT_2_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, + DEFAULT_2_HOMOZYGOUS_FREQ, + DEFAULT_2_INDEL_FRACTION, + DEFAULT_2_INS_VS_DEL, + DEFAULT_2_INS_LENGTH_VALUES, + DEFAULT_2_INS_LENGTH_WEIGHTS, + DEFAULT_2_DEL_LENGTH_VALUES, + DEFAULT_2_DEL_LENGTH_WEIGHTS, + DEFAULT_2_TRI_FREQS, + DEFAULT_2_TRINUC_BIAS] diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 17ce93c029b86a6478820327e46183390dd9ad68..2461789666586b49937f3e28b3c298c9db237102 100644 GIT binary patch delta 2938 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 Io>*%D0Gvz_lmGw# delta 81 zcmbQlxR#OIiI)jO)bhy$t=l;ami0E%}vcKDUNZ^ jEb%B!iV4pz%FfJ7k9Wx|N=+`wFRG09b9D@vm}CF|+fExE diff --git a/py/__pycache__/biopython_modified_bgzf.cpython-37.pyc b/py/__pycache__/biopython_modified_bgzf.cpython-37.pyc index 7119aa4e279ccd99c0ef77631a8275603125a1e3..b580c9c18c6852049f5774342b6c385749e58527 100644 GIT binary patch delta 57 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 diff --git a/py/__pycache__/probability.cpython-37.pyc b/py/__pycache__/probability.cpython-37.pyc index 7f98effc8f7a3014453183b34262cdfe6105a4af..72c0c863e96e15f9a995fc697e12855ad24e1268 100644 GIT binary patch delta 1336 zcmZux&2Jk;6rUNd_rqR0Nhxj8B9e-tun|E`sT73zLDLE@e6*@arB$l!+B0#s@$TBQ z>$E|sB9xE>^<)haLgLUOaj4+Ng?|CH2e@$98y7@5_Sj4N-q;N}u#(@reILK~dvD)( zXY%P}eW6yX5P1H$Hyfl!`t@ z*sH(%PXA=nn5J`~Fni}zK@*P_6+jJci>S4dYoBz~W8>iw7h<10ho=RKe!K~3s(a-r zYN(&fJ2&knZpIL?af2z zqA0K%Sp(r!oSXO!gfO?1750_n?X6gqVVG|$krd>x&}b1#+C1(gR0 zKxkoRVcb!F*$dQFC!Lx1P9f5}DCSZ8M^|eO+NvOsaAtzAY2~b4l2x_iOqJOl*<AZCEe54$u8NY z%S^AQy#aY!^loXFsaGmjYd8}Q=6OhK#(DoP?t&i94O5)J|I-lXW!ERahN2 zN;LXRn@+T7glcZefLun6p49KBqHgE`>rz%RoK zU=q*NvypGWo2DhtqBf2KXXP2bwHm-DYzcWDjpso4*6pDQY9GdiwCe);KS1HA=hZoS zQO&u3!?ujqex3h+lB}?iq+WCzuL@q%gJe~yKEHVwAn~I7@XfJ!VX$b{fT00aScg>R zf@`|6jOBGRxLTg$k0NA{r$M(DCVBLQ@LjD1jdt2xg*!6H)|GwMjid#6zAJl45+yA( zd%16Qq*x0Yk#A}x@>wI&G-2eIu;OJDj{2?s@#2SA*Oh0`qSyO1(28=>i#zLs2~VKG i(5;@pDEuE8e1(gsA;4e;`$GfhnEpm6rLG-y|(u!4J~a_M4KXL;)nPMJQ1c4jiIEs(PtfZdH$5dW17vsVZ|vDo2i7;5{dVN-)xV^Ys4ao9EAeoZdcN zu9QkP!!>cI*lZu$D-ZG7-stGNQj_`?bB$RhbJEyi(%2MkUgo8VUQ=4q#?z9#&YZ#% zs;~KjzrXs`?OUtw?LF9DN_pt!I&0NH(oyesQXbrAkjKP7Kbd-`aV_>BZd5%8WRTo! zOm|oM9WP4a#%z#W>|bvzccC3besekiZzbu%TC+AYxu|-4A!lKamA%1dzyFm#5@)Gn z*47cJc=`g}_vg_4~&QnEK=|Ts|7va)v=yw{jy~sE4`j3p$dx zk{UsTaiEzfRmUC&m*KI>G@vdK`Zf=S|J=KAD>J4YRW%WcZ{(Tk#RT-P=%>} zF@8F8Se#{J>}84_lE$nb^GjS)L*~}TAcZ&qF@++6W5Y1n*;NL#BH8Vvc{+nAffp$> zN`g30X*rUth9!5TTkcKI%AGdPtnDSR$9+EV{UtD}^B{_lxOkwdtOlWnI~E8AbBt^<@B+n%47^WpfqpP!rkf&xBiKj4G&P-2N|438)JTPLIR(Z)B_#4SD4!!^Y diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc index 9660c918016c6e3b800f2331f9fdfdd3584ee6ee..1a4ba051edd81dcc444ed2938470b98ed11e20de 100644 GIT binary patch delta 1548 zcma)6O>7%Q6y8}owzIa^KWS(~)R4Auoo)I=rPV5Ewf64Xo2+N; znN4u2Es@}YI9Uvb2vw+@5OAO+7sLT>s246ha2R^wz=az^9Own!tmCvqIpCGQH}CJ8 zH*enV!_sdhbvBz-B>0VV&KTw4`)WJ3rK`ktY+~c8Z8XiG&gCHBDaZ9}Y&LA30 zi|R4Qba~u!vCZSO=>>X{+ARaZc*1uaYJ)*I4G-%{Y=|Z8W(zJo(IobUL3U-6$1O83 zzmUk-Nhs&><+-Vq>(nN6W!0y3XXV;vwQiEeHR7+@)qt|e_y=g5eHR}_+dDtUFQf6A zBpxe&Cw5y6Wh*r#S%o#ZgUEw62{Tuuw^wiHLe(m=UlPaq5c#G(#ZYp9y_YyNzkNf( zD) z4%XLq`357tkK5A`!|^V|lil~#BDXxYnH(-deI1$pXr+RD*#ACqSO3J;h@cq*&=ZYK1Ext&Mk9t@F@9Bl9fJiMX5g8W#G^P2 zgY5WFh+T7itQYEL#SP4gXB%A$

iok6kFkO4MUo;CEgEjcx!)D33CTeWIL38TOMh zfs~!Ul_hy=FHw`ZeD--V2ci4e9xKzHOM|N4XwKXbd@?{nx>c^(fdTyz`}Ar#JMH;Z z)1x!6=;aX6EsowH=Rj(Ck_ACj0Xd01$d02a_D6Q~;*7A23V0cSr>VJN8~%FGTo3d# z$lexQb}&Z{IVM7nvjuhZV)VL4FFsm3=mdP=fKoqX+v+8>wDVB?6wN=?1~M;*59k9~ z0LRzx?=?Vcnj~-oxRq`T*iL@_(*I_<_k?L#OOh!zSva|+xPnVuG>v)@jmfHC(G%DJ zLG@JN2L^R-*=`m}Npw$3SJw%AJOlBK)U!RM>c1xD zFH3CC-Y~%{a{i;%=)T$DgZp~Wt^ISR7GE5B3+mG38h{JTESAQ` Zg?>fAk^qtM)DBTE%k0ZyDfWhP^j}~xv1kAQ delta 1559 zcma)6O>7%Q6y90?tv6oBc4>(lrA^YB)TBTWjg%$7e@n-EbCCUL?^X8&I_G6xhO@kU=NMs0(-hX>) zYl#3@XNr6!I*;KJ=*&rJdQ?fX)9Ti{G^$hkb-Br^UO?0zHBO4$vm+t?;`T^ zCh-%~(mS`exOise`3u zB|own71riA0bl(o-#|zvCH8xCXkqMF#(nV4br??uj1M;_0*=8p$Km-$vXPrUGh)5l zkYP;#(2G+#3n*cT$F{M3WAskHe; zbu3xvbq0mM?SCI(}<$Q#rNsgvCy2eqNqeb!}Tq7A4a8bZZ>|^B>_N|g-zbdb>-uNeI zgguV;^^-HOs;dW`TCurWtkez1godo?YLWdFAKpGI7;+*ovUX?MfOZvKS)7G-opM_a z)nmnqK^ulg!XhYIgs!(-9woSDyN;f!8!I+7RvNezI6RJ=poQCT0rrT7H_Q^YUI)YT z0VI?{38bJf>S6cPp;#E^@Mqtv!zj7;kGdci#9I(h?0#8B8v=)$aBJwOS8NSD!PE1E$mb=j~6TLQnX*}qOpcKT0Jgbo_d;? z(mCKm_G$78DzUDv?A{;A_tDfdvdN4%^cdZw01HoG90(p-Hwd*UTt`RqY4&4k_{#t0 z+B@Vb=VN4?T~5ES9k+o^T(K9_Np#0;cSVmlfSw+sE?uziVsb+yIWOQUfUbJroX6xk zgle6-bWG8Q-od=uA_P8VvyQ1JI`ek7B?xZd4Z|6QJFqZT6{rbNk$Y;Noj6=QGDKHO95%CD9*h2 z;_S?Vg4C2KF*q|mDK$B{}x+=i?iL}QfhCBtqyc1HrHEDpUk1L~uIxo36GZnM48k7@XV+ayYq9^zHDt3T+= zq@6wM$CYY`UP8fMeCtPsZV=9gS-}MPjoEoN)082nbxGE=H zuwbqVh_IjgLL* Date: Mon, 10 Aug 2020 15:55:20 -0500 Subject: [PATCH 107/323] Updating bacterial wrapper --- bacterial_genreads_wrapper.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 2f427d6..4970b2a 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -36,8 +36,9 @@ def initialize_population(reference: str, pop_size): names.append("name" + str(j)) population = [] for i in range(pop_size): - args = ['-r', reference, '-R', '151', '-o', names[i], '--fa'] - new_member = genReads.main(args) + args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] + genReads.main(args) + new_member = names[i] + "_read1.fa" population.append(new_member) return population From 0e1ef9597e7dd1fbe9c21c53ad6ce71e407e5972 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 11 Aug 2020 13:57:31 -0500 Subject: [PATCH 108/323] minor debugging change to baterial_genreads_wrapper.py --- bacterial_genreads_wrapper.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 4970b2a..491ee95 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -62,6 +62,7 @@ def main(): cull_percentage = args.c population = initialize_population(ref_fasta, init_population_size) + print(population) for i in range(cycles): new_population = cull(population) # If all elements get culled, then break and quit From 560b2c7feeb747d5932cdae91d7c1124cc4733cf Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 11 Aug 2020 14:22:42 -0500 Subject: [PATCH 109/323] debugging bacterial wrapper --- bacterial_genreads_wrapper.py | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 491ee95..a73a5c6 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -1,8 +1,8 @@ #!/usr/bin/env python -import genReads +# import genReads import argparse -from Bio import SeqIO +# from Bio import SeqIO def cull(population: list) -> list: @@ -35,11 +35,11 @@ def initialize_population(reference: str, pop_size): for j in range(pop_size): names.append("name" + str(j)) population = [] - for i in range(pop_size): - args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] - genReads.main(args) - new_member = names[i] + "_read1.fa" - population.append(new_member) + # for i in range(pop_size): + # args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] + # genReads.main(args) + # new_member = names[i] + "_read1.fa" + # population.append(new_member) return population @@ -63,10 +63,10 @@ def main(): population = initialize_population(ref_fasta, init_population_size) print(population) - for i in range(cycles): - new_population = cull(population) - # If all elements get culled, then break and quit - if not new_population: - break - new_population = crossover(new_population) - population = evolve(new_population, 2) + # for i in range(cycles): + # new_population = cull(population) + # # If all elements get culled, then break and quit + # if not new_population: + # break + # new_population = crossover(new_population) + # population = evolve(new_population, 2) From 85f945fb6dbc744e8f6e08658bf3a8e55830d1d9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 12 Aug 2020 15:43:30 -0500 Subject: [PATCH 110/323] Updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 40 ++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index a73a5c6..b1cb919 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -1,7 +1,9 @@ #!/usr/bin/env python -# import genReads +import genReads import argparse + + # from Bio import SeqIO @@ -35,11 +37,11 @@ def initialize_population(reference: str, pop_size): for j in range(pop_size): names.append("name" + str(j)) population = [] - # for i in range(pop_size): - # args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] - # genReads.main(args) - # new_member = names[i] + "_read1.fa" - # population.append(new_member) + for i in range(pop_size): + args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] + genReads.main(args) + new_member = names[i] + "_read1.fa" + population.append(new_member) return population @@ -49,11 +51,11 @@ def evolve(new_population, param): def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') - parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', + parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', help="Reference file for organism in fasta format") - parser.add_argument('-C', type=int, required=True, metavar='', help="Number of cycles to run") - parser.add_argument('-i', type=int, required=True, metavar='', help="Initial population size") - parser.add_argument('-c', type=float, required=False, metavar='', + parser.add_argument('-C', type=int, required=True, metavar='Cycles', help="Number of cycles to run") + parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") + parser.add_argument('-c', type=float, required=False, metavar='cull pct', help="Percentage of population to cull each cycle (0.5 will keep population relatively stable)", default=0.5) args = parser.parse_args() @@ -63,10 +65,14 @@ def main(): population = initialize_population(ref_fasta, init_population_size) print(population) - # for i in range(cycles): - # new_population = cull(population) - # # If all elements get culled, then break and quit - # if not new_population: - # break - # new_population = crossover(new_population) - # population = evolve(new_population, 2) + for i in range(cycles): + new_population = cull(population) + # If all elements get culled, then break and quit + if not new_population: + break + new_population = crossover(new_population) + population = evolve(new_population, 2) + + +if __name__ == '__main__': + main() From cccdebdc0cdf318a6e01d9421abed155ed0cbaaa Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 12 Aug 2020 16:48:22 -0500 Subject: [PATCH 111/323] updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index b1cb919..b38b32d 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -2,17 +2,24 @@ import genReads import argparse +import random # from Bio import SeqIO -def cull(population: list) -> list: +def cull(population: list, percentage: float = 0.5) -> list: """ The purpose of this function will be to cull the bacteria created in the model - :param population: - :return: + :param percentage: percentage of the population to eliminate + :param population: the list of members to cull + :return: The list of remaining members """ + cull_amount = round(len(population) * percentage) + print("Culling {} members from population".format(cull_amount)) + for i in range(cull_amount): + selection = random.choice(population) + population.remove(selection) return population @@ -35,7 +42,7 @@ def initialize_population(reference: str, pop_size): """ names = [] for j in range(pop_size): - names.append("name" + str(j)) + names.append("name" + str(j+1)) population = [] for i in range(pop_size): args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] @@ -66,7 +73,7 @@ def main(): population = initialize_population(ref_fasta, init_population_size) print(population) for i in range(cycles): - new_population = cull(population) + new_population = cull(population, cull_percentage) # If all elements get culled, then break and quit if not new_population: break From 151a61a38ca6477f056482c8503ed85949230cd1 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 14 Aug 2020 13:47:03 -0500 Subject: [PATCH 112/323] Updating bacterial wrapper --- bacterial_genreads_wrapper.py | 39 ++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index b38b32d..9bf9786 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -3,9 +3,18 @@ import genReads import argparse import random +import pathlib +# from Bio import SeqIO -# from Bio import SeqIO +class Bacterium: + def __init__(self, reference: str, name: str, parent): + self.reference = pathlib.Path(reference) + self.parent = parent + self.name = name + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] + genReads.main(args) + self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") def cull(population: list, percentage: float = 0.5) -> list: @@ -45,20 +54,33 @@ def initialize_population(reference: str, pop_size): names.append("name" + str(j+1)) population = [] for i in range(pop_size): - args = ['-r', reference, '-R', '101', '-o', names[i], '--fa'] - genReads.main(args) - new_member = names[i] + "_read1.fa" + new_member = Bacterium(reference, names[i], None) population.append(new_member) return population -def evolve(new_population, param): - pass +def evolve(population: list) -> list: + """ + This evolves an existing population by doubling them (binary fission), then introducing random mutation to + each member of the population. + :param population: A list of fasta files representing the bacteria. + :return: + """ + new_population = population + population + names = [] + for j in range(len(new_population)): + names.append("name" + str(j+1)) + for i in range(len(new_population)): + args = ['-r', new_population[i], '-R', '101', '-o', names[i], '--fa'] + genReads.main(args) + new_member = names[i] + "_read1.fa" + population.append(new_member) + return new_population def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') - parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', + parser.add_argument('-r', type=str, required=True, metavar='reference fasta', help="Reference file for organism in fasta format") parser.add_argument('-C', type=int, required=True, metavar='Cycles', help="Number of cycles to run") parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") @@ -74,11 +96,12 @@ def main(): print(population) for i in range(cycles): new_population = cull(population, cull_percentage) + print(new_population) # If all elements get culled, then break and quit if not new_population: break new_population = crossover(new_population) - population = evolve(new_population, 2) + population = evolve(new_population) if __name__ == '__main__': From 8322a0573f6db8fd471407deabaa717149bad636 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 14 Aug 2020 15:11:53 -0500 Subject: [PATCH 113/323] Adding bacterium class to bacterial wrapper. --- bacterial_genreads_wrapper.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 9bf9786..7d103d3 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -16,6 +16,12 @@ def __init__(self, reference: str, name: str, parent): genReads.main(args) self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + def __repr__(self): + return "Bacterium {}".format(self.name) + + def __str__(self): + return "Bacterium {}".format(self.name) + def cull(population: list, percentage: float = 0.5) -> list: """ From ef5c9241c2f30654f46f8fcdae792a296017030a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 14 Aug 2020 17:10:34 -0500 Subject: [PATCH 114/323] bacterial genreads wrapper updates to class Bacterium --- bacterial_genreads_wrapper.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 7d103d3..72fcd2c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -10,11 +10,14 @@ class Bacterium: def __init__(self, reference: str, name: str, parent): self.reference = pathlib.Path(reference) + print(type(parent)) self.parent = parent self.name = name - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] - genReads.main(args) - self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + self.history = [] + self.file = "" + + if type(self.parent) is None: + self.analyze() def __repr__(self): return "Bacterium {}".format(self.name) @@ -22,6 +25,11 @@ def __repr__(self): def __str__(self): return "Bacterium {}".format(self.name) + def analyze(self): + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] + genReads.main(args) + self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + def cull(population: list, percentage: float = 0.5) -> list: """ @@ -100,6 +108,7 @@ def main(): population = initialize_population(ref_fasta, init_population_size) print(population) + bacterium3 = () for i in range(cycles): new_population = cull(population, cull_percentage) print(new_population) From fbe5d888a088d5cc7613dd8d4fde04267199d981 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 13:23:22 -0500 Subject: [PATCH 115/323] updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 51 ++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 25 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 72fcd2c..82bf94b 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -8,28 +8,28 @@ class Bacterium: - def __init__(self, reference: str, name: str, parent): + def __init__(self, reference: str, name: str, analyze: bool): self.reference = pathlib.Path(reference) - print(type(parent)) - self.parent = parent self.name = name - self.history = [] self.file = "" - if type(self.parent) is None: + if analyze: self.analyze() def __repr__(self): - return "Bacterium {}".format(self.name) + return str(self.name) def __str__(self): - return "Bacterium {}".format(self.name) + return str(self.name) def analyze(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] genReads.main(args) self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + def remove(self): + pathlib.unlink(self.file) + def cull(population: list, percentage: float = 0.5) -> list: """ @@ -43,6 +43,7 @@ def cull(population: list, percentage: float = 0.5) -> list: for i in range(cull_amount): selection = random.choice(population) population.remove(selection) + selection.remove() return population @@ -65,30 +66,30 @@ def initialize_population(reference: str, pop_size): """ names = [] for j in range(pop_size): - names.append("name" + str(j+1)) + names.append("bacterium_0_" + str(j+1)) population = [] for i in range(pop_size): - new_member = Bacterium(reference, names[i], None) + new_member = Bacterium(reference, names[i], True) population.append(new_member) return population -def evolve(population: list) -> list: +def evolve(population: list, generation: int) -> list: """ This evolves an existing population by doubling them (binary fission), then introducing random mutation to each member of the population. + :param generation: Helps determine the starting point of the numbering system so the bacteria have unique names :param population: A list of fasta files representing the bacteria. :return: """ - new_population = population + population + children_population = population + population names = [] - for j in range(len(new_population)): - names.append("name" + str(j+1)) - for i in range(len(new_population)): - args = ['-r', new_population[i], '-R', '101', '-o', names[i], '--fa'] - genReads.main(args) - new_member = names[i] + "_read1.fa" - population.append(new_member) + new_population = [] + for j in range(len(children_population)): + names.append("bacterium" + '_' + generation + '_' + str(j+1)) + for i in range(len(children_population)): + child = Bacterium(children_population[i], names[i], True) + new_population.append(child) return new_population @@ -96,7 +97,7 @@ def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') parser.add_argument('-r', type=str, required=True, metavar='reference fasta', help="Reference file for organism in fasta format") - parser.add_argument('-C', type=int, required=True, metavar='Cycles', help="Number of cycles to run") + parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") parser.add_argument('-c', type=float, required=False, metavar='cull pct', help="Percentage of population to cull each cycle (0.5 will keep population relatively stable)", @@ -107,16 +108,16 @@ def main(): cull_percentage = args.c population = initialize_population(ref_fasta, init_population_size) - print(population) - bacterium3 = () + for i in range(cycles): - new_population = cull(population, cull_percentage) - print(new_population) + new_population = evolve(population, i + 1) + + new_population = crossover(new_population) + + new_population = cull(new_population, cull_percentage) # If all elements get culled, then break and quit if not new_population: break - new_population = crossover(new_population) - population = evolve(new_population) if __name__ == '__main__': From bc51f6b1048fd221ee141503b22376d22ff43868 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 13:43:41 -0500 Subject: [PATCH 116/323] updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 82bf94b..c4c9cbe 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -104,7 +104,7 @@ def main(): default=0.5) args = parser.parse_args() - (ref_fasta, init_population_size, cycles) = (args.r, args.i, args.C) + (ref_fasta, init_population_size, cycles) = (args.r, args.i, args.g) cull_percentage = args.c population = initialize_population(ref_fasta, init_population_size) @@ -115,7 +115,8 @@ def main(): new_population = crossover(new_population) new_population = cull(new_population, cull_percentage) - # If all elements get culled, then break and quit + + # If all elements get culled, then break the loop if not new_population: break From c8ec65302c6588966e535084c81f2042d38ccbe5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 13:56:55 -0500 Subject: [PATCH 117/323] updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index c4c9cbe..ff62fe1 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -66,7 +66,7 @@ def initialize_population(reference: str, pop_size): """ names = [] for j in range(pop_size): - names.append("bacterium_0_" + str(j+1)) + names.append("bacterium_0_{}".format(j+1)) population = [] for i in range(pop_size): new_member = Bacterium(reference, names[i], True) @@ -86,7 +86,7 @@ def evolve(population: list, generation: int) -> list: names = [] new_population = [] for j in range(len(children_population)): - names.append("bacterium" + '_' + generation + '_' + str(j+1)) + names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): child = Bacterium(children_population[i], names[i], True) new_population.append(child) From acb57e23541e40e8e4a95d5a052772bd8a2a0769 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 14:13:16 -0500 Subject: [PATCH 118/323] updates to bacterial wrapper --- bacterial_genreads_wrapper.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index ff62fe1..092ecc8 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -22,6 +22,9 @@ def __repr__(self): def __str__(self): return str(self.name) + def get_file(self): + return self.file + def analyze(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] genReads.main(args) @@ -57,7 +60,7 @@ def crossover(population: list) -> list: return new_population -def initialize_population(reference: str, pop_size): +def initialize_population(reference: str, pop_size) -> list: """ The purpose of this function is to evolve the bacteria :param reference: @@ -74,7 +77,7 @@ def initialize_population(reference: str, pop_size): return population -def evolve(population: list, generation: int) -> list: +def evolve_population(population: list, generation: int) -> list: """ This evolves an existing population by doubling them (binary fission), then introducing random mutation to each member of the population. @@ -88,7 +91,7 @@ def evolve(population: list, generation: int) -> list: for j in range(len(children_population)): names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): - child = Bacterium(children_population[i], names[i], True) + child = Bacterium(children_population[i].get_file(), names[i], True) new_population.append(child) return new_population @@ -104,13 +107,13 @@ def main(): default=0.5) args = parser.parse_args() - (ref_fasta, init_population_size, cycles) = (args.r, args.i, args.g) + (ref_fasta, init_population_size, generations) = (args.r, args.i, args.g) cull_percentage = args.c population = initialize_population(ref_fasta, init_population_size) - for i in range(cycles): - new_population = evolve(population, i + 1) + for i in range(generations): + new_population = evolve_population(population, i+1) new_population = crossover(new_population) From 7479cd496a27dc57bc15a090b13a6c3157f38e65 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 14:38:59 -0500 Subject: [PATCH 119/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 092ecc8..4130828 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -8,7 +8,7 @@ class Bacterium: - def __init__(self, reference: str, name: str, analyze: bool): + def __init__(self, reference: str, name: str, analyze: bool = True): self.reference = pathlib.Path(reference) self.name = name self.file = "" @@ -91,6 +91,7 @@ def evolve_population(population: list, generation: int) -> list: for j in range(len(children_population)): names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): + print(children_population[i].get_file()) child = Bacterium(children_population[i].get_file(), names[i], True) new_population.append(child) return new_population From 1ce6aa5a8405f4a82cf39caba7d660cbf99f3c1a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 15:08:03 -0500 Subject: [PATCH 120/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 4130828..98daf51 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -8,13 +8,12 @@ class Bacterium: - def __init__(self, reference: str, name: str, analyze: bool = True): + def __init__(self, reference: str, name: str): self.reference = pathlib.Path(reference) self.name = name - self.file = "" - - if analyze: - self.analyze() + # Temporarily set the reference as the bacterium's file, until it is analyzed + self.file = pathlib.Path(reference) + self.analyze() def __repr__(self): return str(self.name) @@ -29,9 +28,11 @@ def analyze(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] genReads.main(args) self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + new_name = self.name + "_read1.fa.gz" + self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) def remove(self): - pathlib.unlink(self.file) + pathlib.Path.unlink(self.file) def cull(population: list, percentage: float = 0.5) -> list: @@ -72,7 +73,7 @@ def initialize_population(reference: str, pop_size) -> list: names.append("bacterium_0_{}".format(j+1)) population = [] for i in range(pop_size): - new_member = Bacterium(reference, names[i], True) + new_member = Bacterium(reference, names[i]) population.append(new_member) return population @@ -92,7 +93,7 @@ def evolve_population(population: list, generation: int) -> list: names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): print(children_population[i].get_file()) - child = Bacterium(children_population[i].get_file(), names[i], True) + child = Bacterium(children_population[i].get_file(), names[i]) new_population.append(child) return new_population From b0a4cb789db58802f123034424255c4d5dde1dde Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 15:43:22 -0500 Subject: [PATCH 121/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 98daf51..b132f10 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -4,6 +4,8 @@ import argparse import random import pathlib +import gzip +import shutil # from Bio import SeqIO @@ -27,14 +29,28 @@ def get_file(self): def analyze(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] genReads.main(args) + + # The following workaround is due to the fact that genReads writes out a compressed + # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped + # fasta files, so we further have to unzip it for it to actually work. self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") new_name = self.name + "_read1.fa.gz" self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) + true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") + unzip_file(self.file, true_path) + self.file = true_path + # end workaround def remove(self): pathlib.Path.unlink(self.file) +def unzip_file(zipped_file: pathlib, unzipped_file: pathlib): + with gzip.open(zipped_file, 'rb') as f_in: + with open(unzipped_file, 'wb') as f_out: + shutil.copyfileobj(f_in, f_out) + + def cull(population: list, percentage: float = 0.5) -> list: """ The purpose of this function will be to cull the bacteria created in the model From cbce52544edd5e5bab8fe1628e9ce59b66fed24f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 15:54:13 -0500 Subject: [PATCH 122/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index b132f10..3bb587e 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -34,8 +34,10 @@ def analyze(self): # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped # fasta files, so we further have to unzip it for it to actually work. self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") + print(self.file) new_name = self.name + "_read1.fa.gz" self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) + print(self.file) true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") unzip_file(self.file, true_path) self.file = true_path From 9c5269cd4ccb1b315bf71e8327835a4f3ca7e882 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 16:10:52 -0500 Subject: [PATCH 123/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 3bb587e..ccdafec 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -37,6 +37,7 @@ def analyze(self): print(self.file) new_name = self.name + "_read1.fa.gz" self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) + self.file = pathlib.Path().absolute() / (self.name + "_read1.fa.gz") print(self.file) true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") unzip_file(self.file, true_path) From 54cd02784d2bb4cad9d317feb162882e10ee5186 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 16:19:47 -0500 Subject: [PATCH 124/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 1 + 1 file changed, 1 insertion(+) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index ccdafec..16c8111 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -41,6 +41,7 @@ def analyze(self): print(self.file) true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") unzip_file(self.file, true_path) + pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) self.file = true_path # end workaround From bd0eed1a00a35c028cc4dfd893967cb896e41b24 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 17 Aug 2020 16:48:52 -0500 Subject: [PATCH 125/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 16c8111..6894136 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -41,10 +41,15 @@ def analyze(self): print(self.file) true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") unzip_file(self.file, true_path) - pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) + pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) # deletes unused zip file self.file = true_path # end workaround + # Now we further have to fix the fasta file, which outputs in a form that doesn't make much sense, + # so that it can be properly analyzed in the next generation by genreads. + # TODO see above comment + + def remove(self): pathlib.Path.unlink(self.file) From 0403d7e193a127671e3ad69ecb8f219142ca1fff Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 18 Aug 2020 11:29:59 -0500 Subject: [PATCH 126/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 6894136..c2cbe90 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -47,7 +47,24 @@ def analyze(self): # Now we further have to fix the fasta file, which outputs in a form that doesn't make much sense, # so that it can be properly analyzed in the next generation by genreads. - # TODO see above comment + chromosome_name = "" + sequence = "" + with self.file.open() as f: + first_line = f.readline() + if first_line.startswith(">"): + chromosome_name = first_line + else: + print("Something went wrong with the fasta file") + exit(1) + for line in f: + if line.startswith(">"): + continue + else: + sequence = sequence + line + f.close() + # re-write file with just the chrom name and sequence + self.file.open('w').write(chromosome_name + sequence) + def remove(self): From 2439d0ae99d8f6bb39fa753c5c5632a03bdc02be Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 18 Aug 2020 16:38:12 -0500 Subject: [PATCH 127/323] further work on the bacterial wrapper --- bacterial_genreads_wrapper.py | 54 ++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index c2cbe90..56b04ba 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -27,6 +27,11 @@ def get_file(self): return self.file def analyze(self): + """ + This function is supposed to just run genreads for the bacterium, but doing so requires some file + manipulation to unzip the file and fix genreads horribly formatted fasta file. + :return: None + """ args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] genReads.main(args) @@ -34,14 +39,12 @@ def analyze(self): # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped # fasta files, so we further have to unzip it for it to actually work. self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") - print(self.file) new_name = self.name + "_read1.fa.gz" self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) self.file = pathlib.Path().absolute() / (self.name + "_read1.fa.gz") - print(self.file) true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") unzip_file(self.file, true_path) - pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) # deletes unused zip file + pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) # deletes unused zip file self.file = true_path # end workaround @@ -65,13 +68,21 @@ def analyze(self): # re-write file with just the chrom name and sequence self.file.open('w').write(chromosome_name + sequence) - + def sample(self): + args = ['-r', str(self.reference), '-R', '101', '-o', self.name] + genReads.main(args) def remove(self): pathlib.Path.unlink(self.file) def unzip_file(zipped_file: pathlib, unzipped_file: pathlib): + """ + This unzips a gzipped file, then saves the unzipped file as a new file. + :param zipped_file: pathlib object that points to the zipped file + :param unzipped_file: pathlib object that points to the unzipped file + :return: + """ with gzip.open(zipped_file, 'rb') as f_in: with open(unzipped_file, 'wb') as f_out: shutil.copyfileobj(f_in, f_out) @@ -93,22 +104,13 @@ def cull(population: list, percentage: float = 0.5) -> list: return population -def crossover(population: list) -> list: - """ - This function will take a list of individuals and do crossover type mixing - :param population: - :return new_population: - """ - new_population = population - return new_population - - def initialize_population(reference: str, pop_size) -> list: """ - The purpose of this function is to evolve the bacteria - :param reference: - :param pop_size: - :return population: + The purpose of this function is to evolve the initial population of bacteria. All bacteria are stored as + Bacterium objects. + :param reference: string path to the reference fasta file + :param pop_size: size of the population to initialize. + :return population: returns a list of bacterium objects. """ names = [] for j in range(pop_size): @@ -140,6 +142,16 @@ def evolve_population(population: list, generation: int) -> list: return new_population +def sample_population(population: list): + """ + This will create a fastq based on each member of the population. + :param population: a list of bacteria + :return: None + """ + for bacterium in population: + bacterium.sample() + + def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') parser.add_argument('-r', type=str, required=True, metavar='reference fasta', @@ -159,14 +171,16 @@ def main(): for i in range(generations): new_population = evolve_population(population, i+1) - new_population = crossover(new_population) - new_population = cull(new_population, cull_percentage) # If all elements get culled, then break the loop if not new_population: break + population = new_population + + sample_population(population) + if __name__ == '__main__': main() From a3b185042ed609ddf380cb985f97397a316d6418 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 20 Aug 2020 12:10:37 -0500 Subject: [PATCH 128/323] Updating genreads code to pep8 --- genReads.py | 456 ++++++++++++++++++++------------------- py/SequenceContainer.py | 284 ++++++++++++------------ py/output_file_writer.py | 8 +- py/vcfFunc.py | 18 +- 4 files changed, 385 insertions(+), 381 deletions(-) diff --git a/genReads.py b/genReads.py index 0cc265e..10a3df1 100644 --- a/genReads.py +++ b/genReads.py @@ -27,10 +27,10 @@ from py.input_checking import required_field, check_file_open, is_in_range from py.ref_func import index_ref, read_ref, get_all_ref_regions, partition_ref_regions -from py.vcfFunc import parseVCF +from py.vcfFunc import parse_vcf from py.output_file_writer import OutputFileWriter from py.probability import DiscreteDistribution, mean_ind_of_weighted_list -from py.SequenceContainer import SequenceContainer, ReadContainer, parseInputMutationModel +from py.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model """////////////////////////////////////////////////// //////////// PARSE INPUT ARGUMENTS //////////// @@ -94,7 +94,6 @@ def main(raw_args=None): # if coverage val for a given window/position is below this value, consider it effectively zero. LOW_COV_THRESH = 50 - # required args (REFERENCE, READLEN, OUT_PREFIX) = (args.r, args.R, args.o) # various dataset parameters @@ -105,7 +104,7 @@ def main(raw_args=None): (SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = \ (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) - ONLY_VCF = (NO_FASTQ and SAVE_VCF and not (SAVE_BAM)) + ONLY_VCF = (NO_FASTQ and SAVE_VCF and not SAVE_BAM) if ONLY_VCF: print('Only producing VCF output, that should speed things up a bit...') @@ -160,7 +159,7 @@ def main(raw_args=None): # mutation models # - MUT_MODEL = parseInputMutationModel(MUT_MODEL, 1) + MUT_MODEL = parse_input_mutation_model(MUT_MODEL, 1) if MUT_RATE < 0.: MUT_RATE = None @@ -191,12 +190,12 @@ def main(raw_args=None): # if PAIRED_END and not (PAIRED_END_ARTIFICIAL): print('Using empirical fragment length distribution.') - [potential_vals, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) + [potential_values, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) FRAGLEN_VALS = [] FRAGLEN_PROB = [] - for i in range(len(potential_vals)): - if potential_vals[i] > READLEN: - FRAGLEN_VALS.append(potential_vals[i]) + for i in range(len(potential_values)): + if potential_values[i] > READLEN: + FRAGLEN_VALS.append(potential_values[i]) FRAGLEN_PROB.append(potential_prob[i]) # should probably add some validation and sanity-checking code here... FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) @@ -225,16 +224,18 @@ def main(raw_args=None): # fragment length distribution: normal distribution that goes out to +- 6 standard deviations if PAIRED_END and PAIRED_END_ARTIFICIAL: - print('Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) + print( + 'Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) if FRAGMENT_STD == 0: FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerate_val=FRAGMENT_SIZE) else: - potential_vals = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) + potential_values = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) FRAGLEN_VALS = [] - for i in range(len(potential_vals)): - if potential_vals[i] > READLEN: - FRAGLEN_VALS.append(potential_vals[i]) - FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in FRAGLEN_VALS] + for i in range(len(potential_values)): + if potential_values[i] > READLEN: + FRAGLEN_VALS.append(potential_values[i]) + FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in + FRAGLEN_VALS] FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) """************************************************ @@ -262,90 +263,90 @@ def main(raw_args=None): ALLOWED_NUCL = ['A', 'C', 'G', 'T'] # index reference - refIndex = index_ref(REFERENCE) + ref_index = index_ref(REFERENCE) if PAIRED_END: N_HANDLING = ('random', FRAGMENT_SIZE) else: N_HANDLING = ('ignore', READLEN) - indices_by_refName = {refIndex[n][0]: n for n in range(len(refIndex))} + indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} # parse input variants, if present - inputVariants = [] + input_variants = [] if INPUT_VCF is not None: - (sampNames, inputVariants) = parseVCF(INPUT_VCF, ploidy=PLOIDS) - for k in sorted(inputVariants.keys()): - inputVariants[k].sort() + (sampNames, input_variants) = parse_vcf(INPUT_VCF, ploidy=PLOIDS) + for k in sorted(input_variants.keys()): + input_variants[k].sort() # parse input targeted regions, if present - inputRegions = {} - refList = [n[0] for n in refIndex] + input_regions = {} + ref_list = [n[0] for n in ref_index] if INPUT_BED is not None: with open(INPUT_BED, 'r') as f: for line in f: - [myChr, pos1, pos2] = line.strip().split('\t')[:3] - if myChr not in inputRegions: - inputRegions[myChr] = [-1] - inputRegions[myChr].extend([int(pos1), int(pos2)]) + [my_chr, pos1, pos2] = line.strip().split('\t')[:3] + if my_chr not in input_regions: + input_regions[my_chr] = [-1] + input_regions[my_chr].extend([int(pos1), int(pos2)]) # some validation - nInBedOnly = 0 - nInRefOnly = 0 - for k in refList: - if k not in inputRegions: - nInRefOnly += 1 - for k in inputRegions.keys(): - if not k in refList: - nInBedOnly += 1 - del inputRegions[k] - if nInRefOnly > 0: + n_in_bed_only = 0 + n_in_ref_only = 0 + for k in ref_list: + if k not in input_regions: + n_in_ref_only += 1 + for k in input_regions.keys(): + if not k in ref_list: + n_in_bed_only += 1 + del input_regions[k] + if n_in_ref_only > 0: print('Warning: Reference contains sequences not found in targeted regions BED file.') - if nInBedOnly > 0: + if n_in_bed_only > 0: print( 'Warning: Targeted regions BED file contains sequence names not found in reference (regions ignored).') # parse input mutation rate rescaling regions, if present - mutRateRegions = {} - mutRateValues = {} + mut_rate_regions = {} + mut_rate_values = {} if MUT_BED is not None: with open(MUT_BED, 'r') as f: for line in f: - [myChr, pos1, pos2, metaData] = line.strip().split('\t')[:4] - mutStr = re.findall(r"MUT_RATE=.*?(?=;)", metaData + ';') + [my_chr, pos1, pos2, meta_data] = line.strip().split('\t')[:4] + mut_str = re.findall(r"MUT_RATE=.*?(?=;)", meta_data + ';') (pos1, pos2) = (int(pos1), int(pos2)) - if len(mutStr) and (pos2 - pos1) > 1: - # mutRate = #_mutations / length_of_region, let's bound it by a reasonable amount - mutRate = max([0.0, min([float(mutStr[0][9:]), 0.3])]) - if myChr not in mutRateRegions: - mutRateRegions[myChr] = [-1] - mutRateValues[myChr] = [0.0] - mutRateRegions[myChr].extend([pos1, pos2]) - mutRateValues.extend([mutRate * (pos2 - pos1)] * 2) + if len(mut_str) and (pos2 - pos1) > 1: + # mut_rate = #_mutations / length_of_region, let's bound it by a reasonable amount + mut_rate = max([0.0, min([float(mut_str[0][9:]), 0.3])]) + if my_chr not in mut_rate_regions: + mut_rate_regions[my_chr] = [-1] + mut_rate_values[my_chr] = [0.0] + mut_rate_regions[my_chr].extend([pos1, pos2]) + mut_rate_values.extend([mut_rate * (pos2 - pos1)] * 2) # initialize output files (part I) - bamHeader = None + bam_header = None if SAVE_BAM: - bamHeader = [copy.deepcopy(refIndex)] - vcfHeader = None + bam_header = [copy.deepcopy(ref_index)] + vcf_header = None if SAVE_VCF: - vcfHeader = [REFERENCE] + vcf_header = [REFERENCE] # If processing jobs in parallel, precompute the independent regions that can be process separately if NJOBS > 1: - parallelRegionList = get_all_ref_regions(REFERENCE, refIndex, N_HANDLING, save_output=SAVE_NON_N) - (myRefs, myRegions) = partition_ref_regions(parallelRegionList, refIndex, MYJOB, NJOBS) + parallel_region_list = get_all_ref_regions(REFERENCE, ref_index, N_HANDLING, save_output=SAVE_NON_N) + (myRefs, myRegions) = partition_ref_regions(parallel_region_list, ref_index, MYJOB, NJOBS) if not len(myRegions): print('This job id has no regions to process, exiting...') exit(1) - for i in range(len(refIndex) - 1, -1, -1): # delete reference not used in our job - if not refIndex[i][0] in myRefs: - del refIndex[i] + for i in range(len(ref_index) - 1, -1, -1): # delete reference not used in our job + if not ref_index[i][0] in myRefs: + del ref_index[i] # if value of NJOBS is too high, let's change it to the maximum possible, to avoid output filename confusion - corrected_nJobs = min([NJOBS, sum([len(n) for n in parallelRegionList.values()])]) + corrected_n_jobs = min([NJOBS, sum([len(n) for n in parallel_region_list.values()])]) else: - corrected_nJobs = 1 + corrected_n_jobs = 1 # initialize output files (part II) - OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, bam_header=bamHeader, vcf_header=vcfHeader, - gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_nJobs), no_fastq=NO_FASTQ, + OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, bam_header=bam_header, vcf_header=vcf_header, + gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_n_jobs), no_fastq=NO_FASTQ, fasta_instead=FASTA_INSTEAD) OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] @@ -353,55 +354,55 @@ def main(raw_args=None): **** LET'S GET THIS PARTY STARTED... ************************************************""" - readNameCount = 1 # keep track of the number of reads we've sampled, for read-names + read_name_count = 1 # keep track of the number of reads we've sampled, for read-names unmapped_records = [] - for RI in range(len(refIndex)): + for RI in range(len(ref_index)): # read in reference sequence and notate blocks of Ns - (refSequence, N_regions) = read_ref(REFERENCE, refIndex[RI], N_HANDLING) + (refSequence, n_regions) = read_ref(REFERENCE, ref_index[RI], N_HANDLING) # if we're processing jobs in parallel only take the regions relevant for the current job if NJOBS > 1: - for i in range(len(N_regions['non_N']) - 1, -1, -1): - if not (refIndex[RI][0], N_regions['non_N'][i][0], N_regions['non_N'][i][1]) in myRegions: - del N_regions['non_N'][i] + for i in range(len(n_regions['non_N']) - 1, -1, -1): + if not (ref_index[RI][0], n_regions['non_N'][i][0], n_regions['non_N'][i][1]) in myRegions: + del n_regions['non_N'][i] # count total bp we'll be spanning so we can get an idea of how far along we are (for printing progress indicators) - total_bp_span = sum([n[1] - n[0] for n in N_regions['non_N']]) - currentProgress = 0 - currentPercent = 0 - havePrinted100 = False + total_bp_span = sum([n[1] - n[0] for n in n_regions['non_N']]) + current_progress = 0 + current_percent = 0 + have_printed100 = False # prune invalid input variants, e.g variants that: # - try to delete or alter any N characters # - don't match the reference base at their specified position # - any alt allele contains anything other than allowed characters - validVariants = [] - nSkipped = [0, 0, 0] - if refIndex[RI][0] in inputVariants: - for n in inputVariants[refIndex[RI][0]]: + valid_variants = [] + n_skipped = [0, 0, 0] + if ref_index[RI][0] in input_variants: + for n in input_variants[ref_index[RI][0]]: span = (n[0], n[0] + len(n[1])) - rseq = str(refSequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords - anyBadChr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) - if rseq != n[1]: - nSkipped[0] += 1 + r_seq = str(refSequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords + any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) + if r_seq != n[1]: + n_skipped[0] += 1 continue - elif 'N' in rseq: - nSkipped[1] += 1 + elif 'N' in r_seq: + n_skipped[1] += 1 continue - elif anyBadChr: - nSkipped[2] += 1 + elif any_bad_chr: + n_skipped[2] += 1 continue - # if bisect.bisect(N_regions['big'],span[0])%2 or bisect.bisect(N_regions['big'],span[1])%2: - # continue - validVariants.append(n) - print('found', len(validVariants), 'valid variants for ' + refIndex[RI][0] + ' in input VCF...') - if any(nSkipped): - print(sum(nSkipped), 'variants skipped...') - print(' - [' + str(nSkipped[0]) + '] ref allele does not match reference') - print(' - [' + str(nSkipped[1]) + '] attempting to insert into N-region') - print(' - [' + str(nSkipped[2]) + '] alt allele contains non-ACGT characters') + # if bisect.bisect(n_regions['big'],span[0])%2 or bisect.bisect(n_regions['big'],span[1])%2: + # continue + valid_variants.append(n) + print('found', len(valid_variants), 'valid variants for ' + ref_index[RI][0] + ' in input VCF...') + if any(n_skipped): + print(sum(n_skipped), 'variants skipped...') + print(' - [' + str(n_skipped[0]) + '] ref allele does not match reference') + print(' - [' + str(n_skipped[1]) + '] attempting to insert into N-region') + print(' - [' + str(n_skipped[2]) + '] alt allele contains non-ACGT characters') # add large random structural variants # @@ -413,17 +414,17 @@ def main(raw_args=None): # - FRAGMENT_SIZE (mean), if paired-end reads # ploidy is fixed per large sampling window, # coverage distributions due to GC% and targeted regions are specified within these windows - samplingWindows = [] + sampling_windows = [] ALL_VARIANTS_OUT = {} sequences = None if PAIRED_END: - targSize = WINDOW_TARGET_SCALE * FRAGMENT_SIZE + target_size = WINDOW_TARGET_SCALE * FRAGMENT_SIZE overlap = FRAGMENT_SIZE - overlap_minWindowSize = max(FRAGLEN_DISTRIBUTION.values) + 10 + overlap_min_window_size = max(FRAGLEN_DISTRIBUTION.values) + 10 else: - targSize = WINDOW_TARGET_SCALE * READLEN + target_size = WINDOW_TARGET_SCALE * READLEN overlap = READLEN - overlap_minWindowSize = READLEN + 10 + overlap_min_window_size = READLEN + 10 print('--------------------------------') if ONLY_VCF: @@ -432,56 +433,56 @@ def main(raw_args=None): print('sampling reads...') tt = time.time() - for i in range(len(N_regions['non_N'])): - (pi, pf) = N_regions['non_N'][i] - nTargWindows = max([1, (pf - pi) // targSize]) - bpd = int((pf - pi) / float(nTargWindows)) + for i in range(len(n_regions['non_N'])): + (pi, pf) = n_regions['non_N'][i] + n_target_windows = max([1, (pf - pi) // target_size]) + bpd = int((pf - pi) / float(n_target_windows)) # bpd += GC_WINDOW_SIZE - bpd%GC_WINDOW_SIZE - # print len(refSequence), (pi,pf), nTargWindows - # print structuralVars + # print len(refSequence), (pi,pf), n_target_windows + # print structural_vars # if for some reason our region is too small to process, skip it! (sorry) - if nTargWindows == 1 and (pf - pi) < overlap_minWindowSize: + if n_target_windows == 1 and (pf - pi) < overlap_min_window_size: # print 'Does this ever happen?' continue start = pi end = min([start + bpd, pf]) - # print '------------------RAWR:', (pi,pf), nTargWindows, bpd - varsFromPrevOverlap = [] - vindFromPrev = 0 - isLastTime = False - havePrinted100 = False + # print '------------------RAWR:', (pi,pf), n_target_windows, bpd + vars_from_prev_overlap = [] + vind_from_prev = 0 + is_last_time = False + have_printed100 = False while True: # which inserted variants are in this window? - varsInWindow = [] + vars_in_window = [] updated = False - for j in range(vindFromPrev, len(validVariants)): - vPos = validVariants[j][0] - if vPos > start and vPos < end: # update: changed >= to >, so variant cannot be inserted in first position - varsInWindow.append(tuple([vPos - 1] + list(validVariants[j][1:]))) # vcf --> array coords - if vPos >= end - overlap - 1 and updated == False: + for j in range(vind_from_prev, len(valid_variants)): + v_pos = valid_variants[j][0] + if start < v_pos < end: # update: changed >= to >, so variant cannot be inserted in first position + vars_in_window.append(tuple([v_pos - 1] + list(valid_variants[j][1:]))) # vcf --> array coords + if v_pos >= end - overlap - 1 and updated is False: updated = True - vindFromPrev = j - if vPos >= end: + vind_from_prev = j + if v_pos >= end: break # determine which structural variants will affect our sampling window positions - structuralVars = [] - for n in varsInWindow: - bufferNeeded = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in + structural_vars = [] + for n in vars_in_window: + buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in n[2]]) # change: added abs() so that insertions are also buffered. - structuralVars.append((n[0] - 1, bufferNeeded)) # -1 because going from VCF coords to array coords + structural_vars.append((n[0] - 1, buffer_needed)) # -1 because going from VCF coords to array coords # adjust end-position of window based on inserted structural mutations buffer_added = 0 - keepGoing = True - while keepGoing: - keepGoing = False - for n in structuralVars: + keep_going = True + while keep_going: + keep_going = False + for n in structural_vars: # adding "overlap" here to prevent SVs from being introduced in overlap regions # (which can cause problems if random mutations from the previous window land on top of them) delta = (end - 1) - (n[0] + n[1]) - 2 - overlap @@ -490,25 +491,25 @@ def main(raw_args=None): buffer_added = -delta end += buffer_added ####print end - keepGoing = True + keep_going = True break next_start = end - overlap next_end = min([next_start + bpd, pf]) if next_end - next_start < bpd: end = next_end - isLastTime = True + is_last_time = True # print progress indicator ####print 'PROCESSING WINDOW:',(start,end), [buffer_added], 'next:', (next_start,next_end) - currentProgress += end - start - newPercent = int((currentProgress * 100) / float(total_bp_span)) - if newPercent > currentPercent: - if newPercent <= 99 or (newPercent == 100 and not havePrinted100): - sys.stdout.write(str(newPercent) + '% ') + current_progress += end - start + new_percent = int((current_progress * 100) / float(total_bp_span)) + if new_percent > current_percent: + if new_percent <= 99 or (new_percent == 100 and not have_printed100): + sys.stdout.write(str(new_percent) + '% ') sys.stdout.flush() - currentPercent = newPercent - if currentPercent == 100: - havePrinted100 = True + current_percent = new_percent + if current_percent == 100: + have_printed100 = True skip_this_window = False @@ -518,11 +519,11 @@ def main(raw_args=None): if INPUT_BED is None: coverage_dat[2] = [1.0] * (end - start) else: - if refIndex[RI][0] not in inputRegions: + if ref_index[RI][0] not in input_regions: coverage_dat[2] = [OFFTARGET_SCALAR] * (end - start) else: for j in range(start, end): - if not (bisect.bisect(inputRegions[refIndex[RI][0]], j) % 2): + if not (bisect.bisect(input_regions[ref_index[RI][0]], j) % 2): coverage_dat[2].append(1.0) else: coverage_dat[2].append(OFFTARGET_SCALAR) @@ -533,18 +534,18 @@ def main(raw_args=None): skip_this_window = True # check for small window sizes - if (end - start) < overlap_minWindowSize: + if (end - start) < overlap_min_window_size: skip_this_window = True if skip_this_window: # skip window, save cpu time start = next_start end = next_end - if isLastTime: + if is_last_time: break if end >= pf: - isLastTime = True - varsFromPrevOverlap = [] + is_last_time = True + vars_from_prev_overlap = [] continue # construct sequence data that we will sample reads from @@ -556,7 +557,7 @@ def main(raw_args=None): MUT_RATE) # insert variants - sequences.insert_mutations(varsFromPrevOverlap + varsInWindow) + sequences.insert_mutations(vars_from_prev_overlap + vars_in_window) all_inserted_variants = sequences.random_mutations() # print all_inserted_variants @@ -568,121 +569,123 @@ def main(raw_args=None): coverage_avg = sequences.init_coverage(tuple(coverage_dat)) # which variants do we need to keep for next time (because of window overlap)? - varsFromPrevOverlap = [] + vars_from_prev_overlap = [] for n in all_inserted_variants: if n[0] >= end - overlap - 1: - varsFromPrevOverlap.append(n) + vars_from_prev_overlap.append(n) # if we're only producing VCF, no need to go through the hassle of generating reads if ONLY_VCF: pass else: if PAIRED_END: - readsToSample = int(((end - start) * float(COVERAGE) * coverage_avg) / (2 * READLEN)) + 1 + reads_to_sample = int(((end - start) * float(COVERAGE) * coverage_avg) / (2 * READLEN)) + 1 else: - readsToSample = int(((end - start) * float(COVERAGE) * coverage_avg) / (READLEN)) + 1 + reads_to_sample = int(((end - start) * float(COVERAGE) * coverage_avg) / (READLEN)) + 1 # if coverage is so low such that no reads are to be sampled, skip region # (i.e., remove buffer of +1 reads we add to every window) - if readsToSample == 1 and sum(coverage_dat[2]) < LOW_COV_THRESH: - readsToSample = 0 + if reads_to_sample == 1 and sum(coverage_dat[2]) < LOW_COV_THRESH: + reads_to_sample = 0 # sample reads ASDF2_TT = time.time() - for i in range(readsToSample): + for i in range(reads_to_sample): - isUnmapped = [] + is_unmapped = [] if PAIRED_END: - myFraglen = FRAGLEN_DISTRIBUTION.sample() - myReadData = sequences.sample_read(SE_CLASS, myFraglen) - if myReadData is None: # skip if we failed to find a valid position to sample read + my_fraglen = FRAGLEN_DISTRIBUTION.sample() + my_read_data = sequences.sample_read(SE_CLASS, my_fraglen) + if my_read_data is None: # skip if we failed to find a valid position to sample read continue - if myReadData[0][0] is None: - isUnmapped.append(True) + if my_read_data[0][0] is None: + is_unmapped.append(True) else: - isUnmapped.append(False) - myReadData[0][0] += start # adjust mapping position based on window start - if myReadData[1][0] is None: - isUnmapped.append(True) + is_unmapped.append(False) + my_read_data[0][0] += start # adjust mapping position based on window start + if my_read_data[1][0] is None: + is_unmapped.append(True) else: - isUnmapped.append(False) - myReadData[1][0] += start + is_unmapped.append(False) + my_read_data[1][0] += start else: - myReadData = sequences.sample_read(SE_CLASS) - if myReadData is None: # skip if we failed to find a valid position to sample read + my_read_data = sequences.sample_read(SE_CLASS) + if my_read_data is None: # skip if we failed to find a valid position to sample read continue - if myReadData[0][0] is None: # unmapped read (lives in large insertion) - isUnmapped = [True] + if my_read_data[0][0] is None: # unmapped read (lives in large insertion) + is_unmapped = [True] else: - isUnmapped = [False] - myReadData[0][0] += start # adjust mapping position based on window start + is_unmapped = [False] + my_read_data[0][0] += start # adjust mapping position based on window start if NJOBS > 1: - myReadName = OUT_PREFIX_NAME + '-j' + str(MYJOB) + '-' + refIndex[RI][0] + '-r' + str( - readNameCount) + my_read_name = OUT_PREFIX_NAME + '-j' + str(MYJOB) + '-' + ref_index[RI][0] + '-r' + str( + read_name_count) else: - myReadName = OUT_PREFIX_NAME + '-' + refIndex[RI][0] + '-' + str(readNameCount) - readNameCount += len(myReadData) + my_read_name = OUT_PREFIX_NAME + '-' + ref_index[RI][0] + '-' + str(read_name_count) + read_name_count += len(my_read_data) # if desired, replace all low-quality bases with Ns if N_MAX_QUAL > -1: - for j in range(len(myReadData)): - myReadString = [n for n in myReadData[j][2]] - for k in range(len(myReadData[j][3])): - adjusted_qual = ord(myReadData[j][3][k]) - SE_CLASS.offQ + for j in range(len(my_read_data)): + my_read_string = [n for n in my_read_data[j][2]] + for k in range(len(my_read_data[j][3])): + adjusted_qual = ord(my_read_data[j][3][k]) - SE_CLASS.offQ if adjusted_qual <= N_MAX_QUAL: - myReadString[k] = 'N' - myReadData[j][2] = ''.join(myReadString) + my_read_string[k] = 'N' + my_read_data[j][2] = ''.join(my_read_string) # if read (or read + mate for PE) are unmapped, put them at end of bam file - if all(isUnmapped): + if all(is_unmapped): if PAIRED_END: - unmapped_records.append((myReadName + '/1', myReadData[0], 109)) - unmapped_records.append((myReadName + '/2', myReadData[1], 157)) + unmapped_records.append((my_read_name + '/1', my_read_data[0], 109)) + unmapped_records.append((my_read_name + '/2', my_read_data[1], 157)) else: - unmapped_records.append((myReadName + '/1', myReadData[0], 4)) + unmapped_records.append((my_read_name + '/1', my_read_data[0], 4)) # write read data out to FASTQ and BAM files, bypass FASTQ if option specified - myRefIndex = indices_by_refName[refIndex[RI][0]] - if len(myReadData) == 1: - if NO_FASTQ != True: - OFW.write_fastq_record(myReadName, myReadData[0][2], myReadData[0][3]) + myRefIndex = indices_by_ref_name[ref_index[RI][0]] + if len(my_read_data) == 1: + if NO_FASTQ is not True: + OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3]) if SAVE_BAM: - if isUnmapped[0] == False: - OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], sam_flag=0) - elif len(myReadData) == 2: - if NO_FASTQ != True: - OFW.write_fastq_record(myReadName, myReadData[0][2], myReadData[0][3], - read2=myReadData[1][2], qual2=myReadData[1][3]) + if is_unmapped[0] is False: + OFW.write_bam_record(myRefIndex, my_read_name + '/1', my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], + sam_flag=0) + elif len(my_read_data) == 2: + if NO_FASTQ is not True: + OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3], + read2=my_read_data[1][2], qual2=my_read_data[1][3]) if SAVE_BAM: - if isUnmapped[0] == False and isUnmapped[1] == False: - OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], sam_flag=99, - mate_pos=myReadData[1][0]) - OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[1][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - sam_flag=147, mate_pos=myReadData[0][0]) - elif isUnmapped[0] == False and isUnmapped[1] == True: - OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[0][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], - sam_flag=105, mate_pos=myReadData[0][0]) - OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[0][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - sam_flag=149, mate_pos=myReadData[0][0], aln_map_qual=0) - elif isUnmapped[0] == True and isUnmapped[1] == False: - OFW.write_bam_record(myRefIndex, myReadName + '/1', myReadData[1][0], - myReadData[0][1], myReadData[0][2], myReadData[0][3], - sam_flag=101, mate_pos=myReadData[1][0], aln_map_qual=0) - OFW.write_bam_record(myRefIndex, myReadName + '/2', myReadData[1][0], - myReadData[1][1], myReadData[1][2], myReadData[1][3], - sam_flag=153, mate_pos=myReadData[1][0]) + if is_unmapped[0] is False and is_unmapped[1] is False: + OFW.write_bam_record(myRefIndex, my_read_name + '/1', my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], + sam_flag=99, + mate_pos=my_read_data[1][0]) + OFW.write_bam_record(myRefIndex, my_read_name + '/2', my_read_data[1][0], + my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], + sam_flag=147, mate_pos=my_read_data[0][0]) + elif is_unmapped[0] == False and is_unmapped[1] == True: + OFW.write_bam_record(myRefIndex, my_read_name + '/1', my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], + sam_flag=105, mate_pos=my_read_data[0][0]) + OFW.write_bam_record(myRefIndex, my_read_name + '/2', my_read_data[0][0], + my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], + sam_flag=149, mate_pos=my_read_data[0][0], aln_map_quality=0) + elif is_unmapped[0] == True and is_unmapped[1] == False: + OFW.write_bam_record(myRefIndex, my_read_name + '/1', my_read_data[1][0], + my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], + sam_flag=101, mate_pos=my_read_data[1][0], aln_map_quality=0) + OFW.write_bam_record(myRefIndex, my_read_name + '/2', my_read_data[1][0], + my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], + sam_flag=153, mate_pos=my_read_data[1][0]) else: print('\nError: Unexpected number of reads generated...\n') exit(1) # print 'READS:',time.time()-ASDF2_TT - if not isLastTime: + if not is_last_time: OFW.flush_buffers(bam_max=next_start) else: OFW.flush_buffers(bam_max=end + 1) @@ -694,12 +697,12 @@ def main(raw_args=None): # prepare indices of next window start = next_start end = next_end - if isLastTime: + if is_last_time: break if end >= pf: - isLastTime = True + is_last_time = True - if currentPercent != 100 and not havePrinted100: + if current_percent != 100 and not have_printed100: print('100%') else: print('') @@ -713,12 +716,12 @@ def main(raw_args=None): if SAVE_VCF: print('Writing output VCF...') for k in sorted(ALL_VARIANTS_OUT.keys()): - currentRef = refIndex[RI][0] - myID = '.' - myQual = '.' - myFilt = 'PASS' + current_ref = ref_index[RI][0] + my_id = '.' + my_quality = '.' + my_filter = 'PASS' # k[0] + 1 because we're going back to 1-based vcf coords - OFW.write_vcf_record(currentRef, str(int(k[0]) + 1), myID, k[1], k[2], myQual, myFilt, k[4]) + OFW.write_vcf_record(current_ref, str(int(k[0]) + 1), my_id, k[1], k[2], my_quality, my_filter, k[4]) # break @@ -728,12 +731,13 @@ def main(raw_args=None): for umr in unmapped_records: if PAIRED_END: OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], mate_pos=0, - aln_map_qual=0) + aln_map_quality=0) else: - OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], aln_map_qual=0) + OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], aln_map_quality=0) # close output files OFW.close_files() + if __name__ == '__main__': main() diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index bfa4bc7..0b95005 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -525,7 +525,7 @@ def sample_read(self, sequencingModel, frag_len=None): # sample read position and call function to compute quality scores / sequencing errors r_dat = self.sequences[my_ploid][r_pos:r_pos + self.read_len] - (myQual, myErrors) = sequencingModel.getSequencingErrors(r_dat) + (myQual, myErrors) = sequencingModel.get_sequencing_errors(r_dat) readsToSample.append([r_pos, myQual, myErrors, r_dat]) else: @@ -538,8 +538,8 @@ def sample_read(self, sequencingModel, frag_len=None): r_pos2 = r_pos1 + frag_len - self.read_len r_dat1 = self.sequences[my_ploid][r_pos1:r_pos1 + self.read_len] r_dat2 = self.sequences[my_ploid][r_pos2:r_pos2 + self.read_len] - (myQual1, myErrors1) = sequencingModel.getSequencingErrors(r_dat1) - (myQual2, myErrors2) = sequencingModel.getSequencingErrors(r_dat2, isReverseStrand=True) + (myQual1, myErrors1) = sequencingModel.get_sequencing_errors(r_dat1) + (myQual2, myErrors2) = sequencingModel.get_sequencing_errors(r_dat2, is_reverse_strand=True) readsToSample.append([r_pos1, myQual1, myErrors1, r_dat1]) readsToSample.append([r_pos2, myQual2, myErrors2, r_dat2]) @@ -671,7 +671,7 @@ def sample_read(self, sequencingModel, frag_len=None): # Container for read data, computes quality scores and positions to insert errors # class ReadContainer: - def __init__(self, read_len, errorModel, reScaledError): + def __init__(self, read_len, errorModel, rescaled_error): self.read_len = read_len @@ -679,64 +679,64 @@ def __init__(self, read_len, errorModel, reScaledError): self.UNIFORM = False if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True - [Qscores, offQ, avgError, errorParams] = error_dat - self.uniform_qscore = int(-10. * np.log10(avgError) + 0.5) - print('Using uniform sequencing error model. (q=' + str(self.uniform_qscore) + '+' + str( - offQ) + ', p(err)={0:0.2f}%)'.format(100. * avgError)) + [q_scores, off_q, avg_error, error_params] = error_dat + self.uniform_q_score = int(-10. * np.log10(avg_error) + 0.5) + print('Using uniform sequencing error model. (q=' + str(self.uniform_q_score) + '+' + str( + off_q) + ', p(err)={0:0.2f}%)'.format(100. * avg_error)) if len(error_dat) == 6: # only 1 q-score model present, use same model for both strands - [initQ1, probQ1, Qscores, offQ, avgError, errorParams] = error_dat + [init_q1, prob_q1, q_scores, off_q, avg_error, error_params] = error_dat self.PE_MODELS = False elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands # print 'Using paired-read quality score profiles...' - [initQ1, probQ1, initQ2, probQ2, Qscores, offQ, avgError, errorParams] = error_dat + [init_q1, prob_q1, initQ2, probQ2, q_scores, off_q, avg_error, error_params] = error_dat self.PE_MODELS = True - if len(initQ1) != len(initQ2) or len(probQ1) != len(probQ2): + if len(init_q1) != len(initQ2) or len(prob_q1) != len(probQ2): print('\nError: R1 and R2 quality score models are of different length.\n') exit(1) - self.qErrRate = [0.] * (max(Qscores) + 1) - for q in Qscores: + self.qErrRate = [0.] * (max(q_scores) + 1) + for q in q_scores: self.qErrRate[q] = 10. ** (-q / 10.) - self.offQ = offQ + self.offQ = off_q - # errorParams = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] - self.errP = errorParams + # error_params = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] + self.errP = error_params self.errSSE = [DiscreteDistribution(n, NUCL) for n in self.errP[0]] self.errSIE = DiscreteDistribution(self.errP[2], self.errP[3]) self.errSIN = DiscreteDistribution(self.errP[5], NUCL) # adjust sequencing error frequency to match desired rate - if reScaledError == None: + if rescaled_error is None: self.errorScale = 1.0 else: - self.errorScale = reScaledError / avgError + self.errorScale = rescaled_error / avg_error print('Warning: Quality scores no longer exactly representative of error probability. ' 'Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale)) if not self.UNIFORM: # adjust length to match desired read length - if self.read_len == len(initQ1): + if self.read_len == len(init_q1): self.qIndRemap = range(self.read_len) else: - print('Warning: Read length of error model (' + str(len(initQ1)) + ') does not match -R value (' + str( + print('Warning: Read length of error model (' + str(len(init_q1)) + ') does not match -R value (' + str( self.read_len) + '), rescaling model...') - self.qIndRemap = [max([1, len(initQ1) * n // read_len]) for n in range(read_len)] + self.qIndRemap = [max([1, len(init_q1) * n // read_len]) for n in range(read_len)] # initialize probability distributions - self.initDistByPos1 = [DiscreteDistribution(initQ1[i], Qscores) for i in range(len(initQ1))] + self.initDistByPos1 = [DiscreteDistribution(init_q1[i], q_scores) for i in range(len(init_q1))] self.probDistByPosByPrevQ1 = [None] - for i in range(1, len(initQ1)): + for i in range(1, len(init_q1)): self.probDistByPosByPrevQ1.append([]) - for j in range(len(initQ1[0])): - if np.sum(probQ1[i][ + for j in range(len(init_q1[0])): + if np.sum(prob_q1[i][ j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore self.probDistByPosByPrevQ1[-1].append( - DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) + DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(probQ1[i][j], Qscores)) + self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(prob_q1[i][j], q_scores)) if self.PE_MODELS: - self.initDistByPos2 = [DiscreteDistribution(initQ2[i], Qscores) for i in range(len(initQ2))] + self.initDistByPos2 = [DiscreteDistribution(initQ2[i], q_scores) for i in range(len(initQ2))] self.probDistByPosByPrevQ2 = [None] for i in range(1, len(initQ2)): self.probDistByPosByPrevQ2.append([]) @@ -744,90 +744,90 @@ def __init__(self, read_len, errorModel, reScaledError): if np.sum(probQ2[i][ j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore self.probDistByPosByPrevQ2[-1].append( - DiscreteDistribution([1], [Qscores[j]], degenerate_val=Qscores[j])) + DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], Qscores)) + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], q_scores)) - def getSequencingErrors(self, readData, isReverseStrand=False): + def get_sequencing_errors(self, read_data, is_reverse_strand=False): - qOut = [0] * self.read_len - sErr = [] + q_out = [0] * self.read_len + s_err = [] if self.UNIFORM: - myQ = [self.uniform_qscore + self.offQ for n in range(self.read_len)] - qOut = ''.join([chr(n) for n in myQ]) + my_q = [self.uniform_q_score + self.offQ for n in range(self.read_len)] + q_out = ''.join([chr(n) for n in my_q]) for i in range(self.read_len): - if random.random() < self.errorScale * self.qErrRate[self.uniform_qscore]: - sErr.append(i) + if random.random() < self.errorScale * self.qErrRate[self.uniform_q_score]: + s_err.append(i) else: - if self.PE_MODELS and isReverseStrand: - myQ = self.initDistByPos2[0].sample() + if self.PE_MODELS and is_reverse_strand: + my_q = self.initDistByPos2[0].sample() else: - myQ = self.initDistByPos1[0].sample() - qOut[0] = myQ + my_q = self.initDistByPos1[0].sample() + q_out[0] = my_q for i in range(1, self.read_len): - if self.PE_MODELS and isReverseStrand: - myQ = self.probDistByPosByPrevQ2[self.qIndRemap[i]][myQ].sample() + if self.PE_MODELS and is_reverse_strand: + my_q = self.probDistByPosByPrevQ2[self.qIndRemap[i]][my_q].sample() else: - myQ = self.probDistByPosByPrevQ1[self.qIndRemap[i]][myQ].sample() - qOut[i] = myQ + my_q = self.probDistByPosByPrevQ1[self.qIndRemap[i]][my_q].sample() + q_out[i] = my_q - if isReverseStrand: - qOut = qOut[::-1] + if is_reverse_strand: + q_out = q_out[::-1] for i in range(self.read_len): - if random.random() < self.errorScale * self.qErrRate[qOut[i]]: - sErr.append(i) + if random.random() < self.errorScale * self.qErrRate[q_out[i]]: + s_err.append(i) - qOut = ''.join([chr(n + self.offQ) for n in qOut]) + q_out = ''.join([chr(n + self.offQ) for n in q_out]) if self.errorScale == 0.0: - return (qOut, []) + return q_out, [] - sOut = [] - nDelSoFar = 0 + s_out = [] + n_del_so_far = 0 # don't allow indel errors to occur on subsequent positions - prevIndel = -2 + prev_indel = -2 # don't allow other sequencing errors to occur on bases removed by deletion errors - delBlacklist = [] + del_blacklist = [] - for ind in sErr[::-1]: # for each error that we're going to insert... + for ind in s_err[::-1]: # for each error that we're going to insert... # determine error type - isSub = True - if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind - prevIndel) > 1: + is_sub = True + if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind - prev_indel) > 1: if random.random() < self.errP[1]: - isSub = False + is_sub = False # error_out = (type, len, pos, ref, alt) - if isSub: # insert substitution error - myNucl = str(readData[ind]) - new_nucl = self.errSSE[NUC_IND[myNucl]].sample() - sOut.append(('S', 1, ind, myNucl, new_nucl)) + if is_sub: # insert substitution error + my_nucl = str(read_data[ind]) + new_nucl = self.errSSE[NUC_IND[my_nucl]].sample() + s_out.append(('S', 1, ind, my_nucl, new_nucl)) else: # insert indel error - indelLen = self.errSIE.sample() + indel_len = self.errSIE.sample() if random.random() < self.errP[4]: # insertion error - myNucl = str(readData[ind]) - new_nucl = myNucl + ''.join([self.errSIN.sample() for n in range(indelLen)]) - sOut.append(('I', len(new_nucl) - 1, ind, myNucl, new_nucl)) - elif ind < self.read_len - 2 - nDelSoFar: # deletion error (prevent too many of them from stacking up) - myNucl = str(readData[ind:ind + indelLen + 1]) - new_nucl = str(readData[ind]) - nDelSoFar += len(myNucl) - 1 - sOut.append(('D', len(myNucl) - 1, ind, myNucl, new_nucl)) - for i in range(ind + 1, ind + indelLen + 1): - delBlacklist.append(i) - prevIndel = ind + my_nucl = str(read_data[ind]) + new_nucl = my_nucl + ''.join([self.errSIN.sample() for n in range(indel_len)]) + s_out.append(('I', len(new_nucl) - 1, ind, my_nucl, new_nucl)) + elif ind < self.read_len - 2 - n_del_so_far: # deletion error (prevent too many of them from stacking up) + my_nucl = str(read_data[ind:ind + indel_len + 1]) + new_nucl = str(read_data[ind]) + n_del_so_far += len(my_nucl) - 1 + s_out.append(('D', len(my_nucl) - 1, ind, my_nucl, new_nucl)) + for i in range(ind + 1, ind + indel_len + 1): + del_blacklist.append(i) + prev_indel = ind # remove blacklisted errors - for i in range(len(sOut) - 1, -1, -1): - if sOut[i][2] in delBlacklist: - del sOut[i] + for i in range(len(s_out) - 1, -1, -1): + if s_out[i][2] in del_blacklist: + del s_out[i] - return (qOut, sOut) + return q_out, s_out """************************************************ @@ -836,76 +836,76 @@ def getSequencingErrors(self, readData, isReverseStrand=False): # parse mutation model pickle file -def parseInputMutationModel(model=None, whichDefault=1): - if whichDefault == 1: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] - elif whichDefault == 2: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] +def parse_input_mutation_model(model=None, which_default=1): + if which_default == 1: + out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] + elif which_default == 2: + out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] else: print('\nError: Unknown default mutation model specified\n') exit(1) - if model != None: + if model is not None: pickle_dict = pickle.load(open(model, "rb")) - outModel[0] = pickle_dict['AVG_MUT_RATE'] - outModel[2] = 1. - pickle_dict['SNP_FREQ'] - - insList = pickle_dict['INDEL_FREQ'] - if len(insList): - insCount = sum([insList[k] for k in insList.keys() if k >= 1]) - delCount = sum([insList[k] for k in insList.keys() if k <= -1]) - insVals = [k for k in sorted(insList.keys()) if k >= 1] - insWght = [insList[k] / float(insCount) for k in insVals] - delVals = [k for k in sorted([abs(k) for k in insList.keys() if k <= -1])] - delWght = [insList[-k] / float(delCount) for k in delVals] + out_model[0] = pickle_dict['AVG_MUT_RATE'] + out_model[2] = 1. - pickle_dict['SNP_FREQ'] + + ins_list = pickle_dict['INDEL_FREQ'] + if len(ins_list): + ins_count = sum([ins_list[k] for k in ins_list.keys() if k >= 1]) + del_count = sum([ins_list[k] for k in ins_list.keys() if k <= -1]) + ins_vals = [k for k in sorted(ins_list.keys()) if k >= 1] + ins_wght = [ins_list[k] / float(ins_count) for k in ins_vals] + del_vals = [k for k in sorted([abs(k) for k in ins_list.keys() if k <= -1])] + del_wght = [ins_list[-k] / float(del_count) for k in del_vals] else: # degenerate case where no indel stats are provided - insCount = 1 - delCount = 1 - insVals = [1] - insWght = [1.0] - delVals = [1] - delWght = [1.0] - outModel[3] = insCount / float(insCount + delCount) - outModel[4] = insVals - outModel[5] = insWght - outModel[6] = delVals - outModel[7] = delWght + ins_count = 1 + del_count = 1 + ins_vals = [1] + ins_wght = [1.0] + del_vals = [1] + del_wght = [1.0] + out_model[3] = ins_count / float(ins_count + del_count) + out_model[4] = ins_vals + out_model[5] = ins_wght + out_model[6] = del_vals + out_model[7] = del_wght trinuc_trans_prob = pickle_dict['TRINUC_TRANS_PROBS'] for k in sorted(trinuc_trans_prob.keys()): - myInd = TRI_IND[k[0][0] + k[0][2]] + my_ind = TRI_IND[k[0][0] + k[0][2]] (k1, k2) = (NUC_IND[k[0][1]], NUC_IND[k[1][1]]) - outModel[8][myInd][k1][k2] = trinuc_trans_prob[k] - for i in range(len(outModel[8])): - for j in range(len(outModel[8][i])): - for l in range(len(outModel[8][i][j])): + out_model[8][my_ind][k1][k2] = trinuc_trans_prob[k] + for i in range(len(out_model[8])): + for j in range(len(out_model[8][i])): + for l in range(len(out_model[8][i][j])): # if trinuc not present in input mutation model, assign it uniform probability - if float(sum(outModel[8][i][j])) < 1e-12: - outModel[8][i][j] = [0.25, 0.25, 0.25, 0.25] + if float(sum(out_model[8][i][j])) < 1e-12: + out_model[8][i][j] = [0.25, 0.25, 0.25, 0.25] else: - outModel[8][i][j][l] /= float(sum(outModel[8][i][j])) + out_model[8][i][j][l] /= float(sum(out_model[8][i][j])) trinuc_mut_prob = pickle_dict['TRINUC_MUT_PROB'] which_have_we_seen = {n: False for n in ALL_TRI} trinuc_mean = np.mean(list(trinuc_mut_prob.values())) for trinuc in trinuc_mut_prob.keys(): - outModel[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] + out_model[9][ALL_IND[trinuc]] = trinuc_mut_prob[trinuc] which_have_we_seen[trinuc] = True for trinuc in which_have_we_seen.keys(): - if which_have_we_seen[trinuc] == False: - outModel[9][ALL_IND[trinuc]] = trinuc_mean + if not which_have_we_seen[trinuc]: + out_model[9][ALL_IND[trinuc]] = trinuc_mean - return outModel + return out_model # parse mutation model files, returns default model if no model directory is specified # # OLD FUNCTION THAT PROCESSED OUTDATED TEXTFILE MUTATION MODELS -def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): - if whichDefault == 1: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] - elif whichDefault == 2: - outModel = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] +def parse_input_mutation_model_deprecated(prefix=None, which_default=1): + if which_default == 1: + out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] + elif which_default == 2: + out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] else: print('\nError: Unknown default mutation model specified\n') exit(1) @@ -935,29 +935,29 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): myIns = float(dat[1]) elif dat[0] == 'deletion': myDel = float(dat[1]) - if myIns != None and myDel != None: - outModel[2] = myIns + myDel - outModel[3] = myIns / (myIns + myDel) + if myIns is not None and myDel is not None: + out_model[2] = myIns + myDel + out_model[3] = myIns / (myIns + myDel) print('-', l) if '_insLength.prob' in l: - insVals = {} + ins_vals = {} for dat in fr[1:]: if len(dat) == 2: - insVals[int(dat[0])] = float(dat[1]) - if len(insVals): - outModel[4] = sorted(insVals.keys()) - outModel[5] = [insVals[n] for n in outModel[4]] + ins_vals[int(dat[0])] = float(dat[1]) + if len(ins_vals): + out_model[4] = sorted(ins_vals.keys()) + out_model[5] = [ins_vals[n] for n in out_model[4]] print('-', l) if '_delLength.prob' in l: - delVals = {} + del_vals = {} for dat in fr[1:]: if len(dat) == 2: - delVals[int(dat[0])] = float(dat[1]) - if len(delVals): - outModel[6] = sorted(delVals.keys()) - outModel[7] = [delVals[n] for n in outModel[6]] + del_vals[int(dat[0])] = float(dat[1]) + if len(del_vals): + out_model[6] = sorted(del_vals.keys()) + out_model[7] = [del_vals[n] for n in out_model[6]] print('-', l) if '.trinuc' == l[-7:]: @@ -966,16 +966,16 @@ def parseInputMutationModel_deprecated(prefix=None, whichDefault=1): for i in range(len(p_matrix)): for j in range(len(fr[i])): p_matrix[i][j] = float(fr[i][j]) - anyNone = False + any_none = False for i in range(len(p_matrix)): for j in range(len(p_matrix[i])): if p_matrix[i][j] == -1: - anyNone = True - if not anyNone: - outModel[8][context_ind] = copy.deepcopy(p_matrix) + any_none = True + if not any_none: + out_model[8][context_ind] = copy.deepcopy(p_matrix) print('-', l) - return outModel + return out_model ###################### diff --git a/py/output_file_writer.py b/py/output_file_writer.py index 6301d48..a8510f6 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -182,12 +182,12 @@ def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): str(chrom) + '\t' + str(pos) + '\t' + str(id_str) + '\t' + str(ref) + '\t' + str(alt) + '\t' + str( qual) + '\t' + str(filt) + '\t' + str(info) + '\n') - def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, mate_pos=None, aln_map_qual=70): + def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, mate_pos=None, aln_map_quality=70): my_bin = reg2bin(pos_0, pos_0 + len(seq)) # my_bin = 0 # or just use a dummy value, does this actually matter? - my_map_qual = aln_map_qual + my_map_quality = aln_map_quality cig_letters = re.split(r"\d+", cigar)[1:] cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] cig_ops = len(cig_letters) @@ -237,7 +237,7 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, ####self.bam_file.write(pack(' Date: Thu, 20 Aug 2020 13:52:10 -0500 Subject: [PATCH 129/323] Converting gen_reads.py and associated files to pep8 --- bacterial_genreads_wrapper.py | 6 +++--- genReads.py => gen_reads.py | 2 +- py/SequenceContainer.py | 5 +---- utilities/compute_fraglen.py | 2 +- utilities/compute_gc.py | 2 +- utilities/genSeqErrorModel.py | 2 +- 6 files changed, 8 insertions(+), 11 deletions(-) rename genReads.py => gen_reads.py (99%) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 56b04ba..6de014c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -import genReads +import gen_reads import argparse import random import pathlib @@ -33,7 +33,7 @@ def analyze(self): :return: None """ args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] - genReads.main(args) + gen_reads.main(args) # The following workaround is due to the fact that genReads writes out a compressed # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped @@ -70,7 +70,7 @@ def analyze(self): def sample(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name] - genReads.main(args) + gen_reads.main(args) def remove(self): pathlib.Path.unlink(self.file) diff --git a/genReads.py b/gen_reads.py similarity index 99% rename from genReads.py rename to gen_reads.py index 10a3df1..96e79d8 100644 --- a/genReads.py +++ b/gen_reads.py @@ -2,7 +2,7 @@ # encoding: utf-8 """ //////////////////////////////////////////////////////////////////////////////// /// /// - /// genReads.py /// + /// gen_reads.py /// /// VERSION 2.0: HARDER, BETTER, FASTER, STRONGER! /// /////// ////// /// Variant and read simulator for benchmarking NGS workflows /// diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 0b95005..ff49507 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -215,10 +215,7 @@ def init_mut_models(self, mut_models, mut_rate): self.models.append([self.mut_scalar * n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), DiscreteDistribution(n[7], n[6]), []]) for m in n[8]: - self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), - DiscreteDistribution(m[1], NUCL), - DiscreteDistribution(m[2], NUCL), - DiscreteDistribution(m[3], NUCL)]) + self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), DiscreteDistribution(m[1], NUCL), DiscreteDistribution(m[2], NUCL), DiscreteDistribution(m[3], NUCL)]) self.models[-1].append([m for m in n[9]]) def init_poisson(self): diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index e8351a3..1abda2d 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -1,6 +1,6 @@ # # -# Compute Fragment Length Model for genReads.py +# Compute Fragment Length Model for gen_reads.py # compute_fraglen.py # # diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 6bf4c7d..895b780 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -1,7 +1,7 @@ # # # compute_gc.py -# Compute GC and coverage model for genReads.py +# Compute GC and coverage model for gen_reads.py # # Takes output file from bedtools genomecov to generate GC/coverage model # diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 467fd38..1dfe7fc 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -3,7 +3,7 @@ # # # genSeqErrorModel.py -# Computes sequencing error model for genReads.py +# Computes sequencing error model for gen_reads.py # # # Usage: python genSeqErrorModel.py -i input_reads.fq -o path/to/output_name.p From ef302e93b702cae3227f0e5e67dc0bac9ec26ae0 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 20 Aug 2020 13:53:10 -0500 Subject: [PATCH 130/323] Converting gen_reads.py and associated files to pep8 --- gen_reads.py | 2 +- py/__pycache__/vcfFunc.cpython-37.pyc | Bin 4668 -> 0 bytes py/{vcfFunc.py => vcf_func.py} | 0 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 py/__pycache__/vcfFunc.cpython-37.pyc rename py/{vcfFunc.py => vcf_func.py} (100%) diff --git a/gen_reads.py b/gen_reads.py index 96e79d8..ad33e11 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -27,7 +27,7 @@ from py.input_checking import required_field, check_file_open, is_in_range from py.ref_func import index_ref, read_ref, get_all_ref_regions, partition_ref_regions -from py.vcfFunc import parse_vcf +from py.vcf_func import parse_vcf from py.output_file_writer import OutputFileWriter from py.probability import DiscreteDistribution, mean_ind_of_weighted_list from py.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model diff --git a/py/__pycache__/vcfFunc.cpython-37.pyc b/py/__pycache__/vcfFunc.cpython-37.pyc deleted file mode 100644 index 1e8645c6b6c9bf22cf28bfbc8586b0e12334a4a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4668 zcmai1O>7&-6`q-0{w=9rOO)g&>c(*m({*ImMH4`g?Kqa@sE{RBqT^!WfZcMI(puy$ zHM_JWVtI+uTE3}8k2z4s0!8|R9(wF4D2g6?S`XBzfA3zbTz!*}ze%9~(=hn}Z}1%qoN!tvR`R75RWP%d`f8S@zPhDz zW~K0^xn^a!&QqTeE6Z~{!?T}JE63?NDH$)okE|?~t5Sme4dPAVm2mI}M#w&kD5q0o zigYwJXKJp8SlOc?iRd2P(!^y>)=5Z%3uKRW(q5614H{;!AKZC% z1HK%Cy|4(leb9g>1DD??_Nm$Ei9K6si8+B!*>~nu`{2ur_pei2nV9Kum9w!EF5n8x z34Ds{_-na-nsCLgE-$Km6N&eE5&kal$*7=scB2CPT0ErPET1~0&*?Mrj6P#Ejh}^A zvSBXavqzP8GCP+fCd%v~wid`IXFCH?CW2?X2G{r-hfG5A5onOie?yPp??o+MPv9yR}@7>1<4_^y1QT`OaFb-@moKenc<7pa}a|Us_pQ zZR_vfTD*Ql-*4yfoxODP;?3*tmxLsEAuq>^|KeAbp#0&Y5FPJ2-e3&F28qZgg--8+ z{FrU)>*QyoMB`Mg?%QFB#ccL!Og)hYu^Nu%ZqGe>5I7=u^wJMWyITeZLmzWQ=i>C@>e{_q<+eU|w>%fKyXBY6 zmf7Nrlz9PzGJB>&_t`!&gN%hP^3);SM-G_;lsKZq#0ZE*8iRC6(5$;~i5LKEX|C&* zv^ZP!>y^N6G~@I}SaCfb>mUmge+|jq!x%om+cP$%S4;U=t2nG6St)*ol4<}~Ai8D1Ywd?gbZ8w_^_-hS&Cr$zB;3I5r12n>E*6pfO8Wa<9pHhmu z)liHBw3x7CX4_WYu7?${a_UZCagNFbe>KG6up5w7`a`&ZenO&r@AXW3FokEnu$GX*x_N zsexyVj?znXm=&4M@TJq58r6yccn0fd0Tr1jf$s|$K*vR43P298Dhk&S=OK>u5CtK` zvF;%ihU~G{MZuA2QO#3_gc6r@bR_T;*O1t>PR1qA5g?r`*E_i|9TA?|V;$pw?HokL z0Lbaqc;7SjMNd8ELvVi;)vN918JI_uaJyH@G-K>-nq68>7kHTljgpM?k zN4Y43`KS=-NU$0b$bd`};>#$_bMGP1B6<8d8hE6220KHY;fRXAM#I=&Pz7PcD<~+J zK%7J)D&c-VEFkTE9OVvZFbsVLq+CAO$?dF!1JHG(m$0rqr+jFGMhq!^ln+Ov;b3=& zYZ2qQNpi^M2_NYKdq|^^eTqazw`U#_&*|BUOko;ykW6@ZzJUs@lF{R04 zNIipnkC6cJ4L(2F8x^DnJLBO9W+;XzH$}`wft!em@Fj%}e>_D$zE8F?!2QKV;fcoQ zNmP{IDT!r5kBZSmG#CvO`^$%yTO7A9xpf za6!ReL~_>`IG-_jK3*2HaWzZxB8p)ar(Na~QC8X){0T)0Gf@WBl%(1&!>7I2Ld0r2 z|Jf(qGlv9c@sH;Wg^Se~%GMhwTVwlZf)H<5O-k23TBLch^QE*{&ZYNN3H$YPy7QAh zPFk6q3@p$OH1TCPF3aIF4Fz#pa!&Rty22DBOD>Y`6kd9~7w@OBh^;rlftoG+A!{{t*x%j z$yIaH4ouHCH?hqTH;pzk3{_Qx?4^%rPF%vbz3|W$9@x&Ai+;=F<`Y}EwigEGQ#ai7 zA;>oGmd%>$)cIx84uV!g>agjAj_}*N8-6Q*8f7sFUNQaV5xpX0HWZ_h_l*URRYQlH z*GyTi>W+!Z)oOSFj5x956yLDb@WmC+7Y(~U+pZn!cCS?rUAg}iHcjCKju*bfZr1#8 z*W^yk#vT(r!J6y|%vRt8rtj5v&2ZC!Jt7Eu%FJ4s2i}(FKlQBiimc|#R;v8q-s)O= z{@9;OeV?0+7B+6$PaHVrTta@%wBfjOYR|boQ{(lGz%=}#8i6s{|KN@w-eoheN0aiO z6ge8}vJ>f*{g`f{C(5FTR&Y9j_=a?_>Wz+T{m+5wH#XC%7RvZ|O<(hRtuFSpGCLH1 zY0!+INr6`Tn8`ml60^mQ8x$EpNhnDzdRhwk_Xy=#@=_|sS*dLWG4zVEzW_x~+5b~V zHHk8ql#_-NbvTu&tuKB>1#sf1q%TsU6Cp3VQ! zZWFP41wo#$4R*cI-YK=`U*%!)mScuKVzhT#jtP|QCi*S2=?8A;`d(=&)Ova(vaTdpjwK3G{0Z^1ut8oeX;8)zQ!m16bBzU##rrea1C z=v$7`!xu;!u_k-aRM^7Jhk~s}oQ4NlPEeY%vT$XkX@{FuK_!h!k~HFUv+lcmH)dfd z-Ui2{8_ju@o}aDa@wD;-r)ncFRFEk*EkmZ3if1>_rw%EfIK1*SNsci^Q(DJg1=Vs| zkfFl*yyX9NsW#gPtqeL^2l~ZY*l1bR73b@MF7frK+0(=4&{GSi`EN zBOwM!nCar0RLnrX zJBWVRplLi=(2uI_wy0$(10=g(`J@?Oyx7GI&@pt&Svp83!J&XXa+jgTQD7N5XM-`& zqO;bNENC-G&$A+3K*xObdO*x#E!y9tA nAqUxStF5PQ-0>BUv-1s~x9ZLf`ByWLB}Y0%J&9Yi?DhWvg|S?j diff --git a/py/vcfFunc.py b/py/vcf_func.py similarity index 100% rename from py/vcfFunc.py rename to py/vcf_func.py From 87b5fc590c87e693313cd8b6d5e486b7b55fa31f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 20 Aug 2020 15:20:01 -0500 Subject: [PATCH 131/323] going over genreads and related code for pep8 standards one last time. --- gen_reads.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 8a33583..fc896a0 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -109,7 +109,8 @@ def main(raw_args=None): # cancer params (disabled currently) # (CANCER, CANCER_MODEL, CANCER_PURITY) = (args.cancer, args.cm, args.cp) (CANCER, CANCER_MODEL, CANCER_PURITY) = (False, None, 0.8) - (OFFTARGET_SCALAR, OFFTARGET_DISCARD, FORCE_COVERAGE, RESCALE_QUAL) = (args.to, args.discard_offtarget, args.force_coverage, args.rescale_qual) + (OFFTARGET_SCALAR, OFFTARGET_DISCARD, FORCE_COVERAGE, RESCALE_QUAL) = (args.to, args.discard_offtarget, + args.force_coverage, args.rescale_qual) # important flags (SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = \ (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) @@ -200,7 +201,7 @@ def main(raw_args=None): # fragment length distribution # - if PAIRED_END and not (PAIRED_END_ARTIFICIAL): + if PAIRED_END and not PAIRED_END_ARTIFICIAL: print('Using empirical fragment length distribution.') [potential_values, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) FRAGLEN_VALS = [] @@ -286,7 +287,7 @@ def main(raw_args=None): input_variants = [] if INPUT_VCF is not None: if CANCER: - (sampNames, inputVariants) = parse_vcf(INPUT_VCF, tumorNormal=True, ploidy=PLOIDS) + (sampNames, inputVariants) = parse_vcf(INPUT_VCF, tumor_normal=True, ploidy=PLOIDS) tumor_ind = sampNames.index('TUMOR') normal_ind = sampNames.index('NORMAL') else: @@ -346,6 +347,7 @@ def main(raw_args=None): mut_rate_regions[my_chr] = [-1] mut_rate_values[my_chr] = [0.0] mut_rate_regions[my_chr].extend([pos1, pos2]) + # TODO figure out what the next line is supposed to do and fix mut_rate_values.extend([mut_rate * (pos2 - pos1)] * 2) # initialize output files (part I) @@ -359,12 +361,12 @@ def main(raw_args=None): # If processing jobs in parallel, precompute the independent regions that can be process separately if NJOBS > 1: parallel_region_list = get_all_ref_regions(REFERENCE, ref_index, N_HANDLING, save_output=SAVE_NON_N) - (myRefs, myRegions) = partition_ref_regions(parallel_region_list, ref_index, MYJOB, NJOBS) - if not len(myRegions): + (my_refs, my_regions) = partition_ref_regions(parallel_region_list, ref_index, MYJOB, NJOBS) + if not len(my_regions): print('This job id has no regions to process, exiting...') exit(1) for i in range(len(ref_index) - 1, -1, -1): # delete reference not used in our job - if not ref_index[i][0] in myRefs: + if not ref_index[i][0] in my_refs: del ref_index[i] # if value of NJOBS is too high, let's change it to the maximum possible, to avoid output filename confusion corrected_n_jobs = min([NJOBS, sum([len(n) for n in parallel_region_list.values()])]) @@ -373,11 +375,11 @@ def main(raw_args=None): # initialize output files (part II) if CANCER: - OFW = OutputFileWriter(OUT_PREFIX + '_normal', paired=PAIRED_END, BAM_header=bam_header, VCF_header=vcf_header, - gzipped=GZIPPED_OUT, noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) - OFW_CANCER = OutputFileWriter(OUT_PREFIX + '_tumor', paired=PAIRED_END, BAM_header=bam_header, - VCF_header=vcf_header, gzipped=GZIPPED_OUT, jobTuple=(MYJOB, corrected_n_jobs), - noFASTQ=NO_FASTQ, FASTA_instead=FASTA_INSTEAD) + OFW = OutputFileWriter(OUT_PREFIX + '_normal', paired=PAIRED_END, bam_header=bam_header, vcf_header=vcf_header, + gzipped=GZIPPED_OUT, no_fastq=NO_FASTQ, fasta_instead=FASTA_INSTEAD) + OFW_CANCER = OutputFileWriter(OUT_PREFIX + '_tumor', paired=PAIRED_END, bam_header=bam_header, + vcf_header=vcf_header, gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_n_jobs), + no_fastq=NO_FASTQ, fasta_instead=FASTA_INSTEAD) else: OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, bam_header=bam_header, vcf_header=vcf_header, gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_n_jobs), no_fastq=NO_FASTQ, @@ -399,7 +401,7 @@ def main(raw_args=None): # if we're processing jobs in parallel only take the regions relevant for the current job if NJOBS > 1: for i in range(len(n_regions['non_N']) - 1, -1, -1): - if not (ref_index[RI][0], n_regions['non_N'][i][0], n_regions['non_N'][i][1]) in myRegions: + if not (ref_index[RI][0], n_regions['non_N'][i][0], n_regions['non_N'][i][1]) in my_regions: del n_regions['non_N'][i] # count total bp we'll be spanning so we can get an idea of how far along we are (for printing progress indicators) @@ -485,7 +487,7 @@ def main(raw_args=None): end = min([start + bpd, pf]) # print '------------------RAWR:', (pi,pf), n_target_windows, bpd vars_from_prev_overlap = [] - varsCancerFromPrevOverlap = [] + vars_cancer_from_prev_overlap = [] vind_from_prev = 0 is_last_time = False have_printed100 = False @@ -614,19 +616,19 @@ def main(raw_args=None): if CANCER: tumor_sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, [CANCER_MODEL] * PLOIDS, MUT_RATE, coverage_dat) - tumor_sequences.insert_mutations(varsCancerFromPrevOverlap + all_inserted_variants) + tumor_sequences.insert_mutations(vars_cancer_from_prev_overlap + all_inserted_variants) all_cancer_variants = tumor_sequences.random_mutations() # which variants do we need to keep for next time (because of window overlap)? vars_from_prev_overlap = [] - varsCancerFromPrevOverlap = [] + vars_cancer_from_prev_overlap = [] for n in all_inserted_variants: if n[0] >= end - overlap - 1: vars_from_prev_overlap.append(n) if CANCER: for n in all_cancer_variants: if n[0] >= end - overlap - 1: - varsCancerFromPrevOverlap.append(n) + vars_cancer_from_prev_overlap.append(n) # if we're only producing VCF, no need to go through the hassle of generating reads if ONLY_VCF: @@ -857,7 +859,7 @@ def main(raw_args=None): # close output files OFW.close_files() if CANCER: - OFW_CANCER.closeFiles() + OFW_CANCER.close_files() if __name__ == '__main__': From c6500f8efa042673b1ee77949861d4d4cb5e18fd Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 10:17:08 -0500 Subject: [PATCH 132/323] Starting to reorg genreads --- gen_reads.py | 512 ++++++++++++++++++--------------------- py/output_file_writer.py | 96 ++++---- py/vcf_func.py | 3 +- 3 files changed, 279 insertions(+), 332 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index fc896a0..bdb9d2f 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -14,7 +14,6 @@ /// /// /////////////////////////////////////////////////////////////////////////////// """ -import os import sys import copy import random @@ -24,6 +23,7 @@ import pickle import numpy as np import argparse +import pathlib from py.input_checking import required_field, check_file_open, is_in_range from py.ref_func import index_ref, read_ref, get_all_ref_regions, partition_ref_regions @@ -68,10 +68,6 @@ def main(raw_args=None): help='empirical fragment length distribution') parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, help='empirical GC coverage bias distribution') - parser.add_argument('--job', nargs=2, type=int, required=False, metavar=('', ''), default=(0, 0), - help='jobs IDs for generating reads in parallel') - parser.add_argument('--nnr', required=False, action='store_true', default=False, - help='save non-N ref regions (for parallel jobs)') parser.add_argument('--bam', required=False, action='store_true', default=False, help='output golden BAM file') parser.add_argument('--vcf', required=False, action='store_true', default=False, help='output golden VCF file') parser.add_argument('--fa', required=False, action='store_true', default=False, @@ -80,6 +76,7 @@ def main(raw_args=None): help='rng seed value; identical RNG value should produce identical runs of the program, so ' 'things like read locations, variant positions, error positions, etc, ' 'should all be the same.') + # TODO check if this argument does anything at all. parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') @@ -94,130 +91,134 @@ def main(raw_args=None): """ Set variables for processing """ - # TODO change these to pathlib.Path objects so they are machine agnostic # absolute path to this script - SIM_PATH = '/'.join(os.path.realpath(__file__).split('/')[:-1]) + sim_path = pathlib.Path(__file__).resolve().parent # if coverage val for a given window/position is below this value, consider it effectively zero. - LOW_COV_THRESH = 50 + low_cov_thresh = 50 # required args - (REFERENCE, READLEN, OUT_PREFIX) = (args.r, args.R, args.o) + (reference, read_len, out_prefix) = (args.r, args.R, args.o) # various dataset parameters - (COVERAGE, PLOIDS, INPUT_BED, DISCARD_BED, SE_MODEL, SE_RATE, MUT_MODEL, MUT_RATE, MUT_BED, INPUT_VCF) = \ + (coverage, ploids, input_bed, discard_bed, se_model, se_rate, mut_model, mut_rate, mut_bed, input_vcf) = \ (args.c, args.p, args.t, args.d, args.e, args.E, args.m, args.M, args.Mb, args.v) # cancer params (disabled currently) - # (CANCER, CANCER_MODEL, CANCER_PURITY) = (args.cancer, args.cm, args.cp) - (CANCER, CANCER_MODEL, CANCER_PURITY) = (False, None, 0.8) - (OFFTARGET_SCALAR, OFFTARGET_DISCARD, FORCE_COVERAGE, RESCALE_QUAL) = (args.to, args.discard_offtarget, - args.force_coverage, args.rescale_qual) + # (cancer, cancer_model, cancer_purity) = (args.cancer, args.cm, args.cp) + (cancer, cancer_model, cancer_purity) = (False, None, 0.8) + (off_target_scalar, off_target_discard, force_coverage, rescale_qual) = (args.to, args.discard_offtarget, + args.force_coverage, args.rescale_qual) # important flags - (SAVE_BAM, SAVE_VCF, FASTA_INSTEAD, GZIPPED_OUT, NO_FASTQ) = \ + (save_bam, save_vcf, fasta_instead, gzipped_out, no_fastq) = \ (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) - ONLY_VCF = (NO_FASTQ and SAVE_VCF and not SAVE_BAM) - if ONLY_VCF: - print('Only producing VCF output, that should speed things up a bit...') - # sequencing model parameters - (FRAGMENT_SIZE, FRAGMENT_STD) = args.pe - FRAGLEN_MODEL = args.pe_model - GC_BIAS_MODEL = args.gc_model - N_MAX_QUAL = args.N - - # if user specified no fastq, no bam, no vcf, then inform them of their wasteful ways and exit - if NO_FASTQ is True and SAVE_BAM is False and SAVE_VCF is False: - print('\nError: No files will be written when --no-fastq is specified without --vcf or --bam.') - exit(1) + (fragment_size, fragment_std) = args.pe + (fraglen_model, gc_bias_model) = args.pe_model, args.gc_model + n_max_qual = args.N - # if user specified mean/std, use artificial fragment length distribution, otherwise use - # the empirical model specified. If neither, then we're doing single-end reads. - PAIRED_END = False - PAIRED_END_ARTIFICIAL = False - if FRAGMENT_SIZE is not None and FRAGMENT_STD is not None: - PAIRED_END = True - PAIRED_END_ARTIFICIAL = True - elif FRAGLEN_MODEL is not None: - PAIRED_END = True - PAIRED_END_ARTIFICIAL = False - - (MYJOB, NJOBS) = args.job - if MYJOB == 0: - MYJOB = 1 - NJOBS = 1 - SAVE_NON_N = args.nnr - - RNG_SEED = args.rng - if RNG_SEED == -1: - RNG_SEED = random.randint(1, 99999999) - random.seed(RNG_SEED) + rng_seed = args.rng """************************************************ **** INPUT ERROR CHECKING ************************************************""" - - check_file_open(REFERENCE, 'ERROR: could not open reference', required=True) - check_file_open(INPUT_VCF, 'ERROR: could not open input VCF', required=False) - check_file_open(INPUT_BED, 'ERROR: could not open input BED', required=False) - required_field(OUT_PREFIX, 'ERROR: no output prefix provided') - if (FRAGMENT_SIZE is None and FRAGMENT_STD is not None) or (FRAGMENT_SIZE is not None and FRAGMENT_STD is None): + if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): print('\nError: --pe argument takes 2 space-separated arguments.\n') exit(1) + only_vcf = no_fastq and save_vcf and not save_bam and not fasta_instead + if only_vcf: + print('Only producing VCF output, that should speed things up a bit...') + + check_file_open(reference, 'ERROR: could not open reference', required=True) + check_file_open(input_vcf, 'ERROR: could not open input VCF', required=False) + check_file_open(input_bed, 'ERROR: could not open input BED', required=False) + required_field(out_prefix, 'ERROR: no output prefix provided') + + # if user specified mean/std, use artificial fragment length distribution, otherwise use + # the empirical model specified. If neither, then we're doing single-end reads. + if fragment_size is not None and fragment_std is not None: + paired_end = True + paired_end_artificial = True + elif fraglen_model is not None: + paired_end = True + paired_end_artificial = False + else: + paired_end = False + paired_end_artificial = False + + # if user specified no fastq, not fasta only, and no bam and no vcf, then print error and exit. + if no_fastq and not fasta_instead and not save_bam and not save_vcf: + print('\nError: No files would be written.\n') + exit(1) + + if no_fastq: + print('Bypassing FASTQ generation...') + + if rng_seed == -1: + rng_seed = random.randint(1, 99999999) + random.seed(rng_seed) + """************************************************ **** LOAD INPUT MODELS ************************************************""" - # mutation models - # - MUT_MODEL = parse_input_mutation_model(MUT_MODEL, 1) - if CANCER: - CANCER_MODEL = parse_input_mutation_model(CANCER_MODEL, 2) - if MUT_RATE < 0.: - MUT_RATE = None - - # sequencing error model - # - if SE_RATE < 0.: - SE_RATE = None - if SE_MODEL is None: + # mutation models + mut_model = parse_input_mutation_model(mut_model, 1) + if cancer: + cancer_model = parse_input_mutation_model(cancer_model, 2) + if mut_rate < 0.: + mut_rate = None + + # sequencing error model + if se_rate < 0.: + se_rate = None + if se_model is None: print('Using default sequencing error model.') - SE_MODEL = SIM_PATH + '/models/errorModel_toy.p' - SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) + se_model = sim_path / 'models/errorModel_toy.p' + se_class = ReadContainer(read_len, se_model, se_rate) else: # probably need to do some sanity checking - SE_CLASS = ReadContainer(READLEN, SE_MODEL, SE_RATE) + se_class = ReadContainer(read_len, se_model, se_rate) - # GC-bias model - # - if GC_BIAS_MODEL is None: + # GC-bias model + if gc_bias_model is None: print('Using default gc-bias model.') - GC_BIAS_MODEL = SIM_PATH + '/models/gcBias_toy.p' - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] + gc_bias_model = sim_path / 'models/gcBias_toy.p' + [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + gc_window_size = gc_scale_count[-1] else: - [GC_SCALE_COUNT, GC_SCALE_VAL] = pickle.load(open(GC_BIAS_MODEL, 'rb')) - GC_WINDOW_SIZE = GC_SCALE_COUNT[-1] + [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + gc_window_size = gc_scale_count[-1] - # fragment length distribution - # - if PAIRED_END and not PAIRED_END_ARTIFICIAL: + # fragment length distribution + if paired_end and not paired_end_artificial: print('Using empirical fragment length distribution.') - [potential_values, potential_prob] = pickle.load(open(FRAGLEN_MODEL, 'rb')) - FRAGLEN_VALS = [] - FRAGLEN_PROB = [] + [potential_values, potential_prob] = pickle.load(open(fraglen_model, 'rb')) + fraglen_vals = [] + fraglen_prob = [] for i in range(len(potential_values)): - if potential_values[i] > READLEN: - FRAGLEN_VALS.append(potential_values[i]) - FRAGLEN_PROB.append(potential_prob[i]) + if potential_values[i] > read_len: + fraglen_vals.append(potential_values[i]) + fraglen_prob.append(potential_prob[i]) # should probably add some validation and sanity-checking code here... - FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) - FRAGMENT_SIZE = FRAGLEN_VALS[mean_ind_of_weighted_list(FRAGLEN_PROB)] + fraglen_distribution = DiscreteDistribution(fraglen_prob, fraglen_vals) + fragment_size = fraglen_vals[mean_ind_of_weighted_list(fraglen_prob)] - # Indicate not writing FASTQ reads - # - if NO_FASTQ: - print('Bypassing FASTQ generation...') + # fragment length distribution: normal distribution that goes out to +- 6 standard deviations + if paired_end and paired_end_artificial: + print( + 'Using artificial fragment length distribution. mean=' + str(fragment_size) + ', std=' + str(fragment_std)) + if fragment_std == 0: + fraglen_distribution = DiscreteDistribution([1], [fragment_size], degenerate_val=fragment_size) + else: + potential_values = range(fragment_size - 6 * fragment_std, fragment_size + 6 * fragment_std + 1) + fraglen_vals = [] + for i in range(len(potential_values)): + if potential_values[i] > read_len: + fraglen_vals.append(potential_values[i]) + fraglen_prob = [np.exp(-(((n - float(fragment_size)) ** 2) / (2 * (fragment_std ** 2)))) for n in + fraglen_vals] + fraglen_distribution = DiscreteDistribution(fraglen_prob, fraglen_vals) """************************************************ **** HARD-CODED CONSTANTS @@ -225,81 +226,54 @@ def main(raw_args=None): # target window size for read sampling. how many times bigger than read/frag length WINDOW_TARGET_SCALE = 100 - # sub-window size for read sampling windows. this is basically the finest resolution - # that can be obtained for targeted region boundaries and GC% bias - SMALL_WINDOW = 20 - # is the mutation model constant throughout the simulation? If so we can save a lot of time - CONSTANT_MUT_MODEL = True - - """************************************************ - **** DEFAULT MODELS - ************************************************""" - # fragment length distribution: normal distribution that goes out to +- 6 standard deviations - if PAIRED_END and PAIRED_END_ARTIFICIAL: - print( - 'Using artificial fragment length distribution. mean=' + str(FRAGMENT_SIZE) + ', std=' + str(FRAGMENT_STD)) - if FRAGMENT_STD == 0: - FRAGLEN_DISTRIBUTION = DiscreteDistribution([1], [FRAGMENT_SIZE], degenerate_val=FRAGMENT_SIZE) - else: - potential_values = range(FRAGMENT_SIZE - 6 * FRAGMENT_STD, FRAGMENT_SIZE + 6 * FRAGMENT_STD + 1) - FRAGLEN_VALS = [] - for i in range(len(potential_values)): - if potential_values[i] > READLEN: - FRAGLEN_VALS.append(potential_values[i]) - FRAGLEN_PROB = [np.exp(-(((n - float(FRAGMENT_SIZE)) ** 2) / (2 * (FRAGMENT_STD ** 2)))) for n in - FRAGLEN_VALS] - FRAGLEN_DISTRIBUTION = DiscreteDistribution(FRAGLEN_PROB, FRAGLEN_VALS) + # allowed nucleotides + ALLOWED_NUCL = ['A', 'C', 'G', 'T'] """************************************************ **** MORE INPUT ERROR CHECKING ************************************************""" - is_in_range(READLEN, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') - is_in_range(COVERAGE, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') - is_in_range(PLOIDS, 1, 100, 'Error: -p must be between 1 and 100') - is_in_range(OFFTARGET_SCALAR, 0, 1, 'Error: -to must be between 0 and 1') - if MUT_RATE != -1 and MUT_RATE is not None: - is_in_range(MUT_RATE, 0, 0.3, 'Error: -M must be between 0 and 0.3') - if SE_RATE != -1 and SE_RATE is not None: - is_in_range(SE_RATE, 0, 0.3, 'Error: -E must be between 0 and 0.3') - if NJOBS != 1: - is_in_range(NJOBS, 1, 1000, 'Error: --job must be between 1 and 1,000') - is_in_range(MYJOB, 1, 1000, 'Error: --job must be between 1 and 1,000') - is_in_range(MYJOB, 1, NJOBS, 'Error: job id must be less than or equal to number of jobs') - if N_MAX_QUAL != -1: - is_in_range(N_MAX_QUAL, 1, 40, 'Error: -N must be between 1 and 40') + is_in_range(read_len, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') + is_in_range(coverage, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') + is_in_range(ploids, 1, 100, 'Error: -p must be between 1 and 100') + is_in_range(off_target_scalar, 0, 1, 'Error: -to must be between 0 and 1') + if mut_rate != -1 and mut_rate is not None: + is_in_range(mut_rate, 0, 0.3, 'Error: -M must be between 0 and 0.3') + if se_rate != -1 and se_rate is not None: + is_in_range(se_rate, 0, 0.3, 'Error: -E must be between 0 and 0.3') + if n_max_qual != -1: + is_in_range(n_max_qual, 1, 40, 'Error: -N must be between 1 and 40') """************************************************ **** Process Inputs ************************************************""" - ALLOWED_NUCL = ['A', 'C', 'G', 'T'] # index reference - ref_index = index_ref(REFERENCE) - if PAIRED_END: - N_HANDLING = ('random', FRAGMENT_SIZE) + ref_index = index_ref(reference) + if paired_end: + n_handling = ('random', fragment_size) else: - N_HANDLING = ('ignore', READLEN) + n_handling = ('ignore', read_len) indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} # parse input variants, if present input_variants = [] - if INPUT_VCF is not None: - if CANCER: - (sampNames, inputVariants) = parse_vcf(INPUT_VCF, tumor_normal=True, ploidy=PLOIDS) - tumor_ind = sampNames.index('TUMOR') - normal_ind = sampNames.index('NORMAL') + if input_vcf is not None: + if cancer: + (sample_names, input_variants) = parse_vcf(input_vcf, tumor_normal=True, ploidy=ploids) + tumor_ind = sample_names.index('TUMOR') + normal_ind = sample_names.index('NORMAL') else: - (sampNames, input_variants) = parse_vcf(INPUT_VCF, ploidy=PLOIDS) + (sample_names, input_variants) = parse_vcf(input_vcf, ploidy=ploids) for k in sorted(input_variants.keys()): input_variants[k].sort() # parse input targeted regions, if present input_regions = {} ref_list = [n[0] for n in ref_index] - if INPUT_BED is not None: - with open(INPUT_BED, 'r') as f: + if input_bed is not None: + with open(input_bed, 'r') as f: for line in f: [my_chr, pos1, pos2] = line.strip().split('\t')[:3] if my_chr not in input_regions: @@ -322,8 +296,8 @@ def main(raw_args=None): 'Warning: Targeted regions BED file contains sequence names not found in reference (regions ignored).') # parse discard bed similarly discardRegions = {} - if DISCARD_BED != None: - f = open(DISCARD_BED, 'r') + if discard_bed != None: + f = open(discard_bed, 'r') for line in f: [myChr, pos1, pos2] = line.strip().split('\t')[:3] if myChr not in discardRegions: @@ -334,11 +308,11 @@ def main(raw_args=None): # parse input mutation rate rescaling regions, if present mut_rate_regions = {} mut_rate_values = {} - if MUT_BED is not None: - with open(MUT_BED, 'r') as f: + if mut_bed is not None: + with open(mut_bed, 'r') as f: for line in f: [my_chr, pos1, pos2, meta_data] = line.strip().split('\t')[:4] - mut_str = re.findall(r"MUT_RATE=.*?(?=;)", meta_data + ';') + mut_str = re.findall(r"mut_rate=.*?(?=;)", meta_data + ';') (pos1, pos2) = (int(pos1), int(pos2)) if len(mut_str) and (pos2 - pos1) > 1: # mut_rate = #_mutations / length_of_region, let's bound it by a reasonable amount @@ -352,43 +326,28 @@ def main(raw_args=None): # initialize output files (part I) bam_header = None - if SAVE_BAM: + if save_bam: bam_header = [copy.deepcopy(ref_index)] vcf_header = None - if SAVE_VCF: - vcf_header = [REFERENCE] - - # If processing jobs in parallel, precompute the independent regions that can be process separately - if NJOBS > 1: - parallel_region_list = get_all_ref_regions(REFERENCE, ref_index, N_HANDLING, save_output=SAVE_NON_N) - (my_refs, my_regions) = partition_ref_regions(parallel_region_list, ref_index, MYJOB, NJOBS) - if not len(my_regions): - print('This job id has no regions to process, exiting...') - exit(1) - for i in range(len(ref_index) - 1, -1, -1): # delete reference not used in our job - if not ref_index[i][0] in my_refs: - del ref_index[i] - # if value of NJOBS is too high, let's change it to the maximum possible, to avoid output filename confusion - corrected_n_jobs = min([NJOBS, sum([len(n) for n in parallel_region_list.values()])]) - else: - corrected_n_jobs = 1 + if save_vcf: + vcf_header = [reference] # initialize output files (part II) - if CANCER: - OFW = OutputFileWriter(OUT_PREFIX + '_normal', paired=PAIRED_END, bam_header=bam_header, vcf_header=vcf_header, - gzipped=GZIPPED_OUT, no_fastq=NO_FASTQ, fasta_instead=FASTA_INSTEAD) - OFW_CANCER = OutputFileWriter(OUT_PREFIX + '_tumor', paired=PAIRED_END, bam_header=bam_header, - vcf_header=vcf_header, gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_n_jobs), - no_fastq=NO_FASTQ, fasta_instead=FASTA_INSTEAD) + if cancer: + OFW = OutputFileWriter(out_prefix + '_normal', paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, + gzipped=gzipped_out, no_fastq=no_fastq, fasta_instead=fasta_instead) + OFW_CANCER = OutputFileWriter(out_prefix + '_tumor', paired=paired_end, bam_header=bam_header, + vcf_header=vcf_header, gzipped=gzipped_out, + no_fastq=no_fastq, fasta_instead=fasta_instead) else: - OFW = OutputFileWriter(OUT_PREFIX, paired=PAIRED_END, bam_header=bam_header, vcf_header=vcf_header, - gzipped=GZIPPED_OUT, job_tuple=(MYJOB, corrected_n_jobs), no_fastq=NO_FASTQ, - fasta_instead=FASTA_INSTEAD) - OUT_PREFIX_NAME = OUT_PREFIX.split('/')[-1] + OFW = OutputFileWriter(out_prefix, paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, + gzipped=gzipped_out, no_fastq=no_fastq, + fasta_instead=fasta_instead) + OUT_PREFIX_NAME = out_prefix.split('/')[-1] """************************************************ - **** LET'S GET THIS PARTY STARTED... - ************************************************""" + **** LET'S GET THIS PARTY STARTED... + ************************************************""" read_name_count = 1 # keep track of the number of reads we've sampled, for read-names unmapped_records = [] @@ -396,24 +355,19 @@ def main(raw_args=None): for RI in range(len(ref_index)): # read in reference sequence and notate blocks of Ns - (refSequence, n_regions) = read_ref(REFERENCE, ref_index[RI], N_HANDLING) - - # if we're processing jobs in parallel only take the regions relevant for the current job - if NJOBS > 1: - for i in range(len(n_regions['non_N']) - 1, -1, -1): - if not (ref_index[RI][0], n_regions['non_N'][i][0], n_regions['non_N'][i][1]) in my_regions: - del n_regions['non_N'][i] + (refSequence, n_regions) = read_ref(reference, ref_index[RI], n_handling) - # count total bp we'll be spanning so we can get an idea of how far along we are (for printing progress indicators) + # count total bp we'll be spanning so we can get an idea of how far along we are + # (for printing progress indicators) total_bp_span = sum([n[1] - n[0] for n in n_regions['non_N']]) current_progress = 0 current_percent = 0 have_printed100 = False - # prune invalid input variants, e.g variants that: - # - try to delete or alter any N characters - # - don't match the reference base at their specified position - # - any alt allele contains anything other than allowed characters + """prune invalid input variants, e.g variants that: + - try to delete or alter any N characters + - don't match the reference base at their specified position + - any alt allele contains anything other than allowed characters""" valid_variants = [] n_skipped = [0, 0, 0] if ref_index[RI][0] in input_variants: @@ -446,24 +400,24 @@ def main(raw_args=None): # determine sampling windows based on read length, large N regions, and structural mutations. # in order to obtain uniform coverage, windows should overlap by: - # - READLEN, if single-end reads - # - FRAGMENT_SIZE (mean), if paired-end reads + # - read_len, if single-end reads + # - fragment_size (mean), if paired-end reads # ploidy is fixed per large sampling window, # coverage distributions due to GC% and targeted regions are specified within these windows sampling_windows = [] ALL_VARIANTS_OUT = {} sequences = None - if PAIRED_END: - target_size = WINDOW_TARGET_SCALE * FRAGMENT_SIZE - overlap = FRAGMENT_SIZE - overlap_min_window_size = max(FRAGLEN_DISTRIBUTION.values) + 10 + if paired_end: + target_size = WINDOW_TARGET_SCALE * fragment_size + overlap = fragment_size + overlap_min_window_size = max(fraglen_distribution.values) + 10 else: - target_size = WINDOW_TARGET_SCALE * READLEN - overlap = READLEN - overlap_min_window_size = READLEN + 10 + target_size = WINDOW_TARGET_SCALE * read_len + overlap = read_len + overlap_min_window_size = read_len + 10 print('--------------------------------') - if ONLY_VCF: + if only_vcf: print('generating vcf...') else: print('sampling reads...') @@ -473,7 +427,7 @@ def main(raw_args=None): (pi, pf) = n_regions['non_N'][i] n_target_windows = max([1, (pf - pi) // target_size]) bpd = int((pf - pi) / float(n_target_windows)) - # bpd += GC_WINDOW_SIZE - bpd%GC_WINDOW_SIZE + # bpd += gc_window_size - bpd%gc_window_size # print len(refSequence), (pi,pf), n_target_windows # print structural_vars @@ -511,8 +465,9 @@ def main(raw_args=None): structural_vars = [] for n in vars_in_window: buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in - n[2]]) # change: added abs() so that insertions are also buffered. - structural_vars.append((n[0] - 1, buffer_needed)) # -1 because going from VCF coords to array coords + n[2]]) # change: added abs() so that insertions are also buffered. + structural_vars.append( + (n[0] - 1, buffer_needed)) # -1 because going from VCF coords to array coords # adjust end-position of window based on inserted structural mutations buffer_added = 0 @@ -552,28 +507,28 @@ def main(raw_args=None): # compute coverage modifiers coverage_avg = None - coverage_dat = [GC_WINDOW_SIZE, GC_SCALE_VAL, []] + coverage_dat = [gc_window_size, gc_scale_val, []] target_hits = 0 - if INPUT_BED is None: + if input_bed is None: coverage_dat[2] = [1.0] * (end - start) else: if ref_index[RI][0] not in input_regions: - coverage_dat[2] = [OFFTARGET_SCALAR] * (end - start) + coverage_dat[2] = [off_target_scalar] * (end - start) else: for j in range(start, end): if not (bisect.bisect(input_regions[ref_index[RI][0]], j) % 2): coverage_dat[2].append(1.0) target_hits += 1 else: - coverage_dat[2].append(OFFTARGET_SCALAR) + coverage_dat[2].append(off_target_scalar) # offtarget and we're not interested? - if OFFTARGET_DISCARD and target_hits <= READLEN: + if off_target_discard and target_hits <= read_len: coverage_avg = 0.0 skip_this_window = True # print len(coverage_dat[2]), sum(coverage_dat[2]) - if sum(coverage_dat[2]) < LOW_COV_THRESH: + if sum(coverage_dat[2]) < low_cov_thresh: coverage_avg = 0.0 skip_this_window = True @@ -594,11 +549,11 @@ def main(raw_args=None): # construct sequence data that we will sample reads from if sequences is None: - sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, - [MUT_MODEL] * PLOIDS, MUT_RATE, only_vcf=ONLY_VCF) + sequences = SequenceContainer(start, refSequence[start:end], ploids, overlap, read_len, + [mut_model] * ploids, mut_rate, only_vcf=only_vcf) else: - sequences.update(start, refSequence[start:end], PLOIDS, overlap, READLEN, [MUT_MODEL] * PLOIDS, - MUT_RATE) + sequences.update(start, refSequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, + mut_rate) # insert variants sequences.insert_mutations(vars_from_prev_overlap + vars_in_window) @@ -606,16 +561,16 @@ def main(raw_args=None): # print all_inserted_variants # init coverage - if sum(coverage_dat[2]) >= LOW_COV_THRESH: - if PAIRED_END: - coverage_avg = sequences.init_coverage(tuple(coverage_dat), frag_dist=FRAGLEN_DISTRIBUTION) + if sum(coverage_dat[2]) >= low_cov_thresh: + if paired_end: + coverage_avg = sequences.init_coverage(tuple(coverage_dat), frag_dist=fraglen_distribution) else: coverage_avg = sequences.init_coverage(tuple(coverage_dat)) # unused cancer stuff - if CANCER: - tumor_sequences = SequenceContainer(start, refSequence[start:end], PLOIDS, overlap, READLEN, - [CANCER_MODEL] * PLOIDS, MUT_RATE, coverage_dat) + if cancer: + tumor_sequences = SequenceContainer(start, refSequence[start:end], ploids, overlap, read_len, + [cancer_model] * ploids, mut_rate, coverage_dat) tumor_sequences.insert_mutations(vars_cancer_from_prev_overlap + all_inserted_variants) all_cancer_variants = tumor_sequences.random_mutations() @@ -625,30 +580,30 @@ def main(raw_args=None): for n in all_inserted_variants: if n[0] >= end - overlap - 1: vars_from_prev_overlap.append(n) - if CANCER: + if cancer: for n in all_cancer_variants: if n[0] >= end - overlap - 1: vars_cancer_from_prev_overlap.append(n) # if we're only producing VCF, no need to go through the hassle of generating reads - if ONLY_VCF: + if only_vcf: pass else: - windowSpan = end - start - if PAIRED_END: - if FORCE_COVERAGE: - reads_to_sample = int((windowSpan * float(COVERAGE)) / (2 * READLEN)) + 1 + window_span = end - start + if paired_end: + if force_coverage: + reads_to_sample = int((window_span * float(coverage)) / (2 * read_len)) + 1 else: - reads_to_sample = int((windowSpan * float(COVERAGE) * coverage_avg) / (2 * READLEN)) + 1 + reads_to_sample = int((window_span * float(coverage) * coverage_avg) / (2 * read_len)) + 1 else: - if FORCE_COVERAGE: - reads_to_sample = int((windowSpan * float(COVERAGE)) / READLEN) + 1 + if force_coverage: + reads_to_sample = int((window_span * float(coverage)) / read_len) + 1 else: - reads_to_sample = int((windowSpan * float(COVERAGE) * coverage_avg) / READLEN) + 1 + reads_to_sample = int((window_span * float(coverage) * coverage_avg) / read_len) + 1 # if coverage is so low such that no reads are to be sampled, skip region # (i.e., remove buffer of +1 reads we add to every window) - if reads_to_sample == 1 and sum(coverage_dat[2]) < LOW_COV_THRESH: + if reads_to_sample == 1 and sum(coverage_dat[2]) < low_cov_thresh: reads_to_sample = 0 # sample reads @@ -656,9 +611,9 @@ def main(raw_args=None): for i in range(reads_to_sample): is_unmapped = [] - if PAIRED_END: - my_fraglen = FRAGLEN_DISTRIBUTION.sample() - my_read_data = sequences.sample_read(SE_CLASS, my_fraglen) + if paired_end: + my_fraglen = fraglen_distribution.sample() + my_read_data = sequences.sample_read(se_class, my_fraglen) if my_read_data is None: # skip if we failed to find a valid position to sample read continue if my_read_data[0][0] is None: @@ -672,7 +627,7 @@ def main(raw_args=None): is_unmapped.append(False) my_read_data[1][0] += start else: - my_read_data = sequences.sample_read(SE_CLASS) + my_read_data = sequences.sample_read(se_class) if my_read_data is None: # skip if we failed to find a valid position to sample read continue if my_read_data[0][0] is None: # unmapped read (lives in large insertion) @@ -683,13 +638,13 @@ def main(raw_args=None): # are we discarding offtargets? outside_boundaries = [] - if OFFTARGET_DISCARD and INPUT_BED != None: + if off_target_discard and input_bed is not None: outside_boundaries += [bisect.bisect(input_regions[ref_index[RI][0]], n[0]) % 2 for n in my_read_data] outside_boundaries += [ bisect.bisect(input_regions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in my_read_data] - if DISCARD_BED != None: + if discard_bed is not None: outside_boundaries += [bisect.bisect(discardRegions[ref_index[RI][0]], n[0]) % 2 for n in my_read_data] outside_boundaries += [ @@ -698,107 +653,104 @@ def main(raw_args=None): if len(outside_boundaries) and any(outside_boundaries): continue - if NJOBS > 1: - my_read_name = OUT_PREFIX_NAME + '-j' + str(MYJOB) + '-' + ref_index[RI][0] + '-r' + str( - read_name_count) - else: - my_read_name = OUT_PREFIX_NAME + '-' + ref_index[RI][0] + '-' + str(read_name_count) + my_read_name = OUT_PREFIX_NAME + '-' + ref_index[RI][0] + '-' + str(read_name_count) read_name_count += len(my_read_data) # if desired, replace all low-quality bases with Ns - if N_MAX_QUAL > -1: + if n_max_qual > -1: for j in range(len(my_read_data)): my_read_string = [n for n in my_read_data[j][2]] for k in range(len(my_read_data[j][3])): - adjusted_qual = ord(my_read_data[j][3][k]) - SE_CLASS.offQ - if adjusted_qual <= N_MAX_QUAL: + adjusted_qual = ord(my_read_data[j][3][k]) - se_class.offQ + if adjusted_qual <= n_max_qual: my_read_string[k] = 'N' my_read_data[j][2] = ''.join(my_read_string) # flip a coin, are we forward or reverse strand? - isForward = (random.random() < 0.5) + is_forward = (random.random() < 0.5) # if read (or read + mate for PE) are unmapped, put them at end of bam file if all(is_unmapped): - if PAIRED_END: - if isForward: + if paired_end: + if is_forward: flag1 = sam_flag(['paired', 'unmapped', 'mate_unmapped', 'first', 'mate_reverse']) flag2 = sam_flag(['paired', 'unmapped', 'mate_unmapped', 'second', 'reverse']) else: flag1 = sam_flag(['paired', 'unmapped', 'mate_unmapped', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'unmapped', 'mate_unmapped', 'first', 'reverse']) - unmapped_records.append((my_read_name + '/1', my_read_data[0], 109)) - unmapped_records.append((my_read_name + '/2', my_read_data[1], 157)) + unmapped_records.append((my_read_name + '/1', my_read_data[0], flag1)) + unmapped_records.append((my_read_name + '/2', my_read_data[1], flag2)) else: flag1 = sam_flag(['unmapped']) - unmapped_records.append((my_read_name + '/1', my_read_data[0], 4)) + unmapped_records.append((my_read_name + '/1', my_read_data[0], flag1)) - # write read data out to FASTQ and BAM files, bypass FASTQ if option specified - myRefIndex = indices_by_ref_name[ref_index[RI][0]] + my_ref_index = indices_by_ref_name[ref_index[RI][0]] # write SE output if len(my_read_data) == 1: - if NO_FASTQ is not True: - if isForward: + if no_fastq is not True: + if is_forward: OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3]) else: - OFW.write_fastq_record(my_read_name, reverse_complement(my_read_data[0][2]), my_read_data[0][3][::-1]) - if SAVE_BAM: + OFW.write_fastq_record(my_read_name, reverse_complement(my_read_data[0][2]), + my_read_data[0][3][::-1]) + if save_bam: if is_unmapped[0] is False: - if isForward: + if is_forward: flag1 = 0 - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[0][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], sam_flag=flag1) else: flag1 = sam_flag(['reverse']) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[0][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1) + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], + sam_flag=flag1) # write PE output elif len(my_read_data) == 2: - if NO_FASTQ is not True: + if no_fastq is not True: OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3], - read2=my_read_data[1][2], qual2=my_read_data[1][3], orientation=isForward) - if SAVE_BAM: + read2=my_read_data[1][2], qual2=my_read_data[1][3], + orientation=is_forward) + if save_bam: if is_unmapped[0] is False and is_unmapped[1] is False: - if isForward: + if is_forward: flag1 = sam_flag(['paired', 'proper', 'first', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'second', 'reverse']) else: flag1 = sam_flag(['paired', 'proper', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'first', 'reverse']) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[0][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], sam_flag=flag1, mate_pos=my_read_data[1][0]) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[1][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], sam_flag=flag2, mate_pos=my_read_data[0][0]) elif is_unmapped[0] is False and is_unmapped[1] is True: - if isForward: + if is_forward: flag1 = sam_flag(['paired', 'first', 'mate_unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'second', 'unmapped', 'reverse']) else: flag1 = sam_flag(['paired', 'second', 'mate_unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'first', 'unmapped', 'reverse']) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[0][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], sam_flag=flag1, mate_pos=my_read_data[0][0]) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[0][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], sam_flag=flag2, mate_pos=my_read_data[0][0], aln_map_quality=0) elif is_unmapped[0] is True and is_unmapped[1] is False: - if isForward: + if is_forward: flag1 = sam_flag(['paired', 'first', 'unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'second', 'mate_unmapped', 'reverse']) else: flag1 = sam_flag(['paired', 'second', 'unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'first', 'mate_unmapped', 'reverse']) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[1][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], sam_flag=flag1, mate_pos=my_read_data[1][0], aln_map_quality=0) - OFW.write_bam_record(myRefIndex, my_read_name, my_read_data[1][0], + OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], sam_flag=flag2, mate_pos=my_read_data[1][0]) else: @@ -827,14 +779,14 @@ def main(raw_args=None): print('100%') else: print('') - if ONLY_VCF: + if only_vcf: print('VCF generation completed in ', end='') else: print('Read sampling completed in ', end='') print(int(time.time() - tt), '(sec)') # write all output variants for this reference - if SAVE_VCF: + if save_vcf: print('Writing output VCF...') for k in sorted(ALL_VARIANTS_OUT.keys()): current_ref = ref_index[RI][0] @@ -847,10 +799,10 @@ def main(raw_args=None): # break # write unmapped reads to bam file - if SAVE_BAM and len(unmapped_records): + if save_bam and len(unmapped_records): print('writing unmapped reads to bam file...') for umr in unmapped_records: - if PAIRED_END: + if paired_end: OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], mate_pos=0, aln_map_quality=0) else: @@ -858,7 +810,7 @@ def main(raw_args=None): # close output files OFW.close_files() - if CANCER: + if cancer: OFW_CANCER.close_files() diff --git a/py/output_file_writer.py b/py/output_file_writer.py index a84a34c..b3405a3 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -95,14 +95,10 @@ def sam_flag(l): # gzipped = True for compressed FASTQ/VCF, False for uncompressed # class OutputFileWriter: - def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, gzipped=False, job_tuple=(1, 1), + def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, gzipped=False, no_fastq=False, fasta_instead=False): job_suffix = '' - if job_tuple[1] > 1: - jsl = len(str(job_tuple[1])) - jsb = '0' * (jsl - len(str(job_tuple[0]))) - job_suffix = '.job' + jsb + str(job_tuple[0]) + 'of' + str(job_tuple[1]) self.fasta_instead = fasta_instead if fasta_instead: @@ -138,34 +134,33 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g else: self.vcf_file = open(vcf, 'wb') - # WRITE VCF HEADER (if parallel: only for first job) - if job_tuple[0] == 1: - self.vcf_file.write('##fileformat=VCFv4.1\n'.encode('utf-8')) - reference = '##reference=' + vcf_header[0] + '\n' - self.vcf_file.write(reference.encode('utf-8')) - self.vcf_file.write('##INFO=\n'.encode('utf-8')) - self.vcf_file.write( - '##INFO=\n'.encode('utf-8')) - # self.vcf_file.write('##INFO=\n') - self.vcf_file.write( - '##INFO=\n'.encode( - 'utf-8')) - self.vcf_file.write( - '##INFO=\n'.encode( - 'utf-8')) - self.vcf_file.write( - '##INFO=\n'.encode('utf-8')) - self.vcf_file.write( - '##INFO=\n'.encode( - 'utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('##ALT=\n'.encode('utf-8')) - self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n'.encode('utf-8')) + # WRITE VCF HEADER + self.vcf_file.write('##fileformat=VCFv4.1\n'.encode('utf-8')) + reference = '##reference=' + vcf_header[0] + '\n' + self.vcf_file.write(reference.encode('utf-8')) + self.vcf_file.write('##INFO=\n'.encode('utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode('utf-8')) + # self.vcf_file.write('##INFO=\n') + self.vcf_file.write( + '##INFO=\n'.encode( + 'utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode( + 'utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode('utf-8')) + self.vcf_file.write( + '##INFO=\n'.encode( + 'utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('##ALT=\n'.encode('utf-8')) + self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n'.encode('utf-8')) # # BAM OUTPUT @@ -174,24 +169,23 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g if bam_header is not None: self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) - # WRITE BAM HEADER (if parallel: only for first job) - if True or job_tuple[0] == 1: - self.bam_file.write("BAM\1") - header = '@HD\tVN:1.5\tSO:coordinate\n' - for n in bam_header[0]: - header += '@SQ\tSN:' + n[0] + '\tLN:' + str(n[3]) + '\n' - header += '@RG\tID:NEAT\tSM:NEAT\tLB:NEAT\tPL:NEAT\n' - header_bytes = len(header) - num_refs = len(bam_header[0]) - self.bam_file.write(pack(' Date: Fri, 21 Aug 2020 12:31:32 -0500 Subject: [PATCH 133/323] Starting to reorg genreads --- gen_reads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index bdb9d2f..970c579 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -76,7 +76,7 @@ def main(raw_args=None): help='rng seed value; identical RNG value should produce identical runs of the program, so ' 'things like read locations, variant positions, error positions, etc, ' 'should all be the same.') - # TODO check if this argument does anything at all. + # TODO check if this argument does anything at all. Near as I can tell the results are ALWAYS gzipped. parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') @@ -93,6 +93,7 @@ def main(raw_args=None): """ # absolute path to this script sim_path = pathlib.Path(__file__).resolve().parent + print(sim_path) # if coverage val for a given window/position is below this value, consider it effectively zero. low_cov_thresh = 50 From 14f519fee2a309dab2d858a3e3785e487647407e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 15:48:49 -0500 Subject: [PATCH 134/323] Updated input_checking.py to use pathlib --- gen_reads.py | 62 ++++++++++-------- py/SequenceContainer.py | 3 +- .../SequenceContainer.cpython-37.pyc | Bin 31477 -> 31522 bytes py/__pycache__/__init__.cpython-37.pyc | Bin 146 -> 146 bytes .../biopython_modified_bgzf.cpython-37.pyc | Bin 2668 -> 2668 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 3114 -> 3114 bytes py/__pycache__/probability.cpython-37.pyc | Bin 4082 -> 4082 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 4837 -> 4837 bytes py/input_checking.py | 21 +++--- 9 files changed, 45 insertions(+), 41 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 970c579..7d36d5a 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -32,32 +32,37 @@ from py.probability import DiscreteDistribution, mean_ind_of_weighted_list from py.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model -"""////////////////////////////////////////////////// -//////////// PARSE INPUT ARGUMENTS //////////// -//////////////////////////////////////////////////""" - def main(raw_args=None): + """////////////////////////////////////////////////// + //////////// PARSE INPUT ARGUMENTS //////////// + //////////////////////////////////////////////////""" + parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') - parser.add_argument('-r', type=str, required=True, metavar='', help="* ref.fa") - parser.add_argument('-R', type=int, required=True, metavar='', help="* read length") - parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") - parser.add_argument('-c', type=float, required=False, metavar='', default=10., help="average coverage") - parser.add_argument('-e', type=str, required=False, metavar='', default=None, help="sequencing error model") - parser.add_argument('-E', type=float, required=False, metavar='', default=-1, - help="rescale avg sequencing error rate to this") - parser.add_argument('-p', type=int, required=False, metavar='', default=2, help="ploidy") - parser.add_argument('-t', type=str, required=False, metavar='', default=None, - help="bed file containing targeted regions") - parser.add_argument('-d', type=str, required=False, metavar='', default=None, help="discard_regions.bed") - parser.add_argument('-to', type=float, required=False, metavar='', default=0.00, + parser.add_argument('-r', type=str, required=True, metavar='reference', help="Path to reference fasta") + parser.add_argument('-R', type=int, required=True, metavar='read length', help="The desired read length") + parser.add_argument('-o', type=str, required=True, metavar='output_prefix', + help="Prefix for the output files (can be a path)") + parser.add_argument('-c', type=float, required=False, metavar='coverage', default=10.0, + help="Average coverage, default is 10.0") + parser.add_argument('-e', type=str, required=False, metavar='error_model', default=None, + help="Location and name of sequencing error model (leave blank to use the default)") + parser.add_argument('-E', type=float, required=False, metavar='Error rate', default=-1, + help="Rescale avg sequencing error rate to this, must be between 0.0 and 0.3") + parser.add_argument('-p', type=int, required=False, metavar='ploidy', default=2, + help="Desired ploidy, default = 2") + parser.add_argument('-t', type=str, required=False, metavar='target.bed', default=None, + help="Bed file containing targeted regions") + parser.add_argument('-d', type=str, required=False, metavar='discard_regions.bed', default=None, + help="Bed file with regions to discard") + parser.add_argument('-to', type=float, required=False, metavar='off-target coverage scalar', default=0.00, help="off-target coverage scalar") - parser.add_argument('-m', type=str, required=False, metavar='', default=None, - help="mutation model pickle file") - parser.add_argument('-M', type=float, required=False, metavar='', default=-1, - help="rescale avg mutation rate to this") - parser.add_argument('-Mb', type=str, required=False, metavar='', default=None, - help="bed file containing positional mut rates") + parser.add_argument('-m', type=str, required=False, metavar='model.p', default=None, + help="Mutation model pickle file") + parser.add_argument('-M', type=float, required=False, metavar='avg mut rate', default=-1, + help="Rescale avg mutation rate to this, must be between 0 and 0.3") + parser.add_argument('-Mb', type=str, required=False, metavar='mut_rates.bed', default=None, + help="Bed file containing positional mut rates") parser.add_argument('-N', type=int, required=False, metavar='', default=-1, help="below this qual, replace base-calls with 'N's") parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") @@ -93,7 +98,6 @@ def main(raw_args=None): """ # absolute path to this script sim_path = pathlib.Path(__file__).resolve().parent - print(sim_path) # if coverage val for a given window/position is below this value, consider it effectively zero. low_cov_thresh = 50 @@ -119,9 +123,9 @@ def main(raw_args=None): rng_seed = args.rng - """************************************************ - **** INPUT ERROR CHECKING - ************************************************""" + """ + INPUT ERROR CHECKING + """ if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): print('\nError: --pe argument takes 2 space-separated arguments.\n') exit(1) @@ -159,9 +163,9 @@ def main(raw_args=None): rng_seed = random.randint(1, 99999999) random.seed(rng_seed) - """************************************************ - **** LOAD INPUT MODELS - ************************************************""" + """ + LOAD INPUT MODELS + """ # mutation models mut_model = parse_input_mutation_model(mut_model, 1) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 89e0154..0c76619 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -215,7 +215,8 @@ def init_mut_models(self, mut_models, mut_rate): self.models.append([self.mut_scalar * n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), DiscreteDistribution(n[7], n[6]), []]) for m in n[8]: - self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), DiscreteDistribution(m[1], NUCL), DiscreteDistribution(m[2], NUCL), DiscreteDistribution(m[3], NUCL)]) + self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), DiscreteDistribution(m[1], NUCL), + DiscreteDistribution(m[2], NUCL), DiscreteDistribution(m[3], NUCL)]) self.models[-1].append([m for m in n[9]]) def init_poisson(self): diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 2461789666586b49937f3e28b3c298c9db237102..0569b166d46443ef5fd8ecf2e146943a4b69aaca 100644 GIT binary patch delta 1964 zcma)-eNa?Y6u{qkz{0Y-2_q;Vi@*ZPr$A2l1u`I@qI_uJxJu9G?%UDq*}}GimOY7Z1qTvuK^DGm&4&5=i@-~JoptMr5S$FTT+GqhB3#snjhxy^Q?)uz?O=&F{x-y%ZJ~wIBhfhre8>_ z27ZLY#Ei|rVSmOJxT{x9A|Vi`AJ19`5T=*p=#fy4$Fq_!s%SUZaiB5im}tK%8^3s=5N}Vm^Pi~X&@WK$eG&|R~(0|YRvTcTx6AX0}!G)d6#P~~38$EK>S zuoqKIsbET4atW-z8Ykusp@mvf?bx|*;_VBp5)(a6BQr8;-Z}5n9YmI!DIi7O^)miJ) zso(PYY+8A>-b&dUWM6&J6IR2_N{?Q&6ySv3y7(QihRcfV6TAhajK!PIkjs!qaS0O} zri61{5YP1hUT?4^4N_?!!YgPFl}OrC=0D=w4V6!rr&``FvDPS6;!rEzq~{ZHGIR=-{Sn`>3Mf~j??JF z8MswNizLxmt|~rJRwR=5bnofHs78*%gUe^a0emgS27h97Q=Q?!Ki=Ru>}^VhKJ0HQ zh4Xl)DGPEi;iZ%{Uon#mhHVU+7`|gT!w?KdWTVpz-!l|4Tx9rx;R3@YhBq1d89WS? z3}+d(Gn`|XM3EUqis>t0Bs8ZrtcoJpLk0FQub}#ANi|kUduZD$f|q0k6C8ZL7rhNjjK z3oi7g;||AcTUE&8?T|-z7riKCrQPon+WbDzC##Ckh9izw@w&r|8=TL>F&uQRkB^WQ zO<+ZNYP&b!GD(3(G`W-U$_z8!mu8_|io>%LVo`8SG0-|`f&;I**O_ARCs!dB zy5g{Df)TUbHFTVUTiwM5BP;%>X`jo4Bkn!6&i@hX>EJUd9^hLG$j5kDb|oe}yLxPm3VgAp86x$;mW^OCZUVBaE7Hle8ucZfW4x{BiL|Ca z+X?2Y8!$=@wg4Zf=lOR-(AtoICzUX4YtKNlcdBK}V>jee+Ft>-;eKx)9LA+&4V=KA zi4#s?iFTkWLR9GHRq2sumsKWDZm>FCXJ8jcApO}vuuNzH=>c(wKFPUW&-b+h+`^sy rwe%Be>sZe}458nt1pK-~ghx23vjB#0Y3E09R3GWw$kU5^<0{wRm_L36 delta 1987 zcma)+dr(wW7{Kp$mtA&QRv<)>m%svs2qR{^p-?~!d8{amn~2xFcb6;6-R10E5C(G0 z8S_!8ePdJV7+RK!kI`G2O_rKXV?N8rAB-aG3 z`=nBUEBN@h%eXXU5>82}eUP?QBqlu|UfxpF}Qj~;8 z?CH3-C>&LL4io*D&qUpD8w=9c!A?vAA-#Iv{crw00 z=e5PN;V=#s55TurQ5>tUxV*##-_cni4wq!YZwRIH;hwgjbTfbx@0VSKY1+l|Q=!%f zIWSA=mPkNq!adbH;R&2OeFN;kRBJ3u!SEUhN|4m3P^I0dnE?^e9!YJIx`LA8k`+%C zRy=bOhS64=NI9YQ9Cf@``!dh*+Ul8AV10*nfV{_$K?6qPt-3hK#?bm9;83e?ql|8_ zC-4K7mE3@Fz%&pln)30cVnN$6c zxjpe?YBW5OX)?)R9uJaS#pLFyuu(xpcKb+YTNf(LWw0A}HSaIA5vj=~cqOrl5Fc?` zB=%|(1(lqnA)IER+cToE>Y7G@2%Q0^$xnO>9XQyMoXpaWEbu5B>08tjSJCNK?Q)AR z#Pk`{oJ7aGjI296#|7xanYg|uXGwxM&8Mh>tVksHZ|&bQZ#L|~pEK-m7vozSO?w^$ zfk=F{HN~=%2_h-5D<%`KwLWG#!z7bg9>_)e{M03%GC?N8CWf^PXBj?c(3d5!(Fun0 z43inYV7S0=j^Rs&RSdfsybRS0rx-RfoMsqLkrheG=*wv)bZ<*41yvy1**v7HA*eb- z0<@S;LuappOwgqPCbcM)lDElMEztV=iPSwq5hbrPoMNh1aCLa)fI4iD713#w15Lq& zPE%)ZebD74Z|aGtLh{a(6uswJpr;>c{ZI%sxQ$J1J=0SEtJJLJf%+_{&N7k%)P)>m zc%Okakqj~Dw=Cxn9d2PQWTDMqt|Lt1Vhv@#(ew$UkAXgcQfydIV>GNakV0+Kg2R0L zr2eQu%NDMZYfT@B?vLt^9?OYo9XvHapDPjUcvkVG&!E149*}ImKtCQc6n{{y3#x)D z`;qnSEP!(CK6s@;me`fb=~jlrDKc(i)r;90!wkJbGuJ@xu5LBFM% zr_5-kYtTJm9!9ilPxbzfHRqOkee|LQ%5zIa*`>OCo&ItXL+doV8V$1DdW;UqCk)3i zPj0FT?`fA^?Uj;S2zu3FvyYa5ZQW`0%k)S{Z7j$z+jBDw>STi!Pdk-Rn-K{ewBT7e zG2GbMOHb4=-;qb&#$ROj*w}w5>vZf})DEMxtBclv)vy-G*8VV&>o8~o-a~xKs)sh2 z|A+`U*S8X0WDUVo|7m!g*00aD;V&n$4=0HkxUs7kHshtPAvl1~lO=Ej`G5$=(G%Ef z3>B2#dQ4Q~)6*W2fNj4`l;{m{392Nn&{|bLz%@J*Tng8*v3oiEuJ`O#w*>cbc26E0 U!{t5O;E*1^bd=K%mN3Ir7Z diff --git a/py/__pycache__/probability.cpython-37.pyc b/py/__pycache__/probability.cpython-37.pyc index 72c0c863e96e15f9a995fc697e12855ad24e1268..e59de6b00ff33dfb009c597b6e564cd1ee7552a3 100644 GIT binary patch delta 20 acmew)|4E+PiIu%(J&JO@RT?Nko diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc index 1a4ba051edd81dcc444ed2938470b98ed11e20de..b8b4b688d0f76ac387e54f1ac6fa29e8a168de60 100644 GIT binary patch delta 80 zcmaE=`c#$MiI9FBqR8$7y~DBb4zZ1!#9(O%@?So$bWLT c;AzH?$>Bmi+<_p05D=j@xsXqI@ None: @@ -19,10 +19,10 @@ def required_field(variable_to_test: any, err_string: str) -> None: exit(1) -def check_file_open(filename: str, err_string: str, required: bool = False) -> None: +def check_file_open(filename: pathlib, err_string: str, required: bool = False) -> None: """ Checks that the filename is not empty and that it is indeed a file - :param filename: file name, string + :param filename: file name, pathlib object :param err_string: string of the error if it is not a file :param required: If not required, skips the check :return: None @@ -30,25 +30,24 @@ def check_file_open(filename: str, err_string: str, required: bool = False) -> N if required or filename is not None: if filename is None: print('\n' + err_string + '\n') - exit(1) + raise ValueError else: try: - open(filename, 'r') - except ValueError: + filename.resolve(strict=True) + except FileNotFoundError: print('\n' + err_string + '\n') - exit(1) -def check_dir(directory: str, err_string: str) -> None: +def check_dir(directory: pathlib, err_string: str) -> None: """ Checks that directory exists and is a directory :param directory: string of the directory path :param err_string: string of the error in case it is not a directory or doesn't exist :return: None """ - if not os.path.isdir(directory): + if not directory.is_dir(): print('\n' + err_string + '\n') - exit(1) + raise NotADirectoryError def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string: str) -> None: @@ -63,4 +62,4 @@ def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string """ if value < lower_bound or value > upper_bound: print('\n' + err_string + '\n') - exit(1) + raise ValueError From e9ebbea36b710701bbc101afe4093079a665c0f6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 15:58:12 -0500 Subject: [PATCH 135/323] Updated input_checking.py to use pathlib --- gen_reads.py | 1 - py/input_checking.py | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 7d36d5a..7aad1e1 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -129,7 +129,6 @@ def main(raw_args=None): if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): print('\nError: --pe argument takes 2 space-separated arguments.\n') exit(1) - only_vcf = no_fastq and save_vcf and not save_bam and not fasta_instead if only_vcf: print('Only producing VCF output, that should speed things up a bit...') diff --git a/py/input_checking.py b/py/input_checking.py index bc59c39..0714705 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -16,7 +16,7 @@ def required_field(variable_to_test: any, err_string: str) -> None: """ if variable_to_test is None: print('\n' + err_string + '\n') - exit(1) + raise ValueError def check_file_open(filename: pathlib, err_string: str, required: bool = False) -> None: From ff7b27d7a858226ee1fb9594240c6beed6f92c85 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 16:01:50 -0500 Subject: [PATCH 136/323] Updated input_checking.py to use pathlib --- py/input_checking.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/py/input_checking.py b/py/input_checking.py index 0714705..cdc34f8 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -19,7 +19,7 @@ def required_field(variable_to_test: any, err_string: str) -> None: raise ValueError -def check_file_open(filename: pathlib, err_string: str, required: bool = False) -> None: +def check_file_open(filename: str, err_string: str, required: bool = False) -> None: """ Checks that the filename is not empty and that it is indeed a file :param filename: file name, pathlib object @@ -33,19 +33,19 @@ def check_file_open(filename: pathlib, err_string: str, required: bool = False) raise ValueError else: try: - filename.resolve(strict=True) + pathlib.Path(filename).resolve(strict=True) except FileNotFoundError: print('\n' + err_string + '\n') -def check_dir(directory: pathlib, err_string: str) -> None: +def check_dir(directory: str, err_string: str) -> None: """ Checks that directory exists and is a directory :param directory: string of the directory path :param err_string: string of the error in case it is not a directory or doesn't exist :return: None """ - if not directory.is_dir(): + if not pathlib.Path(directory).is_dir(): print('\n' + err_string + '\n') raise NotADirectoryError From cb33c0dbe10fdf398b342c730f35655039230a23 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 16:04:58 -0500 Subject: [PATCH 137/323] Updated input_checking.py to use pathlib --- py/input_checking.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/py/input_checking.py b/py/input_checking.py index cdc34f8..7ac744f 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -17,6 +17,7 @@ def required_field(variable_to_test: any, err_string: str) -> None: if variable_to_test is None: print('\n' + err_string + '\n') raise ValueError + exit(1) def check_file_open(filename: str, err_string: str, required: bool = False) -> None: @@ -31,11 +32,13 @@ def check_file_open(filename: str, err_string: str, required: bool = False) -> N if filename is None: print('\n' + err_string + '\n') raise ValueError + exit(1) else: try: pathlib.Path(filename).resolve(strict=True) except FileNotFoundError: print('\n' + err_string + '\n') + exit(1) def check_dir(directory: str, err_string: str) -> None: @@ -48,6 +51,7 @@ def check_dir(directory: str, err_string: str) -> None: if not pathlib.Path(directory).is_dir(): print('\n' + err_string + '\n') raise NotADirectoryError + exit(1) def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string: str) -> None: @@ -63,3 +67,4 @@ def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string if value < lower_bound or value > upper_bound: print('\n' + err_string + '\n') raise ValueError + exit(1) From 01a1ca6993f58c970f0687e2b9e3e6cf279bff7f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 21 Aug 2020 16:06:16 -0500 Subject: [PATCH 138/323] Updated input_checking.py to use pathlib --- gen_reads.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 7aad1e1..d2164be 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -133,9 +133,9 @@ def main(raw_args=None): if only_vcf: print('Only producing VCF output, that should speed things up a bit...') - check_file_open(reference, 'ERROR: could not open reference', required=True) - check_file_open(input_vcf, 'ERROR: could not open input VCF', required=False) - check_file_open(input_bed, 'ERROR: could not open input BED', required=False) + check_file_open(reference, 'ERROR: could not open reference, {}'.format(reference), required=True) + check_file_open(input_vcf, 'ERROR: could not open input VCF, {}'.format(input_vcf), required=False) + check_file_open(input_bed, 'ERROR: could not open input BED, {}'.format(input_bed), required=False) required_field(out_prefix, 'ERROR: no output prefix provided') # if user specified mean/std, use artificial fragment length distribution, otherwise use From 699eec163735982a6a022514c6ff5d8b5b69790f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 10:53:35 -0500 Subject: [PATCH 139/323] Starting to work on gen_reads and SequenceContainer --- gen_reads.py | 97 +++---- py/SequenceContainer.py | 250 ++++++------------ .../SequenceContainer.cpython-37.pyc | Bin 31522 -> 29131 bytes py/input_checking.py | 6 +- py/vcf_func.py | 58 ++-- 5 files changed, 163 insertions(+), 248 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index d2164be..1417199 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -33,6 +33,17 @@ from py.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model +""" +Some constants needed for analysis +""" + +# target window size for read sampling. How many times bigger than read/frag length +WINDOW_TARGET_SCALE = 100 + +# allowed nucleotides +ALLOWED_NUCL = ['A', 'C', 'G', 'T'] + + def main(raw_args=None): """////////////////////////////////////////////////// //////////// PARSE INPUT ARGUMENTS //////////// @@ -63,10 +74,10 @@ def main(raw_args=None): help="Rescale avg mutation rate to this, must be between 0 and 0.3") parser.add_argument('-Mb', type=str, required=False, metavar='mut_rates.bed', default=None, help="Bed file containing positional mut rates") - parser.add_argument('-N', type=int, required=False, metavar='', default=-1, - help="below this qual, replace base-calls with 'N's") - parser.add_argument('-v', type=str, required=False, metavar='', default=None, help="input VCF file") - + parser.add_argument('-N', type=int, required=False, metavar='min qual score', default=-1, + help="below this quality score, replace base-calls with N's") + parser.add_argument('-v', type=str, required=False, metavar='vcf.file', default=None, + help="Input VCF file of variants to include") parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(None, None), help='paired-end fragment length mean and std') parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, @@ -96,6 +107,7 @@ def main(raw_args=None): """ Set variables for processing """ + # absolute path to this script sim_path = pathlib.Path(__file__).resolve().parent @@ -126,17 +138,27 @@ def main(raw_args=None): """ INPUT ERROR CHECKING """ - if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): - print('\nError: --pe argument takes 2 space-separated arguments.\n') - exit(1) - only_vcf = no_fastq and save_vcf and not save_bam and not fasta_instead - if only_vcf: - print('Only producing VCF output, that should speed things up a bit...') + # Check that files are real, if provided check_file_open(reference, 'ERROR: could not open reference, {}'.format(reference), required=True) check_file_open(input_vcf, 'ERROR: could not open input VCF, {}'.format(input_vcf), required=False) check_file_open(input_bed, 'ERROR: could not open input BED, {}'.format(input_bed), required=False) - required_field(out_prefix, 'ERROR: no output prefix provided') + + # if user specified no fastq, not fasta only, and no bam and no vcf, then print error and exit. + if no_fastq and not fasta_instead and not save_bam and not save_vcf: + print('\nERROR: No files would be written.\n') + exit(1) + + if no_fastq: + print('Bypassing FASTQ generation...') + + only_vcf = no_fastq and save_vcf and not save_bam and not fasta_instead + if only_vcf: + print('Only producing VCF output...') + + if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): + print('\nERROR: --pe argument takes 2 space-separated arguments.\n') + exit(1) # if user specified mean/std, use artificial fragment length distribution, otherwise use # the empirical model specified. If neither, then we're doing single-end reads. @@ -150,18 +172,23 @@ def main(raw_args=None): paired_end = False paired_end_artificial = False - # if user specified no fastq, not fasta only, and no bam and no vcf, then print error and exit. - if no_fastq and not fasta_instead and not save_bam and not save_vcf: - print('\nError: No files would be written.\n') - exit(1) - - if no_fastq: - print('Bypassing FASTQ generation...') - if rng_seed == -1: rng_seed = random.randint(1, 99999999) random.seed(rng_seed) + is_in_range(read_len, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') + is_in_range(coverage, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') + is_in_range(ploids, 1, 100, 'Error: -p must be between 1 and 100') + is_in_range(off_target_scalar, 0, 1, 'Error: -to must be between 0 and 1') + + if se_rate != -1: + is_in_range(se_rate, 0, 0.3, 'Error: -E must be between 0 and 0.3') + else: + se_rate = None + + if n_max_qual != -1: + is_in_range(n_max_qual, 1, 40, 'Error: -N must be between 1 and 40') + """ LOAD INPUT MODELS """ @@ -173,9 +200,10 @@ def main(raw_args=None): if mut_rate < 0.: mut_rate = None + if mut_rate != -1 and mut_rate is not None: + is_in_range(mut_rate, 0, 0.3, 'Error: -M must be between 0 and 0.3') + # sequencing error model - if se_rate < 0.: - se_rate = None if se_model is None: print('Using default sequencing error model.') se_model = sim_path / 'models/errorModel_toy.p' @@ -224,31 +252,6 @@ def main(raw_args=None): fraglen_vals] fraglen_distribution = DiscreteDistribution(fraglen_prob, fraglen_vals) - """************************************************ - **** HARD-CODED CONSTANTS - ************************************************""" - - # target window size for read sampling. how many times bigger than read/frag length - WINDOW_TARGET_SCALE = 100 - - # allowed nucleotides - ALLOWED_NUCL = ['A', 'C', 'G', 'T'] - - """************************************************ - **** MORE INPUT ERROR CHECKING - ************************************************""" - - is_in_range(read_len, 10, 1000000, 'Error: -R must be between 10 and 1,000,000') - is_in_range(coverage, 0, 1000000, 'Error: -c must be between 0 and 1,000,000') - is_in_range(ploids, 1, 100, 'Error: -p must be between 1 and 100') - is_in_range(off_target_scalar, 0, 1, 'Error: -to must be between 0 and 1') - if mut_rate != -1 and mut_rate is not None: - is_in_range(mut_rate, 0, 0.3, 'Error: -M must be between 0 and 0.3') - if se_rate != -1 and se_rate is not None: - is_in_range(se_rate, 0, 0.3, 'Error: -E must be between 0 and 0.3') - if n_max_qual != -1: - is_in_range(n_max_qual, 1, 40, 'Error: -N must be between 1 and 40') - """************************************************ **** Process Inputs ************************************************""" @@ -665,7 +668,7 @@ def main(raw_args=None): for j in range(len(my_read_data)): my_read_string = [n for n in my_read_data[j][2]] for k in range(len(my_read_data[j][3])): - adjusted_qual = ord(my_read_data[j][3][k]) - se_class.offQ + adjusted_qual = ord(my_read_data[j][3][k]) - se_class.off_q if adjusted_qual <= n_max_qual: my_read_string[k] = 'N' my_read_data[j][2] = ''.join(my_read_string) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 0c76619..ad97a02 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -10,6 +10,9 @@ from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString +""" +Constants needed for analysis +""" MAX_ATTEMPTS = 100 # max attempts to insert a mutation into a valid position MAX_MUTFRAC = 0.3 # the maximum percentage of a window that can contain mutations @@ -27,6 +30,60 @@ COV_FRAGLEN_PERCENTILE = 10. LARGE_NUMBER = 9999999999 +""" +DEFAULT MUTATION MODELS +""" + +DEFAULT_1_OVERALL_MUT_RATE = 0.001 +DEFAULT_1_HOMOZYGOUS_FREQ = 0.010 +DEFAULT_1_INDEL_FRACTION = 0.05 +DEFAULT_1_INS_VS_DEL = 0.6 +DEFAULT_1_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +DEFAULT_1_INS_LENGTH_WEIGHTS = [0.4, 0.2, 0.1, 0.05, 0.05, 0.05, 0.05, 0.034, 0.033, 0.033] +DEFAULT_1_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] +DEFAULT_1_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] +example_matrix_1 = [[0.0, 0.15, 0.7, 0.15], + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] +DEFAULT_1_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, + DEFAULT_1_HOMOZYGOUS_FREQ, + DEFAULT_1_INDEL_FRACTION, + DEFAULT_1_INS_VS_DEL, + DEFAULT_1_INS_LENGTH_VALUES, + DEFAULT_1_INS_LENGTH_WEIGHTS, + DEFAULT_1_DEL_LENGTH_VALUES, + DEFAULT_1_DEL_LENGTH_WEIGHTS, + DEFAULT_1_TRI_FREQS, + DEFAULT_1_TRINUC_BIAS] + +DEFAULT_2_OVERALL_MUT_RATE = 0.002 +DEFAULT_2_HOMOZYGOUS_FREQ = 0.200 +DEFAULT_2_INDEL_FRACTION = 0.1 +DEFAULT_2_INS_VS_DEL = 0.3 +DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] +DEFAULT_2_INS_LENGTH_WEIGHTS = [0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] +DEFAULT_2_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] +DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] +example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], + [0.15, 0.0, 0.15, 0.7], + [0.7, 0.15, 0.0, 0.15], + [0.15, 0.7, 0.15, 0.0]] +DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] +DEFAULT_2_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, + DEFAULT_2_HOMOZYGOUS_FREQ, + DEFAULT_2_INDEL_FRACTION, + DEFAULT_2_INS_VS_DEL, + DEFAULT_2_INS_LENGTH_VALUES, + DEFAULT_2_INS_LENGTH_WEIGHTS, + DEFAULT_2_DEL_LENGTH_VALUES, + DEFAULT_2_DEL_LENGTH_WEIGHTS, + DEFAULT_2_TRI_FREQS, + DEFAULT_2_TRINUC_BIAS] + # # Container for reference sequences, applies mutations @@ -156,8 +213,10 @@ def init_coverage(self, coverage_data, frag_dist=None): # print 'AFTER2:', max_coord coverage_vals = [] for j in range(0, max_coord): - coverage_vals.append(coverage_vector[j + self.read_len] - coverage_vector[j] + coverage_vector[j + flv] - coverage_vector[ - j + flv - self.read_len]) + coverage_vals.append( + coverage_vector[j + self.read_len] - coverage_vector[j] + coverage_vector[j + flv] - + coverage_vector[ + j + flv - self.read_len]) # EXPERIMENTAL # quantized_covVals = quantize_list(coverage_vals) @@ -665,16 +724,15 @@ def sample_read(self, sequencingModel, frag_len=None): return r_out - -# -# Container for read data, computes quality scores and positions to insert errors -# class ReadContainer: - def __init__(self, read_len, errorModel, rescaled_error): + """ + Container for read data, computes quality scores and positions to insert errors + """ + def __init__(self, read_len, error_model, rescaled_error): self.read_len = read_len - error_dat = pickle.load(open(errorModel, 'rb'), encoding="bytes") + error_dat = pickle.load(open(error_model, 'rb'), encoding="bytes") self.UNIFORM = False if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) self.UNIFORM = True @@ -682,21 +740,23 @@ def __init__(self, read_len, errorModel, rescaled_error): self.uniform_q_score = int(-10. * np.log10(avg_error) + 0.5) print('Using uniform sequencing error model. (q=' + str(self.uniform_q_score) + '+' + str( off_q) + ', p(err)={0:0.2f}%)'.format(100. * avg_error)) - if len(error_dat) == 6: # only 1 q-score model present, use same model for both strands + elif len(error_dat) == 6: # only 1 q-score model present, use same model for both strands [init_q1, prob_q1, q_scores, off_q, avg_error, error_params] = error_dat self.PE_MODELS = False elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands - # print 'Using paired-read quality score profiles...' - [init_q1, prob_q1, initQ2, probQ2, q_scores, off_q, avg_error, error_params] = error_dat + [init_q1, prob_q1, init_q2, prob_q2, q_scores, off_q, avg_error, error_params] = error_dat self.PE_MODELS = True - if len(init_q1) != len(initQ2) or len(prob_q1) != len(probQ2): + if len(init_q1) != len(init_q2) or len(prob_q1) != len(prob_q2): print('\nError: R1 and R2 quality score models are of different length.\n') exit(1) - - self.qErrRate = [0.] * (max(q_scores) + 1) + else: + print('\nError: Something wrong with error model.\n') + exit(1) + print(q_scores) + self.q_err_rate = [0.] * (max(q_scores) + 1) for q in q_scores: - self.qErrRate[q] = 10. ** (-q / 10.) - self.offQ = off_q + self.q_err_rate[q] = 10. ** (-q / 10.) + self.off_q = off_q # error_params = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] self.errP = error_params @@ -735,17 +795,17 @@ def __init__(self, read_len, errorModel, rescaled_error): self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(prob_q1[i][j], q_scores)) if self.PE_MODELS: - self.initDistByPos2 = [DiscreteDistribution(initQ2[i], q_scores) for i in range(len(initQ2))] + self.initDistByPos2 = [DiscreteDistribution(init_q2[i], q_scores) for i in range(len(init_q2))] self.probDistByPosByPrevQ2 = [None] - for i in range(1, len(initQ2)): + for i in range(1, len(init_q2)): self.probDistByPosByPrevQ2.append([]) - for j in range(len(initQ2[0])): - if np.sum(probQ2[i][ + for j in range(len(init_q2[0])): + if np.sum(prob_q2[i][ j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore self.probDistByPosByPrevQ2[-1].append( DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(probQ2[i][j], q_scores)) + self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(prob_q2[i][j], q_scores)) def get_sequencing_errors(self, read_data, is_reverse_strand=False): @@ -753,10 +813,10 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): s_err = [] if self.UNIFORM: - my_q = [self.uniform_q_score + self.offQ for n in range(self.read_len)] + my_q = [self.uniform_q_score + self.off_q for n in range(self.read_len)] q_out = ''.join([chr(n) for n in my_q]) for i in range(self.read_len): - if random.random() < self.errorScale * self.qErrRate[self.uniform_q_score]: + if random.random() < self.errorScale * self.q_err_rate[self.uniform_q_score]: s_err.append(i) else: @@ -777,10 +837,10 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): q_out = q_out[::-1] for i in range(self.read_len): - if random.random() < self.errorScale * self.qErrRate[q_out[i]]: + if random.random() < self.errorScale * self.q_err_rate[q_out[i]]: s_err.append(i) - q_out = ''.join([chr(n + self.offQ) for n in q_out]) + q_out = ''.join([chr(n + self.off_q) for n in q_out]) if self.errorScale == 0.0: return q_out, [] @@ -829,13 +889,9 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): return q_out, s_out -"""************************************************ -**** DEFAULT MUTATION MODELS -************************************************""" - - # parse mutation model pickle file def parse_input_mutation_model(model=None, which_default=1): + if which_default == 1: out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] elif which_default == 2: @@ -896,137 +952,3 @@ def parse_input_mutation_model(model=None, which_default=1): return out_model - -# parse mutation model files, returns default model if no model directory is specified -# -# OLD FUNCTION THAT PROCESSED OUTDATED TEXTFILE MUTATION MODELS -def parse_input_mutation_model_deprecated(prefix=None, which_default=1): - if which_default == 1: - out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] - elif which_default == 2: - out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] - else: - print('\nError: Unknown default mutation model specified\n') - exit(1) - - if prefix is not None: - if prefix[-1] != '/': - prefix += '/' - if not os.path.isdir(prefix): - print('\nError: Input mutation model directory not found:', prefix, '\n') - exit(1) - - print('Reading in mutation model...') - listing1 = [n for n in os.listdir(prefix) if n[-5:] == '.prob'] - listing2 = [n for n in os.listdir(prefix) if n[-7:] == '.trinuc'] - listing = sorted(listing1) + sorted(listing2) - for l in listing: - f = open(prefix + l, 'r') - fr = [n.split('\t') for n in f.read().split('\n')] - f.close() - - if '_overall.prob' in l: - myIns = None - myDel = None - for dat in fr[1:]: - if len(dat) == 2: - if dat[0] == 'insertion': - myIns = float(dat[1]) - elif dat[0] == 'deletion': - myDel = float(dat[1]) - if myIns is not None and myDel is not None: - out_model[2] = myIns + myDel - out_model[3] = myIns / (myIns + myDel) - print('-', l) - - if '_insLength.prob' in l: - ins_vals = {} - for dat in fr[1:]: - if len(dat) == 2: - ins_vals[int(dat[0])] = float(dat[1]) - if len(ins_vals): - out_model[4] = sorted(ins_vals.keys()) - out_model[5] = [ins_vals[n] for n in out_model[4]] - print('-', l) - - if '_delLength.prob' in l: - del_vals = {} - for dat in fr[1:]: - if len(dat) == 2: - del_vals[int(dat[0])] = float(dat[1]) - if len(del_vals): - out_model[6] = sorted(del_vals.keys()) - out_model[7] = [del_vals[n] for n in out_model[6]] - print('-', l) - - if '.trinuc' == l[-7:]: - context_ind = TRI_IND[l[-10] + l[-8]] - p_matrix = [[-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1], [-1, -1, -1, -1]] - for i in range(len(p_matrix)): - for j in range(len(fr[i])): - p_matrix[i][j] = float(fr[i][j]) - any_none = False - for i in range(len(p_matrix)): - for j in range(len(p_matrix[i])): - if p_matrix[i][j] == -1: - any_none = True - if not any_none: - out_model[8][context_ind] = copy.deepcopy(p_matrix) - print('-', l) - - return out_model - - -###################### -# DEFAULT VALUES # -###################### - -DEFAULT_1_OVERALL_MUT_RATE = 0.001 -DEFAULT_1_HOMOZYGOUS_FREQ = 0.010 -DEFAULT_1_INDEL_FRACTION = 0.05 -DEFAULT_1_INS_VS_DEL = 0.6 -DEFAULT_1_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -DEFAULT_1_INS_LENGTH_WEIGHTS = [0.4, 0.2, 0.1, 0.05, 0.05, 0.05, 0.05, 0.034, 0.033, 0.033] -DEFAULT_1_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] -DEFAULT_1_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] -example_matrix_1 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] -DEFAULT_1_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] -DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, - DEFAULT_1_HOMOZYGOUS_FREQ, - DEFAULT_1_INDEL_FRACTION, - DEFAULT_1_INS_VS_DEL, - DEFAULT_1_INS_LENGTH_VALUES, - DEFAULT_1_INS_LENGTH_WEIGHTS, - DEFAULT_1_DEL_LENGTH_VALUES, - DEFAULT_1_DEL_LENGTH_WEIGHTS, - DEFAULT_1_TRI_FREQS, - DEFAULT_1_TRINUC_BIAS] - -DEFAULT_2_OVERALL_MUT_RATE = 0.002 -DEFAULT_2_HOMOZYGOUS_FREQ = 0.200 -DEFAULT_2_INDEL_FRACTION = 0.1 -DEFAULT_2_INS_VS_DEL = 0.3 -DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] -DEFAULT_2_INS_LENGTH_WEIGHTS = [0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] -DEFAULT_2_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] -DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] -example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], - [0.15, 0.0, 0.15, 0.7], - [0.7, 0.15, 0.0, 0.15], - [0.15, 0.7, 0.15, 0.0]] -DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] -DEFAULT_2_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] -DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, - DEFAULT_2_HOMOZYGOUS_FREQ, - DEFAULT_2_INDEL_FRACTION, - DEFAULT_2_INS_VS_DEL, - DEFAULT_2_INS_LENGTH_VALUES, - DEFAULT_2_INS_LENGTH_WEIGHTS, - DEFAULT_2_DEL_LENGTH_VALUES, - DEFAULT_2_DEL_LENGTH_WEIGHTS, - DEFAULT_2_TRI_FREQS, - DEFAULT_2_TRINUC_BIAS] diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 0569b166d46443ef5fd8ecf2e146943a4b69aaca..73184af3582177b539fa74dab2df1d193ed901f2 100644 GIT binary patch delta 5723 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 ARsaA1 delta 7482 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 diff --git a/py/input_checking.py b/py/input_checking.py index 7ac744f..25c4885 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -17,13 +17,12 @@ def required_field(variable_to_test: any, err_string: str) -> None: if variable_to_test is None: print('\n' + err_string + '\n') raise ValueError - exit(1) def check_file_open(filename: str, err_string: str, required: bool = False) -> None: """ Checks that the filename is not empty and that it is indeed a file - :param filename: file name, pathlib object + :param filename: file name, string :param err_string: string of the error if it is not a file :param required: If not required, skips the check :return: None @@ -32,7 +31,6 @@ def check_file_open(filename: str, err_string: str, required: bool = False) -> N if filename is None: print('\n' + err_string + '\n') raise ValueError - exit(1) else: try: pathlib.Path(filename).resolve(strict=True) @@ -51,7 +49,6 @@ def check_dir(directory: str, err_string: str) -> None: if not pathlib.Path(directory).is_dir(): print('\n' + err_string + '\n') raise NotADirectoryError - exit(1) def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string: str) -> None: @@ -67,4 +64,3 @@ def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string if value < lower_bound or value > upper_bound: print('\n' + err_string + '\n') raise ValueError - exit(1) diff --git a/py/vcf_func.py b/py/vcf_func.py index 003d17f..55170ff 100644 --- a/py/vcf_func.py +++ b/py/vcf_func.py @@ -4,39 +4,36 @@ import re import random -INCLUDE_HOMS = False -INCLUDE_FAIL = False -CHOOSE_RANDOM_PLOID_IF_NO_GT_FOUND = True - -def parse_line(splt, col_dict, col_samp): +def parse_line(vcf_line, col_dict, col_samp): # check if we want to proceed.. - ra = splt[col_dict['REF']] - aa = splt[col_dict['ALT']] + reference_allele = vcf_line[col_dict['REF']] + alternate_allele = vcf_line[col_dict['ALT']] # enough columns? - if len(splt) != len(col_dict): + if len(vcf_line) != len(col_dict): return None # exclude homs / filtered? - if not (INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): + # There was an attempt I think to make these optional that was never implemented. + if alternate_allele == '.' or alternate_allele == '' or alternate_allele == reference_allele: return None - if not (INCLUDE_FAIL) and (splt[col_dict['FILTER']] != 'PASS' and splt[col_dict['FILTER']] != '.'): + if vcf_line[col_dict['FILTER']] != 'PASS' and vcf_line[col_dict['FILTER']] != '.': return None # default vals - alt_alleles = [aa] + alt_alleles = [alternate_allele] alt_freqs = [] gt_per_samp = [] # any alt alleles? - alt_split = aa.split(',') + alt_split = alternate_allele.split(',') if len(alt_split) > 1: alt_alleles = alt_split # check INFO for AF af = None - if 'INFO' in col_dict and ';AF=' in ';' + splt[col_dict['INFO']]: - info = splt[col_dict['INFO']] + ';' + if 'INFO' in col_dict and ';AF=' in ';' + vcf_line[col_dict['INFO']]: + info = vcf_line[col_dict['INFO']] + ';' af = re.findall(r"AF=.*?(?=;)", info)[0][3:] if af is not None: af_splt = af.split(',') @@ -49,19 +46,19 @@ def parse_line(splt, col_dict, col_samp): gt_per_samp = None # if available (i.e. we simulated it) look for WP in info - if len(col_samp) == 0 and 'INFO' in col_dict and 'WP=' in splt[col_dict['INFO']]: - info = splt[col_dict['INFO']] + ';' + if len(col_samp) == 0 and 'INFO' in col_dict and 'WP=' in vcf_line[col_dict['INFO']]: + info = vcf_line[col_dict['INFO']] + ';' gt_per_samp = [re.findall(r"WP=.*?(?=;)", info)[0][3:]] else: # if no sample columns, check info for GT - if len(col_samp) == 0 and 'INFO' in col_dict and 'GT=' in splt[col_dict['INFO']]: - info = splt[col_dict['INFO']] + ';' + if len(col_samp) == 0 and 'INFO' in col_dict and 'GT=' in vcf_line[col_dict['INFO']]: + info = vcf_line[col_dict['INFO']] + ';' gt_per_samp = [re.findall(r"GT=.*?(?=;)", info)[0][3:]] elif len(col_samp): - fmt = ':' + splt[col_dict['FORMAT']] + ':' + fmt = ':' + vcf_line[col_dict['FORMAT']] + ':' if ':GT:' in fmt: gt_ind = fmt.split(':').index('GT') - gt_per_samp = [splt[col_samp[iii]].split(':')[gt_ind - 1] for iii in range(len(col_samp))] + gt_per_samp = [vcf_line[col_samp[iii]].split(':')[gt_ind - 1] for iii in range(len(col_samp))] for i in range(len(gt_per_samp)): gt_per_samp[i] = gt_per_samp[i].replace('.', '0') if gt_per_samp is None: @@ -103,19 +100,16 @@ def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): gt_eval = gt[:2] else: gt_eval = gt[:1] + # For some reason this had an additional "if True" inserted. I guess it was supposed to be an option + # the user could set but was never implemented. if None in gt_eval: - if CHOOSE_RANDOM_PLOID_IF_NO_GT_FOUND: - if not printed_warning: - print('Warning: Found variants without a GT field, assuming heterozygous...') - printed_warning = True - for i in range(len(gt_eval)): - tmp = ['0'] * ploidy - tmp[random.randint(0, ploidy - 1)] = '1' - gt_eval[i] = '/'.join(tmp) - else: - # skip because no GT field was found - n_skipped += 1 - continue + if not printed_warning: + print('Warning: Found variants without a GT field, assuming heterozygous...') + printed_warning = True + for i in range(len(gt_eval)): + tmp = ['0'] * ploidy + tmp[random.randint(0, ploidy - 1)] = '1' + gt_eval[i] = '/'.join(tmp) non_reference = False for gtVal in gt_eval: if gtVal is not None: From 05e08090d9174f98ac6025ca44d9cc507a82d035 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 13:48:47 -0500 Subject: [PATCH 140/323] debugging sequence container --- py/SequenceContainer.py | 25 +++++++++--------- .../SequenceContainer.cpython-37.pyc | Bin 29131 -> 29131 bytes 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index ad97a02..5b7c45e 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -625,7 +625,7 @@ def sample_read(self, sequencingModel, frag_len=None): expanded_cigar = [] extraCigar = [] adj = 0 - sse_adj = [0 for n in range(self.read_len + max(sequencingModel.errP[3]))] + sse_adj = [0 for n in range(self.read_len + max(sequencingModel.err_p[3]))] any_indel_err = False # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors @@ -752,17 +752,18 @@ def __init__(self, read_len, error_model, rescaled_error): else: print('\nError: Something wrong with error model.\n') exit(1) - print(q_scores) + self.q_err_rate = [0.] * (max(q_scores) + 1) for q in q_scores: self.q_err_rate[q] = 10. ** (-q / 10.) self.off_q = off_q + print(error_params) # error_params = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] - self.errP = error_params - self.errSSE = [DiscreteDistribution(n, NUCL) for n in self.errP[0]] - self.errSIE = DiscreteDistribution(self.errP[2], self.errP[3]) - self.errSIN = DiscreteDistribution(self.errP[5], NUCL) + self.err_p = error_params + self.err_sse = [DiscreteDistribution(n, NUCL) for n in self.err_p[0]] + self.err_sie = DiscreteDistribution(self.err_p[2], self.err_p[3]) + self.err_sin = DiscreteDistribution(self.err_p[5], NUCL) # adjust sequencing error frequency to match desired rate if rescaled_error is None: @@ -856,21 +857,21 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): # determine error type is_sub = True - if ind != 0 and ind != self.read_len - 1 - max(self.errP[3]) and abs(ind - prev_indel) > 1: - if random.random() < self.errP[1]: + if ind != 0 and ind != self.read_len - 1 - max(self.err_p[3]) and abs(ind - prev_indel) > 1: + if random.random() < self.err_p[1]: is_sub = False # error_out = (type, len, pos, ref, alt) if is_sub: # insert substitution error my_nucl = str(read_data[ind]) - new_nucl = self.errSSE[NUC_IND[my_nucl]].sample() + new_nucl = self.err_sse[NUC_IND[my_nucl]].sample() s_out.append(('S', 1, ind, my_nucl, new_nucl)) else: # insert indel error - indel_len = self.errSIE.sample() - if random.random() < self.errP[4]: # insertion error + indel_len = self.err_sie.sample() + if random.random() < self.err_p[4]: # insertion error my_nucl = str(read_data[ind]) - new_nucl = my_nucl + ''.join([self.errSIN.sample() for n in range(indel_len)]) + new_nucl = my_nucl + ''.join([self.err_sin.sample() for n in range(indel_len)]) s_out.append(('I', len(new_nucl) - 1, ind, my_nucl, new_nucl)) elif ind < self.read_len - 2 - n_del_so_far: # deletion error (prevent too many of them from stacking up) my_nucl = str(read_data[ind:ind + indel_len + 1]) diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 73184af3582177b539fa74dab2df1d193ed901f2..40c7ad84da8dc41dbad4cba5097f905ccd03b4e7 100644 GIT binary patch delta 286 zcmX^8nDO*uMlL5_UM>b8PKI| zBIbjL$spnah&T-*z$T=FSf@b56%b(wA})c5t03Ych`2m?O`-(%SrBs}h&Z?Te4;ix zb8c<^u|7jG#0E!L#UlGNhOa-q4*j0Yz7L`-8mxLG-}h>`K^ zgNS-3& Zk Date: Mon, 24 Aug 2020 15:37:26 -0500 Subject: [PATCH 141/323] debugging sequence container --- py/SequenceContainer.py | 48 +++++++++++++++++++++-------------------- py/probability.py | 12 +++-------- 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 5b7c45e..aa8cf8e 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -733,19 +733,19 @@ def __init__(self, read_len, error_model, rescaled_error): self.read_len = read_len error_dat = pickle.load(open(error_model, 'rb'), encoding="bytes") - self.UNIFORM = False + self.uniform = False if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) - self.UNIFORM = True + self.uniform = True [q_scores, off_q, avg_error, error_params] = error_dat self.uniform_q_score = int(-10. * np.log10(avg_error) + 0.5) print('Using uniform sequencing error model. (q=' + str(self.uniform_q_score) + '+' + str( off_q) + ', p(err)={0:0.2f}%)'.format(100. * avg_error)) elif len(error_dat) == 6: # only 1 q-score model present, use same model for both strands [init_q1, prob_q1, q_scores, off_q, avg_error, error_params] = error_dat - self.PE_MODELS = False + self.pe_models = False elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands [init_q1, prob_q1, init_q2, prob_q2, q_scores, off_q, avg_error, error_params] = error_dat - self.PE_MODELS = True + self.pe_models = True if len(init_q1) != len(init_q2) or len(prob_q1) != len(prob_q2): print('\nError: R1 and R2 quality score models are of different length.\n') exit(1) @@ -758,29 +758,31 @@ def __init__(self, read_len, error_model, rescaled_error): self.q_err_rate[q] = 10. ** (-q / 10.) self.off_q = off_q - print(error_params) - # error_params = [SSE_PROB, SIE_RATE, SIE_PROB, SIE_VAL, SIE_INS_FREQ, SIE_INS_NUCL] self.err_p = error_params + # Selects a new nucleotide based on the error model self.err_sse = [DiscreteDistribution(n, NUCL) for n in self.err_p[0]] + # allows for selection of indel length based on the parameters of the model self.err_sie = DiscreteDistribution(self.err_p[2], self.err_p[3]) + #allows for indel insertion based on the length above and the probability from the model self.err_sin = DiscreteDistribution(self.err_p[5], NUCL) # adjust sequencing error frequency to match desired rate if rescaled_error is None: - self.errorScale = 1.0 + self.error_scale = 1.0 else: - self.errorScale = rescaled_error / avg_error + self.error_scale = rescaled_error / avg_error print('Warning: Quality scores no longer exactly representative of error probability. ' - 'Error model scaled by {0:.3f} to match desired rate...'.format(self.errorScale)) + 'Error model scaled by {0:.3f} to match desired rate...'.format(self.error_scale)) - if not self.UNIFORM: + if not self.uniform: + print('init_q1 = {init_q1}') # adjust length to match desired read length if self.read_len == len(init_q1): - self.qIndRemap = range(self.read_len) + self.q_ind_remap = range(self.read_len) else: print('Warning: Read length of error model (' + str(len(init_q1)) + ') does not match -R value (' + str( self.read_len) + '), rescaling model...') - self.qIndRemap = [max([1, len(init_q1) * n // read_len]) for n in range(read_len)] + self.q_ind_remap = [max([1, len(init_q1) * n // read_len]) for n in range(read_len)] # initialize probability distributions self.initDistByPos1 = [DiscreteDistribution(init_q1[i], q_scores) for i in range(len(init_q1))] @@ -788,14 +790,14 @@ def __init__(self, read_len, error_model, rescaled_error): for i in range(1, len(init_q1)): self.probDistByPosByPrevQ1.append([]) for j in range(len(init_q1[0])): - if np.sum(prob_q1[i][ - j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore + # if we don't have sufficient data for a transition, use the previous qscore + if np.sum(prob_q1[i][j]) <= 0.: self.probDistByPosByPrevQ1[-1].append( DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(prob_q1[i][j], q_scores)) - if self.PE_MODELS: + if self.pe_models: self.initDistByPos2 = [DiscreteDistribution(init_q2[i], q_scores) for i in range(len(init_q2))] self.probDistByPosByPrevQ2 = [None] for i in range(1, len(init_q2)): @@ -813,37 +815,37 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): q_out = [0] * self.read_len s_err = [] - if self.UNIFORM: + if self.uniform: my_q = [self.uniform_q_score + self.off_q for n in range(self.read_len)] q_out = ''.join([chr(n) for n in my_q]) for i in range(self.read_len): - if random.random() < self.errorScale * self.q_err_rate[self.uniform_q_score]: + if random.random() < self.error_scale * self.q_err_rate[self.uniform_q_score]: s_err.append(i) else: - if self.PE_MODELS and is_reverse_strand: + if self.pe_models and is_reverse_strand: my_q = self.initDistByPos2[0].sample() else: my_q = self.initDistByPos1[0].sample() q_out[0] = my_q for i in range(1, self.read_len): - if self.PE_MODELS and is_reverse_strand: - my_q = self.probDistByPosByPrevQ2[self.qIndRemap[i]][my_q].sample() + if self.pe_models and is_reverse_strand: + my_q = self.probDistByPosByPrevQ2[self.q_ind_remap[i]][my_q].sample() else: - my_q = self.probDistByPosByPrevQ1[self.qIndRemap[i]][my_q].sample() + my_q = self.probDistByPosByPrevQ1[self.q_ind_remap[i]][my_q].sample() q_out[i] = my_q if is_reverse_strand: q_out = q_out[::-1] for i in range(self.read_len): - if random.random() < self.errorScale * self.q_err_rate[q_out[i]]: + if random.random() < self.error_scale * self.q_err_rate[q_out[i]]: s_err.append(i) q_out = ''.join([chr(n + self.off_q) for n in q_out]) - if self.errorScale == 0.0: + if self.error_scale == 0.0: return q_out, [] s_out = [] diff --git a/py/probability.py b/py/probability.py index 5fb39f3..2f34fa3 100644 --- a/py/probability.py +++ b/py/probability.py @@ -36,15 +36,6 @@ def __init__(self, weights, values, degenerate_val=None, method='bisect'): print('\nError: length and weights and values vectors must be the same.\n') exit(1) self.degenerate = degenerate_val - # prune values with probability too low to be worth using [DOESN'T REALLY IMPROVE PERFORMANCE] - ####if self.degenerate != None: - #### for i in xrange(len(self.weights)-1,-1,-1): - #### if self.weights[i] < LOW_PROB_THRESH: - #### del self.weights[i] - #### del self.values[i] - #### if len(self.weights) == 0: - #### print '\nError: probability distribution has no usable values.\n' - #### exit(1) if self.method == 'alias': len_weights = len(self.weights) @@ -76,6 +67,9 @@ def __init__(self, weights, values, degenerate_val=None, method='bisect'): self.cum_prob = np.cumsum(self.weights).tolist()[:-1] self.cum_prob.insert(0, 0.) + else: + print("\nUnknown discreet distribution method.\n") + def __str__(self): return str(self.weights) + ' ' + str(self.values) + ' ' + self.method From 80a7ccbfe7c8a440881771b707d241df8caaeb99 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 15:38:13 -0500 Subject: [PATCH 142/323] debugging sequence container --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index aa8cf8e..ec56ffe 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -775,7 +775,7 @@ def __init__(self, read_len, error_model, rescaled_error): 'Error model scaled by {0:.3f} to match desired rate...'.format(self.error_scale)) if not self.uniform: - print('init_q1 = {init_q1}') + print('init_q1 = {}'.format(init_q1)) # adjust length to match desired read length if self.read_len == len(init_q1): self.q_ind_remap = range(self.read_len) From 2d941f7d0b3f2a9dd29c8d60f8dec829c4e9d8db Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 18:29:01 -0500 Subject: [PATCH 143/323] debugging sequence container --- py/SequenceContainer.py | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index ec56ffe..306b9b2 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -757,13 +757,13 @@ def __init__(self, read_len, error_model, rescaled_error): for q in q_scores: self.q_err_rate[q] = 10. ** (-q / 10.) self.off_q = off_q - + print(off_q) self.err_p = error_params # Selects a new nucleotide based on the error model self.err_sse = [DiscreteDistribution(n, NUCL) for n in self.err_p[0]] # allows for selection of indel length based on the parameters of the model self.err_sie = DiscreteDistribution(self.err_p[2], self.err_p[3]) - #allows for indel insertion based on the length above and the probability from the model + # allows for indel insertion based on the length above and the probability from the model self.err_sin = DiscreteDistribution(self.err_p[5], NUCL) # adjust sequencing error frequency to match desired rate @@ -785,30 +785,31 @@ def __init__(self, read_len, error_model, rescaled_error): self.q_ind_remap = [max([1, len(init_q1) * n // read_len]) for n in range(read_len)] # initialize probability distributions - self.initDistByPos1 = [DiscreteDistribution(init_q1[i], q_scores) for i in range(len(init_q1))] - self.probDistByPosByPrevQ1 = [None] + self.init_dist_by_pos_1 = [DiscreteDistribution(init_q1[i], q_scores) for i in range(len(init_q1))] + self.prob_dist_by_pos_by_prev_q1 = [None] for i in range(1, len(init_q1)): - self.probDistByPosByPrevQ1.append([]) + self.prob_dist_by_pos_by_prev_q1.append([]) for j in range(len(init_q1[0])): - # if we don't have sufficient data for a transition, use the previous qscore + # if we don't have sufficient data for a transition, use the previous quality score if np.sum(prob_q1[i][j]) <= 0.: - self.probDistByPosByPrevQ1[-1].append( + self.prob_dist_by_pos_by_prev_q1[-1].append( DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: - self.probDistByPosByPrevQ1[-1].append(DiscreteDistribution(prob_q1[i][j], q_scores)) + self.prob_dist_by_pos_by_prev_q1[-1].append(DiscreteDistribution(prob_q1[i][j], q_scores)) + # If paired-end, initialize probability distributions for the other strand if self.pe_models: - self.initDistByPos2 = [DiscreteDistribution(init_q2[i], q_scores) for i in range(len(init_q2))] - self.probDistByPosByPrevQ2 = [None] + self.init_dist_by_pos_2 = [DiscreteDistribution(init_q2[i], q_scores) for i in range(len(init_q2))] + self.prob_dist_by_pos_by_prev_q2 = [None] for i in range(1, len(init_q2)): - self.probDistByPosByPrevQ2.append([]) + self.prob_dist_by_pos_by_prev_q2.append([]) for j in range(len(init_q2[0])): if np.sum(prob_q2[i][ j]) <= 0.: # if we don't have sufficient data for a transition, use the previous qscore - self.probDistByPosByPrevQ2[-1].append( + self.prob_dist_by_pos_by_prev_q2[-1].append( DiscreteDistribution([1], [q_scores[j]], degenerate_val=q_scores[j])) else: - self.probDistByPosByPrevQ2[-1].append(DiscreteDistribution(prob_q2[i][j], q_scores)) + self.prob_dist_by_pos_by_prev_q2[-1].append(DiscreteDistribution(prob_q2[i][j], q_scores)) def get_sequencing_errors(self, read_data, is_reverse_strand=False): @@ -816,7 +817,7 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): s_err = [] if self.uniform: - my_q = [self.uniform_q_score + self.off_q for n in range(self.read_len)] + my_q = [self.uniform_q_score + self.off_q] * self.read_len q_out = ''.join([chr(n) for n in my_q]) for i in range(self.read_len): if random.random() < self.error_scale * self.q_err_rate[self.uniform_q_score]: @@ -824,16 +825,16 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): else: if self.pe_models and is_reverse_strand: - my_q = self.initDistByPos2[0].sample() + my_q = self.init_dist_by_pos_2[0].sample() else: - my_q = self.initDistByPos1[0].sample() + my_q = self.init_dist_by_pos_1[0].sample() q_out[0] = my_q for i in range(1, self.read_len): if self.pe_models and is_reverse_strand: - my_q = self.probDistByPosByPrevQ2[self.q_ind_remap[i]][my_q].sample() + my_q = self.prob_dist_by_pos_by_prev_q2[self.q_ind_remap[i]][my_q].sample() else: - my_q = self.probDistByPosByPrevQ1[self.q_ind_remap[i]][my_q].sample() + my_q = self.prob_dist_by_pos_by_prev_q1[self.q_ind_remap[i]][my_q].sample() q_out[i] = my_q if is_reverse_strand: From 983f83dfda0e99a83f470696c9f79b6ed5e3dfd4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 18:42:01 -0500 Subject: [PATCH 144/323] debugging sequence container --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 306b9b2..71b73ca 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -753,6 +753,7 @@ def __init__(self, read_len, error_model, rescaled_error): print('\nError: Something wrong with error model.\n') exit(1) + print(avg_error) self.q_err_rate = [0.] * (max(q_scores) + 1) for q in q_scores: self.q_err_rate[q] = 10. ** (-q / 10.) @@ -775,7 +776,6 @@ def __init__(self, read_len, error_model, rescaled_error): 'Error model scaled by {0:.3f} to match desired rate...'.format(self.error_scale)) if not self.uniform: - print('init_q1 = {}'.format(init_q1)) # adjust length to match desired read length if self.read_len == len(init_q1): self.q_ind_remap = range(self.read_len) From 365896d4112d6450f510bc20ee390ebae73a3152 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 18:50:38 -0500 Subject: [PATCH 145/323] debugging sequence container --- gen_reads.py | 2 +- py/SequenceContainer.py | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 1417199..b162a34 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -57,7 +57,7 @@ def main(raw_args=None): parser.add_argument('-c', type=float, required=False, metavar='coverage', default=10.0, help="Average coverage, default is 10.0") parser.add_argument('-e', type=str, required=False, metavar='error_model', default=None, - help="Location and name of sequencing error model (leave blank to use the default)") + help="Location of the file for the sequencing error model (omit to use the default)") parser.add_argument('-E', type=float, required=False, metavar='Error rate', default=-1, help="Rescale avg sequencing error rate to this, must be between 0.0 and 0.3") parser.add_argument('-p', type=int, required=False, metavar='ploidy', default=2, diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 71b73ca..351c2a4 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -753,12 +753,10 @@ def __init__(self, read_len, error_model, rescaled_error): print('\nError: Something wrong with error model.\n') exit(1) - print(avg_error) self.q_err_rate = [0.] * (max(q_scores) + 1) for q in q_scores: self.q_err_rate[q] = 10. ** (-q / 10.) self.off_q = off_q - print(off_q) self.err_p = error_params # Selects a new nucleotide based on the error model self.err_sse = [DiscreteDistribution(n, NUCL) for n in self.err_p[0]] From 522ccf30877ddac58a7cbb6d4eb91896aa27b3e5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 18:59:27 -0500 Subject: [PATCH 146/323] debugging sequence container --- py/SequenceContainer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 351c2a4..d16c994 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -817,6 +817,7 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): if self.uniform: my_q = [self.uniform_q_score + self.off_q] * self.read_len q_out = ''.join([chr(n) for n in my_q]) + print("self.error_scale = " + self.error_scale + "self.q_err_rate = " + self.q_err_rate) for i in range(self.read_len): if random.random() < self.error_scale * self.q_err_rate[self.uniform_q_score]: s_err.append(i) From c2384cdc80ea4050e46072b5146aafe1c183b475 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 24 Aug 2020 19:06:25 -0500 Subject: [PATCH 147/323] debugging sequence container --- py/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index d16c994..dee9285 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -817,7 +817,7 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): if self.uniform: my_q = [self.uniform_q_score + self.off_q] * self.read_len q_out = ''.join([chr(n) for n in my_q]) - print("self.error_scale = " + self.error_scale + "self.q_err_rate = " + self.q_err_rate) + print("\nself.error_scale = " + str(self.error_scale) + "self.q_err_rate = " + str(self.q_err_rate) + '\n') for i in range(self.read_len): if random.random() < self.error_scale * self.q_err_rate[self.uniform_q_score]: s_err.append(i) From 194f0bd6c85d2ec1bfb5e90b030a4ac46d6bbb43 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 13:53:10 -0500 Subject: [PATCH 148/323] Smoothing out genreads and adding todos --- gen_reads.py | 332 +++++++++++++++++++++++---------------- py/SequenceContainer.py | 52 ++++-- py/output_file_writer.py | 87 +++++----- py/ref_func.py | 74 ++++++--- 4 files changed, 325 insertions(+), 220 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index b162a34..72399fd 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -30,8 +30,7 @@ from py.vcf_func import parse_vcf from py.output_file_writer import OutputFileWriter, reverse_complement, sam_flag from py.probability import DiscreteDistribution, mean_ind_of_weighted_list -from py.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model - +from py.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model """ Some constants needed for analysis @@ -160,17 +159,12 @@ def main(raw_args=None): print('\nERROR: --pe argument takes 2 space-separated arguments.\n') exit(1) - # if user specified mean/std, use artificial fragment length distribution, otherwise use - # the empirical model specified. If neither, then we're doing single-end reads. - if fragment_size is not None and fragment_std is not None: - paired_end = True - paired_end_artificial = True - elif fraglen_model is not None: + # If user specified mean/std, or specified an empirical model, then the reads will be paired_ended + # If not, then we're doing single-end reads. + if (fragment_size is not None and fragment_std is not None) or (fraglen_model is not None) and not fasta_instead: paired_end = True - paired_end_artificial = False else: paired_end = False - paired_end_artificial = False if rng_seed == -1: rng_seed = random.randint(1, 99999999) @@ -207,64 +201,87 @@ def main(raw_args=None): if se_model is None: print('Using default sequencing error model.') se_model = sim_path / 'models/errorModel_toy.p' - se_class = ReadContainer(read_len, se_model, se_rate) + se_class = SequencingError(read_len, se_model, se_rate) else: # probably need to do some sanity checking - se_class = ReadContainer(read_len, se_model, se_rate) + se_class = SequencingError(read_len, se_model, se_rate) # GC-bias model if gc_bias_model is None: print('Using default gc-bias model.') gc_bias_model = sim_path / 'models/gcBias_toy.p' - [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + try: + [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + except IOError: + print("\nProblem reading the default gc-bias model.\n") + exit(1) gc_window_size = gc_scale_count[-1] else: - [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + try: + [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) + except IOError: + print("\nProblem reading the gc-bias model.\n") + exit(1) gc_window_size = gc_scale_count[-1] - # fragment length distribution - if paired_end and not paired_end_artificial: - print('Using empirical fragment length distribution.') - [potential_values, potential_prob] = pickle.load(open(fraglen_model, 'rb')) - fraglen_vals = [] - fraglen_prob = [] - for i in range(len(potential_values)): - if potential_values[i] > read_len: - fraglen_vals.append(potential_values[i]) - fraglen_prob.append(potential_prob[i]) - # should probably add some validation and sanity-checking code here... - fraglen_distribution = DiscreteDistribution(fraglen_prob, fraglen_vals) - fragment_size = fraglen_vals[mean_ind_of_weighted_list(fraglen_prob)] - - # fragment length distribution: normal distribution that goes out to +- 6 standard deviations - if paired_end and paired_end_artificial: - print( - 'Using artificial fragment length distribution. mean=' + str(fragment_size) + ', std=' + str(fragment_std)) - if fragment_std == 0: - fraglen_distribution = DiscreteDistribution([1], [fragment_size], degenerate_val=fragment_size) - else: - potential_values = range(fragment_size - 6 * fragment_std, fragment_size + 6 * fragment_std + 1) - fraglen_vals = [] + # Assign appropriate values to the needed variables if we're dealing with paired-ended data + if paired_end: + # Empirical fragment length distribution, if input model is specified + if fraglen_model is not None: + print('Using empirical fragment length distribution.') + try: + [potential_values, potential_prob] = pickle.load(open(fraglen_model, 'rb')) + except IOError: + print('\nProblem loading the empirical fragment length model.\n') + exit(1) + + fraglen_values = [] + fraglen_probability = [] for i in range(len(potential_values)): if potential_values[i] > read_len: - fraglen_vals.append(potential_values[i]) - fraglen_prob = [np.exp(-(((n - float(fragment_size)) ** 2) / (2 * (fragment_std ** 2)))) for n in - fraglen_vals] - fraglen_distribution = DiscreteDistribution(fraglen_prob, fraglen_vals) + fraglen_values.append(potential_values[i]) + fraglen_probability.append(potential_prob[i]) + + # TODO add some validation and sanity-checking code here... + fraglen_distribution = DiscreteDistribution(fraglen_probability, fraglen_values) + fragment_size = fraglen_values[mean_ind_of_weighted_list(fraglen_probability)] - """************************************************ - **** Process Inputs - ************************************************""" + # Using artificial fragment length distribution, if the parameters were specified + # fragment length distribution: normal distribution that goes out to +- 6 standard deviations + if fragment_size is not None and fragment_std is not None: + print( + 'Using artificial fragment length distribution. mean=' + str(fragment_size) + ', std=' + str( + fragment_std)) + if fragment_std == 0: + fraglen_distribution = DiscreteDistribution([1], [fragment_size], degenerate_val=fragment_size) + else: + potential_values = range(fragment_size - 6 * fragment_std, fragment_size + 6 * fragment_std + 1) + fraglen_values = [] + for i in range(len(potential_values)): + if potential_values[i] > read_len: + fraglen_values.append(potential_values[i]) + fraglen_probability = [np.exp(-(((n - float(fragment_size)) ** 2) / (2 * (fragment_std ** 2)))) for n in + fraglen_values] + fraglen_distribution = DiscreteDistribution(fraglen_probability, fraglen_values) + + """ + Process Inputs + """ # index reference + # TODO change reference processing to Biopython ref_index = index_ref(reference) + if paired_end: n_handling = ('random', fragment_size) else: n_handling = ('ignore', read_len) + + # TODO pretty sure all this can be handled by SeqIO indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} # parse input variants, if present + # TODO read this in as a pandas dataframe input_variants = [] if input_vcf is not None: if cancer: @@ -277,15 +294,22 @@ def main(raw_args=None): input_variants[k].sort() # parse input targeted regions, if present + # TODO convert bed to pandas dataframe input_regions = {} ref_list = [n[0] for n in ref_index] if input_bed is not None: - with open(input_bed, 'r') as f: - for line in f: - [my_chr, pos1, pos2] = line.strip().split('\t')[:3] - if my_chr not in input_regions: - input_regions[my_chr] = [-1] - input_regions[my_chr].extend([int(pos1), int(pos2)]) + try: + with open(input_bed, 'r') as f: + for line in f: + [my_chr, pos1, pos2] = line.strip().split('\t')[:3] + if my_chr not in input_regions: + input_regions[my_chr] = [-1] + input_regions[my_chr].extend([int(pos1), int(pos2)]) + except IOError: + print("\nProblem reading input target BED file.\n") + exit(1) + finally: + f.close() # some validation n_in_bed_only = 0 n_in_ref_only = 0 @@ -301,35 +325,48 @@ def main(raw_args=None): if n_in_bed_only > 0: print( 'Warning: Targeted regions BED file contains sequence names not found in reference (regions ignored).') + # parse discard bed similarly - discardRegions = {} - if discard_bed != None: - f = open(discard_bed, 'r') - for line in f: - [myChr, pos1, pos2] = line.strip().split('\t')[:3] - if myChr not in discardRegions: - discardRegions[myChr] = [-1] - discardRegions[myChr].extend([int(pos1), int(pos2)]) - f.close() + # TODO convert to pandas dataframe + discard_regions = {} + if discard_bed is not None: + try: + f = open(discard_bed, 'r') + for line in f: + [myChr, pos1, pos2] = line.strip().split('\t')[:3] + if myChr not in discard_regions: + discard_regions[myChr] = [-1] + discard_regions[myChr].extend([int(pos1), int(pos2)]) + except IOError: + print("\nProblem reading discard BED file.\n") + finally: + f.close() # parse input mutation rate rescaling regions, if present + # TODO convert to pandas dataframe mut_rate_regions = {} mut_rate_values = {} if mut_bed is not None: - with open(mut_bed, 'r') as f: - for line in f: - [my_chr, pos1, pos2, meta_data] = line.strip().split('\t')[:4] - mut_str = re.findall(r"mut_rate=.*?(?=;)", meta_data + ';') - (pos1, pos2) = (int(pos1), int(pos2)) - if len(mut_str) and (pos2 - pos1) > 1: - # mut_rate = #_mutations / length_of_region, let's bound it by a reasonable amount - mut_rate = max([0.0, min([float(mut_str[0][9:]), 0.3])]) - if my_chr not in mut_rate_regions: - mut_rate_regions[my_chr] = [-1] - mut_rate_values[my_chr] = [0.0] - mut_rate_regions[my_chr].extend([pos1, pos2]) - # TODO figure out what the next line is supposed to do and fix - mut_rate_values.extend([mut_rate * (pos2 - pos1)] * 2) + try: + with open(mut_bed, 'r') as f: + for line in f: + [my_chr, pos1, pos2, meta_data] = line.strip().split('\t')[:4] + mut_str = re.findall(r"mut_rate=.*?(?=;)", meta_data + ';') + (pos1, pos2) = (int(pos1), int(pos2)) + if len(mut_str) and (pos2 - pos1) > 1: + # mut_rate = #_mutations / length_of_region, let's bound it by a reasonable amount + mut_rate = max([0.0, min([float(mut_str[0][9:]), 0.3])]) + if my_chr not in mut_rate_regions: + mut_rate_regions[my_chr] = [-1] + mut_rate_values[my_chr] = [0.0] + mut_rate_regions[my_chr].extend([pos1, pos2]) + # TODO figure out what the next line is supposed to do and fix + mut_rate_values.extend([mut_rate * (pos2 - pos1)] * 2) + except IOError: + print("\nProblem reading mutational BED file.\n") + exit(1) + finally: + f.close() # initialize output files (part I) bam_header = None @@ -340,25 +377,31 @@ def main(raw_args=None): vcf_header = [reference] # initialize output files (part II) + # TODO figure out how to do this more efficiently. Write the files at the end. if cancer: - OFW = OutputFileWriter(out_prefix + '_normal', paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, - gzipped=gzipped_out, no_fastq=no_fastq, fasta_instead=fasta_instead) - OFW_CANCER = OutputFileWriter(out_prefix + '_tumor', paired=paired_end, bam_header=bam_header, - vcf_header=vcf_header, gzipped=gzipped_out, - no_fastq=no_fastq, fasta_instead=fasta_instead) + output_file_writer = OutputFileWriter(out_prefix + '_normal', paired=paired_end, bam_header=bam_header, + vcf_header=vcf_header, + gzipped=gzipped_out, no_fastq=no_fastq, fasta_instead=fasta_instead) + output_file_writer_cancer = OutputFileWriter(out_prefix + '_tumor', paired=paired_end, bam_header=bam_header, + vcf_header=vcf_header, gzipped=gzipped_out, + no_fastq=no_fastq, fasta_instead=fasta_instead) else: - OFW = OutputFileWriter(out_prefix, paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, - gzipped=gzipped_out, no_fastq=no_fastq, - fasta_instead=fasta_instead) - OUT_PREFIX_NAME = out_prefix.split('/')[-1] - - """************************************************ - **** LET'S GET THIS PARTY STARTED... - ************************************************""" + output_file_writer = OutputFileWriter(out_prefix, paired=paired_end, bam_header=bam_header, + vcf_header=vcf_header, + gzipped=gzipped_out, no_fastq=no_fastq, + fasta_instead=fasta_instead) + # Using pathlib to make this more machine agnostic + out_prefix_name = pathlib.Path(out_prefix).name - read_name_count = 1 # keep track of the number of reads we've sampled, for read-names + """ + LET'S GET THIS PARTY STARTED... + """ + # keep track of the number of reads we've sampled, for read-names + read_name_count = 1 unmapped_records = [] + print(ref_index) + for RI in range(len(ref_index)): # read in reference sequence and notate blocks of Ns @@ -371,7 +414,7 @@ def main(raw_args=None): current_percent = 0 have_printed100 = False - """prune invalid input variants, e.g variants that: + """Prune invalid input variants, e.g variants that: - try to delete or alter any N characters - don't match the reference base at their specified position - any alt allele contains anything other than allowed characters""" @@ -401,9 +444,7 @@ def main(raw_args=None): print(' - [' + str(n_skipped[1]) + '] attempting to insert into N-region') print(' - [' + str(n_skipped[2]) + '] alt allele contains non-ACGT characters') - # add large random structural variants - # - # TBD!!! + # TODO add large random structural variants # determine sampling windows based on read length, large N regions, and structural mutations. # in order to obtain uniform coverage, windows should overlap by: @@ -412,7 +453,7 @@ def main(raw_args=None): # ploidy is fixed per large sampling window, # coverage distributions due to GC% and targeted regions are specified within these windows sampling_windows = [] - ALL_VARIANTS_OUT = {} + all_variants_out = {} sequences = None if paired_end: target_size = WINDOW_TARGET_SCALE * fragment_size @@ -652,15 +693,15 @@ def main(raw_args=None): bisect.bisect(input_regions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in my_read_data] if discard_bed is not None: - outside_boundaries += [bisect.bisect(discardRegions[ref_index[RI][0]], n[0]) % 2 for + outside_boundaries += [bisect.bisect(discard_regions[ref_index[RI][0]], n[0]) % 2 for n in my_read_data] outside_boundaries += [ - bisect.bisect(discardRegions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in + bisect.bisect(discard_regions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in my_read_data] if len(outside_boundaries) and any(outside_boundaries): continue - my_read_name = OUT_PREFIX_NAME + '-' + ref_index[RI][0] + '-' + str(read_name_count) + my_read_name = out_prefix_name + '-' + ref_index[RI][0] + '-' + str(read_name_count) read_name_count += len(my_read_data) # if desired, replace all low-quality bases with Ns @@ -697,28 +738,36 @@ def main(raw_args=None): if len(my_read_data) == 1: if no_fastq is not True: if is_forward: - OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3]) + output_file_writer.write_fastq_record(my_read_name, my_read_data[0][2], + my_read_data[0][3]) else: - OFW.write_fastq_record(my_read_name, reverse_complement(my_read_data[0][2]), - my_read_data[0][3][::-1]) + output_file_writer.write_fastq_record(my_read_name, + reverse_complement(my_read_data[0][2]), + my_read_data[0][3][::-1]) if save_bam: if is_unmapped[0] is False: if is_forward: flag1 = 0 - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1) + output_file_writer.write_bam_record(my_ref_index, my_read_name, + my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], + my_read_data[0][3], + sam_flag=flag1) else: flag1 = sam_flag(['reverse']) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1) + output_file_writer.write_bam_record(my_ref_index, my_read_name, + my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], + my_read_data[0][3], + sam_flag=flag1) # write PE output elif len(my_read_data) == 2: if no_fastq is not True: - OFW.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3], - read2=my_read_data[1][2], qual2=my_read_data[1][3], - orientation=is_forward) + output_file_writer.write_fastq_record(my_read_name, my_read_data[0][2], + my_read_data[0][3], + read2=my_read_data[1][2], + qual2=my_read_data[1][3], + orientation=is_forward) if save_bam: if is_unmapped[0] is False and is_unmapped[1] is False: if is_forward: @@ -727,13 +776,15 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'proper', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'first', 'reverse']) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, - mate_pos=my_read_data[1][0]) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], - my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[0][0]) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], + my_read_data[0][3], + sam_flag=flag1, + mate_pos=my_read_data[1][0]) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], + my_read_data[1][1], my_read_data[1][2], + my_read_data[1][3], + sam_flag=flag2, mate_pos=my_read_data[0][0]) elif is_unmapped[0] is False and is_unmapped[1] is True: if is_forward: flag1 = sam_flag(['paired', 'first', 'mate_unmapped', 'mate_reverse']) @@ -741,12 +792,15 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'second', 'mate_unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'first', 'unmapped', 'reverse']) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, mate_pos=my_read_data[0][0]) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], - my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[0][0], aln_map_quality=0) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], + my_read_data[0][1], my_read_data[0][2], + my_read_data[0][3], + sam_flag=flag1, mate_pos=my_read_data[0][0]) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], + my_read_data[1][1], my_read_data[1][2], + my_read_data[1][3], + sam_flag=flag2, mate_pos=my_read_data[0][0], + aln_map_quality=0) elif is_unmapped[0] is True and is_unmapped[1] is False: if is_forward: flag1 = sam_flag(['paired', 'first', 'unmapped', 'mate_reverse']) @@ -754,25 +808,28 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'second', 'unmapped', 'mate_reverse']) flag2 = sam_flag(['paired', 'first', 'mate_unmapped', 'reverse']) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], - my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, mate_pos=my_read_data[1][0], aln_map_quality=0) - OFW.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], - my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[1][0]) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], + my_read_data[0][1], my_read_data[0][2], + my_read_data[0][3], + sam_flag=flag1, mate_pos=my_read_data[1][0], + aln_map_quality=0) + output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], + my_read_data[1][1], my_read_data[1][2], + my_read_data[1][3], + sam_flag=flag2, mate_pos=my_read_data[1][0]) else: print('\nError: Unexpected number of reads generated...\n') exit(1) # print 'READS:',time.time()-ASDF2_TT if not is_last_time: - OFW.flush_buffers(bam_max=next_start) + output_file_writer.flush_buffers(bam_max=next_start) else: - OFW.flush_buffers(bam_max=end + 1) + output_file_writer.flush_buffers(bam_max=end + 1) # tally up all the variants that got successfully introduced for n in all_inserted_variants: - ALL_VARIANTS_OUT[n] = True + all_variants_out[n] = True # prepare indices of next window start = next_start @@ -795,13 +852,14 @@ def main(raw_args=None): # write all output variants for this reference if save_vcf: print('Writing output VCF...') - for k in sorted(ALL_VARIANTS_OUT.keys()): + for k in sorted(all_variants_out.keys()): current_ref = ref_index[RI][0] my_id = '.' my_quality = '.' my_filter = 'PASS' # k[0] + 1 because we're going back to 1-based vcf coords - OFW.write_vcf_record(current_ref, str(int(k[0]) + 1), my_id, k[1], k[2], my_quality, my_filter, k[4]) + output_file_writer.write_vcf_record(current_ref, str(int(k[0]) + 1), my_id, k[1], k[2], my_quality, + my_filter, k[4]) # break @@ -810,15 +868,17 @@ def main(raw_args=None): print('writing unmapped reads to bam file...') for umr in unmapped_records: if paired_end: - OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], mate_pos=0, - aln_map_quality=0) + output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], + mate_pos=0, + aln_map_quality=0) else: - OFW.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], aln_map_quality=0) + output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], + aln_map_quality=0) # close output files - OFW.close_files() + output_file_writer.close_files() if cancer: - OFW_CANCER.close_files() + output_file_writer_cancer.close_files() if __name__ == '__main__': diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index dee9285..211dce7 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -724,31 +724,44 @@ def sample_read(self, sequencingModel, frag_len=None): return r_out -class ReadContainer: +class SequencingError: """ - Container for read data, computes quality scores and positions to insert errors + Container to model sequencing errors: computes quality scores and positions to insert errors """ def __init__(self, read_len, error_model, rescaled_error): self.read_len = read_len - error_dat = pickle.load(open(error_model, 'rb'), encoding="bytes") + try: + error_dat = pickle.load(open(error_model, 'rb'), encoding="bytes") + except IOError: + print("\nProblem opening the sequencing error model.\n") + exit(1) + self.uniform = False - if len(error_dat) == 4: # uniform-error SE reads (e.g. PacBio) + + # uniform-error SE reads (e.g., PacBio) + if len(error_dat) == 4: self.uniform = True [q_scores, off_q, avg_error, error_params] = error_dat self.uniform_q_score = int(-10. * np.log10(avg_error) + 0.5) print('Using uniform sequencing error model. (q=' + str(self.uniform_q_score) + '+' + str( off_q) + ', p(err)={0:0.2f}%)'.format(100. * avg_error)) - elif len(error_dat) == 6: # only 1 q-score model present, use same model for both strands + + # only 1 q-score model present, use same model for both strands + elif len(error_dat) == 6: [init_q1, prob_q1, q_scores, off_q, avg_error, error_params] = error_dat self.pe_models = False - elif len(error_dat) == 8: # found a q-score model for both forward and reverse strands + + # found a q-score model for both forward and reverse strands + elif len(error_dat) == 8: [init_q1, prob_q1, init_q2, prob_q2, q_scores, off_q, avg_error, error_params] = error_dat self.pe_models = True if len(init_q1) != len(init_q2) or len(prob_q1) != len(prob_q2): print('\nError: R1 and R2 quality score models are of different length.\n') exit(1) + + # This serves as a sanity check for the input model else: print('\nError: Something wrong with error model.\n') exit(1) @@ -810,6 +823,14 @@ def __init__(self, read_len, error_model, rescaled_error): self.prob_dist_by_pos_by_prev_q2[-1].append(DiscreteDistribution(prob_q2[i][j], q_scores)) def get_sequencing_errors(self, read_data, is_reverse_strand=False): + """ + Inserts errors of type substitution, insertion, or deletion into read_data, and assigns a quality score + based on the container model. + + :param read_data: sequence to insert errors into + :param is_reverse_strand: whether to treat this as the reverse strand or not + :return: modified sequence and associate quality scores + """ q_out = [0] * self.read_len s_err = [] @@ -817,12 +838,10 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): if self.uniform: my_q = [self.uniform_q_score + self.off_q] * self.read_len q_out = ''.join([chr(n) for n in my_q]) - print("\nself.error_scale = " + str(self.error_scale) + "self.q_err_rate = " + str(self.q_err_rate) + '\n') for i in range(self.read_len): if random.random() < self.error_scale * self.q_err_rate[self.uniform_q_score]: s_err.append(i) else: - if self.pe_models and is_reverse_strand: my_q = self.init_dist_by_pos_2[0].sample() else: @@ -863,19 +882,24 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): if random.random() < self.err_p[1]: is_sub = False - # error_out = (type, len, pos, ref, alt) - - if is_sub: # insert substitution error + # insert substitution error + if is_sub: my_nucl = str(read_data[ind]) new_nucl = self.err_sse[NUC_IND[my_nucl]].sample() s_out.append(('S', 1, ind, my_nucl, new_nucl)) - else: # insert indel error + + # insert indel error + else: indel_len = self.err_sie.sample() - if random.random() < self.err_p[4]: # insertion error + + # insertion error + if random.random() < self.err_p[4]: my_nucl = str(read_data[ind]) new_nucl = my_nucl + ''.join([self.err_sin.sample() for n in range(indel_len)]) s_out.append(('I', len(new_nucl) - 1, ind, my_nucl, new_nucl)) - elif ind < self.read_len - 2 - n_del_so_far: # deletion error (prevent too many of them from stacking up) + + # deletion error (prevent too many of them from stacking up) + elif ind < self.read_len - 2 - n_del_so_far: my_nucl = str(read_data[ind:ind + indel_len + 1]) new_nucl = str(read_data[ind]) n_del_so_far += len(my_nucl) - 1 diff --git a/py/output_file_writer.py b/py/output_file_writer.py index b3405a3..906e65b 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -8,12 +8,14 @@ from Bio import SeqIO import gzip from Bio.bgzf import * +import pathlib from py.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 +# TODO figure out why these functions are in this file in the first place def reverse_complement(dna_string: str) -> str: """ Return the reverse complement of a string from a DNA strand @@ -49,35 +51,35 @@ def reg2bin(beg: int, end: int): # takes list of strings, returns numerical flag -def sam_flag(l): - outVal = 0 - l = list(set(l)) - for n in l: +def sam_flag(string_list: list) -> int: + out_val = 0 + string_list = list(set(string_list)) + for n in string_list: if n == 'paired': - outVal += 1 + out_val += 1 elif n == 'proper': - outVal += 2 + out_val += 2 elif n == 'unmapped': - outVal += 4 + out_val += 4 elif n == 'mate_unmapped': - outVal += 8 + out_val += 8 elif n == 'reverse': - outVal += 16 + out_val += 16 elif n == 'mate_reverse': - outVal += 32 + out_val += 32 elif n == 'first': - outVal += 64 + out_val += 64 elif n == 'second': - outVal += 128 + out_val += 128 elif n == 'not_primary': - outVal += 256 + out_val += 256 elif n == 'low_quality': - outVal += 512 + out_val += 512 elif n == 'duplicate': - outVal += 1024 + out_val += 1024 elif n == 'supplementary': - outVal += 2048 - return outVal + out_val += 2048 + return out_val CIGAR_PACKED = {'M': 0, 'I': 1, 'D': 2, 'N': 3, 'S': 4, 'H': 5, 'P': 6, '=': 7, 'X': 8} @@ -87,50 +89,41 @@ def sam_flag(l): BUFFER_BATCH_SIZE = 1000 # write out to file after this many reads -# -# outFQ = path to output FASTQ prefix -# paired = True for PE reads, False for SE -# BAM_header = [refIndex] -# VCF_header = [path_to_ref] -# gzipped = True for compressed FASTQ/VCF, False for uncompressed -# +# TODO find a better way to write output files class OutputFileWriter: def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, gzipped=False, no_fastq=False, fasta_instead=False): - job_suffix = '' - self.fasta_instead = fasta_instead - if fasta_instead: - fq1 = out_prefix + '_read1.fa' + job_suffix - fq2 = out_prefix + '_read2.fa' + job_suffix + # TODO Eliminate paired end as an option for fastas + if self.fasta_instead: + fq1 = pathlib.Path(out_prefix + '.fasta') + fq2 = None else: - fq1 = out_prefix + '_read1.fq' + job_suffix - fq2 = out_prefix + '_read2.fq' + job_suffix - bam = out_prefix + '_golden.bam' + job_suffix - vcf = out_prefix + '_golden.vcf' + job_suffix + fq1 = pathlib.Path(out_prefix + '_read1.fq') + fq2 = pathlib.Path(out_prefix + '_read2.fq') + bam = pathlib.Path(out_prefix + '_golden.bam') + vcf = pathlib.Path(out_prefix + '_golden.vcf') self.no_fastq = no_fastq if not self.no_fastq: if gzipped: - self.fq1_file = gzip.open(fq1 + '.gz', 'wb') + self.fq1_file = gzip.open(fq1.with_suffix(fq1.suffix + '.gz'), 'wb') else: self.fq1_file = open(fq1, 'w') self.fq2_file = None if paired: if gzipped: - self.fq2_file = gzip.open(fq2 + '.gz', 'wb') + self.fq2_file = gzip.open(fq2.with_suffix(fq2.suffix + '.gz'), 'wb') else: self.fq2_file = open(fq2, 'w') - # - # VCF OUTPUT - # + # VCF OUTPUT self.vcf_file = None if vcf_header is not None: if gzipped: - self.vcf_file = gzip.open(vcf + '.gz', 'wb') + self.vcf_file = gzip.open(vcf.with_suffix(vcf.suffix + '.gz'), 'wb') else: self.vcf_file = open(vcf, 'wb') @@ -141,7 +134,6 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g self.vcf_file.write('##INFO=\n'.encode('utf-8')) self.vcf_file.write( '##INFO=\n'.encode('utf-8')) - # self.vcf_file.write('##INFO=\n') self.vcf_file.write( '##INFO=\n'.encode( 'utf-8')) @@ -160,11 +152,10 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g self.vcf_file.write('##ALT=\n'.encode('utf-8')) self.vcf_file.write('##ALT=\n'.encode('utf-8')) self.vcf_file.write('##ALT=\n'.encode('utf-8')) + # TODO add sample to vcf output self.vcf_file.write('#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO\n'.encode('utf-8')) - # - # BAM OUTPUT - # + # BAM OUTPUT self.bam_file = None if bam_header is not None: self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) @@ -192,6 +183,8 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g self.fq2_buffer = [] self.bam_buffer = [] + # TODO add write_fasta_record + def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None, orientation=None): (r1, q1) = (read1, qual1) if read2 is not None and orientation is True: @@ -226,13 +219,13 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, next_ref_id = ref_id if mate_pos is None: next_pos = 0 - my_tlen = 0 + my_t_len = 0 else: next_pos = mate_pos if pos_0 < next_pos: - my_tlen = next_pos + len(seq) - pos_0 + my_t_len = next_pos + len(seq) - pos_0 else: - my_tlen = -pos_0 - len(seq) + next_pos + my_t_len = -pos_0 - len(seq) + next_pos encoded_cig = bytearray() for i in range(cig_ops): @@ -285,7 +278,7 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, self.bam_buffer.append((ref_id, pos_0, pack(' list: + """ + Index reference fasta + :param reference_path: string path to the reference + :return: reference index in list from + """ tt = time.time() + absolute_reference_location = pathlib.Path(reference_path) + + # sanity check + if not absolute_reference_location.is_file(): + print("\nProblem reading the reference fasta file.\n") + exit(1) + filename = None - if os.path.isfile(reference_path + 'i'): - print('found index ' + reference_path + 'i') - filename = reference_path + 'i' - if os.path.isfile(reference_path + '.fai'): - print('found index ' + reference_path + '.fai') - filename = reference_path + '.fai' - - ref_inds = [] + + # check if the reference file already exists + if absolute_reference_location.with_suffix('.fai').is_file(): + print('found index ' + absolute_reference_location.with_suffix('.fai')) + filename = absolute_reference_location.with_suffix('.fai') + elif absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai').is_file(): + print('found index ' + absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai')) + filename = absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai') + + ref_indices = [] if filename is not None: fai = open(filename, 'r') for line in fai: @@ -29,24 +43,22 @@ def index_ref(reference_path): n_lines = seq_len // line_ln if seq_len % line_ln != 0: n_lines += 1 - ref_inds.append((splt[0], offset, offset + seq_len + n_lines, seq_len)) + ref_indices.append((splt[0], offset, offset + seq_len + n_lines, seq_len)) fai.close() - return ref_inds + return ref_indices - sys.stdout.write('index not found, creating one... ') - sys.stdout.flush() - ref_file = open(reference_path, 'r') + print('Index not found, creating one... ') + ref_file = open(absolute_reference_location, 'r') prev_r = None prev_p = None seq_len = 0 - while 1: - data = ref_file.readline() + for data in ref_file: if not data: - ref_inds.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) + ref_indices.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) break - if data[0] == '>': + elif data[0] == '>': if prev_p is not None: - ref_inds.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) + ref_indices.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) seq_len = 0 prev_p = ref_file.tell() prev_r = data[1:-1] @@ -55,7 +67,7 @@ def index_ref(reference_path): ref_file.close() print('{0:.3f} (sec)'.format(time.time() - tt)) - return ref_inds + return ref_indices def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): @@ -134,8 +146,16 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): return my_dat, n_info -# find all non-N regions in reference sequence ahead of time, for computing jobs in parallel def get_all_ref_regions(ref_path, ref_inds, n_handling, save_output=False): + """ + Find all non-N regions in reference sequence ahead of time, for computing jobs in parallel + + :param ref_path: + :param ref_inds: + :param n_handling: + :param save_output: + :return: + """ out_regions = {} fn = ref_path + '.nnr' if os.path.isfile(fn) and not (save_output): @@ -163,8 +183,16 @@ def get_all_ref_regions(ref_path, ref_inds, n_handling, save_output=False): return out_regions -# find which of the non-N regions are going to be used for this job def partition_ref_regions(in_regions, ref_inds, my_job, n_jobs): + """ + Find which of the non-N regions are going to be used for this job + + :param in_regions: + :param ref_inds: + :param my_job: + :param n_jobs: + :return: + """ tot_size = 0 for RI in range(len(ref_inds)): ref_name = ref_inds[RI][0] From bb1d349a752ecf2d1fde9f2c73e1ff7e2ead5588 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 14:00:17 -0500 Subject: [PATCH 149/323] Smoothing out genreads and adding todos --- py/ref_func.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/py/ref_func.py b/py/ref_func.py index 870a60c..682aec3 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -52,7 +52,10 @@ def index_ref(reference_path: str) -> list: prev_r = None prev_p = None seq_len = 0 - for data in ref_file: + + # TODO I really don't like this while true statement + while True: + data = ref_file.readline() if not data: ref_indices.append((prev_r, prev_p, ref_file.tell() - len(data), seq_len)) break From c937c7d8d46df7c5dff5c3e703ac7164462ddf1c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 14:04:18 -0500 Subject: [PATCH 150/323] debugging sequence container --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 72399fd..7ad355c 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -400,7 +400,7 @@ def main(raw_args=None): read_name_count = 1 unmapped_records = [] - print(ref_index) + print('ref_index = ' + str(ref_index)) for RI in range(len(ref_index)): From ef7cbff2ce95711d81a6fe3462a5398252488e6c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 14:07:56 -0500 Subject: [PATCH 151/323] debugging sequence container --- gen_reads.py | 10 +++++----- py/ref_func.py | 3 +-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 7ad355c..60d3bdf 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -405,7 +405,7 @@ def main(raw_args=None): for RI in range(len(ref_index)): # read in reference sequence and notate blocks of Ns - (refSequence, n_regions) = read_ref(reference, ref_index[RI], n_handling) + (ref_sequence, n_regions) = read_ref(reference, ref_index[RI], n_handling) # count total bp we'll be spanning so we can get an idea of how far along we are # (for printing progress indicators) @@ -423,7 +423,7 @@ def main(raw_args=None): if ref_index[RI][0] in input_variants: for n in input_variants[ref_index[RI][0]]: span = (n[0], n[0] + len(n[1])) - r_seq = str(refSequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords + r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) if r_seq != n[1]: n_skipped[0] += 1 @@ -597,10 +597,10 @@ def main(raw_args=None): # construct sequence data that we will sample reads from if sequences is None: - sequences = SequenceContainer(start, refSequence[start:end], ploids, overlap, read_len, + sequences = SequenceContainer(start, ref_sequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, mut_rate, only_vcf=only_vcf) else: - sequences.update(start, refSequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, + sequences.update(start, ref_sequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, mut_rate) # insert variants @@ -617,7 +617,7 @@ def main(raw_args=None): # unused cancer stuff if cancer: - tumor_sequences = SequenceContainer(start, refSequence[start:end], ploids, overlap, read_len, + tumor_sequences = SequenceContainer(start, ref_sequence[start:end], ploids, overlap, read_len, [cancer_model] * ploids, mut_rate, coverage_dat) tumor_sequences.insert_mutations(vars_cancer_from_prev_overlap + all_inserted_variants) all_cancer_variants = tumor_sequences.random_mutations() diff --git a/py/ref_func.py b/py/ref_func.py index 682aec3..4e5e7a8 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -78,8 +78,7 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): ALLOWED_NUCL = ['A', 'C', 'G', 'T'] tt = time.time() if not quiet: - sys.stdout.write('reading ' + ref_inds_i[0] + '... ') - sys.stdout.flush() + print('reading ' + ref_inds_i[0] + '... ') ref_file = open(ref_path, 'r') ref_file.seek(ref_inds_i[1]) From 88254d2bddf36957c84b2bbed723f2159cd3a021 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 14:58:46 -0500 Subject: [PATCH 152/323] debugging sequence container --- gen_reads.py | 33 ++++++++++++++++----------------- py/ref_func.py | 12 +++++++++++- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 60d3bdf..18b9a21 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -402,10 +402,11 @@ def main(raw_args=None): print('ref_index = ' + str(ref_index)) - for RI in range(len(ref_index)): + for chrom in range(len(ref_index)): # read in reference sequence and notate blocks of Ns - (ref_sequence, n_regions) = read_ref(reference, ref_index[RI], n_handling) + # TODO convert this line to SeqIO + (ref_sequence, n_regions) = read_ref(reference, ref_index[chrom], n_handling) # count total bp we'll be spanning so we can get an idea of how far along we are # (for printing progress indicators) @@ -420,8 +421,9 @@ def main(raw_args=None): - any alt allele contains anything other than allowed characters""" valid_variants = [] n_skipped = [0, 0, 0] - if ref_index[RI][0] in input_variants: - for n in input_variants[ref_index[RI][0]]: + if ref_index[chrom][0] in input_variants: + for n in input_variants[ref_index[chrom][0]]: + print('n = ' + str(n)) span = (n[0], n[0] + len(n[1])) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) @@ -434,10 +436,8 @@ def main(raw_args=None): elif any_bad_chr: n_skipped[2] += 1 continue - # if bisect.bisect(n_regions['big'],span[0])%2 or bisect.bisect(n_regions['big'],span[1])%2: - # continue valid_variants.append(n) - print('found', len(valid_variants), 'valid variants for ' + ref_index[RI][0] + ' in input VCF...') + print('found', len(valid_variants), 'valid variants for ' + ref_index[chrom][0] + ' in input VCF...') if any(n_skipped): print(sum(n_skipped), 'variants skipped...') print(' - [' + str(n_skipped[0]) + '] ref allele does not match reference') @@ -452,7 +452,6 @@ def main(raw_args=None): # - fragment_size (mean), if paired-end reads # ploidy is fixed per large sampling window, # coverage distributions due to GC% and targeted regions are specified within these windows - sampling_windows = [] all_variants_out = {} sequences = None if paired_end: @@ -560,11 +559,11 @@ def main(raw_args=None): if input_bed is None: coverage_dat[2] = [1.0] * (end - start) else: - if ref_index[RI][0] not in input_regions: + if ref_index[chrom][0] not in input_regions: coverage_dat[2] = [off_target_scalar] * (end - start) else: for j in range(start, end): - if not (bisect.bisect(input_regions[ref_index[RI][0]], j) % 2): + if not (bisect.bisect(input_regions[ref_index[chrom][0]], j) % 2): coverage_dat[2].append(1.0) target_hits += 1 else: @@ -687,21 +686,21 @@ def main(raw_args=None): # are we discarding offtargets? outside_boundaries = [] if off_target_discard and input_bed is not None: - outside_boundaries += [bisect.bisect(input_regions[ref_index[RI][0]], n[0]) % 2 for n + outside_boundaries += [bisect.bisect(input_regions[ref_index[chrom][0]], n[0]) % 2 for n in my_read_data] outside_boundaries += [ - bisect.bisect(input_regions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in + bisect.bisect(input_regions[ref_index[chrom][0]], n[0] + len(n[2])) % 2 for n in my_read_data] if discard_bed is not None: - outside_boundaries += [bisect.bisect(discard_regions[ref_index[RI][0]], n[0]) % 2 for + outside_boundaries += [bisect.bisect(discard_regions[ref_index[chrom][0]], n[0]) % 2 for n in my_read_data] outside_boundaries += [ - bisect.bisect(discard_regions[ref_index[RI][0]], n[0] + len(n[2])) % 2 for n in + bisect.bisect(discard_regions[ref_index[chrom][0]], n[0] + len(n[2])) % 2 for n in my_read_data] if len(outside_boundaries) and any(outside_boundaries): continue - my_read_name = out_prefix_name + '-' + ref_index[RI][0] + '-' + str(read_name_count) + my_read_name = out_prefix_name + '-' + ref_index[chrom][0] + '-' + str(read_name_count) read_name_count += len(my_read_data) # if desired, replace all low-quality bases with Ns @@ -732,7 +731,7 @@ def main(raw_args=None): flag1 = sam_flag(['unmapped']) unmapped_records.append((my_read_name + '/1', my_read_data[0], flag1)) - my_ref_index = indices_by_ref_name[ref_index[RI][0]] + my_ref_index = indices_by_ref_name[ref_index[chrom][0]] # write SE output if len(my_read_data) == 1: @@ -853,7 +852,7 @@ def main(raw_args=None): if save_vcf: print('Writing output VCF...') for k in sorted(all_variants_out.keys()): - current_ref = ref_index[RI][0] + current_ref = ref_index[chrom][0] my_id = '.' my_quality = '.' my_filter = 'PASS' diff --git a/py/ref_func.py b/py/ref_func.py index 4e5e7a8..7560552 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -80,7 +80,14 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): if not quiet: print('reading ' + ref_inds_i[0] + '... ') - ref_file = open(ref_path, 'r') + absolute_reference_path = pathlib.Path(ref_path) + try: + ref_file = open(absolute_reference_path, 'r') + except IOError: + print('\nProblem reading reference file.\n') + exit(1) + + # TODO convert to SeqIO containers ref_file.seek(ref_inds_i[1]) my_dat = ''.join(ref_file.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) my_dat = Seq(my_dat.upper(), IUPAC.unambiguous_dna) @@ -143,8 +150,11 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): if n[0] != n[1]: n_info['non_N'].append(n) + ref_file.close() + if not quiet: print('{0:.3f} (sec)'.format(time.time() - tt)) + return my_dat, n_info From f285088b1fedd99401985ca7dc921d8498f2120b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:05:31 -0500 Subject: [PATCH 153/323] Figuring out genreads --- gen_reads.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 18b9a21..d3259ae 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -400,8 +400,6 @@ def main(raw_args=None): read_name_count = 1 unmapped_records = [] - print('ref_index = ' + str(ref_index)) - for chrom in range(len(ref_index)): # read in reference sequence and notate blocks of Ns @@ -423,8 +421,8 @@ def main(raw_args=None): n_skipped = [0, 0, 0] if ref_index[chrom][0] in input_variants: for n in input_variants[ref_index[chrom][0]]: - print('n = ' + str(n)) span = (n[0], n[0] + len(n[1])) + print(ref_sequence) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) if r_seq != n[1]: From 769511b3245eda10cacd0d05542fd5c8026d9663 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:07:41 -0500 Subject: [PATCH 154/323] Figuring out genreads --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index d3259ae..2a4d18e 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -422,8 +422,8 @@ def main(raw_args=None): if ref_index[chrom][0] in input_variants: for n in input_variants[ref_index[chrom][0]]: span = (n[0], n[0] + len(n[1])) - print(ref_sequence) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords + print('r_seq = ' + r_seq) any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) if r_seq != n[1]: n_skipped[0] += 1 From ecec09086ab92e1586d092ae719677607e0dc150 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:12:24 -0500 Subject: [PATCH 155/323] debugging sequence container --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 2a4d18e..00d6d85 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -421,9 +421,9 @@ def main(raw_args=None): n_skipped = [0, 0, 0] if ref_index[chrom][0] in input_variants: for n in input_variants[ref_index[chrom][0]]: + print('n = ' + str(n)) span = (n[0], n[0] + len(n[1])) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords - print('r_seq = ' + r_seq) any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) if r_seq != n[1]: n_skipped[0] += 1 From b8ee89bb679c504e213173e1ef3134a39e286c5e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:26:01 -0500 Subject: [PATCH 156/323] debugging sequence container --- gen_reads.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 00d6d85..3786e10 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -248,7 +248,7 @@ def main(raw_args=None): # Using artificial fragment length distribution, if the parameters were specified # fragment length distribution: normal distribution that goes out to +- 6 standard deviations - if fragment_size is not None and fragment_std is not None: + elif fragment_size is not None and fragment_std is not None: print( 'Using artificial fragment length distribution. mean=' + str(fragment_size) + ', std=' + str( fragment_std)) @@ -424,17 +424,23 @@ def main(raw_args=None): print('n = ' + str(n)) span = (n[0], n[0] + len(n[1])) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords - any_bad_chr = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) + # Checks if there are any invalid nucleotides in the vcf items + any_bad_nucl = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) + # Ensure reference sequence matches the nucleotide in the vcf if r_seq != n[1]: n_skipped[0] += 1 continue + # Ensure that we aren't trying to insert into an N region elif 'N' in r_seq: n_skipped[1] += 1 continue - elif any_bad_chr: + # Ensure that we don't insert any disallowed characters + elif any_bad_nucl: n_skipped[2] += 1 continue + # If it passes the above tests, append to valid variants list valid_variants.append(n) + print('found', len(valid_variants), 'valid variants for ' + ref_index[chrom][0] + ' in input VCF...') if any(n_skipped): print(sum(n_skipped), 'variants skipped...') @@ -453,6 +459,7 @@ def main(raw_args=None): all_variants_out = {} sequences = None if paired_end: + print('fragment size = ' + fragment_size) target_size = WINDOW_TARGET_SCALE * fragment_size overlap = fragment_size overlap_min_window_size = max(fraglen_distribution.values) + 10 From 21122dfc9cd7a6b785c5591add25d2ec6361b00c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:26:19 -0500 Subject: [PATCH 157/323] debugging sequence container --- gen_reads.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 3786e10..ca78807 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -421,7 +421,6 @@ def main(raw_args=None): n_skipped = [0, 0, 0] if ref_index[chrom][0] in input_variants: for n in input_variants[ref_index[chrom][0]]: - print('n = ' + str(n)) span = (n[0], n[0] + len(n[1])) r_seq = str(ref_sequence[span[0] - 1:span[1] - 1]) # -1 because going from VCF coords to array coords # Checks if there are any invalid nucleotides in the vcf items From 2ecd4ab8a2cc9705d796419103ae855b2357afbc Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:28:55 -0500 Subject: [PATCH 158/323] debugging sequence container --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index ca78807..3253841 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -458,7 +458,7 @@ def main(raw_args=None): all_variants_out = {} sequences = None if paired_end: - print('fragment size = ' + fragment_size) + print('fragment size = ' + str(fragment_size)) target_size = WINDOW_TARGET_SCALE * fragment_size overlap = fragment_size overlap_min_window_size = max(fraglen_distribution.values) + 10 From 48af5b7805fb3e20b44306bf2ee8b809b9d3a513 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:39:32 -0500 Subject: [PATCH 159/323] Smoothing out genreads and adding todos --- gen_reads.py | 4 +++- py/__pycache__/probability.cpython-37.pyc | Bin 4082 -> 4135 bytes py/ref_func.py | 7 +++++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 3253841..e032c7b 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -458,7 +458,6 @@ def main(raw_args=None): all_variants_out = {} sequences = None if paired_end: - print('fragment size = ' + str(fragment_size)) target_size = WINDOW_TARGET_SCALE * fragment_size overlap = fragment_size overlap_min_window_size = max(fraglen_distribution.values) + 10 @@ -470,11 +469,14 @@ def main(raw_args=None): print('--------------------------------') if only_vcf: print('generating vcf...') + elif fasta_instead: + print('generating mutated fasta...') else: print('sampling reads...') tt = time.time() for i in range(len(n_regions['non_N'])): + print('pi, pf = ' + str(n_regions['non_N'][i])) (pi, pf) = n_regions['non_N'][i] n_target_windows = max([1, (pf - pi) // target_size]) bpd = int((pf - pi) / float(n_target_windows)) diff --git a/py/__pycache__/probability.cpython-37.pyc b/py/__pycache__/probability.cpython-37.pyc index e59de6b00ff33dfb009c597b6e564cd1ee7552a3..cbb55aefc3adffea0f39a7f42bdf2ca3dc1a2485 100644 GIT binary patch delta 401 zcmXAlze~eV5XW;bHEGi%br406wjg3NSVYC5(5kg4O0kM`=~7w~G)+zIYigm0i;JUr z;^ZheOBNCT1aUXBgM))OI{BX7@VOt~@4<23iTk9U*EB_7(HJRIUxps^G=VS7l1;et z&xr+E?nG#ars9wbpzru2rUu=x2c~ugAeh3gVCa4-83cR(Q3{P?398T65V2Vb&QU{ZsN>Ud5a`40SB42`Kno^$nnlCH)ox{L~XOfpkQz zB%*GbNMJ5<3&ERQlPAYI~5g%h2aXTFQ E1sBU|R{#J2 delta 372 zcmZ3k@JXJ}iIH=|4xdvR`JPEKl36kASWQ96)j%Fe#UQc#qi6gBxR zn=YfzWNCIeM()X0>;_C#vXl8a#3#41*E0HVX6Eo`WDJ@d%$db)0CYo list: """ Index reference fasta @@ -74,8 +78,7 @@ def index_ref(reference_path: str) -> list: def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): - OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} - ALLOWED_NUCL = ['A', 'C', 'G', 'T'] + tt = time.time() if not quiet: print('reading ' + ref_inds_i[0] + '... ') From 2f1832b0687525be37f98bd474091043cf684258 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:41:02 -0500 Subject: [PATCH 160/323] Smoothing out genreads and adding todos --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..1377b78 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# Ignore filetypes +*.pyc \ No newline at end of file From 748d11f2245b49b24cc761c6eebc2c5b6df41f2f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 15:50:42 -0500 Subject: [PATCH 161/323] debugging sequence container --- gen_reads.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index e032c7b..06abff2 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -476,17 +476,19 @@ def main(raw_args=None): tt = time.time() for i in range(len(n_regions['non_N'])): - print('pi, pf = ' + str(n_regions['non_N'][i])) (pi, pf) = n_regions['non_N'][i] - n_target_windows = max([1, (pf - pi) // target_size]) - bpd = int((pf - pi) / float(n_target_windows)) + number_target_windows = max([1, (pf - pi) // target_size]) + bpd = int((pf - pi) / float(number_target_windows)) + + # TODO figure out what was being attempted with the below three lines + print(gc_window_size) # bpd += gc_window_size - bpd%gc_window_size # print len(refSequence), (pi,pf), n_target_windows # print structural_vars # if for some reason our region is too small to process, skip it! (sorry) - if n_target_windows == 1 and (pf - pi) < overlap_min_window_size: + if number_target_windows == 1 and (pf - pi) < overlap_min_window_size: # print 'Does this ever happen?' continue From 84035f5f074f6885e05e12762dd0ce365d3eb376 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 16:13:47 -0500 Subject: [PATCH 162/323] debugging sequence container --- gen_reads.py | 64 ++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 06abff2..891ce22 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -417,7 +417,7 @@ def main(raw_args=None): - try to delete or alter any N characters - don't match the reference base at their specified position - any alt allele contains anything other than allowed characters""" - valid_variants = [] + valid_variants_from_vcf = [] n_skipped = [0, 0, 0] if ref_index[chrom][0] in input_variants: for n in input_variants[ref_index[chrom][0]]: @@ -438,9 +438,9 @@ def main(raw_args=None): n_skipped[2] += 1 continue # If it passes the above tests, append to valid variants list - valid_variants.append(n) + valid_variants_from_vcf.append(n) - print('found', len(valid_variants), 'valid variants for ' + ref_index[chrom][0] + ' in input VCF...') + print('found', len(valid_variants_from_vcf), 'valid variants for ' + ref_index[chrom][0] + ' in input VCF...') if any(n_skipped): print(sum(n_skipped), 'variants skipped...') print(' - [' + str(n_skipped[0]) + '] ref allele does not match reference') @@ -475,57 +475,52 @@ def main(raw_args=None): print('sampling reads...') tt = time.time() + # Applying variants to non-N regions for i in range(len(n_regions['non_N'])): - (pi, pf) = n_regions['non_N'][i] - number_target_windows = max([1, (pf - pi) // target_size]) - bpd = int((pf - pi) / float(number_target_windows)) - - # TODO figure out what was being attempted with the below three lines - print(gc_window_size) - # bpd += gc_window_size - bpd%gc_window_size - - # print len(refSequence), (pi,pf), n_target_windows - # print structural_vars + (initial_position, final_position) = n_regions['non_N'][i] + number_target_windows = max([1, (final_position - initial_position) // target_size]) + base_pair_distance = int((final_position - initial_position) / float(number_target_windows)) # if for some reason our region is too small to process, skip it! (sorry) - if number_target_windows == 1 and (pf - pi) < overlap_min_window_size: - # print 'Does this ever happen?' + if number_target_windows == 1 and (final_position - initial_position) < overlap_min_window_size: continue - start = pi - end = min([start + bpd, pf]) - # print '------------------RAWR:', (pi,pf), n_target_windows, bpd + start = initial_position + end = min([start + base_pair_distance, final_position]) vars_from_prev_overlap = [] vars_cancer_from_prev_overlap = [] - vind_from_prev = 0 + v_index_from_prev = 0 is_last_time = False have_printed100 = False while True: - # which inserted variants are in this window? vars_in_window = [] updated = False - for j in range(vind_from_prev, len(valid_variants)): - v_pos = valid_variants[j][0] - if start < v_pos < end: # update: changed >= to >, so variant cannot be inserted in first position - vars_in_window.append(tuple([v_pos - 1] + list(valid_variants[j][1:]))) # vcf --> array coords - if v_pos >= end - overlap - 1 and updated is False: + for j in range(v_index_from_prev, len(valid_variants_from_vcf)): + variants_position = valid_variants_from_vcf[j][0] + # update: changed >= to >, so variant cannot be inserted in first position + if start < variants_position < end: + # vcf --> array coords + vars_in_window.append(tuple([variants_position - 1] + list(valid_variants_from_vcf[j][1:]))) + if variants_position >= end - overlap - 1 and updated is False: updated = True - vind_from_prev = j - if v_pos >= end: + v_index_from_prev = j + if variants_position >= end: break # determine which structural variants will affect our sampling window positions structural_vars = [] for n in vars_in_window: + print('variant in window = ' + str(n)) + # change: added abs() so that insertions are also buffered. buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in - n[2]]) # change: added abs() so that insertions are also buffered. + n[2]]) + # -1 because going from VCF coords to array coords structural_vars.append( - (n[0] - 1, buffer_needed)) # -1 because going from VCF coords to array coords + (n[0] - 1, buffer_needed)) # adjust end-position of window based on inserted structural mutations - buffer_added = 0 keep_going = True while keep_going: keep_going = False @@ -534,15 +529,14 @@ def main(raw_args=None): # (which can cause problems if random mutations from the previous window land on top of them) delta = (end - 1) - (n[0] + n[1]) - 2 - overlap if delta < 0: - # print 'DELTA:', delta, 'END:', end, '-->', buffer_added = -delta end += buffer_added ####print end keep_going = True break next_start = end - overlap - next_end = min([next_start + bpd, pf]) - if next_end - next_start < bpd: + next_end = min([next_start + base_pair_distance, final_position]) + if next_end - next_start < base_pair_distance: end = next_end is_last_time = True @@ -597,7 +591,7 @@ def main(raw_args=None): end = next_end if is_last_time: break - if end >= pf: + if end >= final_position: is_last_time = True vars_from_prev_overlap = [] continue @@ -843,7 +837,7 @@ def main(raw_args=None): end = next_end if is_last_time: break - if end >= pf: + if end >= final_position: is_last_time = True if current_percent != 100 and not have_printed100: From 794dca01219c07e432c935eadfcdf31cf27253eb Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 17:43:12 -0500 Subject: [PATCH 163/323] debugging sequence container --- gen_reads.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 891ce22..e240ae3 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -427,6 +427,7 @@ def main(raw_args=None): any_bad_nucl = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) # Ensure reference sequence matches the nucleotide in the vcf if r_seq != n[1]: + print(str(r_seq) + ' and ' + str(n[1])) n_skipped[0] += 1 continue # Ensure that we aren't trying to insert into an N region @@ -514,8 +515,7 @@ def main(raw_args=None): for n in vars_in_window: print('variant in window = ' + str(n)) # change: added abs() so that insertions are also buffered. - buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in - n[2]]) + buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in n[2]]) # -1 because going from VCF coords to array coords structural_vars.append( (n[0] - 1, buffer_needed)) From 5690c2a7e3e70bac4f73b1f023889d482b91595f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 17:45:07 -0500 Subject: [PATCH 164/323] debugging sequence container --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index e240ae3..074af47 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -427,7 +427,6 @@ def main(raw_args=None): any_bad_nucl = any((nn not in ALLOWED_NUCL) for nn in [item for sublist in n[2] for item in sublist]) # Ensure reference sequence matches the nucleotide in the vcf if r_seq != n[1]: - print(str(r_seq) + ' and ' + str(n[1])) n_skipped[0] += 1 continue # Ensure that we aren't trying to insert into an N region @@ -495,6 +494,7 @@ def main(raw_args=None): have_printed100 = False while True: + print('\n\nstarting ...\n\n') # which inserted variants are in this window? vars_in_window = [] updated = False From a832112d8bdabf9f1305124dca0fe6db65c8c61c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 17:54:45 -0500 Subject: [PATCH 165/323] debugging sequence container --- gen_reads.py | 1 - 1 file changed, 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 074af47..2c07c50 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -494,7 +494,6 @@ def main(raw_args=None): have_printed100 = False while True: - print('\n\nstarting ...\n\n') # which inserted variants are in this window? vars_in_window = [] updated = False From 3fe2a25ab4b869be3058eaed9eb1995ddb5f6876 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 18:35:36 -0500 Subject: [PATCH 166/323] debugging sequence container --- gen_reads.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 2c07c50..4111216 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -512,7 +512,6 @@ def main(raw_args=None): # determine which structural variants will affect our sampling window positions structural_vars = [] for n in vars_in_window: - print('variant in window = ' + str(n)) # change: added abs() so that insertions are also buffered. buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in n[2]]) # -1 because going from VCF coords to array coords @@ -530,7 +529,6 @@ def main(raw_args=None): if delta < 0: buffer_added = -delta end += buffer_added - ####print end keep_going = True break next_start = end - overlap @@ -540,15 +538,19 @@ def main(raw_args=None): is_last_time = True # print progress indicator - ####print 'PROCESSING WINDOW:',(start,end), [buffer_added], 'next:', (next_start,next_end) + start_progress_bar = True current_progress += end - start new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: + if start_progress_bar: + print("[", end='') + start_progress_bar = False if new_percent <= 99 or (new_percent == 100 and not have_printed100): - sys.stdout.write(str(new_percent) + '% ') - sys.stdout.flush() + if new_percent % 20 == 0: + print('-', end='') current_percent = new_percent if current_percent == 100: + print(']') have_printed100 = True skip_this_window = False From a74a9e67215dbd71557c8c02fbf5c3d3af6e25f7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 18:40:23 -0500 Subject: [PATCH 167/323] debugging sequence container --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 4111216..d15633c 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -492,6 +492,7 @@ def main(raw_args=None): v_index_from_prev = 0 is_last_time = False have_printed100 = False + start_progress_bar = True while True: # which inserted variants are in this window? @@ -538,7 +539,6 @@ def main(raw_args=None): is_last_time = True # print progress indicator - start_progress_bar = True current_progress += end - start new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: From ab04730a12aa72066e47c18d003c8cec94a9b002 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 18:41:11 -0500 Subject: [PATCH 168/323] debugging sequence container --- gen_reads.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index d15633c..eb6d1f7 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -495,6 +495,9 @@ def main(raw_args=None): start_progress_bar = True while True: + if start_progress_bar: + print("[", end='') + start_progress_bar = False # which inserted variants are in this window? vars_in_window = [] updated = False @@ -542,9 +545,6 @@ def main(raw_args=None): current_progress += end - start new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: - if start_progress_bar: - print("[", end='') - start_progress_bar = False if new_percent <= 99 or (new_percent == 100 and not have_printed100): if new_percent % 20 == 0: print('-', end='') From 468d86320310ab171d5bc44b0cac8d316931c413 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 25 Aug 2020 18:47:09 -0500 Subject: [PATCH 169/323] debugging sequence container --- gen_reads.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gen_reads.py b/gen_reads.py index eb6d1f7..536967f 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -495,9 +495,11 @@ def main(raw_args=None): start_progress_bar = True while True: + # start the progress bar if start_progress_bar: print("[", end='') start_progress_bar = False + # which inserted variants are in this window? vars_in_window = [] updated = False From f349c424bd14115f983977c2ab9311c9dc0e35ec Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 28 Aug 2020 12:40:27 -0500 Subject: [PATCH 170/323] Minor changes to several functions --- gen_reads.py | 63 ++-- py/SequenceContainer.py | 557 ++++++++++++++++++++-------------- py/biopython_modified_bgzf.py | 10 +- py/input_checking.py | 12 +- py/neat_cigar.py | 48 ++- py/output_file_writer.py | 2 +- py/probability.py | 9 +- 7 files changed, 414 insertions(+), 287 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 536967f..e5340cb 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -286,6 +286,7 @@ def main(raw_args=None): if input_vcf is not None: if cancer: (sample_names, input_variants) = parse_vcf(input_vcf, tumor_normal=True, ploidy=ploids) + # TODO figure out what Zach was trying to do with these tumor_ind = sample_names.index('TUMOR') normal_ind = sample_names.index('NORMAL') else: @@ -310,6 +311,7 @@ def main(raw_args=None): exit(1) finally: f.close() + # some validation n_in_bed_only = 0 n_in_ref_only = 0 @@ -317,7 +319,7 @@ def main(raw_args=None): if k not in input_regions: n_in_ref_only += 1 for k in input_regions.keys(): - if not k in ref_list: + if k not in ref_list: n_in_bed_only += 1 del input_regions[k] if n_in_ref_only > 0: @@ -333,10 +335,10 @@ def main(raw_args=None): try: f = open(discard_bed, 'r') for line in f: - [myChr, pos1, pos2] = line.strip().split('\t')[:3] - if myChr not in discard_regions: - discard_regions[myChr] = [-1] - discard_regions[myChr].extend([int(pos1), int(pos2)]) + [my_chr, pos1, pos2] = line.strip().split('\t')[:3] + if my_chr not in discard_regions: + discard_regions[my_chr] = [-1] + discard_regions[my_chr].extend([int(pos1), int(pos2)]) except IOError: print("\nProblem reading discard BED file.\n") finally: @@ -403,7 +405,6 @@ def main(raw_args=None): for chrom in range(len(ref_index)): # read in reference sequence and notate blocks of Ns - # TODO convert this line to SeqIO (ref_sequence, n_regions) = read_ref(reference, ref_index[chrom], n_handling) # count total bp we'll be spanning so we can get an idea of how far along we are @@ -474,6 +475,8 @@ def main(raw_args=None): else: print('sampling reads...') tt = time.time() + # start the progress bar + print("[", end='') # Applying variants to non-N regions for i in range(len(n_regions['non_N'])): @@ -491,21 +494,14 @@ def main(raw_args=None): vars_cancer_from_prev_overlap = [] v_index_from_prev = 0 is_last_time = False - have_printed100 = False - start_progress_bar = True while True: - # start the progress bar - if start_progress_bar: - print("[", end='') - start_progress_bar = False - # which inserted variants are in this window? vars_in_window = [] updated = False for j in range(v_index_from_prev, len(valid_variants_from_vcf)): variants_position = valid_variants_from_vcf[j][0] - # update: changed >= to >, so variant cannot be inserted in first position + # update: changed <= to <, so variant cannot be inserted in first position if start < variants_position < end: # vcf --> array coords vars_in_window.append(tuple([variants_position - 1] + list(valid_variants_from_vcf[j][1:]))) @@ -548,11 +544,10 @@ def main(raw_args=None): new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: if new_percent <= 99 or (new_percent == 100 and not have_printed100): - if new_percent % 20 == 0: + if new_percent % 10 == 1: print('-', end='') current_percent = new_percent if current_percent == 100: - print(']') have_printed100 = True skip_this_window = False @@ -574,7 +569,7 @@ def main(raw_args=None): else: coverage_dat[2].append(off_target_scalar) - # offtarget and we're not interested? + # off-target and we're not interested? if off_target_discard and target_hits <= read_len: coverage_avg = 0.0 skip_this_window = True @@ -642,6 +637,11 @@ def main(raw_args=None): pass else: window_span = end - start + print('window_span = ' + str(window_span)) + print('coverage = ' + str(coverage)) + print('read_len = ' + str(read_len)) + print('coverage_avg = ' + str(coverage_avg)) + if paired_end: if force_coverage: reads_to_sample = int((window_span * float(coverage)) / (2 * read_len)) + 1 @@ -659,20 +659,21 @@ def main(raw_args=None): reads_to_sample = 0 # sample reads - ASDF2_TT = time.time() - for i in range(reads_to_sample): + for k in range(reads_to_sample): is_unmapped = [] if paired_end: my_fraglen = fraglen_distribution.sample() my_read_data = sequences.sample_read(se_class, my_fraglen) - if my_read_data is None: # skip if we failed to find a valid position to sample read + # skip if we failed to find a valid position to sample read + if my_read_data is None: continue if my_read_data[0][0] is None: is_unmapped.append(True) else: is_unmapped.append(False) - my_read_data[0][0] += start # adjust mapping position based on window start + # adjust mapping position based on window start + my_read_data[0][0] += start if my_read_data[1][0] is None: is_unmapped.append(True) else: @@ -680,13 +681,16 @@ def main(raw_args=None): my_read_data[1][0] += start else: my_read_data = sequences.sample_read(se_class) - if my_read_data is None: # skip if we failed to find a valid position to sample read + # skip if we failed to find a valid position to sample read + if my_read_data is None: continue - if my_read_data[0][0] is None: # unmapped read (lives in large insertion) + # unmapped read (lives in large insertion) + if my_read_data[0][0] is None: is_unmapped = [True] else: is_unmapped = [False] - my_read_data[0][0] += start # adjust mapping position based on window start + # adjust mapping position based on window start + my_read_data[0][0] += start # are we discarding offtargets? outside_boundaries = [] @@ -712,10 +716,10 @@ def main(raw_args=None): if n_max_qual > -1: for j in range(len(my_read_data)): my_read_string = [n for n in my_read_data[j][2]] - for k in range(len(my_read_data[j][3])): - adjusted_qual = ord(my_read_data[j][3][k]) - se_class.off_q + for m in range(len(my_read_data[j][3])): + adjusted_qual = ord(my_read_data[j][3][m]) - se_class.off_q if adjusted_qual <= n_max_qual: - my_read_string[k] = 'N' + my_read_string[m] = 'N' my_read_data[j][2] = ''.join(my_read_string) # flip a coin, are we forward or reverse strand? @@ -824,7 +828,6 @@ def main(raw_args=None): else: print('\nError: Unexpected number of reads generated...\n') exit(1) - # print 'READS:',time.time()-ASDF2_TT if not is_last_time: output_file_writer.flush_buffers(bam_max=next_start) @@ -844,7 +847,7 @@ def main(raw_args=None): is_last_time = True if current_percent != 100 and not have_printed100: - print('100%') + print(']') else: print('') if only_vcf: @@ -865,8 +868,6 @@ def main(raw_args=None): output_file_writer.write_vcf_record(current_ref, str(int(k[0]) + 1), my_id, k[1], k[2], my_quality, my_filter, k[4]) - # break - # write unmapped reads to bam file if save_bam and len(unmapped_records): print('writing unmapped reads to bam file...') diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 211dce7..60c9564 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -1,6 +1,5 @@ import random import copy -import os import bisect import pickle import numpy as np @@ -46,8 +45,8 @@ [0.15, 0.0, 0.15, 0.7], [0.7, 0.15, 0.0, 0.15], [0.15, 0.7, 0.15, 0.0]] -DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for n in range(16)] -DEFAULT_1_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_1_TRI_FREQS = [copy.deepcopy(example_matrix_1) for _ in range(16)] +DEFAULT_1_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for _ in ALL_TRI] DEFAULT_MODEL_1 = [DEFAULT_1_OVERALL_MUT_RATE, DEFAULT_1_HOMOZYGOUS_FREQ, DEFAULT_1_INDEL_FRACTION, @@ -65,14 +64,15 @@ DEFAULT_2_INS_VS_DEL = 0.3 DEFAULT_2_INS_LENGTH_VALUES = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] DEFAULT_2_INS_LENGTH_WEIGHTS = [0.1, 0.1, 0.2, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05, 0.05] +# noinspection DuplicatedCode DEFAULT_2_DEL_LENGTH_VALUES = [1, 2, 3, 4, 5] DEFAULT_2_DEL_LENGTH_WEIGHTS = [0.3, 0.2, 0.2, 0.2, 0.1] example_matrix_2 = [[0.0, 0.15, 0.7, 0.15], [0.15, 0.0, 0.15, 0.7], [0.7, 0.15, 0.0, 0.15], [0.15, 0.7, 0.15, 0.0]] -DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for n in range(16)] -DEFAULT_2_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for n in ALL_TRI] +DEFAULT_2_TRI_FREQS = [copy.deepcopy(example_matrix_2) for _ in range(16)] +DEFAULT_2_TRINUC_BIAS = [1. / float(len(ALL_TRI)) for _ in ALL_TRI] DEFAULT_MODEL_2 = [DEFAULT_2_OVERALL_MUT_RATE, DEFAULT_2_HOMOZYGOUS_FREQ, DEFAULT_2_INDEL_FRACTION, @@ -85,40 +85,119 @@ DEFAULT_2_TRINUC_BIAS] -# -# Container for reference sequences, applies mutations -# class SequenceContainer: - def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None, + """ + Container for reference sequences, applies mutations + """ + + def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=None, mut_rate=None, only_vcf=False): + # initialize basic variables self.only_vcf = only_vcf - self.init_basic_vars(x_offset, sequence, ploidy, window_overlap, read_len) + self.x = x_offset + self.ploidy = ploidy + self.read_len = read_len + self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for _ in range(self.ploidy)] + self.seq_len = len(sequence) + self.indel_list = [[] for _ in range(self.ploidy)] + self.snp_list = [[] for _ in range(self.ploidy)] + self.all_cigar = [[] for _ in range(self.ploidy)] + self.fm_pos = [[] for _ in range(self.ploidy)] + self.fm_span = [[] for _ in range(self.ploidy)] + + # Blacklist explanation: + # black_list[ploid][pos] = 0 safe to insert variant here + # black_list[ploid][pos] = 1 indel inserted here + # black_list[ploid][pos] = 2 snp inserted here + # black_list[ploid][pos] = 3 invalid position for various processing reasons + self.black_list = [np.zeros(self.seq_len, dtype=' int(self.read_len / 2.): tr_cov_vals[i] = [0.0] * int(self.read_len // 2) + tr_cov_vals[i][:-int(self.read_len / 2.)] @@ -192,19 +319,19 @@ def init_coverage(self, coverage_data, frag_dist=None): flq.append(frag_dist.values[-1]) flq.append(LARGE_NUMBER) - self.fraglens_ind_map = {} + self.fraglen_ind_map = {} for j in frag_dist.values: - bInd = bisect.bisect(flq, j) - if abs(flq[bInd - 1] - j) <= abs(flq[bInd] - j): - self.fraglens_ind_map[j] = flq[bInd - 1] + b_ind = bisect.bisect(flq, j) + if abs(flq[b_ind - 1] - j) <= abs(flq[b_ind] - j): + self.fraglen_ind_map[j] = flq[b_ind - 1] else: - self.fraglens_ind_map[j] = flq[bInd] + self.fraglen_ind_map[j] = flq[b_ind] self.coverage_distribution.append({}) - for flv in sorted(list(set(self.fraglens_ind_map.values()))): + for flv in sorted(list(set(self.fraglen_ind_map.values()))): buffer_val = self.read_len for j in frag_dist.values: - if self.fraglens_ind_map[j] == flv and j > buffer_val: + if self.fraglen_ind_map[j] == flv and j > buffer_val: buffer_val = j max_coord = min([len(self.sequences[i]) - buffer_val - 1, len(self.all_cigar[i]) - buffer_val + self.read_len - 2]) @@ -237,92 +364,41 @@ def init_coverage(self, coverage_data, frag_dist=None): return np.mean(avg_out) - def init_mut_models(self, mut_models, mut_rate): - if not mut_models: - default_model = [copy.deepcopy(DEFAULT_MODEL_1) for n in range(self.ploidy)] - self.model_data = default_model[:self.ploidy] - else: - if len(mut_models) != self.ploidy: - print('\nError: Number of mutation models recieved is not equal to specified ploidy\n') - exit(1) - self.model_data = copy.deepcopy(mut_models) - - # do we need to rescale mutation frequencies? - mut_rateSum = sum([n[0] for n in self.model_data]) - self.mut_rescale = mut_rate - if self.mut_rescale == None: - self.mut_scalar = 1.0 - else: - self.mut_scalar = float(self.mut_rescale) // (mut_rateSum / float(len(self.model_data))) - - # how are mutations spread to each ploid, based on their specified mut rates? - self.ploid_mut_frac = [float(n[0]) / mut_rateSum for n in self.model_data] - self.ploid_mut_prior = DiscreteDistribution(self.ploid_mut_frac, range(self.ploidy)) - - # init mutation models - # - # self.models[ploid][0] = average mutation rate - # self.models[ploid][1] = p(mut is homozygous | mutation occurs) - # self.models[ploid][2] = p(mut is indel | mut occurs) - # self.models[ploid][3] = p(insertion | indel occurs) - # self.models[ploid][4] = distribution of insertion lengths - # self.models[ploid][5] = distribution of deletion lengths - # self.models[ploid][6] = distribution of trinucleotide SNP transitions - # self.models[ploid][7] = p(trinuc mutates) - self.models = [] - for n in self.model_data: - self.models.append([self.mut_scalar * n[0], n[1], n[2], n[3], DiscreteDistribution(n[5], n[4]), - DiscreteDistribution(n[7], n[6]), []]) - for m in n[8]: - self.models[-1][6].append([DiscreteDistribution(m[0], NUCL), DiscreteDistribution(m[1], NUCL), - DiscreteDistribution(m[2], NUCL), DiscreteDistribution(m[3], NUCL)]) - self.models[-1].append([m for m in n[9]]) - def init_poisson(self): ind_l_list = [self.seq_len * self.models[i][0] * self.models[i][2] * self.ploid_mut_frac[i] for i in range(len(self.models))] snp_l_list = [self.seq_len * self.models[i][0] * (1. - self.models[i][2]) * self.ploid_mut_frac[i] for i in range(len(self.models))] k_range = range(int(self.seq_len * MAX_MUTFRAC)) - self.ind_pois = [poisson_list(k_range, ind_l_list[n]) for n in range(len(self.models))] - self.snp_pois = [poisson_list(k_range, snp_l_list[n]) for n in range(len(self.models))] - - def init_trinuc_bias(self): - # compute mutation positional bias given trinucleotide strings of the sequence (ONLY AFFECTS SNPs) - # - # note: since indels are added before snps, it's possible these positional biases aren't correctly utilized - # at positions affected by indels. At the moment I'm going to consider this negligible. - trinuc_snp_bias = [[0. for n in range(self.seq_len)] for m in range(self.ploidy)] - self.trinuc_bias = [None for n in range(self.ploidy)] - for p in range(self.ploidy): - for i in range(self.win_buffer + 1, self.seq_len - 1): - trinuc_snp_bias[p][i] = self.models[p][7][ALL_IND[str(self.sequences[p][i - 1:i + 2])]] - self.trinuc_bias[p] = DiscreteDistribution(trinuc_snp_bias[p][self.win_buffer + 1:self.seq_len - 1], - range(self.win_buffer + 1, self.seq_len - 1)) + # return (indel_poisson, snp_poisson) + return [poisson_list(k_range, ind_l_list[n]) for n in range(len(self.models))], \ + [poisson_list(k_range, snp_l_list[n]) for n in range(len(self.models))] - def update(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=[], mut_rate=None): + def update(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_models=None, mut_rate=None): # if mutation model is changed, we have to reinitialize it... - if ploidy != self.ploidy or mut_rate != self.mut_rescale or mut_models != []: + if ploidy != self.ploidy or mut_rate != self.mut_rescale or mut_models is not None: self.ploidy = ploidy self.mut_rescale = mut_rate - self.init_mut_models(mut_models, mut_rate) + self.update_mut_models(mut_models, mut_rate) # if sequence length is different than previous window, we have to redo snp/indel poissons if len(sequence) != self.seq_len: self.seq_len = len(sequence) - self.init_poisson() + self.indel_poisson, self.snp_poisson = self.init_poisson() # basic vars - self.init_basic_vars(x_offset, sequence, ploidy, window_overlap, read_len) - self.indels_to_add = [n.sample() for n in self.ind_pois] - self.snps_to_add = [n.sample() for n in self.snp_pois] + self.update_basic_vars(x_offset, sequence, ploidy, window_overlap, read_len) + self.indels_to_add = [n.sample() for n in self.indel_poisson] + self.snps_to_add = [n.sample() for n in self.snp_poisson] # initialize trinuc snp bias if not IGNORE_TRINUC: - self.init_trinuc_bias() + self.update_trinuc_bias() def insert_mutations(self, input_list): - for inpV in input_list: + for input_variable in input_list: which_ploid = [] - wps = inpV[4][0] - if wps is None: # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates + wps = input_variable[4][0] + + # if no genotype given, assume heterozygous and choose a single ploid based on their mut rates + if wps is None: which_ploid.append(self.ploid_mut_prior.sample()) which_alt = [0] else: @@ -332,13 +408,13 @@ def insert_mutations(self, input_list): else: splt = wps.split('|') which_ploid = [] - which_alt = [] for i in range(len(splt)): if splt[i] == '1': which_ploid.append(i) # assume we're just using first alt for inserted variants? - which_alt = [0 for n in which_ploid] - else: # otherwise assume monoploidy + which_alt = [0 for _ in which_ploid] + # otherwise assume monoploidy + else: which_ploid = [0] which_alt = [0] @@ -349,22 +425,22 @@ def insert_mutations(self, input_list): for i in range(len(which_ploid)): p = which_ploid[i] - myAlt = inpV[2][which_alt[i]] - myVar = (inpV[0] - self.x, inpV[1], myAlt) - inLen = max([len(inpV[1]), len(myAlt)]) + my_alt = input_variable[2][which_alt[i]] + my_var = (input_variable[0] - self.x, input_variable[1], my_alt) + in_len = max([len(input_variable[1]), len(my_alt)]) - if myVar[0] < 0 or myVar[0] >= len(self.black_list[p]): + if my_var[0] < 0 or my_var[0] >= len(self.black_list[p]): print('\nError: Attempting to insert variant out of window bounds:') - print(myVar, '--> blackList[0:' + str(len(self.black_list[p])) + ']\n') + print(my_var, '--> blackList[0:' + str(len(self.black_list[p])) + ']\n') exit(1) - if len(inpV[1]) == 1 and len(myAlt) == 1: - if self.black_list[p][myVar[0]]: + if len(input_variable[1]) == 1 and len(my_alt) == 1: + if self.black_list[p][my_var[0]]: continue - self.snp_list[p].append(myVar) - self.black_list[p][myVar[0]] = 2 + self.snp_list[p].append(my_var) + self.black_list[p][my_var[0]] = 2 else: indel_failed = False - for k in range(myVar[0], myVar[0] + inLen + 1): + for k in range(my_var[0], my_var[0] + in_len + 1): if k >= len(self.black_list[p]): indel_failed = True continue @@ -373,104 +449,111 @@ def insert_mutations(self, input_list): continue if indel_failed: continue - for k in range(myVar[0], myVar[0] + inLen + 1): + for k in range(my_var[0], my_var[0] + in_len + 1): self.black_list[p][k] = 1 - self.indel_list[p].append(myVar) + self.indel_list[p].append(my_var) def random_mutations(self): - # add random indels - all_indels = [[] for n in self.sequences] + # add random indels + all_indels = [[] for _ in self.sequences] for i in range(self.ploidy): for j in range(self.indels_to_add[i]): - if random.random() <= self.models[i][1]: # insert homozygous indel - whichPloid = range(self.ploidy) - else: # insert heterozygous indel - whichPloid = [self.ploid_mut_prior.sample()] + # insert homozygous indel + if random.random() <= self.models[i][1]: + which_ploid = range(self.ploidy) + # insert heterozygous indel + else: + which_ploid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert indels - eventPos = -1 + event_pos = -1 for attempt in range(MAX_ATTEMPTS): - eventPos = random.randint(self.win_buffer, self.seq_len - 1) - for p in whichPloid: - if self.black_list[p][eventPos]: - eventPos = -1 - if eventPos != -1: + event_pos = random.randint(self.win_buffer, self.seq_len - 1) + for p in which_ploid: + if self.black_list[p][event_pos]: + event_pos = -1 + if event_pos != -1: break - if eventPos == -1: + if event_pos == -1: continue - if random.random() <= self.models[i][3]: # insertion - inLen = self.models[i][4].sample() + # insertion + if random.random() <= self.models[i][3]: + in_len = self.models[i][4].sample() # sequence content of random insertions is uniformly random (change this later, maybe) - inSeq = ''.join([random.choice(NUCL) for n in range(inLen)]) - ref_nucl = self.sequences[i][eventPos] - myIndel = (eventPos, ref_nucl, ref_nucl + inSeq) - else: # deletion - inLen = self.models[i][5].sample() - if eventPos + inLen + 1 >= len(self.sequences[i]): # skip if deletion too close to boundary + in_seq = ''.join([random.choice(NUCL) for _ in range(in_len)]) + ref_nucl = self.sequences[i][event_pos] + my_indel = (event_pos, ref_nucl, ref_nucl + in_seq) + # deletion + else: + in_len = self.models[i][5].sample() + # skip if deletion too close to boundary + if event_pos + in_len + 1 >= len(self.sequences[i]): continue - if inLen == 1: - inSeq = self.sequences[i][eventPos + 1] + if in_len == 1: + in_seq = self.sequences[i][event_pos + 1] else: - inSeq = str(self.sequences[i][eventPos + 1:eventPos + inLen + 1]) - ref_nucl = self.sequences[i][eventPos] - myIndel = (eventPos, ref_nucl + inSeq, ref_nucl) + in_seq = str(self.sequences[i][event_pos + 1:event_pos + in_len + 1]) + ref_nucl = self.sequences[i][event_pos] + my_indel = (event_pos, ref_nucl + in_seq, ref_nucl) # if event too close to boundary, skip. if event conflicts with other indel, skip. - skipEvent = False - if eventPos + len(myIndel[1]) >= self.seq_len - self.win_buffer - 1: - skipEvent = True - if skipEvent: + skip_event = False + if event_pos + len(my_indel[1]) >= self.seq_len - self.win_buffer - 1: + skip_event = True + if skip_event: continue - for p in whichPloid: - for k in range(eventPos, eventPos + inLen + 1): + for p in which_ploid: + for k in range(event_pos, event_pos + in_len + 1): if self.black_list[p][k]: - skipEvent = True - if skipEvent: + skip_event = True + if skip_event: continue - for p in whichPloid: - for k in range(eventPos, eventPos + inLen + 1): + for p in which_ploid: + for k in range(event_pos, event_pos + in_len + 1): self.black_list[p][k] = 1 - all_indels[p].append(myIndel) + all_indels[p].append(my_indel) - # add random snps - all_snps = [[] for n in self.sequences] + # add random snps + all_snps = [[] for _ in self.sequences] for i in range(self.ploidy): for j in range(self.snps_to_add[i]): - if random.random() <= self.models[i][1]: # insert homozygous SNP - whichPloid = range(self.ploidy) - else: # insert heterozygous SNP - whichPloid = [self.ploid_mut_prior.sample()] + # insert homozygous SNP + if random.random() <= self.models[i][1]: + which_ploid = range(self.ploidy) + # insert heterozygous SNP + else: + which_ploid = [self.ploid_mut_prior.sample()] # try to find suitable places to insert snps - eventPos = -1 + event_pos = -1 for attempt in range(MAX_ATTEMPTS): # based on the mutation model for the specified ploid, choose a SNP location based on trinuc bias # (if there are multiple ploids, choose one at random) if IGNORE_TRINUC: - eventPos = random.randint(self.win_buffer + 1, self.seq_len - 2) + event_pos = random.randint(self.win_buffer + 1, self.seq_len - 2) else: - ploid_to_use = whichPloid[random.randint(0, len(whichPloid) - 1)] - eventPos = self.trinuc_bias[ploid_to_use].sample() - for p in whichPloid: - if self.black_list[p][eventPos]: - eventPos = -1 - if eventPos != -1: + ploid_to_use = which_ploid[random.randint(0, len(which_ploid) - 1)] + event_pos = self.trinuc_bias[ploid_to_use].sample() + for p in which_ploid: + if self.black_list[p][event_pos]: + event_pos = -1 + if event_pos != -1: break - if eventPos == -1: + if event_pos == -1: continue - ref_nucl = self.sequences[i][eventPos] - context = str(self.sequences[i][eventPos - 1]) + str(self.sequences[i][eventPos + 1]) + ref_nucl = self.sequences[i][event_pos] + context = str(self.sequences[i][event_pos - 1]) + str(self.sequences[i][event_pos + 1]) # sample from tri-nucleotide substitution matrices to get SNP alt allele new_nucl = self.models[i][6][TRI_IND[context]][NUC_IND[ref_nucl]].sample() - mySNP = (eventPos, ref_nucl, new_nucl) + my_snp = (event_pos, ref_nucl, new_nucl) - for p in whichPloid: - all_snps[p].append(mySNP) - self.black_list[p][mySNP[0]] = 2 + for p in which_ploid: + all_snps[p].append(my_snp) + self.black_list[p][my_snp[0]] = 2 # combine random snps with inserted snps, remove any snps that overlap indels for p in range(len(all_snps)): @@ -496,10 +579,9 @@ def random_mutations(self): all_indels_ins = [sorted([list(m) for m in n]) for n in all_indels] # MODIFY REFERENCE STRING: INDELS - adj_to_add = [[] for n in range(self.ploidy)] for i in range(len(all_indels_ins)): rolling_adj = 0 - temp_symbol_string = ['M' for n in self.sequences[i]] + temp_symbol_string = ['M' for _ in self.sequences[i]] # there's an off-by-one error somewhere in the position sampling routines.. this might fix it # temp_symbol_string.append('M') for j in range(len(all_indels_ins[i])): @@ -524,23 +606,25 @@ def random_mutations(self): elif d < 0: temp_symbol_string[v_pos + 1] = 'D' * abs(d) + 'M' - # precompute cigar strings + # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - self.all_cigar[i].append(CigarString(listIn=temp_symbol_string[j:j + self.read_len]).get_string()) + self.all_cigar[i].append(CigarString(list_in=temp_symbol_string[j:j + self.read_len]).get_string()) # create some data structures we will need later: - # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. corresponding to the unmodified reference genome) - # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from this coordinate - MD_so_far = 0 + # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. + # corresponding to the unmodified reference genome) + # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from + # this coordinate + md_so_far = 0 for j in range(len(temp_symbol_string)): - self.fm_pos[i].append(MD_so_far) + self.fm_pos[i].append(md_so_far) # fix an edge case with deletions if 'D' in temp_symbol_string[j]: self.fm_pos[i][-1] += temp_symbol_string[j].count('D') # compute number of ref matches for each read span_dif = len([n for n in temp_symbol_string[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - MD_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') + md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') # tally up all the variants we handled... count_dict = {} @@ -553,20 +637,18 @@ def random_mutations(self): count_dict[t] = [] count_dict[t].append(i) - # - # TODO: combine multiple variants that happened to occur at same position into single vcf entry? - # + # TODO: combine multiple variants that happened to occur at same position into single vcf entry? output_variants = [] for k in sorted(count_dict.keys()): output_variants.append(k + tuple([len(count_dict[k]) / float(self.ploidy)])) - ploid_string = ['0' for n in range(self.ploidy)] + ploid_string = ['0' for _ in range(self.ploidy)] for k2 in [n for n in count_dict[k]]: ploid_string[k2] = '1' output_variants[-1] += tuple(['WP=' + '/'.join(ploid_string)]) return output_variants - def sample_read(self, sequencingModel, frag_len=None): + def sample_read(self, sequencing_model, frag_len=None): # choose a ploid my_ploid = random.randint(0, self.ploidy - 1) @@ -576,17 +658,17 @@ def sample_read(self, sequencingModel, frag_len=None): attempts_thus_far = 0 # choose a random position within the ploid, and generate quality scores / sequencing errors - readsToSample = [] - if frag_len == None: + reads_to_sample = [] + if frag_len is None: r_pos = self.coverage_distribution[my_ploid].sample() # sample read position and call function to compute quality scores / sequencing errors r_dat = self.sequences[my_ploid][r_pos:r_pos + self.read_len] - (myQual, myErrors) = sequencingModel.get_sequencing_errors(r_dat) - readsToSample.append([r_pos, myQual, myErrors, r_dat]) + (my_qual, my_errors) = sequencing_model.get_sequencing_errors(r_dat) + reads_to_sample.append([r_pos, my_qual, my_errors, r_dat]) else: - r_pos1 = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() + r_pos1 = self.coverage_distribution[my_ploid][self.fraglen_ind_map[frag_len]].sample() # EXPERIMENTAL # coords_to_select_from = self.coverage_distribution[my_ploid][self.fraglens_ind_map[frag_len]].sample() @@ -595,76 +677,82 @@ def sample_read(self, sequencingModel, frag_len=None): r_pos2 = r_pos1 + frag_len - self.read_len r_dat1 = self.sequences[my_ploid][r_pos1:r_pos1 + self.read_len] r_dat2 = self.sequences[my_ploid][r_pos2:r_pos2 + self.read_len] - (myQual1, myErrors1) = sequencingModel.get_sequencing_errors(r_dat1) - (myQual2, myErrors2) = sequencingModel.get_sequencing_errors(r_dat2, is_reverse_strand=True) - readsToSample.append([r_pos1, myQual1, myErrors1, r_dat1]) - readsToSample.append([r_pos2, myQual2, myErrors2, r_dat2]) + (my_qual1, my_errors1) = sequencing_model.get_sequencing_errors(r_dat1) + (my_qual2, my_errors2) = sequencing_model.get_sequencing_errors(r_dat2, is_reverse_strand=True) + reads_to_sample.append([r_pos1, my_qual1, my_errors1, r_dat1]) + reads_to_sample.append([r_pos2, my_qual2, my_errors2, r_dat2]) # error format: # myError[i] = (type, len, pos, ref, alt) - # examine sequencing errors to-be-inserted. - # - remove deletions that don't have enough bordering sequence content to "fill in" - # if error is valid, make the changes to the read data + """ + examine sequencing errors to-be-inserted. + - remove deletions that don't have enough bordering sequence content to "fill in" + if error is valid, make the changes to the read data + """ r_out = [] - for r in readsToSample: + for r in reads_to_sample: try: - myCigar = self.all_cigar[my_ploid][r[0]] + my_cigar = self.all_cigar[my_ploid][r[0]] except IndexError: print('Index error when attempting to find cigar string.') print(my_ploid, len(self.all_cigar[my_ploid]), r[0]) if frag_len is not None: print((r_pos1, r_pos2)) - print(frag_len, self.fraglens_ind_map[frag_len]) + print(frag_len, self.fraglen_ind_map[frag_len]) exit(1) total_d = sum([error[1] for error in r[2] if error[0] == 'D']) total_i = sum([error[1] for error in r[2] if error[0] == 'I']) - availB = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 + avail_b = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted r[3] += self.sequences[my_ploid][r[0] + self.read_len:r[0] + self.read_len + total_d] expanded_cigar = [] - extraCigar = [] + extra_cigar = [] adj = 0 - sse_adj = [0 for n in range(self.read_len + max(sequencingModel.err_p[3]))] + sse_adj = [0 for n in range(self.read_len + max(sequencing_model.err_p[3]))] any_indel_err = False # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors # secondarily, sort by index - arrangedErrors = {'D': [], 'I': [], 'S': []} + arranged_errors = {'D': [], 'I': [], 'S': []} for error in r[2]: - arrangedErrors[error[0]].append((error[2], error)) - sortedErrors = [] - for k in sorted(arrangedErrors.keys()): - sortedErrors.extend([n[1] for n in sorted(arrangedErrors[k])]) + arranged_errors[error[0]].append((error[2], error)) + sorted_errors = [] + for k in sorted(arranged_errors.keys()): + sorted_errors.extend([n[1] for n in sorted(arranged_errors[k])]) skip_indels = False # FIXED TdB 05JUN2018 - # Moved this outside the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + # Moved this outside the for error loop, since it messes up the CIGAR string when + # more than one deletion is in the same read extra_cigar_val = [] # END FIXED TdB - for error in sortedErrors: + for error in sorted_errors: e_len = error[1] e_pos = error[2] if error[0] == 'D' or error[0] == 'I': any_indel_err = True # FIXED TdB 05JUN2018 - # Moved this OUTSIDE the for error loop, since it messes up the CIGAR string when more than one deletion is in the same read + # Moved this OUTSIDE the for error loop, since it messes up the CIGAR string + # when more than one deletion is in the same read # extra_cigar_val = [] # END FIXED TdB - if total_d > availB: # if not enough bases to fill-in deletions, skip all indel erors + if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue - if expanded_cigar == []: - expanded_cigar = CigarString(stringIn=myCigar).get_list() + if not expanded_cigar: + expanded_cigar = CigarString(string_in=my_cigar).get_list() fill_to_go = total_d - total_i + 1 if fill_to_go > 0: try: extra_cigar_val = CigarString( - stringIn=self.all_cigar[my_ploid][r[0] + fill_to_go]).get_list()[-fill_to_go:] - except IndexError: # applying the deletions we want requires going beyond region boundaries. skip all indel errors + string_in=self.all_cigar[my_ploid][r[0] + fill_to_go]).get_list()[-fill_to_go:] + except IndexError: + # Applying the deletions we want requires going beyond region boundaries. + # Skip all indel errors skip_indels = True if skip_indels: @@ -678,8 +766,8 @@ def sample_read(self, sequencingModel, frag_len=None): if str(r[3][pi:pf]) == str(error[3]): r[3] = r[3][:pi + 1] + r[3][pf:] expanded_cigar = expanded_cigar[:pi + 1] + expanded_cigar[pf:] - if pi + 1 == len( - expanded_cigar): # weird edge case with del at very end of region. Make a guess and add a "M" + # weird edge case with del at very end of region. Make a guess and add a "M" + if pi + 1 == len(expanded_cigar): expanded_cigar.append('M') expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] else: @@ -713,12 +801,12 @@ def sample_read(self, sequencingModel, frag_len=None): if any_indel_err: if len(expanded_cigar): - relevantCigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - myCigar = CigarString(listIn=relevantCigar).get_string() + relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] + my_cigar = CigarString(list_in=relevant_cigar).get_string() r[3] = r[3][:self.read_len] - r_out.append([self.fm_pos[my_ploid][r[0]], myCigar, str(r[3]), str(r[1])]) + r_out.append([self.fm_pos[my_ploid][r[0]], my_cigar, str(r[3]), str(r[1])]) # r_out[i] = (pos, cigar, read_string, qual_string) return r_out @@ -728,6 +816,7 @@ class SequencingError: """ Container to model sequencing errors: computes quality scores and positions to insert errors """ + def __init__(self, read_len, error_model, rescaled_error): self.read_len = read_len @@ -918,7 +1007,6 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): # parse mutation model pickle file def parse_input_mutation_model(model=None, which_default=1): - if which_default == 1: out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_1] elif which_default == 2: @@ -978,4 +1066,3 @@ def parse_input_mutation_model(model=None, which_default=1): out_model[9][ALL_IND[trinuc]] = trinuc_mean return out_model - diff --git a/py/biopython_modified_bgzf.py b/py/biopython_modified_bgzf.py index 2177a01..ee701f2 100755 --- a/py/biopython_modified_bgzf.py +++ b/py/biopython_modified_bgzf.py @@ -21,10 +21,10 @@ class BgzfWriter: - def __init__(self, filename=None, mode="w", fileobj=None, compresslevel=6): - if fileobj: + def __init__(self, filename=None, mode="w", file_obj=None, compress_level=6): + if file_obj: assert filename is None - handle = fileobj + handle = file_obj else: if "w" not in mode.lower() and "a" not in mode.lower(): raise ValueError("Must use write or append mode, not %r" % mode) @@ -35,14 +35,14 @@ def __init__(self, filename=None, mode="w", fileobj=None, compresslevel=6): self._text = "b" not in mode.lower() self._handle = handle self._buffer = b"" - self.compresslevel = compresslevel + self.compress_level = compress_level def _write_block(self, block): _bgzf_header = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00" start_offset = self._handle.tell() assert len(block) <= 65536 # Giving a negative window bits means no gzip/zlib headers, -15 used in samtools - c = zlib.compressobj(self.compresslevel, + c = zlib.compressobj(self.compress_level, zlib.DEFLATED, -15, zlib.DEF_MEM_LEVEL, diff --git a/py/input_checking.py b/py/input_checking.py index 25c4885..a4bea65 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -16,12 +16,13 @@ def required_field(variable_to_test: any, err_string: str) -> None: """ if variable_to_test is None: print('\n' + err_string + '\n') - raise ValueError + exit(1) def check_file_open(filename: str, err_string: str, required: bool = False) -> None: """ Checks that the filename is not empty and that it is indeed a file + :param filename: file name, string :param err_string: string of the error if it is not a file :param required: If not required, skips the check @@ -30,7 +31,7 @@ def check_file_open(filename: str, err_string: str, required: bool = False) -> N if required or filename is not None: if filename is None: print('\n' + err_string + '\n') - raise ValueError + exit(1) else: try: pathlib.Path(filename).resolve(strict=True) @@ -53,8 +54,9 @@ def check_dir(directory: str, err_string: str) -> None: def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string: str) -> None: """ - Checks that value (val) is between the lower bound (lb) and upper bound (ub), and if not prints an error message - (errString) and exits the program. + Checks that value is between the lower bound and upper bound, and if not prints an error message + (err_string) and exits the program. + :param value: float for the value :param lower_bound: float for the upper bound :param upper_bound: float for the lower bound @@ -63,4 +65,4 @@ def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string """ if value < lower_bound or value > upper_bound: print('\n' + err_string + '\n') - raise ValueError + exit(1) diff --git a/py/neat_cigar.py b/py/neat_cigar.py index e6f821e..f6202fe 100644 --- a/py/neat_cigar.py +++ b/py/neat_cigar.py @@ -2,22 +2,31 @@ class CigarString: - def __init__(self, stringIn=None, listIn=None): + """ + Creates and modifies CigarString for output + """ + def __init__(self, string_in=None, list_in=None): - if stringIn is None and listIn is None: + if string_in is None and list_in is None: print('\nError: CigarString object not initialized.\n') exit(1) self.cigar_data = [] - if stringIn is not None: - self.join_cigar(j_string_in=stringIn) + if string_in is not None: + self.join_cigar(j_string_in=string_in) - if listIn is not None: - self.join_cigar(j_list_in=listIn) + if list_in is not None: + self.join_cigar(j_list_in=list_in) @staticmethod def string_to_list(string_to_covert: str) -> list: + """ + Converts cigar string to a full list + + :param string_to_covert: Cigar string to convert to list + :return: cigar string in list format + """ cigar_dat = [] letters = re.split(r"\d+", string_to_covert)[1:] @@ -36,6 +45,12 @@ def string_to_list(string_to_covert: str) -> list: @staticmethod def list_to_string(list_to_convert: list) -> str: + """ + Convert a cigar string in list format to a standard cigar string + + :param list_to_convert: Cigar string in list format + :return: cigar string in string format + """ symbols = '' current_sym = list_to_convert[0] @@ -65,7 +80,14 @@ def get_string(self): return self.list_to_string(self.cigar_data) - def join_cigar(self, j_string_in=None, j_list_in=None): + def join_cigar(self, j_string_in: str = None, j_list_in: list = None): + """ + Adds an inputted cigar string in string or list format to the existing cigar string + + :param j_string_in: cigar string in string format + :param j_list_in: cigar string in list format + :return: None + """ if j_string_in is None and j_list_in is None: print('\nError: Invalid join operation in CigarString\n') @@ -77,7 +99,15 @@ def join_cigar(self, j_string_in=None, j_list_in=None): if j_list_in is not None: self.cigar_data += j_list_in - def insert_cigar_element(self, pos, i_string_in=None, i_list_in=None): + def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: list = None): + """ + Inserts a cigar string in either string or list format to the existing cigar string at position pos. + + :param pos: integer position where to insert the input cigar string + :param i_string_in: input cigar string in string format + :param i_list_in: input cigar string in list format + :return: + """ if i_string_in is None and i_list_in is None: print('\nError: Invalid insertion operation in CigarString\n') @@ -100,7 +130,7 @@ def insert_cigar_element(self, pos, i_string_in=None, i_list_in=None): str1 = '50M10D7I23M' str2 = '10I25M' iPos = 20 - my_cigar = CigarString(stringIn=str1) + my_cigar = CigarString(string_in=str1) my_cigar.insert_cigar_element(iPos, i_string_in=str2) assert(my_cigar.get_string() == "20M10I55M10D7I23M") print("passed") diff --git a/py/output_file_writer.py b/py/output_file_writer.py index 906e65b..de1b97f 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -158,7 +158,7 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # BAM OUTPUT self.bam_file = None if bam_header is not None: - self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) + self.bam_file = BgzfWriter(bam, 'w', compress_level=BAM_COMPRESSION_LEVEL) # WRITE BAM HEADER self.bam_file.write("BAM\1") diff --git a/py/probability.py b/py/probability.py index 2f34fa3..9dcd44d 100644 --- a/py/probability.py +++ b/py/probability.py @@ -7,6 +7,12 @@ def mean_ind_of_weighted_list(candidate_list: list) -> int: + """ + Returns the index of the mean of a weighted list + + :param candidate_list: weighted list + :return: index of mean + """ my_mid = sum(candidate_list) / 2.0 my_sum = 0.0 for i in range(len(candidate_list)): @@ -93,7 +99,8 @@ def sample(self): return self.values[bisect.bisect(self.cum_prob, r) - 1] -# takes k_range, lambda, [0,1,2,..], returns a DiscreteDistribution object with the corresponding to a poisson distribution +# takes k_range, lambda, [0,1,2,..], returns a DiscreteDistribution object +# with the corresponding to a poisson distribution def poisson_list(k_range, input_lambda): min_weight = 1e-12 From ec95331f967afcefdde1ffe1abcdfc16fd9c750f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 31 Aug 2020 11:36:02 -0500 Subject: [PATCH 171/323] minor changes to genreads and sequencecontainer --- gen_reads.py | 8 +++----- py/SequenceContainer.py | 5 +++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 536967f..8a08258 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -521,8 +521,7 @@ def main(raw_args=None): # change: added abs() so that insertions are also buffered. buffer_needed = max([max([abs(len(n[1]) - len(alt_allele)), 1]) for alt_allele in n[2]]) # -1 because going from VCF coords to array coords - structural_vars.append( - (n[0] - 1, buffer_needed)) + structural_vars.append((n[0] - 1, buffer_needed)) # adjust end-position of window based on inserted structural mutations keep_going = True @@ -547,9 +546,8 @@ def main(raw_args=None): current_progress += end - start new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: - if new_percent <= 99 or (new_percent == 100 and not have_printed100): - if new_percent % 20 == 0: - print('-', end='') + if new_percent <= 99 or (new_percent == 100 and not have_printed100) and new_percent % 20 == 0: + print('-', end='') current_percent = new_percent if current_percent == 100: print(']') diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 211dce7..a50acf1 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -1,6 +1,6 @@ import random import copy -import os +import pathlib import bisect import pickle import numpy as np @@ -732,8 +732,9 @@ def __init__(self, read_len, error_model, rescaled_error): self.read_len = read_len + model_path = pathlib.Path(error_model) try: - error_dat = pickle.load(open(error_model, 'rb'), encoding="bytes") + error_dat = pickle.load(open(model_path, 'rb'), encoding="bytes") except IOError: print("\nProblem opening the sequencing error model.\n") exit(1) From 6334b33d17cdbd9dbb3c8c316d113fcf45c05ffb Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 4 Sep 2020 11:10:58 -0500 Subject: [PATCH 172/323] Updates to the bacterial wrapper --- bacterial_genreads_wrapper.py | 21 +++++++++++++-------- gen_reads.py | 8 ++------ py/output_file_writer.py | 4 ++-- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 6de014c..de6877c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -32,7 +32,7 @@ def analyze(self): manipulation to unzip the file and fix genreads horribly formatted fasta file. :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] gen_reads.main(args) # The following workaround is due to the fact that genReads writes out a compressed @@ -68,8 +68,8 @@ def analyze(self): # re-write file with just the chrom name and sequence self.file.open('w').write(chromosome_name + sequence) - def sample(self): - args = ['-r', str(self.reference), '-R', '101', '-o', self.name] + def sample(self, coverage_value: int): + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', coverage_value] gen_reads.main(args) def remove(self): @@ -142,14 +142,15 @@ def evolve_population(population: list, generation: int) -> list: return new_population -def sample_population(population: list): +def sample_population(population: list, target_coverage: int): """ This will create a fastq based on each member of the population. + :param target_coverage: The target coverage value for the sample. :param population: a list of bacteria :return: None """ for bacterium in population: - bacterium.sample() + bacterium.sample(target_coverage) def main(): @@ -158,13 +159,17 @@ def main(): help="Reference file for organism in fasta format") parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") - parser.add_argument('-c', type=float, required=False, metavar='cull pct', + parser.add_argument('-k', type=float, required=False, metavar='cull pct', help="Percentage of population to cull each cycle (0.5 will keep population relatively stable)", default=0.5) + parser.add_argument('-c', type=int, required=False, default=10, metavar='coverage value', + help='Target coverage value for final set of sampled fastqs') args = parser.parse_args() + print(args) (ref_fasta, init_population_size, generations) = (args.r, args.i, args.g) - cull_percentage = args.c + cull_percentage = args.k + coverage = args.c population = initialize_population(ref_fasta, init_population_size) @@ -179,7 +184,7 @@ def main(): population = new_population - sample_population(population) + sample_population(population, coverage) if __name__ == '__main__': diff --git a/gen_reads.py b/gen_reads.py index 5b9d847..fa08a3a 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -25,8 +25,8 @@ import argparse import pathlib -from py.input_checking import required_field, check_file_open, is_in_range -from py.ref_func import index_ref, read_ref, get_all_ref_regions, partition_ref_regions +from py.input_checking import check_file_open, is_in_range +from py.ref_func import index_ref, read_ref from py.vcf_func import parse_vcf from py.output_file_writer import OutputFileWriter, reverse_complement, sam_flag from py.probability import DiscreteDistribution, mean_ind_of_weighted_list @@ -636,10 +636,6 @@ def main(raw_args=None): pass else: window_span = end - start - print('window_span = ' + str(window_span)) - print('coverage = ' + str(coverage)) - print('read_len = ' + str(read_len)) - print('coverage_avg = ' + str(coverage_avg)) if paired_end: if force_coverage: diff --git a/py/output_file_writer.py b/py/output_file_writer.py index de1b97f..f18664b 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -10,7 +10,7 @@ from Bio.bgzf import * import pathlib -from py.biopython_modified_bgzf import BgzfWriter +# from py.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 @@ -158,7 +158,7 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # BAM OUTPUT self.bam_file = None if bam_header is not None: - self.bam_file = BgzfWriter(bam, 'w', compress_level=BAM_COMPRESSION_LEVEL) + self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) # WRITE BAM HEADER self.bam_file.write("BAM\1") From 2d2118064e6a4134ae6dcba6c05f3a271ce6a797 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 4 Sep 2020 11:34:57 -0500 Subject: [PATCH 173/323] Changes to the bacterial wrapper --- bacterial_genreads_wrapper.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index de6877c..2462c80 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -38,13 +38,13 @@ def analyze(self): # The following workaround is due to the fact that genReads writes out a compressed # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped # fasta files, so we further have to unzip it for it to actually work. - self.file = pathlib.Path().absolute() / (self.name + "_read1.fa") - new_name = self.name + "_read1.fa.gz" + self.file = pathlib.Path().absolute() / (self.name + ".fasta") + new_name = self.name + ".fasta.gz" self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) - self.file = pathlib.Path().absolute() / (self.name + "_read1.fa.gz") - true_path = pathlib.Path().absolute() / (self.name + "_read1.fa") + self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") + true_path = pathlib.Path().absolute() / (self.name + ".fasta") unzip_file(self.file, true_path) - pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + "_read1.fa.gz")) # deletes unused zip file + pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + ".fasta.gz")) # deletes unused zip file self.file = true_path # end workaround From adb90972a369305e695bff47f2972a63bff6d0c8 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 4 Sep 2020 12:03:28 -0500 Subject: [PATCH 174/323] updates to the bacterial wrapper and changing exit(1) to sys.exit(1) --- bacterial_genreads_wrapper.py | 5 ++--- gen_reads.py | 20 ++++++++++---------- py/SequenceContainer.py | 28 ++++++++++++++-------------- py/input_checking.py | 9 +++++---- py/ref_func.py | 6 +++--- 5 files changed, 34 insertions(+), 34 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 2462c80..7d95b9e 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -6,6 +6,7 @@ import pathlib import gzip import shutil +import sys # from Bio import SeqIO @@ -58,7 +59,7 @@ def analyze(self): chromosome_name = first_line else: print("Something went wrong with the fasta file") - exit(1) + sys.exit(1) for line in f: if line.startswith(">"): continue @@ -136,7 +137,6 @@ def evolve_population(population: list, generation: int) -> list: for j in range(len(children_population)): names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): - print(children_population[i].get_file()) child = Bacterium(children_population[i].get_file(), names[i]) new_population.append(child) return new_population @@ -165,7 +165,6 @@ def main(): parser.add_argument('-c', type=int, required=False, default=10, metavar='coverage value', help='Target coverage value for final set of sampled fastqs') args = parser.parse_args() - print(args) (ref_fasta, init_population_size, generations) = (args.r, args.i, args.g) cull_percentage = args.k diff --git a/gen_reads.py b/gen_reads.py index fa08a3a..8998186 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -146,7 +146,7 @@ def main(raw_args=None): # if user specified no fastq, not fasta only, and no bam and no vcf, then print error and exit. if no_fastq and not fasta_instead and not save_bam and not save_vcf: print('\nERROR: No files would be written.\n') - exit(1) + sys.exit(1) if no_fastq: print('Bypassing FASTQ generation...') @@ -157,7 +157,7 @@ def main(raw_args=None): if (fragment_size is None and fragment_std is not None) or (fragment_size is not None and fragment_std is None): print('\nERROR: --pe argument takes 2 space-separated arguments.\n') - exit(1) + sys.exit(1) # If user specified mean/std, or specified an empirical model, then the reads will be paired_ended # If not, then we're doing single-end reads. @@ -214,14 +214,14 @@ def main(raw_args=None): [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) except IOError: print("\nProblem reading the default gc-bias model.\n") - exit(1) + sys.exit(1) gc_window_size = gc_scale_count[-1] else: try: [gc_scale_count, gc_scale_val] = pickle.load(open(gc_bias_model, 'rb')) except IOError: print("\nProblem reading the gc-bias model.\n") - exit(1) + sys.exit(1) gc_window_size = gc_scale_count[-1] # Assign appropriate values to the needed variables if we're dealing with paired-ended data @@ -233,7 +233,7 @@ def main(raw_args=None): [potential_values, potential_prob] = pickle.load(open(fraglen_model, 'rb')) except IOError: print('\nProblem loading the empirical fragment length model.\n') - exit(1) + sys.exit(1) fraglen_values = [] fraglen_probability = [] @@ -308,7 +308,7 @@ def main(raw_args=None): input_regions[my_chr].extend([int(pos1), int(pos2)]) except IOError: print("\nProblem reading input target BED file.\n") - exit(1) + sys.exit(1) finally: f.close() @@ -366,7 +366,7 @@ def main(raw_args=None): mut_rate_values.extend([mut_rate * (pos2 - pos1)] * 2) except IOError: print("\nProblem reading mutational BED file.\n") - exit(1) + sys.exit(1) finally: f.close() @@ -476,7 +476,7 @@ def main(raw_args=None): print('sampling reads...') tt = time.time() # start the progress bar - print("[", end='') + print("[", end='', flush=True) # Applying variants to non-N regions for i in range(len(n_regions['non_N'])): @@ -544,7 +544,7 @@ def main(raw_args=None): if new_percent > current_percent: if new_percent <= 99 or (new_percent == 100 and not have_printed100): if new_percent % 10 == 1: - print('-', end='') + print('-', end='', flush=True) current_percent = new_percent if current_percent == 100: have_printed100 = True @@ -822,7 +822,7 @@ def main(raw_args=None): sam_flag=flag2, mate_pos=my_read_data[1][0]) else: print('\nError: Unexpected number of reads generated...\n') - exit(1) + sys.exit(1) if not is_last_time: output_file_writer.flush_buffers(bam_max=next_start) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 047e81e..4456a94 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -127,7 +127,7 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod else: if len(mut_models) != self.ploidy: print('\nError: Number of mutation models received is not equal to specified ploidy\n') - exit(1) + sys.exit(1) self.model_data = copy.deepcopy(mut_models) # do we need to rescale mutation frequencies? @@ -213,7 +213,7 @@ def update_mut_models(self, mut_models, mut_rate): else: if len(mut_models) != self.ploidy: print('\nError: Number of mutation models received is not equal to specified ploidy\n') - exit(1) + sys.exit(1) self.model_data = copy.deepcopy(mut_models) # do we need to rescale mutation frequencies? @@ -358,7 +358,7 @@ def init_coverage(self, coverage_data, frag_dist=None): # for qcv in quantized_covVals: # mpl.plot([qcv[0], qcv[1]+1], [qcv[2],qcv[2]], 'r') # mpl.show() - # exit(1) + # sys.exit(1) self.coverage_distribution[i][flv] = DiscreteDistribution(coverage_vals, range(len(coverage_vals))) @@ -433,7 +433,7 @@ def insert_mutations(self, input_list): if my_var[0] < 0 or my_var[0] >= len(self.black_list[p]): print('\nError: Attempting to insert variant out of window bounds:') print(my_var, '--> blackList[0:' + str(len(self.black_list[p])) + ']\n') - exit(1) + sys.exit(1) if len(input_variable[1]) == 1 and len(my_alt) == 1: if self.black_list[p][my_var[0]]: continue @@ -570,7 +570,7 @@ def random_mutations(self): print('\nError: Something went wrong!\n', all_snps[i][j], self.sequences[i][v_pos], '\n') print(all_snps[i][j]) print(self.sequences[i][v_pos]) - exit(1) + sys.exit(1) else: self.sequences[i][v_pos] = all_snps[i][j][2] @@ -593,7 +593,7 @@ def random_mutations(self): if all_indels_ins[i][j][1] != str(self.sequences[i][v_pos:v_pos2]): print('\nError: Something went wrong!\n', all_indels_ins[i][j], [v_pos, v_pos2], str(self.sequences[i][v_pos:v_pos2]), '\n') - exit(1) + sys.exit(1) else: # alter reference sequence self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2], @@ -701,7 +701,7 @@ def sample_read(self, sequencing_model, frag_len=None): if frag_len is not None: print((r_pos1, r_pos2)) print(frag_len, self.fraglen_ind_map[frag_len]) - exit(1) + sys.exit(1) total_d = sum([error[1] for error in r[2] if error[0] == 'D']) total_i = sum([error[1] for error in r[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 @@ -773,7 +773,7 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] else: print('\nError, ref does not match alt while attempting to insert deletion error!\n') - exit(1) + sys.exit(1) adj -= e_len for i in range(e_pos, len(sse_adj)): sse_adj[i] -= e_len @@ -788,7 +788,7 @@ def sample_read(self, sequencing_model, frag_len=None): else: print('\nError, ref does not match alt while attempting to insert insertion error!\n') print('---', chr(r[3][e_pos + my_adj]), '!=', error[3]) - exit(1) + sys.exit(1) adj += e_len for i in range(e_pos, len(sse_adj)): sse_adj[i] += e_len @@ -798,7 +798,7 @@ def sample_read(self, sequencing_model, frag_len=None): r[3][e_pos + sse_adj[e_pos]] = error[4] else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') - exit(1) + sys.exit(1) if any_indel_err: if len(expanded_cigar): @@ -827,7 +827,7 @@ def __init__(self, read_len, error_model, rescaled_error): error_dat = pickle.load(open(model_path, 'rb'), encoding="bytes") except IOError: print("\nProblem opening the sequencing error model.\n") - exit(1) + sys.exit(1) self.uniform = False @@ -850,12 +850,12 @@ def __init__(self, read_len, error_model, rescaled_error): self.pe_models = True if len(init_q1) != len(init_q2) or len(prob_q1) != len(prob_q2): print('\nError: R1 and R2 quality score models are of different length.\n') - exit(1) + sys.exit(1) # This serves as a sanity check for the input model else: print('\nError: Something wrong with error model.\n') - exit(1) + sys.exit(1) self.q_err_rate = [0.] * (max(q_scores) + 1) for q in q_scores: @@ -1015,7 +1015,7 @@ def parse_input_mutation_model(model=None, which_default=1): out_model = [copy.deepcopy(n) for n in DEFAULT_MODEL_2] else: print('\nError: Unknown default mutation model specified\n') - exit(1) + sys.exit(1) if model is not None: pickle_dict = pickle.load(open(model, "rb")) diff --git a/py/input_checking.py b/py/input_checking.py index a4bea65..dc27fff 100644 --- a/py/input_checking.py +++ b/py/input_checking.py @@ -4,6 +4,7 @@ """ import pathlib +import sys def required_field(variable_to_test: any, err_string: str) -> None: @@ -16,7 +17,7 @@ def required_field(variable_to_test: any, err_string: str) -> None: """ if variable_to_test is None: print('\n' + err_string + '\n') - exit(1) + sys.exit(1) def check_file_open(filename: str, err_string: str, required: bool = False) -> None: @@ -31,13 +32,13 @@ def check_file_open(filename: str, err_string: str, required: bool = False) -> N if required or filename is not None: if filename is None: print('\n' + err_string + '\n') - exit(1) + sys.exit(1) else: try: pathlib.Path(filename).resolve(strict=True) except FileNotFoundError: print('\n' + err_string + '\n') - exit(1) + sys.exit(1) def check_dir(directory: str, err_string: str) -> None: @@ -65,4 +66,4 @@ def is_in_range(value: float, lower_bound: float, upper_bound: float, err_string """ if value < lower_bound or value > upper_bound: print('\n' + err_string + '\n') - exit(1) + sys.exit(1) diff --git a/py/ref_func.py b/py/ref_func.py index 95e3c96..aebc76c 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -24,7 +24,7 @@ def index_ref(reference_path: str) -> list: # sanity check if not absolute_reference_location.is_file(): print("\nProblem reading the reference fasta file.\n") - exit(1) + sys.exit(1) filename = None @@ -88,7 +88,7 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): ref_file = open(absolute_reference_path, 'r') except IOError: print('\nProblem reading reference file.\n') - exit(1) + sys.exit(1) # TODO convert to SeqIO containers ref_file.seek(ref_inds_i[1]) @@ -137,7 +137,7 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): n_info['big'].extend(region) else: print('\nERROR: UNKNOWN N_HANDLING MODE\n') - exit(1) + sys.exit(1) habitable_regions = [] if not n_info['big']: From 19445aa3cc532b1c5089e97ba271f36f3e18db20 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Sep 2020 10:59:40 -0500 Subject: [PATCH 175/323] Update to bacterial wrapper --- bacterial_genreads_wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 7d95b9e..a75c268 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -70,7 +70,7 @@ def analyze(self): self.file.open('w').write(chromosome_name + sequence) def sample(self, coverage_value: int): - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', coverage_value] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value)] gen_reads.main(args) def remove(self): From 640dfc31dd9516e5bbee03ead489f3ebdd36f3ad Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Sep 2020 12:08:42 -0500 Subject: [PATCH 176/323] Update to bacterial wrapper --- bacterial_genreads_wrapper.py | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index a75c268..6470414 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -70,9 +70,23 @@ def analyze(self): self.file.open('w').write(chromosome_name + sequence) def sample(self, coverage_value: int): - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value)] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', '300 30'] gen_reads.main(args) + # The following workaround is due to the fact that genReads writes out a compressed + # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped + # fasta files, so we further have to unzip it for it to actually work. + filename1 = pathlib.Path().absolute() / (self.name + "_read1.fq") + filename2 = pathlib.Path().absolute() / (self.name + "_read2.fq") + new_name1 = self.name + "_read1.fq.gz" + new_name2 = self.name + "_read2.fq.gz" + + filename1.rename(pathlib.Path(pathlib.Path().absolute(), new_name1)) + if filename2.is_file(): + filename2.rename(pathlib.Path(pathlib.Path().absolute(), new_name2)) + + # end workaround + def remove(self): pathlib.Path.unlink(self.file) From 2edc2850adfc8282e102ad260b95b3a1721ae0f8 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Sep 2020 12:29:49 -0500 Subject: [PATCH 177/323] Update to bacterial wrapper --- gen_reads.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 8998186..a221b1b 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -841,10 +841,8 @@ def main(raw_args=None): if end >= final_position: is_last_time = True - if current_percent != 100 and not have_printed100: - print(']') - else: - print('') + print(']', flush=True) + if only_vcf: print('VCF generation completed in ', end='') else: From 9bb0b467c7f54409b2210eb93d3ef1bde2921a5f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Sep 2020 13:14:27 -0500 Subject: [PATCH 178/323] Fixed a bug in bacterial wrapper --- bacterial_genreads_wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 6470414..549bfe5 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -70,7 +70,7 @@ def analyze(self): self.file.open('w').write(chromosome_name + sequence) def sample(self, coverage_value: int): - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', '300 30'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', '300', '30'] gen_reads.main(args) # The following workaround is due to the fact that genReads writes out a compressed From 524ed6b8d1023236be94e9e3e7ddc5c814a21d5e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Sep 2020 13:16:52 -0500 Subject: [PATCH 179/323] Fixed a bug in bacterial wrapper --- bacterial_genreads_wrapper.py | 3 ++- .../SequenceContainer.cpython-37.pyc | Bin 29131 -> 32804 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 3114 -> 4175 bytes py/__pycache__/probability.cpython-37.pyc | Bin 4135 -> 4264 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 4837 -> 5682 bytes 5 files changed, 2 insertions(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 549bfe5..509cc02 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -70,7 +70,8 @@ def analyze(self): self.file.open('w').write(chromosome_name + sequence) def sample(self, coverage_value: int): - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', '300', '30'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, + '-c', str(coverage_value), '--pe', '300', '30'] gen_reads.main(args) # The following workaround is due to the fact that genReads writes out a compressed diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 40c7ad84da8dc41dbad4cba5097f905ccd03b4e7..13a3ddedb4daff8f5fb3aac6f7cc131c17b02214 100644 GIT binary patch delta 13763 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 bIVYBxnwH2mwdF0L#I0rar>swo9E~9!7 zH@9&3Gcx*2zQUQsZ4A_0WCkLvCg%x=Pfp-sWfa<+#^9I&qT(o$uoIm!t6mR zBtQfkkkDj_V$Y5*O3VY=;Rq6R01{E`Eyj1x%O8ANabiCa7c`I*JV`FZg< znZ+eZleu~28C^DO^WJ1+ES=2CKPTuGQ(9( diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc index b8b4b688d0f76ac387e54f1ac6fa29e8a168de60..9e51f0f471b0f68a6a7084f259e6f3176bedc232 100644 GIT binary patch literal 5682 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 delta 2796 zcma)8&2JmW6`z^i7e$ z=Ixs|Z{EK5=Jy`?!E=8-HG4Uia~YnCpI@lWeuJ^U(Bg~70CN#Dc!L);6k2CFJ z+6{An0QNd}nKt{`0YfmxZ5FzlUf-7lgN3!xd zf5?N?PZ_BA>Th=>M z`{rC@tr>Im=-+rgCPln|+Cy??S9oie{u7CS*~?yiOR;!HDWG`H%pwX2%# zF#4rAJ!u3Ff;ba|a_4>+TR&0F5ZjHd`@y~F_vVSyg=${a8+BE0uh(md4H1U1Lsr^r z+x6JNZVgUFlh!Jqi302T64grZ0}#d?Ve%q|lTxf4?qUpaKN$|F!>2J#;U_yLry(H8 z@Dp4_#mq?WG)%2rUAM?2o*~TRDtHIcN`5@VL#t~^gDOsDHcUV=tq@zA!6H>i-;lQE zgi91gmI?rXA-Q=B9T(66`uZ8@c@u2VgNpR~Hbf3YIe;_SpiAm!Wq!bc{cPy!Y~KTt z{LLH;WU(T&Wu?<~F+Eh1-+3!600h|sTrO(p4L~HTVNVuXB8asCe2t_MZM6UptUT%T zT0;Fz=TIG<^ne^s=TalmE3*Wi&uhP5(k_NK&Ke@Am5=CX%Y>1$U)?2#_CC7HHj*KW z4-J%spsdJJV)2uX(mq_=>=tw{FNaX$L%KkQb%Bxs3T4!bpjC_GGaq!$g@sg}>Kq6d z80qH1;r@t5f1t?b8DRg;UDiew%Hc1qLb?j+r$$HR3)5e5;lHC1ds{eM3`gY{ zm2o&GJ$eHJ=ra`ep$I;fPI`?EvB4o7pJ(kiIJbW#<%hV;hU(SdO^F$TSgLa<_C7_=Io6Zq32J=+WV+v((?xu3rd!hZ z0?wCky*<`4@YzKe8^?`di*Rsg>@89|J~V7Djj6PKnR9b6`r34_8Vx z?kpe09BmB0c;>M{)yvR)Ql#oCHr|gu8Gfzzwbg%(BY^)3 From 22f1cc791762ae19f814e4977299410076423ecf Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 9 Sep 2020 16:04:30 -0500 Subject: [PATCH 180/323] working on genreads, minor changes only, debugging --- bacterial_genreads_wrapper.py | 3 +-- gen_reads.py | 12 +++++++----- py/ref_func.py | 15 ++++++++------- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 509cc02..89de7d2 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -75,8 +75,7 @@ def sample(self, coverage_value: int): gen_reads.main(args) # The following workaround is due to the fact that genReads writes out a compressed - # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped - # fasta files, so we further have to unzip it for it to actually work. + # fasta but does not put the .gz extension on it. filename1 = pathlib.Path().absolute() / (self.name + "_read1.fq") filename2 = pathlib.Path().absolute() / (self.name + "_read2.fq") new_name1 = self.name + "_read1.fq.gz" diff --git a/gen_reads.py b/gen_reads.py index a221b1b..2d3b82e 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -24,6 +24,7 @@ import numpy as np import argparse import pathlib +from Bio import SeqIO from py.input_checking import check_file_open, is_in_range from py.ref_func import index_ref, read_ref @@ -78,7 +79,7 @@ def main(raw_args=None): parser.add_argument('-v', type=str, required=False, metavar='vcf.file', default=None, help="Input VCF file of variants to include") parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(None, None), - help='paired-end fragment length mean and std') + help='Paired-end fragment length mean and std') parser.add_argument('--pe-model', type=str, required=False, metavar='', default=None, help='empirical fragment length distribution') parser.add_argument('--gc-model', type=str, required=False, metavar='', default=None, @@ -268,8 +269,7 @@ def main(raw_args=None): Process Inputs """ - # index reference - # TODO change reference processing to Biopython + # index reference: [("chromosome_name", # bases in the contig, byte index where the seq begins, ref_index = index_ref(reference) if paired_end: @@ -277,8 +277,8 @@ def main(raw_args=None): else: n_handling = ('ignore', read_len) - # TODO pretty sure all this can be handled by SeqIO indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} + ref_list = [n[0] for n in ref_index] # parse input variants, if present # TODO read this in as a pandas dataframe @@ -297,7 +297,6 @@ def main(raw_args=None): # parse input targeted regions, if present # TODO convert bed to pandas dataframe input_regions = {} - ref_list = [n[0] for n in ref_index] if input_bed is not None: try: with open(input_bed, 'r') as f: @@ -406,6 +405,9 @@ def main(raw_args=None): # read in reference sequence and notate blocks of Ns (ref_sequence, n_regions) = read_ref(reference, ref_index[chrom], n_handling) + print(ref_sequence) + + sys.exit(1) # count total bp we'll be spanning so we can get an idea of how far along we are # (for printing progress indicators) diff --git a/py/ref_func.py b/py/ref_func.py index aebc76c..1e46a5f 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -26,19 +26,21 @@ def index_ref(reference_path: str) -> list: print("\nProblem reading the reference fasta file.\n") sys.exit(1) - filename = None + index_filename = None # check if the reference file already exists if absolute_reference_location.with_suffix('.fai').is_file(): print('found index ' + absolute_reference_location.with_suffix('.fai')) - filename = absolute_reference_location.with_suffix('.fai') + index_filename = absolute_reference_location.with_suffix('.fai') elif absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai').is_file(): print('found index ' + absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai')) - filename = absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai') + index_filename = absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai') + else: + pass ref_indices = [] - if filename is not None: - fai = open(filename, 'r') + if index_filename is not None: + fai = open(index_filename, 'r') for line in fai: splt = line[:-1].split('\t') seq_len = int(splt[1]) @@ -57,7 +59,6 @@ def index_ref(reference_path: str) -> list: prev_p = None seq_len = 0 - # TODO I really don't like this while true statement while True: data = ref_file.readline() if not data: @@ -186,7 +187,7 @@ def get_all_ref_regions(ref_path, ref_inds, n_handling, save_output=False): else: print('enumerating all non-N regions in reference sequence...') for RI in range(len(ref_inds)): - (refSequence, N_regions) = read_ref(ref_path, ref_inds[RI], n_handling, quiet=True) + (ref_sequence, N_regions) = read_ref(ref_path, ref_inds[RI], n_handling, quiet=True) ref_name = ref_inds[RI][0] out_regions[ref_name] = [n for n in N_regions['non_N']] if save_output: From 8986b13d057c2201a1dcbfbe083ece949f207bd1 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 14 Sep 2020 11:25:02 -0500 Subject: [PATCH 181/323] appended 'gz' at the end of the filenames --- py/output_file_writer.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/py/output_file_writer.py b/py/output_file_writer.py index f18664b..08a1051 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -97,13 +97,13 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g self.fasta_instead = fasta_instead # TODO Eliminate paired end as an option for fastas if self.fasta_instead: - fq1 = pathlib.Path(out_prefix + '.fasta') + fq1 = pathlib.Path(out_prefix + '.fasta.gz') fq2 = None else: - fq1 = pathlib.Path(out_prefix + '_read1.fq') - fq2 = pathlib.Path(out_prefix + '_read2.fq') + fq1 = pathlib.Path(out_prefix + '_read1.fq.gz') + fq2 = pathlib.Path(out_prefix + '_read2.fq.gz') bam = pathlib.Path(out_prefix + '_golden.bam') - vcf = pathlib.Path(out_prefix + '_golden.vcf') + vcf = pathlib.Path(out_prefix + '_golden.vcf.gz') self.no_fastq = no_fastq if not self.no_fastq: From 6ecfed3532438a90e39ef78c07eda96415fe2e92 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 14 Sep 2020 11:49:18 -0500 Subject: [PATCH 182/323] eliminated a debugging line --- bacterial_genreads_wrapper.py | 45 ++++++++++++++++++----------------- gen_reads.py | 10 ++++---- py/ref_func.py | 10 ++++++-- py/vcf_func.py | 3 +-- 4 files changed, 37 insertions(+), 31 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 89de7d2..efd706c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -36,18 +36,18 @@ def analyze(self): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] gen_reads.main(args) - # The following workaround is due to the fact that genReads writes out a compressed - # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped - # fasta files, so we further have to unzip it for it to actually work. - self.file = pathlib.Path().absolute() / (self.name + ".fasta") - new_name = self.name + ".fasta.gz" - self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) - self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") - true_path = pathlib.Path().absolute() / (self.name + ".fasta") - unzip_file(self.file, true_path) - pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + ".fasta.gz")) # deletes unused zip file - self.file = true_path - # end workaround + # # The following workaround is due to the fact that genReads writes out a compressed + # # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped + # # fasta files, so we further have to unzip it for it to actually work. + # self.file = pathlib.Path().absolute() / (self.name + ".fasta") + # new_name = self.name + ".fasta.gz" + # self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) + # self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") + # true_path = pathlib.Path().absolute() / (self.name + ".fasta") + # unzip_file(self.file, true_path) + # pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + ".fasta.gz")) # deletes unused zip file + # self.file = true_path + # # end workaround # Now we further have to fix the fasta file, which outputs in a form that doesn't make much sense, # so that it can be properly analyzed in the next generation by genreads. @@ -74,16 +74,16 @@ def sample(self, coverage_value: int): '-c', str(coverage_value), '--pe', '300', '30'] gen_reads.main(args) - # The following workaround is due to the fact that genReads writes out a compressed - # fasta but does not put the .gz extension on it. - filename1 = pathlib.Path().absolute() / (self.name + "_read1.fq") - filename2 = pathlib.Path().absolute() / (self.name + "_read2.fq") - new_name1 = self.name + "_read1.fq.gz" - new_name2 = self.name + "_read2.fq.gz" + # # The following workaround is due to the fact that genReads writes out a compressed + # # fasta but does not put the .gz extension on it. + # filename1 = pathlib.Path().absolute() / (self.name + "_read1.fq") + # filename2 = pathlib.Path().absolute() / (self.name + "_read2.fq") + # new_name1 = self.name + "_read1.fq.gz" + # new_name2 = self.name + "_read2.fq.gz" - filename1.rename(pathlib.Path(pathlib.Path().absolute(), new_name1)) - if filename2.is_file(): - filename2.rename(pathlib.Path(pathlib.Path().absolute(), new_name2)) + # filename1.rename(pathlib.Path(pathlib.Path().absolute(), new_name1)) + # if filename2.is_file(): + # filename2.rename(pathlib.Path(pathlib.Path().absolute(), new_name2)) # end workaround @@ -174,7 +174,8 @@ def main(): parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") parser.add_argument('-k', type=float, required=False, metavar='cull pct', - help="Percentage of population to cull each cycle (0.5 will keep population relatively stable)", + help="Percentage of population to cull each cycle " + "(The default of 0.5 will keep population relatively stable)", default=0.5) parser.add_argument('-c', type=int, required=False, default=10, metavar='coverage value', help='Target coverage value for final set of sampled fastqs') diff --git a/gen_reads.py b/gen_reads.py index 2d3b82e..b4b378c 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -269,7 +269,10 @@ def main(raw_args=None): Process Inputs """ - # index reference: [("chromosome_name", # bases in the contig, byte index where the seq begins, + # index reference: [(0: chromosome name, 1: byte index where the contig seq begins, + # 2: byte index where the next contig begins, 3: contig seq length), + # (repeat for every chrom)] + # TODO check to see if this might work better as a dataframe ref_index = index_ref(reference) if paired_end: @@ -286,7 +289,7 @@ def main(raw_args=None): if input_vcf is not None: if cancer: (sample_names, input_variants) = parse_vcf(input_vcf, tumor_normal=True, ploidy=ploids) - # TODO figure out what Zach was trying to do with these + # TODO figure out what these were going to be used for tumor_ind = sample_names.index('TUMOR') normal_ind = sample_names.index('NORMAL') else: @@ -405,9 +408,6 @@ def main(raw_args=None): # read in reference sequence and notate blocks of Ns (ref_sequence, n_regions) = read_ref(reference, ref_index[chrom], n_handling) - print(ref_sequence) - - sys.exit(1) # count total bp we'll be spanning so we can get an idea of how far along we are # (for printing progress indicators) diff --git a/py/ref_func.py b/py/ref_func.py index 1e46a5f..f40b697 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -6,11 +6,14 @@ from Bio.Seq import Seq from Bio.Alphabet import IUPAC - OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] +class Dog: + pass + + def index_ref(reference_path: str) -> list: """ Index reference fasta @@ -43,12 +46,16 @@ def index_ref(reference_path: str) -> list: fai = open(index_filename, 'r') for line in fai: splt = line[:-1].split('\t') + # Defined as the number of bases in the contig seq_len = int(splt[1]) + # Defined as the byte index where the contig sequence begins offset = int(splt[2]) + # Defined as bases per line in the Fasta file line_ln = int(splt[3]) n_lines = seq_len // line_ln if seq_len % line_ln != 0: n_lines += 1 + # Item 3 in this gives you the byte position of the next contig, I believe ref_indices.append((splt[0], offset, offset + seq_len + n_lines, seq_len)) fai.close() return ref_indices @@ -79,7 +86,6 @@ def index_ref(reference_path: str) -> list: def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): - tt = time.time() if not quiet: print('reading ' + ref_inds_i[0] + '... ') diff --git a/py/vcf_func.py b/py/vcf_func.py index 55170ff..2a173d3 100644 --- a/py/vcf_func.py +++ b/py/vcf_func.py @@ -70,8 +70,7 @@ def parse_line(vcf_line, col_dict, col_samp): def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): tt = time.time() print('--------------------------------') - sys.stdout.write('reading input VCF...\n') - sys.stdout.flush() + print('reading input VCF...\n', flush=True) col_dict = {} col_samp = [] From 60a5b8c5684552cba6ffe57a674ee1d9f8f07ed9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 21 Sep 2020 10:25:32 -0500 Subject: [PATCH 183/323] Several improvements to bacterial wrapper --- bacterial_genreads_wrapper.py | 96 ++++++++++++++++++++--------------- gen_reads.py | 2 +- py/output_file_writer.py | 1 + 3 files changed, 57 insertions(+), 42 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index efd706c..4007073 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -7,13 +7,15 @@ import gzip import shutil import sys +import copy # from Bio import SeqIO class Bacterium: - def __init__(self, reference: str, name: str): + def __init__(self, reference: str, name: str, chrom_names: list): self.reference = pathlib.Path(reference) self.name = name + self.chroms = chrom_names # Temporarily set the reference as the bacterium's file, until it is analyzed self.file = pathlib.Path(reference) self.analyze() @@ -27,6 +29,9 @@ def __str__(self): def get_file(self): return self.file + def get_chroms(self): + return self.chroms + def analyze(self): """ This function is supposed to just run genreads for the bacterium, but doing so requires some file @@ -35,58 +40,50 @@ def analyze(self): """ args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] gen_reads.main(args) - - # # The following workaround is due to the fact that genReads writes out a compressed - # # fasta but does not put the .gz extension on it. Also, genReads cannot handle gzipped - # # fasta files, so we further have to unzip it for it to actually work. - # self.file = pathlib.Path().absolute() / (self.name + ".fasta") - # new_name = self.name + ".fasta.gz" - # self.file.rename(pathlib.Path(pathlib.Path().absolute(), new_name)) - # self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") - # true_path = pathlib.Path().absolute() / (self.name + ".fasta") - # unzip_file(self.file, true_path) - # pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + ".fasta.gz")) # deletes unused zip file - # self.file = true_path - # # end workaround + self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") + + # The following workaround is due to the fact that genReads cannot handle gzipped + # fasta files, so we have to unzip it for it to actually work. + unzipped_path = pathlib.Path().absolute() / (self.name + ".fasta") + unzip_file(self.file, unzipped_path) + pathlib.Path.unlink(pathlib.Path().absolute() / (self.name + ".fasta.gz")) # deletes unused zip file + self.file = unzipped_path + # end workaround # Now we further have to fix the fasta file, which outputs in a form that doesn't make much sense, # so that it can be properly analyzed in the next generation by genreads. + temp_name_list = copy.deepcopy(self.chroms) + temp_file = self.file.parents[0] / 'neat_temporary_fasta_file.fa' + temp_file.touch() chromosome_name = "" sequence = "" with self.file.open() as f: - first_line = f.readline() - if first_line.startswith(">"): - chromosome_name = first_line - else: - print("Something went wrong with the fasta file") - sys.exit(1) for line in f: if line.startswith(">"): - continue + for name in temp_name_list: + if name in line: + if chromosome_name != ">" + name + "\n": + if sequence: + temp_file.open('a').write(chromosome_name + sequence) + sequence = "" + chromosome_name = ">" + name + "\n" + temp_name_list.remove(name) + else: + continue + if not chromosome_name: + print("Something went wrong with the generated fasta file.\n") + sys.exit(1) else: sequence = sequence + line - f.close() - # re-write file with just the chrom name and sequence - self.file.open('w').write(chromosome_name + sequence) + temp_file.open('a').write(chromosome_name + sequence) + shutil.copy(temp_file, self.file) + pathlib.Path.unlink(temp_file) def sample(self, coverage_value: int): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', '300', '30'] gen_reads.main(args) - # # The following workaround is due to the fact that genReads writes out a compressed - # # fasta but does not put the .gz extension on it. - # filename1 = pathlib.Path().absolute() / (self.name + "_read1.fq") - # filename2 = pathlib.Path().absolute() / (self.name + "_read2.fq") - # new_name1 = self.name + "_read1.fq.gz" - # new_name2 = self.name + "_read2.fq.gz" - - # filename1.rename(pathlib.Path(pathlib.Path().absolute(), new_name1)) - # if filename2.is_file(): - # filename2.rename(pathlib.Path(pathlib.Path().absolute(), new_name2)) - - # end workaround - def remove(self): pathlib.Path.unlink(self.file) @@ -119,10 +116,11 @@ def cull(population: list, percentage: float = 0.5) -> list: return population -def initialize_population(reference: str, pop_size) -> list: +def initialize_population(reference: str, pop_size: int, chrom_names: list) -> list: """ The purpose of this function is to evolve the initial population of bacteria. All bacteria are stored as Bacterium objects. + :param chrom_names: A list of contigs from the original fasta :param reference: string path to the reference fasta file :param pop_size: size of the population to initialize. :return population: returns a list of bacterium objects. @@ -132,7 +130,7 @@ def initialize_population(reference: str, pop_size) -> list: names.append("bacterium_0_{}".format(j+1)) population = [] for i in range(pop_size): - new_member = Bacterium(reference, names[i]) + new_member = Bacterium(reference, names[i], chrom_names) population.append(new_member) return population @@ -151,7 +149,7 @@ def evolve_population(population: list, generation: int) -> list: for j in range(len(children_population)): names.append("bacterium_{}_{}".format(generation, j+1)) for i in range(len(children_population)): - child = Bacterium(children_population[i].get_file(), names[i]) + child = Bacterium(children_population[i].get_file(), names[i], children_population[i].get_chroms()) new_population.append(child) return new_population @@ -167,6 +165,20 @@ def sample_population(population: list, target_coverage: int): bacterium.sample(target_coverage) +def extract_names(reference: str) -> list: + ref_names = [] + absolute_reference_path = pathlib.Path(reference) + with open(absolute_reference_path, 'r') as ref: + for line in ref: + if line.startswith(">"): + ref_names.append(line[1:].rstrip()) + if not ref_names: + print("Malformed fasta file. Missing properly formatted chromosome names.\n") + sys.exit(1) + + return ref_names + + def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') parser.add_argument('-r', type=str, required=True, metavar='reference fasta', @@ -185,7 +197,9 @@ def main(): cull_percentage = args.k coverage = args.c - population = initialize_population(ref_fasta, init_population_size) + chrom_names = extract_names(ref_fasta) + + population = initialize_population(ref_fasta, init_population_size, chrom_names) for i in range(generations): new_population = evolve_population(population, i+1) diff --git a/gen_reads.py b/gen_reads.py index b4b378c..5a02a16 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -741,7 +741,7 @@ def main(raw_args=None): # write SE output if len(my_read_data) == 1: - if no_fastq is not True: + if not no_fastq: if is_forward: output_file_writer.write_fastq_record(my_read_name, my_read_data[0][2], my_read_data[0][3]) diff --git a/py/output_file_writer.py b/py/output_file_writer.py index 08a1051..9300bb6 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -105,6 +105,7 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g bam = pathlib.Path(out_prefix + '_golden.bam') vcf = pathlib.Path(out_prefix + '_golden.vcf.gz') + # TODO Make a fasta-specific method self.no_fastq = no_fastq if not self.no_fastq: if gzipped: From e2ec3928d4a4a3635dbe2e27152cb8eb8615409b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 21 Sep 2020 10:27:36 -0500 Subject: [PATCH 184/323] minor changes to bacterial wrapper --- bacterial_genreads_wrapper.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 4007073..1845db3 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -181,10 +181,10 @@ def extract_names(reference: str) -> list: def main(): parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') - parser.add_argument('-r', type=str, required=True, metavar='reference fasta', + parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") - parser.add_argument('-i', type=int, required=True, metavar='initial population', help="Initial population size") + parser.add_argument('-i', type=int, required=True, metavar='initial pop', help="Initial population size") parser.add_argument('-k', type=float, required=False, metavar='cull pct', help="Percentage of population to cull each cycle " "(The default of 0.5 will keep population relatively stable)", From fbc06f5a9105cdcf5b68d83f7a03f5b902c3bfd0 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 21 Sep 2020 11:38:51 -0500 Subject: [PATCH 185/323] fixed a parameter --- bacterial_genreads_wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 1845db3..46eb54f 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -81,7 +81,7 @@ def analyze(self): def sample(self, coverage_value: int): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, - '-c', str(coverage_value), '--pe', '300', '30'] + '-c', str(coverage_value), '--pe', '500', '50'] gen_reads.main(args) def remove(self): From bcdac56f6b34244ec492b778f78981ac3a6580b2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 21 Sep 2020 14:46:59 -0500 Subject: [PATCH 186/323] Added inputs for paired-ended variables --- bacterial_genreads_wrapper.py | 13 ++++++++----- gen_reads.py | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 4007073..0c470a5 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -79,9 +79,9 @@ def analyze(self): shutil.copy(temp_file, self.file) pathlib.Path.unlink(temp_file) - def sample(self, coverage_value: int): + def sample(self, coverage_value: int, fragment_size: int, fragment_std: int): args = ['-r', str(self.reference), '-R', '101', '-o', self.name, - '-c', str(coverage_value), '--pe', '300', '30'] + '-c', str(coverage_value), '--pe', str(fragment_size), str(fragment_std)] gen_reads.main(args) def remove(self): @@ -154,7 +154,7 @@ def evolve_population(population: list, generation: int) -> list: return new_population -def sample_population(population: list, target_coverage: int): +def sample_population(population: list, target_coverage: int, fragment_size: int, fragment_std: int): """ This will create a fastq based on each member of the population. :param target_coverage: The target coverage value for the sample. @@ -162,7 +162,7 @@ def sample_population(population: list, target_coverage: int): :return: None """ for bacterium in population: - bacterium.sample(target_coverage) + bacterium.sample(target_coverage, fragment_size, fragment_std) def extract_names(reference: str) -> list: @@ -191,11 +191,14 @@ def main(): default=0.5) parser.add_argument('-c', type=int, required=False, default=10, metavar='coverage value', help='Target coverage value for final set of sampled fastqs') + parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(500, 50), + help='Paired-end fragment length mean and std') args = parser.parse_args() (ref_fasta, init_population_size, generations) = (args.r, args.i, args.g) cull_percentage = args.k coverage = args.c + (fragment_size, fragment_std) = args.pe chrom_names = extract_names(ref_fasta) @@ -212,7 +215,7 @@ def main(): population = new_population - sample_population(population, coverage) + sample_population(population, coverage, fragment_size, fragment_std) if __name__ == '__main__': diff --git a/gen_reads.py b/gen_reads.py index 5a02a16..51f38c7 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -123,7 +123,7 @@ def main(raw_args=None): # (cancer, cancer_model, cancer_purity) = (args.cancer, args.cm, args.cp) (cancer, cancer_model, cancer_purity) = (False, None, 0.8) (off_target_scalar, off_target_discard, force_coverage, rescale_qual) = (args.to, args.discard_offtarget, - args.force_coverage, args.rescale_qual) + args.force_coverage, args.rescale_qual) # important flags (save_bam, save_vcf, fasta_instead, gzipped_out, no_fastq) = \ (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) From 6270cc21dedd7d23076192fbec5bcfa0f810c77a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 21 Sep 2020 19:35:31 -0500 Subject: [PATCH 187/323] Added some documentation and made minor changes to the file. --- bacterial_genreads_wrapper.py | 33 +++++++++++++++++++++++++++++---- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 77b0952..d3c9892 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -13,6 +13,12 @@ class Bacterium: def __init__(self, reference: str, name: str, chrom_names: list): + """ + Class Bacterium for keeping track of all the elements of a bacterium for the purposes of this simulation + :param reference: The str representing the location of the reference file + :param name: The name of this particular bacterium. + :param chrom_names: The list of chromosome names from the progenitor bacterium + """ self.reference = pathlib.Path(reference) self.name = name self.chroms = chrom_names @@ -80,21 +86,35 @@ def analyze(self): pathlib.Path.unlink(temp_file) def sample(self, coverage_value: int, fragment_size: int, fragment_std: int): + """ + This function simple runs genreads on the file associated with this bacterium + :param coverage_value: What depth of coverage to sample the reads at. + :param fragment_size: The mean insert size for the resultant fastqs. + :param fragment_std: The standard deviation of the insert size + :return: None + """ args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', str(fragment_size), str(fragment_std)] gen_reads.main(args) def remove(self): - pathlib.Path.unlink(self.file) - + """ + This function simple deletes the file associated with this bacterium, or raises an error if there is a problem + :return: None + """ + try: + pathlib.Path.unlink(self.file) + except FileExistsError: + print('\nThere was a problem deleting a file\n') + raise FileExistsError() def unzip_file(zipped_file: pathlib, unzipped_file: pathlib): """ This unzips a gzipped file, then saves the unzipped file as a new file. :param zipped_file: pathlib object that points to the zipped file :param unzipped_file: pathlib object that points to the unzipped file - :return: + :return: None """ with gzip.open(zipped_file, 'rb') as f_in: with open(unzipped_file, 'wb') as f_out: @@ -142,7 +162,7 @@ def evolve_population(population: list, generation: int) -> list: each member of the population. :param generation: Helps determine the starting point of the numbering system so the bacteria have unique names :param population: A list of fasta files representing the bacteria. - :return: + :return: None """ children_population = population + population names = [] @@ -167,6 +187,11 @@ def sample_population(population: list, target_coverage: int, fragment_size: int def extract_names(reference: str) -> list: + """ + This function attempts to extract the chromosome names from a fasta file + :param reference: The fasta file to analyze + :return: A list of chromosome names + """ ref_names = [] absolute_reference_path = pathlib.Path(reference) with open(absolute_reference_path, 'r') as ref: From 600d01601b92e9896d3e723c0e09b4df69a81a88 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 28 Sep 2020 15:40:22 -0500 Subject: [PATCH 188/323] Update README.md Added list of dependencies --- README.md | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 35fb7ee..5e09213 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,6 @@ To cite this work, please use: > Stephens, Zachary D., Matthew E. Hudson, Liudmila S. Mainzer, Morgan Taschuk, Matthew R. Weber, and Ravishankar K. Iyer. "Simulating next-generation sequencing datasets from empirical mutation and sequencing models." PloS one 11, no. 11 (2016): e0167047. - Table of Contents ================= @@ -42,7 +41,31 @@ Table of Contents ## Requirements * Python 2.7 -* Numpy 1.9.1+ + +* List of Required Packages for each file. The main function is bolded, and the first instance of any package in the table is *italicized*. + +| File | Packages Needed | +| ---- | ------------ | +| **gen_reads** | *sys* \| *copy* \| *random* \| *re* \| *time* \| *bisect* \| *pickle* \| *numpy* \| *argparse* \| *pathlib* \| *SeqIO* | +|bacterial_genreads_wrapper | argparse \| random \| pathlib \| sys \| copy \| *gzip* \| *shutil* | +|vcf_compare_OLD | sys \| copy \| time \| bisect \| re \| numpy \| *optparse* \| *IUPAC* \| *Seq* | +|genSeqErrorModel | gzip \| numpy \| argparse \| sys \| pickle \| *os* \| *matplotlib.pyplot* | +|compute_gc | time \| argparse \| numpy \| pickle \| SeqIO | +|compute_fraglen | pickle \| argparse \| *platform* \| *doctest* \| *pysam* | +|gen_mut_model | os \| re \| pickle \| argparse \| numpy \| SeqIO \| *pandas* | +|plotMutModel | argparse \| sys \| pickle \| bisect \| numpy \| matplotlib.pylot \| *matplotlib.colors* \| *matplotlib.cm* | +|validateBam | sys \| os \| gzip \| *unpack* | +|validateFQ | sys | +|merge_jobs | os \| argparse | +|neat_cigar | re | +|vcf_func | sys \| time \| os \| re \| random | +|ref_func | sys \| time \| os \| pathlib \| random \| Seq \| IUPAC | +|SequenceContainer | random \| copy \| pathlib \| bisect \| pickle \| numpy \| Seq \| IUPAC | +|biopython_modified_bgzf | *zlib* \| *struct* | +|output_file_writer | sys \| os \| re \| gzip \| Seq \| IUPAC \| SeqIO \| pathlib \| \* \| *pack* | +|probability | random \| bisect \| copy \| numpy | +|input_checking | pathlib \| sys | + ## Usage Here's the simplest invocation of genReads using default parameters. This command produces a single ended fastq file with reads of length 101, ploidy 2, coverage 10X, using the default sequencing substitution, GC% bias, and mutation rate models. From f2eb0235af9cded74e9c0b444c23681711e678f4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 5 Oct 2020 11:25:25 -0500 Subject: [PATCH 189/323] Remove Bio.Alphabet references --- bacterial_genreads_wrapper.py | 1 + py/SequenceContainer.py | 9 ++++----- py/output_file_writer.py | 1 - py/ref_func.py | 3 +-- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index d3c9892..07e237b 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -109,6 +109,7 @@ def remove(self): print('\nThere was a problem deleting a file\n') raise FileExistsError() + def unzip_file(zipped_file: pathlib, unzipped_file: pathlib): """ This unzips a gzipped file, then saves the unzipped file as a new file. diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 4456a94..aa19303 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -3,9 +3,9 @@ import pathlib import bisect import pickle +import sys import numpy as np from Bio.Seq import Seq -from Bio.Alphabet import IUPAC from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -99,7 +99,7 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.x = x_offset self.ploidy = ploidy self.read_len = read_len - self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for _ in range(self.ploidy)] + self.sequences = [Seq(str(sequence)).tomutable() for _ in range(self.ploidy)] self.seq_len = len(sequence) self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] @@ -191,7 +191,7 @@ def update_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len self.x = x_offset self.ploidy = ploidy self.read_len = read_len - self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for _ in range(self.ploidy)] + self.sequences = [Seq(str(sequence)).tomutable() for _ in range(self.ploidy)] self.seq_len = len(sequence) self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] @@ -596,8 +596,7 @@ def random_mutations(self): sys.exit(1) else: # alter reference sequence - self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2], - IUPAC.unambiguous_dna).tomutable() + \ + self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2],).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) diff --git a/py/output_file_writer.py b/py/output_file_writer.py index 9300bb6..2d34284 100644 --- a/py/output_file_writer.py +++ b/py/output_file_writer.py @@ -4,7 +4,6 @@ import gzip from struct import pack from Bio.Seq import Seq -from Bio.Alphabet import IUPAC from Bio import SeqIO import gzip from Bio.bgzf import * diff --git a/py/ref_func.py b/py/ref_func.py index f40b697..35fa917 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -4,7 +4,6 @@ import pathlib import random from Bio.Seq import Seq -from Bio.Alphabet import IUPAC OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] @@ -100,7 +99,7 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): # TODO convert to SeqIO containers ref_file.seek(ref_inds_i[1]) my_dat = ''.join(ref_file.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) - my_dat = Seq(my_dat.upper(), IUPAC.unambiguous_dna) + my_dat = Seq(my_dat.upper()) my_dat = my_dat.tomutable() # find N regions From 191a6e58cbbe79b4d028f061027a4eaeac51ecf6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 5 Oct 2020 15:07:09 -0500 Subject: [PATCH 190/323] Change to final sampling in bacterial wrapper (set random mutation rate to zero) --- bacterial_genreads_wrapper.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 07e237b..96408c1 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -93,7 +93,7 @@ def sample(self, coverage_value: int, fragment_size: int, fragment_std: int): :param fragment_std: The standard deviation of the insert size :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, + args = ['-r', str(self.file), '-M', '0', '-R', '101', '-o', self.name, '-c', str(coverage_value), '--pe', str(fragment_size), str(fragment_std)] gen_reads.main(args) From ae34b790ea7a1da760301b5e42e377d5d145b393 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Wed, 7 Oct 2020 14:03:41 -0500 Subject: [PATCH 191/323] updated requirements --- README.md | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 5e09213..6668a5e 100644 --- a/README.md +++ b/README.md @@ -40,31 +40,10 @@ Table of Contents ## Requirements -* Python 2.7 - -* List of Required Packages for each file. The main function is bolded, and the first instance of any package in the table is *italicized*. - -| File | Packages Needed | -| ---- | ------------ | -| **gen_reads** | *sys* \| *copy* \| *random* \| *re* \| *time* \| *bisect* \| *pickle* \| *numpy* \| *argparse* \| *pathlib* \| *SeqIO* | -|bacterial_genreads_wrapper | argparse \| random \| pathlib \| sys \| copy \| *gzip* \| *shutil* | -|vcf_compare_OLD | sys \| copy \| time \| bisect \| re \| numpy \| *optparse* \| *IUPAC* \| *Seq* | -|genSeqErrorModel | gzip \| numpy \| argparse \| sys \| pickle \| *os* \| *matplotlib.pyplot* | -|compute_gc | time \| argparse \| numpy \| pickle \| SeqIO | -|compute_fraglen | pickle \| argparse \| *platform* \| *doctest* \| *pysam* | -|gen_mut_model | os \| re \| pickle \| argparse \| numpy \| SeqIO \| *pandas* | -|plotMutModel | argparse \| sys \| pickle \| bisect \| numpy \| matplotlib.pylot \| *matplotlib.colors* \| *matplotlib.cm* | -|validateBam | sys \| os \| gzip \| *unpack* | -|validateFQ | sys | -|merge_jobs | os \| argparse | -|neat_cigar | re | -|vcf_func | sys \| time \| os \| re \| random | -|ref_func | sys \| time \| os \| pathlib \| random \| Seq \| IUPAC | -|SequenceContainer | random \| copy \| pathlib \| bisect \| pickle \| numpy \| Seq \| IUPAC | -|biopython_modified_bgzf | *zlib* \| *struct* | -|output_file_writer | sys \| os \| re \| gzip \| Seq \| IUPAC \| SeqIO \| pathlib \| \* \| *pack* | -|probability | random \| bisect \| copy \| numpy | -|input_checking | pathlib \| sys | +* Python 3.6+ +* Biopython 1.77+ +* Matplotlib 3.2.2+ +* Numpy 1.19.0+ ## Usage From 9d78ec11c5f692916b164c930c3e8b039651846e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 12 Oct 2020 10:36:17 -0500 Subject: [PATCH 192/323] fixed str concatenation error in print statement in ref_func.py --- py/ref_func.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/py/ref_func.py b/py/ref_func.py index 35fa917..7c64b6b 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -32,10 +32,11 @@ def index_ref(reference_path: str) -> list: # check if the reference file already exists if absolute_reference_location.with_suffix('.fai').is_file(): - print('found index ' + absolute_reference_location.with_suffix('.fai')) + print('found index ' + str(absolute_reference_location.with_suffix('.fai'))) index_filename = absolute_reference_location.with_suffix('.fai') elif absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai').is_file(): - print('found index ' + absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai')) + print('found index ' + + str(absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai'))) index_filename = absolute_reference_location.with_suffix(absolute_reference_location.suffix + '.fai') else: pass From 174f76e87f0fe90fbddc2f2537f7c99c92f5396b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 12:33:03 -0500 Subject: [PATCH 193/323] Removed IUPAC references from Biopython imports --- py/SequenceContainer.py | 6 ++---- py/__pycache__/__init__.cpython-37.pyc | Bin 146 -> 146 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 4837 -> 4769 bytes py/output_file_writer.py | 1 - py/ref_func.py | 4 +--- 5 files changed, 3 insertions(+), 8 deletions(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 89e0154..633c42f 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -5,7 +5,6 @@ import pickle import numpy as np from Bio.Seq import Seq -from Bio.Alphabet import IUPAC from py.probability import DiscreteDistribution, poisson_list, quantize_list from py.neat_cigar import CigarString @@ -50,7 +49,7 @@ def init_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len): self.x = x_offset self.ploidy = ploidy self.read_len = read_len - self.sequences = [Seq(str(sequence), IUPAC.unambiguous_dna).tomutable() for n in range(self.ploidy)] + self.sequences = [Seq(str(sequence)).tomutable() for n in range(self.ploidy)] self.seq_len = len(sequence) self.indel_list = [[] for n in range(self.ploidy)] self.snp_list = [[] for n in range(self.ploidy)] @@ -453,8 +452,7 @@ def random_mutations(self): exit(1) else: # alter reference sequence - self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2], - IUPAC.unambiguous_dna).tomutable() + \ + self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2]).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) diff --git a/py/__pycache__/__init__.cpython-37.pyc b/py/__pycache__/__init__.cpython-37.pyc index d4c91fd49ae6f04e83c9aa419deb0d8ce40a9c4e..693fb8059cd93cd4ba44f2a2db43a537eccac44d 100644 GIT binary patch delta 19 ZcmbQlIEj(liI}91Ya!JBEBhz;+yD;mB9xQ6h!e4@IgFhwvCna!5QW^_nz}R z_uTWlXXcmGekyXtFf;)!wX?VO=aDOsQIfqfl|B)m(w>l$sX;?j*(13SjZl?pFjA;a z!{AdXxhR;?-!S;RNxZ;CtMT#sg#bx$S$di%{DQPLHU-Y?QXz;WxCY<}!LtaDeU*PB zUA}jhv{hH_h4+QFN|m+-kG>(a!>ugGucGQi~fuzuj@vr5v4q?|?^N!(0kqf9NgfpI`wQp-UQ9SA}W>q6abBjpDYzng#2Rw{i_ZE|Fzn)-PGcS?e=D^X9*q z`>~jfe?d{=2nJ;pP}2z_-h_JwB~7JarBAk3pVR@i{(_OR%tr<^=-=wvV3*JV)r0r5Gk_Na;z#n z!sh&0VY5~$SS*SY$!e7xc9egmJ|~Z1z;QmVO_2aUr_Cf&Xz*bYxe8`pV^;Ao{z|T@U$=~Wf`AG@{Wrs>rPDCv-^PydjG?9vRy0LVoK3Sc$U87HO!JqP z*)G{mp;oCcyv>`&!@g`Dd5O(}*Nm|+#ux|@1T3SkQqXo-sos|c>t^`Hvmu022)-cr z^?Op;x@7wzdjSYCqwH}c+=sA$1l`WRXsy+nPQB^y=}2O699zXl;Twuvlc&Cne(pfp~vxLwOT{T>NaN>z3atY$Q)m8!Q( z@-@lHl}l?|we_4_#h1-@;<~;JT=p!&6TBNQPaf>aKSeK5&oigwfGpTCx0m~XPYgV= zlf^V*cF815rq=IzzyJM{#U9Ot&Xj7ips?TK41eSd500%MVE7$P<0tMnXr@x5&24J| Td(g%&Mm+Vsr7cMyk4?b@653LwuOviDN+U{IS}c(3WHyOod+p4w z!7c0Nke-kLS5u)Lijq1VU393-_I?1UtNj0j& zN~3XVfK8`lQLxNkG0=iVg26yN|MYhO{@b(!zYNSKy&piM+uv|g*(j74Cb zOV*u2WvRGYuh!i>bqYDvt5)h>VX15fQ8rd^R&BN)cXr`U*=~5YL)kIL~A`ai?(tHVU%8ErH(go+S`(Knpx&=)9+7nC4GyvRrh%<~^B48VB?xL>8inTUj*f#4#NFy9W2>Fj$;p)~`St2jPImC+ z@-r!2UjScr4q=KHQl+82n!-~I(zOEfiXPB{6Z0tCr~E Date: Wed, 14 Oct 2020 13:13:58 -0500 Subject: [PATCH 194/323] added a function to try to repickle the pickle files --- bacterial_genreads_wrapper.py | 14 +++++++--- .../SequenceContainer.cpython-37.pyc | Bin 32804 -> 32723 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 4175 -> 4175 bytes py/__pycache__/probability.cpython-37.pyc | Bin 4264 -> 4264 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 5682 -> 5784 bytes utilities/repickle.py | 25 ++++++++++++++++++ 6 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 utilities/repickle.py diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 96408c1..e251888 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -195,10 +195,16 @@ def extract_names(reference: str) -> list: """ ref_names = [] absolute_reference_path = pathlib.Path(reference) - with open(absolute_reference_path, 'r') as ref: - for line in ref: - if line.startswith(">"): - ref_names.append(line[1:].rstrip()) + if absolute_reference_path.suffix == '.gz': + with gzip.open(absolute_reference_path, 'rt') as ref: + for line in ref: + if line.startswith(">"): + ref_names.append(line[1:].rstrip()) + else: + with open(absolute_reference_path, 'r') as ref: + for line in ref: + if line.startswith(">"): + ref_names.append(line[1:].rstrip()) if not ref_names: print("Malformed fasta file. Missing properly formatted chromosome names.\n") sys.exit(1) diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 13a3ddedb4daff8f5fb3aac6f7cc131c17b02214..949a42371068e9b5a4e5adf6e2026dc7a7e88722 100644 GIT binary patch delta 8626 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 EAE<_=bN~PV delta 8922 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 diff --git a/py/__pycache__/neat_cigar.cpython-37.pyc b/py/__pycache__/neat_cigar.cpython-37.pyc index 48c18cd8a3092324e0c422fa9073dc049fce5830..1d9329700f767335f219708097173a3aa77ba761 100644 GIT binary patch delta 104 zcmX@Fa9)AiiILINEbxtO}6JdCZ!2t pYJmuC5Wxu|gg}J;WO@EBM%~G)__Y}gCST)MWzz?%n#?HR2LOQp6&(No delta 104 zcmX@Fa9)AiiI44iwK;|T78AD-P)(63 zh_IZTCm_B#fh&~B-VVf<01<3JLX#zmJv+WAF%PKA0VHS-B%;{Mp+X!WCCm^RN07AB s#9xq?L8Cg0`{5<8jQ z3WL_oAq5VID%D685*4z!@ie2gHu{-+%u9 zpKt!xjQ!d6_XblV$)ri(d1KexrC&DPNag7D8&B+6RQSW8-qMOOu5q2mxG}93jiZFe zxp|FnbBPt>uIVOt;uhl;PhL}t7VqXZcdpT5lK1c~o(3+(Gdz2Z6m3q&Nul>w+-|Hu zLuK4um?&r=Js8qMAw3$>iIAQV3aA%_3RGxFbRZYuU41BU2jKNAATB9VPKqqTW}$Mp zK0Q`YLZeiwmFL`2DKtx^xjMfxi@a4TEnF$jb~GOmfdCPC@cf~nvu8Y4cxNxyy-OAO zmNu9c2B^`*V?Yclj2nMELpRC+dSG$NSGndJ0c*v$+NMjimn>0A9?qLeZ3Ov%U5<0L zm$Ye1X%q3`+Nw3pKi95F0f9`DrW!yUX5!0KjQS?<`VwnujjJ-Gnav4qv}rTuTS1Jo zJnY{zB0e7Rao>_D)|bo$3C?ztW+G5qNjb#UC zNz)GOW$N9;6+tpc1y;*x6Td64muQXzMg=0Kq;>O8%e@#8TB7cN-+ZZpg zFl-%eMHu%QB1jx2=PpB8l02CwtxS+YBq*$&M+&yk01Rg{6mY+24Ec6P-mzI?us++g z{A{b+?`czvWSBq|Ta%;)s3SbJ1`FaT5Z_;M!UiXpn1Y!R1+U|*aVK)=(wa;1h|#CL z(AeYKvTAG@f4T$w2=1RC9b3V5BHUYzeGyXs8q!K|$$zb73%>l`*s|dsXPp#R*ffQ7 zq=!lEYU6?r{R+kEi?7qHz=ovmkN48FoQ!YI{0xl>60n6Bc?M!|g}AsWySl@r##!r$?xJ%(Jq-VpD?gFLn5+r$Q;mj!9?tquDMI!gKS#1 z&CIsE=*7u8BsnB`B%6VRvEwI?2vHYeJ&HES`)1EbKeBj{h1!+*c~^vSzdm=xFJG8- zLrs)x)2?_DwdTneONWk~E}cAmSUipb-EH`8jf=hVrNm?U0KydHY~p!s8*1gJi9FpY z?U)^#gNww(9v8>vQw_?#kcnXBRPT zA$?6e3*WJV6SBG&s`F+4Qm9wGN_E!lq%lgK23JaTUPSrA1c)t2qPPzthglLQfQ0Id z`??ouuZgPfiawAOY%z)o2)$B*i^da2VOmVc51dWe?ZApbRI}5^Lkmqj`K`0bc{Bn^ zyK?js`B>Lpdj9rASDH~rPG@#+TMe?n#2A7-x)5b2f&3`H&P*--Z}XpEN%Rw^lZir1 ztObdIhgxN}UiLe!pv+Zk;tWU&cG0ZXpt#f3dd(A)AS&u}ua_>@FBJ6}e!QNd;n)3= zSAD}3MbL}0NM4j*W@ompy4LBG?)kFtt3E(syF5g_C&#*!ZJ!2gM;!^H?Hk08M-I4Vu3VoM0Tq@&^qy!i#9|D$;#zoMTBW4QCD UK{`F%N#;;XNvX~;bKD&G8&%;H^8f$< delta 2298 zcma)8No*Tc7@qfL@pxuDwqrX>LrI&Gwx$c+=o)oN+jK#6Nm5d*LhAHQQpbs%JWr?# zGtD98R#hnvp^ElkOBE6q4pibut5!mA0CDI6O<8(E0tt|M;J}IhAE!xy9`NY>^S|%^ z-@m_+udn-bt=$ug84~;+P4x|Z*Ky5mC0DMk+CC#Oc|0 zBFz#aJ=ytksT+BZj_FKkk?N!-*Cl@a$%#dL@!TTj%cGL7crufV(K*7q-6-(dEcMmu zB~Lvdz44Z>dD?4CW|4Pkn^ZHHUMGIUHN6Of{VehIkdKCZG~|ttH$2@lmPo#d?`Daa zMHw8}p2_GoM3tH){-Euzel{q1YAsfmASI<=g0L-24+5cKAQqGT7%ZEazFz&nvubu- z^5b57j#RFo6))!5fX3^Rn-GI?NBj4lJ)h3K|H!Y&nQfry+g_Z}MoxaLl<;&n;l*bO zqpcD|r_Yh8GZ2^6hznw}YsuR`$QuZ061KWqoKz2!sQ6IrBD(lOT}g7{H?>FkSmJBM zQD|2XEtHs39pcW24Xv!40U~KSHDsOW#Gs07lO|%3G-)LXst_Z55Wz<$Hmpuq3I%PV z;3HGmYvg(0ZNTsidbFA7u=qN#-+K;c2Y+@Fhz@H%tjZ_iYwgC2YmddDt-7bz5|F>n zs2_!8K>N+=RX6E2dHO7wCD8Iqz6CwA+9YNaY2{}R`?josxT#_!+!>4(DSzx)e$+FV z1~oH0t6_s_tx}PK)?Ux7rM)OTM#~y$gw~<0Q};lf78MY8KP8@*Vn9>(gsr!y9#pw! zLNH^{su+vG=w-w=`qBvDpI3LfNpV)syxv@Eaa-#IL+h5HWw!>U5^CG1?b+xLPzLCa zFibG6EDnKD&S0mvNsx?&yXxK0)A@gR>QIkWw}YR@`ilOo&$Rm|pvUIzCPKTl>h91| z=c1)X6#t5ePF2PE=!#Ph7;ThngpLx>Y3i0rm#V{VGQ`6?U?lZf8R~Epnqpzm=VT6} zT1zw9u!?y#YFp|=Ts(>{PyGtR3;euB3UX}{X`?H98ofYu(q1C0jy!c5G$XaP#`T+% zD<8RprE5#Xu(6R?;(cS4Zo&`+5|4}fMwhk`Hhh!#-Pk&_8QB<+w`1>Y*tvf5h`(%g z#W|PFw(}+wH6uwONh4_o5=4$1KgfBR^A?0!5mG9SQw)@`a-kF`+{rWk9Lgxl)al7d zhjSVDTztBepBOHTPM4=EL#&kFl#9CMiD@@KJnjT4&zD9W-ie2d(YclZSCDjpCC z?xRA|)F2dYA>Psi+~iJ@5ce%cdT+0e&C-kodK|AkCrGe-P`tbGJ*4No#QF^jPO>zh z>o@R&C|>|Mdj8Ak9xqhfbLEN2-FL*Bi7ipAbwDogm&A=k+v%{fVLjD~%L|i@ieavN zDUvY7UC3cUcrTDZDLNM`fqH=#Tqls>ST@f0q5!fS8G_GMh3^wqvMaR`kE}uo?K_e) zLE0}4CYNQO5oeGZb=;x+_&62`)@Y$zs@xJ+lRL=Z?Jtu}l$hdSYTJto*<~p|gyx@N ziyuapqC0(d=6|a{gd-Ik6iph)M)+dJScO0x887GE#t6t0g%UpoXf~cR3Z*Bp@{<7N zw26yDW98wTR>D_Bv}a6n00jILk^^F6rnqt;rm#UlW-`y+f(!XRo%&beUgqVQ9J-+c zy;;(mO*RHSybnjwT6iC}0GEsO6w2%2FF`ozISY6D#wX9`haEQ@c;1crdywG#1qzNt i_@NIQ$_G(`zMdK$jFR%TVyt<2j9794SC27Zbo~vxPY?tE diff --git a/utilities/repickle.py b/utilities/repickle.py new file mode 100644 index 0000000..44c7929 --- /dev/null +++ b/utilities/repickle.py @@ -0,0 +1,25 @@ +import sys +import os +import pathlib +import glob +try: + import cPickle as pickle +finally: + import pickle + + +def main(): + dir_to_repickle = pathlib.Path(sys.argv[1]) + + if not dir_to_repickle.is_dir(): + print("Input is not a directory.") + sys.exit(1) + + os.chdir(dir_to_repickle) + for file in glob.glob("*.p"): + data = pickle.load(open(file, 'rb'), encoding="bytes") + pickle.dump(data, open(file, "wb"), pickle.HIGHEST_PROTOCOL) + + +if __name__ == "__main__": + main() From a9c59e55c6d8f4ed938bd31994c6fea99b8013ae Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 13:17:14 -0500 Subject: [PATCH 195/323] fixed bug in repickle --- utilities/repickle.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/utilities/repickle.py b/utilities/repickle.py index 44c7929..f845a50 100644 --- a/utilities/repickle.py +++ b/utilities/repickle.py @@ -2,10 +2,7 @@ import os import pathlib import glob -try: - import cPickle as pickle -finally: - import pickle +import pickle def main(): From 2d764ce40cc08218d4559addd7e23fb82c2b522f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 13:18:42 -0500 Subject: [PATCH 196/323] fixed bug in repickle --- utilities/repickle.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/utilities/repickle.py b/utilities/repickle.py index 44c7929..f845a50 100644 --- a/utilities/repickle.py +++ b/utilities/repickle.py @@ -2,10 +2,7 @@ import os import pathlib import glob -try: - import cPickle as pickle -finally: - import pickle +import pickle def main(): From d5fe9c0e3b61908e1cdd2080444ff54052bab0aa Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 13:19:52 -0500 Subject: [PATCH 197/323] Repickled files --- models/MutModel_BRCA_US_ICGC.p | Bin 404224 -> 193920 bytes models/MutModel_CLLE-ES_ICGC.p | Bin 2003913 -> 950391 bytes models/MutModel_SKCM-US_ICGC.p | Bin 993782 -> 458729 bytes models/errorModel_pacbio_toy.p | Bin 776 -> 426 bytes models/errorModel_toy.p | Bin 7791940 -> 3282719 bytes models/fraglenModel_toy.p | Bin 23396 -> 8991 bytes models/gcBias_toy.p | Bin 1355 -> 585 bytes models/gcBias_uniform.p | Bin 569 -> 585 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/models/MutModel_BRCA_US_ICGC.p b/models/MutModel_BRCA_US_ICGC.p index 0450b94f8c0b1f9678924fbf151aadf47299769f..0f946fc869afe09b2adbb7b041ae3782af69ea69 100644 GIT binary patch literal 193920 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%0Dc!0_td>(IBnK7J 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 A-~a#s literal 404224 zcmagHO^-fHZsoV{FVfoB_}BYWOF^)EY9R@jmJQEJ7}&sgF$=-=_lJLn=P-hq6;)Fg z=*!y=lNrIcV33T+fB3)tAhV z7t*I+0@CLk)YB`JKl*=PMEGStV?OGc;!8OCQZsp4e1CoV6UM(jc~X|mvnKr1%zt`+ zetRy?0ljbLzPvnM-=E(4f9shR2O@nenLcg|Xo)<%zj;Pzz}xdx@=q<3r}xLBegf(7 zSrS|d^t6QX{`uNN{CwNeeMUr+Ph!*a64J+?r|=(WKP1(BUPAi#^N1vY_C$)(64J-> zMW+=~CGS={l$Vyl%SVjn z3&>`?IQP;rc=-gY1oiUyuyZofR5#$7NXrD&S5E}!=B8d+Cj9hawFI*6nevs7@5RU# z(d(c0Pg8#V^T9t$xv*U^prwSByn5I`b8g#}lv~k5uPvq57u-nARnWG9^5HF{S47lE zpVG4V%=nH6i485?~{=gku8-XUMjsq+hmz?)b;mRN{&KAPJ5^He>(bcqFj`eqqF0Sam%SFFYV zB*w)Xd_;Z%hhRi+3F7rF@#`1Uew~YL>DI>*1;2L8A#iX-^p+@~*1q&m}!@JD3NwW!Gab#of;>zUSxGaYD|q%X)e6VmSP{MfUvCM$IO`F+tHJ z6b5e#?73`O-VwY~o%q@VM?SXzJrFfGdy66o?~|}<`MSc}LVN$S=)Dsm-0-%{ z-jh9n-uwFyF23>GCYTj+vF?4j^f$nvvzMoc&Na;~!gsPIu^hmg2%okHKVp6i>*Hgt z$|v$$pe(*k9&oG#HHmMuGsu(We=e8vHTO@5R#lYS*`VEqW8A< z&p$JbRd`!UpU)j$U=q{Y3vZEr3SEfsJsDH7pI zF+6=dzje$8XsJ*8TWJP%vTqLQz6uP>5ps2-@{VH(q@#IlgGJ;5$ahg8h z-J`y(^^AzQH@pIe`qX%rsj)TdEV96XR}5H5i6`FL3=nu{z_K-dbR@&X00+VHyel`s zugRJV@o9SA8sU-=S)LAy1rCCRwrK$ZB8g5I8qmh1cS%A2;4Nwzc@Ad)YJ=I6{n* zSXO@H`OizXV$2KhHvg61(2vQg3A{MotHo6avl1SpC0^nf1>Q0l>~6EhD3g&@U!b(K z#a{Ziavp3sN_o_e%{cqBCRliFaNs?>2Z90bkGV+Iin4MZs^-LX7dTu_ z5nK`@L`g!I4eup8U)zS2_IPI1aT4oGppDcPQ9N9E4}N{?5{STI!gk0j)d41ZU27HK z-0D~Gv~nHK+Af7Vfb!wZose9DAbpRN&kI>pG9-*|pz zuUqy5;!E*96id<+EgUiOW5;6!4wXJw^kZ2TD`K`-&jN26{aA8R)}~f0h5`7UtIM`X zlQ#lE{Mecb=$wT`dm8T&;0wOB=0+9p&*!Wr)o_=@ z@H-Crzyln7E4(E!>OaY`q8gXl@@W`Ld?a|KUd>g5`HDy zQ1YRZf;eDjQmW$pXNeT&l_*ISp_%GZ*o6_U7ZXv&$Y1Shnj?j`WcZ2?i0KL(k!;~D z3BFSDZh9bIErzV-dhhE;y8^b{v(8rZmc-;&yiK8Xgt%o(y6~33aQjXhREx<>o)+E` z5UXhR4bbx@esBFK>aX!Jrk*e0O}AJ71DgwZjn)dv3a~LN)n8M2ki@#mcqKHRS-Vq42gIs3URm!-Xy{i<0^R@) ze_7i9yrn`?3Mzi{r8H3#S4smiUGy$+aM3Po-zAbq*M1WWJW7Fy7mX6My6Yvn|-V;{=59%tcN1yTQB`w+oK|yA6SS$u>bVrI>9zdSOav7z{Cl zX1?F+## z=z)5SMWQNf3{{$M#Ls7U1kkKBn`H;<1_Z4@-daf$}qL*eHL0_+26 z$D4`J5`c3RL9A66fvO2=sBbw{w^A69PNIwiXxLA2WJ{F3zXb0<68w~?lNCh|w-yx^ zG+taRaCX9otbz6OmsDU{c)20xCye>{<9f*#3xsr}UwvYh^AmZFh)LKy7ca4u&UF?7SCftdNDbWkh#hw)8-=QAK#pK-7ERDU=r*zXXkCukb1&2;N6xFA5EFqh5I1 zst7Q$0e{E3YNVd;DR_1UqUcNPW%FNxh82`HI|E@vwh=YVuMeP!Si0gIL@?hIb+FNz z8z48sKD+fIs69K%g67ATlCu!TBQUO4ei24{TbkKjn*Sn>5sV6y?_$doO_ zkA!o7;dR7oTieBSrzk@I5f`QW*Bx&QkytL9B|(FCwWc^hQ3Np-*L1#sM!;*I=k|*r zb{hoFXzopGgxfc=m$6sE8|AsWMAYCW}??}S7!)o)lYr@)?eQDc^E zxyd4^4}#2~y0x_jS`u)dMNqM4TdW#=B3-2*#boR{#(aeQ6I5O`Ih7iS_GlcpqdgM9IH>)(?#wBqdqiB!{5KOX!7(B{SPu!Zhj-B<=s%`LY^iXv;m2EgnP( z5bSe=IoFSCgj<~ytj+Vu&SUfBW7Z9hPY$`#tk8XS0sGN*{K5LRgtf05E0G$2I4`O?ckr0Q_7(miM+!<09cJvca z!)&FyY-8Bc)RRNXLf?a(dw+_!#Ek2IEs-H*p3KgpQik<<>)D%Bd9WH(Ppea;xMsMdA5ZZyc6S z!;;iO!W6h4tW3s>vn`(11N+Xj0Pkw=bW1Ql61GDW@UEiHw-}Xbgd=zI6M(}@)kud9 zU=^+R0>2R*LjR(9620*=GcV?uHKnp z=qKikq>h4M@djNf@cxc%==}Ve)?R@#o+#dIslx7NQ3EB-J5Yr=^E+gxvK1yHLgb~{)$4C-z(+keWXeKs!=~^-Xg9n=VQ$k@aWlD; z0&glclR7U#Fnm^_$Z-mf#3OK7wHK!pp z{p_V&56vLBRC?rZ_?>-XCdJlqtQJNcVxzRRP-&GLJS~$NSsaQ~q+mmp{pC<%PirJ{ z@U=+}s76)0@3vG;Yb0`>X-8i5NyIy-dH~yR5{1_8Rw^d&reY&|LxPchArBRB60O%u zR+ZR&(E(-pM!twrJhc}W(06L`CG8@G)dz@QDwEk$I@z#OHAP#8dTjiHh7YZ=lq`&= zLo+pKZC!>WgqLO!jRLgnc?I3*rCFr#UUKmGi+by9Zn3!19#WX>;Swbh3J<ILjVx(4gLYrmlAm-8z; zY&a{Lpqpu?dqm?v%-Nku;CB|6<1;N_8mBmDt-3ay*K=EBq>hu|0GiKLfR;`Y4dj)|sBIZ& z)-_JszFZTJ+GFIGH>DFOT!cTYsNs(5)O+Fyw4;rUO#iwfQ49i6?&BCptmIS1YMmo zN#jM2U$g81&BeUvZO{4kr_EK+m~i23Gb9I@J-MLai3)F<9r@gtE0A*)@e@?>=3hNm z;fLpiKeG~Zv}A4ssy0nYW6#WGTC|5VGIMiN6t~^It5K&MjG!B*(mWzbQa_OQfu5kN zBjU8|dM}Ea?h!#Z4&*is(fe?t5cC8ME!FtaJW_bD(e}+W=2}s{_ch07jQNqoCWnIb zNUu@{4?-xgMy$}+%P!D#3^kH1Gmcqi^#t+;sAQ&Kj-JIuk6<94OwgSJTS9E*QaTZI z=lqrsM|f9m`O+>f4@C88z4(dDb9g22woN4h8;p>Jz6J)4fyR zZ8~WxDa=_J;4n)oH&o1kGF z=AP}m&$lPd$1Omz%V{}LqWRg&%izuyAwRG4FMv~s@)6@t*%|8XTLQ$xz55q#sJg^6m2{+?o5QcRP2cvOXg_$(F` z-_n#4)V^+j7KHnK0~q;uy$Yh4(|gWi`}LmFwmO3Ab?^&t?svq}G^W(+QIm8fD;%Ej zqV_O!T<`bm8l$`)@NV=uV-unr!|_OkIRcm>no~ALWfR#%*(HuxL9frb8e1Bf65bW5f=woRQFoO_M%%@1Ht_3y0A15?hQV>qQ<}yZ zc8<_)4(HTOjYhYNWR5y3R<9eFLu&loMJGVFOc+yD77jUVZcqcr%{VFt%=oxQn$tJ+ z{tuc$Vw-?d!6f(b=O>38g`TwvPy=u77#{eDUwopDL^qnRwsnMy%B+5iQXPFX$5smyE&Y;7I`j_u8H zRiD`vHCx3Z0EZ`MRlEGv=!Sjjd_f!upfzr*d5+_htUf8;#X0F#t787Z9Og;UqO0(L zclqZUlF($~j%e6~4DV3mln^V4_DT|shBfX3vbK)X!X<9!OA3RILlYbhtZ+@LyZ^%uVZHt5?cClvQ4awotB08YW?h4GE+Nk$Z7p;JsTq4jNZwrq!d>9NQe;K_x zh>u^F_z1TW=>W}jumUeU{lqgXqihm$1-b?N z-0`#Nb)AmH!IOQ78G73_$=y>2MQ=-t`dpGdK+?pf=NE60Q4jGJ=1b5p+9J3`^xzbX z0|G&tr8>%?scaz;FK5>;Xw13rwvfo^rW7n_Q>+p?YwY3;2iTns{}MD1i{LgZhPO5i zfZif6gC^u%6!CDmm`V4w(N(+oBbv^36u)T#SkWioZDYg@IGZNf%3i>AP;M;X#UZCV zLX_UotSj=^1NG`D%T==b884w5sGkJ9nF_L4E0<)MrCQ*SY^i{=9T^V!&|-nI9hYUt zs9R=i`1hr_fJ3_01D~!jSrR$jo+t1=)*(2$2Q;ZlQveRCTK9-J_OzarY78pv5;emu zV<$B7`uCTVC%8_moZGU25{Oe83)jmiDGhGmxp@|+G#Zn_Wxt;kqCmgDc;%FaQE^bc zi3A)eHSTG>{?#Oh?6~%|cfWvhb5ah>ogjG$JD!Y(sBnY~)!>WnZr16(#8Lyczm#bQ z>&hQH$6=~m#MB{x!0S?m`46JHKG^)Ah%#-inCu)!h<@bIHSeccYQMiY=NyMIb;Db< zT;NS}oZ<*3$)ft1*a5v6mL#6K)gzdgbFJXzOj?N zk6KWMAMu>FSJdyF3sW24(DBpa=nRKn!ZnC%R|_~^Qghsnl4vIvCoAxwq3Nca&TyD0 z2MueTVdOfAH5hj*`jr@+@$i$6mvwozz#*KPvr`_8>hsmSgnO56wHf%a)rjqB`!#_> z;Y#D3@(59Wtl_Fn%J-K{3v|k(QJ3@9(X*{_r0`J>AKhtGf=lZ$Wnf4B+pkoPqqa(K zY?Zh=jM7Lhb_5t1nnU9l7l>(|^$@-*ZxJ*k>G70Z8Ih3KW=+L(?vxABiHt&AO~F*g zbG9|^$e0yk7*idRHA5=a^NKJdmM{vDmd2!?)ZDn4R+$LwcFjgVn`b~0S-Zlr6Q?Yi zV%9ql$JT?M@TqMjYUeNfSRZX5oWx;l`d(|CuP99V>P+?vXw=S2Bi;T{c*J|2IdR;p z_21k&Y;D+;teGN<4p2#rZSB;F_W5U4ZZXo5n)V7oL*DZt!BR(OHENt-i|;Img8oO( zZ5fk}&YdtU<(IY@Vj8_-OPSw4dd&lzDd!TOn?!0fPwbJqcU9oc{$JPd0k%kLUjb$ zI=Qmu*?Ag>*qS#-oMG9RHKcmS%-)^mtR;OZ{h9@}-Y(RwPWbr!5~EgN)TlXGEgobGVYg70;Et4qnhOMkI<}x^ zVP4drqGc;775FtCVy2gA8#QTXZPq(&M>V|JqjZfTy<2c1XFplas-B$7$Vo)*Tv<=X zp=zEZH)7Z8>`kLm`fiy}kXsY8i93I@P`9C88nvas&fqjAml-$FnK#89Uj9m$?qFF@ zc6E}Vd-zTyL`byrWA)057UX72G3#yoCKDD7=h~|EPD46@nM_3IRClhsP&(V4%}YdQWi# za4S0{`|Dr5bNB{==-zn%PTw$XBJZ@_tP6pgA z*=k)eD-y;YZ{g$a4-+{3 zadI;qIj=WwOaVO6;E&@N_!6y-@6H(2Q)DpOlG#-5XzrRSb}JZ{kZOc}j^4FeAL%_! z)9&_(bjxi-qUBO5n0eV|Uj=RTa_>yNfaNs49BAx^jtcGkQa_hIDW01<1z8ty=o%P5 zC&46W3oZ;U!G$8RQfVu=&q=s?_ua=R0Ix7UEtSQ}m5qh+KDj4aGNN zc}yd+mk34lzC;ygu-8*Llu}dYobp^}WXbByJXUFdGfs_|P#45$Fr`yYI2rLJhxfPw z<8t@OX?bw=sh(5YibElFt;`un7oB`EB6eMz_@XCkp7W_8JNINnTAzYQ8D%i9hV0an z5lMWQdF09@jW&ZaEN7mA*ymaG(UCDm0-y_@YslLmNkGH{=Tu3*;H2H|vhn-qO0+v8 zKEAAi^@44mq^puU1DYCJdg7a8ilUCH+K>fpmwVIfid1PWSsMGsr*<6I1I05?p_*fYh8EdBJ4IC_iB6L{0-B|t8;>fCb5o9=)7j+m21Kb-Pj5mg zwRMY*pY!DjI0x>QpDA$*VLN4gXwS>1pg9Gpk^6IsqKZ9FQn;x@$;%zh8bbNBeNhJA`1>?zCYs>Jq ztO><(feYCgz%jfk;nJVIG?dQ4zVTJyW#umRZ08IqH*7O@Knb87z+r>PVYU4dT?JVJ zBgo4dJ#wkK%5jH-Y+tR>G!wqf>Vd_zjhPSkxK7J>1deH*cb+(yb9W*VU-6?hI0%{_<&w^1;q^1(nlw_SR~Hma;W7jXK0hL=ej& zVaiveHtK0HLd1)iBCf)wzOgv7x9N% zKvQbPULScfgUDdousHHOt1HDKo0TXMLZrD7XwIwfY*U5DQLF4cfQF!K7ETxW&3u^7 zR>9U|=w!{s$)Um{;>-Rnm$|l@8*$5r){o>b1q~(F5S<7zL5|v+iMlkk*i@3_s)xd~ z;b=1SetBSm=1Nw0Hj~10J0GgStz(njCuuqdR3qVggW0A5*+Oe1wKDn$lkuqEdc>^q z7u~yNgDa|apO2rTJe%jJ&Tcg@=eE%FB|<9!&L ziNb;OK#NR9@Zr9m8X$YCBo}~YG_9F%{l%ilNh0Zr*7$Df|Iz+Aa5kRnNR?YpHO1>l zwg?e)_BvYEhd~}z0&cMwFX#(cu}r&453D9&mnRkB*IY>mG&3%Rx9yBeSF;TU8p>Jw zWm+`%i>XOjw&?mymx!P{dy2)%6E|eVKfd& zv7_5j1-h6P9!EbiK%g1A7QHPZ-Am#33L0ix%91>cSjf*|4bW`bIxJ$8d&fX>+71f2 zWOj=vX&BS*B?i11qkAA*MjU4CVj0jFvHS-Lzu(Mm!FI(X!fWj-XUIl>V=85*-@hK% z&QL#5Ox~r&NaSj#Nf*?x=-OJ7{oMo~<<>Xt9V`81Vv0GLT5>QoVs067Kt|j9ZM9(a*eqak5f;!E zJy!9ew?&AY`-1@jofq1gn}mzr%+GzWxWLk+fw{%T&$+Q&55cajljU-ga|uyyVlJHo zmCK4ZY7KN7Sp94hF0kB^Uw_huq+Rlkv@mEm6%fTl*h60a>XloT!gfGc4~~o%=c-GU zl8VV&@<|sV-|q}$?OUSZ=UTWhn*zs7G=OAZOcUQ}ZK{v7-_$ATm%`+CuRQE}0Eci+ z+(|yhPomlO3cM>{=QCeVs+a^#KiM6~Jn7f_$zqOMgKB*sd%H@NfYX#~%0tZb+;vq< z;FxlGNVfu+C|_`pNs5mG%RK#ln{QGvHCA#`E>jElVwkl=CHrDj(&h-J$N~=AtZ60T zVpIZ>Mg<&PFRID01hp?lsaAtw6XHOUEXL#t!YDeq=eg>Rd$Dv!md=Q?Dcg!gUtu?0 za?OV`DG_C%4inX_3ic1WOk<{63Um8Xoq+4cMS)|Eg*imWEh62vB=Dx!Nv6~kDF?-y zQck%y+TxP;l)&q|w*-#2o5S0q>gK>!WWed83pFW}dOr(lw{Qp?N_MiAz^xvDhG?TR_J!DCYFcO5!DVVSf0t|m3* zMh~f%RxrhfHB@0HA>y~Ae?6(krLNSz@r)FMz3e~2>k0(RlCvKWg?)o_A?Y14e5ueCv;5zeAEC3uDA!d!-3XSch1ceDW7J$N(Tq|w# zAZD86c&y8?UbqdZst~X zpCgl+wh_7cGG@q8{NX-*Su~12P*;3MWBc$Jdbe{WA(^gtmeO?CT9s;ncHfKbk;0=o z=}n{Rlye!Vu-nOzh3FyDU%)@@qAua1{-dV0<)pC4;sh$+7B5_QTTHA%*~e-<8rpGK zj~K_287oUBAZU+E`)NKCHt^QvK2-Iu+X0GH8;?;qEYN-OV;n_qi%eylQYP}0HNh4| z;g#nrzOCkNu7Bse>92gF^J9&J0#>$Bf{ODNpf(T>r$+n&LY@qSh-dgUNrJn(7e#gF zS|tSCIkhFmvY8DQkQmi7Gr=t~l^HBrL05BOAG2Rfr-~OX@NOF%?sHvu)HDhj$Xguye_+XI6D&5e5mA0 zH;E4B=>F^RPpO}?BmG=9QhIKP(_`6E(zj(i7C{5CCby-;g5ialR7M3iEv3TSLgGF~ zvyu!2e_NU|aG1Ba&*G6zDs`!k~!s8y9+&9Xmj~&2R zR8A)DWJ&RkGl1mYG$5WN-E}iw_pAi7vw2_w*0`46Bg-&GL!{$jvyxmI%Ze`*)Q4s+ z9oE|chvD4X`4k?J(;DyK)*j1}`_cIZ>*i@0u^UH6?JMmV&r<#i*qDdP5*^ zi1ZpNRQCnU+T$Uoo2--iK<>`cxs$wutd|#bFfZ4{o@C`_mVT0Jr!6ZQ{qEZpI5vj! zwk|H<120o`jxX6hRSoF9_zN5&DQ-Ev;_(o9?+)F29*8R`_HZZ;tSu4XO?RA52~FP~ zC4J<6w9%_pR_`{J#_VtFftg6n`lwKWroi!f4xHLc>b`UHaI3DfCn1{S6?#3%m$ z{pLSq;?Ab@lU=*v$;-7a?sO#CIR`}Zl_km9mgx~{?9QMx-SA5l-WADjrXXDgI zJ%nZ1Me-4jn}hTbsKO%S+8zmLXpXqx=90qW+)~#Uf$n%^G{MWMV=9+)Vr>WKIh8ML z#B5wa^nPk9h|?X$(^cc8bbRl1Z0}E9pd@glt@RxHj%0ha71@F-HaYQOJZ{>BJj~@* z?zwF^xg4iG@?0lEndV%-#W*KDj7L|H9VZ{(oJofx{c?tWPCHqT3uur3-ZJj_lq<}0 z?QRLLr?;(f)q2->NvVN1t1gAN1fc7Z%d2>O80H6q`2Q(Ue#S8elcHvGl%*2 ztn3+a%Z$2Y+VOy9iQkCZ2qBxb5NKK}P02ONEj18gCxV953U5nE5w`VRH)w5rIohjJ z9uTBlhT1wb5;V9_>f;QD5h;{;6{5nXC#IO3-6%Z5fDjZk2x`F2Z5U74A5r;YNt^69 z3*0&q%mk@mUcT@i%xzrU0pwr`%p88%&dvD`Q)J_8Qvm%QoVr^ic%}IoBPq_o{JeRK zi49W{r-H^xTC?6_BF5EMvo&pjw^RhFj%617oTfct*2|mYe!KG^HBJy}tufWh`76EO ziI9aE7V*&iU^XHi?`L_oM$sml)Z6B!lOdr=O2um)1s~k`){P3Uoef#2oi_#bzWz8L zvM}vLm_FOatf(ZJ&OAMl-(yA~`~G#o&SvrSi@dcMSIkq6rT?#fc^@jzU zlMCZXn)|~KmAr?HX>Yy!)kKCQxhX2E4Q15JMFoX9BuTK*HV=3!>(hicM#JtZY$Rpy zjg3Q&6!jE(Nsj~$*=SW{ef?leH@WnkjD%T zoj@4PdWs}k@lYwU@vfS838+RyBGBRi7^+g5>vTt>S*OSpZc`v~D%m)@;Te*(jJ$z1 z#mYz%A+6!zUK$bTW(iJZ6hY3o#1RVG@2(!PPbV^rNE?bJzzC-L)LeWJ$A~m4S<%?` z&ZFP960LiPZRsDN& zBTByLQx-^TvY_E(&HpkZzd+3sWkqnqdl`@Uj>CvtSZjNs-Sh5JoaHDy@|s3L%N+7eU#U-HV{@UKGJ` z`flT~Su_u6g`Hg`=C)HEHD^M5Z)-WgTRY5FkfOK^i))h7HxD$u#wFKBzpI{es>Afj zQ^XI`<}eiSWROmE)N{G|8GR8n^rh(6!eu;S5zmynb8j&%9e0Z(1hfk;TWKqcIpTX^ zLa}`f&)iMWy&a90RT#Vx_Z==wqz7>fq??avxx8%=Y2I9T#JJH3L3ajh!y;^r#}iaq zxvjvNj2bS-2IKYx4IL9hoylmt#QtsoTOOnEwp9_XdD1NWqPFmA8Syz66J(J|XaH2Y z5Y89HEh09s$vq3Y&BWKam>?^^RSK1#KKD?0VC%X$%7N=VXPcO+?tTu_r^+5YH1-xd z_+*Rm&`f&)&h3>0vTrT7;?FY|9_6Cd^#M5YiDkC5knH$~g|t}7z7OywC1)-|lU-?J z0^an)sS9JWT6f(F@V@pqc@az$xttVR87b$MX{{E{Ul^4Fm|lr_vg)Oc(o!w)JAn~Y zHf1#tQ1wZhP4%?4`us~jnHCv6iQCyvN^_jj2qxbK%*b{5^zgLBVrMlPRRvOyoKi~( zdK*k#tKz`+Nr5db9GpBi>6G}#G@Y?1B&vya%m{8wF%hEE6+!IS{m*b3*R;CNEOQ35 zG(%%Ray{s=8Rekd<*#_}G=@jsi4pE39231f!+(gIPHEIr2&q;ULXgWopwMhi8WJm7 zX`O(v5|yermr>N#c{qR}LAzaNGK`maki~o^n@rB`PH!cv;KAXFIpdD(y;?%?i-j=7@6FoLT!~GuAg$KQ&>5be2pUf}N zRQ~3Z7qvp=cu39ViN6MDWW|M!Q3KcQA<%;(3p}Z@AOB;*{5H? zoV_ZUyz?E6>ZnScJ@$dc(b{k_r7b3%AGW~?8uC?;3Fej(@pAJXXb&{}971~QN-mGg zfH^Z7GGYxXLJU)UU(teTI=hhxmAlnOf!fc0d9~EZxh|im`9wv4HfBf;5wY;+<(Gv& zh(ki0Zf%MVm$F+ji`?VkQIZ|@s=(cYqvFt`+-61HBDtc~Ol6gibtKVIioA|Ylbo9Y zko>v=f<1L|_)%n_AXqZK@n2o*C%lE0O}K2U%w` zHlV!}yBCyv%a9;xo>;C<2yLyf{v-_|q8N^?u%KbN;bIaYM$J_kpi+!mM3J7jm`q4v z(qHMlgA(JL8Fj-8m|KXXt&?RJv}rmM0_rw1R;4DYtE$%P7wVQGaj_i+pCG&Ruv;;c z|EQ6!leTovO{19K=myS%+wSyjGs_!jCWnv9ND?CT#`oG@VuqyAX3%IZCIw>5zRO89 zw6P{T_EG(2>8-Ya)(t^Zj3pa)bCiLx5sum1w!~HqpMNnX+dlg>PA<+!B&v~Yh=z(n zOCU^2(DoRWOk<#1id26R1ObhR3$Jkbv)Lp+qF3nTr&Stgc6jz^wk;9?BxV%!U8#~2 zDXL@-dY60Y{tne-MTE+CV8S?{5jg0Q>`{!iM{`?9v5^&^R9qpwz@fRvIVW$TSEB#y zJ&UgbZTI2l&g(; z>jF4a@t$jCTfBFAX75BnfvP~hbU-7=@C+VvxmRPA_Ls2k*<*e$Ng0nFiAT%L8G{M- z2~M5_F*!!ko--$sNtIB7*z4izWjPFDiNJ_(-KxlOkg-zP0XTmW#J&K84bRqCv&fwv z#^X?_3DP=!=Z(`Rjn|jk zW^|J}Kp+(@#I|{34yh4TSz0PQ&$YyuwIKT4l$*Oj0Oj2)vUc%QrH0(V>_cuq+gWv# z;jBti&Dl2jf+@VB>a5Db?0q)5=OO0!S?5(6w;Rv(4TjCB9)U9}!R7cz9Hfh-7hXBB z(wM7LloqnVfgVBa^cr`4N{<}H9<6oFnUr91C%V^NF4&k!$D?a^W+hJ&zFJMG^Uv{^ zcT;w*YsljQZHZWRzOU9a)z@du0g{PaxiO4x7e#M1(R#bnFQ!R5NjNNMM8w9dn6oic z+tpoawJ3=a*8%HS~1PqHw3f4`oLy5mn;seac-qCbD0L1FW+?0-6Fx{ zntaP!_i)cqo%`ss6kO7&bmxzwSo z6D&ri8kB$uXy{@|A3vlJurYN_g$Ao8sNuyg#d-ciVr$vZDEcu4N47BHpnx}=aV&tr&bM^nO>*Z}uz~E99bGulWA1p`emk6-qT|Y( z@B*aax}*C&1er%~AfInA<=`>sTu zyIdmbF$`hh@YiQ{1m4BvOiR<{+=dyZ|KoeSMzFIvrmm*me*w--y~XQ%OOt-I{itc_ zn}B_0rg3TcN_0hE(>J&6tV(ck1dS{3K0W7E8rLmy_)SH-_e}!MYfO&(QDPNvDUxh6 zE*3kp(sVg!U+b>o;pAm^xPlT)x?C$}Gs82c)Lyu>fXQ7tyAr~bz8&~cuc|XRSC`=Y zO5+j-*|!quQ*PV?wlthmX=Ezfja<6cgikl`GpJ#HxPtY)Oo7`|PMkf!q~i*P)=hWvRMhQ~ZDkwZ0Ee2A!}1I=`=Q*KLX!h}FQ2+{;&y)l<7 zXX4zzi*f_B-=fv{`j{_u`myrZh4^5NQ8{Cnh87^NC7vUV`qxN%jzDo4oeDE)d@Q%L3e+XoJnIQa|q@fz-g1nd8|DgrE1M% zpeY^m!xrXu(Dv z0hL(#?O}1!C&ndxYUQLI&N8&d9k&okpybJQKRX53ZR)lJB56e?g{iu!ovWZBo1hLc z5{r3iUxLQY;1Z;{ae#%z>z-etHaao-i#2^R@^EliOVSt~ajaQD#&9Q{W?mejrM5RS9UNCwAt$9y=oteujIWG@d?@<-!`9gOTC^& zGeiXqqLzUBSS&1=r}+rJ;#aLRBe<`9Q{ws7= zumUJfwsF}fxdq0oER2qrKpuQQvM5QJyog&A%p*l+wJv4Dl1-``VDctn;STx$XV6!Z zt<;RyC4Fz4EfmMXIC0^8iy-l*XJVyD=A}@%NH@j>G!;FQj)X)Ngv2m{2HQQ5*qt#s zwyC%BOm?p3y0^ATyX5_RmMo~b*L4dB8WyFAb~c9$^)^GNwbu+_+&$z5ztIn6=u>bjhRSLpLy6st^diZ6eb(%Uh2Pfjk5zA za%H!bjhvvtIKO?!k-JiR@dO%LZOkD?_?uofpgE(HXI8DF77OV(&A3^-fbMY^w>@r5 zZhLaL|0QUQ#tcrLrIOI2B&=h9w$Oxh)wtUSTIoJ0xHA;u5(5cccvy!voE0uG`L|F53zBWvtu4R;$}u+Chbx*Wu!&v3&inLy5Aq9?Y z2pqkruI)OBmKqYRUw!RGfp?Wiq9wREmSl?f(8CDR>4N9zJ}JPuRT~qiF(&PjXS*qg z5EgJu-nhe`g0OC<6*#<&afe93UB`|Ej`4fn$(pvss)$Mwsz4g>?$s;p;)qqBeI~ud zcc0nVCr$^l^-TTtd7q$Sz*ZYB>z!WOYLldksnXi-k$^hu_LfnyEJ4lwl{*1x!`hl) zs!6jL6%p9J8OewfLe%yZ%s!OI>t|!HW#`j9nH8~`4II>2sR^pZVXCiuEx7ngPIV?q zj|*I~E`IVew;Pjn`Ibp%?JFS`CUH#47=rG8F-aF=a;m`MAayct7YaLUZ$>36;ZoR9jL8*HhPZ3L2Ey4Yp1ET;L0JN)AK-&`|`X0j~CMkn z+>hBtai|oYObIQ8W2BAi^(=I|P(^#MLn~XH6)tHMqvG!B#hm@5d-E<0d&yvS5?}Yi z?1ZSBx#>U{TxDD9K=^i9unjJWlTdA!4ys+tSbCE;Y0T_q!Ia~<=uPq_!BnwIPD-s2 zo2@jbmgXdJQn>UsYSQ2ey8E*vPK-&~(asx=&A8AshkH?=ENGc&D$AFbZ?-N zIgXrw2KPPGA*TmE#g-`OW?g(Bbko$4W-BSsT%%2MSeH(Kd-{UL+wBN3s6mxOKb{nK zFWrM+3~peOxAVfU4Bk!kvA2nt1nUb3Ezg3}2&#ZM$&GElnwR0 zU_djtC~l-FC77LOq1|r!&y!o=euFU@Zs!QcN&O9hpF#}=v7hAH93O9EYf;IH)+&!~ zNEPqb<$Zb#OA~A;=XVS#vuTMw08JCC(1XBb42KiUo(NYgP8WVy{3+({2N_QUNKDNp z?XI86r4*kF!EX_GS*&Z?Nv8yv6~gY3O~JQt=p_l2#_eq?xZn1vFO^bpNUiT$b1~J6 zQc(;7J-Xbb;bB-##!5;zayI8wc<3vl1yGBB$RksiC|MmDSACEtGeAWkoH9*hc{61T#pCiOGdwgO!&t>Mxm;}=s zP8~!p&AM2}z3-LB0^#jSZ~e!$WwC zLsAq!l9vM#@0(~wIfTO}f)is1x;xtBMe6m?Nt3vsVVve=@*+X4^%{#%{op>*q(y?+ zw_b1?)P3`VS#MG5)^x8kf`)_~MY7u(xKz?&8n5?L?8+@n%-nKJ2L1BM3H!AqMm$uG zh*?my&&=Ma9)NwIanU>5Fn8SCgDmQ3V*tb!nHDSEHh106HUBgrfcafHlS}oM-m^Q*`X=jG~diM-6p~8?}`zLc*i!mG-O6>ki?hW`7#>zm-Ek( zNSeg&An3HTb&=3;3ZCJxHdg!;Y=CAWXl{#vZTv}^k~9fwTMA7% zmx#!y(?9aj&QJv!HXR3+ znfb|#G-^BuxwR1v>HzEI&o3EnQ~2v8WAja7>-y&>rx+hu<+vvy-}*Hlxzm3B*~-$J zQlsTmN)|Ps5xAgim%qxrv)*rgWWSvh7trXou0r%^(eYr1(69U2!OOx-ip7KDM1wVn z2BVo%H0E%z?2?i<0s7`*lVK^E`1fuG#xZ?+`&b(}GT;dKOLxzfU~F*qBT2BB=x6V1 zNs3Hw>;4WW`JFq_CowoKL=MavDlZOF!14g%u0%K=bzS zzFwL$T_lOWx$PuLOt4Sr5HgOap!l8?N#Ws|i-iQ~Q+aF^Nst6FSKzQY8LTwHFkJ&g z2e<3oGcjJgq40EXea)Cqgn##pjTf6Lyw7wLBK2<*i3JIdGOjfZJsab*sFN0{iTv6jqs07!sQW{SIYAwsG#e_e7aX|zqYpZDbJcvpyNSt# zYb7N{%0jzr#Is74q*RUz&9k}*x~o#MBEhU6Ktt`DyNB#^a;GsLuLgV)F-eZf!iAAxEw# zjs^%CKCRg^C5b1o%=O8k%^n|%pc1v!gX@lMBa|yk8Jp`Kzz`+<$KIFf(+#sRtX5wP zX%od6$5R1KZ7rgmEz$go!^LDla~Zj~`1-Ci2X2O7@waiDg6^)PvnPHBS2pAw%5*Hn zIxSV5O7VkzR+sNqjxCZsUZ+wDlO9C-F)rcP8=8y9R}87DfNJ>*`ZkLpQ!eMQSJWukG($pAUzGlR#jtw0ZFh>`tt zQvN_Tl011bs?M}X07~vzs3gOs#;wP-M?onzcR)z)7HB%T8ct3Dl?3RQ$kGio7G#@I zr&;{^^rSG5%jXo1Q|`2jpX5ZEhN~yPg&duADNG^`TLYZ=rekSN@wnMeTB>;7dqsvD zmj^F!_a${UfZQ6p*=Al0p;8`7dI)GHlB_9dPVwuB3CdW>kbKJ>;wr}LIVPRgb1t|h zH%zg!E;V^73Q^SmLb-opli^DTz2gL3jVsNteQ;TI1J$c!g~B zDn7Aysya|%_O~LxxS(cMg65ut7Ck>WOi@F%&;*Ua9NlE+Sn8FmRaOk1oJQ<-3?ULV zdck44c*#c|)imdQN~Uzn=oP4`pfS2*7}rS_kFGzi#xgM_m*qc=EPe|+POnBp6yJPI zr&)?Bx%vpi*JWJUCm;R|K1!+rtnojQBH+n?Vtq|EY?fD33Aa*k52E*B?{^qplD zN$BID=1|h6`DR36^{V7&3Xgcvn&*YRg}{*lqdM#{s_PxxUsi?EMz#A$2TLKcnRPs& zBdp)HYq@I0m@KvyEeC?<@lwCsR#}+3bjSl0R8zBPZ@hFcorV@asShd^E4bTu?#MH6 zJ5!_5Cz6){4IA-rETO`LrKuJJdEN4G!Zt67MqQgiiVw4b=7n80S%0N!EF`6Bev$;L zjY(fC9dp)jxa?|U@(DTrPFvi!^@79t6SKD#Y}IBt(KH?B)Z6KV)63B%LBp6%?u=^M zcn7hJ%}^ivsTuq%E6xm#Cw2Xa-wAXJQTW*9z$DNxZ|KMOQIKuwq-`gr#!~ZOZ&xez z#2i8;f{Ftd^bK>!)a{a@Dd>)w)J<`bi$?lX2hf;NEoKyI_CUE|(%UfIH95CVhe)2N za6CwmV6`P2wo@H5Odh93LqD5_z_i8U|7AZ zFxkh~1UZ;Fy{(y&v`rxr#arpxQDpeDWDHy^$|;~cm!?TBKHsdYFEMc5*G3n_jG6rB zHk@O9hhrvt1{54^Hvszu?pmYeY$LLdj%@nn1AHEMIQ(vB=wW3V`=Qc``uR~569f?*huqzXI@e`eu)oAVrc}(b7c$jlC&`{wV{liuRjm7 zXxt$`4yGoI2AaWGSTf|NFKd~5KnLy(@sZ%nJ_%?BHI_-THZ|Dir4@p~ zbWLWTDQNo6a!ff(R8-L*FYVOlxCMAm`Ye-S#_Jp?Pv+*^n)Kn@DjX&rYQS2hdB80} zgU=2**-LNnsR`CH0rH&8Sx-8t9?yg&rBQW_#?4nG*ArBNO^?90n_QJ5T{JJ{Kd`|%Qg7+u2y8isH*p=5vRom3Ay@Z*^FkX~G1 z(m#!xMUtm1NGnC-4v!6nTofY`w3V%5e`3=;cIuKzTmyMGex*8ATTaQ?te~13MvZ&4 znxud-_D%_^XMG1?8P70c^1faQNL14bzx8=YK%hNzQbK+QSqrak?02U5pQSKtTF08L zBtSC)waz9*lQ7dwG6fSlg*v~n6pVD)l0NL@RLCEbU@W1DCF&- z6Le(@59E ziWzwFZ$Pt?{5YOuiaZ|Hl8lFT?=c<=A&H`(_628L%{g}>G2*0(f~(IZ%ZQ05rtdlr zXoy<-xEco6TIR4y&D!Rc)REtT9eYjS8zCcJ3+9w8w>jBcGpM;HSznSXGEv&c!gQcv zBtaeinG0F7*Utw#qLjz8w;VSak|ljs4wKXU+=;j~-QBS-(ytn z)eS#zhBb-k%hmsQCdnw}$-bALel~9m{bW#wcLpJOPeH@Sc~MGEDOCHK8}hi`n3`(z zW#1C>tk0d|GWGHBY>F-$$Z{P?5ET|R0_zAsX|D+zFCr4Pb)fP4c}5(x1tL5)!IlS~ zIv9*Qk%Goc z5FaH?DItP3Vyvkc(3KH-TP~<&-sF4t7|Gj*34(@FmOZhJny4*V(jRvB9>B@E*>>$G z*#RXP4m7(4tP|WPFmc%ymJgvfe)=2Fa*7ZCXnnvSr$UsG;NS*P+MpAY0}UP(eGeJ9q;loJ7&K+N7Jmd;`f+V0RSI>CJkyLyZ9H6=2oHC6R^v2-W4BJa_LP$)# zPGd+FWy-!;YBd7P^E-x+IT4j`Q_ye_(Xvh?$wKHfNh(axPzXz)Q%Qx&+08=W`wRKx zwk1%$kIt!tGpRgIK+KrZG>2I6hFM1im4JsB;4KD-@Rdr_Ly)!?0zdm2= z_2~8?t~Kz;hdsLev&Mtn4%rw}QmmZ$v%aGVBX!>^?VV;I(98!N z7oVhc>Pae8Nx%Zl*uP$uq)sp?gw+H%7BI5}#`ONLFgba!vQw8$lrb%&#_W`iladz; zN=7G`<;@j7shL#c7~)I@$C!NGBW{;c*{~nK-7eCYbOJ$0G{2uZ!r4y4L#Zai-cGP`}zEU3ZZv%QAU&2|ScAkQ+!#PQ64; zfF8M^yU8XWW6YKKW|6x$2(i-{qajwe!E&MbJSOY656S8GEE&9dgc`=QNA%l?nQd+O z6-&^%7`_d$>FRW|7-((}PTLA%fH82d0w@O!BXfUv4d8tEjZ;=UX|GUUh~n!9@(SRV zehC`#tr?{uCzyRdJ^q9(_p&Z8dP$}j)dhXVMK*gTQ-T`%s`rCnodwlybMh${#Dr=t z?u2Tt3K`~|89R+@Y4aPJ#?{fj3%iQ zW0Ib*e9^+0?yJ!xa}vxPrRVNVJ_Ea19LJE%iE#;vEjWe8cfqB}CYZS~h~iAP&2yyQ z5E#>E;*c9&arP!!Y13sB)ZCQ^YAkXRjdh8|TrASZjDf~L9Y&Jg!hb&nwicUKS?K5b_z7+jd7nsEW!@u zWb+``dU~yKr}bt1NM5BedozNZzD*+@vnGsd4NbnN4e=|@VT!tc%1qS#Q+wFHeu>z4 z4^)lQMM??uxvP{6`DJ4ECHE`>vr*re2}m?hb=TNRfo6DQ%ppUi`z%ACu^FINcKQ4C zlUera9q+V%6oaX^i~_4J+BNbpM!EroE9VZh`BCbJ?e9s_1(a?yAS<_3B7mAJ{rZs%k`Dtd1V0> zDt9BL1w_!`fi*GL$ShQEAwiu@Uy*<F|A^PcHo+A@tv zaw2{hb04a9+QHJ|uo+3n-jz}6LED7R!b`Tr@5DLV8?X!wr90;AS>MJxInY*PR2_E+ z&r3KR${SUuJK}QOeA~Y9JTcpC4UgW+*bvZnIp=PgpwbU!H$oy{^8f)$dvb+uP`eFO zS4fYgG2SWtJI1BQ%-T)Mk8P<;=*-$AXzEFxN{tR^x@0R}GBifT@@)w8>bNpvJH48o z3#HiUX05)71IloQWN|(zhyl&y#Zf1cuJJq2J1S*)GG*IvjhnGK96D291rIajYd$7%W7!uB!g2_v4sRNKqG=bCJO1+-y>&L z>}!hzYCsX7l_ae_^_I%po3jFEa6pp4QyuaZPQo>TGYNRqjpTmvs&#=QN&lQ>n6pp% zC&*l?X!diFF8A52IWV`Y&})!s^2xJ&4%Cj5T~bn^b}82ZtwrE+LU_ym*b_&DIRq-Vk_ic%{`4A&=e<)ISdp`z zp_4KfVZ`;Bb7LhZFiB4_XUGA|?_ESRb%9R=Ie!TVEHw6|CPhgcxs2-iXcm#=n({352|Gp#C6~h%c6LcO1({XNUIGTEW7SeP>TeQId6wLV{hdOF z(Jh!WlB6?+ViC(E&ZQxCrZ25X%w&g>B>j`IQs2!8)QMS&&r{s2vI#3Nr^|w?#)Yl;Ogp)2?=Q{{z8}wiQ-@pI$pZ@iq|M_44<=_AJfBes1|M)Ne z_IE%2@|S=3?}(mE(m(t+?f}$R_h>l&3)ues4e;L#zE{3dolFGCq@&n_Qj7MeidFSI z+aap=>v@5B{|XCUr$p66r-@zr`gEh+ta5-HM**W>f$2J$>%-hSv~lX}$iDq3=)mcCxTr^Ovs zet!wHp2u@DseUP`jphWo3%#EvId(LRlDsv>L3@id!s!YVV1;_wPYE;wNH>T8XaDs@ z1eyTIs_?ZQKVLqupC`Yt1|VMM`H$ZQQ2HAJ9I@C>eFBy+Fv=eX@NlDqo+px0HXv_h zs{8qudj5rdIC1RT2Np$Dq!_@}1F|1KPti`JE(N5mW|N8nYAK-}s}4s}l7xJ4kUQoV z0pfacsEfeTK(1Ez0QArhqDSEF0*ye&KhTyYz-BkxB(q}<(EC7H4{If4pzK^$%_+ zWNH0n1m4HN1NQvN8?F(sOqZm$$fS&*6Af?%Q{-T8TBtO#X1~@$CdF^p& zeC2s-9s^vYqJ&2dI*^3`T`KfhkiqQ7h+3Nk1feBFD^Crda*=B$eBrFsm_!R(u+7A> z3F|QtV^LU+bQ*#~LXAPy3zV4`Tll=9Cqz4UQ8;nI)j$#8L`&7g7XcZChd>}!1deQQ z;8hfur24Fy4MbUsLR9fM2}ebufF97$r^o(gSr7xYX%W(B5akHJ`7}o`MMBkQc9v@p zTODabE(!;OcHOI<#~8R)L_;WxChTZFvfTd2N7u4MK$7O%?k2EJi(%COj{59kR8#mY z3U(@l9z7d6bAO?*yrRC=gkxP}Ana%g1R6h1!WEzzf_mA8AyDyYQQ|6!z)=}o#1RE< z%_DFT^K6x@|IJd0GNQmuvxnu)b(c`!80%gfXh>}eL>tA12^46HM5)IDSMiF) zN;pvzPD`}Q9YsLV{SM8zV|C33b1ycWjLNsVi2wyx!XM4SqO5>1Bd|7dCWk13Z{+eG zHe+Z3&It|e1qRo`zH3dLSPEig9K_oig1!mOK5B(q<=ym7hZ!9DA#qd7TD_N(h?_v% zBDWoo@nJ zrcXx27PKkQSws1IndK*m?KOn>$3wiy+Pw*I5lAg=nS*3vK@fG+9FBZ+@1B%_jEych z<*_meZUF!^G34_j7o7hM0dAk(xSEKaf}&NluP?TQmp@fN-S8gPN5rj;wS#um+)XUDOR1g{_kGYyCoD zt0WYZ$Xyh+O5%Edp|Ew*wHzpze}p7G3u2I>a1@49W1a;&6r4`$Bq2!;hZsZ@<_1LT zZuuvtv5G)lEvxsM|3oB$C@FqQ>T(y>SUv+t)caTq(^Z<`{-w` zspX`a2CJ2Zn8XW(pQo3vr!cgF2;|4-TN(8{R5#;l(enF|ZcX60*11Oo9*6=Zqb*0` zksb^Ih$!%78!#vg5Uf&+^J2*pYYIw5uaE&}xuih+QBydolG{XT2)b&i!ap;y{FL>Q z_~YkExV57wAY*(MFZN@EBRvV?4^cR~Shr`00*7yL*`i?XRVe7;;0kLNhp>gsU9&+1 zNYCscY`r7^`I$g_M|L6{X{jxh=1^H&&jHZ7cnZV$aVeuHuy@bY`K5&dXl2ybXX(YD zl@r^etp;u6x226D;O%^d(9RL0XyZYY{J8W{Hwg1JVum2z@k={LwN#l4M+&a_mmqEw zh(|0F-Mji5g{6>`+c?_Y%D`j2VgtrIem81<>jj%zE&2QtA%wMwU)nwavtS?ADUP+Y za})*2&0@c_iC;D`0uU*K()1%+s3Z?)9YAv8o(*!PD$PgYkwxq001^sIA1N{DG7cV- zYvUK`V~8by{2oSww)BxGfB?5G0u$~13}9C4!vx6}9JYd97K;fE+3Roea3MSxc3Hykbs`L}<|D5R5G z{26L=@;r)GN^Q(I8nmZRJkknI08*SdtarLRr8&WZjpdEUG$N0I0Hio^l!hxqnusZg zfu2Q$_T~f;$S)MyOKNwhFLLY`Z>=N(5ru0GxzcxJSXwF7Bc~7BLcm&3aJOS%(QlTd|2w=(s6D~vH4h(dmz1f$LnpulCuoBaeOtxv3uzff2jN!t!b z>PxLlksVGNjGH{Us8y38Awv{ev5UD-CStJ?glGt-V4hC_wU>OQrp0v$n+?NZ5><(U zPPeIdf$LUiuk*6+Q?SKG43lg-GtUUbk76U$&wBoQKAtX~rH#B_otFJPJ%E5^5HuM4 z{Cqn|a#E~!HRzf)z1REwi6H3-B|>D9by^GG%5q6V!V)7CR8d{8l`hs~=sYk7z6Y`T zHo+i3aJ!Z&S`O9_QkFSv$so`Rw&tJ~zx`B4)F4?Ek5VMynnU2|JQU1@+Sr(jNK8^Z z4`FK}_CW1;4Wa5Xrj@$PNsOy1!xYqRwA276wMqT5T$4fDQ{ar;wE~rF$3SKNc>S0zK7vBqOFUpgicyn{I%|S2!tOZa9r?}rD~Tz=4~f@ zpuM#*wV59%EN$eYwAjG5hgx?t25Ten;S*;%Nf^_XD|?YTV?h~$2zW2yNo?Du&Eyw8 zuJX()6j*CF`>~id>C|Tq1tx~Dw2`ZkSn@S>3u5J^LHap-#5~s=xKH!5N-FjwRiE*6 zx<2zg_owTsE(Eq?C6&lvLLdwEk-*YMrl8}ZYYJsswbHYES`|)VJXi1RA?VinZIXMT zpsAuL9OEwbagze89AmKjt32aLFtwl6ag}Figdh;FaLt0KTxN)6H*<=32szgnprB6g z7G;G`8AGDS!!k>Td=Su4a&v-N`&rmbq%Nv|1Wdq8=U*!(zVOY*l)p#QDH3Gtr z7G=saY1mjsVFFtl*-0qX*;A;{$4p3d=1gE~qndtpz~tb|ib>QVImr86JZueNRcHKR zn#v0Jy;YqFg)Gx&3R@p(BOr)dlc?A!6s(VDZ6Xk9zd(}#`@+S%Rh`kf-e2@_RcDw5 zOM2OaU%aX_D#!jtVYx?9(7g&Rz$(vJ8Cb%LlWxAb%5s%wY6zs1AYewW@{BUiML-wX zd|T~_+M5mZfY1T47CLt25G%uG|5_9-Nk0aQIwIWhyf&6RRO4nF23Y)HAL0>wOWN`L z(njUdskH6qCDS|~-*|E?glu~RP*_DWEdfv{b`UO@iQgNcKwHj{u$N5SWJ9)Ut)_g(^$d{ z82i0dnek}4GIQkOD$Q`m6vw^FHRdrbSLPy-M>*Fsh2gZCDLq2Vdl`)1%cK^#UQkEZvqv{n~y{uHHSl$?U|DkV+im;va}fxi1ZLr zmszFK(U}H?R!GLc`SHqfnR!*X%ow7OM|~m~S!_^?>IxF*0a|0|y3A1+H3+bq+bcuW7CfI+W=;{f()ViwEVWe%@xUvK83Nf=pGL3>GhBb8 zvkTiGR$)e+g}=C_RhUsVn5bzBqDEtWq%bp@^j4b~-yUvlBy7Z>$|3o&D$IBiDa;(X zu<9}>FprJbtVfkb(ynK6CZ>ET;|%l<)Ar;(?g(P zr}%gZKI#8x0=nkmb2}517Xmc|lCnkMurb$8JOiL-7|*p-iT0LOOKlR%s~i?0h?z#a`bkYeL^$C%I2lV{T|Ot+Zqw@RdDD1pb1a$F@D2%tMvF*gr(wNQPGMc}Z! zkD6}q;c;o}4bU&;~ zRM23hNI~YfLUAG_voHx1a*?Pw);vu`<_8k3jyjLU?M~y>yFx^R@-Na{H5vNsw2K%T zMI_SF=!(oK^iz4&;?O;%`hxRzNmY_DFH({@oAxTnKtg5bVy88!vOXaZ2l>67nFzSG zQWVH*?@bW-5`lsUSGRg_^6Y|!w7JmzWastkr( zgE(_yRb`k0x(zGV;0Z|DU8O8@saThriN9=#?Sgq3NyeL|43ucMz_Wf|RE&i1wp z+tV+f=_#cya|+;a9BU99y`Z;w``0SWn5`+yoC;j}*iTDC7X#>Gik|(>9#M4qMYoAd z1_?aomf}u(yby*ICr*(tLC+xZ$_IdC6CV7o%}{VD6347QXNM*Uf+$VI%&Z-+MU&#p z4>_0;yd7o1jG2j1PBxq{bB$oSA zid5`8PJ~n27hZ54pn2iuuTm@y@)e0wB2i_PEmMwnmNxmZs?&HLY`cCQ#46MjEBHp} zW<_;Rg@nE4q2Y-xtErop%!OC8jK{i(TrMdn?XYMA8`IzbMtO?T1Tv3{CqyNh#wnhn z8hWFkS$ODGtSJrS6y`4!redmSw>C!JaD{?h=5Yan|9cR8F^KZ%Qi*b09#2r#lhPAW)#2dbJ%4L62t@BQ@T?kqlnWy z?6r9Dpup*#@)VxOF4>S3wmc3oI#t6(fs7sptXE`3KAIU-bjYonMd2)uRkPvn0A5## zp;n4vYJ>@;R>wgs#Uvo1s9zT0*;m!ZNJKz|F3IL$*F z8hfZggKG<_KO&FqDRt%M6sD3|-Xw_DM{fbwye+PzbaUGB6L z+>~yPd1@tw82~cai&|}}Dch;z()>l|ZPArj8sIzLkRX)D-lo~@#gnB%^XB<40 zOCUQaGvzvgJqS*WKxYp^jP)Q=)HyW})1Ngdz`!k!8ct~ip3uxZdG353&GO))82OH7 z=59=S>#EL~#L!KVC>tyD=D_u)7O#0EvC2APCi{TeF_?pOEt*-O7>N+OjejJaY z3OnXz3Oi?!vgRx!V-%G77=2#76{Jf$=ZOs6B zP+)Id6!Mr%#nb5W&LKMD3nPO9fu?=F2VYBC#W{H7Uwp+X@Ni{^zJ0vo{WoHkH45wI zXw*XsFzEqKmqe9%s-WAC?ffz~3)LWw8%kR9HwjYA+vFkkCU+#IFM7qj6 zOaq6fymgh@|YCU;z*(ANMRLvGzLDeyn9#q82cIyF-nDK zr_H$@*@IAVc&)}duirCDt>?^3R-8eCHB8Hn=P@iL#h%>8P=%g8P_OTEZxWos;UG37 zEYYg=m=%oeXJ50*J@A6VdECwii9EN3OOWyliS0B^VmnQOmY!2re2yM(ReU^(af}5W zY7(jmmPAfL^E+Y7VkZ-k9%nV?f>FR?i@v?`3yJMDH4)uIpV9AQ{wUNh(I)LFV-$qw zd;j3ZoibQ;S=J~{s`b7~KjH-nTGiM*x7?-!PDi2iv22VxgVr=s1v-vl6@l=Wbd30re<;X-TDi%Alt53xKMVMp276=b%aTE! zTW*s>p(ZhI;mILbUG2Xps3_^%0nEQjdYc&T_-C!!l^`0`)bqE3DsE3$Oi3l^tlOwj z+qp<^nah4oifQ%eQqXA!!XiIO=(N@%Q30PPg6Y;oP91To?T=BASl#NlPv>acT_g?( ztbFaDl!AG10p{|W@7s-YJ;*NG+}6#Mg3csx_k#pe**3QG z4x9z6d7Lu51QL^iZo*hvu}eX^utJ(9B9nN;A#NT?%?nDd_AocP)r%aGzl5L`Y~nwhw}o(uqTPkngRH zX>caA0vc1;r63Bqrf@V;qL$5x8wttQYMxTi*;VXPkmkYt6Dvsbk(ZE&*F1@Xg>w&r z5Mx9VRS7EV(5+}cae}sk3k7a3?6Hr6j?QrZWM8yXO$xeOwgswt%Oee4L@o-)P&0Rp z+t&~=^9iF(V%fWH3m1u#ap+>j!3c8YVrB79cZO#*)1}})PGgsW5C+#_)scWw3G>9P zB&Q+@-|rISSjJw-Y4+pvn%)}%ODoyxdJ?BFle>xcEGTmFVOdC&HhWv>2|>7KaZ=0N zh;3GK-o^)JLPBa;Q4N*kB5|rk<$gDt3a3^mv+>G zlR=0lW@V~CY;)=JTvr-YBP%=UIR+MCnP?tc`v)#>sxcfX5UUJfkTV^Rt<8_ld`cL{ zS?n4RS5e|Dt4YVR*rgcms5XUD$v~$W*B~H4m1ps9FNO3W{X$|_fiwzESL}Jz#?%5$ z73dgD@R^c13Vla|QFtOd+9Z4N+bD)&vRUy#Q7b})&9>H*flk%Mk6i{L%SKmXIeQPH z77@>*%Rq;O4>yPJX|M^Q9JQuVRUnUn&_ohFuH)M6EP1dgr?GXDkYZ*KS;voV8-p4o zxW<037`qC@ee@p1_ai8ZY6k)CE7|5%xgT?tY)VbzL}0i}!g~6A7yT!iZ7+VF{;i zV>w(GlS-vjjW1rFf(dn#_9!4h>3x|vH7f>Wwx;}Z47BMnzmQN@UCW@>kaC@BrvG^q zxY#uc&L8;}M9X8>qiF3hiGzXCp?smh+1SO+a(rgRZ}lJMK1k>b-diA5|1m3wO-ii} zH^AsV(>)CYTIn6XxynDD5x(PRP7tgt5_E7YZ_~`I@=vJ6U!FKIsy}#3((y8hyjiMQ zevea2p2jH)$yJ(T5W0$eEu6XmwyCB1v#xb|C0|LFP1Oc&XB`wc=e74s)DEFwok;QL ztX8A?gU98n@wIa37T7h2U;HHv-(wWq2|grROR^=J>d$fgdW`Z9$qr0tbF;FdA(0UC z$jwpzfdnT3wtei52Ch^3MJq=62NI-^w-k2yM`zA|R;*F~DH21F)n{qN`mO%+fPG6h z>D%(2$(pt6KWY{EWfa?Qa_5&?xtAn&7LAY6SUFENHtIi6z<;e}l&>5>%=1Y7hsq;| zCaL@p)Tt0!*FLc6+VcjHE3lZ zqyB?&u;*N>Cy8!|S+9srikGMUfyXESu^zDz+$8qK_K^b6DY>ma$espA5V`n$ZKJtb zZx6znd8&>o={P9pqBucpX;?9j6h`%jF<>8?LgnD>u2TIuQ`l+=1v=Wdci6|R zmFE>JPi@0&fcGr;$nMB2aO!38A+?|5#)YF&lLU2}+QLbvbS-RnqI+O#5Vv8}zC$;| zE?&}J!7zBP)Y+HO7F*e0{zhW!B_kr!qtS|0lms0(6SpsD;Ew=UX+k5O>sV~?UrKW1!7KS%qZ zpXNe>R@bFg)gl=Z*347Pt~+A)Aehy5)ig6e%mV4s&-cBHE;t$l$YAW*@5;|711pIh zx*|zwYzk_&CH`)ks${>Vk;2a@F8bVcA1b8!5X1^6J}Y?7B&?UGJ`S$P7-Jy99Ans# zo(>CY7H3)PvX2I#s?C~4ZO=W3F8dsP)jk0v5}f_oN>z2Akg#5!=P}e$6smk>23FO_ z6uRnj+74sYlNAa-ml{;0S3xFU!zosfv3#IIdmfT54iebsV8?yWtg{p+JU|cxK{yDS^(lEO#@rkY zPWl=ZWf;k=$IY5-4p@;sX%bT z`pluz4ADt(K3i^qP4j_}KJ@j=cOO@YyoFe3Kq_OO2*XYJ2oo6&<+C9)kd>>CA^C9FCD#n~KHZs)yNz*SJmKZm1&9xax1^?r#wB+gmuBX# zVwlS{Dn1)_NuaLE`=be$_hf2|^VuQ^AcngHA~iJiz2h<1v?{t>;u$_{%jEVu$q9`k zGwQ5t(2DfgQVT$|VN%kgi{U`j_s$-|UzK5gUtoOJc1g*a{=cgVww8qZ{8c&3?;D3+ zc|C^7W<-Ood-md^lf>koahR)FG4L{NA^gsz8I8iUkrc!K$a+1b&t}}jDg%RUsg2vo zB}`to;uQ{ zf}R4CJ{i&>eKsMQ^TFxMX=}sCFg&6N!4z2&yAandIi%pKT>DqwJ3Bd|#xA$aol1C) zNdUpkVCQfHVbUi89nxo&qFEn83)&W#T_}k5I>q{|R&_}qoVGi_^)%kB6St)+!2Cuu z@X;|#0I2*^vF!1=rhHzzR#06hoX{|Cb^M-1gV z#-)A0AQ|zC<3p=3i#1|=pnae~kH0hoX|-#YYA9P%O6VAMevflOXv2i2r@5jKN_eX! zWBNe*&;;hVOi4ld@n*dE=p3#2XSvL6iSl|yPYGQM2qN!1IHg)r)Kxn-&Fe)%%j6XCvryFhSz9MUKo(!G+wULoS7n{c8dJ0XY=Khd zPx8UNLR?dsVHEE(?^^1mLp9t4ei)}9ZYGt|X`y8p=;z%wFYzNOSY%0u=eHfH#Y6~C zK447aB&_KjNd0BcG9y0u05PqTY+y%M>M(oew3r`8_vM8Z?sT+i>LytFf!NW7amX;3 zCCjiH#pQjd?^Q>QOVNX_#S*0)-e-qs(-Z{f0KQjJ+%S_(!BQ+w-(rbvnIQ0nx({zU zy{O6T5#rE3n_XSj$HSn=uczR$K7f6&Om>`OnQ%U2d^H1cQe&a8_^rz=GJ;^A5Oi75 zFfs>YCn(m3?f#LXPPFcH}hWzP~NTT(mp`Yw4E;VKx9!|+J_(d zWSE!tQHy#482kUssMQj*!~1OWacLizEt*&U=Af*;)=sl%pXFX1jj!5gg20`)dwAh~ z+Z_?Ryfm>RT)U);5$Qc2ATy(;eKH^n{#}=s_o3&_UmU@lg3b5r!!x4debxw14QI=) zpc$z4a#$BBO#Bqurycz=KYH4llQ%owG0n^Tz^r}R(J%7@1b-Q-+iRP%{y`(|i8hx+ zCLPAEX;P6xX3(ce4N|UMLAz+2$z7%DJ6ldee9-HR$eIU4Juqe+s_|?Y zx;o7YVkzmQcJeyS9|*y{LanPHI8E(2C47qzo5xf0*&zfu!Rsm2e74p+ZDkFy(Yr`- zjZ;#<=gH66SE&7LO)tHIKR{gahZ0@-O3^{#e$Ul_nUErXw!=ByNXIxpun_e%Ew{{W zaX&l4^_rF;N7^XU{7ZqwG#AE%4#(GNa)QET_9m$Qvu9?C`B`r4kT-0@6hha~S4uGx zTEx$eFzk}f7AaB6WOyUVDC*A77WtFGX-%RiQYDC9KP*?=*^V4R2Vjac&EY-1a{MRhOARaS690i*ADX>Zyb$#z)m_fK^iPh53z{j`xT6<2S zlXsK2%#ZsKsx#tMg_)noQ_RoyB09f&4HI9;C1Rg{BE_YC_^TM^y2LN_qa6}T^VVPR zwYE!w6OCg>xONEwZ7qf-F7*Rg>~d*r1%G($QV8%`t%ytg@K<#-Uvh{_MVCzk!QpXC z$+1aPS2=QYG-qs{W)eamz^df=Vh#n|_kh)3~6DB%hpobukGs}C@7J@|F0mJ*0 zCTV#%Ff0T);f7GJ8As^W1Zh?vyuj6jR+B+2&qE{XuKz20wP%yu-34HAp{fqFnfw-_ zoF(=9LzRIbOgY2g>)eCAOuODm1S0Yr;%Au->}x_$y6z~*%H+fdgw2w}oX4SC3E!o# zS;i!|X#gE~=Rht=LtuHK`lsnUg3Z)X&AB>*sa+ zY~;XYMvD8<_O@WOaq7iuHo=|jx$MDxFq56l5O$5$1t+;_T|=`Wfyl5D+Yg+G;aIc8 zfHKJS*(hMFyJCT!nkW}6%B987<8Ynq`PD>FrsNPo4{ctIwof7)5++Szb$Pv$QtyjC zRFKD_3oG0R>q&8-kzpM!Xq5xcea6DIHhRc(gz~HN4#7BN(CRqC23Zbfl^w~K0-^-d zL9y~f2kmmSjnX5LbhB-=Fz){T>*0fTj5bnLc(RV~>6FwnCZDk!LTDXJ2%(Hc{T`_( zx+~VMJ!3hH(6;Eq2nB-jSrUuAC74(#F+S|_>SA=Jg_EVK(yfEPvtFEMj7KkC2p{=y z>9+OoLKegzDpx$~-eF_}xx^5AS9=aTzLss6pxu}up(J3!m{)fba zJgH4gO>9duit>%IOsy_{4hUi^FA=LiO>ApWYFg`&D9`_sGXVAHdU($cU2SYHhN{&P zw?qtQ^fRjBhko6*S(OA{41g(tml_M>P7qBzGL&t#sN8j6kWlI*VY(fa9A&0+N^pzb zB7X}-Wb4p7?KFqD`dLyz`GQ~MxmSenHzVd`)onPMoHnxG|!S#!6M76O_baJ zJOk9Ej2haWX(fV@6kEWcWbaWYgaQu&wja%1ij1jPB5KH62GwXv3Qm~~L1g`(J|fY^ z_Nt{=qJ5zd(+mtY$&PnYz?dmHG?5P|ZDSS#XVnmNAx!7rtTmGq1#yx~UlwdI+CbIH zSTAK<%di(Jj2P$_UtVjCsOHMS>xA4nY4_zTLeVI*Z6n`?5~|1s3UP;Dwg-=mckG~3 zsUT=FHk=nbuO=m2(S+!k@R7XGDjZ$TpOi|CfpE2w=jN|6%ofE!2}Eq;tMdw56fp>? z*p_+|@L@E{z&*bzBWzJYaNI=>#EAGlRA-70U8JXe<{81-2wfBm`Ui7XX-{FkC_^c} zXboyrV|VA(*-uCH^+he+$WesR;{=+}nug31fi$iYL-jRz&{!AYi8k`axGj~coszA5GcQ=T zIW4Lk(%x=;sKafEq>i>9FoqW;T%r2z=6KZNw&q1GZLN=SUXlm#yeK)-=0P=NccJCE z5}BwCO!aWWpnh*I6h{hlG@B6WI;6RW0P2&|KvR_ahqZjV9_bF}PAa4Zi94ouhcsLSoq1xr&>EV(arxt&6A3BAYRQ%|%~ z%n@g@vpGwvK1{32?SP;Hya^93Qz1k_d~l)4syr}QD_5N+kAgwq@;a#@k7~WLo^>hs z%%n}VASxsJJu9GU?y9v9`9TFSyt7U~gYKT9E6wM!DaUUQa#>w{V2->bDjV7Z_NTF9LLLgZR%t~=Y zud-&4U^@e`#q`|pzWM}%OtRyQh|wI9avm0A+n&|w_DriWSkHG_%_3ze7``!fIodvr z!66t7?@4KG9t@V>J4R@v=z~a?a#{I_c&k2@>tRb_5Sh%ZC~J|3hZ^=C3+3!o5y)#6 z#tnX0rICY&4ZoeDeXC62>diW1Dk^CgqD_>$=sZekpHaW8=_!aZ(RE%!CPfU~BXf+t=w=@3e0%4F z=#9m2_t%_wN{l$tbza4AHU_b5U!mlbC~GT>GSkh4;Ryx?Q^M;Ne9?xl5(vp=lNb@i98<=Hu0MdZrBc`pBf`BFB(dMYvGLCWiK#xQ9dcz_bQIvW zMo0_L?7|tv!f53b$+RXp)C~7d4Q0mUHhZhg>jJ?mnrZXwYSTV2{^CM~D>b4KpGXU% z{3+R!ODn5Sg$6TtCfyKKLG0Zhbr<%yf+Cu>R35pzAqR{s)pD&#Pg2}TF-gg6OJstI~v121ZcxJ~b%dAqYmS9jd-5 zW6fw-)9-=|V}-lriimfH45l}69)9^C$Y7ip4Iu0kcYaMdMI(oDTIXhPP6nZJrnefe z!UFkZt%Gzj2zMUawVHDZNO4YU{zZwnp;w$l4#@S*9@$}?*5M4+$u&Tz#8K7%3PxgO zD?Y^24l}%~YH%TJdO)sj$Q&2*MCAhP@}H7Js?0>p?3}EzL#L zq`tY0!MhXWyEPsgn;PfVa#o|T#aRmHC3N^G02A~%DX;I4RmX#P_edkx@D!* zLU)4D$Uh*_f?a}b1fLp|IWNqw_AGVh9Ux5qk64;gLTaLWBq{o7+bU$6jlnft`cU0? zS#5OBL>K?Go7v!>e&KLKuFtWNeMw%a%eabwS_K&d6jw&b3+pg{e!UqeJq=*BZVDmf zxq~5S=N_!Ra^&cwoi540V+>3ENkoV&a;SxIeXDwO2xHyE)lRnsp%FN_@f%HK8;wGW zh1ybve+(9ifHzpX4`-D0`tVc zBKtVh{g=qwm!*E;8k~rr+GT*?%lM<7T{BTpFmwK{RWdj&3Ad;@!nG4=D(Vk(ZIJDZ zMrq~%;n4i2T5+EFbv85FIb77j7pS{#3qrWbw%5MHIn`hk8MWKUV55GaXoRwnCIb%WrEq0t=&;E>N79zOehEQ61-PFXi{VfEwf*bX7J$uSryW3b1y zfe`Qk#r`!rM6pt8^Y9I0 zkW$7_GV;pNiDK=7wvQEKI91t4)kVfA913J!ij|^0q6vHHR*VkL z&5@}G@0ngQww~U_gHU|@l!F~#azw37PpMn$``iqE%7U=+t{WQZO|jhqQC;iQiH&41 zRKg(t?~(xJ}1WOqQ8lq!<*HrQk}YATkh-DRW#L z)g}f0_aTKizpF%3R0UDH{wBr4nWnFCOVK{D7^*F(Q#0Nv2IZ!X7NSIF&oU*&P;Hx> zTEssvSo`;IscyVyP7Xu0ctZTpgdjm=XBrg@r&t8lc5qNT-UkNxOzGgCzyJN;zcn72 zsW(eC;q|iJ*fOr(J(2vz^O@dGY^WFd2au;v{f)~>n&8+-Q&mc08RUyY^tvU)c?^j% zTn(Wx+NIXLr-c@;k&<^2RsQULF{T6MtY*`|w9}tw3wUrU; z9GwpjRrkLT$!0ASEZ|=Q>*Gn&{{QVm0=Owcy?Eer=_ZnK+_RT zI@F7?6lt|>pG3e9IsPKedUtWP^F8_?ys;chK1BU|=U8~&!e`4&hEJRkiTLIn<6)>U z)>$zbfU{=>S83HP&7|mI2tw6eE@XP|uTJ05>LIN*txnR4{ef(xFQ?WQ+p897wU$<> zukVzEmIe;)B8ge6j0_him8_e@Uz4>$5*0nSftq`YUJq-v5KheJLy+HT71#FOq?L%9 zcR|?n=V*9mcdQh%R+$_kj1M3WYo*@!7e^t{tBcArnh&fM3Ydbx4XRVdF;TNt!6?>h zwfIR|Dg4&EAYf!ZnzYiLlJ~(((u#{P++p*4WH3!yQ95gob)zBPxmsm^rNWiPcn70@ zMkW@d1=*%|QdXq9(T8`2Oh-qakm4T(L;TW$P?W&^aoI?L+`PhHMOdwI1kujGpgLew z3e#q>;p%v`MBtnshOv^q0mOnx4SXp7D4CS|@o2V~l@Hrk-4c*P+Hqris2D&t!av_* zRz7TF1%!)%N*rfy_)z~WN#0{t{;sVR@{J$-#aq9OgqvSy%TP1vw+ZI6_N`(8x%%Y% zVN~L5Zv-jIYAfaeq@AllXlW!rRv@ze0x4@Wjy>@^@vfOA4P4+gxcMM2!RlD!(4JnzPCT7iYCw$>6Nia*M`Bo{*@-=aUlZ zlf4eoimW;3n%toch;wNHDbi};Xvjehb7d&hC0+;3hbLs^pYOhv4~Mx5gi@=M6yd`* z*AJ`}e>cokxifCk_XNB6BPu?u)%Q?=nlO7Y3x?|JN@-^RetM zn1{JqEp{+hY*;MfES(bIBwE3%XyCi2=d*UO!BEol__CWe;qU5C(>=u1a?-f3@D5fy7FO11B5wmff|1|tQ8Q>@~(`C zN-lk+%ws^-^*i`0I5sNXl8n!~8HQW@)shA02Zpr@Lq&$i($qk>mLU~?7UWS)m-ZsR zse|xcHNv3k{)CBqc$czT2779@eOyh1A0QBL_GxmBY9d@KNNH4o5QNRk&zc!E5q>~$ zcktR7MPPSW#b9k!BeW=f8Y_KXduHf=aTRhXtnUSeU_5P=_r!bx_U!h>BDF)#>@HPO zeE76gy@sZl@$9OTa4jGzFg}3bjHgP-k@TWfE8&Az3>G}1y2jkw;8yD(uw-UXtzIc! z`06EmF=DIB&10&?hhsHHn)OB__6A

|`Fyj`1{A;(lkp^FwevuJTvuytGi-2ZyY!G(*v)6jkWPHs_HTdYVs)dvQ~>98z{G>4UmDGqB(337mV zSSqVTZ#^FyH;Wa#VzE|1291TKf{`kz{Q9M__^tA)OEB^a!Ool*?#w$MkcqkV0Xp#5 zQn&MjnhQTLlp8W;~t<)&(P`QSr&)l5v0SX7;X*69Xm!@gTmqx%TJ=So6oNs#hKosu%5mh+t8*t7%XG( ztk^xak`BL9^MS$g6PB$JB}i0la3<9ZR>nna@ow;pe}b?Fj8Mc3Ry0x!*1GZtbsEFH z9j(<&jT5F8ge~Y@5In~Op=vCzo%+|w51fHfwrr5)8p>}N`4^0=JX=?;8+dBeXjmFq zvjJ*7JVv8C;P%J`a>G@%8aBw{0@Qo>iJ{v0ni@49F5@RdXN;vliF59>RURYe%Gda! zY&BXf{%VQM)P1yt)l*DBFpKlh6Z$6ic7taVv-sofdtyF5Vx5zv7%p zmwLTlb_U=qWz>84t0kTAW6)RJx};Y|dfVE{;Px6WZgmYbbxHGTgzZFUcnMM668bG?apK5RoR`f8sTjH(raU19zj zOtf(ME4O8~LcU*5;Im<>xFIr!edJYB;xm@wuXaHOfkksau5GDH!CAT{up$$2fd%5~YfGjg(8anGA!x6}%y#iLLeTGct)G8$# zedUV}iomP3CX$r#QK&p#B)7wG#kD{-(@wUA*cR6sbq?urp50>Sb^SbLlHE60I)0F`wC1_0qENb^oUbCy zU1f@jyP^xAE{D+(5(bh3h^8gfl>z>wFZ5jd9U0My*%M2*UG=Z#krLQ;{)ejQu_p(r zhJXoUuhb~=!_MPnUW>P)fhlVN6QN-VJs2E=a1~gZ2m(=VHyf+_j)f2tg&S5EY}_T8 z26lIgU|-q*!z%3EV->|%@$d#+o%O&m=^bXq2w|)m!Gq6qny)H^@}nz){pdkpW4U3J zniL-cE3#^vif~m0@RKdD_gH7CqJ_FyrItkG1+}j9ryhiQ6t^C^+wJ(tGtu2e)f+hO zVnwh`mJH-+yfg~ot~6NVauytMX{ntZb!p>+_2ScdRYk%2-1)C@v> zP1a?jR5xPDppc6E%~fY~8CL2-a8r)&MVHM<(cAqKgdOIE(EZ%|(>*h6_((w_gMCV` zUDNW4|6$+%YY3@A_=A>wZAwi?X~Ae5P+rh8gfgl=Qa1q2M(8LbfXZy$qN75KDvFI- zRu{*kYY~!*QuVt&wS10Vi;7wi+APUxsso=UG}GaPM`S1-YA#N#R68m%-z^3E7t5nn zVIC?|!&0(Yjp@9rBRrHK0{1@E$3}@hKITs&`?rF4Mn?Q#3&MK z^);-Av&<1gwHJ5u>X(Kn1CDWWXn=I19D&w!q9iQ^`^OW)TKp$sc*Xk2r3;lBimEC| zShL?y*hCl-j5bcZA*bpo#*K97#Sv|6J}>lBlz~Gf@{mHKfzI2ALw#3h*r$U*Pd~?r zaa05?N4FqRhlL1 zfPh;2Cqz1qL>neL3L+M|ZRhBCKv1?py(3aY8J#GlXgAY3ViE$BtdsCg)+g6LNlZBR zRZ`q=O+AREPX!Vqs)z$ed&jy2p;PPCg-NFjq)4Y7q776Kdc30{+DM9W;-(W#Ik^L@ z=T=#mG4fDO840(RX?tL0{2O&RlO8K4P_b=%57H=B?V;%6SGxE`8_hV0{du>pFiw%< zPnh1{%n}!dEHnZUs=R76eA9to8IE1mTT`J`W|T%5-=l-@O@*O?0Ph9Lact6|?n)9l+C+uH@ldl; z7;PqOyOv{{*l z+gM^AJ*YAvh|}9PnqVTUXo!7YLoj6|h`}BDHf;y@k?8PC+fi5MH07wK=~1Y6sKWSU zqam2C9N7Kc&){9JW{O{W8OyLy#!?qo^W)y;GAqR|Ippg2OBZ?3_OMYwuyyga4unIB+)b>jV?p|JWue@)u7#hik&!!1mEx4zTMUHZK`|>uh9K0} z+B%C-A~JaxsDn3I(v*VZUoUtwN>N2IO6-E)O^Ztq4ogD z>lIlg=96Mv#V3utmd;5TO8BHZtL$5C*QS$7!M!Hk<{c*$$uwV-G|>XLMB~x=pqvX2!`Q2D{4Rd z0pn?-)al)@PYsD{N6|wx##kaiH6$MDQ1?AS*f`XX_)3&*ehcj(7atJZ4%bMcMpH?d zprVo^z+F%FZo1U-70;Q`T|n~BdQQ3gfqVr8rl(}g01Zav03~ErmzbO+_ya=kSl@Xtf0U6BxL6rCo1N5lMiTz0R;!9( z9RAf8rQ1lvxP`G!E1}vLiRu`7TI~vB8O0uLsk`6VKpqefH+L@09Yu=bj`leTd2~iX zcBQv?n*ZLB5VvR~TfC!=#4QH-e^DpLusfRky_h4)Ldc%{K@AcS2`4?m9R=|NK`)8i z(^{_CL>I*y?E?vKR0E+^R@$X!N}4tz*N}m1DP5JDwj5;ca(K-ucX~H+5VuGfR39I% z#VHaGWza^DIW*|%@(MZ_-RXJfjeZ}zkq~%xr~QP(mdI1Y(H8EIC4P*9%SbnU*u4 zJc=&Jz-U6YOn{i0h9F?dW!C!M4M5d+*btk?VCVw^&o^|~{1I98KrDVsornj-pWKYN zGs4n8Gor@Bl44u!a8XZ)cwig&&#qrp-(f+FqvB2JG6N3?ZYN!bk(XBOFw}O~QY54N z*p0|We}#}ydtI=(9lKxv(ZzCV74a~2q1;PD=${$Wp^%ns_2;0Fh~OBkvwfaabs@eG z@0J0TI-`pskv3*i9;P8EcH!E|{b?`Sf+*j)MC0l}JRs2z$Vx4O~Lmh}G24(Z|p8sS{T$A9~k&894j3q0q4#XD&XU3dd51iCS(27V}wK0e! zy*xyTmFzn5H!Vd4Q!HayXw=6HDS*(DDrXh`J&GwNY262Y62$aKNQfwba>Q^j8!IU; zX$?QQWjZm)GW7{h&4-V@7niilF~}r#M7R&ft@Yz~gH)?wueHVdQM*3G0D|QARfj{T zOv(o?>F3~*EJd2%MT%i+#U(xWv-n_wmxmNQs&}_B>SnHPi%Qy}Hu0K0CvYPPz)K1( zyI4t4NxMD=m!y$Uk)huXMsrDu2c^%GO*!XZ?ajIf-D1!roqGF*kiAEr01IN{ zLg-a1)w0xynT|{i@g9Gwwab9u!fS72>NtF)C?;uLYJ*8)Kj-Be2Y%6onWPMakVOL_ zmT2dzc&NY-TM(>* z$)gK;Rq`Z@8NEnvCMjs_w;IT97_7~MK_deA$S%WT5`YV|ZYQE$qN))KaRWuynerW6(+r1p^^rgdSt$-X}6DoVYPI>Qg<2 zTM%8^lzS^Lq9(%^uj0}rv{mcD#=tnZtEUOAU)L0sOcj={f(&X2KAQhOy)I*A=9U8T ziCf|&r6GyB2(!1}pHHytMMyMbQ(au5veP{p@=~-4*Un#pXkeM%BA2%KLywz&!LWG- zqsb+n2(TP0#vqqS?n@4*p5l+2T~b3~jV0xSm)!R9$Nyb1@H||Ev-gQ2U1C~jlFlrhq8MOo>=m`;r^n8=A5(^H7i>nq9((QLE$I8UvCmRhoe{#-;5S& z1UCTS02@Iz_pbZS6GVYXYs4pt*eQ{XCE20~3e}zl1@S zbU$=Ksj)1zFv_bgnNPJE9)qE0iN#92xP05;c)pF4^@NCq?91C))*SGjRpCB z1W>c#sS<8t`D~c)IUNuU7YDWRF6uS>z@YB%ZgL#=u4-@?5@X-11_>p7oFr%o()ukH z>IGyPDD z8c~P3k;M0zGO}W%UO=X`(&LpNUYkvgp{=zzsmZES3Eh?^ zt0YGvU;Kcef>^5b0B~>ovmj!vTS1Z<4S&G6j#X`iJu}N$llwbgFsig5ziwX2&Or5b z2I)e|%Z{nf@Kcbm`WZ~`!)h!1jxlW&oie}I%+zT3=mx(p47Sx=j7rs;y|elZKjh$Y zy5_dzxTdOftL50XJOa9}AZ989(wn&+pf<>oBUa0UhalwpdODh&Qd{A7j4y`DfwdLl zM2&5hXgV0n8Gr|OzR00wxbY^CU_zGsyi9JY2g zm4`lvldmrwtcZH0S|9RMhdou@y;jVirzD5o;_MaUd5%7cpITSHE;?L6I5q1<&o(XV zCW9%0Y76l+{E0zl^v<{aWuuL)6hXD_-judJK%he$P1QFwun2M}s%`g{*O`(4VkX57 zF??w7ilpLZ*SreiD=DHppBQ-x*L%5ca&nV%_123}d~ z<`M^2g&?@I^g|DZ$*NfEA*ryem4)QQp4nA5*#|N0O%H$Mb zwX0+>R+a=#^@cQRHGIsqD61WW0A`q)?viz)7xw51RixFI`Y~tV)oOTRuznpLMz1EV zGMXZ-eqZW|)oJ*Fp_h{T$8QLrCLH!g%Xw414+jP%Cclpmz^ql~_pnwA zFRut>EX`Vx-m@ILN1L=2{kpj3XFl@pf3sRlx5UY_jcGV9Fe45ChC8`814xEayQuK^ zXTpFDgb$~8C2z$`OUE>n<}4la&v$#}!)dQXPI#WnUQ1JJODM}?^P#qMD*u&@8q zhc?w9K>2!F3gH~A_@lVh7X%xs5h%+}aZMrgc#5#1brf4KmlY`Cq|OSnkPIQLfV%hvsyHwLjvWO2=Q%| z27sZWOa~DPKqgrLG0Dg8>z1eiY?BAzkL$H`dbq4@#p`A@Qq<7!*JO(DumDL1o@&2u`<0i^MN>600?Zn6e0TvEw+= zg3BJG4^lNkP!SS;Ldgo2%WHYD$FNct!AZ6J@I4~4SLWD60-r7%92UvL(bRz8UZV&l z6$BFW4#=|@O@Ty);-mI85ke{m>KYv7T{D z`DwFJnT%qia4*mz{~;3k0ZWTB(=f2?v#gZ!Obg6NVJ<2|DlTeYS7D<(4))|gTRnNI4&=yfMwT>!nfV zQBudl2C1)QIk>3N^P)DuZ)Q!hc8r2bbau!x2(<;S0qH);J3_lk)e@!cjb%_z;ENDn zNzo@}t8^4SiKu_DzsJm`5Nyc$UO{MLtyQ(0ln~G&l)KYD240%fwO6OQ?Du3Sjd=1@ zzo#-O2t_k(dyX9RK&V?dHiAUn|Na|+ie}o@r}_aO3?dv#VC*C1E^~&@bl{xdR+pLq zUj(%-bp|v)>~mERLNfhF1u=i{6jlAda#QSN4ZxW}1Ob=HL@yel zcW*sl5Q?o3u2r&Ey$>S%lI|u8pJk+TYm1_~b58`|* z#I}QDToZv3=iv5R0t`YNM{)UWXF)Qd#VNgDv{_QTKsMPYgAB!-Qgl(* znO-p3FpVJs@K}>$%*-#5iS@ZoYDlHh2NYY^*^LX4{4*z>U5=1SjX^JsJDKK`q7R~z z4|25EWGoycZBo%`AHpcnFb1bYz12p_ki)yq?^+}wlv<3`Zby&ilcL??llGy6PYQ;* zOXU^yh~etN3Wi}Y5-C=??xnwkP-+Zybvsk*&^u!( zKIsKxm?>9|dCUAHley5@GsI4>vFL^kSv~3`wf*bfkaQY8DRS@xe05r>AD1W1Scp@E z@gm1C(?9eW)L1U|rBTgclU6egn`AlE#ga}Iy(c?VU-5;&UZfX2N_y2~<(%b|_WD-{S|tP*2~RXHmc38kDXY$vCzh zLG6AI1cgSdd{+v3y{X;rh4>J6%5x43R!WYR9*f%j);_1l?j^^vL#x^Eg`j|rI$7)J?-@xJj3Bi(;3Nip6 z-7~IYkXCO@$GZmM{H!E2AYLD8^?N3^7^Ky}@HKZRK#*g);W)nuL?mLjd9~3HNM5j< zF)6$BF*8!QO1B_lqiZw`*Ehr_B>PeI5`Bhev{k`R1EqpEIf2pV{W0juvxy-`Tc`s&5XN}PE$&!v*R~ixb)Qi3M~urI!H<17!jq+H3@)qD*!%|Qxm}YP zD(Yx+gM>9#3U!?9f^U9WCYmu-x4d1UA&#O9Feo9{7h@6Tje8^1S7yKCIf*yT8+xSi z>tMfv^j5FZi642vB$MJzE(-lb7OCy;9Seo4^vk=hC%yABmQQq%8vkAlQZ4$wYY`6A zBL@-8t3HS@o)FGmMx}NlCB}y{lNt_A3=BehQPkn%Q{aeTB*uCURqx-4p}U@qaowSs zMZOMYuttA!&0(}4^v$vz9`yk$OKU@nxgYMlnadMtElj-qNQ~Qrb_9 zZe7EDt)8DEk5=zP>aQ`>Xpv~1G4lX-_isSh6V9&$*VHrj`SJwA0{ zaN9~*wc6;RX)Z=lNc&JGg+!X1*CpC(IrWmE91>}Bg6jW!#sZHIuVV)m<2H>HTdPY= zFLJbzikiW-cm(;Tv%L|dc%(JPSD zDR7sm@1x1RCT|O5;MoPIX*He1OItDa%|a%fguf@K^?XDlCX{0BMJR127IxP$m|y8q z*_ASIUvdM{Dnry@*7Jt?0JlbfWYcerm{ls7VymklgH__OKnU#wr5S;Fr3mtgS5n`= z7KGXk(%L%K=hvHA;#KWvb=_@=ZW@G&R%pQXUmahvBm=Vfp}{RNb2Ru7FL(s8hmP?V zyR_TL;FlmL$U~6=x)b7jc(g-=^=@c`ViE`!Y=%eoG?gT=)<=f1xE1P;TO-2I1A{Hd zb*rikwsT)JqPoPZ)nGV<lozmi17Arh2Kb)WQfuG|q4z8Fy@I&gFxmXbu|Tj(J|NT@^+GiJq)x!^ zLmBiF^cByvj3Sh7%S71m!B__a1%{qf=;)NVwPh;Dx)dGIZF>%eZ{;KugLgV6i>64Z zjVjmKz7+zSM{?{&h}7NOX*nd+w(y8`E(TpE3C)r@6*;Q*z-MZ)UnzAr_uOpCwn@Sc zhuG&Zp3b@oVOJN(zVIdsMc*^-G&oR>Mmoo?Tfzoe%7bV>H%23jycUziYZ@wAJv7v& zkz8%6!C+$?oo)mI-^5^oQ8d)9k;y}0(@+hab5x7qWBG@OTFiaYP(Y~t#SIhF5wqlo zrM}29{3;`n#kX(nGy?5gK1}ZAX-6~$TY0El*utriotl>$)c-WXi;l!4qVTRM_Qq{Bol zM{YF=zH*SBltQ%VV`a@msfyxtEQ5%m=`7uy(t5iv*hd?n$$`WuzwcY4({xMoQ`f(1h6hMNMEnB@Oe@=!bE z7YOgzwh%Q9E_-K5W-L?{AuI)>{(lWI7%8}G_LWhm&`+VDrdVoy^$9WT)DU@3G4o5I{{6vyevvBWZ5+Z6`IjTG=pYP}-@0K89l$6!7x zSj9)FPeA?p0I)B$1f-ma`R{(MzQISS#YX9Ca~Q6q(Zz`)gNl2prS9+DEnj_tJsDF3 zl`G2igpINgLg+i0{3p#yhEZfxeiR=$e>4Z$`n&d-MLx05N9!3tev~+-5h(4l!eWPg z@KH}-i~Rt=I3;$-CyPyf78l`YyoBhPDDp`uz#)ed`+8yh2*Cjif9(A{Mr7_O0u}eP z&S1DFOF__v5PkBaj0f$-iVpYmutN0Vkr2aNF@!;_E?+D$Zm@wbwKCYWpJOowTi?Nu z4YDwFbV!2ZLk1^kx;RHE^vYXqQhIZIbH6L*y>&FO2IO)e87+ zC@M=oV$h$Ix4*ogZIim_ADteyX77f1ld0O_>(n z>LeG?W@WS}gV4lNJA93twk;jD?TSGW1cjP5&HCbii!|SFb`rtab?tU@I5D|*_$eu6u zAsjVXj0_*|dVW_~B?6`PH%%|81F%F_&CFaI4nOn`^~BKaqdN^vFXgNMJuf% z39D2ifvwYJ+A|TI22m4WiLuTJp7uz=tr`kR^xo6OxIqflTp7xYPURovzQZY53~mbY ze`@n~>?;R$c}Jr?hANu&H$J2m zNNw=zP7+e7B%$dp=h7j`-Qv{;*t6T4nZ2haftzbdRK+pgOC{u%p;{8<2H)mJoq_LY zz#!P{EFq~-Fl_7;cD>GxIs;D(f`5mK^~F2YY6Sc$M@Xe81UYogtiNbdDR4z9ZFZ)| z*IEv?CnC|iTGJ@jt4Do+CC6$b>I{5AsQUTsC%*jHh<8-KreaAWxU<4Vv80R}9-l zMqo-Q6Vn%&rdtn27^NtLx4pR$>b;@9C|mXVS4q3%(0faBoA!}FclCNOL`~SdY_$ZD zM=iWMAWZ~>W8rBh91!eLVWOhRF6@9jf1lh?N;MXu5w3&jw=_!TuFF`^n z6^OP%l_Xq{>r|3@z6#@pPDl5wfOetkz zic;FGES%CA47p2HAD&+~r&M^g^RI$TOC|ZqLBsoOLVUFbE;^UIh=)VU`QeNlKXBD# zjE4jig+q6*;zstBiWuhA;6p0aaA-cH!d$+X3HA{(cE(f+V|A>0j<*%den+_5KCJT* ztm;h8mmSYW5>}}MAu$Sj(FX6-U-Vk6(mpw1l_tpiX1f%&CTrxORE*b>gjbp%9ozlk z60?{IVbTYXX|EbiH$$R9gX}dbE?#LL4oklEN=}(OOfakkbq6juUDmZio(|1UUcG@I82Hw^JB+B2(?Q0vnJR1K z3BpZ}8>oi6_h8ft*b3P}hOJ7gWTmc=)2ElwSgUFUED-L&J=UJIs#ffCG)jNB8mt_r zadb~v7*B-SJ5|*`L7;JZyGf;dfyA{E_|0g-cRsn#^S~gF(}n&yWo0l$E%6JFyn}57 z7dAl%1JX7-zupuv)W!$367r1EaFnX`{X@ZHveTK6IB{1j@#ZsH;BSm!LtUz?aqO?wS zkcY)`9gDju*G_yO4+ufdJ4iUDI~=YWcAWU9Ii?78IHu{Ki{R1OZkh?)x0hd3;(aue zb7-cy_*h2v14KO!3}0@j%}#xSk1ruqvC(hdbr4Oe`yqAe(zFb~)JYUlT$AH&H3gnO zOa*kuhdhdOf4JzS`qIOFGM?Pb&WQU`pSVX!TVHy(OKNfAnj)SLE)nl=NKXf2I)`9< zN-K=6vrymPvw<8^X~lRLAC+s_gd)6`Ri>+GrF|I;UI|?b#6_z$m>c$}#f3Gn2{MQ! zVd(XzyDP&&Ut2C_Y0LETBEUl-D(b$0Ti)8uV2WB=Lvt}n!v@s2WT?S$ZIpv$cqMI% z0M9rubT!HzB?|HC&g>Sqv>sN}8Et~#sGFc77C?~x{0}=C?K_>9!}~uJRJ4-eN%}p06hfZ-Gv*#rUiS!ec0R82=EC4i+LnrND)r!vQgjP2MDNl-^mNB z5vndYtyZG`nFEBlF=2K6ynJPW#9Y5DJ+@K;FE#Rfg5=Jt?Mt11(d)l~DcXsn^CLbF z%EMsQ64h4k<)Yrd<+lG~kF*L8z_RJbQo#`$rxPnn})pWt`qNy8Baec>K*=t`beeqqQ| zqnl!*w$qAQ|4yZn8t(L-F1TK}vec&>KH=*kzypK6Qg^FMzAhpa8%4duO!e751{o!F zs8yEaj}FXj6+}7KWxrD2-ysI>m?mk`!QcP(DcjHzg;b^Q)n3ZF==y{@>gf1Xk}KTfg*m71o&{6Dg~3= z$o8B{mwb4vmVd^zD*ESt3|GpRc(~`*FY)2YB=OJK=Hg2EY}h6k6zVttk|FS+%(P^v zL(+4@cIK7>p<$c?QOcBWN{@V~{Z4+6e^$QqyYt|);Y&qAlM}b|ORr@(|c)&fk@RPPa}*DrPeID1(TajBDqc$Cct? zYwKU9coI@HedYltv&orP?^qG42&pZXB_G~P1rSQT?k2;BZLmd1Ee?o38wM*3mhIVS z`A}w8g1kqnGV&=1-C1~B^Qy#*R0f7`a{%$(i@A}&^!<*_ANfpcYH}%ipeW0U$avyk1 zFLkx_M`KoPmcx{);6LmTiu@%jP|a@ zMybVohwe%uQwcLoRS^Bc03Z5LWnWZW)Kc@ypAFyo2N+y_m3?NRTq=scE5|yeNU<`X zO-mI9{Y}7#rF!p;PBADinH6JNDj}x&BHtPHK|XNBL@mcdmGw-Ol0O#Bb>uJ;m0=Oj zNDgfIVer-|0nV5fFw}bbV#rbpqulBff{0xcGnpt@BXWbdrVG+;wV0??5F(t1Aasgq zr+%3zDp>18wPX?aa2l!vQJL#mCzpxh?DA?Mnju9GXz;|rlK-6hl+YmFYXDI zz#Tt^qyD9L$%KS4o*D()B|glZsL&V>Tjgd^xFg3B++#QcQ>$QOEU^TE?NbhpRM#VN zfA7pMH#uUf4-3iCmD{;fqjwW|X;c^)z|F8I#0bVbajR-VW0_2pG18gd3ng{I1y_gv z6=T?{Ffi5YRnXfPD4&B;{~ zg34|iD#rHz{!5x!FBhKa9EDA4hR?~JFv{f%^z}+C`T#GhuxXWi|W>)nlfo4 z6qQH9{d*M{$|M3|hAL7NL&bVuW+fC=W287CvvNx}_^C3|$AZnAgr6z|z1d>kI+N+c zZV6P!e#&k2tQ@!IIdka(j7AcE>SD+zTpM*}IB-Qz5g=_CcB6$sJ0TG!$EYql#ZQ%u zav4Si8>N!?o{&=ofoy~(SD`*GM=!-qt#cA;>OxR&eJw+cglj)g-(WkAZ6xX>d`trp zm1L3wYpYS6gfB)clzR&haWLZ?C2;z97Bout=!wB?)jkwsjb~Kq8~j0zHc>TaP(z~r z;@##rW&~sNJ_@OOEL;GNGqxUcXT>wC&cVn*BJrtI4<)ozsT2qmsFazfopV9hM5k$S zh{t%OjgV3Yg8$cP`I175#w$fHP)HkRCtyL*$c)HH5TT?l1R?shjTC(a;_y+t2FA?; z7)ba{T_-Tav{2}Knw9g@k;3VV45a9&_`RP>XF!6pP7Tpcl+-Vo+fI9^jqpXwF2C+e zVixX{5Oj*MxL-6E6-zr@)LkRPne#mP1A}u<+x9I@;v7>>blV@fjPSsqm{;=}9T3i( zu@o2eJC7_uvibduzeq~Q%n4`4SQsxGXQc~qlotc(G_mA|zt2jzs7$OLLSiSs5MKY8 z*rK8c@L39Sb5wnalhdq(i7E)HRFXli@7=TQk3&RpmrXs2XfDbPYdzCz3?J|dLr()a zeVwVWM=iLRC@nXYp5ZW|H-~d4n>Vn0YC0I~zYeT}VT%t&5mBrTc2GUS&as|jxy1+( zbs$K;UQP}88&RqNRSL!amZ5}*Dhv`aYD#z(tZglGOaS9a*@rTXlq0g*+8^VvNLe-n zFv3{lK(!HW<6sBYi-N~EyxT?{1Te-}{a2W%GZsQshdUX71Ba5M&iCtL2?KR7m=tG^ zGcC6qn7$-8Yx+I%(Q|BLETRV530?vUj5^+LhR!ZBA=syT-J5^PsIVEUW8IqYWCMd+ zC0=AcQs*?8Q5FBx`|I=_A)rbf>?tBHk9jm#@uT>s-G_yMIvDIS-V-tx=ASZ_;-AWc z;>vZQS7fVJTnMO(LHmIrhg1{uAcnC%wt!UKgj*ln*HBA?GZru4U=;tf>mvlzk%JK5 zUMFL5rXXV}{s~@CO$G?T)w&we%wq}vG%&`pwLdF4%1n2R=}YBF`@F>)Q%4_o3+rQ* zL($IA2P~L_FdIeAE|x>RgI|}ex(PQ1?`Y`Od@cQMxmV=ypn(JmPj!!d|qM}w8q=v#1gSe~}c`FTc6pv1qppg2mKM-J`8sQ$~^vIn|RGU0rj%rBAAxvKgL^ThD zzLX`l<4!B?LxQ*T`Vb zDU(s0($YXLf zk{gVwN=dp{L%3fFXzq-FfwlB9GvAaMA$&2$vd`n&2L$IK_4zwPG20Y%;6?<2BUOJ2 zm9=r)O`b&^gj)(F@_HX4OWtS|jBX1gY*Q(ew66N^9VwhGi4;XPaW7Oo|7q^!-OZ;q zvVT(w4ijS_%{8f6@asUZ#xW3%96ldpT1_=Yod8>%oAV@=84z+>H*Dg}&6qO5*qk8N z+=NVeVvxe=1>Q`PD$^~-7DcLc@Wl9i#9Qg7k)aUOy=o&w)0q>baz-NB7@KVIOl#^( zcL7=q8rXH)SK1zHTZtHlXUf_28F}$$#{&bWc!SwA!-#DVxL6%qw4(BbD+kL_PhIij zalp+oapHSdsoDk)3>uR-yJCH)ZE(S<+`?149T3zfa$=BMw{YgqcC?JC8@5ve$)HMr+&JTXY3IAW_W-sng9 zW2u8{GJlY*AbO|CBsa92Tu@2L7z^g@L!(WM>a07K!!a>Ftbx~Di8fV8$rdd(_zQ$g zB6>8%RA?24Zf6Y6=M#gT2i}>3VTvgj1TOCumU~WTYPnBzYj)}HB9Xk})E)TMI>InD z1k2?P#e8*%QLgmpforB@035Jz^m>eh^v89jxsVVk4#l+EInhjO6bGz=ma|ZM&sJ|> zYhxpbXsr0apj%h36(4#^ju`2B0+rjFa?tg^7kjfzY7J}y+pKA=1heAL5^XitQ-hE=`;(@G*i}1(M-D>L^W3qIvbMu)ZQ35 znt)@$M-GBC-aV&`g=RezfMvn4z9t5z>7HBXT_Q(lCU|vv_TXVeRFjEw{)&fZ8iG0- za<2+I>U-@ zjtS3#Gw#5vZvatU@ySRDGtN+`Zc`IpDKwKZ6jLPA%DKU5J}|fk-Rr(Xb)MAp#O}s1 zSSCEU8tU{^bYf49_hh6a5LB8YzJs{t4u!M}nR!9{@81l@L{l6Pfs8@6AWCh58-*y0 z`q(=eCYl0wh^BRJ32iP0NewEodV4a_R2cE4`_@8eGckCVy7v<^O>qLnG_ARB-4dS| z1kXP6`PbDZxV)m80!txlIHxwj69igT3MmZz(}Hjm55^Y0P_#NRIF>rs>@}x0!51Tz zx*0o9a6KTP;;;8mli&mKiE2`h;4u`kz3sZxBe)!z?h{%a>re*Q#CeJ(LnAGv4XfRJA zLL$r|1!R*7_RmW7BxfW=H|>j-;O1(B+!X}@iZ!QEHfb<=`+y z9z)Yoa@?Ip(S)aEDaZId7oQy6atdIR>Wx7?g3ly>;+u3w@rpryk7^!yorvM1L)1Yi z;Dx^h`y>bl1|_)Nft3=Z_N8^8u8%=DfkCTG7dvKdO*j=?%#;9!4&b~r!22S9=}7>s{J}R7RC3;IZX}fe zB}Sd{*J&Ai6AkqAwu@GNzG%KFVjR9{$!Dp5@R=2Q-%$tgrBMuewnkUyL2Ps60D}$RA#!0{f5z3JcMR^=TntKqsR~t#&-!(4q#V_7{C_tw zu00G8ioA6@uR-Kat&yKaIIS*7^!XVL2NSLvWS6rZpsxY3p~6CckYq4U29M=z>SR-|e5?1a9~aIhWE@J6#x zYxMvjBV|QI67x>n=G2t~^$`{fmF=X>PeR&fLiH8CiscMMKhF-8N!eV*7V&hyJ<{1& z`4a=4qxI045a{zv&bDDP!Y?37K^~Pf^Mn8&KnC+fsR@R`VKuB4&Kf1B5y^pR?lyoc@cU6&tmy1h+mUp|t=Hfn1e%EoXv@k6J?s-Qa8x zssMl_ZnutW-XIL^99vBgWROt>;ztrK3XQQq!?n3)O)>)KYo`e=fl2M8fW&rYWjiK#z< zOoP?)S-CqV8FBmSN$XMEQ>s@KfF{)CiL=Of# z_ya>t!%;%yXv#|cNrbV^^kA%h@dce99Yw1j@tLHetkxh$6@4uTJ#D!Md|jlj)?Jxm zwp-4JFkoWvsLwQ8BA|m&tkt?}a8_#&aqSlH)jpcRTS*e?9z8b!@d+$bUBng5TiEm26llGG zox5U@Ya&w+a(>;?QcoZuQwB!7^FA83-Z2_@r0x`|hgSfp(Ug;2NJ)b5fx&)(Ql!g_ zz|2*~Rm{~oHG{a~>_APmvYBTDKG#MLmb4emRyGY+H3Wegg+$Y;skRl|mf?TIj}&_~ zE5h#D8|)Rtm3rj+9Go$jzKULpzS<{v&{t$haW(h|e!W2M>6ozP!*~XPB@pFZG_BEu z%fzDNVz9R2e6{_#6U;$};J#CgYDawF4uiFYu_^~^5bl)ynQl|jL#G?neOR-zo`~s_ zGeG!hT9vdbX%36$w_>lGsSOT`Qe+AZVxuKUYq%(^m3ZctTM%6%;A(5znmMd!I2;!J zo0L?gFc-2*j|h1OED8$+{+C{c>PmAaw-0cCFk4awX-5iFDQ2T2hO0)|LW{o=fYKcy zjAI@K%gnN^MxnpZYE}sz`oK{9<8+uF1Js5{vAm#-Jlz43P;VxbxaTQ+gW^*RU) zm{+XIpkERA%^?G#_Ya%4Dugo5O%b@%2SVo*bgQ=fkQ#bQ1}ZIhtwFEcV6y;h~ugPu=y8h#x`F;>!p8Vl=n>GQ*m^Aagz%67!jCG^#yp6)_D-Tu1=j-bD$9XcJXC zU)rkLH0q0YlNWpKk*xDtbd}^_5s(r!zZ8t7t8@%E1`(RNc|hm#f&>3iauiz?2%50u zLb-jo`VOC=9JXp33gOJLa@PBw940lC%%#byLW}#{HWD=RO@ob`AoYY>pvi**;pCj%BvK_FB1Z%)4H%g(ZwODHm5@X^MJ@>kWpt} ziBhTCn-uCn{D8==W(f5lu1!H5hXt{j7FR#MKsdQq5ZaqO5cL~=hj>~im33Da>9FS+ z`K#EeRf-~~Y@PJ=#DxnYKkcw75d2r`Vsl%%w0M=F)JzKe3Pa{u7-gP2#;{K?cvSty zY-&DSc1D!{J|{&?Whi9nxkG!0VqVI|rC`}Zfo3ALjYB3S`5#gUa-X92#!$$NyR0um z>DmFc85RZv0?(&#w#4Bn@DIc=P^t{^&^?(ZFfzr(N|9#V#26N;;$`-ms{*HkGn68w zIIP1As3i&sUDY*eB*jUUHYk(nm`N9$k3x%*+QlG{8QLJY?8FmQnvGE=x{5JO6q1K) zPWM#8(gdPLQVw+4kBAwk6ug9HhCOp)`XlC5bkr7vs^f4Egq#F3$4?i;4MJ(N5Ywph z2$czx-l`Fk6iOKL1>^cI=;b>SRAlqoF@_7(16A4Jqk<-*2thtzU}jSeuC3pwOLt(; zu!@U1XRGH}ii@&wP(`Q6oiD~PohK=gD(AEWkUVnVVi>~qRp0A{cbKSk(G#=Wp>XkD zoo}!FcI%nhBBEH&6c=->#rtB4$vEle_QCLL^lCPGJkFS9HX5&3+AGYnl4A{~`H3Mu z|ERszUE+1QO5r{i;-Dr4vHoP!C1C7 zN)#>xd1LbEPSN_TNs}Nc_kXea!$Dz!q_yDQxI~4ovZZ4dM-FlTygTZ;-pJuiD(W~4 z)Fwv}P%<#35frK3nRN)2nJxZlJG@fp*-}tEP(_<1g_d4HoV+O6R}SP5yj&(!QvE`M~izp5G1|Z@tJyxK8t$V&RRTWHAX^3 zo?iAl;yZbkK{fHT>oSxYyV<+HQh^3T}l z;z;?dP1K6!c~XWV`T6WbqWm)^N*?;Fb@ACSQ9TbYnJ>iI9Qd>N(PfL}vtgh>@E^|M z75?n#mVd^Lt`Gz?txq6W0#^#3G-Me-WTWTa6wQf5PeVWII_>}IvuU8}IOLpreediI z{8<_3_v8qlwG&01z+ZFVGpQwL#W1Z>;Qhxyh+~`$){0lV`G!a&x=v~lOg3@cD$gvn zI&JM*X`sc0ZYc>q9QH}tP7QsoKFu%HNMfH@@z# zS1-fFAC?zg_E{+2lx;;7EP!aK^O^9X5+azFIFLUZ zMk)xsvUu#=G*O0i2&T=#ieK`?kSC`P)Nx-N%FjWRf0mJc-=_I&7^$1S-<_V%WTYiU zjC7w{#(qqUJf`mVw+1XxbX(-oj#1>2hC;AR8tUdV^fcO4XmLv~80|-eK}ArnGIL8A zOL0pt7;UFK7Ecn8?ERToQ%jjxf*DOL6~kY%MR?veQ@>##k9HvJl>Pay3+|W(5 z@R>9dGslvwj@1_rLdh813+ykpJ3Nfij?sQp7^LGhomK}C9sl&SsC}^HSa%j}Fvo)h z!-ti^xJIh>!5=W%lL~{N`3^u0g-ai5A1n-tK))R{AoZq|>PY5{zilGKqjjnSu66qT zpkXd+4uzD(-K=3!uNcHIf}oxN)`!{{dWZ06p-!^C6Vea_Pdq`*_aenjH1KEH@0XC4 z&)SW0AS2Sc6dRx2IcCSQ6fplR1loSWS`(QnHYaN`+^8VP9^A>iM_T@@qS0k@Q+ud6 z5U}s22;9|0aZ8gQlVT#p@S;e;!NI!tpN~oWy5`vNg6bP>92K(6g9d*$jZ{0bbL~;- zjrI|s4)%*bS2N)`7%1oK1gUGhswr}bW*$Gt)#>>wntl@yOQnNb(yUO$c((*j%s`Yt z6_KtG(?T`RUa?szrZlqJidtHOC)K2mk$~Z?q`v5oPH_~imty7Hs@Gcy6JtC9!xvjI zhgM!`A!$_LQI$lo(IsE4_9asa^%1zyLYhrxy%NB@ulYePF)5^Iz1s5I zCYK^nkxRS(BBUAG;N^NparMP^Lq#ra`!p?#2L#V{s>H`$kVQ8vrsmGmI8V; zZ^%Rn+k3QexTSSoG3tp?m*Zn!CIbp1CJKM`jmjm>Ic=1CDjdr0@^AnXIIPYKcJmyA zUE=%+hc%p!*`=&`9Ht=PvU&XrVi7uw!;z1Fx@<5;LI`GsW?mh?L@~rKR_JyjXJuRr z_A)lFyggU)-y?^f9`jJPctOpCk05}kOx`hVM&LA5@Q7gyvK&Meehv)Wbe^#)45>Gx zDT-;0CKZl9Kv*wY?FG^+r%0wPxaNM<1A`dMMIRZ#<)~>;UUs^wbeYsS%g8h`(dhpbjxvo=t5)G&@_sPG<3eLbb&$q9C)b zBSb_g>S+rh$WT2o$lvLUnc$9Ulzg`w%SNLX!(%j14@9q5ucn>~uB>&N-$6Zbvg6`1 z&n`BG{uzwoo_0eU+>=4b>)wqaN8MO!kxwrm(^{#8CONGNW?alW7~PT z>Nf=;2}=18-;63vKt&-%KdtE?E-O7ibkgphHvyH=90F?d&VzvBNKU`@TnxxUak4Ek z6$7;kGAJl@4dE0$EY!)z5~PfERmtF>+SmZR|J9 zLxJRN1<#I}3%}XCx(z=taDT$^5I9BgPdj`y7kff*yEGBA2v zMM~`$BMu<_Mfi<99W9JW;&AXfyMvQr(TQnvD%gHR9fuFxp`1;|M3u)(6Kbnie{_UKlq80H^D*>=?sR@j?(N4rDT+rlex2MM?eG#xf`= z5b&y`fUXjfJJY74#{oRI%i$Zd8eFwnVCNbL<%nbfoW&@R)^D*= zt3n1T#guSaK2^J!4e!E%Ber=LglOjqqDx@Zr`-G$RaYn{3NBh|O=%E4egRR<`?0O& zr4;B`l4Z-&1-2mw>{xc~nCdMTAmv;k>ozrmmm>M4Q>9bv(TG=Z22;e;KA6Ew8ANCB zYwxC}qSm6Oba{ldD_w6?WW~Ia$`lbb2jjRGjC|2CMPxeE)Iy)?Ete+-Piue?g?RZC zMr>8Df3U&pJuaW-EytjyG!}eub8Ekvn<|k$+3Fyt0`ljrf+H+xr&{dPnpIUn(Hsq} z5j&rm_DYfD@Kf6vO}&UG2!G?9GJ5cKQ6TRDDjiJ_t-?V%93{tiFXjkwHK&4*vzhzf}3%)sk(9wIp~`+9XBe)9loM?5jaH{4BA z?TAaOoI{PVZJN{of5FIe zP^H^rF-uh#vDCqF>5`@S5Y;I>Fi?=>h$2l>WmrX1ZJY|V!QU|MhL>Ijfh(Sh?i#SI zH;eC7vHB5zk;A8${J4jeu@q6Y%ki{SI?UWV?c76_(R$^oNt$)K(NteJW5(PN-p*^HRiuc`~N*UWaH;oLt#IJHA{Uu|~2mU~5?K&G`qNU%QIO3YV9$HiBj zx+gZ2TdhcL$mXiMu>a*@j=IAgBWb>h_7{<32?5lX7=;*t$gHw>K_J#S%b&>RT^+-z?EB(Se?i>}(L1m((G43#Qz%&I*mfnH3k z=qiq~zfU{kU} zmoiqQu#H{_VvDwOXV4=>kyUFzMK-5LqLWbKn9OUZ@u(|(7b9#{i9rSPNdNt2wyMOa zeScjkVXH2NUM)cdF%3eTGd)FCtyLvl5*$O(yKPQZXDH^XGOr)FDqX?4rlEKA(yp^0 zv`1tpEF)X_wobxSWh4-LYIkr)V)88hxQMECpTwB16kH|dnGIQ2q&H6$2x6J{wHBT# zVsH~wRMpj@X{y4gEq|Sq@Kna2dm&Y*_M_2;bz2w}pDt%QYRB$SfKcylt&SRsM)i+1 zs_w%Y%Tgvyol~1Au8T^=wvC*+Ee6kl1VY`jzr=IuMtn4?hea?;tuT*7&4|m=)O+|< zql9ozj9f9ciH=e%H6MP*2ul@>x*og>G1QH?Gy|s?j3t+hr z0Z9zK_c9Ap0@q5@!<$X`Sk;X;P`GSZ2MP?Lr`r?Mcq5@P$+{W z?XSHkYBWC;J1Kr@4SvM&9Sk0~f)(xTr&1?o|R3bp{G2t+=%85nhD+d?VCV_ z8~re`p{ELiL``0X%3A59j_78Iu?6WWbh;xURiGQ#Y9OI2bn1w_1Q40vPjnP9%D`Y5r0gl; zJ2=juijCUR4Ac@&2$r_vdGD~?KfS6gGHQ!Al*_*(fr&b8gp_Pm58|^c5xu-BBTSU1 zgb+XsF*qLlp)$0g^_KeKrfl4S|^W=0Zb4 z1p>pO%csntAZ{c|RYxE;-=!ABSD_%#&f_L2)q%LQp?EBtMB}4g|Gsc%j~teiF=Fh!4BGjz$-QqZW4~Z?YO=-T(h;D6r* zrsv#Cx#~3hs*UhZo)jeDHB-A@Pl`GZpP>}}v>7>6QA@%8OO$xMpZX5h*21>?E=9CpyfPnc34O}sqRcKB$c$fu1cQP<%M!BL)w zK=RvFgdp_l=ir*5tR@=r$zvgkf<-gI5)8-J8PwsPc8s=BE{Ey*M;nK^r-J(siegbc z7C?~yhN9{?e1=ur)5ZyMsq#Y51qQapGZFc1uCbG%p4Kf|4Tq0Pb%ThzNO#qfazTuO z`*2+1I^w{fVH+2G?sPiv$RvNFo2-#>s#EotnEbl|K6hM$#=*cwclu0SlX@v;sWE1_1fEp%8 z(npESIq6j~`<|sFh+An_3i`zZ(Gdo9xmPWRa(Y}G#6@z#P^HS55g@q6Yl!H=K|^%G zf3+0f@A(4J1{w%2`6$3kCSxkTiB$ldOqDErpK6*U1p7w|!EC6E@tB3#ra~z5T=EiX z4Raw>!$XXCC$bMb;wWCdaJZ&S2o2asinR*uO(O+?%PRyUzf#bF5VEShw^x3&a)_pF zTMN$=DX8yI$@EM6tdql!r0iY&n z$5M-CdI4$sr1qP{20K%Kv$x6OnO65lFw=r?VF+Mm^ZfrIPX?MC6nu_!y<5D3Yo?hKL zvym;P4(I;`gF^rQ;#DxG^mhzIzgo2%>d0Di%AFkkX$7ko?p2QPOi`*ZXdc)KG0&8- z5WxsztBqDm;VB3GDZG``7q6{~mU@*VJkyl}?_r&000cEhr^PcZO(>YnVX2IT3!P3< z7sjCBz4NkDZJ^}X68LoT zXgSzh2!Wm6&E%S7iX3=2PwwIlVS@$+WIfI2Wa0Hi8ES?_6!VVJ`@LQtqd{DgyJ=<^ zkr<(Mx@@)Z>{AX>y?K+izIby_dU@&KJS}HkL{0;cFlW!ue|~dDBc$YSB!qbEiS+14Nh0dcB&p&S;8gT1gGg2LpsI z5m@^TN9iYWwNq5nE(zA%!vRDMC-`Rle5)0MXE@ z1%X0W`K<(rk@%1ty%ycHdc;XL83T?5j2OJ(3ZnvmZHJh2lQ8P4Yhh@XN~H3to1sm* z2@Fn-j*|1mKGe}q+4@+$>g1b->LffsNSEqneQ7lcEDylc(ltN2{iuypBotdob!C&#{YrjJ7&B4PZxz zb-Ha5oBOgwP!9N%gRn|2%&s&wmYJj?ptedA@%B@xh~Ha8 znln37_h%7M>%Ob*!UIGVk0apLcGMj>kd(jADBW9u^NHJ0CfktgWpCCHRU63|bLK{i4a(i5Z7$9&A zP(Qshn2jo->S(nTNhl%Sg3t(EcUP|E@chQatJ2CYH7^77-RqoR>RN39q( zR`G)Wr8hGt351A|nT#qS%2JmUyPh0C2m|o&H*p34^{pNd?#*j|3#sTQauKK&(XFxL zGR#C}IERT+RTvM;|4Bs~hhp~|7;XfP?~cDLgIWw{}3!=i4$p$@}GH^o40P8@o-#n1!0;oT#@37m*gm!H<{^{)_65rYgY?4*9X zzSt&u2&jE1ZK7B>NiQEVg5gocP!0pN_$(fR=%J`&Sv`A>7$%?!qHJ`@1StwWlS0oe z2xDhVN{Y7l;-9w4c-0PkfzUE9h&IxqpH>Kd^g`&h4gxeFBE1QmSV_@OE~)+EJZWVy zAaq1@NrN{Iy!jOfzy9jELO*#{X{|z|S!eZP8KIv_qO#EKMvM9g_E2aLoPyHGZ}ub@ zML?}X2?14d(AYY6uj+g4LJ3-4hl2jD6v~O|Y0INf|1*jy0%~`FY{C_XJ}ao3 z@VoN~2bH1ddY)>6kF)SUGb&D4A25cAk`YDNyR)jl@G-SRLam-SEL6z>VVYN+Vx!IJ zL*ZJEH3}s;J@i5TH+OS00EckVY0*$?$fdZXb*ijOvtep5eB2>1%j?vJhdM(cjvZJgF#WYmx_0Ui|M*C5YIa~mBv==!#{i3%dUxyMFDnlWs zL)o(|EDO$oM<(cyP+P2k)4U^5R{uv9DjO4-8tn}dh=0C@pM2I{l!@oG?UB!9@R|}1wq>E;6E=J{3=|Kl z$cgVshkSPSTK-u{{qOlnJ{$JQ)kAg8y#sNUv7~slPat}m=lsJp!5hKz+1cj#XW8fX zNp*E{PpYabeT0uXZ6Z-E#Mi(w6DzsPYM2g`gN zasJ)^wwxJ(Ac3`omG`|n?k=Y?5(GgIM1UYk5iVDqC?{lXsrC>~n|T)DWGN`<;vp~R z4@(*5n@XSIn^uQWbW=ePt*9dqx~Qo%+Z419=2>J@ASg{E$9o~1>n$n5HEroTG9YcA zItp;_Nj|)O+f-9Ybf~6H8O1b}7=loy^{iC~f`Q2C{r9WY&cmElf)o@E3?J^5Ul5_0 zR(Kkmz6SZr7vhP(9JT6VLA|cTC6SO5==P7_|FZZ2&RG{?!)`F^iIx}UT}%; z%D_b&)1YUEi<&pSK)!7wi7qxQ&-`O5i8xC520^k@N|uyUg$60AXF`cEyqGn z=>g>j1{9L?n6XHtnw7&W{hpM7@f$`;WeLzKxo7dUeV*H-<0-|k{1wl|#*NIAu zd#j0m7b9J#rFbP9m_XpjoTv&&TWNTuZKtQQ?y5r=YQ-TXl%-!@2_o}@D^*|NGq(a! zkAB%{so{1JQVm`$m&KQ=e(Qlj2-lPAKLhu^+pEdXz+kag!;Tt^qsp4xLo97_6t8rY zis|>eTh#x_P=gUeT|BZL1e>i^)|MJ{9Y5nKWjThr`&Jn@!|e)&5=%# zP{*I#Y0*j<4EG3G8m&~*N~P4$N?X+MN6|{b;6jkfLhj^Vo*F^kw|wQdTOm|hjK^R2 zqAazH7Gx=8yi?Ml2iMvM2-Okv4d``egR7Ydt+Z5y@*KmoRQ1^JMjv{s;VL++(v}pv9_pqqrn65q9eoV?b6N>Vo*w`cOAvW2|xvOVx`LM2B}?)L%Hx zOx=XvF@{rxm*#q8A9}h{l`#B0L{(k>(1$MfI1sA=IO$NTA*OjXGPM_O5H6a9ZFt+WVO!Jh3%l6fC+ly}4J+|{< zV%V6jLUdOIhuD_tG)f6_2&YY{lW!s<6EWLLb!A5|;#0TDWh#dpgoh(ORD0pGVh-W7 z#fNGyJV0>m6b|(_B~vLU?e-Qrk+Z_ERJvhON9C}v);xjE#fVSc6f!s`ZeEk%?sYE)g(?a*ihkgOU)DR@!l&O|N!aFUOSiu;ks=@F| zyi7G;ypgIF!K|idkcg>nO9sz1CReTJTn|!mc&jMg9O7wJ$Y7oj zgc`Y`X!FgUq(ePzJ0=_cl!U`!UE?ZAeCVx#5!YBFONfZ+Juz|>tOPOl6pVP)?bNOt z^Ft+EsI7xpKzgQ$YhFFk;GWP3&uh_AnW?E2+aU=~sxVeT2KiJVy55x-qOLy{9&wEY z*+Cx0${i?`J6@3XtD&E^e)kj~KCBgxqF3|tH(DiFDoM8GJNPHgi;x=Jz`TN70*Xq& zSnG;0tyQl_R_3v6CbW%gE?^K)$ieLYB7Et|o9`~>;N1`dc1NkWv&|q&0hPkS89?5D_5_M7TzJHw(OnKWIZ6FL^fbe zalYxX>HN*TqMG8(9kF632V@OzwPXr2wayMZ z<;37BVCMn2$aAL#WxvWXm?1}RGceP&E-r%N$ zLFDfYlf5%fD&ILe||OsGfoM)Po3Ap54-g#|0V((Fh@kL@Z!E}ibXKDMfkA6ZDWp`{ zg$wE?{Ejg_E9XSQ&0cm*Q>mHot3n1%rHNtTx~{Oa;9-?Who@RLU%ePT$8sENDZxBd zFy1+UZ-b{o4l2JmJ>7{hQ5B5$AV94gTMklq9E;j2Y;PsfVXC$zGngvwIH`qrvt2wn zbVUkPwOkF+m%hk>W4`ubs;b69Y~y)Z<(P&_-TaTb$5`{?T%Ix1N!S>hZ&%m9p%5yZ z>r7)UsJC!zRtd&815s-4(TMqI& zDnh#hAlS*ir%u9>W6fxCR{9Fkk&v1T$F1pJ;s=oFRY}ltll)FERn9F*Om$iQT=aPe z0&CW_9O^E7G;;W=g|XW1%MwIQW7Q+f)v&E3>EwiZ341tO2(RwKLlUm- zh_1aq-`2{E8Dv>{3UMD8RF(*%^w5WKU81#-EO{Q$Z4-l}Mw9JoE_~)UoYiivY}ONm z7oiC#bvd1R~b* z47?VtJDNAA@x>K{(B^%5Cu?PpvaZrdJ6ZJ;_S7uYsIGE91fd*Oj-*uS17FSbVXan; z5bR74l0_Yh@S}G$hqYSQ-lVN?r6e|eGAcs|G1ksq_*t0egV}<(MuN~{+Z3! zm^@`pxOTa#eif5{6<51uI@M$5h(#?qJs!1JIL;z<%AYkdLLHmT5}VM$Z6Xj(wL7qn zDulyetv;nFERTcR&U(U`U#>~&B!k`=vL=4Jv#Qp)R|c9(L8A4>Mc8vj5%y{+%?H6Y zYY{+5C!>fi_gc~%>S|RbKJ2Jc4L;Pco$nQfW8j+5P*=3T;^tF7eWAiC_0yXWYIb|< zz{FKe%ptB;lP~7V13?O+CoTN^a?kDIt+weJ%v8ZyjVg@Qx?!r{@Er?RRLS^g z05vJDJ1LDG#%eXMx*%1O=y50tpCySBDe5TOBlHZ|X>Gbeb+a{%MQb!C}I%ojvAiv!6M|<%wY$_v zOjnf{L^K}Bs*R$nJQTz@7hHpJH-5cs=B2VlnB38BIVd9dPjwiqp_r{I&0sacAR=e* zu-M#T&7OEA|wq%Q{DupWPM}L}Ym%e#Xg9=l%m1XGZl`|63u|GI|Ya;4<-Xd!x zhp1XtN-Rc31nV-SF`mhoRbZQ4CcL#1Kvh z<)`l^52^TWpT$oV1mrZP(Le2DU7;~gUTI6y5?Tecf$H_GpVhv$?6Yes)m_*azjsXp z!Uw1$234WM=Ml-|$Uz6df>?5WDx11f!jj~+M6b|3js3tkd%bg9q)3ashioOy4ZJH6 z$vhx*!TZdrnW-`i9GW1u8$~ju1HoftyiVXebSbfkDQe{nv6h6X-SEZWdMMIK4F9&e z4M!q17nT?+hWZl@3>Bx{lWafvNnBb6x>kg7MQvcv9hf4y{&AU!rNh+w$R=O^$M(_~Ipc54 z7N^fAM)y0RncLmw)nE91T8fpjoog&yiMXK?>FFy+IH`SVi zlog_ll;#hA!N|5YI+oMsZ*8m)!$yBlZ#;^))o=J1*rB2p=cA&H9tedXBR8jZ!x!Q` zYbw5{AvmweZJ$+dBC4h&MAWuLtCprAm=JizYYyHf0}(H}q&og0mKhMFam<>Q@99($ z6J>R7hj>DR2|-Upf3Iw-Stu^zzRw7u%#{Kc!YeSnPZ_|(r=V=sZt9Z8s{RiVW^1wwV7O$b&Cn3~~3JZ;lTFmvaGd zaRL@KFt`jZx+55MSu_}Npv#>govd06Ae8pGzpYKd5~;7S#aJPRfzoq@Vth@B*M=Gm zUx;k+8$^*#rB6fH?-YbNr;>ueZBc`_py?GpoMPQ?j_KyYeLYz+u>Rb#B7r-mA7e17u!Np2cQrKJ`ASDWXzndvu<~Ero6nMKi@RfMDYIX?snz7e3a`WXrgg zPIsJXhW{jbBsqPZCg+`oi2vMHNpVaqh4g!-!FjwI6G6-CDk+BPLj0|^rU#<92puvM ze7r&w!E_<$+SCSReyP-g6L^Psm?!5tn|RrU*`*pt*rlzmnw0sp3r=|6gYrF%sa8qI zrFBM%TRH>bRA;A?@7*)3S_o?({r<6=fBFiv+WQadk!>x?*rI ztF6JrQt30a(!N#)t;Ahh#q*NChGG_}TxnRO7mR73?hJB+3o@&~l^o%bwk|qUl8p_X zs!rO*^jJC$m)K7lf{sTG>W3Nk0#hwC;<8NrH1Adv7Z*9T={Lg2~uK zm+e`t;P1>D!s+RV(FPwfX**c_9ApyN9n8yHYanEzB}Lez?Np##qmgcm8;Os<8}9z}yH z(o>y-CCFwQx?FSBLB$X^!X=0`O6C2LNqvJomc@ta!oq>zeiw&5XAQklx@$0X{PCfS zX^{JD2zmujp?FUxBsH%ThfiA7fx|mu&__;>dP)aYsoDrBBZ-Q!Y0cNm1%@dTCIy{<_v{XJQu-<2l!&C(NS##d3U39 z-x(NG_vr~EFv|CsPpWZ+Ph#&Roki6fcg9!|YX0t~ikVb+m)khE|j;ijc)#H z@JXnGxR>YO!Kfc^LWy1P14i4ZFsN)C7G_4Nbozl&Qsdw`7Rbit_C{)zD;1VwU9y8x zDmh@1?^w(!)f5rHNFO^!o2fChD6dX!vNg8^Fv3`#J7*VZI}Jt?xb==+VT4s$celYR z8H2P{+lOhT8Vd{2bGsZ=l)HTBls)Z6vi+n5{eNSpE5^f4VSFlemLG3dil2X#WAI8I z3%;Q3w27s^Lo99aIVayQW2xP#?9|Ls*;tsRb=?kT$#RhGk>jbcG_|B&Q14^;VyB#9 zrBlmMU2ZLhS_T_qBj?pbcuov;Egj6VQ5>1nHCP~hBL7V1T{p|G{<*f#9vaAevob^C>a5Et@Kxp^)!fMynSV z10ruyS`EFlnY-Ev_sjqR`*H&*wG+-ZMa=q1kZG$_PB2wBt;nWzK^UWzx~%_SgI`jn z7@eBx_dcbD!pHOv!L-h9U3c=SmMS>Xal;X*qwvwlp_q1%VXScdO47HLn`Ek$7m{f^ z|NI&x6Z|C|Ms)S`{JOJqHB01YUNwSY-l@^!)I=}6VofvE^oC|y7w@2%kb~;}dKo$c zkg1k}iE1Rrc6VBPTgyQL32wPptO=tU3;szMs~m%9Qo2HYe`O*0Vw>t=nznO;F0i&B zfY5|OBPf^XM0Sk}r*Eb1Aj4KA34B!>yxFD#Ic(Fq@(6Sul8_W^3-v73)P!$ZO=Qqb z@UfJ{DY1S=(|i+0n;Oj$RMCT`<)B4^+=%4J2zr)^Z=yJXLp0Z!=ukn&jlUJ!sT1oR z%AYiFAm@BznSLLce-}&L#29=NH+%`&X=`(5*Pg!AL0IF7S#>%XC$9LCTKl7;4~jUi zYC<_}4TRZHhpl3%ls?&ul!L%>rY$_qtX$*Q2 zlfAv6JFGOLDV2nE(vza!`DYaJDaYj+7xfpu7_{f2IfhGgN{&AMQxj8iY;JYXPAZ$j ztNLtM3(xuFk|Vs+mi1JBVab6w|A!^l!yu(mD>ndTrW>WH)4~OyXtsIkUzeEFCD|Iq z?>jD^m62Kk3J>grB>|tDlN5iJg>K|7AC@yU0%qc3Tq%-IP9(ygWuILD3w27pfZitJ z!wOJ^z`>&eDXEc9&X&)g={c z0Bx7R!`x{!miylH;8)5nS9P$M&e|gPTMsGMEO<0!RbiP{fUr!O5CHm;IfsI?AMt0I z0-)-bGKF5!PJ5RO;Cj>A+-!&?BhZ+xvfKG#dC4He8h=j# zavW@H)a7d|{ThQ=r6A-CzbP`Ll4Vd&w!8E5FipG3!zrx@ZI4VPOtw~ajpCAAfY~5* z$AtZa28o1D6b)(P<+HX&nrre3L2J@{QjH>flDrk+8-zK_SI?~)p$$?9)ug0kxF>K9 zj%AVGImx0q8Z&<5E&+j-5W*&v9zbw@zU;wnyB0;rq#dD65*c{Zv6q7FJ78s#J3_lh zA>eMWCXwsd!=aM4QG`m;D12k%<_&S6a@?iKFiBjJf0R*L4`Gsoz*dZ&^us0kO?Cm6 z$a1rX5J^E8y<_>B22@_2NJQ&mIV2M?_0CP<9=Xe_hq{33QIH&YU0Ld7aNGk2N`hn| zcnUfG^QTRNb8k7x<&p$Kv{7;Va)&_(MMZ2Y;_^p;z57Wjjv9dyCf4U2z3HPGMd+g?VF`L0C68~BrA zv>Nhg;Wt(NI%MD)(U?wCMUBX@$LY%$=ry)z3Cy~kpAu3e0?6q*m z$u%b-j8}_|urCB8v*Lu-qUoYYk?oupYsWRYKfK;U7ilA; zEiDIHOHmWytndE{g9ydOv2H`*iw=mc;9V6sVN=$@gd5}c3VbCpdnnYFq`I!OF%}I$ zif!Zf2aADd8>Kvj9J9|V`DyvjGFPOu6x(hXvd9Aw1QUC|XRfG}5w2*txQ&^#g-QyY z92!DusWBa@==a-HK(vK&BxFu(Q8kbbJHdWeXYL@?KqxC#q!6Q2AK>gIsyCJ{I9`3d zO(km|GhzrW4NE~1l|QXcHT`{u81|`?Y&Ema_au;Yp`O2<)W3*fNQ-k^`~zN4sYs+~ z4~i}@i=GkkPC$4@)biI5zcba;Ewl#(g2EUd!%GU6`;`<$5zVNbpoLvZQV_iypHUEf zaH%GHfhg-7VY`YvofS|6;0eL?@9TL-$fS0^8pw9rnWIy?P>B)RzBF(NBK}zp=8J`M z`g(|=yzEt?vrna$&_kPrtNrg735QbWMIwc4q?8eMXmg)`=I&9M=MTaV=c?*^oxxJC zUnye?x77T%rQpsT#RGRBPI#B4h8o&3Upj~$2wK_x$LGIeP?s2jQHyz!a+%p48wU0< zAV@+w%qU%SMpAu#J*$i7Q)$nH(DO=nAdVqxAYp}8b%qs^I@Obxma8}JQ`_G&BO!&h zjE_3+OeuH@uT89s=rZnkeON7sU@)lPVHb-{7s&w9nNron7bq2Y-< zsY~prn!*FY^(FER9ktctL_y2uzS%{%AnBqY9A|lFMk3TwRu(E~%l^>BgqsLmMJxAlF%B7|mO%U#9SS+7YfmOlQ9`gWxMBXQ zGu51h8Y9Q|<-Dm{fC)h=>K-30#!rVw&rj6x(9?hfgLTH5whE%fB#!ndMKfF zawjLm%}c#$aDU(7XfQs|m1^qS!+|B`^edg%zB{L`^2gVi8N`qdd&Jo?ic+Q1k7f0t zhPIRjY;jA$YW`mQv)61t7llzK20flDdy5G!bz#0E0fUa4(qxHYeyGIw#1E;X@4%p# zrq7(!N+=@bkhIG&3>9kQXQg24i%k-#2cL~>+33|ed5A&cZ!9w}zM5Eqmv@L^rbt0* zM3a*5$xI_qg`rzcgPOG=1$70Sw5~#Xi=xl^htCnHTY7BvNPT-5$|-6h8~l?rG$$=>k`MNXE>U&4A`oq)p^t9t_3&U1 z{s;`XxH}S42c_H)NGk^Z_c0U_otH7F;!(Q*r6)Zro1v?Z@6f1vfk+OIMSXl@DEL@o zK-O`Yq|<=TWvY+wz)*dZW;Pht*zimx#}ZqM-+w^BDO?EebTyRFNXrFAiX*2ZCH1Qo z^G6EvNH!A{-bfo8HAywpLkbG;Zs=8gp#xElbcc9YDDhD*dcx1E&%-3~U^slhy)#h~-fx#Hf*kOxi+HEPg;xD_751 z)T|QJT!;@LsT!1DG2p8y73(>%!Pm5gPug}S_3j-IoHP0uUtK{;BH|ZK>pBtwnhBv| zMa1{U)Q?j@RmDCx@1@SYje%~UrS4>!Q7SRQD6Mlc7$x55Aw6mhduA+MA%A};kObrh-&y;lmoAw{L>)j*f8s3Gs0jsF;w61@quJ@=G!6^4*H4rmOHVn1neTNwSlR^#J1Ph|nX-3HwPA{E;cyK7hjYLdp8+UX;s)w!I0biuJ z5vZE+N{Y?v$U|I+KYmhDG=AEQQVGO7c_3Rb&7-Oh3{tDt2mkOPG#GK9TLwyr8TD4^N=kDl>zmxYArQeNe$(YN(&33 z?z|TQdWcltb(^EkjE14s=td!H18NA)YTVAbrqQGlmmF$R*3~*#B?^_OqBU_*;&))J z0NE3}IM5%1Rnny#3|%8B^XhPv!;>La^U5_N<;(rDL-l)z6m6kIEtX>0;eQNPi9#US zV2*X-;Hd-(tF%fnSS29T7odFxVN5m!9_6$YYkEbs+-FWOU}&RzNs7Bv+7-%3LM!cJ zw1EOaU-^!4ARmD!0}ZXTdcVOc=~6HMx0gw?N<0l(`dl&rKL)GBIgM88!{wP(sudGf zX_unylST!UMsVjGRk*GsC|Qs)K3RO zXZSL+kV@MrOCi>QAoU8H=|ou|WS%u6A(hs%iJJ3H40wxPtY(!;pNCaiiZ#@ncS5k$ zX;#ainpL7wsb+OM6#N*p64#q4S?@!9H+rUZOzrSn+D+YguNXk^x{lUHX@f8(%S26Z z-nJ7p=e-cfz%39bQ~qZis5@_lrDnWd@tf~rfnF5qcyYshTl1IN^F}Dz50)egAEWlX zM-mk>((c&lVcSGmN@OY{-F6ht6OF-O$lmqYmC+%G?L+N&J(%UBMXC72pp9jny{%RC z=RH~_b`i#EV;ngK2vIo;<^~IO)TqIPT~aq1jvXWfUE`_76Tj4;_bP;1J5?k02)x1A z;M9-TgIRV2aoCMPiydAdXgTauOOB$KsP%r<30RK7E>V9>Ca!Mtl_r~BBHdaFS(d(f zh7UQ&*pa$NlQp?M^b}mUC7cwc9ct38!w5U5^ubh43_7KDB&iO)XJUw8q>s&`t3&St zgSxA`sqy6f73pwGqx9o&plZ=OFbJ45+sCq;%qyLST-yAYx~mQhZXVTjw9*GL%~>#E zm)5Zia*282|NN&9N!2eZa0y74y@e$CLk@0Um^H{3TQy99js3okF)jzH4e=ZdOQ!Rf zYSeq?IrP%f&EuDfSH57lo~Krw`K2=U@Jm~vsXFz3!SETn2ICs@z~#`iOJ$!fAyl<;%k-eJp}R9$otKEcA*OJ-BJg`#O%_lKt*xK#LfNJxCmuz?VC#_ zTp4n(f><(OlqPHEEK?1~v?kF=kE|&5^EQ_P3CZ*VGQBEFRR=;usR=R5R1P34)3XAt zPEYD(^car(`yEc#X^X$|+^k#GpqZpsU1z+TX5DKo^&p->wpBA|CS#}rr_aDb$F)L0}Pr83|c>P$DzO2#(H?BZM$PnX{AyCs*=>JRHr^_ zqS4Z;oeiQ1Ik?YX11Loj=bU*C)3k2ggJ}ALvPtE8JA!deD{|EKzftz;+bY2Nl{XtEV2S(QLRU;~C`GR6A`|m%IwVKJ zt=+z$DA0-@8HHhF0p2kN-6XvdxOcj^{IplE9$I;oWAIJf{-Gg2u}q#2weXEwQpa9l zY$bYXqu3e&Ll4C8#b9WvOEq{o&rOqeHjzVhU`@~?k>K~V_ zmOer`?HI$a{z=Oy!pys7C|3p}a(p=N{~VkX53A#pJ3D+F+@+ymJL!T-`1)?)KLC>)4Ws36y9kS zWbjTN3{BYX`B1%lk5)rG?HD5jkV0r$+om-Pj)cwoUl=Ptegc=)^ZXSuPG#Fe7<@wW#;S^{& zb{v9@gJa?!oI9eS(3qg_GkfNO_suKh* z8?HgeOzw#BKT4s+Jr#ySLmw||vG>Ue=Ap#kBt^A7t@b(ZkXtl;uYSJQGN^vm&VQ}T z^HUl<lR? zabSo-DC(&ZxXf`8`pC>Gu4%nSQ5I6lV0*sG&SRinf; zLk^NQ_M*1!>O@>aIRwtd71t7EZTSBNL1^Qt~zL238bQ z77HEj#+`n3^gV`-%X~F3f|? zjl>L8X@lvu6qFPG3ByFXmqH~{@$z82k2=NRvaXX3WgO0flyQWDT3rX%JSGO&!m-A@ zY=V)PbXzM$LDf*iPcl?gP-2*ZDu_@}`&uau>R?c0(s>+sgF7kbX47h5MM516E_!(? zN~O)>@EYF-<0uyDVo)b?y>UHrTw`Hde>bqAp&Fwe7$|)-4MpooW5BCD{*Pz2Sg1hI zDxuz{bDU96^VX<{U?c`T;VA{iOVPtdmsJa5*eIt9N*nL?riQ-9%)>$v>UcI&6@QudUc6&9} zZb2X@C<1RcXa*!8+3pv86cZJFa1oaK0{6VdQSPcHR1_CDC|u$+LfaMi_i`P@L|qIb zZlAZxGEGI5P6=W(7EV>aMdzwc8AG9{l`!w>!%2tI>EWVQjIrC3{-OTB)JuN6*G;&n zeOD+lDuXeICng}*PRWJVV78S{Y}lhACgqo!BjgI^(JB!_fo#UEOZitN)KDray*pdo zCGq-G|6Z&0;neZ5cw}x6HU_qiq1m=P8nWaFVhdq93uANZoG`wC)T7{@5S;4;2^|I3 z2Xm&j6WlrDf7nPMN*jcXH3fscw^ggj5-NPuy8cy3bycG1n~+UpL5jgB1Rhsh~I zs%DtdHC@J6$?Cgw#4Y#Yi0xHf_Xdkh}A%L!c*TRV?eLhl9ONYD`^yvuUY^ zuRwAXy@yKAa8Xi65NuvY<@?3EhSb9M6{9Gri@^n&4hK0nUbs+F>%tMuIR^t5*g-#s zKR`;YDBBuQ*w8VAy|a#m4-6Jko4k`#Wpsy=+AxZf>cLQ+)Fbd|yW|Kbr44HAR_5sV z$`?6CeQP(H{sp`DJ{DGBk43!zcoys`!KI#Map9yM+BgvvA=(q<54sKlQs4CER|X$W zYF{-)N<|~2PL-5skhaxBN^Oy@9^e|oA#^OFKR+*9Ewy5On%?KOS+iTD)RBV<#gTNK z3;B>z>%t?_dB~w=1a~lY)g?zrsa+$*N*zh4C?pa9q>QUKa}2|SStC_7^}Uji+rS45 zL+gSLy*p-uUx!nyR7s-pUCi-@Me6IDkU(904YE0T5;iRezw+mZr^Xdsd17O%TUN1B z5rlY);H@pqE4lP~SgE;quela0)gV00+LqS!DI(1z$;}2OHDrfI#M7f8xZ)9n)=0Bb zI&-{Z3}YohgFo}uS0b`-O0Y;m z#DV7d?%6f;FO%@+0aQx(*krl+qZ<`9sNr7)qc95*G%I|Sz^AmNzhknyI7Lq#<=|hd zJXi*&?;ankzjMk`I(M9K*khKc_5LT(wZenm!nFyB3{{^i4v!AV(z zFPiIfMYIR0jG4FY`R_EB{EoHh;d|@3SgSi<0No-SU`$(Sb?fgk=4}hmrw?-`;?X69 zs}y_CgHz`GBF@8__0rni=Jg|jj7f&RdKyn1kM%Df=KK}M1XjcegY|+_9M)A2@;C*Q z)#a4m!AX4kFy<={@lpG7@g>y{J~MQQEF=$;wVW^Y;WTG_C{zmGH@jd@a9E}Z09I=&m_TuNBK zm-O7{`9|`8$F3q%L!`$Pueq>nkp}2OKX~@8Ex)@u7Nv=qPBe68UCnoqkqNc~7 zh+4;>F43ib89Ux#rWs2bvJb5ryTquN8I&~ClCk(yxd~T^zU*@**@Y)%lQoHX#&H5A zggJcI5@YGp>6CSGOg$d1&D~_W{$<(m@3FW(dss0jdWhn>WRqT5U&KoqQ?rn@Z7IPZ zoavIGoM7k9VL+b_J%#$(m-r;V$hom$UH%Uk(_dK_;lH?9z+DY80$di?qqx~XCjn-h z>fDjlUPkG!7?@g{=d0)F0tnlNSHtgVOMUn-W5GCQdSH6m)QtE8%=E@on^H{M zYf}x1j}=MvhFSfnniM}q1)tENpxP8SPW7@bR{*P1HzD!w`nIkp-gyv`Sx zDj|(>oDV4j6r12ttj7fkk96@B!kAXQ9*$(sY#x!2grJFk_vt*GhG}$AGQ7Lz3 zye?{G%fk)ucJ#106J=$_dWOq`T3rrX+*HnYiVa!DR zP8S@7#4*eX1tAzA%U74 zUzKB3n)Vl*Nu&vfWUp3e4A@j!h7~T2@{+H$CRpL*(p2zByV#)}vuPRD2RcnSkJtjB z%7UNo3iF6l*33EYap)^=Iw>{8VNHy9zbQ+8Fs#~>E_G&IA3khZFpi5O&E?hfFUyvz zkZ5La_1VLcNdW8hfjbT#{xbdO%q#Tw43JTl znPeM@3l6D{_M;K+IuYm4ZL1wmx{Y#6uJ`yD5}PyMc3?i`F7z@a zX1wyQ<;lBA9%@mwJTolkLn6;%-hOAx(axmaxF!T?e-@0sOVV*hdj*(nXwXP2GnM>6RJ_euLls0%Iqff%sH% zV3M=gwi#9MKVZJ=2Ku#L@5cx7qa{zWPRik$Z%2?k+YM%%1x~~(Vijl7b%NoRonX#a z+Z$4D{|V-4$sDdm{*R`oKxW!P*)8-kI-aB*(ooxI4(5EdBMWsD@}SmGTb=n^$rOPm zO%=sDNtC(zz}z9vr0zKB{h3$%V#wz14rUB_mJDMt_7)HB4irx29obf1@SxNTRHZ$_WeT;?e zWQ3V5f+uTv3zB&e<^l7Klh-g`{~a?5r?;j!)u(w%^NqTiK2dSytMz?oz10U!UeDbQ ztB-M}=MsBp@i2RvAx~afKWY z2daU?O;*aDgVRSoy<#Dp7Xz9EA6a7f*l~1Z z$@UmS@V(6YB=~-@yeN6@_zO0E;3QZ+H(a`=foUfve$`CqrAB}wvaQxK<$Kge)B4#Q zDlOM14#yKU_-`4!!$((#;oI$JGJLFexC*FofU;6YDnrbR1lkJV8QG-xNI!G&wA%H= zYRvIvm4xG4Dz1bx3|cs31FhXN8d-FNJ0#!Y4|O~nil*9@B&d8v#PJv-4qK5Gz50zw z@`)NyN!(cQB&r%S2E8kKvU~!fT*;B(5u&#aD40(cJ$XKWNWpghNc3l-FQAyjhov!@ zK9U#|yYUhg!-@TkfPohZOGT?KlALN)1H@&aTeB#EhT6mRy_gVD@&kxE1Lrz3XFlV` z48rzpjF$R9P8e#cVTu`7lrq>ps`)=Dh;I!bT^iy=5P*&ha?&xy@O>{%Xfl2f8U`Ak zc`#h`kNhMNd&HE8DtAwZ$1gY(99R;lpg=QTw6&R)02GKfS*S zeLR97anpBsg!bF2g0Ygx`x!{&K3~qHnfQx9hxq%FNGOg>9i->T)bemzqnW=bL_$HJCnTK#8{XLxUQiJ z`rYGmiSr8(*Vr_$^7xeM_aMUq?hcL9?E{F4*ScvIRXawHbRhzLJM3BJjfSw7IWoPa zXidj#2)gblF^LaTHiX?)h3^Twb!P;@{_73 z6No@+|21+_)aJHu#8@BZY;u7CvNMcCV}qoO@FUQ}syW$_Hf;}E78SjR4ctRvxU`3k zs1B{?QKMfc#sfr{^|{p0F3<~SKanpkibOKmN#365lg?#~P7MMaYnEFfJ4y6)LWvbDDEWk5kj8w;Cu?KzfX1$AddFxpL<6(=s^k= zYWBCht%7K&TK6LU4|0lzDsvn1^hGwpEE$o^p8PJ)Eioxx1KvJD4+e(^(<@bLAQA&S^vt)6PB}da!Y52f(oMUDJcX3_ZBlLXo=|_dFdzhm!}xBraeSqiNi~6RN-`xS7dXhi<6Ou z)y3nkBrh{mgX|VZFAMg)42jc623mz1XRY~Blk6u<-OjF+S&j4~4qKAM*WZ}husgZuli}8Ya>ndd73r^U=fin`ylgOkD?2|lbwdY+gx!3)# zBah5Ea~HaBk6d`s=z#-6Y%1g6bi6^|q?U@I%eXvu(NFICz2Jl~EF63)1l{ne-Z>%<>&|w#?(S-} z-ScIfIqwdGBM;v86Hdj@mWL3Z(%L>v41B5QNy;d&K&ug4XiW5zJP2suBj zuTX}Ohil^xdFD>W`t^J*ouzQV;S3KByN*ek%$Ls_8CN*N7k?PiuyAPO%RRGBxO7`K zeleus9{sSN5B(Ttq{h{W`>y@4hHp5-KNA>1jQM&{#^SXWJ%=`Y8CQtIJ1$zrYFyEe ziNk~W$v>+r_nmhpoqJRxp-9+vG1Z0pecsiW`+-A9-1|i}jI42~5%;@2tDyJ`&ah{w z2jn?8pQ2}OCQcmHh;m9iK5!Owb04JSS)+MfIB9vHu2mh}I0Gn2f~t0uM@pjdYC56+`dsIQ5A_+FvELS095kRGGMSysmY%>K@V%QqIt)9-NLe zAr1G4PO0aM!xU4iJ5I>66q|~-GehMnP|$h zbz9xchz_n~;!riM`1s=3OJ}x18SXnN^v(lEg-K&vW(=e8ForL)9>&m~hX|ckAF_KSmUA_2?Bbj z_$OL%+*@x(l9y-Y4`>-JTxWUgb5-ju8zhfL9D0DXxC9l!;(lqe-Ua9 zprNlr8j?eM-7z_|9;}IVuu46w7B|Ze=x_8 zhG%3XBe{u+K>y7twHoCf@e+0HYb~_lfug{pk{lV2Gv%>PWbr>D# zCSyJDR|;0kimRhghx=ZnlJ#NRI3r~@duV3K%BI8zS)wheq?X}N99C_oO4K#{>iSTJ zTiFTaDi0iz6y!enZU*Lc7gb|jl4ob?XwLBj(t%8t6IDA#KcHpTZ$J;b<}~)GK(7?{ zk?50M(+un>5w%p_fg*(omjH!3q-KjG(`XiFzs3RM2?ST?p&cOEb%q)8aNZNvrQsru zDOmji#4gfNl{$)F#fLoHBM4p_`U*t9ry+&xI#xuu>O9@Ch`LaFXlr(xp*(cNbM@R|vxk?BPEBVGqyH2t{ToMR7pUSJ=a}q3kYSWk+ET14Md&2ffFdB?!B-7WVKB=waDB z!wWI0DbH{QeMnyIgA)mRcm$#!4OxqUBg4+@hdq4pYGk#BHzJ;ei|ien?kfOA?_m#V zPsYFb$%^DcH?}JxN(sp)4DVMB=QtuavZ*z$HKbAFvj-4?u|wn9>eY<=DvN;Y!}hQv-fCmu{%&_TmuW)*yYABC> zLL4^C-*Y)Q9hVUv-f)MBt3HFGo57fMYdn(`-f(FXC28WQ4-B#E*iTIxW`Lm$*IIk7 zcGp}T7@XT!rh_%qGhUji9R?rkDK`wUmk7>Q@gNN;k1m*vQ&sD)PcXwn|oOGc;vb3rpR}1>?R~-2|&BAN4Dr(rC5xdQijivp&_JTrew@&J&?uU}%tjb)%l; zXEmrtxuw}|i>qt-l!h8r^WQbeRmNS5L2b$n)6W_Bu7($bNWBLPrRtjSzzn)jt;z-S zEDB>SX-%nl`G8UH-@%KhefiZ**utGZPzUpYL$gIa+|c5*Q&!7zi?bGU(Rt;8Lks$m zZ-t|6c?haL;NT3WJdQ^AZmmd268?^sLl?e`>(GTZL2|ax2OW&l2w}(*OWwzI_`-`* zRlu1ppYLPJ;S2Zd5-$f7A)g3Uzl-)FMPw9#!P)WrrMk6ECpA;SLykAR3*u4 z^U1}+@}@hb7+tB7!@_r-dyrkvxU(Pv6Q9RN(%ozWMPy{|10mA zQHaUHC@N&(i!{@g8I+C=Z7=2uk7TjswTMS)$hJXnlrn3Dm@ABEEM433<^^dm`vsIv)u#^L1UXT9OR!2c`k1$N()(uJZ%VSK?;Ht-9T^(tps6d7& z+!EtDLQEJkA>L<#GH61AfKts`m89n94;(0Ki4$WP6#{B^E)}o25;eAH7%F$k0ro-Q z@4@iuYN%j1DCi|z*cWbd>(t=Ya7aR{7#O`H+G;gP82bxJxc0PBo92f!dM6H;*qoz` z3@{wwUdaqc`M{BqhaC@&kkfN1XS)SYBhM!cT!@sDSvEzOc|-Ts@m70Ifz1~f>VbPy zm2-9PJ}QSw$EWvSH3F=gSlr}!!cfj8(~WWlL8vz9l4iXh%X^hyV00tq?g>5zWU9gs zuB+j&gPCv`j8W61=IB?ju!H+1Oe{4g92iHW857{wqC*b8z&x!O7^g2YIU_%&1{hM! z3Zoe7i!>vbF$*Kr68!_r(~7wp>&T+arWz%dWNHTkj4FCgUmdjwr~pOz;VF$^dZN@Q z{aB*#$_yR*( z9uYD<&WRkD^2XK4@U%6omU8Nu{t$*@TFxM*Mgp zh6q5Om}J)z1&i;+NH6V12`9LtJWN=p54)*yzO#TxjnX~a>n^3%dSgr+$E&C+)9pfl zgPDM03j_$R9x&Wc@ZK93GlEfe7{T?7r=Flw8WjmEEID6or>vIg?>2n+z_MYUm8L1> zfEhL%K5+LohYq|jG%y}8`a4z=I&fd#L{N`GF%bjC8&>obHt><5Jh=e^&j$?kz$4kI zX6h|X+3-H7!vtnfK3nkBBSB{>)IZ%SUL#1g$(^J6f-^-66S$vZxY_#^#|&Af+{f4$ zAR*Hyd7g%>*m%sjqm)b*F_UnX_S&q@Ljy)V>fhEU1zK;Ss)!R7aPLp7?&?!LoRdes zq*?H%b^aaVS+ZJC>n%6V22yT&rhYpN9g>uztV+$Og|>^>@Sx1Gt~f)Mou5 z4(_7Q4fS|oW-bKa8_v_1pByQK>5wPJyfrn1TX~2>@#H8P_~jJb8CE><(jbcVR1Xvq z9V6MwRqs|5p4vLzt`8_?oVwxVoRKb5)Aj4fn1v58PecBjcWcJpJy<^o%1%+8L>0@R`0#1Rf2SnEhQp_K7v=AGYg^&d>yi08X1sK` z;KN5yfm^5d+L;|by>3wuO5dR_YW(U**M=39P@k*aQT<9;>A<& z;lql_3+U;RcnUt16?;kXcdU2`Bl+-Q#eZ|LstdIFRI_$qV#TZ79Ez{}7BDb4d^LkI z!xxw^eA}^=8w(FB7K|gC1ET>(H@Gt`&E-f1%EO33;gvwXnYCbY?+8;yyd`Uac^ENw zQR>~YBh2;1L_cN3+l@y)d>FA{dc)(>8&mRk@)YZQA71Zh7?>N#^3`F)q4l<~f`9n5 zVs&lMK)g@!=?yFRJ7L8t&EfPU4L2#M=jdpFg4mlt(S3+=ep^nHPlpxLG?4njPKfjA z^~L;MR=hS6;L~BoI<%^Kxb4q`UZy{U-W$&F##DOiM$gc4=c84aS>xKGE(iE<^^Y%GG&UX@IM6zH4*v+fX+&-;tCev-b?juUVZ?eKZ~ zQfG>}v42@07`Js5B5PD127g2{(R(L|2Ct2W;K)$RbBh2uiHWaq#Aq(w8IP7;! z!nOxWshC~hT{ZZ~2h4ZEllH?nr6El0cyp#$>K7Q6=N%LFz~7}AhF{XGFq6(>-~7%* zNx@M^(|M{0`~)+s_$Rl?c+mJ}a`>tsBh8`nHkU(X_!yKfrE&j{ua@K+l6tJQw$g`N>bg@JGi>8 zA6r!Op|`^WFw=}F8&Siw)`+>hC^=l-%cv%or>8T2*4ZvvHkX(A50|$_$Q0zwQBlS- zIxtbLH;g(|-d2dfKOBavgESFr@4{5sw2pDGQqGbx!@`C;hLYxXw;e_FVJ0tQ3X}Jx z*SBl>ff;rT3|9_DfINMV-mH-@e%Ew7a_Yka1q`hk!9anG#o0_AKUj9WwtwT(VaLCC zC6jGtsMSnfX6-O}TcG{NWb*W;306GBA)LC)Dooys;Y=zIcSwaOM~Lxd8FJQDxV$f~ zZkS8)mG`@>z@eYD`gC3w;Y3_;LguY;sV+PZ9B#|7cWP~CrX4*UoVet5*HipBfz>4AmM+umQq(GgHRfPPVv(HoZfuD5h$&0A-6Jl!y7oww-UWy&G;Y)UVq45jyi zGwfN1lmD=14R_-N?7>W|ypU+fGYlFW3~1D>@v&Cy!HH*H9sK0<*z34OKa%3KPwLEt zI>o%lxZF3Liq->1q?uZ|P3x&A(?_7;n~{i2Y(Fs1gqqlk4G~3sl4y8m196F2Q=iSk zS*J`Hd!vEY#X7mY!ci{hnvMB{2z1E3HFn~`cB_cZkLov^GmPa}>E2imP6Zn4^%5P^ z1`g~4mF;6QwQLz<=)JY>kzKcJ+VbcjZ3uxLmpZT?U8xnf^s~#O4(wWE!QsHA7OThc zs0I7cl^U)KXN{QYAT?m{_TSb#}{d6 zJBQQksj@X5m~zfLOh~>112yeLWh}>$W?(|{y}(R6ruvd3-&g}qy&sse;}@7|$AVFl z)~nVg`B-tW<7ZE!ihR_7{o2iUk|=s~yJ4E-A7-oUbJ&)zNK1L7d_^%*w|Gvc2_y^)pZ=9`Bo;&1<^x29BC_884qEe zFRMH}-+CJXoMFk_V8tan0TSD3qK|+1$tg=MEf0wt3T9=>M~30a4%4?KRn!=J!m!hf zM2ecQpKYBNF+Mr35PdaUoH#lD4b?gXimF2Nz05k%)l(iZ>era(G7Hi7hBK{MOC32`z22L|y0}p4fccAbxdW6e3KM+?recgYai%r% zij7(w^%N0YUCR#B_hN;_Rzn_oB8|JbY&%-8SzL$dTjSYD_U$e;WM9LmI^?R>WM9O= znRwP;#F^GCarCtEwL<@$X(x($x1L<_i#R0T$Bk?q!hkGs)Or0~9Q9)F*`loyt^N8m zIf`b${9w###Xe!69-SgA#S$YSPK`=!*DcN(IH_U7z)?d9udVZ48FMhh_wDf@Ov1$B zmSa88b-pVD2xbVsmA2;bs%gx$4TX_V&{cjyo!DER81r`H2%Krm;E)QLW6=UR^2C^T zoN#_M?cXp#(x`klQ$0988M*X4pJ~;btV> zPG^eFcV*Z|v@+)H#T;ey1`Kr(}V9eqDjyR}!Y*tk(5OKo$?H-=CGgBVw-Np?yGH&h7xDNYC zo-lurM+L*?voc$Q`QtqI5oa1RQ6cPVpKiuWP{Oe7xxd&U!Ibs0ZaLx-1`bD)$stmE*2@d~{GjKMf7TDI6whCq(mFD9 zaQ7|b--~`i{uK_F!#EQ3&R(%^MM2!T`y>xm*W=>t0Y8y(=XwOKltz5gPuRc6gNqvP z#gU30&N+Aaw)f)5N{_f%k1pwr=Qh2ms<3}A>IwT7aY!DhMEC9wgNor2y@$2u9lwSC zD;%g%mgDfGgZ@*m^$*jY>wLixnLU^abzi?uo?yy2+x6W)*saENX;r9X_>ODve`J9^ z$wPc~r(Lx(bmWl?Sr!g{V?OL6mWN(MbK|K!knn24xFZQL*(`jauOM|dSTK8tpvLPD z93q_d8tjM{Q*G8i;S6hLSX7QXb}xBYB6o;tvu>O%Rj5~Ehd8LXn)Q}O*b|31an74| zII#>EHVTe84paYIJJxrzfB`)$;FjH0%e0nzR)4d$o^?F!6Nc8S9f*w=vv`K9jCo&N6zzY(8P{w0t}LMZqV8FF zw${^<`p!Po!wb0`RI2OxF>JM1|AaHFnbQENxsgbP9cy{Q1MYhc7l~S)!Wr>}ny%k* zg$LZ7nC@5HaS4Z+A9{9BpVbv2@C|2}vv7WLHy#3Mzqf;k-K3=VHod5$8F`NfPYWZ;X}2pf3hp{14&7XSS3AW6Ecuke9yBO4a2 zjftB|Ua7jj1S8q*nU;!WK`S*t3+XXqbd;toUnkc}>#^t%f-mxf5Ui1DPo71Rz_ta2 z4}8%OF;-g;IFu}PBu9Zsol6XqmdGQ+|153-QuBdmG&v#{!2eaJso>ToEGVtQixoTM9 z-~#D9SZZDm%DOW-#>J#p)kx%VrY-UuDsU@>`A&p2VW_yAJJuiqDK4-$FWUtX*1+LH zmaZ~iH)b9%;)DlWOA)@aMcyw$k+(C@;eF?1`LTB66x*zruWc`f?nzC zxs=k#uQ-DRyXF^InD~+?d z9-{K6JbBqOYPJc~bg85IC!A@_#LXzI!#MR=KQW6ssvBoZfGc4+)dTb9BCLqxByGfD zxPsXWV&rHh4maaQ>Yy&cM$I7txA$A9hndCK@e=IRC)phBQ3A zp!W#RN{7I0m=J+`U5#3-KXG8qTCsx(R6})%^M>;xB+Za}O96P#sSk z^svXbmcs4P)a@wzsj-H$|-9nZdP zk*I3pp*Z8uqJ*O5K?G7K{|Se{>VZQ#rn3fB2o?Q=2;7(GHv|O`zVB(h7fKaW~$EcXRdiC_b|NSRlpDQg);LGZoR3H~bB$ZZp zMrJB76LzS;eZmN?S|o7D7mihG3gqAR&VtyPpH7PG)%44CkzX9L>Wbz)~cYRSBbM`LAjg$z){U)A8@Mk zOc|saqQnXf_?3s#7M;YrbHxY;6R7LV z?^>QrATXR8d{{p)!RRWjy8rGil)hUz9Yt zKuV6-chr&QI@589lZjp~3WiBw|3K!Tsg-Hu1=cp+3sDi=0 z0r}Ak$vj|&^pOWtM|IhuQMfHlvo%o8H}&_CD%QN^R#e%4K}e>}^c9y<0m*RK%;dh- zYdz{_e?fi{&krt>hkFM|j(&uU!+n)b!v1+QboJ4`d`B?2zrVu$t!I55V_FcBQqyah zr>M~=yXMiXw?@@FeWFx`>7OuU+*v}fIx6Y(^$DkpH$$S5x%1pV&HL44sY|+0c$#4L zJgSl&wM`$wP|4nU;oo1~QhNJIl+b<=g_YeYkkM=T54A^so#vmR`~pIvOGXw=c)Ft9 z5Pqwzs8{+J&yU%ZK&{e`!Kp9$2T6w2>M?I0J8J={Px>*OpW*s;N3LUCi-OIWwmv8_ z+gd05M=w@(lapReB-#pfUw(eMZ!fcA7mWSi#<#nT4b{c`Oc~N-V4;Od| zDXt&mA9~osMs+p123Rj85IPv?LW)piE-68fKX)=bd79r{o zdv(hV39d5s;pe9>`5nY~+r`JJ4f+M)0swc~dh@8;Y#9)tkp{F==2XN?7;bruk{IrI zwzY)NdokP)dR8wtTPOq=MrY4?q{(@1Rd49LLZK9eDz;YdVDr?g_kF5E<^_eo!xT*H zb)3T0LPsdG>_h*fCJEoz`XwLwx6e75m=Or8&H1~*gvmRyaQ$SsS^s?y%XqgfUR}>y z6mA<;89|(-S&$4aEZ)}aldE>acDXl+^Y7s2r%AlnE>mZN`Muj6Aj5RIMvS8yR_EJ% znP-9^gKVZ7{;rfl4xPH~p5{T{(Z{wXh!=+Dk+LQz>|LR-f$&HjDA9xy#!>Ad?^crw zc^4FVW;WQY+ zwQeh3_u}9%f`z$zS&X6XYD{!K(24MBW;*gPcWW|(;{Jy)-1i>am;>ibb$Giqd#*<3 zb4Wj^=(@6~(fQepR4?{sFluu?L3o;@_eHfiZ;+Vo7M`lh`9)!a=Bi0=0TnjafYj66 zqHI^n)Z~1iaNo@b>N2%DnA9BUKqwS4@{j-HnO2YUf%5Ykq&lPcU$rIX3aeCI3tT#0Ry3YfvLDqEzYkrYQmtdApQHj#i^gU zHM6X0l=TI~(R!^%wn`1p%!`OggRGMjqRzHU$jv;BL6Ba$Vuhz$*Q0u+_JHU_QjaPg zSvqEb@wY7N7C=>8qd@6mc0(23voqCU>86j8!>XwcN#_yiF?*eR7{>W($MNc7F2(F= z9i67`n0UK`t1b@gVkIMAsW#@qSqT#HHUoyHgL;+en#o8I5}4FHtu&O({^D@8mZQ6g zx#)P1bSkCsu(s%qRN{nTUDTVG(T)Sgtjcp;Z@Z7CW-~1f3Z~_sd`m2Dl4PXYfF`T#wuGA28 zFEG=LRqRmDNo0~orc(Xbtee&Qg`R6^I5Q!^fsy;k$_PETOA~hP!f?3n2tbX^FXUn8 zR%uY^L&cmdJK9rY^E*-O7w>}#JJ-_CJ&>=);^-AO8Zd6mG+&)hv z`6mqf7H?PrbG|Aoj&4HAy-4%$#au+vv8-V_rckE>sd#OyLZ$0N8u}^wkR5$EjT~vh z$!$-5up>XLn7Y?GWgM8H?oe{us{+7GSFBsXx}D1Q_ zcwWU;*B0B~mY@6;My{3=ZH0f4S#NO$Bd1>Gf?3moEU_sKFq3;%bMrgGFmf|hs@T_S zDui4Mlj>^+v24Yl#G*sT?ZSkOJ1}%J@sT;^=fgv0Eo|Hi%(P~q zzIaq`{9L-<6oB*yg&KhP^;ox3ih8!rUKiy4kgTj;nvQFPxcDtA2TIP}YMU=O^8(|LF~*iz0C)AHd6Ds)Sc)6z9#KE3fR zem{+@UK9x;-RQz4B@s?uX!)eEYQAQ#L$fwsI^Y?qEf)H%@ zW2E5@mNQ5;K#>DSQ3}>dIYedStmr%t9}YWKxe%=F^?-aTMP*Q-<(88f|8AIZp-j~@ zFUP+uGv1zR_4yU(~94$gK1X~w?3gY`P(HmP`BZis?HrQs%l1&(A&?r< z05fX4fEjiimTq4Tlcke1>4F}ka~eC+U{ac^7np|~(|3+S^&Uv`bmXkcA8+rs^5Mgf zX_=#zAy*$J>N4T@={L6y%)^i=Iv7tfQcQjWW&SQh-rO-CKI|A6l?2@h?^6W-vh4Vg zcIJQ7OiiYaQa;M~{nglw6GIu)xq7!1Ht-`4GvqkIF=snl?oQDv?=bIZSsC8LPRJ(TIdS4{0t zHXf=<$KXGy$Ge(RCv!W&B}C>QPM1s)l>3C2+vih-7ByGY!M*!ZSl%fOj7eREFTGX~ z(SeCe-lds_tfn$*^?sIl(b2UwxHDvFwww?*BBvb-h7{C*k-iU1+3|BV)M;A%y&i*d zrLDf2QJDd&dD9Ih>v;2}G@Ttd)W-L zJmK3|^-EC1R>zTfX_q1BxE9?yaU?6gl#g zDX+XBKQe5YgfT~m&f$?J>hMC1Fkhn-@<}BQzVH92Vb>EVC)BCifYEW-Jhox_H*gsZ z22t#;Vr1==9+EJ~^Nuz>eAYgd`yREZD4W%L&>SuG!XVpOp~Q@h!tk0$=AU;Q_eYpK z?)y^2O)UX0U=XJxpHYaVt}NpEE3u#1Hj$SB;TFqnDZryy12GXbjZX5D9*YS}7Wx3t z7j$?ntLUKQl!uwo0ghk|BhF+de~^seF%Aw8lyL_o<{K2YAQ?yoF^NPV!H=sw9saM7^Yhso*F)q z!@J6f*&PlqC~R57N=)Hpb%w%|Qt4&S;gt)jv<1#iM+kK-Mit%lz(U4k3NH!{h4%(C z%ol@%`qgAd9i|?l?NE4aEo}X2l4}LyRIV_fP@*YqL>MOmgLoLceJwF9PZ;}{^HnYJ zBTN{)7notdNW-$fyb!FG4ER8n0pA7SAr(tS!F@ci<_VNs56(AzdWbM=6IupyB?+iB zgFBc*f_oS-h?&JqQ?Ym4)@3#0`)H&_Z`>S%$Zbp%I#ju&@BIEvwIOsl-{)dF4)3sc zH6nO-6F4;@QZ{$S$X<9g?Y@ey4PjW!^!L{+B?$ z);70ze@?Gw1rrcIVCa$5`x4P2khPo$+YA$jc~tDO7qyG{g5sm)|4PF+(g9Nrm;%*J znnT}N#W)4V&R3&iBBz!n9=Nv??N4>$P_WrX!~dd9HQ$VeU8@}phrD|c=CF517~SK$ z!g%hZ8VtnVb05=T?+y&%d5^={`TzbKMTNfOL%fQ%nhJKuOi^{{_y}>*TStqH^(*5bZGvf+> z_p+=GgICgU`O#ERX2=9y%qRrj>M7)r+jPD`dpKj0aX7OX(>eUzy49&`dBbqwbvz-; z0AoRaY*qAo z*t^Yz@-)Phg~G^@*HFLmD;JAUi(yyqA@3p!TYPWcx_;j%iGp`orU|Pi&_QEHWa=(D zD(a57&T%W={TCM`{w~LNn7fEV>)v5@Ho>SR#N8tnLBm0r#!C+$&OHp`M{C+Vu(GkR|l*wFdET;kvETaL)PWw zc8`J)X4)=nT_qn5ifp$~)P!7a>UqXUK(4Oj4_Qzi-z=-EiwC6`wIG*b#=*;Rr)5!V z%O{FYJS9t&yBt}{b~nGPj^qyzb#*#wQA6?;t5Oi_0#F0(C(1|{6}ON96-)OAC&&t* zD>ABBh6@v4P==Qz&_$MVFKRt5<=!KpJwu%@@Je4m>`|f>r{|Exd3Hmk|Ln zMbY0GQE_uz-I`Vx-5zT0fGEE2FY528D9qeGp2N&tltJTGZ-9)4fJoC^$%1>Xt$+cJ z_o)@Vti$i0QMA)lukrUq#G08?L=FG2fAew?=J0acF0Iz%Pm~e85LqGEL9yj36uoI3 z`G{K3hnBmFaoXa1vm*v|8Gl#IVdWY{-wcXFyy)nVa_fi=DR)tvw8->2d^m_XxjoKX z*^9_xf6>bWr9)`?DtkngL%C;yI&pnFjNFlhj{R+FgFF8gLT)#^L&zNzu6lqHU3k7S zBEp(?dtpi*Gd(T|6To-Cpw8l;{K(;)Hu1{lRXq0Xka1TOpBj%SGQcPr-z8Bh?zy># ztVVSC6lKs|B!3!(07EFxlh(;f>h{wEhD2fOWiW9R;FmC~y&NL$3`vdI?l3G^h8G@g zpQFRW1x1BIpk!W5!)22U3%9zuL&7!4*v1^0WgB7LS-b0i4hMHp#!*e(#qVa6`*Zt% z4h3fv-l(sxRA&%!yBXYJ;MQey2sojT1oz{{cViyZgBFHH^h`IL#d!F)gEBfL@z_-# z)Kn<(0cH4Iq90yj_nJOTO)4BM)K__w&~6wS z+R)iU>-v0E_EU>VD^)O+Ouvy?`ChdZZy4e_xYFK2)K{FDs%hhBZ=93cKM`U^HO_04 z#Z&fTTgg|uc$m|7NQ?DU&0V!257*Pwl@J+f5s~xb?}J%Zyar}!E8fF`&Tu1){;CvS z2KYS$oKx!Oq@{8%#o+2H-Y~zocwc;A6l(%5l7)ae#8PBToGA%E<6~_5+9Y z<0M>$WdbfZA>hc?W&~M>lP9$BMi<&RaQE^1E zVh@ZgIocuAd0$tDeX}&sBmDov=zP=&WZ1XMI@I~C_HH#4Z)pTmujrkxPRO$3J#&V- zo;Xwy%XDIOQ{RV!yDNP1J7l>YIH(ZMdl!URxX5-`xH(g5E$sy{NjQ4ea4Bje0o6_X zuB%Th9MybN8t%-f)Ak*eM;I$2oAmCyh@OU$DT=KZ3SxBT;SNk0vgx-QQ4>mgP?Ly* zw53aj2NE5di3<$jlBC(41smm+hTivFLmKI(8sLG6N8YDuQgN&Wwgd#ddNmi95%zVu z;=LXgNDS5DaPwYwB7n&n@aFYTFEYM1A>)PcP zn32U}c>r@DLuL$;veP`@&y6~*PpEOSlr9yHMtok4IHBWS7S`nBghT%^Z8ZNqTt7L- z)>b&V=XRd>LS^$kGVW!QGaE`Fp1R8nnQhEZx+gpFxmD+Z>6|M6dUfkvIfLW~YnYXb zprUMu!#i`TGHVgct!1SbD@W7bjmo83y>awF#cZStDv5E^+pOaUdB3W0N4!&@Ppl3~#f zzEM}=s6RN)d_*+%`cF91mPxjw*D)*;bY+gZJ>@B1s$ul#M@z#73d=G^WqPi>s~U$3 zWv8*!O8kL?6O*+>g0bq=Ib1j-h4qxGTDR+0YcJ+W%LzkNr`w}@}N(dfj1#jl6v&Zzp#rwSE~YTZSDOmpU4@5p-{JJ{dY53;FZs zxL=R|ku?S<6y3Vl&_r}785nq*&RVFG_+4c9G!JXl&gAHjM%==%K&PMMbO@pZvvV#K zYff=EAdUXG)MiLinXIDe-n27`I;@-uu@Q9B9|D}%BYWA0**aJ3w1;w^7wy>d9T_yn zgHyKrr9vSq>)fz247YFa78=Sw|NSR(_mLAoW{EJ{uRlJvZE!$QZ&I1GzUdpk1`c^IStZ|S0b(A zHDv(p_=KTya5$cETEZy_W{-2VL5-P$og7`X|0Kxl2@h|#mWwG?zc4s2vP9mcq7Oo< zYd7KT_Om`=z`$Yqp!9e6FNe-GRq7f3YJY!C=FUa;x}R_sle&l>aWq=NJgxZD2dayB z4@+IZh)?-$Eh}{qKQWwoh6`t%EB3JgBl>nc5Jo37O@H|>F;5=V!*EUxSgmPV90KLP zRReK{HTW4ke~Gg#tG_0JN3N3#V8dlqv(hNJ7`#1DR_)Q1#xQWZLmDZnJed;e9@Vy? ztDWK#hLzO{F^dT9BUWpz|qMC@`VTH(B zw?6i|DGsShuI2L8n9kHxQF$+WmU@VfVR8S4b3}{aU?Z4B4A$~`&QcHY2Mz@tV}=~> z9-JKePI>A)rt3wzFEGWM{hM=^`iLKQ`q!cKzC_*j%4#D1L}DZ5tC=HndgVTtfEw5; z(B$;6B`$iHJ)=cwp3PF}B7Jg7Zh z;V7K#07?)!V02QWG6|UIn274G@{oILE)I7;V3;ecT7gcKV|Fj23cI(~TKzT2J>4ND z@jRx=>FxuQ)Wue1O4Fw)4Soy%)r0cZbtEf~{G9N+?LGKCQVw)86HXSuI8o^C$%nam zP<#||agH7C)9H{XJRIMPJP(pjT`Rfx(&Mt5&lbUdw+XJP%D)~opK#Q=sP z-Gh;uobqsznB0bLgItw|>|67cYAQa4^_?qRW_!-ClXT4FhdC#t8lz&{sy?mJv8}om=uaGgP3N(L9*3&?RuhNt+_rOYWXT7o zEcro6sG+9L!|E_TVR#B>>@bv&wsu1H?fz7)LI#c^8K;CnS=x>Unt)R@c`Mwx)_`bE;n1?3^%y(LGRDX@=dGLK| zE$;bRJ;vnw5S$x6K0ZVmr{51`8T0PHCf{cm-GaNy8TangS>%KD5LdNwB+h7s%&sB7 z9P0_;_cB=oR!MPHnU49ZqdD8dAH5osT3z5KyO3e60Rfq9=!I|dFWDym1VsW&$ zqtLh<^L}FEGWTO#->8X{6O9bkd1MRacW)C`!9rCq(+lbeLnp+s#f+W#Cy~?#^-RhS z^-$wAYC_<*5G}SG%5PunlkxLSef6rnqcYuhU_J%Ryp}bFMb3(xN(ao`o$8rGYZ}&? z{o+#2fZ^=VDSde3!S|^X;0NtYz7N^dd3I>oJVz!geBT-||D1H6-ZiAJaHqd$z|*7R z*e!8hHe)usUK3CjNF*DKW(V7+w|a!LFZD_G@$0~NB(*HdyVf42p5w1DYC=AwAycV+ z<;?lK^q{We?@HDU?194<@w#_ZvkXW3nQ)%>TKSLKZ`6qV2~$*YDMy{i&n}^Mi@?x= z;c*qZ^3&=>K4H{eMt-NJS*^(L2oKq}MJj4UK4D;HhgYU=#(*qCUhi+H6ZsbyuYvLw z5ZSbl?FS(bB)NL-h7BOq58&k z^}b*D_vHG3Q5K~AjM|Z36^H9vSCyK74QX^I#lc_(WvVZO3e~q(>2Y!V3BwC*k|ruP zvlSaURNq!1s($1TX}B~y?8a1IbQ7xYO9@7-crtyg8@fSR#pkO-vM_yX9k1GvPieTi z;V>yMKAB{I{CBU-E#0YZG%vPG@oG@5(lLY2a26NFmc7_%5UoQjx=S&h9Pnz!QO%Kcy@;;c*+&ONE4E; zVBkE}SQE8I$F{_*i;#TJ^dxB``-yOThM_|Wb8Noyz{o9U#@PpDHh+GJ-lCk4e1)ST z5W0%--GigQgA;~t7YB2@GtM1pioV7gDDs>7Y&Y~eEkWp1gz84#05O-L?=|GDF1UN^WM95z}a@~Dovm7{TfKeUU&#+|6 zwY22cJnL#^a#97@j8>Lfk+n4RdZEimPgb=YEosz%+>`YTPHKUwBYDH9)|pO^cOYs> ze)LU`h7WVDmgECRZO5HOF1xEnmNh_iAh$T{LKk=cz>!GEP!m+;+{YE_jw0odF9=9)Rnx&p@<{bwKFVJY*E#r z`MMX**s{p?51b#+bCc#%U-DyvYBOxx(Gg?%jIy54d|ngyWZ{fyces4yDO*2Cr7+#@Xj9G~dNh*bYvX!l3!oU`04z$ihl}>1o9_A1zV!)xYAH z=F6}`^X(B2mD>|X#inE5;@~zgW6rD72+@~OQCU~4V?;2~m)Q!@_cB|d`Wi>Mg*z-$ zeFx{GHHYg94kv)3@nbz^IgV@}t(i0ZP_uD*$qQ^gtYuJU`!eaoQCbo&9zJxRl`I@8Nrv&*kPhZY*BrX9 zamI61)J1l-h_aqf@`Ubd9JL)fA*z~`-(?@V?`5k9-FI>L*`ek^_wgc1$+I0F)ujB+ zy40gr3x+s-?o&&0srf}5Vx@sY*rB}0U895TQ>VC3IK!3+Ed3lyt7HU-VqlE32A9;x zKjh&Yh1V-=(g{5RPd49mhP@m9FP$ZSmnWW?CkY zkG^{_pWgV8zhlf>eF~or$4ntHuQ$7r#G~R<8Mcj?zhlg#HRfs5Ym`q%oI%Yo71B;H z<-48wMARJr76;FVBh29JM}s?`V-L&?nfaIHnCGE{P{LUvJ{%Dv0R5Vavi{YZ$g{y6<4-__u}d+RA!`Ld#)2Q$H?&j()Il>3Q96z!|p8tG$ThlvBoH zzAyR--?tJZP-(-MVI(jZvvlXX!)Q(yp z%D*3&o62CDj$_^&p*L|kX6>Hbw`S~GPC+r(mjQF_c%t zQ#D!UVfq5X3v)xI&GYeNWyTw!&ol95#RegP%k7D=sLb*?D&QX`xL8Hur>|0INlIn9 zbQ?{W{5ZRW!<&u44E01`5EG@g5i$_$k2f!~{+f=8Mf`y9>E@ zQJB*qjD{E6Io#gTp#^@j9C4#~uRGto=Og}MMHKrah1qKqPs~9Xwp+yBTDiebloKwL zZ-4)-_Ytpp&FjT@KJj`y+&!(A+lad0d|{k!3QTCdm5&2vnlCUTQ^kijX~Ey+f%m0E zK-7lEb*{R?cLcaWGAQxCoRmjLHm9lhaGEbQ8+1TqNM-malfVD1wWK!WcH`R-m`!aM zFj*|v{(E%gLmBXa$r*1eBJtjM2Sx8ow+1~LR%7zB%GHM4(k!(Npp^6VbW=O2d%ybT zzhyRcCo4n5D;sCsyhUnXalWw|C{uLBam-cvrbp37nBjlvZoum;?XT3C{46N?cNfgA z9Kxq74VS_kPhP#6)T>=noxnV(-!qB?ox_H8v+SEED#P&MAs~cGALcupo>fc&hH^7$ zCJH8Yx>~|d8fMEZAL5--`W>#YS~WWuqT5PEC&g?~AGFhMofyrqq3rU^a%VSI3RY`!5I!#`T%`9Fm&tZgC_@UJx9$gjgw8VxYl&+)nxym1 z-W$|^+_LP8DSTdFkk^YTLux*cIPpUSp^oHt5hzisJC|3Ort@gbmJ{7lgXgZ31BFWM z=EwO^6Bd&p`1>%Vuz58k3RtS!Mix+WU_h4nZdYgcaM&-#z+JL?_NIqi@8Ie{Zeg}{ z9V*YF&;x>3{(1|jyDypcFnL>z2fsFqS19Vma+k6<&4W_LyJl^G84j3-qB!XGQLf&b zjE=(NEx8Snjl=l@@~xUBWM0hT9guRq8{H4e@Vz`yN3a<0mokwGqDiYX4BMN!?hYK2co|eky!5BP4Kga~R9DX{PT_Rz);DU1 znY2t)NW5nPfB>l64FB%~hoYxGEmwEHj4LFb4t~Ee1pMMKVafB0w~E?uOyUJ6B;JeR zgvGNJ6WQxEDB;A{n8nLir}9or41s_aELrJnl|)CUHR!1OXfn1oRzZw)tvy;zyiKRzSS4 z!)s*YAquKbwx_QoskGv zQB+Q6f*O+#G8p&7lqFYnCU1GG5xKcJx_oL){zzzy9qX@7`9mYQXbXE^6R?cQ2~ zfQER`L3I|~baqUK6}VsYKzOBry2q#l{hEm(yvz^{zf~Q)r@;#wn0NsyJ#xDf>O+1@ zCGcH%@ut!&B2}CCNGb5$IpqU5f8mD5I!4;5I^j2+QsiT3sBnEx3LT?Td^?ZTJhRC} zkB^(2aD38nmF0HHspH#%3VL@st%wD$RH(t*exEv%ucZ%ocPc@ZwSOct;>vm%B^wnd z!JF!E{S`7(i9Zv!{KYx^40V1svT5v2@0W~JbLnuPyIOI2c(YJLS2lE~x+-&XJcHHD zWvmp5xpMQHo3XvvB38fiN(H$KJNN{;Si98NwL($GM($2AFX`tCJG9~-NrlfYfod{k zj!*aEbUS8{Aw$hw`0eG?)yixz94F1{gp@&MsT9zo!W>3Isx7!pV;DHb|o908{~qkR;ovi(nxrn} zPxuLHSL?3(rfOfh$4XWub57r)b4Yg(bWZ8;jy*}yL1pW*iax~6b*(T8O1 zhR@EV+Nwgkymy>i6S}Oq3ge1WaJx*42ZY%en<3+NnHH%hi|6Fs%IfW-2Govhn0If&s4%WKJL21{;XZj*H*}^ltGx>g zw)wI96zPzDGMz(?KwWl+aPYIMeRYImL*G=Ms&X*9S}V3E56EdIQDtKeq1l+-!=l%c z2eMma^fL0ElwrWI6Ugq=`o>TC?O73+E8#Q9=;vr4@sd^fXu#CUe9)m_vtFTzy4dl_ z3nh=kKIvpb0BSOGEbsC#T;W&de3+y z3e?VgS&QIy$ADU1-Lus8|a<6>99+r-=9nAPF2%*hT5_06gitsCf_3PMfi=r!pP#w8wvDj0C6pl|0j&DiAg zSu^oF(c#AR_P!7WbBuTb;GKN~nrB}5;p*}ZMtHk@%PJ7wF*N6W<13jrT`XEGxI7~w z4~BQn4t<#*9@9c8ojS=>MkuN}*C%40FdpeZJvceU;{&YuDXV;Pz;qLREEeF~ECeb` z7F{kFkE-Gs;um5o%Xy`ur+1bL4)ja4sm$qy%CN|q5x9h?L|NwSg5n*cMy?cGnE}7p zhiCZ*MN&8aB;eBxE85ylHRei*v}>)m+MD{sXdRE z`*2tx@-ZiLHG5{%Qd}O)>r`Il?;CS zAR}uW0XKwqCNr!tkBF|;nmjq8Vv93 z`EyWSCdHe-cHT0P5kJz&-rO7mSZeMsWbjB0mNg4|hkgx+cXTD8J;w5h6x`GBsJD3Zg$1?bp+^)v4FR5m8gCTY~iBjejB{ZU! zIR??Yk@H0KI19*|aU^XzLzx5V9UT;I9}RZ6&%v~$cwxtZah)+VFnuEC3Fz&;b)zuC< z+~UF4-gFG@Wmw!E?QsSI`MMUj#}2EE>!fKN-5k1-UfH2EcYAN@ZoZ5=o|C0> zW@mzXu!Hk9JW)2lo?^hgvmu<=9_9j{%W3}1%Gh2c9&GQdf)m=~pyfod9c(f~lR2F= zt78U^o;zDOkili2N7g|0)D7UC%mns~f9dpDsxxwfYGQ5~9|K{sCW9SiwaExVCmU-Z zK9o8YoumDlz#i{Db7jW$D-n)oSTa_kQ0yGTA{nct$UJnQ`)9JmJybszXWF+<$PDj7 zWL`kb2bn!V^)NS?Q9-yNCtY*Bu!C{m#;cywtK(En%thzaJ;1#)CK=q6k)c#u^Y%4V zb`F_yWhAvE7j7Uk;zYGI?``!GVDISL(jE0mhTXY6xVngzN#Q?fQqFDe`kpFuQ<7m$ z3a50`B&e(Tnp9xDbMc;@^ci%>5$I;cT5>CO*lAer79Ky@{LAY(TriaaIN(B9Dm3dkFDR9tSems$B{UekQy zUMMp<$k0zjUQK%`YHPj(jt8YRCkgO)c^0>LI2Sm6s!1HXa{znlVQwlXxJWG!HZxx- zU#TY;v#}jmXHG%(&akIo5c!QfTBsm4-2o?V8SGNc9bW$_EzJH3<%m8r#)j=XY{ zX|J(?y-Y8_-su9R5`_HPDcPvJuhtq_?nd^GhGGJH^w%OOVAw0%%tZ^ZccaA< z*i#9#GVFV)oC9fgl6pHH??JKCcm zwb$xcp`&t$!Hvi`6`h$l1Za|RE6!FOS8CEhbqva7C;8{lOqGv1kh=_ zOZDPL_zAdo&b+A#d-Fr15F)4T+Ezhb^AlCR8l5Uzd%>5QWH_uwUQ!Lsm+4~PdRoU6 zySkJNI?8E#(aST3R3a)pKVAT%y zLWhej+nG>9^Ij`b^ycP{&QxVRuBg`RZP}~vqSX2|z~0fAzD`_^#>%=XA~L0QB;@!x zg2H!tBIF6|LFWa>e}^z?Xueoux~6kXvGdHw6p!fGD{UUORaO~>=$xlDfjzTBQ?<>4 zfxVDyVDHQh?$lT<-dm{fDv}+*p88`ynbw5%;0N8YE@x+r-HLZy(>mqG)y;ge!>gym zogB?qaYhpDoo>IW5N46lQxxA+)4dkmzFc%U$lj?WUw6ZvF3MKt6R_Blf;d{9X$ z`Fuc3V2|h;S=rf-Se;JEvIW??F}|ehK@a!&sf2u2*F27JM|F9hAJ{ zLD^cI=QV*n6RHBFth0f=tW|)$n|V!OPjs-SvVt)+)}!ziU~eK1eA7`+^R}(rEi;{CVn;2_CmBj(j5d~Vs!*mTrT*o%JSPLDhUS9|39C}(CL_*D zA=SU!WR7Q_G8I=kbuF{U$|%+b(Os-3bSB1!|4$?10YGug4LWf#&iqV}&vevRc1an( zYV-5V#rTF_b(t5<(KMIZ2I^_PX~r<0`I$H${E#Id2ZfrNFFL{bPDi?0non+|%G+^L zPxGZaLHW*9E}BddP#5m^_qP$!YargAM??ee^zJ6o^`^g)Qlnx@BRPt!^4ci!p~>4Of}BFscYi)XbgVUWJ#)0WXhecE8nK$}LmDQDbkfFy>y;oXGRhGVH zr3U8r_CmIE(;<;VQJbVwI#|8Cnw@9vvYL(!I$RvASE|B~p}tJ9puS^kcN(ymahZS z%r7Y4F%_r8+ZHg^M$qpjGhjZoZ`PhVo}FqtWil9^pIlxcSlf=eI-0M|4wIsC>OD=R zYc#m1aLZ!^dFp7s7CRW<4VBnpQTdF+u5!S&yN&QgFhTgvy}sTW;|m!Q-aALhT|P)Q znJ4<&2;U;&a^@a5)VBb>V<5~E&0DxkNKowf`p{lDwAnkAPpX;uS|U;51q!IdvKZbA zTR2QlsKf@>gaB6TeD=tpIzji2-~sOv4PMlM)}>HQWvEVrd&l#j!9DTv9}}CcuAM z>!f{7i$v*3rsDj67A@GG`uvcJ?-x3%uM0l;AcL{u8R{MLazhA`;f7Pf+&tKs%&NgX zO9#i|FG`&*y|L+vbaHR+43VITAj>$gV0Z@Foy-S66oXNfw`F30uZ)IXbFdzs3_L}$lgyhQVb!#H=-#nJCN-^7R3#HJxOrop zM{a>2YmkgSA2(OSdnFu92;MP6qcFo~e-FHOG|Vca8r%pZ9JNDgW4?4J@ZQauV?ZD1 z*y(F_wi!~>@+W(u0X|QQ$PBD>>{2@kp&5YhSj+U@_}(H@adcF0;Co!%Eq1Ow6Iyi| z;0qmjt^4?+_raEU0KOYlZh)`o&GxC8|Qj9x6?aknx1PA&%LK_lEc~E2?j8z#?Tsd`+iR`J5;fu5;lB zFl^^5D&Py9KzuiJ8sl610RA$U@Zutc;>`b%a!D}%O>*klh{we{g@ZRq51Am!wv88mrq;_emm5eHv(vWX1m;T8R{H(@3hs4 zriV70%qW-Uw}UmvKhfq!_pCl*r&4EO$AM|oC+ObM1LKQRn@Ls?ILX{ZeT?okozmu0 zD=yz@+^a=3K+@3}>ikMrYjE%68$f4jGc`o2eBJCgzRl*si+Zvv8s4*bD46E9iA3A{ z3~hb}@4?U1X6S$$N}GRuL_ii+_6UyD6OJ0-Ge;ES&|6{{WQQnC=b3SCfG=clbL_M? zJHt2!;5+3PaowgiW0|>%ARC`Ga!qbX2H?Z6%<5OiNZbY++RU{Cid5~t_t3Fnaib)h z^HG5TUD{J*b}o&N$TT;}m}VueX~{rWM_$#2T_QIAaOiT8*%2ham6wqT2H(5c6Zj?< zcIYWHl*dtflrZq#`8aNLPfJA-9e#HpN>$eKm-+drWo~q@>2O*Mi)wT)(+awGH?5(| z;s+pKJVdg__d=)fy+hL$%2S7zQDmmo+V~!S8AU!HI80|t8FrLxgq=us<9pC~YM2|~ zYw?iS7#7TF(4whs=Jys=?aenol*Nz~UA`PK%C^kvX8w%MRA%S^M~I&?J%6~Cqr|Ls z=BD#dqUX$$qN2$Ui%tXFL1$|-w-@jC7IiugWU9kS*fGEtb~x{!u!D0o#6ud4%gC@( zHVa^%pG%X}&s=o4+C9TjKP^D1*l;s&oUl$fFng#Zp4G}_zDw&3>}I6Hu`t;oq2@C$ z>=@w-J3;tv=rqJN?RJ#^dUKLYYSq#Gk1e5*Mv zV5f2Zsn7WmPf)(2L8T@7BNL8PYsM?WQ_5%tzOT zQ97NqYM3uF=Irx@got>n+gkQt$l&U$I!WJNZ}1q#ZOUuQ)X zh|az&mE+r{S(n*mtJG z*C!plAu#bEC-I%0wIl>C!cZ`nJCw?%5@&deU%UsW| zWn%2PC#DC-YEKM^?DM!v&vnf0WvI=$7ygim@{Lu-9`)2#T1~>Ee ziAv{8)46O=bwQNtq@G}t9mrtN)}gg=KmM|G`G(9?Ww@abWd~|?E=M@Q{f>!G{>Q1x zMMpEq*4n@ye_5)0M`x-sHxgd!x!Nqbm%sUmk8w)qiugr5)aKcSHb28GH}rR=Goe3L zivpLO+{4mKlcRzS{oT+hRo2CppR6JG=$xj^T(Gm7PJE0TI;G4-hbuT~)RcMQSuHaZ z=1&+p&m#qnXA|Nz3EZ+^G%1QMW0n_-aJ%qkK#?;&Q0gxIi)&r z)c<_a;bybl+a9~ktGb<=&MBZ!`|}GKB949jsr~t4EzsXF*i!fN3mIxl#;i8-M>eUn z`50q^KRu99D}v3zb}`iJ{E2Xw!-XBnfHXD>WPhU+iEL)kIVG^v{QN?ONK|Vc8Jo4z zWqJrdV<)&@=??8Z-qbB_(;1Qq?str~)Q)Si0|Mm3re`wN4KK>lIoW0O`$`52rezKp zCqg5rM*aS4eH5X?)MG+X981ZjM~?ZS31;TO9gH3a^()z^0i^mgY;JaZqHgEU=uAcC zx+Wd5B-gB!R;V^Wc7`7B@6Eo2o2!E@bT0{m9xi@OPF^fWMj-rC@4(x975fKR#J@ z`Q&1d{U5UeFXptFGubW%?LMBZI$qUYEy722!`-XCaX&Y$d7?ddRf7&!t*aeOB(m@J zLFcJe4)7Q0K!*-qgP&oQaigASPk_Io^NudR+S!g4;#sX7@(lRUB;`{J0#!*} z*x}mFF3aS%QsyR8%6vm+SZ2M%!eP0sXx*hOy;kFMulaFSYK6XZSxEyLxNH`P^Okhv z@|(`_#8E5sL5BzLz6>vr22N{lacQ~eoODo~&<7blrA6rjhnl4&9rbcDJI7d5&4D)^ z8ZZ*lYI{c{MyP6=fp!+1qhaRw7<68l2fJeMp#4#bq|R^R=X~I(7y9N0I=thvO_-XY z_o}P$x#*k&6SYFW(4q2qdy~|GZhmm2ET8kdg8r2>dO^X)VUscw=w9toh*kKj#$prgbWN6o>jnG5K z25Ic?$W5TXB7^>c)Jm{rZAMKht%Re?N32a(f46W<$9p0|9?+lOe9^3q^)q0+(PfU) zpCl60fL&9GV2%BSCZ3e&-0X>9f4X!3lU{`!fR06?%f|kiPIUP^uV8Kgaigp|r<-)pi7szC1Nb4UvGp;~-_5LWtS++xv)j&r z+M%y~7U=JePF&{VhYEOnZ^lMC4sfG`jr|?BI*L2k;ra*_fP)1cJxwNd`RpBlgAO`` zk=4E@q8+&rbw8JwkJkeTVq=$UTBJ~MH8wwvy`qo7{*F$M8lrD@KpFTSwukz~*@#T5 zp}(Vag8bFS(tDS}%$AUc0#I&L8|!rVQKxg|hE(hhjwxta69fT&MrNuq+>pK6szW8g zAXBQ$Qg0A zWyMKN$pD^;bKz#{vB`|QyLzJc@t_XqPsmI)h76_E+DVznh$GehTx0}w&X#dyDgyYG zY(!>)Hfo5zNhanyq5!%rIfU~D2I&AK%WPaK!fCwkxT^y9g&l4>&|DrCnvC=~@@}~A zNG51slX-I`#2z}#aie`xGAO;=6UFpGecVj!2BJksVREzG4*YJGO339%#FfxDpeSp<#C8zORgU1rgPlq zlo$_wpu;7w?V3zy1I;TsC-Y8|ra^|%&9CaLv8LjxgJ$Ph_CnWLws@#oey`L{kKKk@ z_3#$*F?s*efS<&Jd+k=0@DoiQa2qX1iq0vBc)_V!?1;>~_s>y0G&zXh*=?fr&!D4M znsuvVvm;f`$~EG5UM-xe&Cd&YtKNX0rA(_tu)}?f*8AGoWjIl0=d>jn?%Pyc0oKe6bqw5h@|1a*bWe$^;Ht6P zo+&RcY;gzdyQWd_f#hLuq4-LM2w$rl#c>FkDK*yjaEsgTh(Tv4ve=;|vNl8}g;TXw zDrjGyn=5)Oej4qQaIj<;4BLp%G0kj_-10km$}bJ}H5qF0hD4kV$+QCYVc{=Gdc_f{ zlV6GhcBFUIMJLMQ^m5ZFn~Xp?^66V!od6=8#`?@okv>q2smciXjRZGCGnL`65QjY3X0Mu>poTlwRtPI zRBh2OWayE!bY;ARqdQC{b1e5$SM&=N^%Q8eQB(9@G&K$vGsi1Y*r`c{)beoBtGiz< zw_2ckN@F@oac4?__)0SPBQ$K?0v_cq>VR%Ck9(>F9E2}qfb<5AT25~1vofeA^N=_T zH`s+O8me}tQCCa!B^m1vn@pT0Q47 zsfPECP6a83F)5B0^{atS#v0xWJD4-i>a2Z%_e#dRe*Q}40y;f*ySd7XJfkzU_z&ha zEye4==qNcbozvSlT+o_z~-n@t{ouf$B_2_3J4hhcvL@ZHb}z*lr=-jWOZ;l}`9RDiws zWVr(HEjrXtD2nN^+ecOp^k;O+wP-q^5E?8h-4eHl3*R+4KbA^SmgpP+9iQQxO5~c@@HUzLn02F!Wg+ zS+M`x6L>Ymm#v1LTh8b0jz_iTr3aR|HaPah+_LyjrgJJ3Rb%u)2G6;kh>!J|Qw+v; zqlUrwN<8!wBm@*YO~WdZs^ zhjMNJdB$cg1Lz}we@bUqXey+Lt_DJ)?&!D3F}ay~`r zYL33d3>jkC5zSVAf)cZCZ&^G?JXPJ%CmmAe7Eh1eyB1c9&T+Za9{oy(*PWPFEqmSM zD9gb^eow@#WxCMe?!H74Is@%fGjz}Ec=D*d%%DRgpa=eXiDuqN^~2BT40RSPOIN$? zU#dO&ruj^rRRA*hAs52iYkOXfy(06*`;O|vA`UulRB_ey+sJm@KvX+)&+EKi0sLxP z;2BbasO?^+qF!@rnok@Kbx7aSQU^E{H!hKQ=}NP|HR5*+Bh?@MLWf&?TK0&V$4RK5`SlFKSFO4!?MCvz;f$c1R^98@AQ)c;`b5gC&5Dy6_a%p>BxK~S!8uUA!62bhM z9fV+PEL+K#U$gT}k&)@-hB7qo&S;$>zbG}X)Dxo<$gkNUS2RKZs;c&^@TH!tRv^F7 zLD8zSRHkLXFS~>2&~(m+UjV;B2Q68vZWlT<3-G%^TX^1V%7-e?Zvzs&92i0T&U*sK zYKR$Vv5aY^;#@++40%oK+Dnr^P&yai|AEY_Q*upa*ww=O@Xx7uTTdNS)>EL|WQN3! z-TyE!;64hg&CI3HU9FeQOwhg-G51J(W=5<&1Dj+(lE+zv&c!5u6S6CYhI6DN+r#)G*>!${A0{(9~p0f{LWE{(zh3WTi4=VF(sk{U1g@`UL264V&L^E&n5=P#!^Q)f(XFpq5}#v}v!J){cpB(%TOB7IMc za>&2b4WcZzH-2bx5Ltnaex>f`EIL54)adwhXgbp8C{y3_yP-1_8anFFvk&3QKsG;7 z=o>mip~*fG;#g^-d`A7kTTs9A&3*Mr-}54iMRyh*?BQYH(CUkB`8;Z3$vLo}?HC}a z5FV{j(;0IN?03%8fJY2|kPeM^CEIK;-#g751N`043G`R|pavX*gU$fD)EwROI{8nk z<=x_;9)%`V(!(tEfd1YB{hbp>)TT^2K;f_UQ8KLo{gJyXb{_P(lFfvlS2}5d6FP?e zBJzg*E{GjIq<2N2zetC2_jfz(J#<*-Kz~=@Z;_eG%!S?rNzIL{bCWD(K6Z*xSEnIl z9>%2Q?H)SMjUazFx{Pymp#$1H&Kx6uS-2p7jX

    GjKd2>ipbE-hF z)=Ev%r8?*EMs3q4oo~FlvaNEx%2kt6V=t@VQO4?YBdj&{vU*j&m-C0JB<8AwcSyHXSYxQS@GS4x>H; z1boMn5<@3lR@3ywj>*twL9&hJjkrL*y~!M%RKlwZAr@WDY?g410){u#(*imjqH4oA z8A11ODL&`@YZq1`_qbYZMDRXoTP*gWKrbd@yvQI-U&I8oB`W`6oTvn#`=?{b|IoBKw4e!f- z$B0q^(v=X;<_x)vI81dzR-1)FEIgvl9YYG!j<#8)U+PMTg7< zbb9Qt(~Sq7`MIdInnKsj`8r3(^SD^>)M-3C(d(Y#{B~Gsnjq45NSDBuS`R=_wcDQ9 z(O;z<%9J#a8KRb2hob=rs&T#vosh-%i3qB%0N1K5p=h;ZjVyft!J}`-+ZU4`f+n6j z+|HePsV}KF9C+UN6AlC==PH{X^Voy+b0*n%;MvIHY>nMvLN@eSd;3-~jtvOjaCA{> zlIyJ6P$D~xA%t_~{d#m1-zOr-vzuH7u50|^$dF*<{uC0V3*4BR{9kw)!gj{CIf}VH zAF%jbTSgF~Kc=Ja9=t5Bx(1XMoe1&Usn;T;w%)yJvjCT$qt`ctre32&-1^(MXBfP! z06#~sPaYb-o#y%v?jCR)X|M&%ua~*z=O<1GNAuKdT4sJjpJY1t?KIak zTOx(Cv)TOGT5et7A8|uYio|cHYKxKzCbqOUILM#I5xF5WRht4zt`0lF8ZI_Eh&vtC z{;#kVzngvto%m3e4e{`6@n$2!&rgya{B|lfmtepKeO=D_$gh{Z=I1Ah&2Oh-^TvUi zs!P6EefuOK8hr2=`hucN#n!`@9 z3b<2oq=%nc>xmaah=~5H(@L4y1`HweB>BNbrK#2I4*WeQ$D@sg3_~=K;mv-XkfDMY zx<0tjC2MBPFfs~ect>cewFprtJQm-eVHPc*;R(=kqmzABn-0~8$U3v}-VL3AhG#kx zGxWs3e8o@G8A=_{@P^J*YVkt_>T+edB_>-P0X1rPK7=N0D285M^`OpXXlQkC!yAh> zkwX!p1kBmDEZK$*$)`S5Yjk*sTJApQA{;fL;e_C8d4HTO5esxBL~+b;Jd7S@%^E#C zx<&XdkA!N`iX&n+xGO?xvu=(~aRawVrnTng7T%Rp4?TFFZR)drYxM~gt_%S^`{*ex zsxA^uGa=*26sht0MM9JrkAqsR*ISE7Zafh+#_&Q&S7?V?S8x=D@U%R!le>>qz34Sf zvAFpxbu3*TH-h-n@4Q*bsfTX1Cq#D( zh(-|_L_BzD^fS2f1LkW8sE2N?rh|J)=nyi(&Q+N?bfqSHq^B!}!uh^8qk zE6jI9w7H94eM9I$r)kjXG*i}W!-(9yO%>@Wcg1fXbecqj^A4HL#u53`*y{6koj{_r z2zYcSn;AT``WceQUp}Zcd>fL?)HamJpGK|E98D+@j_5jBkanhKuRp?WEb(X>Czc2u zYI_ttEgf_i(sasHqp*F|sk&VVlmraFDmKv~9Y6P`@XyU$!o`#Qm}sK-p=QJ9P7LGD zU~|{vK3G&U_Nj}M1F9x(>ECes)O+3L~<~`p1oK+@{6#k>>8alaoBeVsvhiGwL3yrYyGO$!P_O`4KAh@c{Q%6i^BU} zt23#7!EUZTcTE%-tc9{`9C0{o`q5uLAf zQeXC-nA*HOp>tJhuA)%&&)Av_>De_&y_9G=M^{gM*{=+}jdyGGirZ!==;A503wn1o z)i9)*r^S#Vxd^M_#iJ9e*6de?-s>J{4<555!}Vll6JOMlk#6>(T3QXE(jxiV<{K&;zx08x0_Jh>XR>{<9#wD%+rTZkKJbbb0EfJ znGSx!)dx|#9LK?VX`2QUTEcQ?baUF$KF{rfGLlInf#T$O54K`|kH~^E9z85NPtDmu ziO1-*-!r>i83226tq;}3{PLpN6Mg21sEg>8Bifbhz!fh5LeWhY;fajM zbD0qS(@$c4F2L?Wj+f8leAB%>(K%h*;8GuI{pUaa7wEw0x1t+imlua3f7at21o$eaf8?PVwhH-SPdb`o zK}mE`_}GLqyC&?dMEj&~lsJ++^so44LN?qDsS2 zL5hS`sZITeUL4`?e*OLD-~QvrKmX@{{QBp=|NVdcx6(PB!_qm&oZst;s4|9DVXz`n z7{CwQH=^Q*qw__SzSm<}{23yD|0MhtfBK!P8&#~%GQ1UL|9K^kSEkA2g9%Yy#DN0c011FzrB5uHjp5bnt}MetiSr+e}!n@ zKk1oPI>>P*BDB~2SHJp`2=(O?wU?68SE|T)?D&1r`lwAOUs~H)vfxmp*(KG>$`>Jh zHtCPDNZr34O(M|aaz5HeNGJvHpM`xjvWGDgiG!VkNG&eDyzWmH`zU&Ul6Po8-q2~R z3GT1u`lHxK6Y^Io(B+h+EDUL=bAzP+(SKEzp938`K|v&U61WJ7x|^@>&3-v`u#XSH z0Z0R6e*8oAI9|&BGo=6WiTuBw7gH!k`PkzASN{>h|N04|ftL-Sg1x0l$C~7iD39>< zk}H`+cI+FnAO@n^_z!cIMREuImru-!HXB4XT%Ld3pKR$T{|Ng;)LaCi&ksfek07&* zTmu3#MRqdHUfCuj$n@r?Cix=^9#7eI5-&i|?4Pf6sKY#K!Go8vw>(RWV!f2{so`HOXaVW@E4DcCk3P8=s{;zgNTB1nkUkJn zok?cz%1esAa%~qiLoHA{POGv4z2YkG`}&Ffs7}5>@Kn3JtX=uh{3rW~F6)66`Cw#B zFz;6WU+b^RNwxTi#7Jji6I7{G{I@E`Pv`99K}pe(DjI&ZU?cwINu`SH5l#u@#eU$sC-c(@If*J+?+RG>x-@YL|&Y%NP)vj zH3u;ND~3}q3TPvd!KD4BKx-~wy)GU5Xt5?lkn_)R{zCIhEE#h1KKj-AsyyxIPnbBV zGqprK56IEe{C~7qgOs!2B!AfFdPtsRPb*J^pHM;z&ig%>JaPqE_?CW_QaRoCPc*C1 zV!t2?kcg#Yzgn%)U$3N|XX6m0?~d%h!Vd|f?SP_=&!4b@50&RY($w#t zphJ!g|3WU(`;zQO+y2xEFiX^*gr&}M?IjdO`qR54p_CSY2EeYwMs@!}UeH>WSt_CZ zmD5IhSH~%axY_#E1~&Bs>^F{ZRb{=CO5|L!@PG9VPsGI*K?zAE;)ZZIGllxI#eGYk zgf%DyR$ZMx1l7y8i_cb(g1okW*lp7@4|dyRi1GQ?CL#XfU%llCx8(P;2ec^iMc!Fh z?i}Dq6GA9jSmLR|g4RRw+cnaPCU1e_efi=3PXx=*kM$Xc(`%@2oGSC9k7BziwV`bV z8COLcOiM9JZ~ZDBXpwPT_^Sz^xH^ZmqPQGe_NG@lE)2U|U`?FExrTZJvApbtH4hK@gSqB#0;?dWPZrM~?a5VC)hd;^3RqNAMLGal_-lBss8|HN zOpc2HK3a!RJM&x75KtA;VS}PZ2nr2BNbBG+;{KzJ63%>$v}d8GOj%P7NlXBqQN@7E znj7i==v_x@sD^rzqGepkWH`#8Cf)w%TGUF~w80^&@JP-SEh z^#(!>wIX5K@Pjyt@p6b$u-Fz-OdGx~L)%NlRA#6ZNp_4w_Z6pxCx(<8GQ&{-{#P;F zgz$X*)ws5Jzr>IzvHUbaNgmp>b0uPH5+*)Ftx2z{xKimW#|TbN@w+Bh6{9_IlDzfN zvi8bC5d3pjiJ{odjE#NJvj&JM>Y6MI$rU(uvG$qD^gI_@!Wmg9Ei zqdis5ac%Nw2OeU5)S86jrP?M0I~nmw|r|H!KFE(iGrUM0pCmwTi& z?V$#uKbi&3<{D~EVv<;15@9$w9E%>7A?Em!8Uu_&P7TQ2j zNKWSZW=s5);Zjv?jmJyBG~pjO>&TPG&~d(T0D8K>_{zLUe+KEM15=UF^2(J;!o=vwS4d3wV*J zJxL2~nMk)>(yuPGZI4OCZXQ~BKJqiTmqe{Nmp~#|X$z_6R?u%R3?i(dRwH#{=A(+i zIpGM+HF8PCSZ{m0+;YxH>k)Zl(!+$w!gf0A+zV=O_j_9y&gJ@Kc}V!?q!Q^5L}nKm z7qcHNz4XN{5t@ezCP%WwYFJ-6iY46sj?}0%5QV9sm5G8Sas(8BW0KtL zu0C4IfL7|G*>~hrGP2Z&uA^M%bg>9WMSn9=DZnZAkn~SRmKu>uWJ#;4g%H}@wog<* ze)~%(X^pJ(j$(KW5?&-}4{pUqce5+uMeJtdsTICuRB0Lt!_YkPx|H|mCP#g=stoy2(!ta>v3 zNg@|#gZZkJScxcZE4EmljE5sH+@GuhGUW>~*qm#iN90?}7Vt&Aq-qDEn-X5Kx+}7<6vR3*dk-6ZR@kWja7EG7ssH+R#g}$la)bv zEu|W2uYKg~lm!>R+3mP`{w#;FESZomv;Z?!uMJ4N9VDu)yp$m`CrMO9LXNaVa!MI0SSgab1VU`V6$t>tc}S@y-mNI@EU4+ghR&pfcjB2 zA(l%@4HV&v=&QXAIFxIs6^VSSsx}ZZ&4zIEtq)5`SYk~)LgGyJ$bubZ14;hUCx*Zu z-=X+jLpiD?r3^(|YH0b{q$0@`;618u5{GJOVGbnqf|nL%jX9NTXsHsXj9##zcRq-V z+Mtx`_jl|ct*=Izsx(U_rg**mf3<0r5#p>KLgG;NM>&pJ8WP+}coLWL2#?-rwOwfj z+4340cClAA(wamzTghHIt;GHqwUTcFfht38XIa+~YN%BS`$vLdWqLR@oGakHJQF1zxzboY-wAQoY&v zSH!Dk>@~F9Y%Ca!v4Hwer=DldhANHuo^ykpk%3ktQnGNWT)d!Yf{IMEjum-^u-noF ztf_C>CV^t$^O9~?6AkbMkL*1Hz{JSj1nRQxkp-%#PY4+Ya9DJZHOdZ;wkj{gM_XbX z%Qdt-B-~cy1GI(>#+dq}4c#MeR#@*B^6QGc-O2P)LTxAPL`8 z%?2`7)}Z)}$plXpziVhTsVb3hvGLR>j{-KwAb zo*IAGN0+8^UXNYC$?Tz(A!iRukJf*h-CsG(@GcqIxS#6FYh)QD;w3y@QuP#=3Vrp^ zPW%wqFtj6F>~n@%lQ<43E@9K~(7gKi<)hg$mDTRumaI0LTJ}>XFZ2UV9_q3MRGi2OLDio55d(@(Vfls!4iZn5Gg${Jz9Wp1;b3)$#mgkM z>j)bRU0Wz=ZC&QkP@D!LY0`Q)uPjb6+(9MBrN5djl(aTTx`u+g%5@;Q#fBmC8Ug39 zP$zN(9N!G`#V}_wLpi*Gu=wCB7?oP~lpTz+vlXOD{jaD}rL{?Qp|>iM5sJayyRK@b zwR`s^t&LRlQGy~Ak({FfFA?ZTXzlUh12yHeC!fl6xY!Gw40Za7uTQd}{9z=tMGV zlZ3(YM>&$kF6An?SY#YXXVSO0)gc0PUb|f;wFR%Cb+!o$M};^p2x?ScBN_E}b6&eW z9W1;@rU|&}XoL*H>kHstbg;o=j3fLu8l}=%eU!!q77~aR2|=7eVm7RkKia-788mA{ z37haWBdte>Ras)W_vElSs%mJ?MRExmnjOShmZ4>n)OkR)4H!~~HTh}@2{!!I{#V%~ zgd=`cMT#e>Tm=@5*e_!04>_;>(M%+-&2oBez&}-sL*S)+u?kuw;hc;}kI%NeITVWH zs-cigKxWtmw3jqeAF9ox&bL0Y@TO{L<+YUv2iYg<3myz?nY2T*$f1pa$f>G4rx&M6 z8b~(a;Nyw1>oG08Rm%=l?dpre(kI0FjOaQgcSRLxh;09RDjc2Ck zYNs7G&fbI3sN@|le;Ml=tgW0nCVjS9y107;$mjI~m zwME34%uI2ul)j?=fPKbMUNY*%=e%a7tr*E_OOlMV-4&`riHYE{NH=@bN$s^rNowOO zYb1xavbD--imo2{nj z(!q5kIj`M-9Tg8XGI?#vY*ea9Fi!PAQf7T_*W0km#BlKWn;glo%jrb?gKc2He1`A( zX3qb*JGRVG(%Rq9aYoXL;kxGXHr$B+8(U zdNr~XNx2o;gtEu6_XK{KX|17ho7$%NSMu6v5v@Q3bHe5YcU8cw743MRIFON@;uBqe z6x*Y9;ngYXzc38MLFBPKvZEL5jVD?=k2HTqmaol5Q=t*A4z@uTwEWSQE<0WZsfU&t zrSr3{)NyhXX9{9dtfiq1fYZ_I5W);yqL&Q{kVGQf5Em3E-J8UBi&QL27 z77(3hPFPPIEe~As)p$cNpYsWaP)`DC`)Al3%z8&sMu zl!TMq-)zgkImtKM?-pd}Z*mw*>!~~B%qIg2uB|x363XsY{k-HAT}WP=1esS9ivsdQ zxQ2_PZ)jw@L*P4_XIutqd+VD?YYS5b*dvxkj|iYVbgiND+Dna+*G?;DV-zHmPy=e? zh=J;>IRsH?OSfEC)-7KxYed2qHO9?h$B_!?y;diMnlNjx^}nJ=mDwicfF&atuY@lp z7XE0*nCuBgcHET*`_Q>M*GL+09Fnb30k$jghYeJY5h=B_li5b7k}p{&Tq>Bx@xApYJ?dSW)OH#vV{JhV$s8aj0{QIHUPULiJ2>UUEE!c|n|;E{5x}Tko@26Rx|Y$2 z?LNHul9ZgzawI;>mRZWX^kOP^Ss@$B!3jE^va-82NV1!%@nhe_<7k08ue}sMd2Qia z8tC3v1biws(4~-QezeYs?LJKLrR$rO*cQCOF@eKOEg(L3DN-CdmP`|ET~1zG2&+Ci z0%>xu;kQEwH9D3RjEp#eEMAUd$w;{?R0-QqNL{`flgUPqc>79W%8W@@7S-|5Zk*n-AlSk!EH?;Mb`ifrqxI zqb9_%skJuPgZgUaw%Omffp~<4+rcy&k&z#9wsc#pMwXL=Yz!;%ycu3VoWT~a zbK9*~a*I8(a@!;naR#a2tN+fL#;~Y?FyD+}AvuH)28?{wqU`aPDpevp! zhcY7xD>zJ{ZMB^KbwC zum59TE2JEyYK2u0{nHGRRpz+EM-lL^qx82we|pcV07Z^7e+q0YucF{Y=d&hD@oE_uL5h z`Fm*?q9h-tMls3*gXt<>hMNi#VL{gya3BTpDH-oya&+C2EuR;%x&k=A>ye1`eq=2K z6>y~Ya3QgQ0^$Wg!BCxf$d24I|1+8(+{S4`e(U_Q=E6937%3#y7?_Y#{O9jI7u8!} zInYCaaGqx!!Ym*mI3W^Z#LLHt(6E*}vu6zWG5(_}(EQ6@=L5~9qNnvL)lq#R0;M|{ nr4jOY^}SLzHX%rW4omGqj$eLLg2CnqQD$T5)|JHa=coS<%)T^) diff --git a/models/MutModel_CLLE-ES_ICGC.p b/models/MutModel_CLLE-ES_ICGC.p index e14a039f0e9fe0d1cbc6e560524513f4ae9f1a85..b9dc37fcf0b25a41957a44606ad80cb2a13994f4 100644 GIT binary patch literal 950391 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�b5t@gw9UZi#=c8gb#Tx&NaR?7Zk?d;B&_h%5Vt^-sJa zxp{s?U)kgDjn>=k&+Jcu*u+JCbNp&Wh>Q7{dA)K{Z}ul+c{^Xbi@3$#qDSn!!x!SB zK0g2G-`oU!tn&D=xXYzPU4qi}{)TnKa9;|9si5PnxWsb^rEeByOoc_XNq!{ho8{AT}t+h&iSVGnWPzq$UKkq5Z-nd|QpM{;xi z8@Y&E_ODPwsW<3Ig_xUxU^0zKszspt5}tNt}m^B-To9oR!$#AiM7Vh^OA z>%-TNuW}D^_5ImGr6`A z(rP-#H%O*8CNApd{lK?K8+8~Fl|JqBek~RLv#iY%NH6>~?_c+~GQOEt*)c(z559h_ zwsMkne>1%&F6uWw{-s>}uNEKoC)bL9slRXE7DnFXGU=VtMH1g{JGM^u(LLYMf`gqu zRYz}=IPa6-Th*6}$Bq^pi9S;M@6Xh_m5&{buQKy0O|3;-Sv9n(L~G)fqg1G?uE$n8 zF0|(_nk|`|pN|5r>Z_+I-2A-i$a}|3sr83XRi=8JR}p#HSayB34w7?zJZiO*W!L;c zUZ5~>#b4xadJuP77bg3@Rq)*q$$5Tw)s)VYBO3iV!{AWwFky!)Yv<4^L^LCjNBjkcdfUs zN8am%oj3R)ms>ykgZfO#h+8hZqE#d}*O#a&apf|>_?v6m`IMG+zQ4Pj_wH@y>-!Q{ z=7;rtbhvUtkoP=p=ZUV_`PDlzzuEuL*LHpHcf>9Jo=B0~%FCuAF8VXyKtt*h7xU-& z;`!JxNRN*^)=J`vzsPg#l<~QLM|MTfdNcbA1Q${%EcLVzHgOXKW(+0*E=k^xxe2}6SvIw`X$ND{jI-YkKeg|LCs%0 zKZ$09Xy*(4t$2{QQXf7-eK}sk8vkLNTACi8toDu3Sj&&|iIAk7rpNjd=NsnkH}5C% zl)=Qself=nBf8cjF7}K4#rl%Wka|9!$cHbG+#G-ZO38Wtn1Ab=VbRnlgUAauAFlO} z&!FC<9ig3Xtgl145l(#X@gI5XdUpMilykNGIG=T?h&!!`CGq{IL21%SJ^PFL@*z@h z=8b9+cb;d9B);*dwIMF%$Npmc=Zj>1GtaS9a&!Len`C^RKgR#(AaO@3itw#3a*TN{ zH}B8G*mmA2zT~`Lc>WeS+;To+rCVmLZ~4;|+WuqwM-^6TdfcD*|657>72@p|`ZG9q zjjLz>@qS6)lDJYo>PtJ^;&0dgNp7C+p_Rmy^NsgIv(0v1?vx%M^_g!IcT&6ik34ae zweJ4%{PBFB>`h$RUp(KPFA!Jy$N8MSsOyoheJ45ZH}Xu;*J<}B@^NvAEA=4{%0*nM z59c?1rHs%0BY&`6#^?HwM?E3AS)cKb9h(1GU)chCHIDvQ?5K0}f9wU~%Kl(|(W>mT z_TRn}ab>@8|I;Quu5pZ?B8B8;e`c0FPUr92ADhDXFG5K#_S0#?_Z8&VKZq;+q5k?@ zJ8!wi&R<;9IlhBXF#ZXxf8;aL5?A&QdEs=Dvp>k&gy`{c{;wz4dEA|Lp5v08uZVL} z>ks#HRSM#wKi+TTYf4Ja_Zxn7e%>6(xqo~!E!$e+%KVYvbToIu>MMl|8OVP)pW);PwG zwN-LHL3jhdx=&p37yFC(n7Gm(@-xZfT6xn!I!AwQeMzC!k34+jlv;e;uk6u?EA=C9 zh}NSK=eT>gm}ZOpc;)VA5QoKy7`HS;u6d|44zcU2i^PMsmaiu=ozt~kJH}7YP&N4o8%wMgy z)N_91)%)A|na)|Y`Jn#0u6F*j!$p5QAJqTihp+Gx|M#Omy7lpXVf^_oh>QI<`xg{0 zkCo>RPh8Z`A4lSRia1=^-~Z-ZAMzkaFY04|kT>-5oA;-a$IbdTe(L+`a7QYN@ZHaE z-0WZU2=@AOIb4}P_E*Z`BEQ+677n-gTOy*&Z`RNA!{bje~BU!xA>FC;ZErP*q?M!WqkGz z>(B3TbA7cOZpj}xI&sVX@Q*FSwoUd?}eev{!};)*}W zZv^MF@+S3(EAvJDqvphw{*jk#YuBgiF1ZuL_Z`+c4~UEUxqti`MB@zkt$gm_{N(?) zubbfg95R>mN`J`177!QncYetC`PGD|6}9~M_`W^?aYc{(ZXR8a&z}e7C9c$myks#u zuU=Q@m_K=I;+Fc#I$ZG|_3f5PJ{v z#FhQP$G53xbUo(Z6gbw6&;H~6v#0a~t$*YVLWzt0GwXA7Ag{hbRri3@+&za5FI)*SpXzZbtmdE#QeoFCtz{8T~eIY07O{fUeEnWMkI9I(f~ zc8|E?-`*Oj`X1YL#H(-9Yh90zFI(S8J@<#a)K@zn8hfEOAJhlMA+GEf@}cpGi~f0k zkhe&ybA11-O-ACvf36>S-<-r1e~?EClAQfV9#}?lj*sW-I}(QkN5A?t;B^tTp!+#7y2!-`oD84ap52LkMk+ibE(EL|K3r= zMg3eK?sxLpx*qw-#LM0I+&{*zKX`fc;8@PrM8Ewf|7|w*x_=b?Y=jd3{hN4>KGl=q zGBkWeT$sr(R*^UJI5&&DeD4*S893~W6V_?VikESjD;qVAPnL%F-|Q|E4-56DHW62b zf%!AsBW_ui*st{XnEzG5EpC4EusRRZIS%OkS)F72*w1v14;Jn6Z*}W8`(LHJ>SZ;o>lJ|ERCOQpPv)Kfg*n*N=y7OUO2@KID1o6IbSk`IG!g+zBmy z$oIS1okrO8%ct3ShONYv{_(+R*>T63vLYL(TXJw37X$-YpNQLcRNo81RwH4Wd0n)Z2{u z^-FSxZ!|Y$dQV^PGjX-QD(k)rWgP8GRZkV*8g#hotJtd^K<;=Z_3Vo9y;8MU+0$ajBiJo*UDe|HmY;-28k#w(ac}heqi2S1=24 zu^-$Y^4OJhzJBJ&RW09N_VkOM6IbpZoX>{$l5_l3us@G-$JX{2`#(Hc=jdKNPV*i+zJ(O+eJ&X4=Cd%3R1^YLLt3T-|( z-y@rdEA^p1FetUQfB5*;yHsjAAK%{0#r=r>6X})sxF35Cq|wd?>OUk(tKAP+|CWgQ~ zqSdz(?%&77h>QOD{=)r_-<-H*znh(xobMOhzsjHV_{e7kWYy+}`JcoluH0{X;Q2wa zg~Ubw>>tMeZMm-B4$oiWKh`t9=8L)zW8;Oe!`2-^Ga)7vULXcOupzE=|R}b|3$p1~)%Ua*|BE&^~d_$pr zR$t=chT-~ggRg|^t=$mlPws5Ql?fw%Uz50U!y*55TOUo2`Deu*q}7ibI@QJn$+F&pf}fHzj9( zu)c&(CFlIeGkculBhMcGwbmcbe_bcZIY06Vqlt_8bA04A9}`#RgZ|9>sOyo3g}l*j zNPGlI)r`0jA0NRBU3;tPaerF8C$8x6e){|TN0;+EMA%=MXrDAa`WwFtamO05#J=wk zHFdb~kLQQ+&y~09+lETL+5a{3h>QNr@wY4??jTX5Z++1Z%lJ+ZU;g9{anT>2KdgWE zT^Zl3Z}3QRbNz9j%J}B`pM?8t&Hpeqap5oL$Md_P5^>=V*N^jW^b>L6kC|tyZr48_ zA@$rJ-j7u$NY3>k&wP=%@R$3?`di*2Zt3sFZQ@FQsPBD8=I8p5FMe;=XDt3js}Ijt zoLa<{{X!mCkGN7F^70MsJbVk8pXY=6Oj~7s_7~6Rpk0!4|H$JVBChz0eAyA1pXY=8 zZj`T9{kEu*oAXbIMqHUc#!nH4xZ*GJ>3L;*bN{zX*yE?FugAypU9+>)o8xEcZ_oel zU^`DUT;?~&e?3Ci#sZ9lK=fZ$<6&;e<9Th?K@%jEjes>UYr*$zz-^btO z(`9^f|7A8xy*dB#OOl)OC;3Nm*5m$kY8}J%$2^~Ln~974vuGx6E6> z)tmQgLzY6?{-ZwHrNSED-DPFL3>6}J@9^(RQ$#x-Tj3L|eqoYxetdjf*G_Ww2YH^! z#2w_$4|$&(x*q30^tt5b`LvB$)ZGu}*nij$#FhNWS0%OU&(tL@=EM7i`b%x?`fHu- z`71Bd_4xe$^A4$J|1p2?PU2#}*ni{;9}~CiSNnhL@vkQ+W{rQP0CC~3dH?%VBChy{ z^G(uF>Un<1Yqpl$e7;XPT=Z|&hYqy!FXM1ha@+>JM9O*Y`Xixp{v5 zjuIFBnfal+_WZFP+2db%YLCC?t>k9^7e*-V`e*iMQK01J`cov7+^mm~mAL5Noc~gS z5?X$IeA!SdSep;>uT3TA_{hgRE3e&exE}>Z)v!LkG@MY|&2R3%`f1{p{R^DjT8oeO zL-3!Hvwz5w%p@-2bAIGYHWRn(Z@6nx&*umGPySHq&GX6og}9Si4AJ)+Cbt}J$)7Z0 z8!N9Ag}5btfw;t#{;~dqnf3VS&+uU4V*j{*MuE5=^uI5MUtE2r&}z!d4I||T-0aIUwlsrGDh0*~e=4!)Ew~So!kAMSiY-XI$qa%v0X;-_Q!gmH5by&eJ)*e|>P9}l`osQX-!r z`cVI9YAKiV{^2(;&d(-pIUg@}O1(M%;5aqHtMkYF$BPkH{6*e*Ydx)g^e4+5;+FbW zd?Bvv2gZMRtG+e=i`Wgc`Z52%Rl?l*oFpMZcz+IPBsu$o&+lS4vGZjP7ya>kP+y=a zanYYS{%MChFYSY42Rna|m43T)i4vh9^h>0jzg&&c#7`@3BH!O!R>R#Qf97!IG$60i zDJ;DD>#dOA8E)4<{)_aHN;vphe(EN1t$y6U166t${$l<@|0^TGUkpApyg6M5Ruo<@Dh&n_UY^j?$n`vmZU^M}pEwf#kY`k5IY z_osJIFJI5`kynpGT=Nfk+e~i#-5hRx=K^m2{nx#MLZi_?K|%izMfig(7E!f|1hF@9 zuZwU#Wcaz#UcHDb6IqWubRlsM`4%wv9xpP>stV`& zktb+MT-9gS*X-fuCuY0jubE3+Eg>IL%)jrd=(#`S)m}<|d;L4I_woJb_~=j5nEefo zH$ig}FE{$f2eC*+iL3eA<40S&&p4#0&$LcB_lNxX2I89k$RF(%J?F>za~~Ex`-6P% zDdJlF$e;Zxob`B-KK4f9^L`-D{Fb;^n!n%3U&Pz*5ZSM{+!sE?UOxV^q#)4Aiv zEAHkYRfv0`RTF_XQTLm=d9=~QwfW(LSkD=f-+q(z`6}XC|9BDpZiAUWfbWv{JRjsC zN8Rx+T_Ud4kNU~a-1)OV7tZrT{o7avjQJyP`I(z{&q`d?$MZ*h{m+Rj|M+|$Z&`%6 zHecjbLfyP+nB=$nd#0M?x7SyrmC5n?HoTLWA9;fwZeC`%aP}YdSLV2RhvmZAKh(F~ zKwR4oO9_u&aYQ7vFZ&IJ7y=2T6uWvgh5!dv{=guXr z>f`*#tM9tv>v_I-zE}TFT=~NsuV16`UG+Kpi}7zqy<@~jeY*C<)&6q-sBhlzt}!31 z?`a$2njU$FQNp=CeEc~-jkxlM^CM6F&diVX{}bn))1OIGh^zWIKk75jBd+FW=WCC; z`8T(StNMAq7(eABxBk17_nrAKl_IX<+vne?tXn^*9C63~G|uyR5wGDgzp zgXg3BLgJc#cz+b!A+y18KVpt0?x?TuD&cm2JLSz4N#8%*-;XtjYxN;d(}1{^ANloF zUm6_u^G<>yzCTZ4>S5=sBwD)K=MNU!$O-e0frMg9D|pQul@u9%S@=NI<|ac%!m zKYv~sBR=Z$pCaz?@7*QhT71-(iCNb04|%?<#I^Xyi)N`!{{8#CMtoN&v{G%uKjhzb zA+F}j{^I=Jt{1)C-~9*b81>pmgZqFgE^t>O)FRpU)ikl@q&mZ+qj}ce(+w;FaMchNG zh_DdUe|J&1y}n0}g?mW?_0eCt^XG`L)#*=~VB*Rjd;HlRcl4Jzj>Na?Pvw>P_Wrh( z5WU^M#!cP%2euNueLiV=Nq&3$@*Y?H+3P#mm$+ko4ZfHB_V`2liQXQ6@Bqng*H<4X zdb_{(hl}1G|MO99eY~-5-Z`Ax{Y^K{t^e%*@X8ZOulCR0|M8g;-=6>KJmOyKYKVd7 zBlUdZj`_A&BJu71*4yUh7Y`9v_1pdLaEiF9&)#4Ev&0?sHN7I-t{-;kU#+sWK_>a~#8~5Lf$Q->;|ji7S7& zKD>T4YU$43)#EC^y}xfentHtd`@0KqRUi9@{LM7C{?Z)Lvwx_+x}3P?5ArO>gmeAK zk@&nH$VYly z+YjUglDYZTRK(T!wfpltGjT`#kFyK6*Vi`(akW2o{xF=|^OwsddOP2pTk_lI*Q+pb z<&RxIy{5#s*LSRoJAT~mZl0l^#JA_)J4m>FznV@b?wHTOrEYz^--vsu)er)&KX2}u z@$ve4@`32>^{sg%`R)C!eI|OlzfB|VG#)>2e-i}}SNmhnpER;?d;A^gh^zVA_ak;T z$#1W}SbpJlea+&;mB04-K9+a$Q#FaJ{_Oc**Ai}z->3y~)t_A-p|v~zA68#Ff8x|9(3wdVBugFNogm z@473*)%@-C^}j(}^>2?q;CJEn`o`WBZr88yxU0W=Zr=3;aYy~_qwjLg??DVVKNO3& zqrP0R-F$fhH*cJpxSGG+pYa()Z=YYe&)xc?MTFb+|9ITt-)|vq{kU&LZ?FGA9pcJA zd;Tw5iQc|{z55Hd@7GTrclft;0CC6umKx~RUz$fhI z{Ok|vGp=y!Yit#6&mZ9&ac#c%yOG20n0n-eBklI}_V^8gi97tM@rmepKd`@#If-lY z!~B)<31|P1zbY*G*+1kfz7##@M;;XF=1spMuJ*?szhznB_V_s~5m)}$^+(&e^?$V& zZr2~^K-@zrN#O5-7U)h~`D@p28e(#s&#+O#?fd)XSmE~hcA7w3^>5#wR!fPi`t5xB zYIpq5E$;Yt4+-b~vAri97s%A8C(qeZcyQ1rt|#yMN1L5!dz$^(#HD`nT72;WOcOf3oF~{C0o#6mjRT z8YX&s{XNRL^)tT~y}kZJRf#+1JE)d$d;VFqCBMD@+#QK~Qk5j|`A_fwclLciPngWtvqQ))q|I)`M}B=+Za+Tf$4^)m z{Uoo!Q6H3;xF=O@27Yh7K}ylHL-+}UkJ*W<{<(hS&AWv9oHq>fZ@5~@cbMx(eYXe1 zHUE(Jdq-U5=lICW=PT{^XRoj5^IA@Sa^+}g)Q6vtDYk~VqyHY?v^Dhj3Cpg{g>!xQ z3e$?~?Va=4bg`$=Kl;1qPvXiyo*(kVLB0L>%rXBrxrl52WB*HDkMjHDcR=tHH2D{f zcGiEc-&i9)-eJ66L0tLE`+;}(O;-_DR~S1lbbg}KpA_vUIp-hy%gKIxyMNoy5Lf4i z=ZEKS`a|NXe%?>?=fNZ5%3rP@`Q{W;433`=EI6CE79Zy`Ie4m}M}LdYnr8He^`|~a zT=mEGKkn(?(na{W#TG6_lNpse-YQ_i}T--?r>!N6P~D#mj1Ax-(KJ2!fxLGJK|dZ82@fJ z;dcMpJaNbWEXfh){%r8LmLK=~&&y|x{l@ux@VMGf?jQNR6&H>C$Uj+0T+Pp}U%tkz z-?oLgcj=}fh0!+)>>=UtXN)JV=Fj!v z{3jna_1IsMLJ^|q`-8klG2)K%6?s84gX80OlcuQ+j`KN?G z7Z=X`A&)hIxL2AA5*C7d!(rmu^$Y!<5uC^H4|%Nk#5Mnrf9-M2f8@(OuGNP;LSxah zzdymhoVGQbv%jd1JXz{vJ@U7wh->~LzjWKI5B(edRO++)KOj+Fqkq)@m4Ucp{%eZ6 z^toa8`HcDF_2oiJH$RerxcB&_ObGl2!L={l z`X?=jYx|4&SBxdD{NefF^)vDw(c5{3gT&Q-*m=oE?)Yny>tjrU$w%1e6NVWf0rZHi7$=)!uZq95ZBH(^55SQSM_mx)<{!{EyMt$h-$T-Bc{K!`( z6wdLH7s}+0pDu^!`TBaqUIw}o?l}^Al)8oCANH5}JL1~;!}z}}C9cf}d9M9#-tP`^ZT_eadP3YQT@?}d z_?9hBOXvB>l9ae3{_ZTq9p@u^IpI8Ctnc^M#2xkBZZCTK{HpbG>w6C-?x?@mMB>_f zaDF|G2@IqH{D(axKl_LJslAD7{UiTt ztmL=%S7EYnd;Cr_CB9uhd9TUQ|MjOOKI@V1xJX?2XYaq%Wj8O7u$yr{u>Tt=h^zVA z`&*WoxWm7O)rmXix2vY;?ekC7K)Bt%eNBmL_2KIiF-E!d%{;FBv-j6|p>VsunYIyk z^tWY~sU;{Gj~A9sR{FZRW@QZ1b(;x9`t|YLcJli`U1tNqZRe;rVKqjJQ@G@@+Xq&+(C; z%q^VjLtdu1o!P8v#F(<3i)gt+Dp@~7{JtNF11`1;4G8taVyQGe(FaVRNHh#xhSxblbl$NIJ`e`w@K|F5nW&iRpFxk_A%kNmT2 zj|_itK1b^kSM_uM$cwiluEj?laW!$xKjiH<2)FOYioFuw&JWjlY@82_|2Fu!!SQ?_ z`j)s>ANupQzUaAs_6(e-y^Q{ygzvUcD@tN{bT*HF9$`{>qnm0mda^!k@(#I;>S{r=8wesz=?AN7wtuHxIz+U{v?{oxs(_+GG=SbyQ< ziTwDyOXyXE^u)DYMLxT$=y_L=cezVk&4PCY`>T;Yv6DCbKYVp2w|?zc#I;?;{%ajD z^~gVupTwvS`G~@9KC`5oXYEE@^B1r6bCV|Zcild}c45S|T}OY<4VK)3Q5l z`fPd*qYZq^Xy9d&<3E)*K6XySW_(Nht7OEL&3sIeZ_J;|s2|6);Tz)0W*#$+>F2k( zjY}TtJB-U?=+U2v2Z^i8h*xCbODcII=QZM^K3XN>njSCNQQK5D^5a87yotoMHOGg9 zMF)th_Qn_ueM1#mD*wwykRPhyGsqqnc4a@@5Z+tA|Ycd=}NNZuo<@ zR3pX`*XqMt-dwwgYsU=VGCkC;hM~u|>~D1;uIgid0{9@4<3~1LPpoak$EOS-aqAfM z;rZE7fVi3;=g0k6I!CyD|K|QhT&o}V`==l3`t@;qobQ4X^^N)9{!OkzT=N&7GHqF5 z>M{P$tA*S1f4<4hZ|s-+ygwMf<~icpe&Bwuye4}4`DmMG|M)Q1{2$^fKIg~tmo-KcBR}%_@ri5kk%vucYwQR5 zpR8&hKfe7oXv~}MjsEa_WQy9)s2}?q8qRrtkoWw=t$$oiIQx(JEB;Pg+aKKjOb`0e z!*JEA^7x88sA7M^U*sd35m)~5{vz+)g1B~mk*Ap;dY&&{ABXq<(a_`kl8+*;^@scU zYWpaI<9th2n&piDamE~jqyF*3MZP~gKkRRPg2je^sINL=k6)i%e|rLP?R;VUTebEY z{o(m8@#8+De)KPOmxD(90RNI4^5gS-u>QF5e)i+@{83*ak8th}`Jyk0JLY$=7;$aC zP+u;@tq)H6i_t&UA0wrk_sBTy2T|0J%?Klg_`=~Ic%{vmJsO7!;r ztNnArug|VeT=1k(Kc0{D#fYo=?EMd(MO^a_?_bvL63+XNeC$o)+Ww$_3m=G{>&Nz`I7uI&dt{**sOT&oZHw47%R zf057lg1D-W^CKVA+08%y?3^E;_Yd`Fb`y8h_x*d(^L$YMG3|M0{nM)vclcASwOb!+ zs9WFZiRgL%@cF~`XQF5SkT*P)E*kgGdOUxn;->dG>yfW3VRF1acC42nn!aDiJAa$W zkI(bL^KotW=h1ZkP(OV`_GtR~M18@H!tL>A$H`&nF@9L`0?z)o0LS~6QvFLf<5&HW zxV9hY@6De}8u_ul3de~nJ?|&-N52Z^`5}K5&h7e&Uxqs8x3maxt$vLEeM#Z=_#0n* zZRoN8Q~!rw3FjO?Tt6u&Lc|E(fBttz$HuH=B*H~GKJ6RBXuJ?#_PFPv+UCI5#(Q2S zu8gohQHa{GmJuI~>f3XbQ6J_X4jdn7`t&pP*x#NtCdd5oORx3w^P*t>j2(!p{@G}Z zUw4Y=?FTK=ZQ>qMCI#N;eDgbTFSPG3#*ce{ouS8rmU++)pR@nyPwWxIReXDY32q4I z`cXeJ@lNObA6(sI_=n$}S#X!Qwm*0ypX{$1!MeYg|L8Y0gZaBhk;3TZ(7;#fhBcx; zPzl(8@RQ&lfKg{!2kQgC1=v!lZLn?->Swei?zqy-9Y|bj5aXwwDta~;`D%}A3xa&f zQQ~TVUJ-#G?)q@ChfzN+aL-Ib{P?^8*x#-^!Z|)J*#0KOwf<4xX07P$@!xw~TR_zB z*d}`Kj{@iW;@ptn(8yIo|9!5G5rQAPGo(m2)bD^Nfch!GmG#5I5L z5*KHhn@2cDT=mEEL;dq-W_~;Y!z2Fa*U$AK{~?)ho)djQZ|4!#i=O*KecnBy=lYQs zen4FL!yF$X+eH~+)Q9|eRN~rvk*ADj>T!R6$S8WQANO}Yi76gYzD)H~Xpo)KRp*96j2G|44>L#2AfcjrjFESd$ z0glK(Tr&{)$4`axf+4S-!{oT2Bg+%l76|!~@7MeJIX)in4CB|+Ed&`9{%_3UUlb|7 z!Egvi*!n1OZN&I;(VB=G4UXTC%+P?i)&b@pQ+kuH=Lul`nl*?khq*)KQ~%gz91(Q5 zLWb=|eaJ`DAgl(yo)aJHE}Pu>LTziI`QR;eu4Zf0`-YHUos3r{`|uYV}a1XV*_sb`S}Rq z8LvJ3mak_6Fn-TTZXRViacx0RpLVY3?E_f3L-gJj1m1;Lc}ZOP#~kA~igDW*F!H5o zh->xX0owZ+akYT<{+G=luJW^g7=M4+yMBJwqyIlgj}%=$z^IQJN?hf)$3N7WxMP0? z%y9D$N23|}alx-oj~m_PPsIf$$9tS=FNtgQWBl*JIs1dWb=r7FedteyZf+hgWqe=H z=LauP3o{Vc>O(%OuIRl#3OwIk`@8jfCX1f;8{@}ok-*vCnaYWs^ZlU?aaF&4KXdLR z?jf}#f!CKB6_Q5RKlX+D*`QuhLyz^RYf9YVUyV4)d_DVz^KH>Qy_2`}xVk{w^(8x) z9QR|;Y>ChQBmaGJE~7u>1<$&9vc~!S`Pk3rym*C-`q97AMTo2U*!#;{_bX%mczqt+ zj=0j>^PlZ3dOKg7yOa?h=RdoMaIOz|?-Im4}C z;C|&xQQ4Re>T{)X^G>C!8RrZ4V@@46FLso;Hh~ z_?-R2>)+8t&7J&UM&jD}!}>lJ7d`JU^7G|H&-sz3u1Q?;AM49fTlCyN-oKS;CY=38 z{oo%ZKG%nQ$pX>a{Ykf+xY|!UFSJ6qJ^m4oEC0BD%wK$^o8MhUT+P>>zt=j+Z;!wK zl$&=r>yF>!s+-TbMqJI$?tkurEu8xqrwDPSx7Ro0v@;`4rE{;YoySNmu0@5EEL z{*%bFx8&m)_Ll zbHub?ik|Z$pIcfu?+@0Wrm}F>;|_1X)Zf?-q}Ax(m+ur9XA^-I<6x_P;}R;r9KX_>FLTeI-W|SN+-jeKC``!=HNdL~nom zm|pu==l*7IA>3a7!FIy!*Z1cGh&#@Ir^%)s_akG?d(QotI$AjUgV*QL*NH3t?ERO1 zA$sl)AOB}pyzi|4`WWI4|39zs!Ql8B=Cmflxjy9ee<7~bkKd^czG&)^|8`$E`-42o z-|qNzJ_u)jP`@GCN54Mi_!{n~@q}}K$fuzXyl)%?}~&h4!z%$U7I8{CxhASFa>`J5N|$^7DLAf3&7>yS{iM zH!s*+xZR&0+7MU%+2hylNZdpI^%?6MJw){O`OO?5dOJ@wk+|~L&Rb6|_yhoe6&rYr#Ke{Jkr>-i)!OemKAWNkk(*^3q9(tNJ-V@{Vai5BaB+ck?-I ziL3qdX$qv zuI&f%RWBvKy}vXcgxl+@oH)qXe~iC81#ySJTT_YN9)DA2(cAgvQl@@i=(S~^6#XlF zzq(W)uKZy=@)chT=l+o=9OmZ1agB(7dV=l#I^ zyN(n0Li?|uAzyWoxVAsY<6jqUuP?=I;*S3FJ`%mX|B$!DReg58GGQd+`i1rN$VFV` zxA%WApPM%*IzHclfiRmgu?u)3ARH21tG{NLUEg-*2MCxBHuYro^|`*K3w= zyMJR3N`8C%BtHqa*H`zHn}2_vxL2AQLSTQ1@4ETu`@-${gFX<~{KxD6f(Vg~`6J&K zg}Bml|H!|LEqXhTQkb~bAL?%vBkoDnAJO#}9^c-DiQXQ6TV*%T*jPBv7vpzpP2Azn zgLcFn^_}b_dV77-yGefk@g4fhK8UzFe|CMFp_1QTf3jtw=lNrQ-FHZSd;F$*h1=t= zIpXH|t`k@OaQ;)!-ztwQfBF1jea~*2dgOT@xOwnv;r9CfdPiLCpWUBxk)k;F`$`<* zsy}=EH4}^8o_|wv;vV{s{XURN;@j&hnnSof|JQ{izny0*O5D+Zwqox1r#lL__gA5l z#JBI)z0t(g{O$T-lO(>q{!w#;+w~P!xp~qJZhmb$aWx;i|8Fi5cho=jGI8avy?^?Z zT4VnB`1R&$QX@XTzEq%53MU`a%FPeVB(Ci*#!s`0xYj@N)qfG!`a>QoUP?ocuW!9< zkjBvC>$|bG64(62_(3<*`t|etk!Sfln~@)1-@BAOx6wcHN>7^k_kSG!aKTqSJNIiD ze*fDrVROHJ<_C-ZIgV~o!ui$Y#MS*HbDVFlY{WJH@%4%R|A#mET=MgNp}#R^NqpX4 z>O+4I?=?Bbf4{1WF<*TDvGIE1s(-Ez=ie%2Z)5(*n`I&HS*w}| z{ESN6`og(CeE+n@ZsOYh;{4M_>|=0zeth1KA}J3J+A7r`+G0J5Z({|@T+5H2;X6NDIO~y@UrJp0!}*b?-cMZh&;21Ed0yfJ z5C4bKALSVuBQzd;!-qbI@bCZR^9cC0wDE<98vBSmZGGaZ9PuYt$$p{!>PX@C_}!)oXFpIsVij@ax1FawD|&nUXz7MI``=uUxEI<#FPQ)9(!%Zi z*BC`y_0Re7Gu><6i=H{2x9(AYH0s0G^Lte!uKA1liS^z5IW=xfuHU{tOI{II^I?Bb|8uVRethOQ zzk8d7bN|?1^ZUfL_^2A`s%Nf`}Onw;PrNK(iFZwtjGPCS;OSmU*{#nJ*hG= z@H=@0mx`YAV}Jdg5m)EOzF#8}ru6%>>$_zn?nzY*i0dNPfFN z^B%kPO%kUv{6YUVeiY9A<9;SjnA+K2`?SQ>ey~5dA2V_Zx9{KaHpI30;q|q|e96!8 z@qXgzE{V?^-_KZ_IgPQuhuZB-SN*U3;rE+;dYSy_H1EIZ;XM8b;@W(Xj~q{2tN$qc zv)Nf@i=OL4UUU!WA^)&z#I^H>`qS4z5BXOmOY79v$Vl8PO*I)7g7I$*Anxd|#1F)k zKfK?l@3BRnCeRdw@HgQ!S=f~ezzx+Ws z=SN;QWjZ51^2Q!l^RdTopM|*Q59;gY5N_8WE$+_0y|m=#{xN>$n!@ezJ9=E3FY14v zZF0PRMceG=J$ATxjO)ZTe=z>myKeo&KizzAl=Q~_WBf+x-2844H-FpI&4*1O?pd#v zB=GSm!&bMx`3~X^e@GtDV;lNS)zp9C zyzqSD+VvmfH%RgcztyRhEU><#m58hTviE=b<7Y;E^rz;zriQ)k0lev2Ct z-@gCR|B?8t$Nf(gw%YH{uFq7TxT=rmgZh&Hhwoe^dhRbkzlXTyKk^1gr9ON88Ge=c zcE0VV#JBUGf0y|7`rf`J?nzaVf#>s0@ET)&SpUaZ#I^lFo;Hqfd;Vq~cla|uRP^@w z#jYsa9{+SBH?OwH|E?LpzZf5;pDBJu6|n!gcO{@MAe zG;59dVf;;bgxm9{uSi_m57ghSOmPqhIL{yB&$?sA zM}GdHaPAMU&kdgo=lYS4eoI{IA9;j$>x}CM@*-)8YyKc#nocL z*+10R=pfwQf0b_T{IxcT-X6d84$<5F3))BAQUCfQqPO=~@u{0ve@9&HzrDW?HP$=l zbGQz1RiC~7C=Er=pSM7N`*tAim~ZOtqPN%gIP^2HqnTC*810X ztbet~RsDAV*Zm(JoJ{og`d_CKZr`6ixrjUZYgB-^ny~9VZhBnzxM$se#{$5Kfoack}eJC#Z z?fPe-#MON4_Xml>h^zYS@jH~0{Jfu-KTl1!eosH*4u4YD&*j(0^{-V=-+PBYzy5S- zMWa64uR@o<^*PTM&tJUz#8rNdkNk^2iEHyk9`mupXMZsN^yk7kKk`lg2)FwiC1Pcx zKlFFh6yjR_czrrMc7b0%_lNoWWx8qT@%4)`pAlE{=lSCGA$bYm_WoaXeCp57?tiNj z&yD$G{pDW@=lYS~D*nN!e=qDu<(|Z~&!eF}_+ykHmw%V-Wr`5j_HReY`t%G`y?>@&{~TX}xE3FIiJQXNfA7W9@|P2apPw}O z5*YfO@cL`lP~uvC64Vev&`bfpI81qG*wHW^d_$6!~P*ZJ~fBo zAI>M&`~rp^=Tm-hIiGt)1kQikcH-LpVg9ARh@R`i{+2%^uI9`BWB$U=B|gs|dF)rj zJ*g^!{%NfQ=KC`%8&oj*!}?P8Bd+<2_5GEuy07Q@kk8CSTtE#7ag zWByqAYZ>!FeWq`TtN7eM@`&9<@BLBW>(gU4k2TI0KE4i_FxBuM>+85`g)x83UuW7| zgX8t%OoDe#{!2RIYW`e5>c7lGT$?ZQv{NNM?-%m2|A%j!=*KaMTo2Zc)sZW!(WLz&UeDnFDUKi zKUOw5?$_Go^^N?e^29wB<}ANl)R#I^n~f6b)5{QB(rS6PUA zNEI0tg7J%&63+GG`D$E^xayDNBM)gV{6F;lh%5i>`WPEbj`QDkn7GzI^50HKevXg4 z<)6g0{*lK>(c2k+L`LEced&^JUb7T&%|FcFznkdUKjevjbn|5=i97uH^OWd$|1tjl zd!`=en=)!2KR)Ym|9a#guI9@e_p4%E(Q|*uS9f>ozgj5VYcg(^>5F=wz6=ZAL`@wk^J`h?hJPG-9Hj{_%~^ka6aFde~QOd|MvV7 zCJ=Y@Uv#EhU-&$65e5$lKpIf2hwKN?h|F`J=CiJL)f8 zQ{vnEi`dxB3pei{Nj>#c7g75D3B3PPq^;Cv@BiEo;r9OXuXFQTJET6oK4Jcnr-a+{ zH@WBL=^hbR{@L~M-nx0UeOhSN_@c8*dWV>PP*x7z2&-jrC2-PF%&e*Z-)baGoFP`&S|E z@aJhOcmB}vCdcP5UrZpb`s4nQC!8&u>qnk^E^)0s>fNH}{Xl->u<-xL z|C?}o{7U!S`NzEyy*>Vmf86@Ti3b_y1M4r8k+{R368VXHsnwDMzCQN025~hXyFW?m zx$~!OBYOM$kIVZCxA(t$3UNn$hc**e{r!jjxtm9bG1wVDMG`k3S4ueVFP_f}^@uz6 z`*k1D+x=HC;tqdauO_ap4_rU)&)vTyzMYQ>`oXzho8r28nZm?1 zfAI4yZ)Xql=fnNs^Ph4HiL3f~{>WFXBd+2z$NB8sE%Di3YwL>`pMhf z`Yey#`j?*!H|odujZ+iX`bS=+5piuk$iL|7=80xWe0zTlmkVeAG5*IZ#I^lIzVQ}u z$9``ATey8cUj~hE_V+feo0ls=+)>}H`oit~-}ktx-(KIE2Ey&X#{Os|MhjV-U zrwv7K_dj+c$#2(hZS3YdJ?^M4R}IvcA09{CD@~ac`1~gAe5uc#Kiy*C_WhW>#-0D?{lvY{etvxXN_CUCs*m>zdEC1r zB85h-8d^2{8;1B75#o&WGuR^($xK|^5Y%6-C!8mUd|MZZ&ki8(+h4dne~(!bpB+a1 zhReh~>3=x%L#t8F{u;F*>rf|DI zM|$5i>PLU)pE5c6)1=xHXMIOr64(64{U4g>sXu?N5BcC!Zhk#AakU@pAL{FsB(BW| zdHe-#USs+*=YEY{DcnB4nm61$>r>*YKGx$ikZ)dzp7#^^`vlK@J^P3JRes{iA3Gmd z*wo`EwBj}q&ijk;cg`d3m9CNmK7!X;A^Ev}+~3oOh^zfzj{Dd0r0BVRJZm90C}tLM9&W43H)kqB0oNF z0DeX%&RXIgQey}U;g`T0gnx!7<~rhPLhKOo<98B8rmyE$6@M^)=;|bq>EHbeEkXY$ ze}nI%oc|?>pMyQx8$taSUPF&kNqrCOJ)Z5F)9?sqRN}%{Mi2NosQmd#862;|rSjJD zJ>vTCl&zaz*U%$>wuZR2#R2?`TVMNc;$CVssKBd0{ABfv`mp~~-CEI%s)qZIJM>fU zR?Z!q8~U9e-+oFabr5d%=VigpzCZS>RNT|uj2+wu-{T+Or-w0LybEgFe2AgPtLQI1 zgmZn!uS^uq{o#B@PbRMX=lw(8c#7!l{U7{%sIeb-7qcKIacw_v{|e_LuHNSlE)iBD z)ccR#?Z>|=*Kt&2b*&12wuF5)K0nHsGoIBtc}E+2gc+)B8gKN0{MfI=l~3#=&goHw z2|njNz|XVq-M-ejCmn+~8hWh%L-28cOOgPtv^{4%fxVjedobhh( z;*^vA9PN8vW*%`ZKkiZ8pi>6N`sRLfDspHf`t?$|kfH(4YM23#pWi@SEgCm~3vzBd zan&F%W>rTpJMTo6aY$ z)rUOBgfm8d?61~D;#z#Xohx;PxQfsIqW_nJ&l>TOFOErEs}FhcEN=bm;cnh_CUG@? zenSJ}Us`w7s1N-a@%X+`A1?69`;UwRfDc4{S3masvtJ;3ToTUyp}yr);;Me$KddkR zGdGX^O1OQ$rbT*U)Q|lgjv}1%2k;og)qZe%fF!Z|+jX(J^*`;Rx0Yxca>6 z{JBdS{^EWlE;rQRIG>)?iEI8K|Dhpqt$*ZkIt%ChK>l>YkA8mp{>I--T;;d(Br(St z_2C0(&a*Ro&i>+lw=Xx#*l*+u^UOB(2mQ;CpSbGZUSGH7#I^m#{mn9*xayDV!}Bw1 zw{VV+y!=mYe&Y&pPpXmxK0a2uL0p?3#xMBT&8x+nWB8By+i8hw`Efqm3lLZNc|TAe zrL4r~{&7CtTZ!I2-)yakEB`q@>gO#Mz1`pQXC=Q^WZ*6EjR$T%;*+_)KO7(DzbY|t z$9`nYL0t0(^|MR4^&wS>YyPADr^`!>^M~g%MUQ1h{W!l>?N=D};rVDcn7Ec7<0l_N zT$>N_PItEYdiEc$k5yj^=lLR!_|-O}e!Mc1ZLz}K@ssNeLXaGnq9dyOKl^@lvw@FY>WK8}y`8**GY$H)AaP7v4pMZWU2$?<&D zikdX4>--H#LR|UB`-A#=xrB55$k$a8&h;aIR9*Og#NSL@^AE3Y+Yh^WoKwQ>{tdn( z`R#mMP%=M1?;rZxG9PhIs)i8wLeklhqPNG-J({?hpPjG%$JFEXscp>^Mt$hdl8*U| z`cOY|7I8ISo*(XKxw)nud6o&Ijr~A>iXJdIzEC;0_!z%`_80eKL=EEVg_@ue-WM{E zr~96`wjaos%$QXbN{ISW})cqd{)63M*Zl2mpikK`tkbRHu4;!e%y~)c}9Ow7_;&Xoe_WCLxz2wwKs`^`0?WOPA$*1!GF&)U zfE^@`eb1i&Zx~K+Q5)fQ2j5TmBpOeM<70hiHWAlO2*y91B$1)V4eqssxVl2~3BvyR z93-yA$Nmz2p4->|M}HNI8yxTOid7-5Z6NYBKZu^|!)N$$CKC6oQALJ@ApfvbIM;`K z&2~30c+8!@&^h9oKN!EpKN6qki+oq(5{5tc5_gyR#8rP>KVBi4?J)Itg(-X9)FW>d zv811$_Y3_$lZd#Q4|B{vAc=6E5Av||#5I4A|D4I>_>(jja!7p6k34Ew;p{K^muDz( z3xvn4HO)Q3D$D&lHB z+#mAWHHEW3$R~V9T=~QGAul@B z`PPV!k3biqRWbC)_tqh<>f`;w_>Gzo*Zf6(xx47Oe&qLuN`9UX@;WiA8vbE@&FeKa z>c_W`inQqG*U$O!`dn)*aaBLhAFn_4gZmr(;rw%bGQh8o<70h~OB2`57wR{BG1jOb z^_e5hcJhmf<~aGNvWK1Xf41$2p-2C-eEiwje}+WA_?-6x>wlM@xayz%Mc(czadke} zKiu!E#m*Y@$NHi?{ne-s`NoJBea`ujr^`g#F`oimt~mS4+lRQ)+vlHn`SNMOtMO>Y4t{?SlUlCXH;di)@e|PYu z;UCu5Z`NyrA&4>L*UgHbl_V_*S$2a=N`ZoV5oa1AEhvOy;*7prxE3Er+`GAO-eTk{HxbuHfc z*VLuQF*=3ek7M{3g>F&=twVgOz2xh9Mu&Kv>eSifsPEp3xHci=U(X?~b%?ykGPnNO zHaFk!GjX+H>@db(b=;l*)&JosPPp|0P7+uC@&;i3l^%E0_wje)4*wEA`47GKucfQs zH(tD>iID-%V5FVIwG7A?z7RckfKQeZq;6`&$7{^SswT%fnGe<6JZJ)OwITKij*HaH z=k_zuBRX+y!|?=E_{6Qh<8g=niw4BC3F3=+73VcKHXN^E)1tKS{pb48-}xR_`Mn_p z-YISWMmXznez(fBHtNHNxvk~gylR8Ch8}PBEB0~oUPFZQodoLpRqAH!ANF5q0CD9n z?;q}0?t#R$`5=nINWZ>_+9lB=fvHn5# zh^zkW{l|Q2>e0XIFWvk^?(RnYs9#?|xP3qK4koVV!~NlYC!0-NJHNPpK?@{4>ygh~ z^u19Z`rGYLKZE1`r##l*s1JF$^aH%dNbT(=tRUNj0mg=5hmnsFR~_;R4bX=TG%7@X ze&|YPg}D>2H}Yc#J(CIN4ME8>OI)iD^T%CIT)ToHU%$~E|A(z^eb?K_<OSPF!0+ zd_T0{8{*mm;sq{p&^Dt!K{v&_7O}O2k7=II2{@eXM7XP%- zAI@(@2H|#nt&+sG`Qi;o*)qgcf2>D-*yBpi^&|hMf|(!r={}<8^Micy0C)bNArjx7 zzwHROKH3T5YCd-T#)rfm{^AX{&+qLT_di}FW*3*KI9MLYQH!>>bD%YY{Wx{Y8F!G;vkG_eX(m=an8K@$Ed)Jc-Zq#q)n_198$dq@p2aDGvGzV`Qn{l)9g@$tmH)eVhBuVt4At6H^0Xjqu{*=+pF z2S;DiBiX+{l7N+N?*6w?2|5{j4smUhandsni=LfE{wB^FKfayszYrn1?gZxl>oReb zpPfM7ZFG>&?M`1^PFy=FIEfKQMQ`7f)N4{k*EbdWyLUi1*N2<*{-AKK5BZz>#8rQG zp7ND&t`GIU$4X`RgZybDlcRq*yAap>L0+sIaWAzRQs9sEel|%sUnx+()Z>o$6(_rS zg6YJylY;T5FCwn(C-T#4h&$@<`^cTYSGm-F{r3HsUtT!R5A(llL|o;!KhkXMB%JpL z^$WX7e7nCz1`=2P*z4PUM7TYEpS#4Be|G-G&l#Qm|B(7q=Y0Pjmet9h=E`Qw5BK+< zmbna${`8wn+_4|uPa*D@|J84D`|){xnEyoP>PG!|{(s0(!{GRa=&qW?wfx9~j|=Dd z;+@W`N5r-M@Vk9UBiA(i!Ry<&f+olKK-8 zwvI-8T#(*fOpf}8*E<>UQ9t}Cacuy|S9)9>P_7^Of}@?C^<}(G+@YUeafC5oT%gwd zrx^7iFW76k&$&K4pb4(e^f?b0`Rr%JwFN`|H2Ex}e&p9v5Lf=$*os$-hd6yx!>vESGk3=9_x!fgt)4oIqqNLSO@(4TtDtl z#n{BP{*e#3v(EAe?h zP~V}s=9=d+$lemj5nT;kjP z$^F93M@ByA+^_u!h^zV7^T$d=+(YV*0_RsYm+0;OWXR{{!R6gNZ7t%;U;BO~>`h#o zAD-W|{ml5tA5L@g0<(#${@H)jXP+zi*+1l8E+ww*2l8oGOpZ4Ik?#oS{*ljrM_kR1 z{l^=C>B$Zm`H|<#L|pR^dF_J4wfI>7wW7qe{Xm|knHe9?_xkQ`e&t8u_W3VbVCKj8 zk(Rslk5>|R?AMH4?)a@=2)CclKcfBQJYN+n9QOU=`QiQ1w=4cO=7YRliZ=$w$N$9V zh->q~$EUxa6Ib)){YC$_esuGuIp6yES rl_swIWqQ{Pvs^tVz~A{V`t*ZKh|UZbWalaoc9ysH;TOv+H-P z%;2m)>F1xu(EY{v9V|p#n=hWve->u)^Yi?Wcico=>A8R8HLnxb{K5IPdLnwBKl18N z&HTuRMbGT_$Npe{X|fX6>O)>P8*$|?*N;4Nb%}59KUF=6Z|4u2OME-;(n;cT|F}Ob z21$JTenp+()<<0=oc+Q0MRyQa^RfF^ZZC1=4?jUfe`dRhxZ%z zBhE$QT7AfGy&$gov&WARv!IjzRiC&c{@)FWtNwVtn19h4iO==pe!bmCT=i%7XZcgn z+xfIxrTqHs@gv+LuHtijnE!sO(nfx)e^a$G2FJ&j1`Db>^Y30P++P3SC)J(x1)pi- z^mp^FuEu<@zrM$aJN&(rsGG0n{lNW=lElp~Z|`C34?h3yS*Vw>|9JnqW(IM`etz6M z$mk!>|NULW)qe8)vHq3sh->jtKW*?}!ylag*XxL@{pR_hKJP~2D!!ffKOvm!Lw%>( zKlpm)`21tj2;wR~&j;&EFp{|H-_B1o9cJ{0{*3vJxE3GxXT!oDeLdHQe8QmNhQG+u zwisjhgZ-7ANL(Bu5p)tztDkNockEByZX{$XFvmgO%ecpYBxayDd zBcD-#xVC@D{|a;SeNm(O@wvVwQ*-93-*8uW{@$0<`~7=G(EVAFtUaneSsu>Ew8&uO zpAYpf8JHnLXjJ-#FzA2s-EjPyd}Anv@|b6UJnMptMh>ju@?zok8vD-4Zp;w%@BSpN zJm&n!OJvC5&xqq=eJKy-bn2sR&28v0erWzYet-5IY|)drRv+%*zTTqe86v+mC9l)J z+1c_L@v*-xg^4@n)3lmf->Y3Qqkr77w#C13@+fl~IO{t$xv9Z1{>!3m{rG%_(EllG ziEI9%ep23c#{R7QrqJAu#czk7fv4r$JN0c>5Lf=$^PkVv!RPk8!!kLyPsGmo1m59jPJ z>Mxcgz4Fh_uay?g`M1Gi;M;DJpY?eCNYk6R@`wFHK58OywI94+$O}!GZOj+XU!FC@ zHGl9ivUtcG=X}l=ck_+o=NkF3zNCkUtNOWrobQy}^9+vuU;aNlVoA3K$}njg;}`Q2T_wf>PmX}!?UuN|B& zxMaM+;n%KhF2cJU73TaFwCQ{V7?Wxa0gC*|Og77wgOM`39qZs(-01@Md_}EBZt2AYdb< zV?J^=Ix-P)hd%0h;;K-ukiZAZXd6HJdgf@<+q2Ok>WyN3Yi<%(gRl=O+GjC+&hc@P z5|1G6s6Si1xJG_7I!B`TzWzV@OG4aH-@0xIe9nW!{+6dn?8o-FJML@PiKotaHhMx_ z?Gv8|)c=&@tskE|L8s2t{KuF#cCz$!P>_B-zz6PZ?})4G8Rtj-Bq&mle%^5#-j9!J z#K-GN)rBU<{-PZqt|r0PJLKJ7nR>i2OA;}fkso=&WWxEpVSla53g`UDKU5>G)rY)H zXVG(ftpAgqqPO!j-@Ez7l_p33zdAr%&5!pFdHeUK9?yH)577-h?pKP-v4Z$|$?;J? zyk8Pu&;8*^@6|V%F(0h&!v^A7{pjC^L&TN;93S;RUl+ZdPuP>(kI(y!^&d@{(x@MK zldZ(H{K(s0Nbmc@@p1oG|4v+;Z{9ED>k?)#{KftsW+bj%AF%&=6@+tq^-9PmKn!!T2MIYXd@_Y#(t|AP)d}>{lj71Kvl^%;zAM#|#H_kz%G6~RN*cO0 zKe>6!qGg=*<*Hx7m>kZ+s^;EQhG`t|byVt?5?)^O@~uO{w|MxC<28@kB5 ziK`nvo)5;a;Bm)(7C%H>?T7tO;Pxr|9kV z1w9ka`-}Q}32Pbqi@a=Z;;MhUesBTN+xfIQ4gL5$Uwmbu&|u;!K6CUZYz}cXU!EWG zI!A~re>gv0z`i&oob|}Zo)OOeA+L5$xIO-yWS#u_>^E3#z9O#mhqt0d?({PJ!Tn76 z2XV*zM^5f-aD4aZ@Jy3q{%xCxtNmqvP(QnIU!QaT$XhleuIgj|u>O(f`x*1W8=yP! z`uqN{9(mss#MS)md}IycTK%Z6+R?2~xLWkQf4HArcN5qA#~YkOZ_W6~kGym9O*cmw z{^I_9Uwe$vKl;1)AaS){><^xg6wAjN_2c}GZX>Sz-ks zG_b|U$%cV=0gd#5xOM@+0X{1-%`h1G{U2ud@wq{KhL&-G$?>^tlM?d`eL(%)=NlXi zO8;bjP-x^Z`WCu4fVVKO%Wp6u;1OI^-_84vC9XMy`WuIdt4jc1qVR~Ndmx;T0Cte) z;6}q?T(Nt#HW~FJufLMGb_qa!XS?XRKIDTVZuaBbdBIe|?MEy_LE(0N%j(3HKlV$& zu_44gscM40fCDe?z8`ql(BlRUD0;-NpN}B&*SCK${6$_g>Tx4J?oXe3#MLE&`$zr9 z`k5l>^&|gmnsB>+XVzto$!jAYcFOsIM(;(F>!5wkoQlT&B+ti zcJuOAO^)?lD_g)>-;D~ywf(^Q(pM7B{$l))@x)bsynlE;XRZ*=`-^;6nu3w^{l)x? zvl4gg$KBk-9sW*jOkC>^>)$ij&EHIu{PtVCI57(u`EkEjCn2uo$MZKP6>+UUHMpXZ{6Ah^zW}zUW`ORKy+rUrtM0)yI0AZ_0FTJ~oTQ zx9jiZC9eGQiU@oPIBr*Yzkc=)^XI%lT&U!q*$$M2Z^yvSok;3i% zY#K}4Lu!bD^F6*sxZVGm?dur(jrUilJDME#zj9yVDnG|Zp02-}#~vu0=ZpHi!-VsE zkw5Ubw!g>|Pa*D==KF*1v1FSkoc%@pYi&t{-{&{le|~JjaQv{_MQj3F7K0nmv9{ z-!jy7p1=;D5!W2R6PU0taaE!H3UH~E=($4F$7m$nu8%ZGxLu$9HgU%lr0fgfcKyRV z^^8YItgqRZ#8rPh0pyj+yY=;M5?B6lemvphlhrr;#SKrCg1E|WKcR233+MXqIpqD$ z!dZ_SSY!Zk0s8Wyx5uyl4RNnEHN?OV&>d?b@$LF)eME1sFXceV&m8Bs={Glj z6QhyQAL3>lKAXD@?jZY z81eB6)#Jbyk@d$|>_6uf;@bJd_>Hd-*ZfC*;f8Q~f9Y!$jjZ>F_3da+T;*r~@O&+p zB%J%lN9aPYOpg7U-_0VsLz$ zWBM85nm-u-%PXcH`GG=Jo%6q6nYfD2{-VBa3pd}~nz-6uFG%2Xpl;oXYx{%o=k^sn z&mZ}^`EGrOEyC^f$2&t@n=i(namlSO^icHn`jWnP^9G+*^ZU2^Q>iX-M|~|D5Led^ z`+i*?L|plAukXe>Tjne?(i@EXT%-nYkPgSesCK%kJqk7Wc^oq z@%+s0OL{dw`~IE(QR=hr|N8U7?fNUhHJ$s>z6f#6f4qK|tLWwyS z)!*?o_CF)k2yNp>;2QB+(B?(NwHYCwv5dHy0q+3vI;(`+;}6?FTzSYIylSTu`V{dw57=R753w~-0@PCAz1-w<&w#LarcZYOJcS#%%aHLaGKIL)`qvNa99*Xy56Kwr73tBqe>gsJ=bxkGxJ)H@_W|xRF2FM@yeX_(y#bmDHT) z2M+>qIuSSg1C^}+ew`AY^dpU7LR zA+F+ceOQ0f%$bCLoR0y8h$$Bq>&;^Y3dub1T5|3n8Wi2fii+2uQtKVAks+DTmXkLMrtoxWRht`B+a zvW><3t&5!{C4HeH>@q4sAL2@X?k`@%9P8Uk%pcZYZMEi{AL`pPX`9IAA2UFHzh@hv zFY?Jlh#URI_??Gp&hw4D&Qi^}KIE61xApsD=cm3WuJmVp(Z0yE|HHk%ovwaODc>ym zgi_d^VWQdp$AfRb`agJ;Ino{{sB0MK4q*lVa(jM9J$to+?Dqe1yFyLpy6sze+@Vij zkE;&Y^IPn3H6eDsGmP8we-jqpo_~>f?)b$#?$D=Xn7!S9wJ>}81b+P=JlA}8{61ma z?mycCcYWV3(*D^VS7>988~P*vY^nCo^&`*fab<7!-^$}kUpv3;abteaf9GX7KF|qwVeawX3f=&mY!5ym?aRe2i|bx!wPuuEZVr zjq2s*KMf`B&?nq{;*S0`*r4t0`PDwCIqyapm7$UxHlP-kyKN z{Mz2$pNufiIJ0X`$`y{;#wnuKHuouUik|j`|-=ar5ar zb$omOGVa#)_W0?~X>PYa_M7JR`XXP_-0uI#WzFsO=Wh{L`rG5*4@%+dZ@1r&Ky!Qi zamk1~^lf&twCE2WzazeH;++5U5u1wnK>N#Oh^zkF=j(n2;*R`o_G>TJ5Bkq|MsmCY z{Sc#rs1MigS2G9r@mW9oL5V?Eh#UFi*X7bC85q=B-2tGdb@Z*j(30q3(UD>b**S3Sp6p$|^b>wLsj{`M8vs5x;@8Z`ug zuj-Wfp19JN^+W%K+iQEf|J5CctNF6?;BIcdV~~!|^<(_8YbD3|nOAV3Gk(do#8rK) zKl)FQXpykT{!GkETToIkF=75SD6 zj#n6QN)T81aewh1R{jsfjsD@QmUBK4H|7iZrv@uT{dkYL+}V{PKGr{a)fy2W>%VxE zxY0kf-+e)IyZ&u25m)nX?|<}t>qLC?-*5DK-eHxK(2{r$uhnVd4*h=nL|nz^{^NWV z$g)A$BhUUNaiu@^5A(Y_T-u|4V@7Ds_Q)qMJt_K&^AYX@aYO%rdz|%7iTrW?o~?Q= z@<-l!T;wRGf6Q<0JmSXuA^+>B=5~Fa9&__mCv<%K{Jg(FT=myJKZ|c@|J+~9@BU3~ zZ|6Om2l@5c`*UU*aSthx0?&XC)JyE^$M!fs9a<1q_MAWRM;j%_`6`w&iRcgV>CsdA z`fz=?KQ;R4TW5W3rVuyQ59-%*w&r&I`|Xq*^P78|xS=2NC#SVN=Z`#k?>0g|%rD~I zw$A*kKKt3PpXUqx&;E*@?Woc3v|yZNb0#0~%0|GRgItNHUj6nK7E zwD=&ge(?_IKV7DY`mw$*dlEPHPpq%$KH@4q>$~Ydp5aZB9teAew)&IXf1S0{MgF+I zML(rE-$BOu$48za^hKU8mYbhRpgH#s?bmFZE$T-e{la`Pzqr0LCt4u%$K&U>Q#Etqeev?Mp-aa2cv~a98Ji}`)F)*V0UI&E*C&+7ZNy}iERQ^b`%_V`^dYkT|rq%XeIIltFC z5I6M4`6-5laZf6>0%GB?kEg1DMb)(7psIjiII@f-Qe%WnH=@3g%=|CdRZ zIrG1qlDNu`^~LzrGZHuS+Xa7XQLi+%?VZ z^{;+UT-9ffA2DdTs1Ni1(&MWCcKbQmh^zWJKeX>&MBCf-*;Z29+j+4D#2xt`Z0z=* z_j}^1fA;*ww%74lf6V{>4DH`u|E+n%RepB+i#ud|oUf4wG`IVod`|o4{PFztAmXY%j*t0Ai{j=@)9)Ag;q}e)NyL?Zt{-`i1)6hw{^TxkHGg*d%MDHo{qg)@;8xAK zKD<7Tag?~>AFrSG9V2ec2l8mS&Ipe6l_^Qw(f{Kuv^~#1&PVL;-S#a8xcT(a+CSHi z{uiGkuIjh*E8)(H`q2LG)Wi+_@c#XgOm5yVgt(zkK!5s5d+hK1xy04{+4Z}()Xo3d zCjDc5FAlkR_XpZP>xcW_h63k=ez<-j7bULh=lqc;s7u_?7x}i$zX|Reg5*Z-)?9`q+80p>AGpqUJmwm|xl1ZXSOzaijle z|NRQhSs&zQ4!QmRc1+vb>)Y_2xQCPof%iZAM|~suhw+aUA#ThM&VSxw#EtrpZ?8#Q z#rHlGc>ieX_ii4yqnoel>W)9Ux0}~pt~u+E`A6GD+?X%CKla^j&DkD#j6=lL{Bixr zf4Z*YbN`V4b=%E*zti#U_B%?w75bz9SYHx1`isZc^eu=R{YCp+J>0zC0C)U1BZ(`0 z?D@x9;r5@<<3|3N-+{H7+x1VeS95#+Ufh=P@%^GS_lXXMK=w-9X%^ANl!1 zZhq~N9=y<{&>u)>O&7aI7uI7jH$NGzI zNg(RG06(?y#bx5kp8InUe(pS7%!DGpee<)HuReZ$*z>W=IfxteAwQ9uxZ!_4{4M9j zSrZBWIG^)AmmKwdQPIuoS0(P<`cX*+9$$CXB(Bzny?>V{Y0moM{8Yc1SmclS?YvIh zSbxZ?JV+dszQi3Gw!rZNy{9Mf1Mmig2~0?sK{Nm#fOgE1!3*&3U)#ke2-)(I1F!k2 zO`#?63Fy61#8n0M6?}Km7eYZyu=Enm?Fu&TT~Wlx0_r~|?sd@rYrwdIA}6gRCJgzb z;*z7lskakX^>cm!6WFDy;J893{7&4MaJ&L5m#~^|&kaOADkE{OkD3(tE!w`hi5nAy z_7%(Y@dtqWgZgh@O5CtVzU6}3KG!YchCXON{E4>b`jE$e>E^LM5Lf!~9a^;Sw0V%v z?fn^iZn$#+^c_Az*kk`29U|_z_U9jYsWxLp|Bw&OJwdDwoS(s+-8{HAaaBL-hxWa8 zXwLmbUh%&6&-!3~!3ie{eUOh&ODph#U2x|4}R4yy_X^N2|SGb%I7>m$g?zgFY3eiBM)iL_NdR`a`B>Z{hU9pfHpr7R~@q3f3-5c zlka^?T(sY0mj0uah;Q z@83Q@r6&?s`Ln*Lf8Rf}y&N~NucGZaKb)UtqqRMAyogVGT-)38yLVOEWBv#0r*ziWq7!jr zeW3l4{?Z=v%RgS*+w*^Yn7D_O$bnzOpLI^#+w0qRNpqfm%$%iU`dAi%f3&T;CB_`m#Ql|A=AQ-p-qha>qY7lep5?UVo`s?)XdRy5rAV z==R^DUwSb=xc>6a&LKGN@26_z6YC$3{}pEuH|7UenI>aaF&)KRt3vj{8T#Lz=Tbcnc-RXAPq1 zTRh&+m|*+_DZlmeV|{SG2GnmX>PLQW8*yX*#QHOxB(C~n*MG(GHokv*e>?n1T={2x zF#esxJ$-xDAL~nYgt)S2|Hw199WLe%k8dC5OO7uYoJl>-nP2e@Q-yx0Ps_$LMgCY{ z*MpjK{>blM(A?g?+f`;o3yB#TO#g(^*T_Tuy&H<2s%)PnDnX^%4Q7i< z@JuOT!G(gO((k`tB;sR!i#iZj@$HpH>fz=qJnopJ^L;e8EB)8%mBJqDn>S^(Umx2e z&;NFVs2}TF{E4_%nkq8zOn%>iO-}#6wcITHqrUHY5I6iIulr`3Z_oM$@H{*G`kCV- z_bH}1&j<2Dp_<$6N6y{t=f^7<^(pZ6J`o@D%QBU?7g`k=crR(=9Bt3}VSjGc-!JsT zowQ|t%{hPMy|)nekV+!(X7lYov_02{_6c9R`O^poM15#qBH4jx^arB<{b6_fz{HM^ z!~mnfACtWl9PNKRNL&fb1z>}BM1AGts|LIIjpM|P1&;pLpV#)hz>w$J@=nCZ{5R|; zZfpQ}D2;gWT{QaRUZEjjzxsiu#e4^tdr0$eWFH^Yt%@tNQHuoy-!=kI(tx7L&70bdewSCuj(9M}DIxN_)&d z=W=cDB^lV?(l66F`?EY^dXXPac+RMjV|~{qW)S|3`S~n%xNzmWosPz%r$nUr?$IsH zt)C8gPplPR_PgZs(-+;Cr+WS{{_7vng+20yF=9CRsQJWAeIb7KII-waX6V1`7x=2s zSi=9N#mUZZ9y&HGzc!a8Uop6FgBK6_hw~uj*L~`*WaFh>bb-n>+`_ghJs`K(o-9Y`f)x6+#{~$!yf-$_$JQ$ zU&khH+b{721MKs>-qZr#fl zfI0e4*^Rhrpq-zJJ5bo8z-hDZ_Vecf!vTEvC2^$>FHqz^me!mH1o`1|ZvWedofGMWx2NJ`p|#Noo>G6mh_J&(2pN!d(IDe*H^@i`9r?`t+waq}nDZJ(p|-c{w>Gur z_WVD~q`5tQi)_R_Q*{ssoR1NCh^zeU@#}?Z|MvL#zjpJd-)L_4|Ee=_m7iUo63&$T_*hy3kpZExr8-fPbNLHkJ&ZaVXO6qUH@kKKRE*qYn(f11zDR}|Or**_ki z8-1g>J^z?J-Tp64()PT5u>K>fG`H6`do^(nsU`+qz#d*p+@a6r1DbRGcz*lnkmej8 z`O~Xz{?%(Y|Dy6O{{k)oJtqmwzkXBVDu3=DUf&Q`gOF zeCy6HdSkbJ$`+d2^K0yJrLVodu|K%&hfXGL=!5q?IPQ#T}T=!5+1FT{=hA>X=| zxRD?7H~X|b*N?p3CE~{XA)oXQag`s>FY==WQ#$QGRU>ZLV}Db(B(Cyj{c(Tk)1A1{ zU*!7-X#c!^k$-wc+^7%v{QRGV4~ZO1Ulj`b(ky=DW7W@`Dg0WSxFbZCo^IZ?@g*HCko5P8rqO@uuz@$liBiTId*kJiME z5kNlqgyuY=7=KpM=Dxk1*Q?t?>={Q{x7dP+Ru;Y2kpOVK-^e@$aB0KE8=7R z;p30pXYs(*I<3x{kI^`ZYxb%-1BasBmuEIH~EJKlC-kNW=@pSY19^4nRp zyP9wKItJK_#!291M>J68C{hteMX|NakgqXOjVW9}63kuON>=KWI> zclhsIfw;=w-r*iyq&=>%wtd`u?hxX}1fYG9p*p_zA^OS^JVZ$|(d|Fx6u19GtF%3@ zVD!K8A#t^W?C}%4b^9+?XqTuDckmg-G-rL0w<@JM=Z8F`GI7;EJD<})bG!d7i#6x^ z(0~7p#8v<8eA`iNZ}%T5+ip=m-lSjsC2_+)@^xj28}o_zMQX4|_(wjbA#sO3`&wvj z&p&z>%~@Z}@91ITDu1>|zB}hx5r6Gp)95i>>#&D(H#-qG>c<_hYxHws{&0OC%6CcV zgFN|H#J$$3Ab~g8&sB5t;X${Bf84<*BqnaukGw-V;wnDt6UM#2jjrAkOrBnUf)x(? zgwJ1RcW3bV`FkP)9;1J2|J<*DCm4?b6LY?$J)SNSLdL7tVFGWYZZAfkh{9hv3HuPH znKR4ZqLH|f{F;-v(Fo-2+i81mS}jTZLfq5PZzS5+s`o+o$NY+2`{Z->kNi>Ga1pqX zcHZb4$#KvMtRrqLH1t1ay_ zTHEtBf$?`<)SUIhw>{ckCT`@1eC;D0pXUSl(wqq*m{0q0n`+)Nfv+FuhuhrKj>J{{ zoFDQfU5TsL{k&fZ41Agp=?ZbRepny0Uz;?c@82H(_pgX6dybFm<4qH7&;3VUpgnOz zKjgm`$sp=Sz9y8o(SPK#nrY7Y;r`J7{pZg3^(tf&9Q#vf5OL475+U$y%5Isn3wYs86bPQ$>BqAIM`SnJMC9{cUE>67_F`=Z&j3%oh4> z_rA|?eoNS??55v|8!G@$WsjwrBRHO_N6jHQ_V0AvxkBH)a4Nm0HF0BopnZ$p#8rMg zA9w^yHAwrn>pO0(w&xuX->2JkO4{T5dO0r;H+D$md#`HF`5`|Vex9fw;}5Ds+}pgB z2%#nM2sUtxv`4;THF2YV$j@AH^GSEKf7TD}6F=0P>qCBP+#;b5uCGu3!C$T;d!zq2 z-`h?SH`XW4=aalkMEw{)|L@Bp&{rzGpC0=^7YgA@t@1Nq1#kj;S0Ju3V2AFbci_gQw~HMD`RRJZjR{5tfAhHN0N01S+MTna z1L%KB$8!<9p8)*70mJnAB<}C`h*bG-C$BW34Q6oh( z>qGq><|A$l5bB?zCUIjx&^~5|$bSBuAL_Tc8*zueE01b>)(`Vv{EE1dAM*VXf_!eb z@0yXgkw4lGElAvvU({Nf^8Mz59rkyl=??Rox?-#FZ~e;p&zcV`(=a0eBk^HsYP7%hx>=TTXW*7|90M^mFB!bqWzN} zbbP!0u}<2a`-ApZyAoIP!Tm=*y_?(r{C?&9{8>L--+M+8H|7)h&o_vx`1bsMO;X;; zFE_6sIIizDicJX(f)CB;;R3wALbYS zXX0wU*&g|_G_^&3*uS?~iL3h9Kk{r}NPAqL?Jf~_tgi|0CCByu;RA71pO-}7Mf~;i zbwvHxzn7a1`1SF8AYZeSxY0k1zh*yiLqFul4!G?b9@X}oKk9Sp-C?0W=2tQ6pCUih z|5h+@HDBx>d4V08bN?~^>NHVWZYxoYW`RsoUiyjn)v>iqyDY?6F24;>z_55xSi*`MnAvi9ffth9sjxAn1i?}huX#eQ! zeCLS$GH;QSS6aVV)Q9ocFWw-QAoj1pX3e?3c!*E3ow%VN@)n1P8~sBbd_mju62iL- zd7kZd>X*LlA<J#c{Xv?AMZnfcR^Qe)c%>{d@tDM=7o<+ z|ET}pPqjVgk9R3{B{?kS2e;6xsfioGXZtURdq{mK@Mj;U z7MJ#@PqWgJWBmon5I6G2Q}pcR-1cYd5jXmW{-f7ED*BJ}GxfzWVUP0@E8=mXKk{cW zh%5c<^HVn+aaAAdi}9PBz9ix!&w7@)p+E8j=ZHJ}hkK&^+vCT1sX6D5{u91-^ZGF_ z`}x_|-?C z{rId8`d>SlxSC&k{`2w`68Yo&S3Xr(aMW+a(4u~RoIl#%I7?jVWAEQj=ZG8mq5YO* z^?h#Fci{r!YJTkT|K6{;z5XU|zwz_u{P6tf<$K~re#p~jX&~xD{bz1&9GUN;bAGsg zHabpR^_S!0{*S}t8r@q%V{3P)cUD6>{`dw<@o?J4xf_-7yV@;Ub(dEpI1M11Vu7ndZ*{L7UX>ep|d zztI&nx6j|pTEsn5B~sum+}0FY&ee?$JEBXMK?P`?{> z7YlpT?`~t_#(blF$&SR8f7TD}SI!`A=!5nxAG`UQpe4RN&ky?lqY80jKJoamqXu!K ze!N60UXQq{kMl>~W|EH2{YSnj%_=`W=ZE#(%tT!I=lu`)o&v;;{E&ZBO8e*hkPk1b z{oDEe&TB+`)Mx6g?SkX+;oYh|qCV8WRr8b1{*RfaIqQe}=anz+iTOZ%M;<3`=!5Iy zMCbd$ei!`gS<#<~8}qSq-NpEa-&YQMO8wbs;)Z`*KMk)+d(1!R8gbQM?mzO<&ma1n z`-A5vqkA0j^X@6;^KIsP8_S;ku%HD~{LeO`9kbFuy~za!6H z2>q}>S6lok^vC{g+)dm|O*MgjSr~2+eSKQn^Zelbhjg!qEB(1XynY&x>ZQ;J^-CD; zwa5?WdtoxoSs#2)D}JZ9kwX%DKS3V&k3J_wpL2eGD`KK%Tc=BoHQm@JInHd>T<^r1 zL`_dr)7-u$Bey5+nCX(A{uVvQ`mSVrFM5J}XE1S3P8B5Zm>I9Ko6p(!!Pk#_f@|)F z!^DmJab~(7(e^wu$dmr&wy&1;A5kB!i5+=~8};GLO(`rn#t$m1IUh4{&-yFdCs9A@ zo3Nzj++WPE!W+%Gezb4@j<{Nr93Oe32;qXvJr(&}kE{Ca{wseMG00rAxM%${A(HRk z{@%jL)G>vBobR4L#|)ysUHb2P1K5Bf=g5IkAo6oLWBCd4fFU1Um$*?N@_n0#8~!oD zxJQT^2PL$>^FVWskM@H{$M)lMgHgb~OJfI_fBhMGo4aJM@?-zV&kc&>=f@le^x-bz zM*V2N?kRDvcPdC|N#ymi$8`?CyVArR`K2$TIS(lMf6|J$%FnLPkMAYN4WxRUc)}ie zjB><{{vq#^ExvEh`5~ViqB-Y>Jnm4*aXt!|H#|FC9dX&^+8^` zO)8-e@@bcd8~s6^I7@10eczTz9YkOBG!7wn4)(HC8c`uCkg6VWM+bY1OCJ;xh5m4< z_m4hN#4#9rHN8j^_u;oWGWariwFaI%$NrkQO2W>E)F*DV8ILo!x)C>IME-7(_RnL0 zeAs5qc}#K4iX3zMzwm~*8Uyx^_BFz16!{^)9<8Xe36&!k_v>eUu!(ar6Ib=ymszD2 z#0`DX{@egJ&pfnv;1Hmb-FL`|I+)s%_`GomkpvD=)V{=(h+HJ{l|Pnp+HWcsEQSQ_ z3%9P|b6%^+qxR68^G7~;n>z1uOdc@DO7B1(h0# z`mukt9yRgpxqkE?b8AbXKOXBUzannbk38qrwt{1RUG5Th3~5lz@5PX#eTp=i+w0Gk zqMeA3d+pn=hv7Z>>v4}@x+bwzXSeoMuI8Yp63(i ztK(E{&+(D(nxQ%Ck9^Vw;%ffv{uBMK14_ABx2|R;zoavH#(>}_ZNB3c*p5n^WT#geU1?KkPtw3DO59^OS<`Ny>&TFpL{_XV@zC_$nU!}|^o%Q{ZmAJ~E`-k~0 z%dYM1e0pBD{mqt=WB-@7Bd+w}`j8LrtmE7D$udcDT%R${YX5AHC$SCBYkRH_`OM$k zJX($iqQAJm)w`#;y}lE%ANu{_{BVEopOUzt5Aq*IOOD6S#~X`5BZ{%Q9FuK(l% znzO!`f0i+?gg*E^&*UeFtNwXK1peKJ-|rGP^2etM8N0m}^MT*vjWx*4Hyk5w%mwyVSq{n7v8AItij{iFUb1`t>Ja{kB<4bz zKl;xe*KMCA9&wc)uV1t;{+Z_X_>-~{H~NS6S97@evohL0_ZRJdsYl${|B%NXNZe6> z*THUn{8zXCBXc#k=Qm_NaYuinF8dF@in!9x-oF)_b$q-2qjzcl_WbH(8tz-UL@}5&)hU4{QB(q?ew_Aeqk2kj{ffNK-`gENEd03`%8(QGCuMny@(t0 zjr`G2X^;E=qfx|Feq2BDY@gir>0*s^+Ru$c+{h38$4*Jy&=>PBlitnCZX4y)H*_a) z!#}Ri8+(a6`gih_=AM(l8>N@RxP3nFhH?A)2s*3%+xfx=?);BGnkDK(eH+f2?Q_l# zj~_RVYR>WTMETWy$MQ?dA(6>=5;%e%YJu^z-8jA-s^9yjyc#pO}BSXT**5 zg*;~5UC#RBEhKK($7up}5NZimLd5#stJ=e-f z;7c39k^U6(gY%m&GI6CJ$49;?v*uosfxq1wuZZ@~`r-NQ{f5L<{ye{^f4hmqjrx%< zjquXhzo!w2tNJ;Aw4bp`bIu?2o3~qYd;Rfm5;x`x?F&Da_87l;%vYj+$P3gZZq$$d zKei)o)Q9|3FXBf3(0}0 z|M9NGRsPj%#2xj0{;lR*AKKSyrTue! z)NgKUZO`$MpB|>UUB6T#h^zjvf7JK=W8!Lk@OwK+YtH)O zS4}dm(f&OrfnUWgy-{;}{1|(+f7T!4pFgQN$47mFZ)pDJVl(0qCaT= z%;QQQd;G2`i7S2W{%dA++i%S2w(nU*+p~U{-x-fP>T6PqxM!-84E#yfpFOVfxBGAT zgXZ@74h(SfKgSSP`Pu!iT~FMhZ@1rxJMypamyXZ#gZdOnl120f_n#-pi7Ws1^Q-fz zi5vN${l1*qKgUO2`ekvUFY-)jgGGJFBZZa~`r-bX^zW*IkE%R8_Ezj;v*k7(9KJots~;& z{`2df#EtpG^Yd24>N@pFUx~QVm**eP4=xTSuJX6@yEE&F`N94?J5Su<|I-uVhCUeo zUbyAesKFAwTyqD-7uAiSnHMhrqREfCq&;3FBqy2h|`Z520wFWrtJN-S-$=`U~=pV+< znro1lKb-$K{U-VT?fR$lxSDU)5A*+X?G$HzleZFA_N*V~_cr@fkw4~FwkUC>FXxAR z)+FL;{j+~Of6KF5+jIVCzvE9GpZkaPO>8#JIUn;E5_j~!`EAYZ`W5MTS=5jF$Mvqn zm4AEwf7f{A*U!f%T)!n!zYzNa)>q*Uaic#N|L5WFo%T}>5cg73Nd{hDe$4!j@Q?i; zp7@jRpX_v--7IXpR$v< zu|J?bzaFpY_m};nebqC>jrx&ayhYr|ANj&mU;F;Kzqmhb%tl<<^ZX;PeU7-wpE>G3 z~f74%X zzz?>c&_D=*ywZ_xMIzY9qhr1kjY6I|abqC_@(~l7MGJ`-67qk)ceHI)yZ`5)P~33g z%Ex{jfiI%exQHt$#b@-7Cf@WhUU^jfz?5j=Led0>hSUrR2@a+IqW`BR{eRxSga*^U zdjA&or%Ggf6x%( z#+;*l&Edq2`jP)WQFD9!@n^Vsv_-_#K4b6SwEy7Qmyx}pFXp#km5$H*1oB6FwY{DH z@RGQfnm^rWfAcMIl|So?{K0$e-_8?+&+gQ}ath)O{kP|G+aJ#F=C=wFSNYrfSG+iJ zRll8AEusC}``0KahqFJ6{)3lFO7;$YE9E5a$nRrO;)Z^>e&USP_S_%j7d&pnM_zuu z=3GDWC`&YF{g5x(q`BR`aQ`E?J`-0pv8MdIFZS|u5n zUz=vy-tIqfbK;KtV|Ul~93PKgsd{P7{*iy%SNcaje}voqiN}rn(7wq;;zoavmtI8N zOWoH8d7AAyzP-Mv&)o6vr^w~c53djOzbG|vm7kqAPp7#(e&LM7RsPAbJ*l;&D}<-T$B0sc05{e~~ zc-)AO{O9L7KI?-#%^Np=A1j~O|ImI`LgFeu_ZRsJkE{8$$8S+obG!bXOKZ;af&S}M z(A;j{qaty&KiK2PtxnwN5BlHJM02}++D_U(_ZRI44<@eax95N2m;AndcAjn@aff|b zkE{Ic`Gvpe_Mg<_j{3tzD&Xv2>KMem(8@_@Nv!`y#e%{=uK!IpPab zkjM|OpUWLC6)q%tFx{b0{|VK<-hz21JW|Tf(>_NT!?-<+-r~js-i97UfwTiey|2G%hJZF?C&ioIho#ymk`U~QYb-HxG3_JJ!*19?q z4!?Sqv%*xDiK`CTC*V?vInD}7jv?;I@X0OWhQhd#M}Hu0#7CaB{W2$S({QzO!gi)x zBNR5CC@X!2XCZFnhx~Rm;zoVQZ=TWqd4i26vdaIfo5WRpo)huJR`IFJHVXg7jbg>? zHrVQO&q?44eY0$@u*VhNaJieOt+-FYh%&-Ej}Gvk2p zkNkS*V`qI8D!KWEX2cyUxJhTtIX|p_dl&8BzCJe0CT`S^_8B(1`HC&>`1?Gr=Fi^$ z+}qvuh0bekw|{VfxH12j|AOC$tNG>mM*jYywzvE5c9pow-)>*wrrZAMUCr(KSHJJ} zfAyi8e|qBP6Q8={AMm)NzLS4xd%HeyBR=u_cP*-{8nZpuGRe3okoRw({oCu?+gEdY{IA9l zH`WLG|8}a|KI$~L{jep(9r?dpMqKsBUjOa&Zu{Mrv_034$JeQsiL3g!e&oMg(e@l4 z`IM_VzTN)xUCr(Gl^?j{pL#^xGgV0j-sxNM%+3FJuKnBf+m-$g-#_bv``Z`xkB=RED_H$KKz49`{144+TC6trDua-9Aw{&F%f$ zR8hyb*Y~!*wzun>atLvy57&?SmR;qxkGjLnNAGp}pK{i1AN@DthQ63z-!RVgBR>+x z?e$f;Oa2}6we!Bt-|oNABW-Wz)&3yvA;15a->J96y_+!VLxJa)QNlg-^RxFqQ$)=< zKF;s^ti+A@$eU&-uKI8HUoWTjZ=cTtg|&aXzO710d#r!g*P3&Dwnu%7&mnHCFXY=6Y5#V8Q|u^Um>pYV|&yuX|9+ezVXhN%5QoJ;>Ls+@02NiCz!Zb zy1zpqe_cg$)(`pUYLa98-2-F$`LR8&fMXMgdy9*H;V^_=B|bzF~)qkM^A(NdGvWOH0NP`D1-UCJ|Tp+4WhlEUxGu+V2SC zJio}3o+f+cpE>4N`my%U^M&?V{v>Y9H}Z1z;yLrn|08jue>guOyNPrELu*q1@g8dU z{Rw<~&JUk;4!kBg&fmGi$whqh->+0kkw5CQz7}zZe&N0+uIl6b(0=a@&AGo=|E8Uq z^ZX(&b5e7*$Nc|ko=Nlv<40{lT;<363-aY%-1a*cXwLD`{?!xB?e&kYm07HRwEv+F zanH5C{~*uROWU)5+@EvxBW}zW@)!NJfA2%$RZ+En4A|lJU#(6Sv40rfNmTY7UlKRg z2ky^}vSk(ZwM`fg3-u$a=+T(dt;*I5e|GW-x zA81m%qTsksrVCeD%pvYG{c38?{_!|_EP54DAKDj=N8DHk$ipR&_P9>^rqlM^WVG+^ zaiuTkhkVvuZOqw4${i?3y7{6>s$x*)n&6-KSmfO{NuX4UW2%y5AN&Bo4EPt4%$Dj3$*`pf!qGWZsNwigV(3Sj%&{Ik34dY ziBA2;^&_tQvwk=q?+j(LkeS;`Sbi? zeiiDkqSJr+T3Xn5NxT@cCBEB`P>dSjnbDkj7XZEf` zzJK0<(0`ge#0`Cr*Sx6hIe)A#R-VJo3EsE#xQLHCz{LlebA8C?XFMVDLw=$Mw&o-086j73ffdsJ{o72?K(BHz9GjF@ob-F6T+CI~0+NVv1k`14!b7V&Y12>1IV zu>z2P-|nf;?H#T&jJS~>PCzq{D}C)NEbaKG>K4Yodl-7?Ih#Bv1?@9*WS%?2oeMR$ zU;WKFN*N>wrb{FGlZtdvMDNYgK!*H#R|ylEc~Y0eBZ<89Z#tk|vT%@H|YPp?Hsj4}*9PRh?)bY7~TvB<568B0| zMFgHUHlL&Ixqh@ydQ5YUk9_WN?cW}M@HygY;J7}tKY!WHOGbX~>%;lsY0Zde#8rKq zAM%3niL3Z_`wL%a|91P|mJnC{xAXb8bbPLV4}3*E?K91}e#|dR_!nZnkY7qDIo{4` zmyx)tkK-fHn3K5DhvOq(Q-!!^s+@$DM815a_RscsS^4DzHy<%a`)B>pzRO0<**~5Z z_S~!ebA34fd-u8dz9sL4zPNtVl@Ezv>VsSM^9sZbeULwBS0;j~KhAfG3z~ENc-h>3 zN~nmBhpZV%z7qa%zM^H2eD7b=BGfI}I_$Ebb8F(N|EwRrnA~oV<~-lX>yC2s{O>9X z|ESNk;*}zp>jw|Hv(^$f^fi78MV&N`J0iL9H*pk?cbvE}-^gFzm-blS`Barfe#YO- zQT}rjBChh|`NYRA`T7ty;^X>>5vzvppZkycL`^_ktzY(!Ja2Yw&;3I_X5-f)KI+@` z5OKpl&e!~xn%n)?jZ;g^AI5*0gt#$Z$a^Q#++JVenzem>?D2<`tRvR)USQLZ+v_E{8Zl1 zM%0h{+u?}a1P_>xY{b3P{qqCV_g;tYLOR>=C~SY<(2%(5pBE(X_#HY~+w=Scw~zSx8*z=xSj8o!P}zpWnjt_$uuMTfl>M?KW%>mQ>;xzs8Q}n(1oIQ$;k7I+*{GmY@6f93T1W0mMC|f&`w`R3Gi;uONz=1`xXQe+eUk&n(m+?XHaa~9+f{_&{wX07IY8w+{v>v?>A?DO+! zL$L6V@t@TAQrP2sR%$?8)o))vPt%w7>*M%nzdSc_WzYRZ9{B=sqrcey9yi?l!ei~< zUjO;5WrTmMfAdY^sy}Rx`Zi2fR^*R-U2@`{sVXw?hnr5MCT{c}?FXjS_N))`%hNRH z^@sYT*(^Ek$rU?%8!;qu&6>f%VefmOizqX`6(fKyp57*IECF01*D|#c94{<)HE1h1 zwqV6+$uYk;-wzWKqyGbah&v>X6K{A#|9x57M+3i+HKgWZksrqI`;oY6F)sn+X@6cK z?6JO$-H00_jy&g-%}&0n^cFFqcw_2AbK*vSP@kV$YkM9s{#iftpKF!$kNn{kX^;I|5;2A|e${%hM1OF;hPBk3 z*C+BUK^c5~?D|bkn^E)^^~wBIUOzw97yZXC=jO#K6ZcY6Llk(5o4Xouqd(}s@KNa> z=d0?_d_o`8x8-c&hJWNMPDp!<|M%GZV!qM-@Oa|J{2*^Ufw-}LkWW6VIrj(Sulr5< zN8W2dAyGfhZ?#$#1;_dPP=~mYAM#-hwY`0PUX5DG_itYxlTvBU^Mn3RrP18(|3wkv zDnGmZno7h~f9>-;03CZ?A7o4>#XC(d~cN4C0RblfTvexjvkq zqv0wGeUPt?PTZ&udCvUAReaV5&kv4Q*8aJEw69#t&C9lT^MCpi_exVq1YY7D8{_5^ z7Pn<~VT={h$86xGwE+{at;b?YTbO-=e(K z+-qWJNxU)qGIw1u|9E^$Q;fJV|HvbML0t8h>qFkEy5^i8@=Ra174w7qi(KtQemEaj z3b}d2eC;EJ(D!ucJ(ho8r@fhpu-qPK%uMIWL47 z>d=xq1{ZGd;z9qgI1!U~797{(mi%tsd4}ekC+;W1P7pWtOXN4>cM&=wk38{5|9q1D z<9-k_u7{sLb6iiiKF)OdPaS@i&+Yr|l?a-1pD@1}@riq(mB@j|vlYpSEB$#tLHmq3 zwSRm3`FY&DR0ZiD`xjb?xS>Dt+s$W-{7}EN12nhm+i8gATp!xMn?_u%6Rr=pf;S81 zi2TsLQth3hf5^{-KPfos8?XIo!O^~07vicv_WCBQBd+?(`J;XJD{h`;$Qfae^ILu* zabtZVPu~5k;P@iR-6NW_{wieeBr8m47==m%wdbFp1{&^}D2mn?L_X$G6*`ZK}CFzvIn_d-p@= zOC0oQ)bh>h>|L}6yTVKQ5I0s3DwJ;paWA-%DX>E!>xiofu={U(Q2V!csPPHnjt*yt zme84B%;>}&_C4dd?RUj@^H0gOf36RY0EN;LH|j^8rWkQUKjcfAXl~bURy*k*`*WuY zan(P&zC*idZl9o8J>C8jEztJ%3B9nExI_ON8??PWzdYM@d^^8?(Ct6_DL0RFiMZ0= zuJ44~IzDrJ;t)GsBEP?O{T3A^ZuA%X^Q<;;)gQZl(MM=|JJ0j0wzun(Z60xB{xE*I zZQ8%R{*ODgz1@G(i^M&oiVR%;y)F}1_1W$BTy^syX%aj2O`Dy#if`8^S#E7_kN?9Q z;wnFT|5B{f-0nZlChgyDANQ)}_V~?WB@y$7^EEIraYudWb835gej~rq+}_`6-?{w< zk0!44vHRb&M*Fwdw}0J#@T0^%*D6Th{8VU|+^^rBf7FG<9r>MHL|m;uyZ!N(#8rHI z{bF0Uc~(!`+w1Q%$jzgCnbN8M zsj8aW=c8l;;wnG;`e<~QxS>BD|Ki+p^Tf~H@moar%o%@ROyUmxm!)*`d1*9feR2H` z%j%9_y^yxI>ldd6aix!4zoSju{O|6X+vl(2YROUm0UkHz4|(oGnsfcg!+%WcoS!Zc z()rw8-`Y^(#(Wrm6<9sdj~h3G=r7)3np;_O))()zt*Nd#$45TvyMn?$9zU10CvND2 z{B%$uQ9nL0k6yS?WP0f??EBStg}3fUvR7yDNkT%rpGTtqp*J19pGu;?6iQzr^nNZ0 zFIy8tFYFxZ!X7t7#iUOpBCd*J(XgpU%2fA7u@BYSzgs$a)p)IZ|MpGkaHqD;{JUrP zUU0muzxABBqbXG%c5v3eeC$wX{SD?4SDPB^gO}|eJ#K6&$cN4+uJq^nk%z3%_B@ox zgEr~-tUvOSr?r3PI3MLMN_*s=UDENnKICH_XnW2NhxTa7VSfEwAKLfNK-}mL@}rrx zJ^M%Aw={93AJ>O>@Jo~K(oIzH!*e9&Uexj)ED?A6?E|IHcAxjwWndWpD^Kk~C4 zSNhuRTiqq@A@!lql4$?gYq$US>4rP)dt@T6;`{aA`@C$Ic1^UVlnhygh@6t9n`QeZwDJ-T&3e zFkWIVaU);kDHplzudkjg^26JZRgV)l{NrnH;UZ1(^@tcsFJ}gRA!cke`hZaYK6ied zi@4En3~)Wa<}3j6zU_#6NI407Zd$Fkw&#Ju`=r?ix_N;+n)5*5eb_%A5jPr){Fj%S zdqswpMBd@ebTN>);m!@6FZ|3e9~3oMuU;pFR?(x#{n7g zBXL82%)iv2MIt}kaL11#uI7XDLw;q-TEWr(^0~wf{W1R@i;1iHcz%#K+DlyJ&;7*{ zmgQB}`Tkj7tUuLs;(Q;JHUaOH2{UY;WTTjHJft;hNZg^ox(1v53|JvNB(;1;Tvf;! zqW=+(j{5#t0jywJPp!;*Jh~EKS_VAMG~{)BZVs`fBMXlC^@|V`q$X4a34D@!q&#sWKb((ueTf_SVf^Roh^zTy{gD^08%_Af z{2FwNCGy7=x_Sq3NBj+Eh^zd)4+XBjmFeP&__%|ft&~7;JY{S3wVVIlnYhZ2=NnJy zs`rrg$Vc2HuKMd05qJcfpEkANI3JfgYR>Ud-_=uztNyS)cm(RWT-!6pC$Tp-YJ1KP z`N%`Wjrl?T+bK7{`%!YtFL{eJVm^@n(1ExSAAfS->Sp3b{dgU}zf@YmvHw?RYR>f| zUpkk#5g+-$o!XxDMcyHOI=?>dAM#3VG`HKA?n>OK5AA=*mfq*QK5_n+=O*sCRz-xC zM1C(Xaby2M9&IFXNBtj1X?uHpSGEyX`Ln*b{}eb)T;<34BhM5*gNToOO-kY_e~yoQ zaCYL#znxzX*7mGF?(d~a6IW*dvFO*Vyy@*0#j+cj9e+z?WttCOI)eKUBOg}z1H?#>4E<1 zz9()>4cbp^mQi#KdH7?*jre%h)8&-3$D_uS)S1Op;jVb`EO8@0F+abv!b7Z^_5=s)h7 z2mf;02j>nJ^ND9Y9h(q$c_`uTZI0&m2w-Wckv@BaSUPWuOS>WcjE ztm3;J#EtcbXT>{5Ht;#;hy5KohPbiS;aSh41;h>gG5#OBwLSM2|dNT#Etnu9`|$NM*on1`LpJ%53aAm!(@Eq zjbgVI^<)2^R_HAB#rQiS_7eR;e*7G9W4=+J*Kakq>vtwbZ)g8Lgb-K$*&f$d!t%tG zeyk7jUR9)jCh<{OWHy_!x6Qh&P1Kfl2HauYjD68hi|eGT|kbFOdq z^!k$*C%X`KWAoZ^&3S&2pB+6}=(8u^(oTue7YnoRcb>Rfzr6l1|10Hp3;l3DI*cN2 z*drgkaIc7uyhh4Hg5!KlnWMRVe^|Ech||8}^p_%k>~DzzuSEXHpA;i*%rEkqr8KwC zU-z$xtNG*pp#6`{WPGguV;jxcKk}NLBSzu?SOWLG6cJM-NwX?{O}0+vAeWK1%{k;^BmzK z`~GK&GiL3nW9f+Ax+jD)m0+#d$ieer?afg0&lekeI>ObmkbYYLY^<&NL{af{( zxXRzY!{rT%;rqASPkQ#5&)FU)G+eV(qW`$VY##8r$RF+JttW2ehx(_Pn^)+A_Mdes zBH|+tYSv8Dhy6Lwnz)K@?_b+E%|(3Fe`YV@o~d#Ycwh0K3EJMS->|pDJ*0*p@Cv3+ ziWY)n{<~Wdcf{|Ut);NX{PSif?ywIn;I{A8j<}&8>c40~E8!n`>&2~|`tCcaxqW`C z{nO1^Uz^t5MSQ$(v+d9BQRt_}=r)1AM}W`fK1S>zBH%UBo{Rkj#}&T0#sFu9sYhyV zuW(bkX`%vD@NJvrzJL1!SLj0A=n&>te7Lm76}V>Ia#F~9$g35?Pb|EoJ$PXP?>&$E zBr`z!RXJAp6|e%xzyE@`s=&_Uw<7LcWl);*8a~}}!WxH9JLdO@GsIQY=i_mqG2UH` zP~(Ki0B0b>LE^?L!uvE)j}rHi_g6XcYB5gw6+}=E(2;Myijj*q5SMk>4Fp+)@9VIT?gK zuFvbMHRt%q=WUf7_lN26GYb8XZ_7;F=pXVUS&6IqI6m@RrL;Zki}}qgOWe>G`H^ax z^L!w``k{)LPmEvhAL2@1j*t9yP*o8hd6IaIDh2za%yhZ z@9$jh_`3_c`PvrMo%$61mAJ~E*B9n@en}INKd#?_4~ZN7L!O~fQzswLjkwZ>>qq-H zpNOmcSbyw)_#Dkde#kF3z=>K`L z=1$(QlH|C5RccJ!k$;XhZa!qJ=A1wFf9*yYA9=@~EyVm_eN}tAd3}#7eYih(m*L?I z;;MfKkuOZ+xf>~#Etnv`)|K&15kNSN)Pu!><&wo-x>nQB;{Ca0};>w=q19|2ensfi~{l*=~ zB**yWj}tfgkNm)0;%fb|{>UFT?j-cZ7jpOiPTbHJ^Iw*_vv1G!;qke8KjMadczuv? z3UMPpH@obLj2QHRl>} zMjAxxD&k|0XMa0JXpDR8gTcg&HGpey$4JdtBiy5s&3E&ok;jP{z+>RVRZ~R|F~5mj zrum%L2wsE5A4%L;1305kekJah@dgQI3VU2beftqN^f>{)g)?O>abpILzj)AZz>U;l z&q}hL*7mF)`Y-j}?5H7Wye|fMZ@YW{rM@lXz34*!LjUW1cPQ)^hfuwiEoY1Du{$dV zY0lAcI*vb_<4*^#P*nG3^?9Otj9+QE=IkGN3y&Mqjq!8NAnutei39(n*UI(8Rd>1j zcmx?XdcLS1j}R9p6F0h#^~Kt`KycJ={x0IibRln)V4>hxf1_)}ReijAadow+w8$BM z>k{Hde6+7Pb(zo)^K1BSxv`%&8ZhrD7 zH{X?QqwsI&-zkE0(%u#&*+&`l~Dt_H7seJ$T_^H24>(|Hm8~Q8zL)|1d=11`@-H99P5BcGk z`Fzgtjs7e9cb}IO@v*+3+{BeWTp#i)GlK<3|BaRqSNR3ZpNe0$Us+#YyFQ%5Xzs(2YDu4Emd}P{CF<-{fOW9BStF}|W&2j1od(`Jdq85UqJ_FKe z&izN8{ho0B=UXVau@ta&>^+@Vi{d2aucmk@W%N31Pwet(CKZ_j_oUblUf41;|A?Db{JL|n~}-G9p* z+TPyZSb2y$>g!rUb9?+>J+9(=J4xvI$WoWM(%;_S`3yXXUT9TB==!>a9qhFKE~Dn0KjzoBwB{Ti`ACl&@sa;s&uu@m zvztfiPc`VNE{;y(?XdP>~rzwsuB zx6TtKh3=a6)^lk_1^ALA5 z_--+`{qGxgiwztvK+hr`ate?vI&otFQJ}x#Yt91UtJtk6iK_;APJ#lEr_G?_+xgXE zn)3zTc$ZBzxK<_2?e>SOOOE-+ZBN{&5B<;XsO`BvWrQ@MSqY#*?CW_Kjh&{ z-xvBJkJVdq)*pG9sE?iY)khFl_4E9p{gJUBg?`AN%qMQ>gM8*P;)cG++b-Ak++XDV zcDUmY^tdDc-KUAG`LpZu)fspEw^!Z%w_S7Fw~X{j#K#xFH$86XhkV#K#0~wBXV0fO z_Ye8}QpAn*g?vUC9iR0_Ubnp4|Byy*|J%B|?Z-`Y^JO!LtNz*R`@`d^K080ZSle@b zczv6+RonCWM&5Iq=IkH&!C>OX{Goo+!hUx4e@RT@4*SAiyZLu{h&$?^UQpX}eVAYN zK;m9$Dv8i9AfMH7`%l(F`{(tA{+qYd{_Q-tmG*C+zeVlc{wI&t_V)gNn4sg^{ZF2) z{oCz_Z*tp5x~k*b^=*2`ZC@?z7r%d;A6|b_WGC*J|I8uWUSEQo+TO1J(A=8a>z^N> z^Rx3M)ivk(G5=QG!i44d=J>dNA|1}}bG!Yp=fpizB|_+Td5?Hp>BIi<`Vld1fv`N^ zc7CQmal=2}UoD>Zt>8G{HELE79Pb|&9w%<(ho8b-50>`EcTCj%>xA@Gg?@N{yki-0 z!#~Dv@rbzBI)8m5k3P1VZ_o3C{dt%8t%z@Y$42E>upDtizdhb_9kb5!zJsCo_XCL= z@v**dI(`rw`~(naOJz~e@J=zrUq@ct3; zygo4h?_)*sImgHODN>HOiqG?j{)-&b_S_%zU*QUIqyNa$U32s99yjVo`&^&g_FvbC zEb>SDw-bmP`C(weK%a*GKd1?R@{`=)xZL8}T8A&>!>boAj%2=6oXWP%yTz z$JZy{JtJ<^hp+#(r%xpENB=vE6F1fe@*yK6$MyMPXe!|!>yI}qwa5?kU(q40sL%L4 zyPE%l%ZaP}cz!W{_ur&F@_m)Q7XC56?Vr98`Cg_1c~}Ug0}jl<{$ecYi}%4GPzX{QY}v&-x*s`9X7zk9>IuXMK=I z`>5mFdCU-QkAM0Zot{?k*CWLc*kqpycZ9(3w9)AX8()J~0-ugh&Ob7a z9bf_XQV>@SVgZp4_`0Du(hV;WSz8e|8jO7JcDMb-^OEC$K7T~qXaMq(5gPfN8-VdY z#wTtJ2=d|CHMiS8o9*TcR}ohOY`5?64{;-ZjGrxaV`u(_vJ+SN+x_<|K->|(dlAif zfHD5UVw&6imo4AKnSZ!i#2xXE4JPinRz-yVqUH0^ntM({ZxGEVY5zRG*#FpzHRt+} z=U%2c*N6Pq-NcRl-~u~$ow%Vt@*3}@JzgN!eRlJVg`0}`MEh5@HD`VB0{U%J;)edn z2aR&`SZ5{2JFUl2n~D1OzL^=WUO>B$mx!HGYR>xyegrZx4RIqs+)F5u;hx>^P?Z1^GEwLcLs|5F#m6( z&ldJLUm0W05%Yoj^VU?v)%`!5?~i_j14ug4;; z;`91Mo+pmBxBJhKj<_Sgr^28HWK`>CZg zx5ppVl(?$TZr`^%aWyD*-fg_wf908Oe$eBpKD&OkA8C7g{KcP%JMy0yC61HVk4{|a zXV-UZ63y-U1?DBL^s(o^tSoV(KAgXM-)heBL-A@dKJt<6h&$?E+RM#PZj>A^L{knB zSNU^(c%zf|t>#=m@}VCzXZ?`Ri%n+_8~$;ldNU=Hm_OWz3+B!2tpE9hyrREoAMSVJ zhJMKJ9wKh^7kSlx-1Z%l=5zYLor<`cKb~*&KOqfqV}6j2ucSHai#$P9;*R{sHrDps zU$pPgM04&h^3)wPx7#O~?v7t+KqZkM?%!)i5Lf--`jG$hp|P;X`S~_x6JI~J#|zEe zq?&X7$m7)`uJp6_r&|lnSs%N_-3>OC$+5rX>JV4`;rPgB{!CoeXP>`y zW2Jwb&uL4EJNlbHODmxt#&4dVxFf%#b%`7L;`;1(vX9gMmll16f4qLyoJCySs79cp z&Ac;>u)<=?=r2@-UYeobN{G9OxRD{=fvq^K?YRTU!?)=tI)MDceBvs;-G18vZO{4P z4!G-2ZExpIE)zF8fc9m>_jh(Uc{0uI6IP(A=Jp9o(q*}bk1vH{_91TQi*H39pG(}B zK)k~^@p^^eIDx;t`a{G=KJ2eeV#07fDn^rMRv{msRdX-N&@ZK~bt7){7wuno+^8RU zuRd=3bs^~I0-Nc0cuds=|F>Obp`^YwpjU!OVNkiF^; zbM(Kr>|@`*eg7*{p19FJv>*Nxaijm(zjx#O<9mo3>jQbw zzcuIjkXPy;&y2(UclKoB4*wa#z7zey{GUZ2Zs>#j%;|9A>HVm0`xzGjyZaJk+5r?SM2`9S-UH`54?@oRi(ES^q}e0Sn*!XE2S zUW2%?{xN>jdc=+SN8Y`W^pDr?#f{ze+rHPF`-A>hO(kyh2l=`KBZdB0->Emm9rgu> zj}rFizi+V(PWw3(h#T{X_N|AzdCxI!ermFtr{AYJ@6Q-N=3(N-`a}Nv9nE>Zkso=W zxxGJWlKvs)3+;1eChpK@{?X4t{0S)Pd%fIIx7+{BFz;|_4AIB`QEocfmy?=Y|wu-+qRbx><-k~MV*3!?9`-dO)o*7Hr z3$2n2eTTbpLpM<$>ff(scfqm#!Lf!p^UrmjxQfp!1nq;r87}fezIzUFV}7x}>GF>7 z^J9I{{^=Uxsz3JrrwrEIZa;CyC=nm;z-s57== z#@{?(p|D5)(KirR{bhZTuX{n<&CWK3W&zsy_CQ_AMu9dwc)C%ePp>$Msu$ z9dV@(+vEC+cFfINz9w$ykM?IjY0mj0?_Gb1AD`zBdA&iz9r`vrDLMA!N!+YmSENB(O1a$kS;kNH))ygYJX?3(n8@0uk8>G7uYU*21h z{&y>}+bQC&5Z;i_DW*Ah6ZzmZ#8tQL*(^Rr+)x9nNmyZ}Q_UaqZWaE~K1@;Ks+-(x zBQA)vgiM3k=s5&xLsn}a5syYi@4EEENg?;UgHB=q~?Pk$n=^0&|5{w2iK{Bi!c8>d;VIqQqO!(l&uV5A^=7%Lt=tnOH9 zCpsc#5ZA!ojKmF%am5d_eqwLu~ zz9-kEnC7f8=J))gKBPRy3BZ}YgJ59YUNJaMHj*N42_3C+DAp`S3a@(FP-v`QlM zE0(Jp=_DYdf2eQz!gLal!BL;4MTr~vBcIhZoOsSG&d0Iu6N{&CWB8`K<|sggyFSGMTv2m;EE} zUN_LMkNb=I-fE<|eg7HIT64}1?fV_j-0pwqN#e%*pnbMmnsffh|4Hzzu*dqMBqXl- z%khy{PEc7q=NoyrM8u8!kZ*cg*?ZD|$Y*Z&iatTtYR>*g>+j|<1`${Jv%VNV!ldec zes+CYt<;?Das3UiTvPbR{rky=TEaixV{|`GT;<2}fqdQ@;-2(s2t)55r%Tip9OpZD zy5?LT?oS;q5I5pueOo?L^eeYf+Zmdt7 z?+oGV`JCq$>n|Cjq41CKC&y~!obUE6n)vpUg$^m8 zFRtJp4VXuNWHcFhqwp*J$4rD8a#h5W+{7J8B z56=hMk3UP?&d**-zZi2l>Jq|H8dv*Hs2JTmB^~Ko8lz zx+5as1olfw+)xO4heFccc$+}QuV0HElwzzvoPb+<=|LBY^9sif%GaJ@Od1JhLgTit`DyOYhn^N^usHBPy*sc|BxR`tGV5O z#Vne0{TP2xRvq8YJLb@w^+)?+rK^Sy3{R(F>(2`C4=&du2cB=GLQnwm-f(&+nec)qHs`_Co7>?+4;aAA9`6eYJmkeeotpjyDj!SLpaWU&v>#)ApP{@^?Fk z8}o&H#U5>M_y6cG;!0mTU+~n;&wbGTxqghlJW6%ZKjfQZ6L;hvHMO?q{-FJ}Jeu3{ z&zN6xdww;_5m)nR*Y`_#;%YwZ{`XfRuJX70k5S#t(|X(yKT$n*{C+*Pf1Xd&r}__W z|Jy^jy}lbBSM}NbPwVT>FKj;@-|qkPKy7dL-)69mZ|_g{v2Oc(Q#H58|NR%@4*ggE z2T!z)?A7|={^S1o;V^NfpPe5+rtLXDwC^2ET+JWrgM4g+8X|w>31et(_kSjio99ZZ zIqQ%92PG%&sIOEi;tqZ4f35B9_1(zva)G+w&helep@yoo89D z?d|a|tRn8v|I>Qns=xOBJlLT9+w=dhU)$T`mpiWQ?fE}DNnGV;=WR|AchsNns*Z2Z z|L9+u+w&`OSNpfyce<~+J-;z;iF>9>#L)LQcR%a+cK^8})O6M#D*z9uYY$zgJVu?fGZ@j<}<~1^qR*_b<~Z z&F%gZO>pz7Q;4hn*z1omPutt$Ph3P?_0MkKWU02d=XYwo+y35WH~)FJn>Rc{+)-bX zW`gQK1bXuT?Glfegdu&SNiaL9PHO8_03*~Lf+uXcSCc#KK*aHdHy%V z9rd03=;j5(*YfS{^E)B}aYy}oq7hg1+x3YN-R=La$CWVry=nzp7Q; z{w}0ZeeL;OpQ-)Z^{Fyj`?tsMI7f54 z|Jl3Te9&&=vG!*6K+_WI6vT;*qvpZOkfwSMgW zi$B)f?tj?dn%nIQB&+RQpR9#Ff5wzAv{se(XZpzdirK zCAGbsN2yL+`*ZW9+kQ^?I?nacCJJ#?zuo_j ziM72w|LZA;tNiWuaZ_u1dwtup==gU3J#)G3E9BSQZojpN_HWNGSyAF@zU(|vCE}_+ zd;W16YXA25mm9n7bF?S!g;q@neg9FYv*vdHojk7cv*%yCD{)7CFM7J|^A300pP5Ho z?-)jGM{`))Ps(<$Q=fc(X=f|G^{&>WV`tSq3 z%!!CA|C~Sa7)i8$j*mQ1I^s%S&L4Th^xEFeS7y}l?fysPmmJ?;>R4QJyZ&7Qh#U2z z{o889JyRt@==D9kp__l#%*~&4C$99h_b1O_&AEQe@9*)%9r~`BEbUSMBl9%p_{bkE z)c)=IFaDjl(#OsNH)wA6KXnsvLw}54@VMso`OAKhxT@bCe{Qh0x5v+Wi@0OHGyO%} zQQwR^+P{5%mppR&j~l(7U%$P+@|lPm^MU#V*C4L)v&VngNZZ@}2esDm?fN8dPh9D1 z_usXf+kUyn9sLicJko8S1IxSB7nAHP7fa+T&>AM)Dkq<`cQkGT1c z6U0@0_W7)TL&vx4fAp>9cKtVeBJSwV)%f+D@e?K2+#Ww~F5<@e#QGnV(A=(Hu|VQR zerP|cN`3hS4*Y{n^arj6R;o_i7!b6-S4-P-fyk3I*W6w}`W9~gU0M-W1==~Y_*)7(B^xoZ%2%y)pt9sXyB zaC`mZYiWBsPfPG%9r-u!thwEPr!H>)ZvWvvaijnE4dVSzrGMnBK1u(` zCq`^2)<5#LQHdMt3%{YdFgkG~f8_0BYkRH_dB4Qkp7qE0lk*aH=wC6P_HXasg3{W* zUEiStMO*J|6{ypiu=Jx&X z^i|?&KJ4`cKO%0dAAAAx!xQbF=MVYzJdK?8j|vhu;-me$(%PQ;i+pJ%H&0eg`?uQ% z)zkL&{NH}3?O7j;AH9#}tnVTE1;^%56GJ|rOgEainh(4Gc2jkHdwx%T*Y@lm;}6=S z?d|>t>?5w`!){;m3UQ^sosYetxjnxtuigId{s%7^wXw7RC6W?1<{Rtpl8(5SxiBm5 zH>(g=_1Srhs>B`oSN6C=pDwjDxBGwXamW0%ZAo0!Z`bc$EA8Jt{|h^7|91PTJvF!Y z|8XyO{5<{K_7nSSdwYK425WnJevc;+SNhuZ8#YJ#x7)v6rMbPn6KiyQyZ?-9i97lq z=?HO^pS`|@*WG-2>?Y3sFG;PrJ^%bKe---&{sQOwd|qWyD!kVoyX(9e%K#;^7RaYKLPld4=2^MSu0DwQmPIHwBZe@?GC*N=SJ zkZj_dFXa8#6F2h1-$=&YNL=a1`rvP5E49ue?C}?Vm%`>1=bRzGn2@;VS_Kggb5g&s z+B2xA@Q?bXnLu34uf6{<*ShWd?A6?EpZ~7rTtDXD>mG5HKhHPvB*B3~Kjg9A5I6Kk zebZ$tEjae)Kw;uW{b;|Wv76Uy;pTyDWPJ3$s=u4J_)&A#7wr>GChnN8ynD1g>yP!1 zI78g1A9?p+xBbeOl4E{L>y#1tBX82$&6|%RZp;VT4@g;7%s+m>R47Puo-e#VN|u1m zxisbn_m9DQI|z=i9}`vR=X2h_@EHO3JZ|WVJY5aRjicJt`ius{El205}=C@@%oDv;1*bV1RZ5*q=V*D9+%rwLed;E<`f=tAX7T}1l$S3VlpVbB3d`Ma8AM3lbaj`j&E5jXNj-oC$%Z{H%<%+~(x{O(z8?NZ+Bec#(bdvH;ITl=08OSH-DB*$LIQR{X}dd<70o){s$k_ z!)?EJjLwhs$4kK3--xUJ+Iiw#(m&cy$h}sqPvkc$5%*jx5rYDdcdes2>w~=NPU1#? zP``Ueb$t7LFTLpI^ZwGD>qq@Be|GcX5!U(j+wGG_BChhc=eH;&aiu@+54b-a$S66k z|2Abc=lICWHFfhn6Nsz+u>QC|b)Qb$n1AF277{o5gM7|vxBumTy8UnVxG|sTzjcK5 zV!lwn`I(7(pAH6wrzZG+%<`cE^TxQA2{q3ye^aQol8TKl)pSKu0LZ`Wt} zHf?WTzzz0jd%ORW=ZUNQ?flPd8^wHK{XexJ?wKklq3aLd)oovL9C0H)`rp4?b9;U9 zHtG0w{%N0#kMsZYInC|*_PwCFU7x7ei5v5W{+K?`R>KURsXqv$W!id`#*Bt?Z4nZ zn%n)4$++36Z^5j@mA-cS_Z>9o{?vKAf+XIk!6X|2jZ(d;GYqi970>&{5lS ze{ugAGg8`zy1^K_Tl5d}uf3GGif_-a^uA!{{+YAMC!ceE=>MOjU-<{basTlKc}2xC z;s80Ek2UYw2#)oQPtw*uz>o7so+~+V)nA?;9mE$NZ|)KH}%c-yuW&jyEK3%n$N!+G@`FVEi+kh%0@#f5@xt(ec?H zUx180t^KpU$os}QD*BK9$Cf@O^v4&tw}VcL{-OR$>k(J_@_Zq`7xuiE57ehoyoVw_ z+Rv({IoF3gcrI~c{UAR-kGL^^$PfN14^YJXKAoTg2$eneAKznKarJ9)ycfO)`uBC> z#{PwTVlZ*#pY=n2r%^s}02=0hsD5ETKF@6^W)tJP z?ekIdpEz(OZrFqhYPel=a2lW^~8<-V15JcYX5fq+r85M?fmi= zxBu=D>ihB89^=3DxYEzgZ$>BXA+?A?zd;@?f!lvlk2~zQr>Y;BencB`yea0lIh*#+ z`!DkL*@-*yk5ae3-x}bZ%b|{V(Jgd*jFn^;dMJreZ4`NbN`BE5VJckm9?4Aa3|K zrd;unlZYFu6z6OFt(d|;&d;O-v4nrrFKJ*x-=6hH`*S^stNd7h+=YI^K{R>vGAB z<4hD^@`bpnkeASbyWf=U(W!aJE#Q+d!$gaamr6$57!l;_vJhAGasJ3h&DZ|9g~l5x zD!){FH0S*Ogj>|t_q2cRAl^c)c&6>`eETQjhJI)tv%+wnb9@}Z!!?Pk`Z#~&i)(4l z^&=lMhPa_W&QJbLn%n)4={!R82e+^UJ>2}$&C$XhCw%n6`J#XL5~{)?;$CS=grETA z7i<42^u_wJHYe_=KUNF3{hN!#jrqd(@#8P>V4=C9dN0 zd?7C$v`FNKFM%U``okH&QJ9Uw9{raOM_lP=ukWWCnsffx-;ebrNB_e*5;ye0{=I#; zS*#Dd1VzrhMd*+5%M>7P_(wjvqvo7H&iAGMn)CWZK6*HDqd&-_)YvNGV||T!NsjfE zskuYwk38M%qkeqOA75hSJ*qkP5Bb3ymwo^C`nM039Q*g|o#d$RgU`f`^@DtFnk!D; zG5DHT->7fLYPSVP|Fw_b7xm%(_@Vq85g+R-u=5{bk9_(r;zoVQdmQ{C>@mN9wPD3^ zcG%xiHzWAR;qm%Mz9McEaiAaSlYd)OaUdYtSH4EvSRZ(Q@cecx!LhzPPlPT(X^*^m-?-v9KmTpGm-P%5`eJ?Wrt0G?Ilgh6p}IdE(e;Ix5A08jJ>mT0AUQwO zC)Z2jYCf2w{kWas#c_kk1GYvH{;~e(gA)sTe2ZYkQsTz?!Tq;c!zALk#=T7|W_pr8 zV#w=*nOh~t{+ypk$0-{9#rkV)%p&r`_#<`^H|%kJ7C1}XYmE|794M{&^TW36;y6aU zKb*XWxS>Dte1|mW{-b_P+RhRFaee~d%@fC!B0pQ}S5Y78Gx+{e-#_oa$k*pzDfGkn z*ctqrZ_oK7Px6Mip)byNm@mx#7Y6o>+4O-)?IX918W7`0dAkNmfH#MK7E_Qp5O)PRMLv`-8WzJPs} zZeO^6IZ<5MpPWPIg{lE$|M&tSTJA%BeAX9l5OcOBZq$bhC`%t{kNo6A$#FnW_Bkf% z#|2Wi)N#>2>~Hi@l4JhUQ=bs^qkY44#8v;fe&pLT5?A%}28ujxW#X!TY>)FB?wPjd z`NaALz0&q}zNq_2(SMBJ>LhU^KJvTh(;(;G% z-**ggqdr_hBQFy-T8tml4*8{%Z_oPe8}sn${&FWnuHm^hOcW1v!S}$9?P zk*A9M@gA#3tZ5=YoR0!==lJ$skkB8)oC+ka;`0*5`jf_-D;|h~{%`G~2ePR7VgIP_ z@ei7FeIfVA-l6DflRh#~K9U6|Y{qEfDnp(SR4Dsg{m2)t0Pm9etd<<@i|kn>9vOr0 zqLvIMt|pW#zzGd}uI)KK-bHnIN8HFC?Rzg>A^hV->fve0QQ<++R*DXw|AHlm8}ZS; z(G+dZ`G<7K@6V@qzX^Msz-hDA`JC<1|JE6Q2p(#MzTG71$NaZ`vstVlyoemBMqKrW z=L7pcyRqb$->2_1=l&x9yk(1+54?+uw}-fj&-Qo`nYx#_(x3UMt+!9px$Gf3M9QjL zg}yjHQEL&`zt;_tzt>d@XrA{6DgZYC1_|X{RUT*4-f&y>>EE#r0aBRS(&%})eqkZzUM@4+((Jmiz^7(g(JMwEE^OWG2 z->Ywk8~S4Wm-98}-&5d#et(>}v4!FQG;Mp@kI(w!C-v=y5_jlxq3n5|vpwd2CH_U< zKQAEULl$c81rfhzRrA;8cj89DtS0VOx z{VI;RDf*A|vvM+VLtpIAcjP2`$x^WKe)ft z`s%KTkNI!Rcu&N~TaeD*5LfkcfA9j7q>8l13&_)H5B&J7Kl;D6fw(7)5-IfC94r3N z_N*V)Kl==Eqd#~9^TS2rYCbtW@&(s)eCDYCq52O+eyDHpQICW^c!7*j>9NQU^{F`Y znaB_M=J&*vKCD0X@7t>{1;_m@QOegMKIR{;BylyLTtDs~C%O_>`q}5}n+$J-J^J64 znYhtkqU`q}zAg=DIBGn8GDj5imK~XvE zJwSh>G_cp0@1Tr<8Vr0Z?Qz?QkRYzm7Waw`g9U7$Vd10gdZ?lQ3Rm2m3JV(Yn&iLUA5_i}yEK6K%e0Kj2D{24s z{KAgb+;0DFJaN@u?jQCi$3$(<{*g~xq3wA-kmtBW+^7%vkjupc$6coJZuu}qoR1D= z>0yh8f4p#xnMd5H4?o`u^F=sEWYyJ^GikHALqZoF5-qhsNd=n(jNOW|21(H-#$OphEx*y z;rzEgK-|y=uM!Uyw@y0)tDg}FRFQ_bg`3(opKFNhnx#$IlCSx@*!t?$IHFSNp5 zj<4NB*yCE+`qg)$R~Wy^bImz_^xxtoaU*~1W!H4weE;4bg}#Yi*run@2laax!g&^v zx9LyzMtr>5<{GN~vpw=jBZwQbg1k%qA4GnrfBqVpvw!5Hv?=oQ#hJ zNB_f15O>rU`Ti4OkMV;`Jr(t#|H|JJSN`quTQ>bO=la;v^ri5R`&+ESuYK+X2@1gc z!nY@G)Q8uCv^|Kc`Q!OQ-f5in&-tUiX@8OS$g3{VoaYbu`S5Q<{>bZgAa3M`*O#OV z+&t%^x57W_mt`?=HD9bB@~RQu36A$F0d0sI`QiSzavX6(f9y|!iEjSOTuv*$nml;(E-$v(RMzxbj#+vA($IqQFP>hr3B zn}=yiT=mDEf8$PW`&?(WJ?Dq>*X1s84=IsC-~X)*uOHgR`r`FDXGY>ie#lSv(46BV zueMZkt`GU~O~j40__IVgceteB8f& z80zK^=jiyX587W}?zZoGMRU#{uRkSHd=dK>@+et|D}6aW@}2pKtNOV=$OjkE{#hU7 zm;Qs7Y@q$y?W^|I{9o!jM%AIvZ1W8#KB$bb4Ota#`h@-tb8JM7!HiQwCF{doO6 zlQE(2kNeMwQi+5;-oKS;Puz%)`)k=Qnsa=-zp2}exatqjH}d4eh^zM!B9siIXUhZy z;9pd%kxXKk|-I)V;Ql&C~1isD**j(3sXf*DDH5@;u2T+dm@H@1u!h3+rD}tZObLVci{19kb`y8xm+%^KLx0TwX5y;O z_^-d#+}@v9MTx8UcKvphChn*|Sy#9Hxe#uTpSTy2J?}(sa%3 z@ypKA+}^+LD z7k-fO@oP#Cew6X?3LU@hM6o{c9fU@GHD`VC4q(Vc;%a`lKIBP{%oghx-{BZ~+|3U* zU*p@ef4qK0YC&A}hxI|;zPIL_KVE;UU(}rSM}GgM=6wCf{jFbywW2?Ghm$mi=63z6 z?jUaDkJsNzH{JZFIO~MIsQ>yJ#EtpE`nGR*CiKPlVQT*^_7CKhn-MqqkG$Z)MB=fd z*q?!8O8AcrWqt71bfp#%SNU`QjiZUx_XQ>nFE1WDit)$a(46gYeNJxoy>HJP?c??7 zDmdDAJw{yB&+~)&&-g;z=r7h^FlIOLSX5kpX-ABYMBlUz`LPoAZ|k`6LSN+D|AV)l zM)qp|v(NvR3(`O8lk^pFNB>()Um*0u`eVK&ZrJ1c+VPL(oFDRkR?=gg)qL>$p#HfI z$;Uop{1b(i3jL5@UP4^uXWw7?F4LUn2kjG2TPFIC^HaLU3TOO_^)=`CsDI+5D}}!J z3VJ~{;)cG+|1L{h%_r-NpSD-3{=09_9Q7Shlel4z{Mxq7qJEsu4QDlH|ES-f%fyZT zV*OR4ZV`_yM*EL3h#UDKUy_8lp%3ztsonmY<#6*WRo(ITO($-wKa5{|gPRwAspH${ zFK>fwqJGrxt;dzV_W3H?QgY0%&kXI~zCO;aC+?`P{x0GU{cok-F8Yu0OI9IntWTW3 z-`YrfqEY23vpGSmqh4KkcaJ*9M^yN!^G8mvVXikD{xZANB*VP z4xu0VpE_J}?EmrlJ0tNsD3QE}K9%%->VSLfs5bOBMh}r!`29enz^L>FOi;;^^hFN+ z^-2u2sncOGYMAQZpN{)du#{+Dw&y7^%9uuzwpWA{I4TKx5;wLItNQp>75zWDqPac)`_H9+tS|RR zw|(d6*F^qk|9ea~zkQszmpXm_GN`6Ei0ENnlf zeTW+!!uUl;YXA25^G;}co)Fwj$^;WPHUs2+BHeJtuNYZ#dwscL5%-W1DYU+ID-w6; z*Sj8Zl^?HAtbcqHcl>x0wSRklC5Y26a|3Js|1sehqWmKr!Y=Wo#KF!IZw9z|x+C()(GMl2K>fG?d-&j{vp3uj<_-6 zxCA5imiEXmkJFs z0GuE`9`eP|L_#2Jz~d#vmB97^j9NIkXb=kAW=}?uAJ*68nC85}p#AO4Wqkh}AMKZC zZ0!4Id%Pj6x2L^`j|*h!kDbK=z~6N>n@rqT0Lb@W>MHcX`1w+I69a%RICuUBADF$n zh>!hAAGL?jALpadSHxBSSRdqJ6B9Q!0OSRdX?tE^$m?ct$3Gb${iFVQOKAU`AM&xS z-1d#e5?B4PZvcCrYtH^rzdn(A`u6q(+&2?(&$SXM^gY7%@3p->{~Tk9EB)>Hb)8Dw z&>!nRIm^wbtvQNv&F%5$N9yI&Z)Gmx#`;J7vX{`D{Uh(6zmKR7-|${gh`7?1 z^+&#HI&sxs=BQ7U1bu~n+#ez&bn{O+2Z;E%eosICNz{+?U*-vMl|So`JSc?od>|jO zbO>Dl0{{Q)75v0L&Bh@j0RFzD%01$0fVctpj%mep!-PQCpjHoehyw8)uM}^H8~%~k z2)ole$R;AJh{USQ9lmwu|C9=e;yFzX~t=8UjS)lX#aNm2`h6hUIE2P zLX-eg8b4#tpFIU%raN?@y>8 zV*M&!wR&8UpP`T9jW!ZD^hf{4E5_rkL2VM^H#y4w$vw%9^{x2kC&bnI4K?42N9h^g z&!6kV{Pr($^Wm2?=lMqaCkYey`Ln*5Uz(^1g+9oqrXp_WgM4sW;%dG*KJws_ZvPuQ zxcw*ejwn*`SwF1r`!jC7FiawmKh9s&3&cIw{{D}AN~Of!2?z8~U%~M&W_pJVsSeva zP%d!_!HqivH389*xOtzv#ElG%TR>$$t%&5fLYq#}{&~WTI|OB4XQQ;o4#wG`?d|nF zO_E0BXWW4)|7{8pSNd>#zJDorld&T;l6&VzO^__~E!P&org^4Tu zxIVO>8R)h@R@rU;V`H~{wpRaQKP60DglBNGf#1G}arJFDNow(;(1ra~4Q1RDo)Asy{GuC%&m_DtL^}!phQr*Av z_2v1&8<~h>i5vCdjm+bcEd<9~{fxUbXMOQjbJfL`V!n(oZ>suQRBr9p&-TW9*^2M1 zra9-2H*ym?XwLOx{-cIVjxUvVEh4VwhvVZ*v1Xfy8~R}VQ}eeG`wPy`y>Hv7TjBqI zX9NGDWmWQ^B5(%CFEk}?WQYp%-q2Pkj2%clzP<2|3gx^aIZklCo0{_q!1xhnbaE>2 zX$x_$G=IWT!7G1Cj`>}Q*I7&m)|a4^=JpBrZbxsiLec-;FT~Xfv`^r*FnvV+IHCWf zBd+?x@o~cTH`AQ;!M!5Yy>^e-u$NH=MAURI(u+hYg`9l4_nm}CT&-o!Qb#Ro3 zkM%t`JH_|U_NZ@No4e zXOTY+Vcg4_vwnD)O!P%_uFrVXs=Cb7jYuat8Jhs|Fj3@*PsrcK1%CL$w}Z0I3%QN` zExq>7{V^W6ui_ufq&er0{9`fA?e+yL==gSits-%w|LA{C3*w$M>W_i~u)fqiw0~aY z$jkL5Zt4g1e;6v`8z;i3`eXjA{d4}v3r>*s#-o~*{mUsbKJv~>-1ZN=6TMXacKv#t zAa2Yz&ezc7s|v(b|Lyus&z@1#hw~HMjkuu?@*_WMd-jh! z=pk{X59g2ksmC4ut3D;J^t1cF{aVLo{m_4g+L?rYxW6Y`LR|T`+dp05=JR$DSNewf zVy^1%*z?jJ8xIFM*WcF{i7S2V^EvdswzuaO+%8Dyi}}6kLtN>{`JsL}h7dRUhx_L~ zk1Kt6K9GMLrR{lrAP*d^?KwX3m1DI%*N69CCx0Vui}^~pwD`M0l+X?Zl~_-H?_2ysJSMX|SpWU-?Va`4jN#^I zW(^eU7yUo*xXPdPL;n6h_{R|cTtC|HnM3}S{`UT+o$KZe<`MT?t04^iiF}Ir#MOM- z^Pl#sn_u*}Bfp!Ah&%Mzv{?JM*SB{yah1QFZ(OJS+x7cxgXTOxsBgd~&F%FM`%81S z$LmX!I|IXdClcCzIi+q82Dct07BFr=OG7vph>vNr@Y9ulDZPZ_8=3xM`-z8dT| zh&e9st+j|7{*j++MqD+(z5w&I)c!etv_Cb{&2J>0DEyf7RAYM11tWW~7^6o=)5gtwap{2F%YZiF?=1f8pg<5m);2fMWax z>miKv)g zmgmF`ebN5h*JDI}Sbyf?W4se4j{8LYCpDrYjg9`}{KY7;MjWS!>t|gJ z;zs_+FB~DR^tbo-{Z-BF`_Jx&ZXW!BxG~=tzju|j&irzYAa2YD)*o+yw&(sM@4Q)a zPsGqK&~KF4Ed1m3A?!}#hJMHgAHMF_$McQzSt`>FVUPRQyH>=F`tVc4E|ZBH>ksE+ zPP|~>p6kQbG9dGn)WuZDyd z32qV>d%g4HbCb}%?i}LAkfHsp?ZnlP*yHy;0ez>XPhd-J~9QcLt*OpBu{A2vZm53YlA+KNA%{%1C_HPHGsr;f`&n`In zuY8ZVF<-ce4Vak2=d3U4^V2lqN?+!9kz8CNm*A++?1Fjx`QZ7%FT0ekMBK>FcoLVY z?|qMaqCWJWX^`feAI@jFPs9!XxXHe)l3&a(eu`D0y5yMuhPRTV{+$mMa>hS-p1868 zFu$`EONsfxi_HDT#EtrpXHOU?IQp;p4RKF8l|)bg_CL)G&F%ZwgN2%VMFa)li~RL# zHRt|genA;Z`}uMIaQ{E~vX0=Gf1y3~gg&^x9(brZ`^Wj;GQENCpYuP`A!>_Hi+6{7 zO1*5h=3M__`YL9INpC}VuF(yJei(n>E#gLhu)YZA8j1Lr-`ESpjr{}p+7yk2KB(`< zGQ?GX`6dbV+uM@3^3V0-{HBQBRK&;iHRm94HNV_nT)(FtYR>u@&&pQo`|Ug8#{3!Q zYAIemcQe7U{;m}z$M|{r5I6M4{i8{6GdffL{|^Sh`rAKk?$qbij+VZE`%UQM(XGY$ z#_M0cpNSj&MgGqO&3S%9`sKiUAabpFAbl9)&T_xhi1f%|cEb1xz z;{>%l)=TscJu*SEB{P)?|@J5^ilka z2o>osR0J>0(0s4QjXeVGU)CpXD1^NFg^z;cg#7t|xbkn0|FPL8p#b_XKaaR!j|wh6 zDLLBLP4n6Bkmn>Q0IyNY+eQ)RNud4BOey^H95{dcrqtk?lH)hEy0_4rP+yzU?t_wSHKCyh60?Q9#(^d}l6KSmclTc56sn`S+3x{mZvGSBM+> z;tsg?t75`G@}G-V7WHF(Q`$(5{pmTFxSDV758C&MOJ`>q`l9`d6az&5Sbw2(#0`Cs zSF7-oAD{I>9y{I;=X?#RL)_30uV9ZFy7{HlQ$&9;{<8|di2k8I+{p>ea`s#D;*T}n16&p#8rRo_pt99opS2a=HWHbU!2e2T-QZ@ zxW4-qAa1M=T%S1#5;x`#`Rt0C^ZX)D*;vPC{g9XFAUW7SM{?!@>%<}f36Stiu>B$D?&VJRb4-ZJ=XT@A7A4wdgZqN;fuEC z_-H>c`VHs$J(q^Kp)bx)^=!nIK0Keu%M{V}yniFFT}#Ke*SD{=_HWO>LR;d-`osDr z_14_3Z^|Ft{K!ll-=6=e{o0=M$Nl5rN#bfgI6m^m_oRR1eI625`rFt4l+QZ8-T$=M z!D4>V|K$+Q`Xb+xfb5mNcK=6{5qH%0V;XI5_n$G7&d<)*<{+->x9i(1m*#f+ie+?s zw#WUoXjvH_dD;rZjrx#>|5nCFzOJ&ix5uAeU&rV9Li^RNh%5cs9d;Ft~h%0^U{I}NHKhGD| zKf06VcKb^UwSRkld3L$^z&*rO{v03cD|nE&L!ZA76Zcx9{wVbIarhA(pYuomb&hF! zd;DWjZwY;I|C^nIxQfs9BR^A=xRF1u-&ujgReyNCkZ-G@Ip>f3RXgb)<5%rV+?WsK zt49$x^h4fZsoVb3vRe_nXXE_;s}krT<7%BDSBSjdKH^FNt`Pa$L)zZ1@O+P}3hn;i zohGg-Kkf#8rM=AKsx~+|^yg$NF1eB5wFc9{5~x zyn`I_j=0euxAXX0h#UPu`>dxlXZ?`($n?n1pE=H7>4L-!{gAIHq&e4zymn#Y zYX0s1bGFs-xjwZ2dw|ivlBky!f+jITMtK5+s*T=n= znsfcgUq^ZD*T?>m$4f%on1AG}lDYZMCER>S1>#2k(SPsO#FhT``v3ex`bT}L9oP1} z{*XUDrS0wh4+d+_^M&?tb376IFY=7}h^zYS{vQWvd%OQNRf!w=ob|>24f*P+SpS$`n&!kkX;hJ+f2$Mud*Z79tPif= zMx%%u`5~X;ait&Yk9^>GH~+`u#{8lEsCAli{mA?7(EfS-Ay0aQxFi2T?};mY?DdcS z;P$`s?PuX1udh$yei8G9{aKcVxX~ZH{{Q`2+9RhAAjJ6_$TQc7BhJS_e!X;j!SNHU zm7^uc&v5gu)tvRmcQ~VkNg({=^*vz`H@`D1`M({3quwF?I3u-xehAMW)))C%_J2D+ zMcL;pl0%$tg7)=F6F24u`O*u-jr{}X?{HvF-`+mI(bE?c`J;V?1;icm(f(dBksr?A zoY=*ke9V((qJEsu&98|&>Py<{2j4&UAN#xTGjX-P?e%wy_@k&F_5JfJ;tu`KUmoCd z_K)|6kKSp{^MU(k+%^M6epvsl_5&Hq2$9eMSBWUuy=L&pk^^_3Y;+|U>K zruP#B$NTF}$tR2aaeW>cMBLC1`RDE0p7p`kPfyMeSM_m!F@B?HQ-pu~1pdcEvqb*5 zKlC_H-0+Y2wfcUJu*dk(dJ;GEN1kJaqLKWe%q%aZp;Vr64SK3_eVhi z*uO$2G-v&=e-occj`nvwZs;3||4HYWs{GhL>VN*DJ`a^S>Yx9@&Pah#Y6j9_i-Cb5 zXHeiSnB?A0u}dJo6M2`PC98mZR5jwpE{-b1yF%Ph8Tr0j#MKnoRXo*cpWkKsluX%i zKy(>*@gd(H6uS`SfABnUBR^De>tDo;F5#5E-$RE`srp$T>{7*N>BSimIA!r}el5;` zK>xeyWfo_2AU||Hr+9|{{>`H%%x>^Y$TvBYJ(nEw+m|Mnu*WGZ)|I$pm7Z;yPuSyK zMx*tTWBq~U@{2PJ(7xvGqT&n%v|k>-n23+Ne6BRajsBv3vmyitj`p8B5jXme`9=C! zbM8Opm-7$lALny*`VzuF_NVMm#EtxsKZsb;x943R`Jo`q?dzvz%u-^0vHq|22l|}X zC)RguS80(y>U;l5Ibo0d@5GRq*56KL@Y&7jcJv?PFKKK(}gAb(oFKB;f^I^4_Wjh5Xe=&F%i5>#Q+!9<&=>co1Dzzt_y^VySNd>&u>MaQWqh2UT2D3S^^N{( z&XEtKLjA_H93uLI@%sjk68ag}N2Tw{T9X7v`+BvB8~PwG)!fbF_aUzO&-!5f+eQ*s z`f>eO--cPz9^=D;dKU;1jZs>#Szu?x7B7dB}?#si8XSrbfKC6fu`#16{Yl*A*Vf~OV z=owycjNi6<1i|;i{dw*_lAjn+u+fYALqhIfi;mZv`-{BAG~!Ah*6-N)&`*ftv3XT@s6DxuCvp@1zj=V11>6Q;BEQAfNU|bIuR>wMl8jvuuzToK4)& zANi{<8T|OH5Ap+%GWzz+vA*j;#Etnz`}s56eCd7ZAMNjl%_RDRd{=tnD!x7cc!f3R z{-J%e@3eor{q6Re^ZcTH@0-LuQ#C|E0jST#LSGC0k$3v6ImgHK@$5(z;UDAgJ4xKp z-xilOx7T0fMh<6x8!XBt`iuM1oT9n?{&42nfS@$LGCDJ<<#|GNR2+xyq5s^)h8by^cw`rCP>cEla|t&SSx z+w=Ou{i9GK;;Mem5A{n@jkwW21&DkFP2mR%a zKk>Pa&+8NI&%Gt?sPDrkZEug?Ep|EQ{H;nvT=}=hubG~>L%(mbXnT8q76xj2yZ?(p z#Ff6BKd$eAOSFHx{o)P8jrD>0{dvmG!v<^r_WV!1ByQw~{{Ko=-l^Y@Er=`qIDfo; z6zNP{`RDk^&-T)s^+7&#kc^M~=_KMxAA9_yaVj|D=d4Ct%?Ia)`(KOB#0~wC-|4IU zdw&%A_0#)t+P|Hr{FS(&ANsElt-8n`_qWTr8VZj4|EFrLe9rOl`g(ame=+}ffAw{> zABBI+uk(NKYt6}C>1WrseYpXCe9jN!&)*_B)}QhKapj-q2kSeXe4v;Qw11spkg!L- zHXCtcelfpaHji@hfjfz-`Lfq{VV~Rng~tv3Fn;s+^gv)EKdk?DQTf1NTt73*6F24$ z`Rpcc-eL)HWBp+KyitD^`v>yh;t_ZBZ|mBLqJLO_kG-06|B=t^HO;C2$W4-Ce)nrm z7y97*48*ULd)*t5IEYBfP|Nj^}3qUKXZ;ewI zq`MIiX#qh(khsDHE)pVeK|$(IcSs2+ASHs*NGL5zOG!vcigcsW-6bduZ_Qq_=kE30 z%|4IU?{~k|d(WIXXJ$};^6)O9$IqXIuM>CFXK3=>zTRHHHsv(u`NQ~rZ?8G)@$V=hnI)9N-2Wr^H1OAP(sL4Oe|VCx8pI zYy0bBz;OZm(22M)K*-lkmU@i8{XaKE{OJFFwwoe;j2^^KD+&zQ{DQd>$HC!aI`E;ku@pJ#NKdZ7o^5bX!*x&dii5vD&pQjFSqkhO+Zqc0khxP|var4Fv>0#l9f1LkB zgXF`;asCqwBW~o6d{Mx;f5PWD8^kNs($?5W_mLB3vyxQd_a zhX=^n{fMjjGsg|Ab${Z<`a$09r{`k6F~3|}i5vE@{$qD&J^M%AW`11%L5|Gv17@AI z#EtcX{A63s&)SZ-QD5Yf2D|l%#uE2ZQ%S`9f-A`c z;_3@RFNm0Y?0jh-*T>Gqn)CWaKI@d`_W8S=EzEn^aB%#={@-sDCLRQee0_W3M*Xn9 zk2Vok`E!2Q-*|h88~sK8!w=9BA-{BFNQqCd#L8R+KU zev(+|@dERRDa4KbBEPblxT-(b5Bb>9^s)mZew^QIW8A!a2wr-uTfZO#A2yZr#{A&% z>$iY&|B&y?lUmdVd6nAfMgGX^70cl3x&L^4c>DVdaU&8%MU;<-jEIVieq0UiQ$HRh zJ4T&x9rWmuQN)S7=3wI9KBb;aE^hZ$bGTtLakWl3PCO2kI!D~_Z#;5a>1#jLoae-N zoQmSjif0mYgdghO#5zRYGBt5y9U{+`Q|fV!Uak6?s1N4%xI1xGU+xd`WOKBh_aV$b zaxZZsKh!6BpzX6B*TJBNZl2?rn=goyL(~uLhbJSh;^X{~kMBs_s4t$!^jW9%+&|QB zu8~u$57ck(qB-laKFh}uH|7g@-_rR+eCWT&7y0No9~B(uvHv4SR}lS2zHox(_Wtyo zLR`&SN&r><~Qq()^q=n z-;0*Ee0uJYsgMElcz(t10e`KOzoKTF)0AGCkxuIBdm5C2Ep=r8I!=ba+r$Mv_Rx#m2- z$V-2sIrkTNfdRyg{vnUQL355D`Ke9Bjre2mJDS_$8}pR7(O=Xz&G?C= zSGBIhRsXsE$YXy>+>@#z#QdCFZm_n`@u7a`q-o-%ILM1maoZm~&&`XkAa2Yj+8_4$ zEKwiapFcfA+{hp6d-R&-_Wtw=n=Sf>{u`DgZqyIwe_uFpHDC7i_e~GtDn7gazUMS& zJ?2+2_77tIk^hy6xUs&FcWz2t#n1M!KDYa8&hvx%w+3nZJRit=ygEnJ2YLV9M@4;+ z|FM_2(Ldz1+CCNYfxO5_&AGnF8%`i@^bdK$rNoW?Ab-40+qdU`-g}{nvTx^CL-2b6 zx7WYRU+(z+N*qf(a24nCTF-dmaiTHu>rLEI|Ae1uy?s7&f1&kuo;Tq3{F;s>y<>i7 zP1OGF`psK3xBGwfx#sr%Tu2=z9+!&sxtN)_BfdoWi96=2M+3M0D~*Xe>i^jQ&F%T! zAE>!~{;LcouHv)n=YC0CgM{ck=?PiL3nV{#UHkdVBoY7sq$j zfA-IAzG*FSM}1fPMO@X#p8v6237qw5RFt@*K5IR$>TA!x(Xd3$_f5)^|A_6x z9rHQtzSeVnaev6uxQ6hLd|E^OLKu7e`HyREuit>P#2x*AbdI=V{)X27K&&r}uXC(g z&iSqspSbFeeZDRy(0Y4)Z+hIJFH)Vjil6I)@vR!zSo9B%zsE*2j%U7f5cz*2NpJKQ zd6j9BtHyVugJLMeitlyekn)85QeU7|OT=}>2geQi_i=f#F-ffSc z05f(T;Tzx;hz{oLBCZN#AAn}3-1^JsG`9zsYNmdwf+^6E_-w4IaBu zbJinYzKytJK;kF;#>xLFKwLGLcNqMsPpkL7@gA8U6$19781$anp&InO`xlG}b3{Xzd}|CAiRL!0=}&9lZ^BKnK^8<~l#`f`7fcPOLv z+#lrUs%q{TiTPu|QC*3v`f&cJFBxyCs4wzg{zqKRzukWPsl-+McKff)aNA#K-}Jm-mfrd5$+_V1?T624SZ~rbio-%;?f_2EzW#3ieTEY^ z>WA^qSm)N?zb^fw{;hwto>vg^xX+2(Ccy9S*mqWm{7|3rUE+@Tn^Yw3uwS>E+kW^2 z;;MhVLec-v)7}0vJkb8Rzj%iIde*ICKJW}APYAxk<0?PiAyD7GAaSEU$d7+Y+}Hu| zD#(`JIzH|neg>;?yn=Ws1lnJ9nz-`MdgRHk6Ib=M^Tu~H=lMo`_4}IJ^@kr3chqO> z&k??V?l0z-Z<*%y{OfKYuJYsfQ2+CG;>y2W-zsW>c&P*G%coiC*Vmr^-KxaB(ET$6 ztk1ajwcb7-alh2uZvU;BE5jlZM(Kb0gDScyvW?6*(yWwym9q_Bjv($;NEwNFEo<11 zTF=V}{V%^u+%ZPY+O8At4#6>h@Fj6$OtB3gj?{YgkNlHSTF+%hK4+}f+xenpl4E{N z))H6w+4GOPNppJ}JDnh|@?-yKfA4AHM*omczwFlM%(32S|AWfJ4f|N1p4EvP`62J{ z<_6I}jBnn=&B8x^knOgDxM3gpnoY#j{BeDdFZ@I6c^M;5f1kLw4C#6f{j!v<#$pEj ziX9LUA|GCoxT+9GfV^oLt>+FSAMsS{IYO*Z-Y<@d3ZTByA>xh>y>UwG?f#2CCT>&^ z?I#~_OyrLh+%kc<(IH%+Pg4EqS2!%Hd}R43Dlz`a^owUi3i!+Ibhn5biyZm4ADtC? zyxNj+Dse}MwU!W9_PIo;Kl#adVINC${7d4FMcQ$S)MJZ3-Rah6+pD>KL<-;2_U$8h z;i1;^u@YPOYlaIVe#~!N4$bW&w5|kkHG+2kIV)&A$B*`Zx<*`$pjX70OR)8A;;Mgk z{nP)neY^j!U%e>$hxP9ke#!T5&o50^$v3X}Gu0nY-VYuPR_in3Du0d-A6*cs>zBhKveJ+4Bg;od z(l76$BI#8W>c67OM|l75$mn0&;%q%GPA`u%YJ;&y)FE!fj*mi=>X$Ea?=kk9 zvE<9W@VkQ7n-W*E$GKzt`&;XmhjHzZe>F$Peq=CeaTyJM&3_O*RH>1jfxT+7^N51AuZQrhs{XlchAN4;L{!jE5 zk1Yk?CvL=te0&GuDn5Jt;`Jx)g|3Pi^VpjH>?5Ja`PiNKv441e$+yw%)6yTP2H6LA z<38d>0O;VKUpI%>&N%k?*Vg)LDQNjh==@ghkR<@xixw7~@}wEuQGH-9vhxZxk;A2pM>Y9W^pd7EW! zedYUZz9K2TKvCJ}HH0mCGC{upk=GE`r)u-q;ssNv@6exKkZ7zC)F)XTCOGQ*?r`(= zm)$&Ts`&n^hwS;K>p)!9-=1ILm7232<6nBn%@f^D@UmAQscW$bQ@tYM!~W( z`$t|U6LH7#&C+841^qAl0OHv8{xQG7SA+>n*6Y}xT(g^=(KVedO0i~J` z`}*AehI~OK>JJpr+}@w8B{a9&?^cSqvA)p$-Ose%ZvVsp;*R=#Tr7jA58A(1Lvy?R zExp}*@@V1?|2;Nqy*>Z8_h@eS|KO0Dw>wN+)z7|u9^59b;Bl+9sSwb zNbBwPYj)6jdwl7>aPu*@##V)ArXUU$yN)=qhy{8rrj zg5&zjnw_}OAKX8FEJ9qx$EOgu|CSy?+(Quw%a@Ph|Fm2ts1o&t@5WxHV@-*xZOq=L zajl6v#&}9wx4vMRIzo>hC3Zy-H~b^t*V3(@+QH2uJ8Ju!KiZ$zo47Fs$Ttmh+kY_L z%^OYB{<*$rfBhul#uy-vGeg_wWrF;j>-GHlaeg>v_ns41`LQ1Pi{c+TmvN?Q#2x)F z`JtOPX+T{0w=cstj%&{G;g~nLGE~$Dx9J*bzjX3zS%@3+h5DaLYR>gTp0ONpNBlq6 zAg=0TUq4qnYR>jCzb>7%f7TYH+r=Jxr2 zbeg!MK7DR#|8{+fR8xJu{gdYCT*MvoImzP=|LqI7dGY46gdTsixp|Q0Jpag7&eojk zi~C!<&BTrV;Ya8IaxG2HuKyo=!x!PQq( z^eOziu!s}0rZ{nN>hJEb#zrXz_Xt=uQ-hxs?%OkBlhuTT8##Etr(e#kLxpW{c~F5e+xALE-cMRSfH zcZ4<5CCC00-9p@m5BZ6|h^zUq*Dphp!=gW^Khll3VITXyIPAE{597ZYUvqnY<*I1T z`vdy#vXr>mQTde1us=RytXNfF=}0e~RQYlJ*G0cnRPp-PHRt?~{XQ#M`p^1!-;650 z^Vh24rBlYUt`vXNLBF(;^}j{GbX4(ElbiYeIeygVY}nj?sTS*v{Y&XbbSJLr%kdk( z98f&}SgAK&YOi?GBrQe$7+>s+tps2H@uYbfkNg_s-?Aui<)7n6|EUwT7B2-`P3kqn z#|HW_A}p|fKD&M? zB=>LARIk8C1D+^<-`ElH=wKXtce5!$;tgd}bPfKZN%(i7LpZ@BbJJ_bR0Q@3Dby%T zJe3qX@WsOT;;Es?2Oh~P_^RmF+NcW8O`lEJ$M~-m>h3>{fh&miulzKCo{Hyvd&U3s z5B<>3>E-jqQxmWbO?&(;o_c}$*)2~ydEH7^#8X31f4bWhda6lupKzrPdF!@#>IBBO zxIlC9dt$WTy;@8E_qbdqTuIgExOx7ch#QlL`mn{s)kMnd8T2&o9-1EzU8>xK{qG8|%}#SWWR&Eb@&Fdx)<}@qo9hEpb&Jt}pWR z`Fe@3iZQ=hu?GA8xxd>l<*(eMQ}bZE{4L;|Kk|&}wVvy1Jls-kXJx-7uKLgR@qqD5 zr=LXr7+;2oYeoFn|6(2Eh!ZB`r&!8=({99#`e6K>hY~m9+g|hU4hdU45AyGFFrheM z!)10P;9P&?+fPe9&fnN$^i`FLkL!p1U;9H=5kJ zsoHB|ZWDQW5jX0C@x3zI&9}8GDo%*ef9c7ZbNra!%2$f}@$vj2zm-OFd;K=7ByMb@ z=zn|nN`j;P^iB155O(|ZJ+AC?{CGlgF5nzL)~{JJsYl)+;H<~}d0D{OKdz7c0cSn( zQyy3S=lr%szeQE8pDfLFe9Y1Rpn$V|)Q|DFvd`-S{cj04+kZK?>+gDc&$U0lsDB9Y zA&=EU=Vz~9HQ=~^M03u6Z}eMcRs9wOdgi!3S9sj0KiZGmQgYPi@whR6$lvz3Q6J=e zL+GQqJ-;D=-k#qgj~o3*{|7*i$B)yX#}5=|K#%-F2z`Q9IzFC1)JJokKjcL`y;1*{ zbFL5OS2Tovau6T;$NFstj`Q<7*hhW#=**@}~0k`Y> z2HdW{8gRS*S-@G3@yBVa^SA3WdE7&Oe=+{-f!-cp$w1HR2lb^w=qm(zo{wX2IU*v^ z+v9Hsdd$Cb2;L=x{iy-x{I~q~9bIy27o49j0Q<<7gy8!E`<&mO_seg-J*r}0|4^Xk z`l9_)f!-e9`GB*1)L-(rXIc$GWH|C0A^b;k?jP!J2L3s|Lr}k1?eu&y$NUp|+?dZj zcdrZ@ayna3pJV~I*C(3W<4YYvAI({h{?kDG$X^X%KW_+q5zwRk62P(k(cB(?8Ssz# zcLV$O`c)30uNgw$95|l8w*~viJB8rAJnoH_8uG|+)Q_;_~-S7pWmZ7 z&o_R)yBk9PZ@}&PhaNZbL;H_BuHxtZA%7a^Iez3X0&dqwbGtrPd+p!OV|&~)?e9P6 zKVHCjeIpMGVLyS#Red;q>`%&o+v7_UaC`pgJg(xm$CugTo@synF#a5Y-rnDQfq#2^ z`2%i`uVBFK`Zq)PFY0k){_*-iF^?PhAukU0e~06HNsk-zi~4BJ@uR+Mi1?y8*B9-V z3;c8akiQ4hc1o7GZ*ADF4^>sb2>TB136mXtD^xx3qMt!k<(cGSYG`Gjs zB(QJS|IgzdQb9z9V|>j+=vxJP_J0z-(2V9>p9AoPT-!izuU|)xtNFIa-#tWpJwouF zfqi@ZdWYbBJnpDp-w^s}ZqL7;r&sgA`Qv;H@VJ^k`+N=je{*|%2ZxA%NQn5p4D|N= z#(*B@Z(P9b{h1ipxASQpSM{;`pAp!%=l^2}`*QUNfq#4dc7uJ)FPhu)+Y{Ii z#qIu&hR~n&xayx>e?Excp8t(NZ?E625c;$o-2F}GaTTB4e+G|xNc~aF<3mP|8}o(z zeKoLek3UCXpX-DA*MVbybB5rBJ?@CFNWks=e>>pz`jqjwWBrs3xV`@o0k`{q-{X$@ z*9@WmAO!#D|IO|3*Z1^BeX&0cJg(-8`;Yv8A^bP@xFi2of!^Mq)&aN2-_GMk{5XGI z18$GMM_}LHzn+1f<3szOhtNlJjvw`dJiV%qJ-@F5Zjb*Ph!6WS+T*H!cKhQz?wJ2* zZr4u;?Azm;6vSt*@1nrJz5h!Cz1{w5kE{CG`Px8lx4$9q&+*~;?bblg_OXA_+-`qc zVBg;VeI9r8=a9!$e)jqu5A^IG<2w=P?e#h7aW6FGBWj|EmGFuaAF1_`er|{~N;oe*w4W|0uA}{lWQ;=B&s0 ziQ7@vAM=|KFIMbW-ar23Z#?f0)gajiA(6*DA1`TSl0a`Cgrp&O^8Yut7b=yfSA%Bf zsXgw9KaI!LpkSf6KIsE)w;#>z`kbC#)tBpo7rJtR{g-pLk34sv=l&rt82IP-kr(#3 zs*hb?G=#obz&Ss>kXR*{2@&q^by!;TV5^ zu#bFjpttvDSfFSBsGkyWd;C*F@EIQWO#AU;{eB3zJ-(m8KGtWc$Bp`+{a-xpn4f5F z&u?|$-`?L%fqlDvbBOr1dE8N-?SX&0{T+dQd;NBLT;*@q?+>_Lf7s*dX3u!uEoyYP zCsz3HzyePY@(UhU8QLRw=5Y_HKZ?9g631qry1hVZbr|_#QVVX#d*t z2k7R2;H%7NZqF}45T8B%S3K^am#mP40k_*v0`Xyf$wTNu0?U*hRK^pgEGn%nEUCWL-V5T8B&Xl}Rv zr>FOjzyD!=(cIpjzXJbu`+s}fF@GmL?x@d|fZOd~4dMS$;NKqq6OXI>?fhBb-(KHn zZjUccXPv*D$Mv|%-_GNC+zZX`4;~+q1l+Dq?{N?L`xo{%LkN9FkE{OK>ys_8Z=e61 z|8LIrF~0mE;wuouXV1S-pttw0SitT25`let{$&Gh&p$licKy2{{Fe{GBLZ&E@4djk zJ-_N6H|7K9t5yhJJK*;Gqq#l*I-cG`Du|fJ*C>yx`Lo9#&F%I-^z@GP^>M)M`sRUu zdw#7#=sN}69)H)szTJPffZO%aoa4jw(<6lbOOHGH|8=0Z=Rexxs((Cx=zmP0x5qy} z;CB1VLh#jrf4lv49yjvC_%;Og?fNYq_d@gcPh20{0{`~-4}yQx9}b~E;c+$pcKgxX zK0hbHKIVTag#FVY_?f`Ieg8S@aaBKieXj)Eu8-z+{nZfq>mFD2v)AWt!0q*Y=y5gQ zcK=TTy`8@Zp^wwWZ9ksJjs9c*QUk~NN*97>^tc!LOXfRsptt82&F%Hg>ggTz%N_W) z_y6q>`Wiue_WrdGxIMnlL)ae`f=>$U+v_tc;CBCu18$H1mk|CpgwSvHxazOnel)ko zw=3{(?@u(h=l?v=+j)|%dcN&Ex5rid_V|hg+@4>Fz`mWA^SEbPEwY&BA5}x}8UeS* z|4|6u-s6t^x&?ZB{d)!6?th`j)&61Uivqpf{?8tF#P?gEx7*(p!vCH?Z|~3EfOCAf z|NR-l{;hzsebnFaxQAZS{{)}>f4O}=lX`kJU-tT>4#CrST=maxKWzwo7LTj^?EbR` zdVBp}3-tE+$l-A{A9nrgfqlFGoFRDbz`oso5sy3SQ!WHAA8>no(VXj#^HVWIeD8T& z)!*K~8Xi~kVbAY_fZOX^-{UHOJ8u+%Hx6OHNx<#(X$c(b6V2`MeL{MAYZv{~4>Q3t znBE~geCBaS1wIe-_6Yig&<_Z>y@Ou`_U#oK73l5$M|<3psxgUq1R5LIx9i6R-0pv3 z;NQ-t270^wX(9A80=?b-0?_Y^e(#dHnfO4U=M{iA3;peJFEmx8$Z*u>>?Zqs8iF4Q{BwM$KN)cD58kYK5jg5^dfYRuiVzu& z{ISQ4`XGpfqi>_3W9y?Pc*mNFB$0Vd|nVA_ZJ^_@Oucp*W*V0QGXWv`(Bp2JbEF>IfM97uNsB{rMhO@w0wEJYRHC2>k|+8!H6k-wGV- zd)nj1gdx8dfZ`N@UUL)_>+6w=r8&Y_qY)sK91(y5cVqu zoaYDaSN6E-57!6nzZd9vzL570xZQp$(4^Z{~3opWS~q;F$kH;AnqC!0q{O4>H*6)YGPHLn)hXh}3PSrcJ5Ce+jW-mi`2JeBQE=2Z{Nj{vpYumv zd3sXud}z%7?d{3L^PPjhD(O{ftJ$9TRY*DRJYuzc?W~ zT4_D|N8bJ$;%WlfKTc?aImA7r{wOjW`48*d`ue-w`jRzL2>UpHv3hFGI{?o2^ASZw z{Mf$}Gu-@1pJLAbHXZ2ZAN)kzs2|S9!7at&M8u~R8dW}c=rYEb;sV()YK%PTE#i(f z@N1glehj>epgvnh;tu<#>$>%MTWQWSg7&{}>*ha>*8c7By|qm1?Yz`st>+m=|2eXk z5cy*dX7zkqaO0u9YKU)~o_48{Icf>bzjGHf?8-mYw z^Jy#GeBou{M*lItzDY_s`MKo8jsBy4U}4R<|HzlrC9d`md;Nw^)STxJ=O^|gH}8B= z`)B*8pPTF*5kDRy{-{da=pWAa+zy&^e#TjzT3?e|f8f`T{p0%FHRwlH>Z{ zepT8>-ss=5x*M^*jIU3t!Lc6XVOCZJ?+x#ur|RxG}%T6HOi=^u|>X)!#EUzY+Dt{Nl{k zoaY12l83K$^S_gf6#c>c9xeOU8UOOZ6Gi{f|FUOOgni6ER<~)wKK3W>iN(I2>yP?b zXIBV4*5`vu#MS!e`7pkRQuU2}aJ8@J`l0=rDc1@6c>G#ijkvMCjEABt`^y5(_K{~_ ze!|x?$N0A%CGLf;PDEpVO1XJkbJpYjbMs%~YX0o}*9Y1^*BA9$5Dnz&Iv%zsX}*7IAGaDQBO;i8xioZqm*|A_U2@h3h;T>0nuK>Iar zXwLZ|Ur_v>s1Ke)*Q!q3$RF3oXV-|U`f-0S{yA^o7xt0Q`udUJczkGb^_lOV_cx6H z^CR*6cgrxxF@_u)dkc5jXOSvA)04daf_>l?S9AKZ8DumD=~u@gpDq z264}{YI0;a+CN{LxDg-Lck>u+pXUSZKOB=*=&^pCekE?y2mQbH`3Jt9^GE+FuC(#r zEyNuCpL{^v$Pan;xNV*F>9~Zrp~wC2_cg>-eYn2JC$87_xjx8Oc5E;5N1pP9=Dfa< zU(ema&);tUY8&E4eX)M225G&$zE@WgSNYl3U+&}DzCHi3NjeJu82^*Zn%nhZ>ow>6 zuz$@`b`th+|0weXan(PLANS8Db-Vd`_K(M(o*q|v_K&<$J$fZ;uKH{DzyA|@hnIu@H-)(2ANR+e^YlBwxPHjvEYtS6K6w0}xr?~5 zesKTmdO>rxkNZQyJK8?aC;HDiv$u2o-=0I zw4VEmpKso7EcJN&m~%|)Ie+y3#Va#J{c(Rg6+v7*3nOj>{aQ3K92>Cmefk4$HdGcd zdF$cCjRxTYI~s8R%p%zzyVC$WV`R52LKaDep+)b05_Hv z<;&-`|4Gu^@$N~? zvd!DXja6v;T#L7{ibY=b3QxrseMsEU<7r;r4VrU&c$%{<*;`Ki+OrGm~Z1{>uP_$o{zZEU+mwuPl+4zZM-a9=_|J!B<2h2H@XLLV}6lm7(?7q|9Xjs zI`vUah^zVL`M~{aMLW&ym!TfaA1>@;f1ey3Avn(GnA^mS_>t#$>uaG$`)A7#SM~LZ z6mxy8TrtYm^L%1{Q%`E{1rhUWwBqSU`}Ub*{X66(Zmdt_t!_*b@uUB=@g@sB@(U@6 z8~GvMQ{S!M*5W&%$NJvd{)0Qd%Wi(FHNCsqm~V_P?pflhzdS!!pKRBq9{J_uKl=9V z`f6!3x9>ms?=0e1l+$PRNXyrxd1fzm)<63J$uYiHE)ZAw@%q92vt|09{rGu)aDRHG zgyuZIXn*RpWxjppxIayby?Ur+hw?Bo3WZ%t(pALjSTCgP4AxceUB zsy^%=^{?F3dX69KdnIAYYn+xXRBS-)q^me_p|; zU-yyQf4_!q|6$|Y_U~q{BJ#ue`0#b&DnE`N`8&DY`onFA8~sK7s;`I}^+*2B47dFm z3yB-`$N3ntNa~Rn-QwnT_GtUuAJn(F=+?jUTk3A6EpF@F3!pIF}(0r!d+^9=mWZ%Oay zPsxdHUh8`|?|WFrhxwg2Iwnlr?hyQx8vmj~-SN%}O=?TrD~@Vo%q#sFx)3)qMEfoJ zOFd4=(45=Fgd#ugab=%Z2=edG-x2ZSgl@S`+?YV@aDjMtMf_<0?L5Sd2}1r#1aW1b zCj|4)|0!{!emFt98~-En$N1BCCvNDG&znWu$j`WCSbatxI*+)~ALPe&Nc%CaVH|Vw z%qj2r@!9i_^FDFIKkh(>zannLkM&!3OWMaBBHeA`sz06)@kkGq|2H4qcluBK-2=g~ zzgzxw^Q4U)`g-<{`er*c=lUQ|wD*y(=N$;=V{6*SVdm{B$eYJaC2p8Q`>``hj`eR- zo4Bf<*QA&`*s#{A_@Obu4uTQfm_rtf4x)$GcE||uD&WrjG6K|pebCLTot5@+g7e;# z9FHNJ!%~Y|hLNXBNZhCp@(HhMJ$D#a=)uKW&l7_ARo+Tm)sH)XeB~dS^MoM3b;ixB z-6O76pxytvjA_Izg}4IWuSncj!8l=qs}nbNDC9GzyZOyp>7DhTkTr|2Z_M9{%&}tC z`0=_qeMa<(PQAgahieD4>afdk_~N%RA$~~csjG%fiOUB*m7utpOYz4~iQ98mJZt`V zK98~b72mp^xX~M9b`)>>LhHGA$O|-%@9XXP6-l2!*f)Bk>>nzfNW^cPUn`zso#a@* z9=jwrc4wtOb(y$YI~;$aDT6 zIp()yS7u?~xDi9y&$uj$ux}hY6u-A7t62ZWHz10?cYwH>Z_dv+HYncn?`&ee(EgXn zvkU)NpVcXe8^;FZdD}`o`hR0NaU(wChe|5Gw^F?(IM#1m_Sb#R^J#p;uk>9@=W*uu zxHfU4f5tb&N}pwDLBVlJ{`y#J&BWp5T0`D6df ze^bn9KkFjm#(d!Zy|_tnr~R@0i5vPYO{?X(St2axPoB6Xd_C9S`25fFSC6>SAFR)( zg(7@C=Wkr$SNgrlD+)axA0o38SL=uUp4H;8(Nj$hB3rd{Jg(ley4ucdgeGE*9ue-@gpBIl(-QeuJ0_zi5vC9{ zo~R$je>ZkjpL<1&3^#trsPfxAx`xj=e&f@*;>~7j&U&ohPwC%x=GUNZBVix+&n>ZA ziuu9*Hi$#q$RGLd@rfJt!}_d#L)+*4P@l7~n-}o7VITEPtG4#z=lMZ??|tG*Z|CP~ z5qIoQ4;yK2kAHdJ&Z559zky4;IQ#R>GUA4RoX_wT#8v&d|Hyy)P21=Ekng*qImeGY z&V9H4{EywdaNMq9KG1%*oW#A*RTE;KKW42)T;*@i??F4_M*q?N=e@Mvo?o@8n%nDh zc(dkq{f!I6RsHRJZTwF}|8f7Ekeay4pZ8znEz@ew_HlhTD@0uRXFc+~6^VONRYY-h zQtcln+ekh7ztV%aF@MPSj3;jN4|#(*Zhf`6nsa|qANzOWDt_({^7aSa`o%}I-d^7{ zSBN{}-*8oPyZ_U-w0}FVm8YAt{(U^I>T5s0DNs^#?my;#vNUnke>;CGoVd!*9$%cA z#Etsm{G6_>{j(l<$0)7m{vp5E#I0ZbKR4gpo4Ao5+V4C;bG!e<-)heFLH*H5ZvT0g z6F24q^-a#X`TUF8zTN-cOPbs3TkSt>-_G+s)ZA{rWSs6|{bKxoCDh!mpIL~wF+Zrk z7^%5^|EX1nxMx}!5x?M4`_Fd`h^zkE`!{=@+y3N@nsa?{eO!&*!x{fy35l!t?E0Rm zwVvyP=f|frYCXq~{wL(q+`j*OU7WaD|91Z`s%Xys@%UD!KXGF|(SNLwT5q>M>O10& z{9Db@obyBf%a%&}$ZJ1#^CC})d!hNqC)7XA)>F(6^2+(#{GCF?RekOCYgtaRWjx|@ir{JH*U|L)+4qCUtMU!5-ENB=Xvnjtvq<4#)Y zbNl+J^*3=9KhF==Fa2@i-l1D15gCrW@(XR>uJ8QLGT%SvkNQ8VuXNUT`|XQ@zS9a{_Wkqu4fZEKk_x5-Tdo8GCr*D%pq>RBjD^G^)=oq zC?2+mJj>f|Uit&g**?~H{yO4DeX&2oHy0B9!Rte>6@621tlyF8B?L$NUAmPN`C)ux zrW5x<_s_2||NW~qx9_jX=9cpHcAn)haStgcF+ZQT=~mW{-##DN_Yhb0WBWM&-BX48 z{(1djes#;%68^uK?WhPY#YES7Yph!69-vSk_XU-S!l?+#1+{^Rt0;zoXd zgtuLiYutn2`t`IYtAu}?-?ZCTi}i!`OFejv$RG1d_syEv5lPFJkBX!pse4bQjea)| z{^|4jzxt+l6p&y1N^-oE|ISF_YE*fYF_rqGHi=fE{r3v~E=qx|EZvm2(Q5R6w=Hqy zpW{b9^qn1|l<2=}7ve^%F#c+KiW5)1%9mr@OV)Sy9Xjj*Sne6;CF^1H#!qi5nHdDPDS(xN*Xb8Qi$N z!+$auPbqeA$g;!2KThc5kB+?T$zrMkx5}ImdaOXjgHHs<`1K%9@c+vJnMu)pW}%O^|W7jE}2cNXy*Z{Sk(E%h&PW5N%?7q$(b5m)i? z3O*G5e08N?8LNwU@B{Kv-H99XjXTK7l%ELu7=M!5#Elh>XrTj@b&ik-1?ok(SOW;{uRwxkH@du z4vUbe`) z{y};bKaUlD&N=f?bNkrTYaB=1M~c6r%dmpDQ6F4Zi!a3$daPglQt<@G4;OR8i5p{w zhm|&si5vcrzt@AfS{7U%S?hWJaD681omALI{lQtpjs7D)Iw6^;AM%y+h^zS6Kd!&~yENzd!S!3VdvcK< zuD=975;x+*50-xqNFnq%Uj>{NP>qOU>>5Z#AB{F+aF}Opg7!*dH+dIq&B2^*rBLpDnrc zlep~tKbBu}d;dolChkd9lVg6YO#F}5vwf^j^4*0*e=+{{;cq(o^X6Mce7${tt2KnU zsvqZ%`|D3P!yvm58qP|$4Cr^m0 z^~Lsae_DQ_jIZbKc`&}D*N7W>3!;@;wmh)bvX@?nYUlV6fS^an-(&_MSk#8rdr33R{a)_~_K~kSPTZ(3@*8=NiT>gO__xwcr+#HU$+3TZ zKP0Z^i|dDc-2k_~!ert`eNq4I4z1_G?ejJHf5cV%e2B*Q_Vyue%n#OQ z>oVyddC&9OKgW;!hr8Opy?!Z5-|_Re_jgMJ&F%f^*I#pc{Vsk@T;<31aedtNxT+7^ zM}BXX)^q&Gd+Z>t`fK+;;hNNA{d=Cc>+JurT>m)v(GtXs`NH~#e?VO2Z?AuYD7Suh zBkkYbpV;l)_8Sd$^R?f)`NLVnjs9SM-4?p_rIr#`^|9x__BXda{^^(Ky?3XpBkZr| z|DluAh=_>b+Y^j&T-JM{M>qrHauPRsguG!D;zkXSe>~W2|JCwwU-qyJl|ir6Vd7y6 zcoH{1KXIdmc$uo<{UqXHADDmZI7!9BFpy^*MBK;^*Vy>?^NINJV`g}^(&Awmc#NAH zPTZ(3@_scW$CJR$@4NYl5PV~8xBjnr8}Z{w^iRw6FHDa$sX%oR{{=|&(aZuR*m8oaq0_>C-GTg>BmiR{Mi53;x`D3h)dVh_1D|@2YXwS0plQm19rE-$07ktaQ$x$ zMSxhK_Q#2<1!CXC>fIr390bt*xfjG84V+h~k>FUMogOzf0OZN4YR(13{QIrb_L*Y? z)6Hls@;B^v$wJSYs5V4DkHQN=47lPSPtcs}gZc~eh#U1W;#2w(pUUSopuS5-c|X4~ z;7Y$MV_NZhRu($&6fZN7xKV%1zsNSt*+15|!6>?4*3e^o zlNSx1iy{rhy8zTcMT&se`IzMd6piTWA`K*i@3ukHKi{4l=o8pKt7?DadHqN9i( z?YGTH+*qH+RSxC8aT6+fM{lV2bH5MVqHMDgcoi5u}7zXw$O zt!%`N`X9ZNzjBXG&AqSZ6;D-{?srw3{bT&knrhDV$NqfPUf(av{WA`5%Kp?`U3~lY z`qobJ30(k*jDB;E@%sT~VCOTsVb4gwc-$8!FqLkoQUk;eFu+s+=KzuKm`-|CKzo8a zJ#I7@^(O--`O< z2KBHYaaDizj|=pNVp5Mheg)!=`aTT7f2pSR_Wm`iFXO}hecxH@c>!R3c8}M3?hod_ z>m+eCpR7mz$yM3=j3+#-%!tOe{CbJ zx5sy^jay$RrM@A^u7Cb~rN|FA;1o}{iuuI(I$Q3h&+YavEg^2y7uVnIU$ovnUs={^ z&h~MB+Wm0LkDv8;0PS7nAK@SQlOdAh{N74)Pt*tVFPERVnoo`o`S6?niuuJ2{P1Jq zMtzW9X#7a%cXmkF;@OXzf&)zYJkNa2`Q!YB|M6Vd#{*oip0UL*fKmVUx_IIjurc`0 z37x!Sg=DcK;zmUUmjKW}kt)f=Pjs;Xhd+|s_z0sm@JhQ<2)%KcTJfZ3(g=@2KDd}an&GR;K*n8%p&X~kKIt;F~tqS1-4?T<~%@{|DK)1)qvR>{Nml5e*9jL z;(3-T|Ld`HJN2_4@z6^0MHDyHHajoi;ur6`spX-PAW2OFDaO}_3iW9{G!2Ir4nIh%~ z^+zg9b;kF!8*xW`iHAy#>nr~i;>P@9e(etEJ8C$8jBo2b;*R>C`r~I2ANr5Tz0A+g zKHrlk5LffX{!#zD@>Wq_TwmXw)3-R-*Jt&+2h>mSqc1|Dg`#l|Iy20(=&3V;_scyK z8Da(*>pT~F+=9QI6((K|jvY$5pSZCC(f+fw2?fU;X6z4%#LK@?Kj**HPQIjV8etzN zB>R@v_!b2EK?41zlD=xiHSqDm{Ng48JcwVIP*Qk6{a=%b8*2df@L^Mlt2NFufPC6s zt!IuE{vduS|0WBbQJj!D^@tn(F}_yE-hJ6k8fuTZJhpr@ z$BC;o%6mBS{s|*|`2ATW)>7 z*DDJD*q_lJH|m3YBJqgi^b29Sr;dIZO#h4Vody1Jy#i#+2o{HJ?U>4ebF7M;!RD+r*85L>{+IS5X73QAUp&@gcw1p184Kkmu{$ zEspu~TFmdqaovS|9QeqI#ElIB`7g7HEB{`QG3)>6N8(2Q=zsqX=^y!&>OF*gysXx5 zC~;LE-f-}wJnj+V%DAR zC|*Q)I&+9w;kc*zhzY<7W@t1(R1hO5-Iln~VdMw0-|qVjB162gd21SRqXWoepCE4R0cgMOk&U84I04np{Vx2Y{&GpWGt-D4 zE1bB?9-+rQtk>ydKDSRuwSs>-`L;U5jr`F5rS@9SdkpeI12pFeKpwe4bM7xr$oSNM ziTp7C4~h_X)aO?0<05{v-@NQ;U(fZy_@+jj5ghw7^wb66AHO%FWn`qCO!xX}8Beg(Kg zSb^0WH0KO)1vSV__eQG>nBxb_!Nr=13Zs5zy|#XZSdSSz`>Cs+Ax{9t_gjOaMj+3ZvAgj{}c9c zf)ad2+?WttVZ9nQ6C78-Ta}xO-%#QNcIr*su#fszTC@=TLw&v0#0@?2Om$ic|Ja|) z8;BeA#r{wKP3!IRw4oUV`o#G1m6R_`NBi#voa0B{KH%JcU|I&Hlj{fBQyr1C4ZD#5SRd2ZF zJU_^r>>{rEYp-wYd&E`ztjG9LB_iMzB z0^tI#^~wN|00yw3^;cp5F@a*ki5m^V4Pa-)aIpZ;euBy0`rPYM%mx=cPF&fy^B?~q zZsdmpHsZO~dw&%3GDeZ{6NMf(h<&l=2>)2WCh6!VC}V-+Wri&o77F{wW91}n%uLkIF&ZSm3xppX{qS_aEmoPn(^-eJ_ZZ^S3M+y^q|84^KdD79(zK z0GQt&aSw|4u|A)sB(CC*u|fRvD*e87Wrl>}=TCE@Pe2vVotd~1AM)1uh^zI%`5`Y? zoPOVG=zsdGPxiCDc6cYa%KqL6;zoQ%eHAa=gt)Q(jQLSK-*DpI2BwM>8E*7X@dZbv z-l&h_3vX-x9KW%DC?2myYVq?9jQ^|mi5v5Qe0gi)Du1rO@vb~&KiwcV?=V7h&xv>& zq|$$MRQgBzd;cVE)DL;53P?8ylo@@a^}-MSxg< zlhfRM_Zc@InY)B@fX+80t`<1QkN(@XC+;CNh2kzs75}=i+CDb`>+|b5;%Wgf#|>ub zLv7!#Pn_#*(IAX(O;^qB@!uIvTrD6w|8z2OBR{l1dWyEs3j}$ynk9vO?0-~KH-B%I z3jq0-<%lc$TtDPVD`?LBLmq2| z^pEiuI3)ce4?pGBcZ~Cn$Pe{dGZHuQ!}<)XBsuDTs!!agFY;v}c>W)Cd^|s>KRche z>aU&e-KPC>{qX=%FiUAMA2^>?%F+!CDu3R8@BsQ-AI-f@K>YMY&ELR$b$t8WU$lSo zE#i*#^;KEos($Pr^@Cez`^<6u44FXO=$~1~B^jM!B|0C|GZ{?1f^Zej^ z;iJUWd~$zqeK))zIr?vztF6cn55V0b-2BH4lH>fY*y84o_Vy9;hyMR}khqZ_@`tbX z74=7+>P_NmzIlF-*Z%u+KYy+-@&*+LIPIUyGE~He`QNNa+?YSK|5e%%bOJ-q3e+bs zXdrLF5h4I=VAE2>jRlPQ?@wrMFTm+X(mn<_Gwf?&A9^yW0k-ILt+(@QD~WriRg=XPP__P# zA9_vP-+=MQyF}cW59IItN8GTFJX=%_@#}Dmf11Zt{@h>W1uy1u`cI#@jNsVc5_yR` z)_?ski5u~we#I@~#(W_E{JFG`@n0xkR^*5J_=AZn`k2q~5r~s^)7&cdhrFh$o#Y{=bpLjsD>JJvT8t zc0@A%rLF$&`dkG6wqn0`g)KZ57T;7}aI9tVR@FqW@nm~`!kSKff(IY_wY0Cr9eElG zJ=XG4RX6`BN^_nS)VJtJ+?XZgvwCUHy+D4kA8|Dc96$2cz9Oz>!Ol01(%e2P?dNFw z_V~xHBkqX*^BtPo?KeNKx!wNd*o~a^?~p-qTnlGEB<`qBq58yCeO^-E>BJrRZQZH; z+v9J0OzZ9WKYJ+sWBeDpwsEfYBU3bI`*^W&#rK+XeE4Dd-6O<3sY)_3-1xRct@V}{ zq#k*yKeSLm7L36GT>U&Oi+ka~TamW1U+~MZSJg(;7 z?!Uz|;%fcaztH-JOATD;>y3B|N4dIynmtn>E96d zr2hVhJZuzkV}6n68cW=$5As3lG`IUtbzXCO{NENo>WnW%H{y=^6!@CBBmVf4-1-*t zwBFvoC2NVR`tkf>{$Krk%#V-r$N5RLmbhbnM*T_Lu#ftUnf`R<_ii@g%D%n+`|}fb z)NlP8Zu^rzAnu57&xhJS_ZQ>8+)VrD`XTSRz|AjTbK5U=)2%;q%gr;E{Y&g$*x!u} zh^zd0J}~|&|0AyIYtL_DtK-i8b?dFUeg3}tU30c?+_uH%H@k=%{_*q2+t-O3@#B{{ zsS=(L^MO2R6V2H_e%2iI9dWh(IDY)HH2wF)4gXl*E$Q{^-0bt)CJS+8pZ%l0S03UX zQhyZl+w>fHwS9YiD^zy#njUxfZyM?5@6^=x?eQmSN?i5Np8vXEHRtt(`5*DP|7!;C zra9y<*1G+Fe^lGI$2Tt9SwBAhvJLIO`j+PQ`2JVota=te^y9G5!jMvA!BOGYKOwFr z$R1&uZ?)du;TpSigm(SEd$r!qcb7dURtUzQZSi?A;kZIpttYNJ%oRdjatCqGwfdu& zS1X=e)Owx})PH@0xKTgkQyyyjc73V%7eswg-z1@%rz}U@$Pcf^eAig(*+1@}%i0k) z;zz!4wAOQfkQbUxT-DERf7lYY{q<|LeV!k*KXSX9KR@TTpX0pN+vDqThq$VrosUa= zQS=AndpEu2_V};nbMv!rxcRqLi5vaFD`4&KUlSaUK#5ac7wZFg;p}c6|6}4te^LLi z32_x4=Z`#TQ_XpPkhkvS_W$W3xBkg;;;Mgk`=eL8`A@NLi1mZ<%}haD?SJkiQdi87@C*VjyYTNDc8Z(ohL;U7;G3)LmA^5;S$ z-_=IjXaC55ZR@rlarv%TD0nGr{Z-;d{gJQD^N-KjKk~x8hc{?(7ps&+aIAmTrNoW+a6WFFBCgg4_YdvYdZzWfevBIv)JLV~ zGm;5C=J(Ee;*S1z*`f8EAL{cyByPlyJpOYxf1ES9xO*G>-=`#T&$Yk*ARpLM>$yJ2 zuTIl??l1EAbBP=ML*8W(aU(zEsf(u&^Mia_1>#C?k1xYn&AGm)4{ISGnuRAKnOnPg z>t33BL5LUBsrhIkL&Bo3(0Z+_$GN85kK<21&FKl$?+r4^CoelzIZ7kZ53^w>xcT3 zJ*6IbrpcOf{>bC(C$2s!$ERmad5@cl`O}1I>C=iDqK&%Qh#NgbKDHfkBS+*{r)X}k zQSxb;+jCesm$;+Gw@Rn;{oCzttVUeLZ?Eyyx^8}@UAj0CN$K`?dXaA={danJm;PoP zQ;pM8hhlfNe1w}fA0;`C%Xh!%Q0=99kSe`j3O*cQdXZy%UeyBO; zhdg6D;vP~?VxCSc9pv`kaDnD*9}ky{juAIT0r~XI8N?_fk6VPeF{;RW-)ZcuPmknH zgn!IGS7zeIs3CuzmAK&_dH2_}-d_I}{oVRnBiuZEfwYf@o1?!FSN-#XjCo~k!X9ZK z^|5m{_3OiW%a@wtn`W5ljBozy z#8rIu{GR4<>nr5f+^+wufZP7c!J6~_fb(_z;v8puW9}38T>JYI*1yv?Kl=IG>o;`; zan)b1i7~HR7P(B^u#fxiir7C1`*=E6x&Ayc-?%?LX-eFf59EE0uMqyx{*oKSy+eaa zBIa#k-=_aX%s<-Cosqc1|KBr-tNFI~cin8Q=lWs&-(R>&W}(O@m7oZKz=8`<~(1>ABW)W-ypri|L-1G^Wzm!JdjYGj%SH*>wm7K z^;|!UuU;R`?e-ro*4(at*kwBXwLB? z|KDul%0JH++W#&7THikFksmBZT=mBu-|HobtNz&SSExbU$lrL)iR$0vMw;90PZ&+y zs4vD>e3o0kXSQ4aqQp8eU-)sXVkP2+|7~!e`?!xKNBzMS`j zI7`M={`V?r1$Xg}_G!*tK>h9WnsXG$|F>_apCxwz`O?I@ocw4~;%Z8G%2EG!ez$)6 z8RBY6*gxjiw)Ae{A9?qAyXmp6(T}u5UU&iNja?jhM~@p*j(p5k;*R)!d#d%EKk8e2 zM30O#?Bl&Iw+kE+^+SF6mim#5Y~OfVhgwBHe5pCtZ%3*>p49lFV6e+~s&`iS$D>r0 z4w9q)e?}8GRsrfy)}luuI{N=-YyHSXdwpsbdLi`ae_>7H%D;VnTa=0QvIoMc`n*~% zo!~g1Rg2{jk7L7Krfa)A-UHo?*EQi^Z0)Npa0hT7e!D+$RUys*d5?f|g^f|kcuD9L=QzY;zK^Lw0`I!$B#Vz zC-R|+#`A!b{a8J;efE!h?hws6f8=w9y6sOKL0r|xOF}%4NcpcDJQUK-dwffJRX=-t z4gc1h^T!pK?y2_A@o&Eryl+hT&z4d@RFeH8pWmFg^6&GSf71(Po(KIs(uKH@-*(_V zr)&EhKk`?8BJP=1P9npRUw^wAKbyChc%UTikogM}H}XgRLnLvPAIFdU{^6=V z=lGD9`Nz%cC9LNA=lD^-EDv$zpY7ujM_jEB&L1z^hkaN_=#l4JOWcSb&r@4JAa2Yr^3k!P zM17D?s88I8A9+|);)Z{`TlrplX&?EY9o&52Y-u0A79Dg}bFLr$J|JPvx*|UO+T>bp z;wnEciO6u|_o@>&>WA^KttsszpZuxj93S!$SG9dRFIT3Xh##*5)}BOM#n0;l=VL*s z51st-w8qZ)%Qc6%(OHRMEcp78tM2>Ua})EMfbGYL8xf%WzSoGW z3bP)0m&5-#EA&^!2f{yAXjC=gYC_mP^3v5cw|C%{$5nhhVW=Nhp_q6g9d;nwca;Ul z&mdhlMfy+lbPYezTVKd-Q3@I<;7dx;zU z!Ovh7o=a{#)?Lld`qbUU6A8D$m4=>`i5vAt`!8xpJ@Q}rN{;m@a75eZ{vp5pgt(C( zUMUSr-$V2VdEt$cWB+q+BW~D7o*`jRColNrc+o$cpA7qmtNL+%$PYavuKe5Qb56Vo z;)#f;@1BdE=&9DXXC&s8?t|GU`S#gAuK(t>CyV|f4?8qD9$hJli1aQN1#fM{ze@1d z6j3GIC*P~Cxjl-q9f^BLl`3WyokmGLcB$SEQja|063y*Zo_d0~s-nG1t*^NGwXpBR zD#b2sE=OGD$NsT?rQ6Po7ZEoi`ce{(@y3}mg#qM~cM~_p442XTr?W(Xu|RRM&K6^U z3FOR9+$a$05B@;hv5Xqbaq~_qw10bpHm@SC3dmz__%EL=R;;SwXA<&fOn-ok0aSd{ zJ4t-b4K_{$6^}P7ssC6Awr_mlsrZ8ODa2zV(0;K`h#UDM|7Z?z)gR8!I1DKJ)9R)b z_Kg!c#V0)`uI#fOOENBxKjT7~;+GOk7aZ&JbO}9n%ZLxx-}tq}jrfq? z9`J*hFN}ZdK;o+Y+#lovW)e5-BmZN$=G;H@-)84LVISA;uoUx!eVm^c`xcA%vAiuH^6 zzw`Y`5g+DP?c>v8ez8B3$4QR;pBwv($PerD>(O(xe@EX)i1GJIa9+fR>-%ID&AEQa zXTL$*s4wzv^{xo}7=Pgpi5v5YeD2mezTV!y71QXw@y7c9zrxM}Fshtu!$5I&cXy{a zr3_GLv6f=R-C1C9cXxMpEAHCj?pi2N+!ogbzLVspByY3%cE7*-&ph|odrmTUX70@3 z<4@^nzqR<7U)_xQ@51B$)Vrq6FD-01XKkwM>}fEcj~spCXrEue$M5}&EBgoTZ`uE% zpM~e#JioUG=sz2e^D%an&M|(iYm$rk#rezoTymC#mk0Xq6PQB#{0H`@^1`%E{lXr3 z#!Xo?d))ty_-EDh!S$1)K5=C}aDGn=$*FOSA9I+UFYK8|`+N!7=Uz+P5`XQ+hF1H1 z8|X*1mHEW^tKmtXA5r|{{#vMJ2JM0jobOvph%5e4-|kC^EB=w64kpgmub4m7|I|I* z9`(OGJ+l@cAAeTOC9e2K9 zD6+3(Z(g9!%lc9STz@V}#{~C2AO}i<$jgPzkfhA2E-26$WS=`y6@bK#gM_ z@x~EX1{L|4kilA=xYGqblU(dX$RoWcuJi%(i~3XA3muV%Bp;&XhjVx!(m1V;IA_)3 z61S{_5h!Nu>)Y*z%qGtD6ZK<$l^>7S<{bUcTs=k0AM3w=pDs=3{>4Us_EXNU z(dxtgZ9cq7(+}sTM)W|$@{ETa zd!a9`<6+r?wEC4xWBEGt@gS~jp!3BlE$(Ao#jHb_~`#o^CwRJqCR}3 zX3pfNj(?#K?!&{^Ja;~cme|Y1{`I8KQPF=~o}MoD%oXQ(^U>E@zp&p&%6-uE!1eNV z&R4Bo)N|!r;>tWAPrXRmi+YjI4wYQ!jq4%l{jc=P$Rm8b#JP>eF{Jam7DA^1l5V)8S$waiX6uPoQz^Pw)4{ z6@9V(bBPja@z3V}`q4A!ZTNG`fkhL!x#H4K(}({fPm*y~+g3@edBVNnFF!l~-6(_e zX0+%8`ac>glja{gwdpxsPR1)0lYmOB&0bjJ_$>Hofx>R|Dn&$zJIcPV)C^ z#QEMT@<;yiehKZ(dhF!))AzIG;qZ(vWY??6){bByOe-l^g$M`p{bx+hF)-LU4qRXYZ|*h$&3D)K4n`Q}FQ{ zqH!!Sa5-^aqL3I<9Cna6FVVaNKU5s4`Nz|dz5yfMT>Q+&lYYg;pZ=vY9OaF7C0?_P z^u}_c%+Z_|URhGwCv7?3om+B|ukyw;=WQ#*&|WxQ#y%pEcL{s&;k?$Dgc?^yf^%Q@ zMA{3tXn(&xab+Yh{-LIloAVnzQ1`FA@z3M;IhKsQupK@R=)e3~dgEDHQfPnr8gaH; zyTltG%9Rh?|F(Ga#xu7U`6<_raXzS&&e4DQfy8tXt{fhi4wfLBS?4mif{wOC$yuKCTT*OEIvLx9n`Y2BqxP8p}#F;5C!pj5aH(oGt zp+7az%LC`9^e5dOxhq~SZT^uDyhPkGe?RUJSMtaCxw}2LW{>j`kRgu~U-TE_NB^5R z_s^1uxIR}LC$8v&@z32PuFMbefaH0t_MYj8D_c6+yFBwoa^<8AhBg`c*ONWbVE@qf zQ_xc?e|kNMJ;7rC_45Do>MTxKmk%u?_WMprE*@2s%d7Y* z>k}%um_qcQV9|IjK2GtJ%@Z}QT%N`K|Fea-(jVkoKM+@@82QnErGJq>@=P%&Iq}WB zS{&k*_(`%8S5`UtKbu?n7y2TPQ%>58`9=PEiEfYmnH(tXh5pEWLWy&I%sfFVx;#V4 zAMHPsC9cd5^21f6z1e^B_R`+GJ{Nbg+s7Ut?alKUuv*%S{$YMWJBTauf&ATR>ECSs z`2umJ|7hR&j-5yOWam#KPl-fVkEnTeGk~mkvJcS`) zQ?)64TK>4p%wk;W0-j53n?YRZGV)$? zb^plUGj8#pc&F|k^Do@)f>uBBHQv{>`mn!CTk0I`Z>%A%YB(%R;z|Q*@ByJHQ z^?c%%Mc`ZLmUR*NwYja?V}A9!OKz?|c0c003Fbu*d6B#l$K0gMizPSf=YEN}MZYXJ zBsa$&^UUu5*Bjy%efz#8uIP*UtobVAoApV1_ny^0#^ndv5aS}r{3Nb+B?O*I)Myc3 zyOIU%$M#O7aa?4N=Md-m3jJ`CIJA&B*GJTcn^e{1(!b~*+V|Q*oa<+{@3d9gi}^tR z1$Glx`j6amUt+C3?9Z~WPLN-RZ6MFNBu@lCa%ms`mb`CxS}7P z>U2qx%4$F3eQJ$k{MK3WT6yr{LQehW{c6Xn9x?>U-^~&&Lf-e3-M+Iw{ce+`g>M_k z--R(R@mGy+MW&bI{_{M%%ItfZ0=UGQ%_q*6nAk#*PdiCm$q#vsjGeFCBZc{@trcE+!QFGbEgw?Y}V2;|u-KzCu+yZxPPT z{zrY3_JS*KL-6{?MWJu4SL#>Z66buR8*ygJ5AyOrUL+-PzD0@pmDkX@z5khS+7^NO z);dev(!bF~1C2^%cI6pnkNG|eI z-lGun6_qX~RqDgn?5p=D&h-=anBSHWF|`W{u)a6@iL>W1PJi$eYkSeyn!WNiF3+!4 zQ{qbh@ipai^N1_?2f=$1W6lv*^utrIj+x>(@x^>7?*Z}nExaTb^RHac!1>4K#FhMT zzSvS4TKg>Vi9&z43 zQ6K7?&@HXzALD1wlgY}{RF@YsoAo(0I-AxXj6b7NF>8La=MY!=hx&gwTh6f;@zMX? zd`-3ajnJP>#JPWS|JQobrLxNW0nK!FYzwz%djpP24tNd^+KJG6EY7tlbBac2%x5xTilk`h)kw;sgbIiZZGU7`A(EjOi z;{5TKi4^fER^Am3=b!kB$g8X)uIP*Yd%q-Z=}+Vu(=~lC|K`5aqqyR*cN6K&M0Q=K zd_f%#+!8>Jcpy;-@}I3_AoHMSY;ETg8CQfv|GWQ>eYSBjKe5rEeU60mHRFnq$de@@ zt_%|L=6Q(o{LKF6H?sTp?mpAePw0b~W+1af!H6 zAM!Ofq<_(0UW25%gQJQp*oFlBv^IY5wsa;0go}+9H!`2SWUtIO^6Q_sIQ5(D%ermV z`j7S}N)cE3i+o&lJ73+LIA7mFKeP{>L7ex8?Pl7SJMsA#vQyd%eQ`cEY^JX<=JgAX zCxRZkiSzho9`J>@QXkG|*M?#jT+s))uj{6!5Ar7+h%5CY&oGua&(9pcdw%%^y<$Fa zeeUf<+)`h!BM7aA&m z_tN}h{~IvQ^%wJxyd~p2zF6PLk5rdm4=C($J_at9T-c*NPqx+5>cjQveTcYHAMybg zb&mVH?+kgpt~q|uTmhPY%+F^Kam)Jfe%Zp&&#X`Se~4T381EDz$A_1(8k zdo4eFp{o2s;!1qf@6dVO9_#;p&7z2zI`1g@#6i8gj5BY=##CiQ9KjcGt_t*5n{(Q~0*x{mo*q>=%matF0&_&Sn zRD!OD{_`0qTAzw6Yt5x={cZe%viN##KN1TtnNEUhRqT8(T9~C36_{aQC z`q_Cv7oDS6U549v_dw#7W!t*_PAxxd_NTGLxxE-m%)iia$<6wNF>V>_ERl9;`C)uN z;`CX1SNI!Pc)%8Sa-gg$+*gWvNG{Hck^iVjoF^#O4f4l3_i6%R1ALAWR|GRgE*Ju`jiA=#L?+8aPhgE?G(t(tm^j<^JdXmi|S5(Y|!4c-H#o zRVL2sH`iCSq2$89vM=-ay;@2x>O-EOpB`W7FSpM<$8JAh32|lq(Epm<(%zh3_kF|_ zebIjNF}we5w}`XSxJcU9n)Cd}ztlPEKPeJj)Sgfaf|+`O6VN(&sS0U7xRI< zUM1qZesg~!4YJ#(9x1uVAN@}sEx9><+@<#T-&Ydn^_%-wW`mvkUnI`^W4531m^jzp zT>t$v2{iq&zWZs3EB!-0J&WY#`r}u!``_tnx6f3MxTSxyS`b&}6W3Q*8{I$hR6TWj zQY6x-5d@c)>+-yJbDRCt~^j|zOU1Q0g*CeB} zY5Hbo`tT9Gk3g5^(*^qM!=KtWF!PbT=uRezOXaCP=YeI3Dm72TKICzBNPDyYN*5&; zBZ2u%cuAb=BU*~QbEL%DNT5C~W9uA8@(1JGzle`~Pg0$u|C7lj7x^Jin~JzHAIQ(9 zmR#tAe9eu;PJM#oLq^J9#FhRdACzZ_Rv+?CYl-vxgnz6*a2s)@zsTzy(>dl}I#lPl zV!{6&8w#Gfba#e5@AxsEt<%|(j1{-2)I?Q#BBdM(qo zJe=QlEs1me#ZxZS@8uH7#e89Y6Ibc}kT)b4nuR2Bk`J3JTUE}52{Gz@4S>l%Y z>(yX|!$p7aly+Lxi`smlKE)al=lY2LpncBXm$d$%{s)HGd2qbTnt!yvAM-!2Ddqcf zeDAsauFZ-qT|GQe6c=|hh3NULVxVvk@vUhn%+O(+kpA| zcfMoIuWvu%%6wz|EXRl|`XEn#!|uOXsGYA&6Qb>3=zn}U;>!MnyhasiZ=TP@t?l;H z7Zd08oBNY)Ye;0e=7LU^=p2ciFv)8!Fp(&`Wg=!rbEDkV76RIj%t_pmNZ;0yn>UIs z`z1HWUv){3j|;I>FE{NyKjpPAz7cc@BF-CO7P@Z{x_FnR#*5J2bLRGgcIh1B55J{f z{HuHc3AZmDCb_x(I8Sx|sPBsUv7GNWi|b;a!WaKz-)x3k{=2qxq%v~ItJX{Cc#6h; zqtkTOd^S@O`i0m(zng-|Ok0%HaY5hB%04WC4~sQ3CD*!v%ewq2$;GyWIqtYXoG)85 zANzy2(k-+vo{TOv< z)1k{Ys3w@Ax?IZn* z{PAJo!Du^AK10SA{&Bt%E|Kxg`UD5r`Rq!mG<}qhD)7~uWmgtWU(EkN=3LtR;Q~67 zp|oQ!<`eaqe#Jw(LIUkyZ1L7O?snVn5Lfz(^W*WaZm(SG%Imv2)kpJ>`cAq^Tv=Z@ zAF=Kd=kssYzd7SderW%AWOc{Cc|O`qC$9L%{BF)6uJ}iOcE0p4^hZ8CL#-(M8>RmH z0n>eEElmP!QHR9=+7^a<;g5z+31W#MPvX{CD*;>BI~Q>-fv`tDI zTH1>d#1Xk2NxzyMdFGVzYIxBfB`7`B3 zxMuzKFwXTgFY#-{T~S=&Un+_I-B*!4*I(#^58?hhR@ z%+a<$)Tcy2;ygbwUl{+d-Sag4(7r3Uet$ANLt?1?QwpB zJ`m^mi}i#356D6n5i9xO{@OAJajuWBNB<+1Z+D(UMCacw#-4}Z8eE=#m(~NE(Z>n) zY8opSQt=rX>pG&Qv?-hC5sMFZ5xv(9l%1N7giH*sz+dW3vm z^OIWs=)dJ*$%Q@gty#`$`QePLiFH}yXdgF$oj;#QTv;P%@0v!O&yZMy$TP3Krp3qn z0)mJuGlcx-E#k@=L;beLxuNNcr`d=8CeHIW&uCzwJ6e5sn(RH}P83&s_Qj)gDH{LJ zpP$0STB|H0UrH^=yZs;DQ;WMb4|@Z+Sf}|%gIliZ{qw^cSi`q|d8g~NruXdleD zGT+Fnb++??j9cd8IOED*i~iU5llJT&?d$e=f5!|V&L3;c`6pVb`^WwcV_c~(Tp#wE z?mWVa)p~^RBOD&G=07|*eC*0DPKKfaTmg;V{H0AW`VWiQ)lpFFAXq^_lWy$2hVaWT zafP(((oIuH+3k6K6?+g@RtVbfSS#&Cd|W|wBlXY}#Qb(f>99CcH2kw4mx3MI}vVD|s%0dYk? zKYz1UKiWUtOI(SM+!bo)8$7mX`eXkp9NnkohZElI zmgMI7iJy4C<{#&)N=C_rz4Dxd*Waoxab^BcpI=vxYV(CF%;zm}-ap|V`H=+2wE9p# z_uD6}E3{jf&T)NJJ#tFx5Awf{5$E-Z`9nVDCUIr{kk`INoIj^F&-ct2r?vdCKCjHg z75~Uz3@2`xuV#UE{_?5af40|>i~KSE)1>FL{O~dSOeW%remK8j6^S#~yh!bBDL!9) zyUMEp#QMhgDc!DX_2c}v$RW9~$N9SJPF&F!^G`I5-tAX7KEl+g8sc!)1nsRop8wyS ziCg-UW18gV`UWj0&h<0z_FOMSpRB?XaIXuires zg&q-C>O=d}zVaKiM1I)6?&pas_Q;#NJ=5aj{1lE)oX?NY2kZNqMB1D6y*=%PHh(xj zyH63f=)XEHeM1({-&|kCsIMIV=J-BIh%5SH{qH;_H{1X7O8Pg~pXjxnHyaQ`dyb0n zYi=UW>odo%&A281yYuK9rZ^Y&xW1xoBhC;HqWxSoUq8i8N-pLP`=9d;ah{*xxV|gA zBhKeT#7FzFj4SyePq-zc_8cAaU!5$c79aI1mR@qReygiU&XS0@e>{HR|f9qr~jpO;})V5VM{V;y=JM^|9@4v_o<4?*^ z&EaCcasOQt&V_!+Zx$wdrT;h|Lq^xo>PP)Dw5;RQC-Osk-(Hf7{$lMF~2g6hHD(- z-x^O`S)XXX?e-{*qdx8HPS!Zud(0qing1q>h%5ca{=BHBe?t!Tx9!ZCnt!Zs{*BFA ze(3-AGve(0kKVXqm)#&wm{osG9_v3@O@B=udBZxymHLtQXeRB&d}98I`bm2+-^i0s zCa%l}>a!w*-V@;SE7l+O=PBb#e#i&cqxTDx{@{Gy>PMX0i}^?UeQ)eMbdvmH4`Gk` zx12&;S%1i9O_%mUKjf+J5m)j@{c}VGqx51JGi6|aV5h` zG2$F7o3I=E=sZ6I7%`5xGGUlO@#gUy{}DQLh`oxQJ-wUwNhn^1_7OqOQ{AH94N@j_ zN!NX0mtw?a@j2i1P5<2?&poJm}nFyt*4+j-d_;!6H#e<5CDC%%|4FiSYgj|HxCj6Ibd(p0kzRKJ8!fw@S?ZFOMRwtWWgcJ=h-qL$qm*z1e^C z0OCAv)`px{{apKB+p#9zHnjBeJ&CQtJqopFo_Y&UNAfNq7 za-l!+$Ulkm{+Z*u8mzbSWF3g}{Fn&ZCl$Cp&!-aSBW(8Hb2@QL{lTB5e~~}xo7I1V z)<2xjE8}&J^&eYFoaZOz7yS?1PF&F+dBS)btxJ4%O36ikaK3&OB(BUK=D)F=ou6x9 z_ur+rK4*he<;pX~w9Js8_53bL@<6Lp#3wz|>yu-Bo zF#m*Z&#nG%B_XcNANt?=<(<`kp~&f-7ctHA+sB4)W#?Cfm zozJ~Soa=A4pPZg9RI}7KVp|T4D=$&-`KlX4T=9?d8LxXDjpO?5HjTJ4f5=nrmR#hI zy!k%jJb$4-@Rzvx?-^>O*~(_0u`p51yoR+i&_pJ>E64D?0lfXIJ=F5n>KCPje&!i3d!62hXNV7a#K-6%0ratMuCd5pc_Egs(N;}}^ED!71o^^d#1;R@ zQ;xR#f99*d5s&so{3I9pA+H$DMg7RvH6nYSpSix~O{9PE90KjX^dzq6ue^}U^+`Td z`WN{j|FJ~p=>OtT$<6ttcw^_;+RF79^ROdLKzvkF^pzkvR9kVy6KAe@5bdWl z`1HX>Zmq&oO)aY^Ut@mo5?K^_%^7c}<)xeOFvB7yp+&z(C(j8?ll& z8TCtk@X_vDG2%Rum^9>f8c2JgB=V?#Nqf;L6~=^g)p zz@rN3yO@d|NXpE!K%CE) zu*XNLz%G&t{m}m3p3=YIXy3oTJLAk=&eLtFw0A;v8|VzuCUXW#Y>GV1A#zNPBbs`BFT$ z>a(aAam##!GS2&Ju780$aZCP@yzG3~2I7|fy**~lb*HxF!EqA;c~D`$nNl z<}La(Pb0aQFWmnQ=8#oz@j>*O!;!&if6`M$H( zf3^d0rGCu6eNW;%e=&c^8}+u^9}ATB=J^UZK-|)w3dbcE_2K&1b6IksKk`9uBsbgd z{YsqIXXZ!Kzqj(Hd5H7;&Gy4f*|}F$;uigbYwPh*|21u-e^Ed37`>!_bAE0si8I8L zi1_^B^dV_)*7xx%JwECmQsM-h#v}^`$K? zxw*dEqwM~V&5-uy{QdS4=lwP3x9k{k%lsESBkj%lb-y6FIsaC_h+FEf9POhv-#9-h zV-mN_XS5W=mHg4ZM+xcQT>p^LlAHCLQkl3V|I_}`-t7NPcj8KZI6u9{5$E-p_5HnA zaWv7i6CMDDBPhFMlG=5Emih`cB~XN$W4_ z(=7>cuAe#ovB~WAGqMop@r6B}|GMWV&g&Qb$5;BZ7L@jaqkTIsX)p9c?p=d8&tK?+ zyo;aoZ?>Q2FYV3wN3CzS|JqO5i}<)cq7Ejm)Q>#VaA_~czxEO5^@(?aQ2!{w#4Y`4cux8^+aGx#xw$`2K1%;) zejx2iTBam2ZPX8Yz7h+FdOJyW;G^)-4f zaZCQIkJ-7$8R_4g|J}!uo9A!LSK>T>vwf@|c0R}Vi?#kUEr@gd%<(TWZqe^xH{!PW ze_*#C{6*TE>+2Nxs}tWmKdqAz=lKhJT;I1c5@(1P5pjQ?R9@PP`9b^p{=|8GX8-Ry zNiOVh|MBQ;=TQgQ`MQzBmHwdryyJ)~^MUzSSwNiEFZ4s6HCT_2eB&AE-)ukOlC(GT zk9X|$Wj;xJv;K*reY4h=D+nQiPAqiC}R8-Go^pCKJK%KTkK>l*2olglOuJjk}za%fIeIygF^m$s0xKcmzcqQ!iajFux)R(`yw>~M0~W5k*SiV5AtdUi7WQF|IK}#r}XiF=xn=-6o@hr%BGIp_de&S4EzEmQ9=A}#3ej3O8N3|txS!Ibk5Ldc@_LBza{;>;9M-u0& z#5|=-zDavArD%VpY5yp$SnOBq`2XaOwBTV4*7vu{^giW4hnp8eXe#0s8Bb=i^O+^2 ze{-3mDiG%~m>1iHR+5XwfNdU8f1{J1@Q-605_^-@CgfWSNN!$?7b@9#t(o+FzS@}bSoTJ>!k z?YxygZ$VsHX86&j1HFm!`4IUl-|xmRn_E0t+6(>hqZy5#U(x!5>tjd1s~X4pw#*`~ z#7ADJ?rkfN((i%B@x{LH@g8dWAm5*axH4bJH>T4$>bHq;C4c0Jn(6VezQkR1d*tuG zNG|lp%XTmH3)AKgPbR7!d8Fls{?i;K&ga)WpZ5ZvX!gptGw}Hc&H7B!597yi5oe>t zgG78Xv+f3QML(RMB0XPNdEG6CzvYo%Y5p<4 z1DT0i@?YwybKGCLRwi!QKgx~J4UsY1LBH4$g{W9IqI9a2XUUi$Pec~q(5;!Ut)gI|LB3lmH9xvw(}3izp%&k zabsL=H<7JjH_&1^rc%@z7CCHisfaD~uA*&*b?l0n9GkDUy}YQj#I+eKWN6jY$) z8RE*MAun3FAM%ZhrM=mItW}bm{g=B+T+tW(_pY7J%8NE4 zuFMD8_xL~jdq=zdhWmlU*wPc>N(=Pevu#Ydsk(AF$l=#Jg~=q z9V3HQAKE93N1Vqu=XbUoabCZOj~lgXlH}(6*KW+}=wtSu=}LAdKf!S$$&w|9mLHy0 zmfIn@h>!VwI!j#X4?a+pjGae|kM;q13OV&Nk+iSf<)@tsy@@OHhxQr!66f)SJ?ft| zQ4vjF~!}f#Q91R_V@x&#x=xQlX#L5pFE`grrTruBzwwR?F*mvbmEJZfc^bZ z*X8IV^hbTdx>mGKTAK-y3;&p3yZe>2m4fjTydtiw1nlpUES0sDjyzps$whp8fo#hm z;=KQ2B_O}WxS~Ju4l%qmeUPv5C9dR;PY%mY2ypC0ez-oG1QJ*5QNKy`8)@;e{uX12 z^Z61_a8ch$LCv-K!~Ra)-q{*|W%6#?{9t~0-DYX_IR8UD=34C!dlFaHC;ET0N!pA4 zq5qew1FiO@*6z{tLwy2koOZa`fBR;{xxS)*nBVnQ#QFS)^@DuT^;pqtkEDM6Qbn`X zAMI!ctNor6#4Y-5yJokq{6^ZF^Iw}ZqZ8j;e~h%mmGy=7m-;{abSddy=#TbeE7EF!j&9d9?nJ>9npTdE}x&G$- ze2+_ebNt&UrM=mIq|0{u%unt7_D|w0G#5FdzPB@F(&h)(w_hðE2I?^R6No9i!M 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 y7? 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

    0g&Z89v$pRyf28*Mc%xSPNr z2~iJBPi|jz!t=095}wsOSVBm-Z|*2--mRX^5+YCA_R;0zc0xToEAxxC+Ixu($Z#}DL`|^^?>1kXi>(LeY9M(5IIQQ|L1_yGIt!DLSFPIN` zs=$=LOiztG^!%+5_`m=6-zAcqb^9OnXcyLT%G9)d$i%Imn)-J7aT7#sh3-Qm(3miU z9^0Y`X|{&U79KS;$U-vXGzP3Fp^ZjO+t(sdhxV(Y2{Td}Ixq52X-FV@UXYHY|Ch|C z8YX=+(x@p;e7dPZ{KWBXA4L={$ac+V zm}$!-ep;>mwAPuWF;94e88jh-QaH0cA+g?;%rxN{W?C}$)75$YSq3|k%rg;hW;|Fz zi9>oKW_+`R^!&JIIr!zYV@Ly?f}Xi5hR)h~VF|%W&x|~3D-e^lSwjA_4f(u02TKSJ zdFRbu@$L4^x|woc=7S}yK>@bMRhf2=i?HeiXLx3mLw^&E%WkW5?v?ez64F~`7&AE3 zH^*3tC0sad%xC=&$i+&>`~FM)93FX!B{a?pO9<6DTr)VonvM0iiX~h)FEKPVvLEtr zEq5PL`-y;s^JdS3C1k$Tes~{IxsS5v?u8{J1wQOqIMLIDUx#cjEFph5?3t~KOEUV_ zV<|^uU9rR7?PsurjEj?BF?tIpY~Y0@#OQ`=28Vk6a5;&IoOgK$uZI0lD_uIVJjD`v zTrVu4I$nL?{85?MV~6{eAbJzo*it1u>JIZ^%w!$voYjMhm({SUdz7Iz?I{gTjGBp%X4|qVr>@crf{=bVM0b@Dvow{$ z@c>N_o>Z(R?L!*YXL+p!v!gLxw7N?(4VmPR?uf31-U*x~%{|IckMbU4`VncmzWfBIt1gBs*EG0B4pGOV0pd6qbB z&L30W`F&pN%(>#}Mbc}r6e>w(oEK`4MsdR}bJ>xnKV;07Cju9_B$>`JNuwU^VLM#p zL5`Og<>-V~a$;^26(n;JYTdQgMZ{d20QZN}eLq+nf{ z8a(3=T8(i*5Y>(Jg|j0UUBADNYfyudhf8#!pG^&t4QPWt>xa-P<@qMP(z%%>kUV2& zMQE)4A`r3F0AfAX;&@k61b z+8RB~W(co9!>$3MCP_QHr@w66I$C!H&pKjLPaV-qEvagXc>>f?#~FxlYXWhQiz!ci znIpUy4d6Q`D)3?J;BAk8}HJTVEYnEt{#qi#&rHL>_?35m}xx18d#f z;0^ZoMLaGV@qIs9Vc|>< zUT~&S!+}t6w+B|inpJIj@Pab}5Sp8^-N$U#R_o~_$hwbf5QGYc$ok5ry>(RTZQ(fn zI5armj`Hx+T+`IEJzLL}y7jnB5FVNMpMxOe0v=Rw`Fra&2trwUt+AsMVh}lB>aiTh z-ewRi4|2ZXjPQf|eUTtyICwl{*1V#p~EF9rm20T;h@^+pi>B!M-?#YigU*Q<)k zC2)FNl>6MrMK*NeU}d|$4qfelTK(CjpYsBfR);|NvznwOgdA-f5QO(D(6s13JRudN zLl&B-L;H(FlOcp(=IQ3GUUhAMBw7sNhrjQz3eqEn#=(x`XQgR9wBiUoG;@R>IK7dP z(;heko|xmFrz*u+IBnC%Lx;MyZ&kB}sR4P+cd&%&(k=}h*BIN)#39w%`%fiZ`VvFi zG^dd_O%rjYKy>+_P=SH1k3;LkS1(gGI*M{R7D6;~ImGT;Tf|odbf8hyx;^B9-%~OC zp6yt0gfnmQ5N{12n(I{9;#n%P(1SEtcv&3;ECYyRSyi_D+v~OH!uGZ5*M1$@U<+yM zPn|+eedP)aiJ*6wVbMI5qsJdm(E3z?hsQ;Db%z-S{SR?#=gbz&j?(CCe}@@VAxCJA z^pOZ8{>zf)CEuZo-D$_V zBhdMdb{WMI8i$ao#5sitbm5;k6eLAKqgu8<+m~6wvnw1dA?o3lK&>lJR+KA{EqRk? zTCxhJ;+#qwy^!Z6+z{oJ`k{p7E5b}QY=3lamhik)43qxy~6k&srO!M|YU zB7*?=xiiOoX~n`VqVNJVTr=lPTH$PWj869`O%)zbJL=Y+0?`w!OX_;B>eRF~L^P$5 zU2ukT=1@m8C=GcqwWS*8g)CIF_94zs(&L)2UJ7d0zE-<#F5Sf$Y$3@Ftfcs+g|lNR z?XSZ5P;&>EEbbu>wX5VNkiqJy%1C3HEIi{3u8;!Z-=yoM9;>9dLaT~c3V9A)XxWa3 zIdftmE0HLYY)NwuGHB8>2E`I>VLYfx1ud9+kUtE8EOYTy2_!aV~0FEW?idt;cRcOzU-Rv!+W5=)L(kSP~5WjEp=*ttdT%UT0R9& zYSTVo)QT-kCwM~n>+58(^$r+H{VGECpn@hO9x9mgdcapr9K1>>xoAR9mTAJ{wGwpt ziKC8ukMYzQW#P0bpKt9PAy%hdjj+S{}26XLmYSLcNYc z(Y$b$3^8?P36E=Qkc4!j)Wg_<@pP448`31XhEKC;LdSvq#jhzg6g#^n6ohtR!~ns(A_2suk>w0GAnq&8OF@6u2*^( z*7`Ov-;A03P%JJ*2VL#waRn>*$E@I49(4MF(`=sYw~`wR^Cf0hTk?TJ>bzo9k1JR~ zm4ivoN8hXz(Faa+b0nv-gFC$|e8(B2;J2RH?Mvd8r^o_Z;TtK4ke~9!*%`){iN{^L&l_ zf-O(Zdt`rDGjH;I*fTUq?d{f2#CO>G3(g<}OP+S}o})^WEX=m&^SB7Gh8_MU@43%z zRDxjx3-isM39vqJxR|ondk})^#eSc!K?r{Tp|(Ms)8p5R5VSl5RKhv0cZ@FO;Q~Fc z?1JODPKR$o@VMnL#{&jUmpLyHvSr0Kvj%rIu6Iqtqn zIUZC+K?~+B(jXiNalj#liH)=zzDH#?@T}y)27ZI{)iil)hyQ-Gqi*ci$x?gvl!rJ& zvB%mh)S-QiQSI1YaE39{$e24Rd(%O{t!0a(&Rs*v4zL%#5T zdf)70rqoVx?F=2TS~oBJpPIB!7kY}bU+OTfS{~Z?t)ABi}s0071U~Iv>STRA>CroWv{xo(SF+^7t zPySDX(k0<%ITru7AYZJQ5qwC~^?;t8;{Uu%S^0NqraxBIba3GPu)ASQ{~c94**^{H zSHlO>8Jg{ZtJx!Pan5e+%(`?o$Hp zL&Kc?HcT;pR*jjzqiQDcr!i4<4~+e0#5`1Z-c>V+zk;bUEDt0%EfardY5vEEzamLV z6+e=BQ0D!PFq8I^G?ef1sii5}Z^676@nroPMk=-u*Q_nb7bBjeA253K4j5Zs1qKbH zj_fz(jku@uc8=P?PSX3XmjYg`+)HaP)}QD}xRh zFF3=DnN{_6-U^9q5gjt_Fq7^RjGoti^jbuRC40FW_&wP^N{XN#1=D8CCCY%b8Gq0c zP0uPh9+Sl!lO)7U!KlT@(N&5jr=)X@x>e2oTlg!i`&@gF$)L?!O zt!B{Dt^0xJp|R5q9f`1uSu38)R%GVy*b_=U+6N95J*k#p{`5$uMs~)T%pdCrKT`v< z5LLMCMb^~c`J~U|vQr>xDJolK%ZYH8cQ{I*MCaM6^Y|Kw8eHosuZNVgOY2lr7& zQvnOd`za3vYMgJMMOKd1i_Glb1!q_^^5})~zzNr8_V0o-4Eitk*7^x1&wH(sCC^Jn zjvAghuHQuTlEL#{^q(9MZzEQL^$_JJd}p>^6a zs7?FQvwE^$^{giC6NjrA`RyK~da}RZq&*`Ycj$`F?zyH#)RxWk-^Yg0dRCM6lm`$v z?f7>45WT8g@=OgaoU~`;fia25hv(10?0Hw4+!vg*XFWZ{U6GV$+p~)Dgma#+LH~gR z2^xMi_j~nZ7tYy!h_ymL+_(Svqgb0>n`+bkjLZDraa|}wnK)cEQZ)G3OwFD3V*>Du zGZ;WfAn5-pSg{>OnGaXTYFwv7lh~sWN0qi*Fx=vlNiIm6^Hj8_oj_~gsGD3YuPDh< z{2(8DEe4x-ca&M-Tp@ZUyBczfvN97FmkLL~O85uDG zFHHku<(U0Dhra629;2c;f_kNe4EouVZu;*6H26QY52VgSA9v)$mAowxlGeaJmU~C_ z?88$cUS*GZC$_UKoe99Bh6u67!01xN2J$Gk_`fxFap&s70q7qL%m|>f64PK>#{*yd7u`uEaV7x8}s9tb} zJ%ghc_+nf#Nz2ysA1A9rJs@>wb6ix!R{(F_mZM%cWzPTnm`J}WSQY0y^g}cEG8vC0 zs7YNJlKG5?_a}CtEFGOjKXLT7-D5IUwze?aoXqSwkG6iyb#nyDk$b7=FGV z2KnWOITL*BOf|oLRK?Hjo==+vzZ|i~Z`zbM30cG9*NLfEy=Un&SVg@5TR}c2endY6sW5(|-K= z@y)8YuQhty+xhLZX6_lN#qFb?+7GSr#Q|OJ~n^I!B#%O3(7g5(U%%%uW_Yr^@)(s5T(_~Fc99j1g=fzzQju3)I5mPLZ%@L}r zL@lS^JHm3BA@BuO|H{&Y%go4oX(G{NegEMo4&7 zFlY4)q7WcGl<*v(5Lf2hva!>(Z#)?xJ#fc-!5nfmIlg_4hU}Ofd>r*d&)JDXBh@-D zFB!Hm|6{7~V_fa4wRffc)C&;$cHv0pZQ1I^eqCH@&pvRtbWpZuoJvX?$7JDoTjWn`l571oU z5oR!jywbzw9Il6}`vGH9KIw*O$r&ek!|ez@wOaQ{{5Qw5(#>&qR)_Y1Lt3F$L@)Jd z@C{B|@)>8agba&J+pZ?S$!OJEHeAVduK2fyI4b_%0hC&_KT0-7cvLch)_|cVaaW-r zjqG?y^J2$?AY@QHw2;f8b{@l+AUsOLQXJAyuAdTA+Rc{J^x)})N-guWV-f?=LR44A z7?h{Y?BH3N5pVoq9J;h8?3o z-qG5JCADUM?AXlU`QSwJgCP(hZ(I~Y2wAfAgN18dop-E34PwX?NmM%C-&Q2;L7Eyo z?=(1>R1nL&PZ#T34YK1nb@-`uexP7^ylogW1$?w=l>x7B!9-X(2>FaMz5dtL zk9|p{=IdoKJ&L881=1#5AT*Z#QyHh0q}NstO|92!ntx5*mS)w9UFOmtRIS%Ouq4@D zSg9L<@GKVxdQvA;8ou;XsDUkg=_wIGKTyy-x9AHbr=2RZo zl9Ya0vE*P2ME`t!uBXBzL4&l_8iezQ%zc4KD(l4T-+6Y3oSxxunSdwK0%S+Tx`HR2 zoI!|SHVFGg9L;$H4nPmbyk8nUw$gUbTX6~Uhd1B0B)jbasgaep7?!_4!eXfd=R_7D z`|$C@jNh~puRz|D4M}M8Re2l_Vbgu&?%HCfnJ`a1Jtq8WdZ>w}edkt0Y~120q}dxv z*eva%J8QpW+5VQ-ykAkmXuk>T!{zrAeKwV5`p%9?cT}HQ=9z8wnmwQzoYy0>&w%XI z>Uzqt7Q>;%g5&Sqg$ZQEYpdA@(H1=FBK|SFrp#Z?O27+{-gft0YiC0ZR%EO zS&rw6jMLq*nAY= z5-kg{4{p!Ko*T2$ds{JR9@b;)w|t(5gu-)+le@s#KStYkm+OF z*>9W8+bFdfJ&NM;mMm?)7nJb1V(zK@U__qkV)CqA-{iYk4A#08!&WLbPyu>*#)n5rxxmg!mFi4 zCar&e`*O8Q7s_#~SO4^lLd>prD4&17$h)>dksx=y5F7;xrOBIVrP+vdv`}8GR~PIO z<+r+!E+5A;9f9%^FNn;k30;%-fxJduqxC42fWUx?rRv56QgUF@B+D zAyEh}%Q<>L*o3v|*=c4I^;)ZVU_@;MMaB9nE)?~+vO5t*y& zRjtyFs=e_jDl_f*A||R4ogBCtf`u#;3KT`N{{2|srsD`KT&C!bo>v81F`_SyX!4o<_k*A#IoOMOMu^rffl{F8^b{)~ z=s9WqZZD?iJV#U`#lcx^(I2@?&Yj&919)WNsH$gM^SFgpd~8ek_+D0FOThHvmmO9_&#VLUi{!5&j3NtZBozDG}G9IC_H4EDBQ>oTT{pLN4<-3JMGuJyp9b*S|I}g3!h$@!%h>CEtrm&E`n}TQ}g?X%(pER6eC@D6lFUe9g&gjCG(FmnU;l6X^#j#jx8ln_U59?+>+&( zKIF53LT)LRVA_tUwlj*Uwi*%f9IjvgzDE>9o8CQ>EN2fR;`IA*DmtX@^Vig(_z`7Wg)(G|Hn`tc%-VNA4LU`(}HH&Bpu6nYSMDUpSV=;#-Q{U%IUFy4-ej(uEHYxBowh>iqvnI_Y0Ee#`rl;1O4 zB%4)ZlI>!9#7mC}Q;4iWm4FEoUL4ygmQh>t2L-Q5&LD-6|MhH}U^{NLzf7>zkU;sN zt02#+40=r+%u6%JX)?W5D0*;^H=9ARGO9eMIyrG2os^fY0 z$ZVx{En$y{+Q&DPFki01{|lp$f-TDqA4vJ!wW~JfF{0lHt}k0J>SDf(kb~$8N|J24 z1f7+h6p#eUi}|W+TgUrV!ey}7(|UMK#@{%p)obT!=5>gF2T73M+?5;F+Uh^B2m?(T$hH0!5EP zRRnKYf@{;&PpyDs>VY;{fkMBHesE%;$n|=TUb!}If(HyKfq&H=vS7k^@un}rr13)L zWC=f;H^NvkCfm;2iMp0Q`h~K9lZbi`vQB~H?8C{2({?ama238SXnj2unsi5KT_$MJ7VUP*5~*i-!jR351cAykUBjb?@Dl#RH6&rJ1)g3?b8y#yMo`BiInNJCWgBbUdgx#9@~A@uXi^u)c|r z-f+T>)zd_;$T1WvHfY=5Cf{!IgeCLxD79I27&K1NZ&r`#x3j+)>>GD=D3;%6S~V?y zL^J(%SrLPOLv;2QnV{8NIc}?mlnd%PpPpzxm$OB*r^ESU$(2;|sLa5fCw(w*zyA_r z1z(lrk7`iR6ugs1(Y<{SYteBhUPRr>1BNTO>JqqIUvvz`kF+TtSA=?%Ck%94F%VXAWp=G7!X_#C z80kY|B#f>i)go9ha>^Z{tNywc#A)OEGZ;Dkr7v|ueWtuTkfkvtcXombrejou8d&mH zPUTbEs1>}wh%*dXFhxl$5oFX0=EacJs(eVp^{yQbbIotVn3X%O2Oa(g484`*Xe>?8 za(_(AU0{Y8)0w3&U3;qHNF+~v*A3xRO2gv|L2b|nX{+1B+*z7I%u$!8XW;js%8OYt zGjkW1VaDuF-K^Pbvq%B!$<*8hW|}civ&819Hsy~k5(hPmg;gvnFEH~BzxC|t=oe#L3e=}R?JqRjQlgn6`y*5Cg{#E zOm9jkE_QmH-JV`o9L%V};Rdqb-K~a%^mqu;LQ<^W`!+dnpJMn^f2`SW-e83R@?d|TX zj*bh)xr&o+_}2#vlu0ek){VN7uVwnxJl$MTPf??qlBYOy+Nvz5af+#H9rMy{Dd!wh z=xWNq`BJp9w%@Lh>E$3kyu9(zSEwoZz@detw7g{4L51F>dczr(jCfoe-SU)dmdAYE zWn4+vaSMivR&~1b6jfT%vYD~F;S5^_M~{L(<0{V1IwuSDGOi@;Bo8$y+X?dc)5bJw zcabM)J8(Fd*L@z3D~=Lh&D-7VCy6`Z5F$&@)=6BGQy=n|aV2#J&d=ZKdc1-HB8|X& zi7j~hBh80qM(%utQUi4Yi89+Jx9;X zEvXL}ULXc$eHxIa@Xj#F;4xXG(jv==BifR&R_@Xyg$E4hgo*?$O>Kl8pgFvYG{Z9k z^QX><>(dyZIlMDWQg}#%ORt$SOhwF|adUVVOHK|?IOOTWa*DoPIIotREFPVv$ht-r zuovr+?bR_Sk0%_GIsat_K(4H&B7#;YyS>fPff}1gGyQt`(xV<0)giNpUKygCwG|S^#sEr4z(7sXWf|C zJL@KiJz$6iBL%EJ++7RxDK_RHFJCC zK_$2M4_BJFy}Sbxbtr$NF}ZhM;_7m^XZ%ag_*G4EyH6^)V`C~ig_b&1z!N-MLHB^g*MMSl6D!kyT_3%1f2Cl0dAr8lvjG5G${F(J8 z`2LyaKGx;`JWKbg6)vi(p6eM9?|uJ;DDi(jqJsfUR%5Ehz0io6AqaQ zZhGmLy{u37(T%R0Z!lrWz>vGGlm3!Mk}b$LOD3SoL2(~Ck_75XzBVqZvP+sdQ8@lm zak6_zLog9!Fdi{rUJW_fJ#g5)q6`a{xb@xa-fcl7y(gR>Kk6*&MNo-lFEZ167eh{d z4;*#E+My1`?IPYuqJc%e?-1NAJ(w&lyP@}?c)C}}G9Zey+})k8$gw_y!y z{{G4B?7jPD_X9N`zvHMSd8`U{4cb#6Ps^a5mg^{4$Q1cF)ha)RTN;wqHK$ zM=i-y9%`W~^|0g-X6spfQzXxEm9pCn7_!r0d1^_%RIbwg7no_xJfT_)gry0JPes-* zFw>SHY9gwj0eMLC5@CpNPu=Kzv`c+b@y`5qdS~u5*Lknzo!=(ri+AQPr#-9w`#ECq+sCEx^NT%G5jMRu z7a?{+kl#Mp2!4LCXMQ{F`I{?;Pf);bLpHO17dCdCo$VSpANPBVVbit zmAKWlOo# zvc>p~Bv0oKRBNTfG>LNuDrc5P551KlJFA_ml~ck zKUJe)%gA~4sQhIb^G}jl+@{%Du7tJ6g)zM0q%jMpI}og~Nae;Mn0moU&W~|X$GMZ{ z?$fYvUOjV?e!}4u^4J}A^$VD<#!Ni07X=sh*c`(9RZMU5G3$4kucZBuhg4%xV%E>5 z{ivdSv*u*|fT4Mhx#{EkaB89%|0mDAGl^pp>>x)6wE%<@To!!OSbsFqclnPX;56+4)>MYAW_tP!jtYRn7-O* z6<1nqN%P{9ReUxFrF&j$AnG>0JQ+P}@6xE(_<$idvn^N6#+S3;J=iyxv|{Kr=PP@X z`<;v)ApKAZ=G1wD4t8n9z|iJ#FLAXRe+Fo}?+imkwFkvhOEB`9AvGd7MSh~EvRDT_S|!X<+nRdR#)+o=A%o968QXKI%5tI zKmLgTPL0MN^TXL+7Xz&=a;69`yDOtryg57W5WHD&(tR`$R5~sORXMC)Q#}3fCe5&7 z%&{-Ru1^&s+ipm0ybNksF+@nb62S2|X3cEhk$mJYhZ&Q%%B_L&wk?j?zT*z_4^c#{ zhQD0vt_oa_q+%7X3}UDIs0P=^Yna?Dj9K3F4PnBIGv;dgkcNCgxV(7g1(=R1&V#~B z<)FAZv>5$>q@RqFuaoX)_)7^BE>H~&jV&&e}r}D>!#4`%!9FD5T_+x@7hqUf4Gba9$rmS&h@nyD% zqyh&Pop?IFl_^_0rur^khdnNE#AMZR+~e9*9}D-*mXqq^ky+y0@o5AWL{4`tC({QE zwo?;ijTFVGbl*|i7Rt4 zOr@z8Oq=orCM;Pn(2$zu_38G>s#Rep z|NZxW|N9>rdHnmo|M~BK|Luu0?RP_|?X!l0*bk(`v(?vL?1#;dp=>D9e(wh-gCSaV+{BbL&UG!Nw1XwZc zzbJevJujG8yC(iFFvFIAK_o?J5Op+2)3$t8PV#=Z!*5*^)U5Z6*ICCpHt(lQU=(&& zWfARWhb`-I#a(s9Zxu9K$Lo6E8D^L=oq?N}wQlzHJ|G=5r!4F855FC@%!Tb=n|b87 zVT@+|VnjmeGbE|xoT@*x7_M3(kE8+*E6Swb1!j0?%4z$ZzV&I?u}Q!4pa`$RaP+iV zohYoF`guv_!`~T)_-f$r6#5Q#eiY|t9CLnS!ncwMuo8z7+R9076b?8eNUb2la{Z-)J z4lB^ z6_Zfz-XLwqQKv+)QQPquh5%{6(0pKTEtzgqyYl;>lITM>dO>T){!uA_G-b! zr!>6I7GbhFm_I5u&vzbF@_b0cghy_M4zs{`*4US7P#=rD4%oW=l+w^WqyjC^RPlUP zw|Ty!|Ks9G!tj=m`k_7RF?hb8=J}4{i3*ED8l`A+Y3`y9^2BY$N3YIGOc-5h&w&K( zEH+ZQIeKHYF%M~e>KTLWjek}u)_O9@cYzsJ%v?1Wwm#kag!-0CnvaR4$AAQ6NC)&xSd)pHxbF!l;i>!0fQ%=epK+h8b2&{f4ylSZ)w}(CRPJB)><)F&a#i z`PqpEzejZa1~aUf=5W1@TgAaksBt+eK3*oEg~_mDV1A`bFMiL9fw-w=>ZqIK_tZs= z`i&i%kbc^FGQW4W;^g-P!;O-do#6NMi0fS%R!~?mRO5HW5q1uhZSm#d3<;tC{NDo5cHDuj4(s=!@oCN%OhPzwwKjh=)GXgcreyh$iQuG;^B!8Ue3r~C z->Eq~`|a?^coh0`Awk=6ule?e>SfNLjy>jqnYN66c3~*L737lU&6bnpqgOnIdG0Arf-3ZMm3{2Awmik>%56UFp1!h<==Z3B@ zT!Y$ig&LaIVmJ;eNj@f=E|lRuyGO7gP4b9kry7Wr-TdhIzsipbd{BTt<;q=>4<@__rLGlr~6wEmZs4nLlhm;$; z)jomrGmA^KHsf>hghK0qLl_ewQm68)aI<{pRh1+k3V@~wf|~2Mdx)8c}%U8!ll%d{uWCmbKdJ=H-*slU0b@Pd;xpKw?d3Y3h~3HM69s=c{zjt3F-J5M!J z23{v|Pf=vaS(L8udIMFdUTjGUy%{Jt&<4Utp#s)2F1YcMWR$WHmXz!wiy- z!UD=dwU`W3B%h^uxy;8J$;bj2N~N`9u21)ALhly7NRvL929-oCds+2Ce@WJ6e4eR6 z^3lnXcayej?}|9jnpwT$IamyL%oKUQAC)At1a)BR7?3wvYfu-MVa25Sy4lW>U`NTk zu-P!Dvz{)kr!-XhRFRHV91$~Tloy!6>OmRM1|cTAf)z_j*68tqzS#VG{jP=8&bU$vs*WjXHv6sncoFwSTP|W9%ox|5qg%) zgx&>aSTSihW_+)yv}hB0XPCj~(G-c)$4-Q+`}woJ%;#NTrWMmjx00(KNY!;(Pv-M3 zFw=^EVP!kL&=(QBFwEy&V5SxSf=rRESc2g5I0nAV)Zp`!qaz3m7&%l+V?OUJ4Y5?( z4euV*>BYJ!KF{W7KJNlEt(b#w9m&?GVMB|~JFf6S=dmq7QtDH~1f8cw=d$8sV5__Q zIVeJbNK4VKb?au)d8cTdK5!F;C@WN4#}TWTjpr`SVDlK1t|so83N}xD&R<}r72`r{ zAhw&RC{dg97no_q>FFUfI@7 zPzN+}e;E`pR8BYzknp+BKq3dH&fs_53@#682>rrx>rzgeB6lqAFq{pCG*nd8sds&< z0k)oWP%3E-jl?NaODm=o2zizr3UDpv8K4T<1appPp-w^^4tb=d_C}?y=Ube&$XM^F zZzb!nNU8spq0+7%qPe__JcG>RW*VEm9N_wPbHdcC*0_#A1qb;Q2l7lU)1RS4aRb@3 zf;mP?YI`1|B15nKT@OrTK*+1SX?d`DTz29igdNnX@A-1^oVi}aA&%POP_{;s#BG8c z07A634*PCiE^aX~`UaVf4aWiqNxmOz2%;(vpE86%`g(gq~qc=$&B(p~vF| zR2=Ovr!S2!m^VWngdSTJ@kw}#NbRW6`CY|?QlVm6gQ|Y?aTb;Ow=^d7&Vw3+UR@EX zY=tMePWTI^UGfEH*fDpP`}N`VsqEMjZbI(@Gt8I{mi^$)l165{AYTr7SpU!sTSV!@ zR$SRCOJhRsEDfPlsF-W-YQXxaxFV-M-AK12jBX5+v$Bed(6eNir3Q6&T&(9uH=IAY0$rzi52W@j ztJs9zS;d4>2}5~F)Ee~*iIxm6eOGZ3dcPs?2`u)}fy67iv1BInE}KI#dcvV1IXp$B zq^%q?dN-V~W6r}=*`{`a(o-Wx4eN}f=I2{IWIVXbFL`<_>VCeKm3p0*dXC!zOvAuY zfUwZ&+18vcD$Gs4~B0))Q zz?(S9>CuXdMOrxvYq<`P7OgqG^Da!~K!~Hqhq(Dg)hO=~?YInFogbk3+QFv;o(2EKep+x;+bJ3_pAkLtYA zlhy-=7g*wMNI$sbxiYPH@jL`nTgzmasIA#Sq*|Xpp2xi21t*C;s0R*qRia~4j;z&} ziM<<6+A=tPB+fb+m@ipm)G>y|9sE-Bg3%CdgJ$;5ekYkd+7pnsjbbC-d)+W*_AaAJ zYLCnfIrgfN^$g|mc%}CAGWVV>LQ1aQ?ftKlGae#xYH6K~Cz(C6L6lxb5~kn8FibOh z=OO^^N)2fUlq;t6sEWn1l8K>SyfRT$jEb96$s7=4qU9ydn^#U^k7xNPk%)9{zX9bv z3rF%IP7-_I&`+YWUKSyUJ#Er&IBCjX1Uzd0_H0^pP+FL8rkuPU;?O=B<9 zdA+kK6IVS-CKiOCiPSo;*l$xdt#^!0Rm?hI^e)zxCTKmqmQ@ybO6~A?`Gm>$UWtGO zY2BFCyGRq^h3*cK+L1TyPu2K*=}B$QuhOXRc@9cFaOL>gd8zUF@)l}y{sI$rENRHH z@72jg(2%C>_&6x_Jx^&6yNHHzdLE!@y$eiOv0&I+ z_J*a#=Z|ho>s?^NAp=9aU7^kz$actTbADHG(t3iSL!vCVT@K_NKYLK7_0G~HtyeJd z3^OMug)7#RX}t@~v|@VY)zQI&ilczqoWBfeSg|f`mECwyMe7;TwBA`7qN%VOlAJVg zV<79(uwv7C7notil$w#%*=kLTHm!Go8CFc{_D6ZnC5_gX2WVRF43o4T(c2GB)iSyD z>CTnYOY}v>1XHOSU@CgEt<*kY$xQ2Aq#0KHi~FY$1gh!zmh8=nlh)Iq{KmQ^2wIQ) z=gXjoq{g7QHnih4^*nzj-?ZL&P^6*;3@^0q5KukOpT&R!xmz)T)P(7Dq}Nf=dRDh- zy|Xk)>q$5CMchX{8V2n_nby0&Oe_9Di=eQTikg-*Z@!o?Y7C03PQt`4VOsAjP11TA z6z@aq4VMm4+in)EciJ`ay&uwa!KPJQq=pBzXuUJchZS?|2AC=EeW!jSH&^Zfc$R=glzA_}!TA29#KLu_2dmlbB(2AUbD6Dn0}m=_J@qz!ftgnPlaM<$+;ZaT zoDUf8xW_<>)AIn$>0Mx^75}ChW(RFK`D$w}6`x^}(nB}EMAnwrYwM;dy?;_Kx=_`+ zNlH&J=51xQHGhGbR!pa| zN^E&hl}ol{=JU?FA%;rba2AhTW|!M8n2sneFw=^;s}OEWUCtjpv76opm3$t$;Z>*L z#5B3Cp|As^Lgi)A_tHYE`D*JeAVE5ZN9W|evu~mJPiu(6w9&rJWFOi z?<`I7dBCt6RoQ?CQv3OW>4@S2Gp!ikoW8jDJgb8|4B^CS)RhoO(iY119-1t$4C z!EldUF5LqOx`@JyH<)3?Y*VmSz<40V=Xtf8&pYb|O~iy#qmdV+X%n;|&F7tAlFuU< zuAI4a<3RJ zzL>I{=E%!#ASh)+wZ8cIZpHj^)s3sa z*$pt$is?GN16qFj_+p&v-52xA5f`f}c4uh$?X#bkkG@NjG#*w=fB9X{#ivi;&(HUW zf?rN6rbK)%0Dk*eF+bmZF--Eb;$N((u$3La@t1E_oGc!L;^@2cS$z7$#r*tc#l%qQ zZ+_|G7`9^bD-zEWjsro($4HcaV_GrylXo%`dOWPSNxWlR%pXoG)-~stogz&wjY+(- zqeu=9-B7JmEW53ES2pku-cNV@a#}I&ulA`WL0GXVyi<;Xf`DnoYB&+DYNtK;%lqk$ zUyg_ZYBHX&=eMCJLMAPSi!{@UxtFu6bb)zxP=3Cj?%+hH6=QsLXtt}W0a{Nc@XpdC zf5%M0VOFxm=C}Df{=s{Wf?rN6hE1sa`GSe{wdlJ;jsloz#kvTmnKDdeYdxr@?=C7% z`i?wWN_1dr)TY&e9}# z2Mh=J8i;k112lPeftglJ+rvsIED2=A3-Zm1le?2N92sP}>r?%_Am6N*9Xq`rEp5|r z7I$Zu7w)b~MF)&38#83l<+^#0MB~Tah zr6=_)zd8y+#t#?@vmdppi}{ARXWAITj3}t)uOwZol~S0H?8S=J#C!}2UUP5%-9p#{ zeBthB5ior*&z@E&us#h)LZ-WJ_$Z{Ia#@!M9(`=?j(_mQiq*t?z;G`)CD<0Np5=FG zCU-~qI`x`ctrcop-7nl7rC=j2rZsRp!pd)VT&$kuFVYNOOcgw#3DPVHwneLF`3uaj zVw(T-eFDQ&tkdgD4^iG>h@n!&&=nET_TvVg{1@(yXJv*JbL~+f?lY*JALTFKte6-o zrQw=kQ4~vp?Tgj3T!T8sH@sy$Vd`b11+8V}h2H!CKF z8iV4-&XY0W(=bI}$ve6&^)MeWYQMJ!QnXIHcQHlx37^~@*ArAt^XO)CcMwi*Ry?^o zV0dVGPk0?eY<@4?9skC(ViMdH)7XlOyYrw3neKy{+#Q`@6jVO`W^;E`TE6*WVyILx zRcRIAdmuZr1k9TiPwtM46nEUVitAdZ2l&F>@ig)sG%$pTY?hfnYIpn>jigV}zs#p0{#cE!jx`E3ha9ZZ4=H+XbP^vt7T z?oP3Ixve%i3fA|8H+Of@&E)PBnU>>RFx#Q3wc3j`BccEX5;_JFdNOx+*3IPZ1hY#s zsqx*uSY~;bW^#AHeAOY*lU&@L?Z({QMVev7#1Mb$@Z(9YOt$r8?(PhOCem(LfV-rU z+Wx&u=qzy`6fx9<=^hi7ptw6rX727H&9q_|n25~D9y4p!4I$HuG}DS%W0iTdii>kF zjJdnBG?Tl7kIeKTInphSxw{L@@Wm8SG|ZAfR=gy8vtnYXp<*YZ)~B*!tJvJ#S(?e+ z@!~`?iIyhLR_aQAS1~bEN<&lF%AYToooS)LZkYI1j+UsSC4*vjVasF8e$i+|)@JYD(V!jNXiD&BXi&_?ry=nS@GoVxCq*vAJ?Z5QM_<>tf6Ve1W6Ilsz>>wr#J3S zEy{;(sD0ggQ>Izfkz5mgJhG}qdBX6RTlwFfDfK8{ldq2CFEG=J$#ulBOfAaS(o{q8 z7no_q+zE-r&^=r%*&BDK2IV;@oN*;vdNDNP+KWN`$V(auxH5sQYM`&5le?qb3NnX* z^n}xl=$R=IPA@Riidj+R{gyPEH4o~IyHkVm92Ae47PVz*cG(J-cG`;16F#{+T^cFU z&C(Qiw;`n&NF51?mXd>yHneiO2d1?i@P(Vxw{L@ z@WtO;+pJ)J!Gte1cXwWzle^=VithG4J|-gepXTl^FvAyrQ@2nhrj{nSJ1#S|iYbpJ z1@ZLpXeUYx6>f`*FXTG5-Q)nx-JPYG+#MYnqq_-LW5X8{GS!5ir5V1M%PvT~byL2_ z6K?MAEDbSK4vKxU620rweY)d`@E2)_p#}^jt7dA!gcT#@eNdCT`=(1kdb~PJd)5e< z?l6`{s$&8l<)k*7uph^wa#vibq7D-sF#p&E1_< zObj((IC_N16?f+Wn!7v0Oz!Uci|9`uo>O_7Y)a35yY0@ucTQ|ksEyy=3p4{Cx zCz#3vtWWppjtBVOq?uOyO)@>qua5R!n&$4#x|!S^c@7TZ+lnJ%7d3d-&E)Q=;Eqcg zg8@Oe^NnafC^vHUs7*qM+7)42qOlRRdWcbtvkYLiaDyOzw`(vdus*m~F)n zH|@6Rv2YxT@d9T*M6{v{QkVJ3G+ zTLD$oJ`xmn=b18hcY(>cn96_NrP#}n*O2y1nY%l7uc66(I^*Be0(FvNi6Cd}sWN$Y z!5Qow94ooMy~R-P4oY}R2^0!6fS<9yJ&Z9~i4;ZdT zSLwAUt3+Fn?UpYvVakHRmbGPBIYHym80kehgj3seXbkZ8D+iL!1CzQ>RnmA6$p0c< z4?_+bPaVYtbJ20~c=VN{$yxb6DnEl*4S$<@kul!xESlC5wS?tNHE z(WZ<`Ay44L?;V3HfsE??^*i9Gxy>6^HR z^}BLs3$nwDvy#=Ie9t*lDftaeR+~v>j(^0ijs9DB}>w(}>+JSaGdoaY8Jv3Vyth3mB+FqwYg9tTQZFpiYZFzJ)2Bc$$N$6PdE+jC_$ z@1mTf^S(GPA|?*QQE7y01;*Mjp?6*oN$3Fsg%(Nm zKT$bM+li9qV?DI{`jdnnFzT7HgRj1{=mlXy?;&;;=h+J@89i_mRBC=a=f&uGREyC& zF*ARNs6xlo59l_-qu08P=P5U%cb+ODs)T`$s>9lnAR*f+AGZkDrG%l-jXSP;dg3(t z$Bf=t$HY@14cRyKRCxwfB@!N#8NG{+lhUI<gSk)VtxNB@5?oY1!+l z0w2#g_!`y)hf(Ztfy32i`F7(Jt!Gs=t#`#qTc$y%c*Z@JazU2Iyxw`%lhB~z#UC<+Jp1{0<%7`hjv1Y6%~NM5EqL!EZ*lnIYP$?McA==o8P^3}Y6>s2q} zEbCY`)oMiXthx9Mr3D}1toY|Jm?A{G0!i&a< zxy=tafUVrR*s*Zho^SG`K~wxks%$4hzUl~Q1)1bK24Lb1wm7^jLJni^z@3d<^uN0K876I+l)HS-9#m8Y=oBZIQzJm6NmFLR<>z7`ntjiBlYHDQ zpTlZt2&!UGdX%dqumRS&%_=s@caCw@qC9cfQtDocXSoU$ERI>e^NcfwfZ<%-l>|$i z9bZuTS`O?2Gt8KitQrD6elU)IYDg|Wc!t5rY-u>f>K*Zb30F@5C72HtdqYo_4-K#9 zgRGlk`K%iPD8XD7XVQEaF~vFMiPyK=E2|^<9S4((VX+tpj`VHMvznBzC8n0-!a44t z>QTP61IY(>u*2hi+^vVGmgIstDj94aiwIsj8;K;W$M3BU{d#izS-h;vv z3g+-ICOsX}j)^aMCsES0j;Rd|81sB{vVPUF(#ysv4NjnrAl66le3USjG)K>+9_0gu zlE;vycs@fm&v$$bgmx=w$7BTS(&#hc!SkslxpZ^Pdhw>tkcQ-Dt#RvS_rBvFY&*Wd zq&p_MrgB4GeGMcAXqxW~LxhyNQ30IH&sH4!&9_;;>5MUXd3BL82}9jb5D}D7?g=-^ zcY#SO)-6c!NRQo=o|a^7#b=nL_`W$NsHxl5P3^_)3-vIOX6gbnteAuYUHP|eisD-^ zZN(RuVZ~Gic3pu7l6o@3cYzsJOno7DM7LUFFD8}$GN|PD&)V1_S-dRK?#4HH&uZtns!teCe%MCUxdI8tBV1Wk8; zlhhuAA{kgwqz6@JH4ntv<}quT=5QvsaxCw ze7mEk9_0guYjHb@P?Petrqq&Lx*1CW3ad64^(Y@OU!9rkL1iJjT9OOq9AU%!Bo1e) zZam+5rO5A@ef9n-oN=FnKhS=sCgmXxR}H(zmtn&Bs3-XyCV4%`d!AW|yp+0>FC$V< z@)ww4#vI7mk>gXDaU0QJVx||EVa9sbwGN8w)4fjBll%^ov>t;(92U>=qW#di^<-La z#(o^sTF1%jsj`6^werRmr+B@E(~Wp?j|Gwhi|k}T@6 z=Wx=0ePQo{!{Uzl;z<3caIBvSb*=No@14$if0N%M)ZrYQOCk6@-aLOZpXB#=!s0-}vSK&)3@|NtWYGw)5V|n^uI!?=YnXB|XpmujL&Dl$Q!? zUPhO+_?PCU4uT*ELP0Rke87+ac`S!dpUee6o8LR_5`3DLOn}6L5YHKaPajL>=Zhti zH%v<=-3@P~-Ns7Z#}i#*FAF^SFFs96rh165`&sFH`uH+_zPM#RO-lxc^MvH_Y*iOd ztK1yln>=aCs(0nS`nJ2ByCPe9i8A;!ZTT;|dPjwx>b(>4n>Sm|`+I+2KfiS!9S@~w zbPv%S-+5&XijU;&e|lwkwsz8!G;iDT8D=niz|e|O6J(ejjserQ`~s7<%ue{9F7H|} zvSkm-1mDq{@<)a(QxB{M(H|eN2|j-FYRiM*LmqAo$Vph9BKRy1QB--;!(oenYnU?3 zzUqfJOqeo3)CFc(GK{=P`Dawc?k#EFkA6rq44F~so!>{Xn_45lYePPj+VEl6F%w1U zY&lTd@jjvOn{CJEDNk|_7`+J{mQ#`~$eT}2at|27xZGSexd+d1^T|o>0Yl|k!t5k0 zFgKq}MD=WYz>rJc868t=UZ_p(9jO(5G0a#nFpAnSt&g;!Cih-olH4Ohp!omETEMJ? zmtW-G(TW*D42rZvw4wz@v*tmW+dJ_^{9;%!($Mg&CVYKW7VQC=+k1ftD+Y!xj+JdN z%nmLUh+o!Ja(jZIf-QE;T}A}V%^N4T2Moc|PD=AttuGJC+}?RmN$m-S)<&A0^;P+> z_C1PLUmb-ynCDD=(SJ@~ZRgOPI9pF@Sbl*SRt!cwPWVSH%$H^8dxPFwQJxRTyent;*}>DFs9mb|)_U&ci& z6?*5MQ>$q|hW=_~K5_a^zs+Y8d=TFbEM9QZnhA2)Ycxk5S228^J2QMo zFDRBM#eo^AwPkTO!v~*qv*u*@D4wJpKplpbG&|pL`nnyy9;&5r0od#n;E_rX@(_pf$VqHek=)gbV}rW z(M>XZ8WeXt_F1oa5)aS}-&vYu_*CXf;q4AezHNq&wm+BnSe?vMH)QIIs$3Fi)@(zB zPPH746HY8OV7TxbgDQs4R&0jvJg8*&IDqiN)y}?9?jfJNU~I+bMaA|M;&2s$x#GJX zRaJW}9GmeA&ah)PtYJCD@fnlg>0LX?@o88bJ>}ai!shrWTDjSAa(uvWTYPg7d{uVr zxiZIhR&sKDf}u8W$Dt(A0_I}J>SdlfCJHRa-V&&p`O>#qm%r*pz04CvZD6&7w_5wn zxL#puU4DTXc1)IvnikU z2WWopxTe(0JawZiLri!?PBdD)3@X_@q#-EY@rEiy*g4d*{G-Ol4a?6Ez)=cf47eg|8l7`ZOy~Xg_DmLUn zEoSeuQ_&}8NCQ_>OVj>llYEry-K>}>Dpkyjt~JS4@#gh_xmht$RKO7W#le#d)Ui`F~Kle`}Kp$~DSGrt$F zw`9A86)M!oStp+zl!K~Yo-y8tJvH$RoG${vpAqPH*{tQc5qsdIG1H}h$U+O<%PG$K z94Bw{mHjxW2E_?xNKmfK^W~d+FY}ee9t|bf%_C{c5fa&qV`6Xao-QWg0G(d>CtY8e z_&u%)Ef-FE$lFlo+^Dr}QsGF2;WRhid2TTk+Oa4JlC9Yb0Iijp45)Wlq?V&CL% zPo@ePTCb-ula?g5*pW_OWo~K2K3-tbE7LIukE*r4zPi_$nwVc;(v;~|!@b6xIU#%p zvb~UsGYjT$3HlEuP+`e5uECvd=dQNqYsS?={9T&l^|*lZMU~Co7kZKPf>0B4!5lX} zbv57X^B0xGQG|)C+b4dR);rrD#Z&|5i+-iscGcJXQ4U*~#CgL>JJ!YSC~cr1qVS*Eej81I~ zmY_Jj1=)7|0+V)3VHY9OJ|=z@r{^g*r*|qfB)OG#3=Bm8nx6GlS&=0pe0sOzkZs53K_#W9n}{lrh=J(m1=G>RS;fid{iXhm zgsVJ`zZzTM*NxFrU-Ou7S~00ibi>GsJ-{2Ir@rP1LyBrhpp9!uc8QU76E|TPRylH8 zZZUeEa5H)@YjaR~FleNI_a4)^*M-w&{Dw2^7*>EPUWT&18~&JOa`6>|)MN9koWi4$ za)-t=srMq!VD-TH%j?5iwI!Q%WmfMEXP7c%Fk!(SSM7icr%m|{Cw(%d1bBbR+! zJaKT!-GR4f=trnZEzK|Tge@bFcF@{=mpnTVQ&024IaFa%IT!Io;czE&JBog`z_JlS z3FkarYIB|gqa2FfI*+2s$vrlpw&pjWFlQtZP;EJFKx%dV%ot(R4JZt{fOr>KL;Gj^ z`~UtA5iz+wK4|k+pYuXJo&A3# z9wrle5h&~%ftUx5C>o^)76xwC?-;PE4b6~;TR8$XGwb()GYp&rAEiy2GRw2C z^nrN^p!FE+l!um*d#|T_3(O_YC9k1WaNv+s=8(Jn5hsZ)8*Wp2ewnaj{g^D)!S~>O zXygNsE$B-7@o>SEh>$*b$bO>L+Pd<7-1C`0+yX8_%U@1)5#L-^N-}>MnwpD;ek&u; z4pUV^@3xrKA2_r2266j`3yk5k$y>dT zE7?EE!$w`vix+*FfyZU~@5P3QyV4j*w$P<=8*=ex3#g6y1t=LnNkq@Wa$(j`#YYB0 z(u-9m2PmLFG?`S5 zfycN}z0m`Ru#tnuK55blY>(1p;LDsP8%Rx(;?LS%ZAC!`{xBW*1~lxNScHU9Z1}Z* zTkpQ~cLq}RU=9t=wY#1E(;}%!`tq`BiT-Zbs>U8ja34*Y{rBJh{qNs@|JUODBp%y< zj!RA(zq+LlJd%^O;@X5bw1LwzseSV%*s$*}rdXXQmtCr3`r0gsL~lUJ5HfqDN;^2R zs(Q2)1@IJL0iEuBa_f6UB6Krnhm;TtN49QlVI7PNes!p*8f}0x?E8yTHEH0$*^$Uk zG$))>Zxzb2r+HH%@i+EI9;Mls%@V%hj7UVc=etdeXDnz!5q6rfIV`4B*;0isIrB>9 zmh-TFf+y7b)`fFix76ehAUeKxGaf59m_oHle-|j3LMC4IsU?I33aSuiUN|qSExAGg zaUV8qy2wJ?^o=Z3Bb3mPDw5Tz?Xj9*3w4Imz+MDOx{$sJgv1n|0puwwzR&`hFFd9x z)e0p9(nU$#5`Ij&j{&_jOc)+dYl?yf4$Y-1NMAC@q%E5n!{h0Z1pCC%_0||yVcH7V z5~QFPoMFkHd!T(>wx7kyJf-?-IRj^Bd`uH+}a zpiKI_Hj+1_t`**em%jIm6>(^ZOdOuiq3WNW5>ZovM+0a{w9g_uLVJ~H81*l9M;@}; z^Ig=T?ZDLGG4)BBX$V9v`% z(6nhflk3UhEl=1}Q-{PnyNlKjZtb;OB={QgP`pzo4$DCJ^~i?1Wa{5=rcINu>9=JT zPS|u)hsR!8>g+V+;RQbK!|ZVdb*QH4GR3ncCUeN2qNumqDcHMKq-EJm9iF$^auHiU*h8(=Q-(&Dm{ZS`sZcD>cWpCeleR?1Q3`71;OeDVGOef9Vguc{noMIAfm}U~sILRb(bAnii3sGo#;mD{L&LsoF z?w8}DiiX|?+YwSozh}=};xXn_`@YZ*Wi;QoO~QAr+p0oKlVl>}Qmf1&)Yo^z zrp+dv^@GPrc_>Klt5w!d>B?)2;7ap;Jd~>e>A>Mw6*UylH!zMtuOO=430V z_&g7i=t=^e;{_eTr$lTd+cm4T`XkZe6p#A`-3bQ}50vswReU+7kNnnUjU}z9xQt!| zl}Y#9mj~!XBiB!FLqj1kG>BwMH002%mx!#{oeJnYG6JrN!wwX>CgOTjWMc6=`N=CX zFoae`P>W7v0NWS#>DD)|q!x?7$i7Og9yE8(2= zllKL=UZ4i^6_u~=%BYuYjy$F{dLv6-v2dt1D(7LP6tn1=H?w#=w&-{|21aF0RGhS@ zwQyz@UvP#=bHj&WrO%a*-LM(z|0|E4OYx_spxSdI6ncGqqXIfzdi9 zp3G(2->Xe+)rE5oJ=AD@10fNlU@;{GUMUyi&fwdsiZhb9!^;Q?q(H7NgJq4oN>_1i8YV{Vs*lMR#`6^HvwVKv5_cH4B zWeMkznO}SnD2-Y;q|P-M3si{|W13Ms;|xX-oL}^k+h_4U1ux7t>f;uzmwQ7&T(x6O zN*+&rk%AuAA{3AAOg+~VhYHzQgHWDAo}B()+*$rAYEoW%WBiBn!K(z?9-KIOC=0 zDGzmlwRc&DIOVCy`bC~;(X`72Noy%_~L~I zpC}-TWOiityI79})F%A~G;Ep!A}2vf0huIoW5A`OLcl{c|kf>Pua zoEy$GYwqau^#-qrD8M0dyWk8)5qU^H@W#l#_JT9edE0~fGyOd_6_hWZ}l(onf^ za7olQ?tz&^JZpN8h~KKaQiWtaW9rDh)-9FiHL&B^PWwd40|nG&QEiE8$-cbVpC%E{ zi3U~4PaHTteb@5zxvKm$yZ1#NeDc82#f`nJ39Y(JK3qcn&3f-?;o+WlvhdaUotpgnh{5MOYn zL34smmW13eIL0)Ec*YqFq8@>A_TCGl7{rCs9{L4mMjo6qiKjz`u;;}fek_b)Nz|4w z=bfZCOMdGl?i}jms0DwPXE2C#W*`Etyo<*Y3?j#n8_u+6u^Vv&qgnHo%?#p;Jky@( zL)Cq~y}s&bW}W-m;TdNTi0U}O?SSygu?wjk`@4Pye+Z7+iE554Pw|JA$Nb@oJky@Z zm2?k2>pAj6yaCdFqgq7mPV7DJIGZu=RGY;qUOn0$dp3J`Wc^gZA2?JDk&%qeCfGxz zEng!Jnm0}yXq!mdQiu@pTp|tvq=}>U-mynSxgXiRlII*q>uj0><0a#MJaGQUcKYU5%{22ryZl11GkzwfPl9zP1l!vNk_RuI4g>0z} z*)|jm;vY8cnzOSp4hpe=6zxBTQ<-y1WD4G<9uXqg0P};T$u0x>^u8%sf}?c8I{r49qs`^T5=# zeFEtQAzyA2RNwX$zescM0~;hFi5%X@i!2OXhxWj(B%&I(r$7L8iLnKW1c(auCD6;r z2)70hWx2I;ETFxsQOkY<8YCh^1E|h&1}YMDuce=rMG5iTtbZ+A$4$H{zMOnUVsLVsCr5YC*`g^oGSXUL}axD zbUa9jISLgOPQ~{NXNMnZ*nYtoW(^J%mReg2M`rCgyYYzHlZQO&`?t5(yaGYJP0Mq1 zX)0YvAfDjpRL2rRcF=xOmo+r7kFctX4fRaWCr-sx>$|dQE80Zj8Hb>2;HVsC$J6TJ zzRE*oTBYdozy^;WfCShD;+KkD8)YLqqJ_)MLlg7mK)XY|>{94H}Vwp`_ZVmq20D>~d1|i-rb|$ca_Y zR>*D^P;3C^5ziVLJR&z_IlELw(Kb{EeA}gY#Pjz0cMyrXYRlEoP*D(xG=04p(O?n* z!i-YCW#Jwrk=Df;2bCxwh9=MG;nbGoNi&o9GPFS@0`!-r@mdq>%i-KiC7w5GLa(qQ zcqtrd?5Ra1HnpkescPMy5-8-iCJsg2wK_bopc4O@N<7a!-gL+VcayAKOrw!NO^yevu~~HJu!Ev=7}DlUSITX~iGM_bvG_9kpC;}%hiTHnfdJHCYM~P;Kfwn-UxE)lO`8Vj?+;#`-g95|w4Qs?TCWZkpo~7a zx+!IcT8c_sKo?I9P+D~X@jC9dKr&s=Fij;MT|WLR%^Dy&p_W&*;S`r>eciZ3fYPqH z>iPAXoHdF45zHBoMVU`*&e1hoHUGUf`{R@iCQ&%Vdh$J<`XXR#-it{*<9wJj z+`zs{f;?f;7b21Bo)42&C7kqQ6DlInvMnOk1Gy6@uw3IK+{Pp&#=!4 ze7skQ+Ps$qy#P&<{-&ly+wG|J`=gF{Fn zflkpY48ru%v}+~o44mzy)$09%GrcrTSG!ePn+-z%lT314{`*I*IBq4i5K0BwHVeQn`f4v0uQZJMr`P22U_ zAeaq-F2S@Kz~{CKF-{!Bcdh7HZ&akUC7ygM&sR>IpOgvi@TFf?@*qtk9``~ufFJUZ zpx)_M`oV2Kf_J*fGYy(6TVI=!Ag3yWwxS8GUVXG0zz=z7KUq}W`tIJRIjG%mJ`5Uy zwpO`yQb|V7ooU3geg=(*0deJ~#C>PU zD5mGw$y|Q*>Y@p?a%6;M(fyP!headl#n%rek)e^N*eteMtnOuNCh=uxgGvO5N0fI- z1VG`WO(h;v18O-rMn*@^a)j3PP7Z?EPWlCBI%#rUeTcW+qh_ zOc?aws44skI@ALGePyUAdmJ#?a_MUN+P|OwHlfKE~nUCefe~X)sORq;jpj$hwYtf!-nywa*+*W;D9qJE1as24CRaBT3&Me{!&ai5FqHsfCTQWUSwuXEYaYw%$%BWC7 zk5!~RG*5xDlXn04uhmj#n9d6*h}7)AAPu_)C5smMzjo{)-s2r-aEQ7^M!~{9VyI92 zT4y?+UvP$1Q<+5;BOE^*FF3FT(O@AL0B6qg*{}exa-U+!jjxGAMZ;)vl<5COl zIP0og{DXu3%X^$+X*G*a{m@>9AW!oA_aBQ?XEU3kNyKBAr+#7siaXug2SqR zu`5P5Z9f`gO`AhJuMRe@92vFTsA+3@Q;1+X`j`b#bs3R_!mw&uigK+)GjACxGV*FQ zgLopyz!_Fe=&EkJ;8;O*>w95#Kz$z9AP|3Wmk0CE>R2+wer*ErJoAG<1m_P!0k37@(!c^t#{ee zQ3r>}`KUxXvn^^KA2tLK-g%Er?c>+{>Dq$E_69VJnl=dB&fgm|hpT6xy0LTv8dgm) zrP_k><+hx!^4o0*DyzN#O%{>#8$#@;OikpMb5qNB0Uga+y~ILA)F6z^8G&fvv{@g+ z7&Va(9P)DF+=tVqN*BQ=e`4QzO7fVd?W0}B>W1uhq$$s#K6uSXD`2`?7Ws=l&_ zY9v30#`PWfXAf;(NMvtvRDIePm8>5)zv&O7z1eEXQJO?Nu6zR4iNhg0PT`z~w`^Aq zQ6@YD`b!c;?x!~oqCS4MhRh+pERRVdl8z;okl}b_K_Y&cL>yb99Jpdw-Cs?CNFH}P zCu_P$L}Qvnd=Y4}h~(XPA1oGr(Oe#-S;RM>Y1S;t?kTsvEOjl3+N{sZY|x0TAXwH~ zuEr@E(W5kt_#zNKeyfQ0E+}G(?6w-qKl5iE@eL@g8X%5paeB?ngF1Fx))|4ms&(`;oZ=C!qZ^O-HF!iWPSoo(d!B07ws7VV&(_GI3VFcM zD-nUSL<5;fe6hvBB+@rgog{axr~dLQj^HuHGNE%6OB6jM!lbEN z-oq&>(W)kUAX|I`8b)0Ydz9U*FUO9wxWr=uL_OwHM^t?Dy%6iA4p;_dce+S4*hF;1 zg{g`g*O$XtFE;T-qG{ITsZ`AOEVG~!DVMseSE^~o(4b!E1PM^Dtu7MK7nYZ^Hs;+Zr{ob?#NcH6RHc0iFpFpHzci_nB2%t6vHBWuFBSMM+^b7a2Yw#J_wrus# zETB^~qwew{5HIgA`5KLNU77SY@*k!YkI@Vp^Z$#pgHE-VU*1T)y=W5o2Qlx?0&UbN!T89^xw9sN=#C9N$h zdtY9l;QkU@QF8stC1a#F(Q4#szpwAmm$j&C+r{Q6<;(oh((GK z*s4n_7AT0t9~>qwsvgXu-Yey(7hblQ#U)+a_1O~lfm{6T)mOSmN&lWUjMVhk`0~Et$Q;hNiDgaBK zBfIotu!`W|<0}Je8G=>BxNbPZqQRl!c;^||wYQ!Zt2k4HUDBfF@-bg@AtVbT{dlf} zRs6A7#UsvO6&V-TZ7U2iP94%cUuG50dLFEzaH^{7v6N0co4nZshI(^-*5$WuS`fvS_Q$C5TlkOj^x9AZy1&ah`{i*&hY&rz_7Kblqi z_6cO14}0dOe5D(fJTZ68D#Cxykr`+B=wH0)LK~cC-ql!stuJMcq@PoJTxtwQ z>`-2?Xnfe24) zk`_=Hw67$d&l+OuCJ;eKtg0XsRZMn~XfTQljq7c}j;fpdD$%fNfa;RS<2{P{@JcbE_@eB=DE=fT%+?w+ zRS6Z(pc%zCpkdblQTq`aM^TE_5y91E)&{4@Ehjz8vrlB*sNecBr}(1m!6_CHqeIyq z4iVR*cqElX$3)!EK`9D{3Ew$^e!tGTHl_F`&@gOXrsr`T?Wa~taf(a0HtZLmK`J5< z^(S$x$6ahtlZtOZ!>|E@ND0SLtfHmEDO^?v;Y_R$0qIQiEU((KJv7sbZxT(z1}Lil zi2C-VnOA%P8pNV>#LF%_5T>9tfZAWb0ZqgHO=uox=f0t89hp~r0~#J1iBu`Ebrig! zy2!sPTb+uAvZ>Rob66W;H%RFfqBin3py9GvujCr`0V=u)@NDGml&Hq?QzE{rrM9Hl z0g_q_UnCm5BD3~IPlJ6dQ*ZfYQ)(oC1NyLRtSGp4^_Jg2H_KLQ`7ty`R+L*$c|Tw8 zVP2UKwaK%I|^ozbIBEG zST^0x2(I^9BlzFSUew|-hR_9-(2;;Ti)M-Hgyo@`TRa9eYC}A5sMo8UsV6EbFw{$4 zDtf^gcKwGUbxwXUm>pcJ4(A?zP=mw zWMc6JXBai|upqR|7S28`s+W9?YaTm0OF)~c4|#}Xcc`ZB@(-qY#j`woX^e|yRVQdK zvZ57j1Ev*UaE7m@w+5tQ%u)HIg?TwFavJ-P2O?#M3%`O?#6Mm1GdV@%(S?0<(x=yc zX43MQQ#{+@

    TB$Dt|~ST28aiZ3`H_N;oFn4>z#TF>Sb&p4A)L>@@I9X0lYF{&GlJ4B;230+wpbBZrGANEWWuQ-tPT?p%$DC>QlPD&B>j!U3g?_L*0<{8J7 z;#r=_D5@n_^6l|dapia4|Ac1-D&nm#raY0IcFPxS~ zedU)8sEPcmJnAYxao8^;L(h@g$}gYKDdL7R?U@qRXirI<%=XVJjK9b;{quKqMcn={ zOE<&|zT@Eh=D1kmd%o0E{?U(l#H0PFrThm@^n9fuxz@gQWg77XXWBD4!R`;$>$IQe zFpgQoGtOiYIgJq|?)6SrCFHRUm_>ZSnem2lUKJ-;o?;Of&c&W}(Rb*Fs?&;Ed!4GK z{G%U&s`vR~F-;s^wTyW$64ClGiFh6tPV@t({o(qq?Ac>9hxmf?Vb3zey>z*fW(8<;SesVh}Bl8N@TrBoMjP`VD4$%Mb*j4n*&Ip8O#=G|Y@SihGG7aW6O@ z_Dqg47_qh`j}dpv+lnqeMpNb+D^o}2>S51>BASC z4}1RNI!COjU=MX~R{A;PO!klY58|p48dgn|Sa~jM zhG6Si_2v-YfIiF`I;n=YfMil$Duh-V-W$+|U9;?iK_ca}B{GZn0yJqvp0KB+HPe@`xvrqOzfdQVkFvNkGniEk2pn76Ja?_&b7BcOKOCKF$PCYy*vR58kU zY)Eky(o+(bp%HZr9Z}yMi3J{<+7dOL_)>wUzVZ_Y{w}Prr%;W*A@9zTFWmTsgJydc0AgtmqrLgTMAuR3LJ$XJ!uLl3g^U|{F#IzI6NV{U4M6^XtnDq zi*Sw?Db!a!<)Lwbngeecw!2iBq;Sp)gm=k4fJi0mvzB#2GY^jEx(=Sbo2ifdJI-Vj>7GWP z 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%0ARSQ*2O(e%U(80W(n_x* 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

  1. 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

    sJQv+|geLLMYcucW;XpYg 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н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 diff --git a/models/MutModel_SKCM-US_ICGC.p b/models/MutModel_SKCM-US_ICGC.p index ea9c4fc9a7571264661ef164aff99d98fe263463..9bcac55609000d0c59526b7505a952323f3fb153 100644 GIT binary patch literal 458729 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

    &gRLRaczas@!+Pnvv5U$TWl^ZV_WhI~s^u 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�z6x@7bv02hVAPc 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 diff --git a/models/errorModel_pacbio_toy.p b/models/errorModel_pacbio_toy.p index 198877721414ac0be44e2be465e069bf9e51547f..ba376c09cb542c9233b2c608682fd3f7624ef12e 100644 GIT binary patch literal 426 zcmZo*nL3}50SscNXaJEngEyl$lQ*+Bi#Mw`n>V{Rhc~A;mp8XJk2kM3pEtj^fVZHx zkhie6h_|S>n76pMgtw%(l()3EjJK?}oVUEUg14f#lDD$Ainpq_nzy>QhPP&_x1ziK z%9$WA3t|h9bcfi=z~F9wRc=S%>sEP8Mk+`hTpG6qRCTyD;82I5AvM+A{vAA2-0fdN z-0p6_6UKo0#@&8O)kF7nBGvBpeIP%`?Qpkmfr*qr7$8eg!xU)x1tim|5JY=ULWR7$=Hm+>aSZnq+`q~^NJBy*+0uZ#nm6lTzaQ51`{CV|y1JR< zQb<`ErAeBlMJke=Mx2J#@ET^rZP*RJ0T_fs_?Zpi5DwuG4&e|E;Sd245OFRCA|L`H zAOa#F0wP0X5t_@rrXh{#K2+9DgY9NMW48*DGvaPk%a$ssld_(3+Oy`LS#2Fy*V35v zt3%~PO3XTbr4~|``=KRWkE-@j)s3k7bQhGblTMb)eO%C+{ern=twIm+--D$u4-BWV KU?z{hT89_1GNcXw diff --git a/models/errorModel_toy.p b/models/errorModel_toy.p index a172db8934c9a35767beb521e35c431bd592eb8c..5975f30bba48356a09036cd28c5bc56a7b22d7cc 100644 GIT binary patch literal 3282719 zcmeFa3Ea(9*Z-eFG)jt!qFECPm6VVnN=Sy3dCWYI2^lgZGa*Bgslhyi3JGa2qzny| zW*U_={?GTU=lQ+X=XJf$eZJRm&XxQ5=XE{zbKmQ=_S$Rjvp?T8?6vpqn|WNO6Ed9; z{CjZhmG(FMoVH!swC{0U<8~dJUe~5e>&`73cI?=&$JpUnJ2h_Dx?#t$W5y285@m_} z|0bP#v~LsZ#0h$iL`+R6e2e*hXcuMZ1dp z$Jjv;z7|F!&a5|q>rZ#ZZqe!YM#{R@}JLHn(tmu0wu=3 zw)>k7Pgak^bz_Y|*)k2N@43ocROjXkch>PFQ=*|Kz0m08wbz}~$dhb9O+Bf@`zOwS zuYO}s$};w;i(kK}l_%NcwDqKin|#*2M)UTbRC@Bwe?QQovnPGrV8SWc*LU)y98Wb^ z*8ioBo^)vWrmtGw-^Y_yul#QM6VLVbq-QQTb<6g`4|~#;dEeU8Zq%cmbpP+ycI-K6 zkS9G;C!h`WqyFjUb&UD4{ zS)O#+i=Th^`*#aHsoLHmGujv3=t(APpC`d0k4I`6!JfeZIM4d@iN~M$u!QfT>0>!= z|8+)LPdZYvb=jtmRrMs}k|k`*?oQ7II09LBe|_~sw_Gj&9CkG8su~q*ds%=GLt9PH zWj)sQq%-$cJ@4Yo4Lr$)eZMCGj!cObp6mWKw?@RZ^rYfjo4s8s_d}ipT-Kv-0YZZB z$vN+K@v>HRdUbP~Ap)8l_1oY3X?x*n9#P@^4ZVEBo#!1m`}vOqGYK}&UOLg~_#VcC%8|NF&yJ6E6_pf=% zlkSQ-b~8Nb`MghjecF$6Jt^v*pR>f1-oHKYK{t8Q{U0oSb>7c=Jt-a>z@7S!2r)mU zxbMRJfl8hP-i$fqve35F+bm|q0vNFl5Qmrr zln=wNuMT_o@}C7q`!1e6yJe4NevCFCi9_m^e(=sIYa|Y_Fh`(e$Q2wltCau4+O@lS z@eAf0nppLwo}M&3qSZM|CBgt3VgnK!nG+|Vu`v$x;sYz0_brJ-&iU!|u5(9gYgnYp0ictKch;@kLHy?uAVMt>}nwLfI>`=4HaS$od~ zVYvkg;)~g^d-#Ut;ff7;`uaPv<^Mwv^7Pqn)~s4f950(yu^}&RY#Om!;&>V4hx;C1 z{qnO&m^{jpq5($V(VkT7j9Nt^**H&nCz7_hthyki%VklQ&~wfHtWLy(5`;_)BBtEp zWkm)UiC0o;Lu?5b_PRla7S=0#_swgl?qxw(Zohaf&jr31IB|dwSo@HYvJbO3OJG*O zrGkclBU_vT2e2VF(EMkgu4TT%VlaXK?vlsqWOu7;(1wr?W(xv`F>(UY;q)0Z#?bJzzBN1 z&N?w$sm}dVijZ(|2$%x+?t={h_Y6P-9vk>#04?AG&_Ln}NB}L!Wx?i$^(c8<1E9nq zu=XL_3vd9E4O^lW%WR03wJ?&lI%}51^I${lcN8xx%l5|yHf zdh6&HWoC94FRS1yO@cMxSM{9{Fcj}3HYEQAcScYz2>Idjmmj@tk=T&IZ{&z%Ed(J~ zM|Yl5iV*wSUE@b!VP<7df(Qe?=wMcW1Py@%0XO(h=JUv|36LPi1_&{HOYm+=H1ji2 z@Xs0%H@b-@8FHI@5`ZQevED3^I^@M{33v3eAm})F!`v6=9Fp`FB*7pKu`!C5WjQwS zvfd50bk7xp*cPZ{d!xZhO^HLAwVXKO%0DGizog~ztb5)R8?t`P>Pg+co94$@wN}pN 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 z
    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 z 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%0DD65X#~`#7P7 zoeW&e5;^Z`u($=yl9S7F?`U6RdcE$3^Rmc*7T-*0zO3$iNLv!Bd$!PnFqnI!248tN zQXACbtkX=HE=3J|@zrD~jPoJ2FT@;j!EiW=anDblehvR>{*-)&pp3W24WDu9#I~L2 z^j6l11LK+``=?V8o?zFCXDd%6b2pkSnu%m?oXw(<`E2}_$_J?n45FEor)oA!8rMjS z+#NHRHzAB(PW5ZyoGd2vC&0vVkq%rW4bi!oN zB<97n_Lv--h4yG9Gc7KsQVn!B%xb+GzV&GuScb!Fw42>)Mp*4v>5Ee{a}MH*>QOe- z?8hJaaj%FR8nxlae73)Q;q|xf@d|5#w0eOczbuloZ}Nre(@|c~3=*)%TdX0=ljKff z<_UrQf^aDGut20wU#NmOJKD79bU`*`&FTfET`#mNuW75t*YMXdyh50bcU7~1pPXy7 zO~`mUTnt(5S-$BS53w0Nvm_p3r*l38vtC0nGMFB|Wed-+^?Y?&XoJ3%Yw6AnR<6U9 ztGsa^{iuL#=&XQ^d74%*zBoVyY|9zh53@3C%XL{c;f$=(fh{*9t8`#LoRQ7t27pb! zGr(r1f~<_;G&8cXQmgOdo%mMl-CGq%V!HW@DKvYU2O`fl1y=F;4}P1C8OwdrQN z0!5EIVkA^*>vg9;V!Md3CZ96CV63IDHA7IFZo6DVUS@iZT4>-)arxDAs*bdKMlPqe z9w_g=0V^(c@8jHW+BQRqXU>)4w9(*SQdot1qvhMu5;KLPq+K)0HFlHbu{lE*v1Q4JWfawCq2GF#1<~`i%8&Lf8=3wnN1itOHJh%nskex4Ba06$G`_(2>wm z&WX$B`GBHj_avw-9ZSL!+I-$nObo{TP$Vo0n7M~yaF+*n#Yom=Gs>0jvL@Q^Pk6I` zs(zL{$>h5DLMlNRS->rp&i1o{dEO@a;_g^Bp)Gx+lgL8m_2-Hpo5~92ZX*Qq)th^C z81(YJG(l&@`JL3o#9wA*N9qer*X^d7#Exe*Rf6nsR!}u*-BwDFea)7rs$REGF42$` zTcQ%w_L=R<-0eE21;A0Dm=Ln_{__{V|H1urWxq23Wuz?$&7e(uZhIfi4R^on0yPEqUxZOQq0+Ku&FarmW&?VZ6FdJ;WEC2r9 zCo)ccom|qKINI&L`^z`b%d)bn$K1lcu#7~P_3BtwVE~CMTo;CvkecIZ2q>VJh?rF5 z+__xCcD;~QtU@0mGzpSj@dzDa#Cn$y`Kzbs0P)j+Nk?}&Hj{qG8Oz+u9q!9+R4n71*b-k zm*R4ppJcxD&CeBf?h8#ao`uUvJgolpISezLKOG}SVbBG&`X8xkf)>AiR-|OFCtM-D zC`OIiH(n}#EA#sMkicA>PESFK9pg4NLn-K2RLIRai$^8?P#9KWx+hc7g6=-SzUP|z zid~jmkT}R|;Pka7=rHw-NmnLB4RJP+6m}^;!arosdwmr-9)p3bw$jVUyxrY5#-fkx zuu>{kUl6N6%MX7>ndn!!xJ$k~AYW6+p|&7gf!{z4nR>3*UL27qb%ncaG8*NKy!L%D z#QXmbg(G~XPZ>i8Z8ZD_)k>~#QG5^o7?5h5E{TLJo6fdOa-ZZTj8ozSMc@z)s?k1% zW}(xT|J**qgNN9p%MVCl=^+^Q77h!5ibumC?tjfGdhjb>orYOBAL8loaC}bI_3(UI zKkhCGe-#E{?AxzlJtn+BxWVD_qcl47#V9gaFAMTY-3tCTm&j&Y5oA-X2(sVFvTHa! zkM>}Y$xF6F_lI1&_Pc3&zMcdPomef@h)Bd`rg3Rgg zE&MG9Ds!TyFMfg6ON^4h4td!(<-J>B=){}RPWEmHzFI&mHjVuDkZ2BT_%%(3ixNyfXff)C=2}bd7+$3Ca z?Pe@bWj|d%{pkzIgAApRD_@gTUXT-|_yBz_bF|n1R=XyKSHH|9^4xbiy$q}NuRnt! z*S(dcc;XYq`cf87C>f|8(e%ezmLnADn72FzPmok@2~mk3pe|G_E!bT?myw!?VPUAm zQgOUwSZFMvhuQ8+2?_;eYHZ1BcX|{07k`wlgHsgeloe1=qQ+{IwM~|bV{2SGOlPu= zmOaL$|13uj0~@FZFQaiw3mfzRR8lti?FmL9N*{8hE-Bx_GzevZwhYc2Jem={soVR+*&()2%2aRxGoLyBWw zdlIHTG#Fwz%9VyT%(ov;q-|44sTOa%j`H_V1_xQt33*Rg5_({5)6vA-<$jFqpy+pq`>cG+cT@7REUSmc$`2KqR^k zuizhOn2=OCa*#=CNylN(U_`Q`yn5UnKEkMxD$=s0w8vpEmaYfIWzb4Q?*A!+GL2ac zBoJwia!14-Z7ixU{S{@WO=D@8glmUX5~6^<@R;R4_x)c<#A59M`CWPlzIO|LCE&!P z!LKAvfgX@pg`T*c!@|$UF0V66!zpgD4XNyh3NNnv%lC5M^2~S5dWShAeC+q1;(@~} zS(X>$GYY(%WDTLP3Z&3l8aA=20D%c8i9x$R%(cp}iR*`_dW^2?!m0kwPqLbNI>d;A zKVIeqby%8Kt=hv&1*@YH)RF1tFy}LTrD)##^8aN8**@ZW_2%mgDBk*RS~HY}I@tE4AYW3Z#QUfXrOAPR;ZoxN z=bWfl8rV=2NWM6??;dyAmknmPW+KV*{`%GjraX6P6J1i8#0x+DgUmL^Cr^|B8|Av> zAN%?*sjp2s#O3h9yC2Cqepi2xW!N5v^H07Yt3a7Fy0lj=DfL;ln zq6v6KC3H>Zo%8v5$QS?4g1k)F)!#>dUS0y78IDRyFB8NqCX)k(SlWk_=CH}ku!49F z#RL?7B{PVOzCElgBs1?eO9BemjqVW!t~Whk+{*hz;UDSDOJ6cmkXVGdryt%%{zD0w;XF`0ji79t~j6e~j*TjUUe}D~UW+*Z*Ort5P&D z=`TJnGt|lX5U)?14{>;OKE&%v-$N1nRGJ(bXH6VhoewdqcRm!EtchbGU;teVSaR7v zhrA6mnKw?|BEy05aBl0H<=V#RW1!da13F|81M}8oc$l-M$Z#N9=2kB<90K>x;0nk{ z?2hF0lqRRg+2w%=qB0Q9RZ|s70ICSlIgMKpv2#BZ7!j2rdCraqjEIWRp1VzfkWmrx z^VVbt;Py;e83?%4b$PvA5d?HA76=xVA%si1-TwQ1ZmonC-d3*_VBn(&sv;)%tLy({ z&oQn}a09T)YZ!ljP`{5jGU30mP*rJ!`c*{z<_e9N#AGP>Oftz+S{pT^9SsX~))WZg zl}TZ8))cX`L59AX3_f%|6bRv1iqDK~H4JTzlZPW$ku;|&lIB!Vn$ygHr-NB*Lr{J< z4ns>EU2P`xIHL&>$MN@S5+Ts&)zlD2-#9T0()kdRV&_AVaBFy_v!=NzS`A}Dm)_nb znCX7VfKAunG5JzUZ9XOfRuSr)8BWYLuL9U{=a@xE)7`d+JuTz(bqMTvkLci-4@Y!^ zG?)7G_TNXh*HrVxSHUv7-vO4MidV20NU!ZGLYgd<;cI1Jrc;5)I+&>DvOd~!%ThX& zvXt%t?Q7nlL+MpqwCXm>s#=zcxEN(sd9|kWD%MAJ2+=Kf(UA!?g1joqwc$;buIxV*7}&7E7!KtoMH$*Wt0 zGSx(x+%*Maa2-KUbp$=t20b~9WRlT*UKim`HJzbz`H+E5j@B6BYbSTg6rd*Pbh-WyJJyuETN8Bh zdTNA3)e#a^3yHcfGLY={@FK(93*_^_2wtkqO+n6@BC~jeIo0M|o=-g|bGj9FXCyUY zCuDtL;WYgaDx4vmtEve^d555(Q%lw4MD3b$?p%to|2jKOyRf@8k%16FST!LmuX;qZ z+z)X$U$T%I2p^fZrxr6<(nM#OAcEB%C~Fi4_B4zC>C%ir%!UsLOAeXSA> zqAY!m^_bF@Yja>xQkJh5B8}fmm2M-sbgL+Ru^^RD^#%lJTsoNCHM zwTY0qCX&q6m}D-aQbwFj1l%m~y^47`u5S!5X(5gArNHX-xS$ZI#Hj#v^#tFu5YTr>sLu|~s zNN5Z&GY+77ECR`z2qbGF=~@k)9d$RJo!U1F3{P9>vB)$W$=hlSLt9oU!p)ipH){+x z^L1?moi!Gn@zO-i^_G~ipc?9t1g^#$Rb8>cYM@nW5D+ur20PpIX1$3(u*N_zqp#|= zNM=`K*q13?H_|&}6Xsg&4W6Y<)w*HYKW|YS@w~W~eMtAPHI&NrOL^abO-(>+RqXjcU8#eW8~Hh`L@{j^FBqyHbSLZL#14P*P5iVX*+bA*|Ddxs?CN| z$*umjz0&qWdav6WNVU{U$J|SXP#qgwAtM*y9P9fJr*xNA8-Y}99vo$skMMBr9y;FeF(2 zy4{_|L%^vUkAfxLbWcZCXc3Io8jR-9%`i026M821_Vk3L%{!dxv`DsBYj~QcHIX3@ zfoZKdQt8nxvPh30wbmdthi-p>^4YK>iZrJ|GhdEo50JcH_K2jLbtc_xy#n_CsjM0z5$x8{K}efF2dqE!{U67XK>uoL-~tJ z9c7}qyTCV>>uPvywxpOE*%2Jq864-RCW7NSgX28aXt3_>W`pCFs!`qSOl(u#?96J@ zb@+_0>+l(0*TJ!TvE?bDp)&|>>51EaA14h%;hYco{68mKbcVt$RimHq1%iB1qcaF@ zsSeYAMljBYeD*grVF=t;AvkgQ@G2xi*E&Pj~EA0cVIkhI&1 zp$8~?bj8p|fLU*VnS8Fcxcm!T2nYY=<9E{A`K!5oBsZ-$%xtp`ZBb}2r_zwV-`o>0 zgSh9q?w+#Jybl?K=BvpNHRnUdd0lOa0Jc5?*!sv}%|3GZSs!6>xFAMN2@3;Ajp+!5 z>zx$tX72mutG6I-Ze%OP?7_`BapedWzRij2(#;gUC2pqhIdQEFPvO2{9|3NC1i0ah z%k~gat+A+Wqw$fPx8CNwZPj4{wrh&8gl(=4HAIN5EnPC*Tb?#osP0QWy)PH4eRx?) zn-Ob+lbrb&s-NP=V>;Q{6C(SW62k-O>d8KW#d;?e<7pt0sMZS^yDtuaydGX0IH8wO zRGZ2hB|B|7_e0u{-iIOptS0~_X&u;=?$5XbSWe{{tC6g*L1@)2>JK1Mk4F8$5-FFWmP`2_GIYxKklE&9X;!pv{z2j^1{ltW z^=WxF*qpCbS?!75p=wjTRx8k6i3%pNgHqhgva7OzwbKv*R6_(%4V3ET?N^iYQzOG7EZ5MBfULoStW~YH%&uDyF?$4I4H1MjL=e^xId3^c5Y}K3)|yo!RH?ZJ?#H@d#l(FFJSk-|Ms*0_2KL9wf$gHzj^@e;_x@L z9ecSm;*8uXaLNmY2!k3T3~I0p$~A8ZiMlTcK$#w15Ln3Mt5dI`ywko#O}?6xQDIYG ztg!saSCg5ZeGf(E=}1=BK*(zO0`)#+0}TdWEnU*CpD?R0R~Hy|<*9}jW1c5?6f8ZF zKh-cq=+1*4sI@#?^b--|8_cz&nCh_z;~FB2YcPz< zqg!MOFo4Tb4M%Rr6NYhlp5Wb==Lxp|^m_~Y^oo5Ty0tvIa{BLJlD^hU_j$V-RK&QJ z_0dnTsh9dEry~x8xxVrXEEj-(?_Z>lH{&Dv9n9%TNpQO0kf8m@P`YRmpbH`V!N84& z*utL3h=u)8lJ7sK+7P*%6U}5P)P*PY(olM?^+MfTsaB zYk%Jur#8vU^*dJa!yuxn#E|o7HI#Ut3WFgu{LFX%~haV5OI6r zX&V&;Fxs#qj5b$6%BF>^wyoD82&29H6L~B8-!Gt|wC_i`+NI}oP`ya3Y)e*~^sm^C z*B@h3e%^lrwU0Y<)UG{tu0-7f+J>qz33v=ULSc)Q68mDQ^p*i-=|FpUiY{+J7UZ&k z9_xYAxJ!dz#4;9exm+qhx}YBX@E-dCvL0TfSfJ%oRGZ2>SPj|oMI?i`x3qF}GHFa&nm(9XP&t%f)BI(*Lglx}ClX${eG>i(Gb8k{xl z%LERPU7%OKa}CzAdJFU;2*bnWrk!2=DgLJ7Hsxh)70PZoJ2M^f3d7KC|_3xjvk^Z5u+M9;2pAJCjY}je(T9XItX#mt}xx}63=02r^;ZE!2^44fwmaXR-e}tR1 z6yGxAAq9iN+{;DZ;<)d1$kHwF7XU|(2L6J$ky}wVn{QkYQmS!z)uDd_|7bt{cQRY0{cb@- zS?k3G5p6In0z{B~oB)!y;lz`4(YXx-licM-94!KtiU?RLYzmbtcvCLbLSJcPy8B9- z*ZWX}I2A;k=379ZX+cEWc0q(ApUnbiJslzf6&e8%~4@+P2YSGugA~NzVjv? z8FLR&BCjZXqc;L-3g`V&Hw|vbcA*~Zb`Ow9GwK+C7Q*?HM2)!u`y_u;15k@tYmnbvhN*{J$ zm%U1ZYi26YU0)hvGb^6eFAb}i5l`xu2GPvO>YgbLoS7BRW2Q7%W>#D)uHE>LUjt2+ zSF(5&C8_NfOo^Gcmk|zAnw+9peYE;)+ZplPk%qt&^3lQWeJozaAJRoXLutUvOu5wQ z#9lr}9Nu3;_cswH&^PJRMJQJi!C zIPERumq0F$hWyf?7hj!*!8jiZMA?#Zf8K*fz%y`#)011U+u@yf-;E1}($E;ES{!ek z4{48ehPaYIjr$>lttVZJ>0=n^LwK)ycE?_a||>SrZ*C66JFGh6?V=RV>$tEFnYAub*f zAa~~vFc2gc8P~6-i~NR?PQFo0>L^vIMNfl8%G26DE8t-aC?wy+h1 z4<|-fMo?2}P?N17j|Rh;Rs?kdP#RY12c@#f0a__EVo#F>WJ{;cGYLReR`r9|bSC4+ zmdLexebUe)TWD6(5Tg}AHkWVw5+(X?Y{L;9W%D6>$?@lO{~Rv1VCxm-3$pLL{xfHe zm6YSNP-wb;4u$Gz)*-I#wjjPAZzDzN#_^!=zJ3{6k3XcZAw$+!Z<3sp-(8m`kwZ|XM|1X^-VLsmPO!%a=H80Xor+F&nWCwMM0AXx(m`9y zYYRHiWr}7UTt*{aV~SInYKs{uu5`spxj3RQrZ^>~Lz@kl3xR(PqY-zV!QOeA6x!REsEV_TAx%(gEAMGDdTuOPV z=m?g~it`HO?RI5uDH;&y&)|zg`OKTRb2Fdrs)(n^@8rWJm+nh=pPZq7MKI-s@5wt& zXnB^?VkkMs%Zid{-gxo^b?yMV&j;KRb4)2=l{t@9;Lfo@lFo&*7hk_cfb_|kp(1$V zb)ZPXOl5eAZ_1K{nS0E{QLKk!CNUIm>xiegAJU%Yeux>1uS*EF!2UIMtzzLlEM4qB z{9B6Z_U<8!tK}N*nE@4L&`eAJJeRKL#!;CeN-@Ji`=UY+*4ObMy$BP^ye=dP?Kx$DhYD=V1CSL-#VPS}z317me=8{5#z zW;G37SsvMX{2A0@OV4dHcx6S9?Y2Ms3!6VlO(_t*PH@X~JK9hgs?uYAAIi_+xe${R zHu7DFoWWcfp0Zvvd*h0}Y&2)Lu{UlizHURZw}B~JMcZ^8GnDf1Fg!()+U3I^r~ViC zha8bb=c}M@vUDWB=ydqjZSiqUjF$z;_&JxMGCXB!nnQYxTp6A+RL0^mP>!l-ZAomi zWhr#%K7%UINfNyCE9c696`wI9xjL1hExwwByxfB~GH@Oa-h@`X)42gGPDS-v)m;-W zU7a;)>$+=VpOt)wBmP|9abxhvxZa)LP2s^n7^h;!XV>ef3ClR!QAhYp9pN*zN!xLC zL2Z(EoDcCR*sx7)AkL;ZTi&S>&(_X|9Va$XbKaj3$+zE-fuw5pBl+G_=~Rp)yn`EyMlY+Gue5@$7VTH@w{#M_)<>$a z2)>K_A7t8h@z<0`R-3a`OWmCJ@HMd@?_^9FIqrveJL8*L1R33y0X0%@9$g01bVZL_ zQFcbBqU@K>hj_N#pFh5hLHU3nZrFSBr!-m&IPw)w5DA0N7N0UKYXV8$ej=#ke#rQ# z)hRbQLYHbomnKbC#j};yB-ylUl5Tq%xU^EHAxd(i;()p0yvNraWhT0Q7$70MnsRhz zY@R!Sj#|w~=FwrO(VDV6xB7;u!A5JvyKQEYb~bx$!*J;8Jjt45ofUlzAKKEwP@-Y@ z72*O+d_-7~lPd>=r~E#+HhgHJM>e3z+S$~DtvD%IMqrwm3>(^1+L#bcI=8?7>+APG znip|~5Xt@IyZ#*sq0b>wr>oC#9X;F52&VhgA;^oH*h%I`cc+#vO9muh)&)utqr+5jVGxx4|H zEtg%c$-o#nD~&XsGDak5CF+qF5YH7gQXhH5hOEM5o7OS|HHU5bB#*>E?W z8LcV%Mm&Esr_yoBGD<{QW?CI`D(**AYm;A-tHadOq^ZO}oh+ql-0c3wV4GZuuB*|U zW=-`*vzc|lB@f|xIc6k_%|MaIgZ z`@=Y^H0C7KjBHBPXbeG_kyYiY$qzHEQ*jPUGZiRhI6lqDDrK}kdX+IuWwio>Qr2Yy zp{t>!8+iEP-5yRPxqL;Hb_flfYr<5sX7~tHX(;t(tAb5qVv^aVfoRikrn<8@n{=kB zByJ(feE%7Mve3(hm@G-L6Bd}8PuHZ`@rQitPGca+Ok?s`wrpgfCEES4>D)DPSQz0) zVB%T6LYVTY8oH8Zact2&$Xg{oW*h@Ys6(M?+NCxIi(L0^7$?^qHA0pg_LW^)-Yqr; zkH}kH32d^flMiN`c5gyFG2(_8$qAX!htszq)qNRKd2vB$HNT@C%RA4;0ugN}Jfm8r zZH3zAbj;bCN3={E9+6Ip}AL5ma^C8Tf_W%qQ z@^Ao-B+WDgMt&x_@)$Ofn0Tmu`TI0^QO3-&l%5fnrF39hmeMY^C`I(cNc}x&Pte0i zJ^7@|?m^7M2&&@r%(pDXOMTx6h(L~pKBQ&z$tI*5ZI-39al9*u2=Qo$co=TuYK!J=$kyHQ+CT#HR?wq7*pBY4B{B8f_h14+Dk3b1mnfxjeot0cj5!)aJ5M# zb}_9Kvgs&rL&t_D^=3%j(48`>UKQ>LVtnW8sQH3r#;*8~VjV#YEJ^xGZfMvG7ME=? z{+$m&HRgQKp?UIDE=Vk8n~pG_H>E96jn7c*@q5q8=PhIjMQMlw#?NXAJkm&V-UU<=OiXdG+_c{n}1)$Bw1&c5+`Ym6o>oe)}; zB=oT^8CWi~#6G<3G&IB&mRe#W?wa&$=zfUTica35 z)1-k#BKIj>lKDnud_D19ipX8mU ztiXofAednpmQO9U=Bk(3qH`E;4Gx)6JHNecOlrzKl>u@~Y~*X`*B$EL_lWFgAzYkr}+LJ|G|*o4 z!|90OEGy1ii{+6ny?P(GolawUakaJDdeb4%5xy}xDif?2Dh8Un=FXvj!$}H_DvzBBX+VN zqA3|8*u2N>2$%>4FAi^>C?s`s^U9?4nG1K6J@NyD6hsZVNBM|Ycan3f`HIMn_{dKX zU}d2%o4KNW3xX-+cf>?C7;$HzNbxLcM=(5A*hqXRf|+UE1UojHSZO&3Oh zlB|m!@lh_-xF!Ur(Aa4>0wpexx`zDS7r{&AN)zl=?-_rcfg`@jfNp4U&b^&U9C6kJ zH@bzs4rwBfhQ7{Zi8$-jjs&yGP7{CR*mhri7e6$=PIJ43BU9N|v#fTl*>bb21tZgP zvkr!h98UO<_5q_=l1i_q&@L%wqa!u~u~k{U#M{zWPj}uC5#c1A;Uw!Vc)*gBRkGFE z2P|oD$*R7FlB|wAlTWf+<^M3mD4P*VAFm&d`vV+Vl7{C}gQb-eJiphXVVL z%kbeho;;=CWl~9~ymacbGf5=FxR1f)dcuC@yniQc13QyJvQVNS9IGV~*!b#`4^RJx zD$m$=<<#iT0F9YGgm^l-(Gk$-e}b;rJ^9CV0 zbuzH{5NT|Zu6?>*f6{$Db+N$}*VJ#pAkFiaufCC`7&A$h;=cX_Mk_FM`hDJd@l`6O z*5BsxIC?GBs`pJuMIQt~$yMZ?Xt>Kkme9nLAN)7K!-pF#@Ju!zry@MG_&IcYYeTry30SAn8Op$W4@6|UFckB&qI3M1ZnF?~U z1&}<|oJH3g$RJTgrkw*Kifl9Fu!vmim*ZPcgrNg#lT7~p{FPthpJ|8K)3=1+mvYuZ z?m#%hSqi9dO_NPguqU8~HN}?1@X<2F!8yD~Qzhmtr}KsV6k?wc;-*7KQbwT#|qD3(-Du zGNvb3;S4jq$pCQ$(O!VYEgtsB_INZN_JlFKiW1m>6&jdrSN!A+v1axRq8dgjEyjD| z8Ad8?6MKRgFwyDG)aCvEad`8W$r~)l(5k6Q^&Gfdsg6mDQW{ubC3RiV%5EE@Nwhr4 zXu799?c8#0nD;QA;O@r)=@K%PU%K?xqc^!4Gz2fHI3f|$loaNALm>9U zk6%W0n8sz&KkRdGBK&|Ac2Q&4pAOHw`hKoYTjH1aEv6HhqxKc^7)saLGJ!_ezJ)qy_oplRUj)337X}EP5m{NGd;`kh`kFrNIf8?h6<*CMqea5ob_i_JjsEDxx#g6d)a-8{j9uc z*q1qs8mu5|U@iE)T(O?(*l0AgHZ;3zMx}NFd2~*LPcaQZNY&GX9RI z_ny9vc%wFP%nh!=V}E$(rlVY&3pWNEN=>KKh4&zaSxe%Q9FLWp6uC1k-^14%if}#e z42kQT!=unFcxz6(>FEp#3P;`7kK-PZ;UpskH%IDNX_6U)ZOSzY*8?>&lMWI*cUgBm zr+ro8GlF9=ybB=_Og%RcRY3a=Z(-uymG2{M>X3rpV8Ft$coWsjDHxdoWm?O@Zy>zz z2Kr5KwAf8LKwfvAk}C}cFSz2-K!m{=g$4o+?uRh{-6G!ru<$B2f&U4AMveRbIE{z@ z9F6at4A%3-ci(G=0U+l;VQh$wqw0?*iVX%UE&1y?O+*8crC(kDhgl%cKZYhPm3aH_ z_Z8_tSjp?m5yUh^5YrGrOatZ2c-v%-9{GANLZb#lqntJI2Hg3OUJSWALa$Wa59xKQ z`ysuja6hEOvG*avynMY!2p35 znGS>i-j^ewdyk@}fe_!Tvcvct;N7Ws1zVhi_y)=xT9%4)YM2UCl2VYDH6*~7Sgims7=~Wxx3V$BUb2bgdvAM zeGEl(J{0j*qKob}MTS5mX$d!As+Tiv^&)O>0Hv?X305wS8-kVIMwnw+PJJRnz#vU$ zO_3pBP^YsdJp`8fIAU`Kp)1q87;T*Y2#YT2LqK#{N-xRAFgHfL5&R8ALYJi?i!S1! z-l1uzsLzbTM(@i4aLW2JwrUr z+ntX?HmNCM?Z+XT)Wp_y_8yzv_t4{z4eC7(+2kP}5vwEEu(fsBh_{>cuk{KdW;Y38 zPGdyOZqB;-YI>Zc!GeaQt#+C@?pD+|uPI-@EUNntWB#O+Yv%ShuB-4ZPG?| zw@KTa4Ks2D(Z^-v738Ic0;ROM)r`0&Aun#5(uWuq?_I{jSm=Sr8J9ey&A6<9w%fAQ zvY~Wiw4uD6Ym?iyd7`vU`zmX#297;Q=PLSfiUoZhr&#h(WCo_&fw<+$5`?W5hZP;J zTP};OI&QxKoF%(uya`O&1wS6$QX?#Vi+nn06xT=nZQ`zz4uav7N)VXrC zte#fAy=WMZ&)f#{thXRC*P6Vi)e0U@cS66Kbf;+r%3cxdQ$(;&LDc$SlxN6*S$^&*U@FpOw*AVknmVbIXD0_DNxsN=e9#M_Arx%-vPzOGfo+aJ%5 z!Vn=?v@tUhGV(Ut5Tw;+6F8bvMolLsMQU2^cuGbZsf}zC_vH6_`Q&aG+tWAY6Fzd+ z1UJ4f3&4mTUKT_UQ4v8z1tB8X4-2rlKjYO@=y}3L-u@tZ9>fp8(QV5h6A?T&NugG z{JI7jPuR*kLMaEz{SdFseFmirDR)i0T6fmOqrmyl!vi4#xC(Qg)T!H}W1)<|u99Gv z(?X?TUvpzr{#zcWC4n!Gla}V>>9+TjCeLc=iSaAwxCz`OSuH&=exXL5;E6yEuFw5B z-fupXCpa9)HI8ymr2TVBl)E(dU%7@$89`)a1d)|;HTP{fQUZKEx*REqdwB;OVKDbY z?A^|OGzRW)j9V@{DcbuF83C8X#@t%5U;DJOGS z?8OIcYdPDb7uB2*;cTVhY`zvmfLm#R+o~}PXIqyIEYC`V*QOPy5l5+3n66iCuw`3a zF8l3jxdxrd2M^>{8~aBs4h%ONYPrKx9;xm>oT@P^u#9lC(r`21$T0xT`4B98UlxFm zJ-jTSEGlo@i6m8(hLcUnQAUa719+^A;IZ-nJXUVvF|D|nfG2NKv~0vTBh0Lfq+FE| zW>!Wru*ygVRvE!-rNL{fW6)ByHB%a%wq7oqeO)#ZcMUyTuYjjy-;@)9W~G5`WQ-zH!rEGa;Y|F&f2D3Q@IBlL% zIl{q8!@<@oVEnZ%%PVEwf5((MSejHWEp<{-Y&YLWMG@MY6goqFZC3;}w8XXvEHu(}7jwbYMk9YgAwNi8kr@d)2%Mr>clkjfJX8BS@-> zq=o92G6v!9(2zcPqvsrfneuQG@B zmY%r%_xoAhic-8r-IeJKWs=V|?d6oQ`IF;w<;>|irkusf37SqRIj)Kv+N%t1^7T)I zJ5|D+ZqdC0O?o)G8<^x&G!i}|*;^IiB~CHTz^)>&v@8|z$4GuwWgwHUQw?WwKEz92 z=R>^qbv_iaIbBh|XqZT@RuzF!RRl&=21fb1i>TCM%OgChGCazuPsHXXfy-Hw4#3MT z573G#!lo)>Q_K43Rg*VvS{SvGEMG+!R7DJmblxOR zPmfKH7F2W)kkvS(x9}CgC147_-hoa@M5Xa9kp)H8nA$x!*^Yze6O5M$)D#!;^e{5;+=J5nh_> zsEA1;Nm3OZ3Y=fG;jICKVTj5o0MYn--pAI&g2vzHNvtO9GxvMFQ5k=KxL;!1;X)TZ zNqQSi*k>$MDLqSg^zZc~IX-{7f3gco8JM%QdC%CqCX(ZBM#P;Wc&8S;a|^UJPVGG! zXlnvF-qsP_aX%D@d9@Sy+$NDbz^NnDrzYy-Zj(0iINFp85%`(=eIUHm5z9!|^tckj_}B8b?lglaX~zIYo0N>g5V> z`6f26XAj$rAE7}kH;F?_C8}5+Au~0R8F&9`qj?_^P;-yv;4lxza>6j~I@t{`c#9z! z3G$_~>$ftIur42T?9-cu+GGZKp3q^^tylow)E3@&vfFE-IBxaWz>Z!Zz~ikZf_dr) z=BXo?r#5**o?eKI1%rb;)kIcSh6NokMP0vY-@Nn-P&=8hQZ`L(Qi@h(2?xQS7JMux zQr0G)$hS&~0HWFeq9xsw{~J2A^n`8=+uZX+#Q9Cy(NZKGYq@E%P@^$N85@u z1{`^w&>P?7rsT#qgp7Poa0p-0DqFrW2kDlc$mw?tF(m{d`S7rOI`o2!5;)-fBb42) zF&ydo;a3y1eu!Pz zH@6s|<$Q=8+4&I9;?tfUKT;3pjG(NBGL_t&##6YnDLji$o1z9y1a>v%v8<&KgX5Aa>f2JuRDlqA-o{i^vzdpiX;A{nBD|}iB&J2fL>N~SVO&jw zaWxUf)fmR5vbW@p*!>}GFX;Lx?jq$&hGqFi6rGS;E?PUYcia)k;-XdjC4|LNs%;iq zrAR*J&h1l*dqcE}OVsu9RD9lF)8@v@c@O8*`G!iFu$&LdHZp}SSPOSm~ zwI#@eHC+1{K$9HcIAE=}$GuAXlrhp8&g9f8;EAnaPQIEV@ToQMY1Jwb=G0Q|lGA-! zI`QUyC}RHzo@yx{O1>zuGL#LKa+;E<#A*eGN=;?+msHvajA|oC98`iY0IQ#IrGQ3QlmYYAG)Ecrh+tbQ$~%1)QawGPa~+tqG3>*3ar{t zcOLudY`Ob9Eg9Bi^ws6E^-kT>_uxU*@3BLaxA^H;K}(1UTeXY4@onBjhK_t^_mDt+ zYq3&C!l(U+4%!GxY9lDAH7Ln9t_3UIV>#H-!?B#uk=Lb7CX`cAHerF~?A)I|@2!a{ zd3Cdp$-|XfqD}6aA`4#wqUL%){+sRvUjF(zI|8WM2%u^Wpz<_`2ZF0X_%7dn?bYDk zt_FA3(-Y2W0-+bT?NCii*KrQ%=?PD30;8ZaAj{bWJcTci z6WI~E2+QgW%kosiLtyC%)f9uXJWo7qf0JkB7-NQFEor4Ym@V(A!)JC~2Rr|gR++GN zhGoeY_fCRD%%4m}IzzM$$orFQzUiMa#&-s1dFs$UKb~jErw=;fS07*h2b~km?joqF zGpNevnvuMzPCoH>TUB&GQflJ$)oHkt^P$LuZAg`~CT%>J#bgEkJB3uLwpA8$no| zIsCVxQpB(kgw+{@WmO`>8j59QvyBYJvVvTw*J(|Xlr2=%uIg5uRGET6^H46alDZDV|+dn?ZR{)AelFiZ#Xy@Ed9{|;(v<%6Dta0(X@|@Bz_Ct~x#3IGLNmbcBB%PgNFG!d z!A+gurh9k>N_sdv8=mBwcq6$^9dV}mD_Df}Z{Q#8$K*C0<0Yp)+Shc^*})B7a+a%| zZoXWCOx|E^fs+SJbP@Q}5q#1upiU>+v@E6PNOw~s_Kc9IE<&O@%4zbpDFUOq2#o3o zMrp(3fvu0_J^SJ_ukM)7IRT|XE$E<)ydbjVqBIZ< zL2@dnz0_&Lo*>Io3(5|c%HLxlF29SUqqE^@XF zG4E9TS+5^@Iyt9H)IHm4{@ScZ9s7Y4ZYE1+R^(Je{*UbhB?fcg-krm&?5N@9Q z4O3ZqUD%uRahpwGqi>3{xt+?h(KqX0kDnJO=cPm@bj(Wc=vf;R@%F@E@X!1c+4Bqm z+7xHMUeVmZpUr~Vu0BJVjHb;x*scNuie6&;5%FE(TxQ`A}kZKSGmyD{XIZ&#JZt_pFy|Oqjj0Xud3ck!EF^vNX{)=i~PV z`S|P?$y(|S4RY25AHA;x0Dc~xXCrAzJy9WV>@X=xzSbF9f<{frvXPG$=zc-{W{yhPP?KKPr$y?4N+Py-6Soo2(r^U)nE(T(lI-ww_$yR zE%n5fFnKK+*5IWTK{n=!ARExxA2ldEr#dK0(xC-2Z8nTeH!W8;Oj!)JT9q|?Xez5Z z!C;}OtkQvK(3}oAqrE3AG&jPq#JFRjUSpxzK07E`y^fW`P?$RR=O19?7II5{j@c&d zNM14=+P`9+%|E2+Hj-`BM_5r$mv=iS_CZ+DEoKh@LXXDm!Qdg+3^5QVax2Q-Ckc0Em4$5IdOTYAb3OE6JdmFOdyJCFbTE2(%={ zFDsX%RxG1xroN_*;7OIv6%{IF2&%20~__yrUfqlA*?+&^k>ehRCcJx;pjgLfMy0?R!-_ z8_Edk5?73a#;X$9KC;ce2wXjV5&x7=u;=hOm}6u6{ioFXnAp>1elVoPH>3=2aX!Ru z=6ncVcMqR9F7|NvG;GCLCmYZC5F66@kT&WYPd>!-Tnyiav6}bNKqlHkGO&Jn;V}?s zA+cN(0hT2hZ6%W7>LRmY1g{K)S4bh%Fm16V8Ev2?8HYV06lEZavQRlelO-8#9d9tF z)EX*SriC=nD6z(fsexuV$OZGWY&zvF&q>~^;qRvl{+_280wPp!wjd?dkPPd%XdoJ$ zltE)kQ%y01!{@U^J66ipmLjp-Xp=wV=t=`PJWrUAwP3D%o9bXN$5I{o3GG^lOAB>m zggj72%`Y)x4PrdFo@n+6bQ?aA;nk@@KoHu#v28B4=->DLhg84e2>Nq8!8s1aPKQWGf zh_mtM#km5#=5h2A+kCzPr4L(sUVKbDg8FRdv#ba%`!DbDW-wj3SnLc=*(%g2vPvk}#83!oEtfT8bkQmWT1EFWSk*ToLrxkX81Wk)L2o7VR6K{S1K< zQ{EoSv|;?#0JLTs%B|MN11=~z?|z8+T7vT!Y>S=2FC9ucAtW9oeGvbabe|s2ryVh# zU@u)Soh_+HQ@XSbC9+SNh8=Rl4203e9mo4XQ5+i$DINgzZ@q^0%e(EA(+xp3nr{LL zWYeG~Hl4F3nDH9yiya8egTWrpu$_E$5|#NbY>#npIsEno{B(Ht9^+B8HrTS1o;a7K z*ji3CBbGCVqntHGEJxVJw0z8UDRu#1gNL+LP0`sv^nJ8tDVG@om-|3XZB?Uy>H%#= zBc&R{Go{aNb;NE&XnZT90$-L;nR1JbAY!vDrRU2(VP==CTUpRv5S(PCoemkJ-WBWR zE;gj*P+~6czA5{oCr|zeuO2hsP@cwXFm>1{1dzJRm#g1UjYSDV0yl!BHx*Xp|{itQY zU-sjDP$*Sf2_daT>m+4B@^eo;cFX&b+e22n*H18rnhzj|5g<382;Mo2=pM4#T)0K$ zDEHRNt*F-(0A3iS4K-x7!BA51WmJBV(FwU;M(T)+Aj>xMId1^x6g$E>Ugwp2ckVG3 z4Cmn(YbcJOg)>%7lKHpmpM^0_@1&qL@iEt{*cpa1BbzO0QdVYU#SN0-P2$RoxGH+nm`Y_f=6bmg*f2nF zik%@iGsA5Yr_QC|$?8jbUYw&5R~w9Xi;wRrID?sz$OU zJ&oM7rz)N8xm0>yE?{S`mMOFC)ZKzjB#C<}&}$dOf(5H;m6TO6Szc-oHhELrACQ_L zXN^E%ZrMo%R+LJgm!LnwqU1IoyMJT!Am*f3v5?g+4R+nVGF%Oa_8GMT|_O#@j^%Znm^yBd>Om`RJFki`d9B6~Kwc zyczV8o`AP>XY)GsVLQ+0lYQ8*8-c2)?o;fsWLqU?c)IaoNlbif-kEZ#oy2Zt+o{yp zblN=149D42LkH1WHCSsl=6Z*0T9U%KK{=<>{{JwcB2J#$Hz3%hU}o^mxx=pu1W3tF zlx3hSEc2GWAaH}tpjCX6+u&r0bFqhuDTwSrz^14jbV&2+T4pgyZzs8D0-o zC8%8x$3dl+x8+EpyhoQ+#R0mcTg0G;cFOnO!m8;g2d2&#ai=`u2<3R^1|mD|huD-p zM-$+4kLt+5c{r*Q-0>=EK#zQKlV`nrMAblmM=w{+IT z&gpz8Vp@ZSHv5gI+u;_QOAOgW1&c%H(lwJ_t51&OOSZbwv}lt*-m=_{d}5+@E7D1*@uVS+^?6RkCc@Rjmz6DgZ~1 z-TP?a_=AeE1|dz$&F>5fgOD7(VGvSMApM{dhB6luKuGu=Xt-?Li| zScwd!!xA>)0T!NZPj6D z(xx~^(@pU}G%X1(y$Rd3pJ46W7r*&OGMPb1n`-D;cA-S=o(m#uJ>U2@ENN3yo>}L` zQ)*XfK+?Q;9_c1=XI@;DuC1s01lCB&HYMfmXsK*2leM#1uQnHEJ=suWwSKO@g!PX6 ztxtQWk}`O7?W`l4ZoNe9b;~8Pp;k*YBxt_*&^PVsOT&Y%`xDG!JIr44%`bU3QeZaA z;kzUlgq>^AV^i2y&&Vb=y^Adk{aMl^Wo#Fvx$gKNn^M$%0os)1#05V~?pZq4g(uj0 zOSd^ch3gwP8^k>(6`XlIy&XJc4J9K&`?4_YUzInqiAm>AYO=u}p=pLbwv-5C- z4qRqjl;$!UXX~_MzJPAVxRduf!}0yEK24#)ARtMfk#mQKQjRTl-+VI(TKHoG|Cj|i z=B<>d=gUO}4ehbTsd{-C2~-brE-;q!q|#cBiI&mjWEn*R)k$7i$JNAjZ~UXTv??c+ouj8q+&V*f_VX8 z5^#zdY0i>MP*nFH(kG*e(lV4)S#1$a9m%@fB(}(s6nnWAvEUv>5`zyx6t_hJ;+_-781VG9i2sKSjoA?du+19A;I*L zKndO-U-KxSX@40I?2bxMhn=57pg~??mPQTfb#rO5Y87zg#c~_G-j%HC;i9 zJ^d|<(wcC&#E8ilmYA~hlA1Y*5mSxg`Owv`6_XKDc2c3@jGAS!H7g}eD@G%0-Cr>f zS+01^N~#%TB~zNxkEX^M{Zg2$C|l-oxcm$mCOP4-;yYiK zn@=Xfi^tzdBakmO^q9eODtBclh9tFI57m^|6%E3ybC9jf*`ukR`F(9g`~va%ge~Ra z`1AJ>J_L)V&ORcGNnjo(m(1p@zid@l~N@s7hy8k@u&dbSOG9eD_ zU(i&z&u~b-KTRAqW2muPXuvY=UZEDKT)bM}C_qIbDrCX;1F&{)hhh%C}rZlu>@ zCV^$e5N7#ds{VT#1BPDs#;?g?v1+K&jrEKg*^La$uqEm&sERUIrlXN%wcYTR?0Ucj zbEhQ5$R~ki_mp4qS0;1Cj)#;rUD25&N4eV5u<4PYcP!tM=^lU5$CHbSZj#w9m%zrY zFd?2oS1&boQ1WF375a&A$nFlJ=O3dBp~U&V8&tuPQdj5(P5Zpcq^k&cJ=Fh=9ywe-hhW<1SA;!&`}EsTSuQk{2%PhtD>|Hn_I58p)&1$` z=mY6sRUEsSe9OKszk(Vik`JFsza_sQ@bLx6oUoWEq~@WRZtU>RYA=ZR|WM1`4+}5S|*7M zm*cY-z)gDhQBl^&YKiP+&aU!WjL68EzC=T&f+;blqGXY^hM7!}^Y9UdD7;$^T3naa zr}WCRBJ?pWGzSufAJ?-LyXNE1eu0!L;$M>GGCoS3@>Mo|;$( z_MAnJsr_*Hi|j+wo9LP`$90c&JV6@a?{C-Fb6H94Jt#xB8GlW7sZE;4sruIEUq?_m zO7uywq^7%W@vCF^#&5yY&axa=QraSuO7r{BnmGqvJHizAsZ}<}auWQyfz2&v+;K~F zuH-Sq!!GkA=kbyUB=@`vGMqGE_75 z@XfY00TAaDT^ktUnyhM}BDWw}<6O|AL9#Xw#91eMmz-1;v>_SblG8App8H7}l|)0Z zY!R!;TJH+{VZ~zqt1QbKvGsEGYJRI+9jP!fR`u1vYF74}Szq?JnR1n^URZ4DtLMX6 z9iBYNO0WmcD4~p@4Y#2LC3tMfYQt4PXNSv6aK53G&(3xxhP$7!p4ViSwiu)mW**#=}Sv(vvEx6ddC6woX|5rx$^QrGOuXy%00A-O;V93f^ z=g_|Ro$(ZSt$D?!te)@Q_!|0MCKNB{e8Y+RnA z*76%Et)(VLu^^&nw}0H`8JP}`4Hmw`Ii+;ghD$6cr9s4eul*tQF!6_Jul*?X8l`B= zH^U}p%y+Dz4@+&}iS2y;>(9ZS#9{Dli>#FHesq3;3-aUypsZZaaOQKF4$0MYbM2O_ zHpuTj!Kg%`{Q=J0@6zt9*0^E5pWjRUOq4;&!z;Jp@aNZ2V)H?244eIk|M&Ps*^ph*R<$-M7sctzU^VAft~nY$%N4N?Tn5RPD=sBoIc3mV6HS;7 zjvOn^(Gzf69BI7nTCi)B z_jV$mCt{5gV3EFf@fR302h8xYis=u@9E20#Xa#2fYi5jeHv$LWy;U2iPzaR1URiQM ze3AJ@MLB{B5Gzr;EdEbNyl<6tQ0B2UaRrQs>!nK7JNN++M6P(snYK02g=Bb$_a!{MR@~q*kdl+?_SS>JmoF-Ij2)x-~AM_GP#~b z=zg3Q5{(w78c!J&=)!5g zr*(H@(kX1S(nXC8B~qYJ*iiO7#|F3VNc1hLl&Ia9T#8GBcS!PG^WCL=CS{H_CVxT@ zx4cF=?vVr{T;zC4(YGy0_aDtQ$fFSer=V%Jtr1lrB_l*Z(`2$eaR^ z(RMuiLSB;X(3h%e0tTWTM*Q*kUGyj9WZ9VCB{l>MP$%lW)Q~@SPob-{F-4EYBuUJV zJv@;JU}LbsY@g)=stu6?=ztbpRVXm|$u)(No|p-0Lnl98h4QejWCBSflkS$(!y&Ej z8o~)*``0rv8sW9#J~?-`F-a2FYZQ0CMB(VjLDD<&-AfJOgzI}vlvgx8x-K6MX$U0T z3?QUKb|07FRatzc_mz!d3clz?Z~+yd@Z~>a$Rp6O_JI5@J%lOp9w(6%@hUQU{uBO; z8h8J38u$M>8jqbk{MQ%XeXlDTu$=#du^~F%RR>Obc;#oX(vsUL4=1wZ^*aNama4h^ z_t9C+*&pXaysdUVq!*#?Ht7Ya`ypQb_|!A$HO_}LnD?ru(UtciyhbxD|3kd0b+(CD zxXy!AuH2H0Ad>fh%IF=Ih);58k75>z%<_ycXZbjnC4r`eNsbY z);w%>mjkpW8!DBXeo*!|c+yt^p~|@y7Id>80%b#834A1vHJSNz*gr&5%UUly&;emMD@`nMN3%K z>syAh`dUZ06@4zKm+lVCckZ?XUH^z=524l9EANGH1O4XDI&YED-d-w+gdpP_@7+7o4*nEmcFj#9a*Z^#CyCFk zc_K0j3^a3%g3i#hZQVM9&OA>9;&d0`W*z0|Ii0jK+|1LUz+BK7Xy!Bz4+M{H9K0P* z7=Y$^!t9hzoxEgMg!T%)9Xp9vdv9h_}>-E_9`=feZ z+i?8-N&TKJ<{KCh*wsZ~S0}LRwsh!_>i6iEVqJr>d_%&d4mux-%*}>%Ep@gsPXu&zCb7`jAfB5& zx@rIQ&NK#yNgAi5_aB;^XS&eqjL=7IxhiGbTfR+(P;*bd7jXlZ?C5jBD?w4qNkaY zl^&JY`B(jzK-qGqs>z?Oh+2L^4G{y)mRgWsPj*Di5G3UYr5xqB;08xYkxuKFNZwjU zxXf!Zb7_>%orIg+*BPK;53e&K$!Hx>F?Z`CUTis8_wH>OQ?&OVhIF$>N1V*7l>uhH zJ~ugN#i~{j=Ou*ZZVHF+b*mqEei?FrMu(kE3=$#a1 zqRDW|M=-ibLRn{cn$LpHgtA*<_cuSCL2A>cD1VKRv@Sx@Iz!Udwc-u*x@^R^BlN5@ z^vq{L1JIlgMZ7)2(0aqrrahg9eQ)U5x-9R_rm}|=GkSx|%&Us`v2IF7`+7sk~hh8 ziMc0wwp_HfDod&PiYOUNsli8BY*{L>lpca>5Is%2Jb;*}d3K>s1njVhO1~oYq zjm({fHaTn3Q>k;8+f#~``=N-Li9)?9`?BACD9J0YU;&X1{`ZDF`C3l!$=e75QOo-1 zWzVuy#K@5pt)5b}+)dTLci> zr!=nRqP11MLm`s4)klsw_J%(BIyHi!dcshP-9_AqrPTaGpoyiFRZZfSvu%2QUM^Z& zby-UL>Nt(wX4GR!2ka;KD9yNXG2J0up3)n3be)vP`5AL`leXXyUep_2Sw)4nf`t-u*cOqgP}gohXT8m!EhjFO?pCg z&Syh}2@S-A=6YBApj#8|lJ1AJoxKl5NYM}>MT1G0^4T$R7yCfqXvQSOh~|E;Cs%hz zYCDgG=C892kyC>MaiN()2?5RhUZ=Iq{XXK5#Cg2kLrGI}n&=lT(>T@d6ot(o7o^A z=R?|I-5sI5m>0ZxT|N-+S(fs7G&hxUj+TqoAi&!;I)vwbNKdQoha&MW0)GaRf8-k( z1b@73im;%8SkR(13I4eC(L-Rl=!jzz3tBEZVq{85S}t0>?eTUS!JkD1 zi1x5l-gpm$cb27GhN3Itxvcyx`hfrrcTC=C4@7Km1pI)U*E15|y8s=+L%eocX$oW?H#;8Ev$C)Kc!=#k)hamzWFKER z;i1Q4Djw21S9ep`{?n!;e?Qyp}13&pIoJn4PkU+&!)BKi8CWS4g=FKq@?>gYH}fYA^=a6e`d` zcdG(z?JZetWN&u{NEBKSu{K>9wbc}DWN%Z5M{QI<$KbYPBNKKYF{#`Uo7&P!TYFAc z`2n4No0CmvQlW#k?VPMGcWd6(>YtK0<;7aocXgaG0~O*|IHuCo8uU8m=6@5nZM%N9TWU01`Sz-J-CU0&S` z_j1-0iPr{zjjgu-R=r?um2&E)qxSNQptk0Qfmwydzw0L=qkyuXmKD?O=TWe9b5FWe zt1Juy8&$Xe&P^!{0JDlbUjq-BQQ&(hG8X7qoij`pbjogfkXnQ`XHew=1kbihkMOf1!p{oJ&$ilOEI%i% zT-oMt&57$?GS;3G*QE!7bP)k&MIgPaEG#+OXbmwles7;L1yCr*X5Z{Xv~0O(hi#Ry zC}|6)+=uF?IJb8iaNI84?+1MyCOzc2pQzYES^^5y^R`O<$Jf6zhbRIE@XCS!n0M|V z66Ssgmb@|^p zg0j2Z>P6h1a=$i)XM~;=hMrAFn(|-+%~oX%F7u5Qb3$*u0`25;Z_ZQJQCURzSP|i4 z1@W;htvD)ATdSO$627*|)xQ0MH}M|f{3m1z;yr?Vwf=BUz+f}UODRCqYf|Vj7ivhC zeE3}Un#aSppo1(+WP3W^)KeCL^Lu!RCvD&0ieRonvc2x>1MsVd*9Rtr%c-cgpLceN zYuh_d{qS1R?%P)I)^Syxk#WPU>uSVBG~wPFgu@ z;*h-B6w2jtjw^tmfL0L*Rz@Hgb|De<9SHI-HVYGBv8 zEE{=UmR)*XmOa@wqz%`aR-ihBaMp;t(;>^UjAVY5hFnb*(7nvobGC5HX;ljivzjWC zJ{DJ&23W1jYBSD#`6r#sK)GzjbB%c312&wi`w!_;0Fc!Vi9~RcJLBq~bQ%$|?1#S2 z3mhy&P3(})nqb>o>@R_y{y%kR+ILG$to`?X3fLfna&-0F?Z_ZJ4j_{X=oVO`h>Dxd zW>!D@b5-AKC3V&6p;o=a-?{f`U6rJgN>a(cE9qN(e`(2+%QX>y^3Kr_990sIa+jp7 z>rTXG-eUQBs{Vo0C#(kLtbly;;BrQ_EDfw$6=&0~ibn>lfmmy0MDSG^!B-_6FZ9~O zM08EoCf(OvmWFXniYxO4u9rd?yvkZFgKh2`&W39_6Y*5NrkG(|tK#f;SH<<5Eyrq> z2a*W^TNUTAy(-S5+SitKvMiC&g7y4IDVc+JLuAJIrC@XIN!di*I7| zut|@XuQ{%-G%RaUD^+Jhu_nb;B@DkBu-!gwUU?hNS&jwZZ=1H}rNLH{S*NT0QB}6E zr>c4wzgN70Ho+OiV)q&zE*AnJUmm>@+*kliY$}O%gfBRt{qh@x(hw?NM>D9(mng!l zN?}&#RRUtSZeArs&{P>gQzfA(udlG7TjSDCLK(-UA0GP4SDwm}7!^boWqGJB%kmuT zvnBB=Z*2{`a+bui@?upY;Hos>YPkR&v(6gmVLN5GAsg8ctz~6yFmi-nRhC~Z^tj6K zt82w`B`briu4QwtuPEwjs`0ceyV&J?*^fU*Z~vFwm<;fxRI%Q*l7 z#(;7Me*FSuFAv+~mMa67hVseZ;DyupZ~9_zSsAQ!kS)Hffh0pwAU$8+GE|W;swxsj zRYk(6D#1;6{<{KAy48PI5yDg%!ZaC+*QI!j$`ci(#mz{BS&EYh49o#Ml_5+nmr)ti zv{r*iR21S(iK03c;}N>57|*h+;ylqhRpJ5bOvEF1RWW084{WL;gsO@VswzULstBQ~ z?0x1_onMU=il4$VaZTLVe@$Fl{uKJ5aUIGRp5YdToC-e-tAaVN+jg_VhCwV_ z{Qr}<@XfmrPdm`s9Q2cq?+zVaGMqLK?|%aE^p2s9obIb5p-;8B#>zElY5`7n9=`@p zy4B;?hATPCWZyc`lhdqGn|P*WSv}?^M~KRoN1jvh)gh<~2+XIoK~6rc41ro~q6mAc zBkZY;u&3IDIxSa)t?g{9h}jLDTGlFJc5`fRv49Ajstui*C_wv;+R&+0aURb;OHf?Y z%3w8dQLFlBBTqSryjH4BAk<{mLt2K_=A7QDxOS|Qm85nz{An$BB2O#zB;d3r%l2GV zL;Km;)q?>`3C^d7{Gz?4h^HxK)rx@5<|*hunJ*8{$%>^9?3Fcvr71P?OZhrNm1;|s zJe#aK!j@`bOJ_Ha@THsGyv0U7MfEVmj>VUVU92+^+trzf$EGil#!R40^6AE+N5$kI z$40_5s;@5Gp(fJgt-l6OD8Q)|4_Id+J#5#i67jVW0#%y`r{xBYnB6d{i2`8F6nt4n z=u~a!)I=G%mqh4PZGxO83gAkxseSz;!li0+JkMDYkNE+hxj>lIv3?eBX63)-dl~CU z@KbGqpVpeops7jm9H3SkC^aFTtsP-ewP8^c1(3CEFw_*|&nM<<1ELmNpD5IwZDuWH zDb$)8W-w2QZ}SG+kf+Jl14`V$r&V$0Pm?Xa&y$29Pp89sAP3TKPj_tYBtd-XUZR?q zlXs3c@X0r_0(Y~QwLq!!S^>dLH?I{4Jh^KZaK;S*DQ8Iyktuf~ji}s-*ee&^M;N9O zD%g$>UtAUnjk$-)W!lC7E1NrtYI6aBl~@x2SB(KzRx4F!Hn$|W3VyNPb?=1^38sYflEXGKQx}? z*_|Kumye*Aje$!84lQi)CkL_QM!?H+`lb+4uo-<_+khr#A|9g7L@?}~|84-3ZuQ>{ zQ6;ahBfR8J#Ivcdb~c{LLlqhWpPVH{%xrL!96H(V>?~}~__{&@T#$2yHp_6JuGg8;`HiT&+Z>q0hORM5+(Mjl{hnS`K6+^G3X-*d%P1 zF2mLs3_6_PH&dwCb$M)*%__>Zr18y4hDgz59nMYlK-cdLtT4FPhN$up!g5s$M? zEzOLcB+(H=_vVAtl?()05Hw4g`5bw1>eJV7AZH>Tdkea=*Rz7?k%^$S5f0Q^4m965 z#+dVh#(iyyG;yl--$3Q`rm8g&Mz(s{*p>pB(y1LR{4ugBQ?qz6f}E+bm}ec< zTF$drfLWRvS*11mHrr;bwby7ATLdp}N~cUM&oQ!DQ^RnUGc{vxsn^((X+{Ce6Pq+k zScY?zZ{Ak77TuV9RmIp=J(d;X;}6osrGPEM&hia2t;IE0I;at0D9v@7Wn|tON;7^? zL|_5lRiCip*<%kW4l4uh*035mqr_uVwFZG2?02@^AFyiL6@QX{Qu|VX&?_%I|Ji?K zIRugH^NGy7{OGrzqqRERFSbvgzG=-lw0-;MJGnz%E=5kAwUL;g*3cN=j4nv#>|YVm zbF+Un)Wuh(VK2@^dZ0am6*gE~$+ZAj+%<~j9F<1VlZp6%NC=i(9t^geuMVk zHeZXAkdw*fM_I^G*~ds>ZE!xY-4Q97YR$aM?Fg4hWINoqynC06U5?OG*uXBK z?vBXG@BjWj432l+y{rmqjKG9HIts0ss(U8Uok1n8LDfZ$f_0Xpc;@X+pvs*a?f_11 zb;F&dC%!TR{;xA+#n+C8vlP1rvWk+$=lJmP#U*zZv-s*^HVeK)dL%mWU}qtWt0dwv z?vnIs$DK%xTyM~OXQ<4)ZRk#H*lyN{k*kZk2&n07w9dRr5o;SzV=Mek>b2%rm~Tv& zm>p*#wy;$RGvqdF#lyQOWUY*CRx#d>jEB72>`d^E%~w@bJJIV-paiuCT@>WeyHGUS zuz)X^`s>pv=gv@?#TGE2#;QRrYe0>a&5dAg8k$m9{wTIa)Kor%Cn3Z#ep>H5wPn_-JB`Vn1o z7|sv*JFy)Ro1cyU!KxvBx1h72#x);D4t{kO-S|qv2s}G=Aex(=o5DOgqBUMeNASj-NY9;GnOsSObDWhlsN2=z1bAkY z;ThDajJ9O`9Ak@h*$>l<&PiY zNp`|xqoj(NQ%&2$Q$`Q9snvMIz2Mih#Ggo8(mUhIoz7?f2S{?W|BD2n^qQJH{rnH1 zDmw5MHrb#P?do&|K~Lc1TJYh;Aibt0-uCJ#`s6xyrG}o~76rANSrpW!x)xLw)3cq^ zrhSB?^u$rFRm!bF>|{|;yC1La6q0hCdv2KsPU+2AB?lWTplr6_vkT96c{pp`XQJuETz zZ@zfpj#q9PxP%-H)mthuFQ|v*Vvfs3gLlccFaTuRzk$iFco7;R*b|b8CimuU96_&R zRV3J{ukmf|OapoYKBg^Z|%Ev_(?`^0yp zgmYj`ky&$Zz{l=@CDaKHS)%O@`2TWjDaTgz6sm%j+hbr$bpK}mZ+TJ;qK$~(F%iuF zJ$-klYHx1EnNJ{@r9^tQxm1cyBxK~yGxq==w|eH@01%&|28K8j@i=rQ(ysE;7qKuK zj>lhpkfvUOAydCcj7JP)D$|Ia2!Nzab>L|3W=2HY!P_;7 zdZc`nY7yg5bV|yU>!aU`w!t6F`;0KFn*ya?cI9f8Yw#}ktoKD zh@SJ3h*C-$;R#G#;+!zojMG;yuiCPYr$Cgcyx2j>>^Huc>)Ka8Lq;j0rKdQPsf_eu zLQ<}@)MUdWU5eA~iAUT`%u2N(t45I}EA2se0*C1ELh8}8Ut_Moo-E%j+7qIfsZ9>a z?&&nodFFw$I>9jyiAD58EEdXMG>LL~bbbdVVa+*|f`Z}pHJa3|8l!<`7@=Q%#hc4lfsd8Z8=-gwu5#FmI_PT{lzg^Dbe?zGH6 zOk*iW%{1;oOW0bDWQ<2LYYZs4DGJ{8%oPW7yv8;=WYZhKfq=%f4lJvzB?w%A3B(5klo>Nc+u1G zThSt|v<5zKGrBza+T%$&0sen4e|XO9crXM*0IY-|oyzBdr3-QYY2Q2$zA(K}`_zGu z#s8%l8yRk&heJ(g2L?hGpGwhh!&8sTE##kl>Oj20Ia?1VoWtd+1_Lpii7*21eCmMU zjaz-{KrZPFKiND~KD6TchM#G2Ax2a293+9%i7>#SeoFfHj zEDCC)p)S|;`CqCJF^R=YwcQp4wf90R9?^i^16krrdlp~kqS;mxYUXCAh>Yvfvy&wV zfilPI_A$Mk+86N;rrSQ9fEY|5#-akmA(j*{G@>6~D}N3bfEiofx#dmdKm=l`od`u- z7mZBo)TVT3W=)n2HBo(Jo!uN^iItW$F&L{^^O8d*!J)y6$xZ)f_|d$#9L%{H@oMsl zR6N$P!K*HLy{X(M5sSyf8$%W!Rv7mZ<26osB|*3X6^Ced66Y;xNyK^O$CtLz3@Z$yT1HVB$Me(=!IM!B7yg#TST??^;7sKg)$EW zGoC`h5}1Fg|MLoxBnmrFlm&`LhVy@CpgIuVSV|zjr9^DQ`BEqmCdso01>s23rMFCi z9qvRtJ8r~wXlpU}>GU(0Ve3_cfu#aPp>1rpd+0!d+3LY9v9Ei|bxnF-k zbI3`yJzV4o^H`4D8B8?DM3??w)?sxBW`ht1S*{rmK#$J6pj_6OP3Xy;4Y}R@9SvB2 zaObMz3tnk|jL&%EHCLKe0SDwOg8lx-NFiI#^!^fpdPjhvv6$)V3<_N?3kPJa-5(4+ z-s91~1Q#eLAQEVXpfR5;1HcM~&Hoc$43#lWr%z}=oQL1|l_e|)`t1|%zlwY>D{Kg| z0ml$<Bu9a6?8VR*3?8| zZ2J!}oa={hMZ5O0T}6&77NDSu)LxgX2auk}z_LawZBKW9OqHd(`;#(jet^^c$I&@l zVrQU{Zg2DeIO0=-d3L-^6OLl^$`{O7Z3t9Mn(`9c1zDbo_Voi~hb(0WcG!H3_RSNd ziKURw>j`=}?1UGfhYA2rvA4)t+u?t>r0FPrqQT02+|lLg(Mb}S#vv!ZM`BbD{p(0{ z**7CoHV$z-jF-``>C~ zxW(@D8ZvA_ab1oZK2*y0SG(d~A{BbAO zHhY9N+v5wVBb-I&-8DZ=GbF`SxO3OWyUzW0DR+Vw*Mfh^f_khi3Tm@03Tjhb3+5Ie zW^pa3Dx=5OwV=vTkFQ0+Wh<$o^~k!;Q3)hSQg)2cQUhH+i(f28h1kr>}`Dztj-(JFUP`b8`ZlVjRg~+m9l!DqWi*+{W!B*w+^_*&B zaKl8CqfQr43~@bhCN0F`Y$Q2$DkVr*jqEn$PPD%IBDE_42LVw1Zu7@arBSnp9zIFr za+(GT8q<{jZ}hPpoKYgqkkUp$e~}xH#xKf<1FPYe677YowhnYh9lFzRUi(D$nz`$m z(+6VTOUG#now$6b97kJ%j?m>|brHqC!uko_1syK;qwCtQDXNNw$iBs__1 zPOtnM|L)(0dGglIoG2OK{iKJ>-GO^KtS`F0b7i1Sx=lWuH`f25;=L=B{x;jr567|XFF~0y$xTK z{bWH`SjfAx&Hui}?7BmDOJTTGK}g_rnI+J`+Y*s85?#}$y;ebS58ASjO1`lm9)OlZ zX0j|1=O!V8a_Ovmf+e%gg4n=S3+1h5L15sudmr3?8u_4^#;?C8)=&@`xPKprQ$A6% z=^sb~qE?q6tg0YJ0I}_J#XAs!nqwQZsf!s{u!CLt?wwE2q=Q^WoFZ9~rJkiw*!Jr? zGwycyLXEV13cP_V&r-V<9c)v>v&nhP@jjwNZ3_x?z^~9?{_pIg3PTj;6GM20Ik z6JcoGIkp1);AY205aCCkp&Jh!Y}V(+Nnaq{yo2m_mfB!r%kpX`A9n zIe;XV+wI;?h9!QW3w|Msu$2T?$lI!+d+AT;&h;O%pq|#ALq{5~Z-lrkRyNH$Sy0bx zKlmx~gMjQu};p*~ee!9NDcb zpT+?574&F&dLNZ$b2hP{dV~EkI=&9<$YyU(C!~XrW52s zP27S^O~vs)XqK|R|1kSf3RysYb7IB{GCc{~8fQ?kah>*M1#SLiry-C?Mo9mYUuCaK zaSCYt>NAusu4Z`s>+D=ioWf8(2ZFzQqB;r_@UH=wcZdd&c1#ZWw z0JYA$v4Xb!UqSzI^rEc=HOWn|`88f);t+N+2Oa8v+<$~*;@)#*XxlG&fn5o~JME#2 ze8?n2&%*5d#qp=J;*b{nE72_JHi4?38zhilBN>W_OgiI*@k$eIsb3;%tlP#FP>X3% zVu15Dt{@hG?9h`o8>BgwAED9m9Pw zr00n18Mri9&6g>~)p+Y{h?}z{ZTuNOCsq( z%WC7P>?UO+6LW;ol@Uf)njj!wyP9YqXCgf|y}iZ&K4(d6c4wl9tEMAQ?m9(!1jQ41 zOERd?*ARpa-6cg_btKxTG-T0Pr$~=5+|gMQPYupQ+#}L7k{;CDW9X!>07ELBi6X0b z!!VsCMWzNqo8EqENM~x`^q^YW@J?q{*#0Ts^svh=#{keIk{+}&dSN!@a`ri2!k|;K zN(X~OQ_<-`=NlR128;Sy(GXH+A`J5L3Ih!E<`o8oLwWm?fuc@DwJi^iqpb8T?IFEh zEQyQGOGO501d5h)I%{5^$O@Zou9?p|;-O7EmCryXu*#W8Th-ftOth7+BqvzA%j~k! zC$=`*#u36+MhII;L0R+qL~JfM`rbVJ=>th_^95{Y*O6I)s zRDx3kDlcc<5W>!h(i|mcLw0zXvrFI>f#XVcUJY%`d8vT)5DTdk&=cyEvJs;Z^I3*;SjtcS9y86K?GRgC1j)| z*znGOgY@6*zpDtEsv>BrvS@0_$`lXA_EQ6t;=$&nBK9K?HJ^3FU`|FweyAc$#rmj$ z6yZ`BEP-A}@nhaW!O>*C7g1FNVO1u`%(XzM49jvRigbZU1X@LOi@Sgt6A_$MMQ~O{ zIBQ-XJrjF73h^t>TJ?4cO`Dg}?$fP6#H!|?o3H;w2vrp!R8@pfRdgPX+gQ0_rTUrBnx|05_J>d9hWG+q2h3gpEY?rC`sB;@e>UE3cE^1ymH}=ItsGvQ$OLQYG~AB z1e)B5B1R_eG~e`Q+v=Lh%z-{%r;C85ia^tBC0t~wvSjJXeX02_0+cEjP^#!y-+YzK z5WP}%pV@~6M_01CVmv2H3~k>$cc%uNeL7ZC6C;xN*_l;AO_<2pqw7ehRULsywLqjh zPhW!(-RkLUb1RUmtJjhEshR*10_x?!_E1UiI&g}F|EI6iRCOe5swRNsH5Bor6|IOT zxeEwvYU)U|R2_j&bp$@u5%^R`qNQrOqItzU5j<5#@KjBBYE7$%{fSn2dzv}P=o`ue zuhyz!=4_8ItqEbR6`&{Y71;>Cs)=8{AorskAA1S~Wd~A6XjM(LYE5xXlD)Q#K&qM` z)tXk?wrjF_O|>SwX3})WdQ}sT!q-a=^_O@Na@^vm-tO{=5lCqUIaRvOQNO%V_Rfoo zn$AG(9>O3E)(qoGFT8;{T<&W}xe>b&ck&vWPDi>E!GPy=0N~Qi>wpMbsv~Tvj$bc>8jwUr-O}UgD}I!sKl}0#5Ekf!76fBlb63ner?3V6|xP+Y4#H`$H$%ggy zoCw0I1!0}n5CBs*uOSFid245>m1~NN;H#SOm0P_4nygKDRMFv{7`fEDkWbLcLw-w9 zTe#(`KYMFemuL*}awg*0dZ{W+1bQ_Q=+&6Wsb#Hrk+v+$)?Sv?J0@p$Y6yb46S1|g zwaU=GF%axpHg~;-*q2wC2n1^=#>!n%V8hi!AXpQDU`+&qH4zBb5CrqKo}poj9U%h2 z8iHVMt=NB$*ZRuDX#RHT#*xOLu=f&t9&*rsL-AVh4Y=#&RO1rm^srAibTkp_)e!aaS}MZ98sT7f3y21>Shp@9 znh51;h;q4W$CI~QAF~~K!sQ`f@7Y8muo{ZM@@ho@%$3r2Wa6X9tM#dBeXy$r_m zpjtYD(Heu%QoiXy^%XuoRS!3u~$~Qge z0*rgEYF2&wAhLxr4(u2;I-LucO29c$F(}OC&kg+6^9#ls&v0lYhCHJ|K zCd6y#aCfs@CpNU_heJBw(nL5|6X9Tu;b6Yz6d-n9D*$udyjF;WYc+;@`4o)+u*Lu| zXGxlJ&V|l23(;F@b7!EJQvtnKo>zcJr88?@aXAy|aXPP$o^)rWBJo)b#bgy zm8%t7Is)kIi!H@>u|B#{_28VB@|dxW#BQ~Ot!5P{HZYYiN==mvBhu657Za z!8U@D+6YQ&1tp!=1UMvk^O_(+j9NpCd}ARJZ`B%xG}LbIx*84q~y$9(+BVDL6GT6rTo#CHUgGf0!vr9=L`SaNOV8$rCwk{v7GhL?)fTr)r0BIszpKVhL;2*NUDt>sg{t` zl}c(LQ8?D3pnk8nD5#z8qM+V2c{>#GsH@zS^(fA2QE<_E`J_lkBrYdW30phG}_<32cKq!?zY%%0MlT zLTu!@6hpcqwIjOavj(rM=E_iGkT93GzecDRz9>T%UpaI$$jg(0jqXXIeeir6E2|jN z8N5CVOw2Mh80THy-*(j+c z8<-2SmX+aI+F4s(iY*rqnW7EqS}uTX>#PAAd9eTjTi)JjAXm}i3#|AECcejbeo#wK z6F23n0kJK&RuO9x=W>_CX1{LWd~U8YsOwr*%`YahYFYLMBO9Kzn6JTD%d*TZuVqy` z7-)4ZtJ=Y^s>S|Ah)Q<%Pf7s)_;3DhXJ`1-+~LAqdK=K01A{y4L60Tw%t;T2bbVn* ze9GI2BIg9V2)F8lTb;c=Xw=PKpTLy2c9C$Yj>4tfCGlYNO)vzn9$*@Wtkf_RYrZE^G}daaw^+|`s|6Kqv78}QzL|@z zwZgg+Z(h*IG64ggYR39NxeI&}NkDT%A4YW!P zoE}t58&;J>(!-E@a0F5H22rJa(}Pxq&7MTkgO=6a)!RiPWU4oDS4o-lptaJ@)~!`! zkXuA`HT5XNMG#eQ5S89$Zp*Y_uyE>14b?a%AS<0?AW13*AnPxK(N=xNEd~c}JoRr?!OjT*0hcIELgbk1}dHP8FR3G6=eI%Bu7r=D( z^x#J~d-_O#RBwQi&*d4iP*Dbtuql1OlKlJLh%l%=>Gah7O^jD>d+ei z<;+?S()p|-Q)~o1^^uUNogiD5oIV2) zCzi@P&>@1DhDcb|K&XlJ$=l~45=S)NfjY=xoj5Rtb_mw*g(Ht#&+ zT_!(l#+%DJYB0z1`u&)X&KRlFnZF?t-ZYr-Cf7(DhzL2Sra{QiorfO4eQx#8gTX&O zMF|DL8k^@}j^Z@{4f*mC?k(uks&z2oOU?p#j$AH4k12Pn=^^G$q(_`PQNSGzh7~Q= zKf;Oz!-`HD*sXlwj&YrO42T?DGei#T4Uq$Tg9&5u^_2)s8VpTxmK3qSIk2~AN<)*D zWjS065WQ|um{}}#FC*THyd=_O5`0*)YIFK_D&#%rzdIgN? zE>$~1iG~Oz8Z0GR)XFTP7G;f*vEZ0*rt_!VhX_6zEIwM&%2K06S!3iySz}vQZB1a( zVuvt+N%Ku9&3tK26Q{IXzzw#IL?{h5LTRZvEgf2vWp8?2$$Tnquq@~*-+a()AOy5B zTnPk07Gc~QeDbEpOWu9)Av!}Q-$NuUX&@Z5R=}DibtTOxy=oBMcxGcWFN=@zVUwEO z7LE_~%@_~!#xvN$*XNx%#I)^RdkXC&EjCEpd^&muDLoKhmxTnD01!M5kA8xui|>cv z?V}KhcqQZ+SxCf7S!W__Tt}~t^f%v>hcw1kjyVR2jL}?)hz_B*`4VYc!r)k^^%w&u zbdxdIK|TT1{5P4NsFAyjh=GYIxl4)|*nlQyyP4tYYwSp0Ft};WLKK2DXHfj_dHhiv z(p-w%1p+7vALQgNuv!To-K*kk_EquQQ50&x2A?j2+m)?7okF!MkNGum!=8M-HUOdU zT~s}h&-D+gxj|9WRe{^ceb8{I=@hxG41rn|XM-Pm94|u%x0elk~#V2%w3riHgqP^ zrd?EthoLj~h&c&5EvXdXPWZI59+Hc>^N{pa*hCpQ6X^lFsFJquqM){_w<{2Sy3U;@ zw!r7~(DZu7y)Gbk{{VZ!=eM+G|aMvnPohc;gT2`sA?djG;+ji;;uIWqQsH!&a zq9%IKE(+>_x+u78LuxQ$N!OXOthU~otR9)_1GecJ8hloLd8Xx}wYjE>Rtq9cj_&;i zyRmKaH5M%e=3994i@zjPG?ioewjMN9CNeqhRgT&|a2WC$zsKh0fF)CL{0AN`$K#Nr zHj%gcSxDsCI0Zt8@D+Pl@9eEXg>LrNmJaz8)q~63Bzly=(qipa!X4z3Npb*T$n1p< zt+@-(Ms+6&Shrw;gy0W3FtPplKmYsf1tAnfkDSUB1e4r}^w>lE2+Nq4?%m1Q-lJ)ozO(nE{ukYd|V2OeFg1KjX{UDW>kHv0(2xV;<$uM5I5574zS0ru_3 zAl^r8eBo&C-ts_DuR|V(YsbF%RQ({$0$ETmLcC+e5Ex%KG7!d@2zI;kvIRnXZuPQ- zfiBK6wdLGR!iMyfWJruNkv6SYJp*Q(C9#KdCW_3X8sWfI9S`rKrxvm>l=uI~&r^4e zAewxhaOp>Sr&<>#I%rvzExDio56k6D z*;y{jE*nj}SsJ`VX0As$%P!lEY)n9As&UiH?YbZ)gBQ;Nu;q4!9bV6muO?xc^!+x7 z^JKd}{okih9ELl|`(~s`VQ!GsuJjeznIKzaoeaHAZzKwWFsL|0?Puuazvma;g^B)= zAjRGAePH+#mI$(qOV`ap6E>i4;wBp7^(*G?A!kXj?b)d#xaVf4PCUk|s15S*?6-@+ z-Pv_P%*L&r9-hzR1;(a8kmPCm#20DwXlCQ(;sqfbw=#Nuol%B|r_b&YqEkeOP7xtG z1qA|4SDWI0W<=I4Nzpztx#($iMr7SebgE0|B6D5pSagib*+)u)Vs@MRk6yqWB-;%1 z-f=#=1Z>tNK^d(_>fI$F7%iezEhE7^r3vO)QB_Z!^Losg2USlETL$jMMqBBT#R}-G zd9^Z8r|k1e;xn9O?gpg+G6!)ma7%l5Fu9CHc92^*yu1-EiNxK+PJQ$EGvDGC zzwPDAr*&zfaVAByUC_~F-6U@up=ear)yXtuFd2fG!gt#8vNp#YD)n!cP_RBZ@JaQmIPqDwKF`%sVLjknMe;m*axN= z4&R53&_4x)?79b+*{w9R##unbx`yTWN+P1;ZE2!A?nHWdy3%L{@GLfPgzJ z0M10d7^1nk4aV8-{@G*IARDGah-P{TSQ>P*nlF#rg?!n6&I=k)GpT^;M~2lbN6XCfYQ&O{h{Xa9|ZTQ~dfz_~3ni8h|s zt3)DbN&{@<=$9fA#O= ziX!l)BzQBGskZIZ?>uoj+l(hsUm~J66PggHNx$F!s=HjcSeFLN%y%C`F)FWK<)xim z63Nye>XLqEb$ETUpw5aB0!OIO7;J>T!#5_5m_U1g%pG<}65c!Ht(L(l^U4xJnXWhi zlO&Scj%dl$?~`p0m9u#WmEc7%-itnZ7Q3+ltNi>bxTK>{sU(Q0oOI*MB(u^^JRl~; z)ehD$6w|EflyhAXH&L2ylcp8XlJoQ+yWKZX|qOE>xZsWADXcO2LQ;%|*&i zYZwzQHHD!ktbA??!%J8!*U=nBVlkDQo>1-ZQn~Rc^i`g@2tF3Dui?YxWnY1IkVSId z8dm1go9*duxM5OI=TSa>oi6LBD;oy0*rYt{W*dR5w4$hiADm}yF@_#%dC~@YO<0?( z_}2%|yo!dBV?t@GQPFWDSs$RucR1Iw!`@LKu)G}JrSPtbfyY$w`Q2@0aYwPasF0k9 z0Uf^HVq#RBiO6!k^EH)VkhA**;<(xUn#dHNqC`HtE|L(4JCXK;SKp7#c&9QT#90rX zI#0vBH$O(7+N&j>AtKIvBZeeKvQ*UwAgLmNq%wz%rrO8cWbA7nbK_0UH@$VN3@6DV zc{OgR$fO8QnNIDr^_C1_7)VwiSHlpGERw5X_(m2{x#&p}PG_Q@61$iY(PPOw0102{ zd}-lB!6sKtmho~$U%9#xRO6ZMmbnsCITE$d3g#9jZ~zH&=9Z41cp)EgA@Du+%p122I?^s)9VlNyJ#+ zz4ts?;rMI(lc;k=h~r;y!XOm_vv+c6T2O7qxs@Rs1=?kRs9dD7FXWOBwCUmUX^pxv zWWzTKiE?;*D{&8ZB8;xH2gTW+n>{Fj5O%OS_M9qM4J@UJsMRbU!kICUa7HzBG9$?b%Rsd9h_CPMFpvrer1~f+e#`8B#J; zoZ%vqBCaMkAY?Kl9yYtZ?7-k8_s3`NKf+9qqOfX1KL!XL8tk%UQ`RHOX1tvt?JsLX zLRQ7u3e?0tN|n>Sq{k_q=wi!_L=qjugE}>78d}HENCUnroZU~)V(l%;*d6^&@ zI^i>=Lyo*^h?q>tYJJ&sRsqy4w}as(%d&dMjmX?RW!NH9lD(m?C~}wVEcRww}~A0X&9dPHmD7e z6sON=1gYG)>;}Z-R+rrnIdPZCi_>C|cLZp)q8}gLO(V-(#j+sCCUkkYCK8y^5Ke*0 zv$`9WA{`J1^u{A)@`C5?Ic;hhA}ZJUew5mTaEiCZ4O&^ynjPYTAluN_;wDzb=B_Hq z_FNF;rOj$9^OQQDuVE-_`5KsF^ZhDW&m7b7HJjlnHh1Y%xqxK@Doxmct2N~1j2ych zgN)Fv3(T)~&;QG6EE`a%VGP*9(aWZ?XwDD$4wS}xcFDFw&eWh2D@YAyh)DrQIKG0! zq%SV+@~nKKp(n+X$|iiJkR{9rKsV=yyc2Is)XKC)pnKXhH-@TA8wDxSOXSAHuE?3* zslR+gs4-t;lGx(I{s%~QdC1{Yjfr3p2P&tB2h4ZUu9xR+dSBZZ1asY%89Fxx#0>r8 z$P!&;=*|y$U)>lSBfAmlRT2{~Z;bPE>am8-_(rCQT5%@gA?i$o;d=JdAT~GqX@hNw zqWiP-3v@=TTz1E|ax<9mI4{Uk=`g&747)#K`B)tPnX)sq##dKjHpp*Q2ZL?qbm0BO zoD^GSPKswuXMK3?oXeW0OlQ_?E@vV(-F*9+fEO#6S1*R#Si#)A46U((D#rz*{U>!V z!)D~fg#b1Ql|2>c*xe_2n`V&AvMgI{K}|NA6{Ojk!d?*PBU)kzB5btS;=NdoNNQ}* zix~ivt6?wHxpG4p>atjQ16xkjf4_gXNjzW+EPE&AlIe8M^-yI^d4x^q0P(z~CD`&G z%-MN{Q4Wm`{a|vx?g5-B+iSUQJhoK%vf@dfMa63bJ)UN+lN!={&emX- z2rrr6Nw?yt6Q5xeP(>W06~`_HcqZ3ah0fLCEX$ zi*5NLB&49k`&$AmKZJ(IkCBahyGQ==KDRY=#WfSPhOsyku??MxV9Y!J+2R<`t^Tt$ ze8pEL#icm6YAq9&v6VL)bpOrf7xK^Rm$|RCv<1tW%?2H#-~8zLzhx;NbYirb>;j&x zHKfJnp3q`T5h-_lXGRSkbT&s-eLd)|b4=*5H7v#En01Wsla@kKWN1!Wfr3%yrPx+; zc|{CmNXlH+JhB#=YS~JvO_!~tfop4s$$aUCl~85$Y~LDIGGONFH@Gukzj^Az&(aVv zaD=kU1IYxMYq((FZWDjR{+z zw$JGkhjpv*$36UVdVsI??Rwl~H(sMyUA{Wd8stHiL$fES-B*cM0I=Ml3 zkbaBt)z|;}FbnG0Zc&g&)^h1Q;rXg($c8hKevKndaJS-{Y!d@FmSuV8H6i=Q)PyDy zWm%SO=&U5qkrM?Zw$&QOF(LbTR(#c@Dqn5VrG7%N<602iFHge6IId-LFD1sYD7b33 zTzv{o!MGSnCpOO8uH2>@_*)825#)ziaM!-@;0M`vQb5YJc3fpW-Y_09CW`{I@Oa~{ zI6raE*`rVd$}5oV{)+dBhXURw?-E-&ytASJ;fyI+Cn&3A;JDcX&JooIM=T4P#NHOmB2sbEs!H zyn~l+#|l*x2bN)Ot3T!g2Q6P2D7Ifh7G{!*lI5%H%Ec1hfQs0B4&4)PK@PI=-*#zh z-x|KbRXW!(!`#*&j>8e>e&ot#xrIRvNy&$UavX7MSch+-G0?-Ah=-gr5gg!oCkn)I zv(q)e!&xQ|Jy}E^8$@5905aq%t^Mw&spC;9mR;ek7-Z71HL`}0WEa=CTqt_i__-6=-RbRX)79uTSx`fp$kZJu?r*kC{>@p#cU%H zsW5qQp*&OssZL(Z)|uds>DENni6(Y*c*bZ7!Q9miuaHHp8WOMqHf7mccXYoiLU+c! zSn=DhFo48wCePEEm=9AoEvQW-?&VK!h=PJr#j~Z=VMo*gh)x{R?r`rhD2(2e{b@(k z0*e@V^CoMc(*|{s7nAu_XGh@TM<0s?q3B$qvo;Q!^N*VFeS+>4<5d zAIb3F?)&D$=W|}{f^1%Cr_>S9(0RR)^U`i-MuaCi>5jwUb4=`;>UY_H5y#LODZP!` z**t#dZ$@q-v)uOWte4pl<|zHBL(D>kz1kkAx~3fLX8z6MS#SI)#;4Eqn{bRcH$ zQ(JzSn!w@+)1%TpwKMS*5{)T$vdi{EzKkM0?0EP(=c`AMh@D=me)$k-5-;q`eIT-> zl{dwb)7|?rOx(%=o6|9SSqAsVXWmBn=r0-5b_PC7Ysx9uUR%-Rh+Fw~=-8({Jc-Vo z?KNs!z3_Wz(IJi~pOEbcK|J*<xD4DtCIpUK43cB_QkLR*?<7UaAeK2tqV;#DSF36Fitxtv8_($LdRD)1Y1CgEf7Xyl+nt62>Gc zQmLm12{f`yh!}Uf_BkjyY*SQfPuKuI^>`C0K4)`+0=p);v7X2QeiHB8WA>Cl4q5)3 zinK-T>F|jR%e!&Bt)N0ty`NxiPw-%|bZwAp%Sl_M2Db>IJu5i;?H8zg-uU&z5ALch zTOK)Vx9@N|QnohP-}MG0$ktD8QIe<@Icl-#V5z+Q>xm_x{ZHH1vFzn%`7yeKOdDHOGly_MWalVfyx!U-s>*nR%WTTekW?Ra}a2r_>n zlO3YHHv5O?`Xry+8-B2F9v~|izu%xX;u7;K$le?)IaMDcJDE}2w@?Zk_#s_N)e}WP z(X*aQemgs&o}hv|5pRc_C1DwU=kj_Gg;(GJzYBjCjhpYB#_e}U<4YrV-+Sht54ySs zzWFZn4bkzU`t8AHJt3uP{13)+o+pSTd50z;C3hmdLv|_lZeS`@16t(1SZwg;>CyI=B zgA=E$D*xLyTh?$zpJge&$z7pHcd&6!uKsPJpPY4yO#j3uy$xY-rB6MBE}e-Ys{!1F zyuEoIqVr+yhKTft!RG<)8tB4L2!Kw{c4l1AF*0X`1_MT2MjD8dx=RYo4g(=ncS(Wn zFc`Y(Y=}U27z}cqoAI(Q8w`7$OR-OLR!uf;5x z^~{a~@mXL|n=Oc}srZ=D_nVzcftd88LL(6r$9qB=k95``HItu3%e*w!yV_VSRA zd=7@zCXw`@WFxe8h|t=BBEpp7Nvj;*JD3w}zRqF-#GHwEWuKHu54x=)ZgYCC6V-?W!e5o zBt7g>eCuGCUJ^+UDqn;0l1O^c`SK!d5ck~v9pviruuqs`Fvs`gn!GUpP9PWFbzYwL zDH?8wP`e>Q?FKr;=QXTQyYq?xIPT^ZgSm^y*KG}rlTa&(5SN%!xoU8a#e)R;<}hq+mDiNx|-5E`@32oASqU!pzm zcyq`u(y%Q(iXxFVCt@WfTw6lLBr<+HPc5Nfm*pnJHBobj-|o~=20L|UJ$MK^6W#9G zp&k!pUr7Yj*4r&W)NqTsw!fncZF%1s0A<`}e~N*0ml3hQ36FGIC1QUynQHu&`^>#p1UM%O?M(~ zTW=ym*L)L%!EEC_O0sg5*FWez&H? zWbtvq_>hVW_yB@KNs$3B2=2W2KnUE;t0aTge5N-Sf%y^{z~)R8S;Pe*;F=8`piA)Q3hgX$0_ z_$`T~2c0jE+5lZaLtsak1UqeKoT0u~4!Xy!X zRs^Ee@D);R{3%WJAoVsRQMIW|BPKP$Xin=yOd0`bg#lg`rKpJ{$-KYYIBP zc`;}DDm8xhne$G=yVF}p6d6s1Gx_RlP?Ix}9(P`!6yZ-rgg+G#{!~y1*n}PFT;|m8 z+RjtIM@$-FO-10eB|Z}#F=>P~6~vk*8p_0T`FbQ_rKwD(CS5g32^L+_D^Fp#kV~mD z0*FciL>Eo6rX{hUso$4)H7H8U3%4BQaIK{&D@|Rv7O8Bx|&nNNvHP> zr*z%`pQmRGKUW8x!Ut^+DPo{B=w_~ryZ`+>*_RQ9QyPZjED3vwJ5OAK)!gcd%Lu9| z3Dvv;+LXVelCHgjaeU_Fh9gKbo3)`bzLttaMU{rrI7`y|Kks-Xax-6Zy%L?5(o>^b z0X;n3iL{Yt^`W4rc`4u6;0VK`-k;grO1<|`4gY6RMp6#nFGE`m0* zl^{yv&N{G?DI@5nBy_`-NFQEkN(zf&DK!BSv3UdxD<7J=n=5zeO>Y?qd@70C%qyS= zr?;&M)XZv4WQG+`?L;VMUP=#6E-}9mFA26#W6BpAGvY3Zy0~kt=T$bgh+kJ(ZL9n3A+nKf>2K#uI_K%0a#bF5d#n zov9-H<1|!d?y+*#Kj2d${UsAnus+&e)gesy;Zmj}~=!&4zR9mS|9$`%tv8J`Q;$>B8 z&h(&$KY^wfzm;#*9S`5fY95{e% zxigN8Q-h;?Q*H!JRr=y8s`pmaTMbl_(QTt#Ey?J7lr>34ML^W1}$B-tc@^hn7jX2GjsBk4?Dbq@QOpMTB^8g?D zlJAnqN72S_bElZ`N>iqL@1SYw^X!Yeg73b)*;E=T-BTiR&G2ED#UiGPV5BO7ktzuY zI=gDHqMKcH1Qk^V75RFNAxF+ck@?ktBxgwxGe?4iDhd+vj(q}8=<+y}zQ=d@J;+6>0;k=GslC;Ev!)!CP5R3gvUX zZm%}5%2SM*s8P&Ziri^xb3fEv3e{YOQF&4XUK`XAKvhQoRZW0uzR`3O`0THm*)XcP zM$;+O3e4SOh*bHi!t1d)#Z=`DweqB3`)~U>iET!16VLZ7uY_dJ12!-KQJoYQv{?hi|Y#!Rkc5?0k^h z0HIN)0Cj{+)kLPe6Q>+fyLD|)3!=JPTGSv=wsNaQ&5dN8C`* zqwV`dUTOoNmSrQ;bmW{`O(e=)?TAqcPPO$P^y{&pWId9vFutL))Amp zM}SssfYx%OvHh=Qb6{6(@YS*`Pte!0YB(8sbuFuP;7R&gR_DvBuw_{`>9Q;j>1A2= zxkLLcyvi2SiF|!~ixoFE(&y;u+I;zNIo})X79m%)CRbQ2Tq~oD61lahHU#Us0A)!7 zuC8UZGHaI9vTRAY%Xcpq_Tvq&yzxDp{)vant^G~ivN4y{(Cg;^7^4@+e1G}0Ir3#= z_TB%`KdR5+^Lz9VaD+<_iBPLrQ!DqfFM_dZ!B}T!kD#cVoxNdGzG+nxDu33ogJP}=}3%I9YIs|O>H8# zn%Zttg-#6{UFg)XQNJ6sGdC>qaXVb2qpAt_i|wwgm+W8q#9xEkU0f;h1#-9ugi_3D z#TGSC$C*eQ&1)1vJ9mB*=cjM>qm4l}PDQmLy^0!eQvgq#uyH;DZV0XrqFhMSTyiKl z9v5hN!*F~RqM##ph4dJ7CyLnEU>;|k^k_xfI@(*0Uw4JLFF1;^kx1)`nRukRGSpOJ zf|2G@sLp0UkS7J(-;*L@d=rf1GkydL;SFVAyxCx-b!!?T1D4r&Yz@)W}}y(fj~ z0I2s+v1gjSpk@TQt*{De*J!o0ul^64k%*Tcg`C2Bz ziWCR3%M3R0<|f4>?f1F{~*SogTCfY{}G1 z(}U`+M3z*Ko|NUmnMBfq&es@lX~>w!rU4^sJASP9@{r%JH^iM}zxrPR{SpOue#kG^ zn+StyBMhn~2IX8ywgRT^Tzd=LbgOG`2{^gSWD~juc}rI)xl1x`RX_sXn`|X=0?!*P z%H=Z!eR_e`Mo!hWCS1u^At%v@Mu{ct;@0zC#~_7cYE7vl;uyvLv^_-?4Eswi_omr ze7|l{t4Q2aYk1dk0c>qwwGHN4E`XP0%d+f)uVvN5-LBbI%d%~k^NkE(qFds~&yjHw zBsG?nzX{SBsCBK38jFTy`K%LxTCIUv%UWrZuGRJilNyBOtnHd@b#rRlPARUutU*}U z4WgD^gs`Rp<+j;p61iHF<-vKagYxkv%!vXt@46utn<)&hHOy*XK79R&=Y$}@!KWK^ zTSKdS7KxnSYYo40mIQmA9X#;V%?{pRDqop~S2+{0A)SfXxfZ(zupr)J7TfXRo3zk0 z_{y0(4@_qwo^+jwc!Vz0Lk~~yo-)F>I>WbSRq7&4tBV9%btc%#sw5l4i^01H_39}0 z3cYBqJ9QD#)tOUyuAb2u*kx6M?^JaTtdTpzxULIOjcU-Al}*E~GqGA$kSt}Qw3cPH zTfH_A=gXsaIbR;MR#sJPd7!caJXRMnWxL7Ov#0)s+HGIjJ$RH+XB2cC~*WMv$>Q>j@Md(py=#f)V9*NFGJS3fo zcz8M!@i=uR;xX$>WFV6>5yM1hqQGjZi(scNf}J{wsKQcBW`cczH**#){cVFNB z95t7Lj=%hs`i_9o`!9Wc|Dl9#LS~;=90nv6U{3qP5p&Fd+Ki+=-T%==KvEY0Nu2>n zzJVzBkDt9gPSD-#?IYl*iv&S+CJ4$|J3R=|+0gCg|IROeJ7P*p3FNnwDB@1_B~f0q z-Wl99UmsFWk5zY_c+fga;sw?bBSIp34`}*bkBbM7-RH@#8uYX*8(B`7(5b}&43k=x zWou8!%G{FbX`-im4H-G9*BKx+saTE;@95y3*k-|4=GLeQS+2A8tCLx?IGcAhcRjEX zdMy+GAonYSE%!A(g^&aEdO}WXvNsvFH@s<5>)hNuk)}0Gc*IU-ox501jA<=vJw(@J zwHc>mbKqZ3Pzi>R>u+S`z3oc;xBN|t-b77J)=f1Vu_V0dFL2-3u6^Nwy!5XwgRCct zv{bsGNIkrFQNMJz@|TLXE5y<9bZ=jnT#@w?U2 z_mMBt^#&-pCcfT~C5f4kP(4|v?J+^^cOS|aPj)wO$ytV8=l%`d2^pU-hiv5<#{qx+ zF&Dri(OCfd&WTDq$_420h~lp+tYr0gbUO0h5U1q=^vvolAOf0tbBNE^uI3!yVpSq2 zsy8TVq5$fBCW>i7JloD3+*_87*qP4jt@LUW%e1JB0ZhxX>_L}hHD;LX_|(=0BrRvn zgLYX~kJXiCBW&ay9>kB<3gCs%gyNW`^6Y1@(WJPVED0DPqw|9A)cqcFAY!8r;;vI1 zY){MxwkX6+iuZ-jJRK36Hl)C{-kiCc)I=$6j@_+l!uFgL&+p`W3R-#uWkK~$1u7_q z1qAQy(+<5SV1!@r>ki^W_1x#u{m>|VnyMow?|Q;U-acbum3*_KP^7bu2PC@L#}h2_ zDr!QKoQkqJor&}~b*snDb!1KG2mR*3z4sp`yBdx(C&gpasddDm8p7l&$)Kj0N<`RF zA7M+q`L^AhK5SKz!YE81%jzSnsW+^Na?j>BaA{78Ejc3nQW6~soP^B?VkRDmvO~E_kXJiKQ1t=xH98}xbJVt4 zskI?L^O;fv(psjxwvj_evdP$@{sg->S!Lvq_nrcY;H>w}bN>&Q*lpz+ z{N#EE!Z^;^e~3g84TkEtCf`BW&YkNW5F~V~>m7*SxNFD0&8es!YmcE9VnrlJP+S^D=1o5AhdvdOiD2=1aqo;)~YB4e(i<7!2oGmeq!xR3py{2JbBAtL-_NFDAh}IT@-` z)IWvymU*u_KMaXG4~FVotC6pa9n8TrS>g#Km+iDb$IElxfe(aqAc3WWm6ntlt`7$6 zT$pqOQ>;4?&$SDc*AwkxE3s95#-g~OrQ9hf$Xm$>@EIb&XE2v= z&o`&JXK6uDTlMfbs=Rv-Q&ImS220vh4F>Gk?EagE5=93sHZ+@YK1aiFtY99+hTAL% z>H#@hWy5N0c4(dyYc&v}c~-zf^;`T4FC$+t$s6y1uGgL~TH6Fu)#gpS`7c4dq4+hTUepcWX5uxUJZ$21ABOv)Wy!LNwmk!wf zDmP77=5lxLF2#%t2E~ld^Q4<|pSQ;5u-MT51ET@3;RyW>@WA3cl*ct##y1g}SRH2~ zHk~sOY* zP!g|a7F5#PifdzDnh-hi{@>(Z5)Y_99Nr>HSpskLk|Rl2qqM%b~&%zJ2lgMaXl?j%Ew zY_5g+u!*c7Hxip@UwrjLcv`H~i~U(0jQ$q) zz}&(Hjtyy95R90V!fCvnCjes5oNQiOkKB0zAg0|I z5VMdwTXjLuOtbQ`arW=-=mON>0lbjA9<=Ly(ZtovD9_7ewR6L z;xDmhq|k$NromME8q{L-#Uz(aXK2ecG~Z@FODD46#k+rFg(EDvJwGTfZkWsU)SAw0 zw;RGP7Vt}qd5Z0ZERR56Up64dnTU<)Oa$AWT{xm-Zrn1Xc0A~uW$MwlG|%YaZSM9t zNk=^(gyDF&fB(myrJW6-8CaXdE|GhedJK5Z28m8W)Np1$t9<(ZMwh|vOIuXGfojW_k@xH6Jj9&F?SBNz`>_m9cp1< zi?4PR0E4E(3z&_JDm3)z^fPqf!~2){tRVIR)HL=5^o*SVo5THwm&*d$!jhNS?Ep%< ztilV!VU|^iSkjOgX9GnnX()}eBt1Y^OkqLIlG#is%woHmlTJRxO-#(Oe+qp9{h~O% zA};{)91x*4g$aw9Q2&3ahnldM3E5AwtTyaoZ?=%;y0KNRt47SSgk%;qARsf@HB_#8 z*D#SQxlBW078}ffm8f7|OCJOQ2;!Pij&FSgtcpca*gS9bcNvSb2JLcxjA*#>^|Hk_7sT z*OP-r$~zm#BCq03crCYUyZiTLd2)%bh9Y`CMgNv>Vea~u@DhDInRGdv1wmfHNL;QQ zVI7Pj={+%0=y4{6%TfXwTS?jiOx^b6mDqHbexm6m%@|V);6~;g}z)1<{m&XFcZb6-ELtb zU{>p;&4x;>HN*07Q#Iq^HkofGrUhM3b9fwfxDH`!3qmIIQoQ{;V&`zg#58^!6O)v9 z{R1{+%840xB6lq8BvPaYj~foSHBT)Mh@Y?y`7Li@@QFtU?d;I2;KO#i-xe=?iRa8G z%-N(3>La1j)V%pEa$#7?oEjN17Zl<0=$&VuLgR`577v|0Go4eyoDa7-ex#aI!5B&} zl}iFEufhVGze>f>w30jgY4)}yu@&U(@wTPmEY3uFzI2y_x%1B3mS8NmdfU?A7N??m z+_@FyG3YEwPoR^pIxgo9+R{K7Ujc^BI1}mp1Nyvqcm2nUzbY-LF@ovEY-tdU%~1*J zfw|ToJe%4~m6~i%EBJY?58KcRsvK{y8$p?sDiMoWlU=q_u9ZPC_T|*&I_S0}{IXWM zHWd1Z_+}MMpfWX9nin)ynipKQlB)QsmGr8kG(^Q(Kj&+3%GB%3@dFHL&r}+ya{b;h zGwjl^lrj1T4&f*-P2pMh=jT4Xk17eOOxlg>X-sEEExbgNMufpBo~jx%PQ2@tT=M(g z(!iCu3JW;O4cQphaA3D8q_k>FTV%D@!xb|XIoOp z%a`MSkY{>*TpF%IZ;r=T$T?E0v|PpIg9)&By%g~lcOsbd?1K@`aFI7 z+7CZ@=l97%L|D9<5owvvTF;d8QhIqZFQxZ#^HOGrb-3$&FC(EHA5s)&X<&-aKNC+e zIwV$K5=Jpni4~THn-sH}5-XX_jv`X#rCbIfQeyJT)g&~67M`zw*CrHyV#>`8M`0%) z{a9u+tlF`Um8*MB?ZecuP0Y!D^ICzOj*y%2h|J|qrM5HyC-XHi{KE>Sz~hpbhp9;- zwIu-$w4n6UiNEw&rM5H?Ch5z~=|MRsI_iT_Fk5|sAM?uUXPAZ^G>6HS7R-u`?O8vAv|zNLvH+4Z_UFxcf&FDPCc$~*T*f=5b1AKsFLgq-~! z0z_{1e+GE?=6E6>ZbjLQ&XV-J2mrD#UxGFJryk2*ia>}Kc_qzq1V6OMpR$Nvw`&oV z3oq{t z<$CBz5Y>do*;RiSFB0wlk!u?mRTTx3Xg!mWDsw#Ns=Xg14Ggkal4Oi{C7EqVQ6v+s zgxP4570_$CXMT%l%VY8Q{rd^vRt8M$o1Xxe^(P!=Io4n0Y*s9zYRs0ost0SQ4fOhD z8h!OiSQBm}U7y%ibWcjI24vEk^~zk7OML=@m#dlDig*O#JC2y=<(`D|m`SH}A-Q4{ z46fYN6dEFZ^0}|!kayUQ3bW7Nvobh>np}o!YIVX9y4E?SsGu~&&GPAr)2XU| zlFUxXL5uu0i|B!)MN}@@**N`YMR%C!d~?wR68?v`6*5$1iMHK*n5O|k2s)#zAn}9W zVwoj9a?A+*?RdzZgFwPeUfS==MSC&=PN%1kX_tEz0fTudJ%bskx03}Z8bd4faTd`Q zSgfEP9XhW+r@RObe2Th(kjS-mW89g%52@0At0E>~Dv%q4;x5*5)LvxP<`imykG$+) z2f24fbQ}XDHrb(2u*F*G+90}lzRAs_$AhVI_H_gVt__m5jTJG0N$q6bOr;YUI8SPD z3^EzRM9T9J9C!ymW9GvLct1u+P(EH$nX@Xp?sK%`Rzi46dE=FsUPXKWKci2`_DeP+ zxK!@GIP$c?sw^fDA?%3cq97S`yDhFtP_B>SD6ni81A6zbqcQeE4YS)LSn#9QkP~v2 zH-x(ys7JXy;syBS@E0i%IYV{~+L3&7|J2mr9!eD{ac$kxugW{T@|X9%_voz$U0V?~ z(A{Hf+w=LR${>S1{Epn;wA&!QN3<0bkuGRzD*^{!ya(YUs=h7%4o$LKBX9t7k6*z! zKD$FJD2HZXfzQntYT!)7%QR;q46n08124GQp%FK@Yl7YI93HA)-2bFaW5gf>X{juh zm)67!#6)6x3?d1}I<>#f^RM9r3xdYU*KZA{b%;^!XZLWsl0rR#q3}C*QO#sB^+Q=WJwxRnyu8o}6Ftq81i(SlA zJD@dLZJZy$iZGtM9T9IJZ*sQ7<;4`i;c)yfJ_vW%CwE%Yj{jwp)O_)xYy^&pnbx%9{|d?BOXQ{5-;92?fgy6dPHoVDyo5stxXg7BlQkRcn*(=h!v}B;&F_$R^GkHg z93oqr7=~kw!o^?7j5BQEM$?=#T&UIi$8SEn@CTcL^gec0F7CS`5F!w73@~#m!$Xzk)2!b}lznM~;)! z#0}6Ap7)BifP_1TSOXQ@>JV!K4Mxi!V1V&M_QR(?xJ*Pf0fTSR?6A)G5ks_{d`Ee^ zc_GUxQ$0N?`(~Ea&S_0no9&(Z4>2X| zV0a9{ZTTxCLVb2<{k~03w6+9cI6fvLtNi(|b5*p1lHVXO-p`G0eQNK$lLQSkSk%$5 zf@3N-Ed*)`S3sE(rg_}GjdnqW4s}|F)FxIzK4Eoe{_s2oD5A~oXZ5s6e)%ji+<)~4 z{9ApHMYJWv_-HUp8nXBSqLB$Hx%Zj~!BZmqOJs%=$NJl};;-q_)5(62UO?0og0Lpb zMw!qwA=sK|0on!=frRfJ+h?TTpnBWnm}_DNx{*={SWV0TYjNodasqPO{_0WM0M`Tz zP!7hG>_zwZlk4Eey=aqtq6t38{UL2vYa$28We+|oERS^?fD{xwLJ~(BK0)Qg&u5%lo69tI4H&=lkTLiJqI||7Le)te-NQV|*m)#-Z1r&+w`sVBs$J6^V%oDw-i8G+_AugF7 zTXfleBQGiP9c=B#k$@xABM;OpG z@?nwM1S80?61j`0-(tj$K^rnC^O}Rg5a2iWC2BJ+XCOCzoHlJ0Yhn+`64`Frk5Pck zj1rlefmcoVK`gQKci!OE1R<6Z$ZshT18!$Y*ioJRBM8JRcsKZ6_`7Iaf9EuAzB?LU z8oB-6Gyepeslj}{3w=X$yr_PAd{<2bsv7@;@m!_J%CINjC?f*p9nS=$+==ws(w#`J zXxxc-jpJ;H$ZmlmU)<{Hjk!A!uZDbeGMLMmC^A`_Xc=cokse_}Xq+WQdW4Cqah7BV zjmxPo3BoWw>c9TAnIxeL*kqzMdk>?bKXH{QJt?&+#}|KsCRkQNynA2 zdc-n$D(qUP2+R(RVR^2`ZiwtT+pQtc=S~!u9U21w*PE^(0O)D#h8WlJ_`yAyjz7dAbz)Ur^b*!XPInEIaV!@Q0_iC?%u?12miw^?WY>TfxrY3WV1cu z{?%iF*N1s))EFG-R7QLHtK4%eOG7O1N>Hm2F`fw|^65@NMc%$;P@%J=!2I2qm?LLN zdj7s@W@QfwLULDLTicz8=WJ&^BE2ATd2nMeq)$D=Bb|vNy}-~)XGyvjcuLLUNG}_k2!U&CT%3oCH4y^W2!T7VKX4N6 z=JkgmYre5#g5z9?@NuQ@ZIybmU6}eCQp@85Lar2ftAQ`ixKijccuhW~k^FBugi7VIf{v}I@~Bk<87`OHFX$JH zg^)-n^LI#hH{pa0bugb*2+O(aA8`S4X7O(2(E_|F*X~m^!rj^kcWZ4}qGvJIn&3od zo!HIWyUAqJa0yO9j84G1CTP*ARm8d!!szWs5mwh4R=3z_CaBR@e-qs3OvJOhGZEY0 znJCf`4A66y6zK^6pSp8xm!>A#_IH1U+zKf8_)Jgl<#`oEaDxbfY`sBdiz2c|K*Znv zUNtkF)K#5y*W{ZV$70PrtCCbwNh&$Jk}hF-T?y0c4Ab+~$zZ+3-eYLqToz|SZxNcE z;doAEO6+e?p0gxg<1JUE#Ox&yuPcFgoq>4ss;EiR;Jam6v$X@e)fYwLU(wnI)>X|@ zc&ZN1T-CP^@rY_i*F`~OF<&0r%lR6U&U840$i~jHxY;Y>;+tnWa{|=YzYK+QCgRna zGZB{Rw`Bwf+uh3u!`PfKwHtXM#FMJ#H5Td8{VG z;C3Mlt|xjn%QsSho}k%GP;0tqE1jdZ)htKdNQ^~t&m`hgjGma-ENi8ML1DXQ3YL(- z2?R}q%Rzd>zkDOXATVblwxBZ+#@yBC_c-Kwug~vG7*}7yxcZV{wBBGYUz3ysqxB`Q zt2eOAsh&17j!AA>T%jfB^iH5Dazsy!07JT*1@KDQnMjY`lvZk_QyAKsERSKIG9}Sx zJyEa~tq6Xt$?6%{>px4FS6>o$)|bGqp5WJ7{q=O6l2!ecP*+M;^`a8O)f3@bD?s~L zui;7vS5HTI*R;}$B)3+2NT&)=u8nwBN>#AzwSi-sb63*3|JJx*dZDP!F6;fl*1ekeJa7XZ@DCq?ysH-nQT|J>L z&rC8H=C$4gg8^Qi6zuF>_8&@U*HA*c1`~+psgUjkZ(shy+9f(IvHZ-Q?CS`4JGhwFd<}4^>`w8CeovLrT3KJwV?#B4JCMO zFnDcoAe2zG!BDm30(eEgEX(V+W!VxVmjsLrB>`gt!8Gq+q)YC-iAt#2KvXT&+vDA1 z15vet7@kJ2e!9E^Dqhbv5JvO%pOT2Np@gRm!qaXm37qP@dnIA+!1I}tu$j9_ zcnj_MB!46rmRBnZB14W`;@FQhI!|JuU$)`$_9EL!J1Zjw*US6 zaKCaZ_@Vs*emL$J38|%WR6d(v+M29>PJ+9KcbJzi?<B=uBDAIf#})0&weBC zzB;vdyc`cw3|%c{;;!pla(%a#jZBl~&=U52)113d|^$+D+iRJ;U=jU`ZQ zEP-O9fnv*5(VljtiOfODdA_QnnYSqTY+HiBMuWiSTB$BgI0yk$VH&6jY7@$@`a0O3yekvP{&Kfp_` z&OJosM*L%VJKR_Tw#E{$HI{&_QNY%91uz0v-Ma!94Yu-iiV}V`8h+(0iOuOuR5A@4 zqU9`!=VNE0J0@n!wU!*T;ac+{rG{S#&KeEQS}s73S+Cp^8?Uz>;?eV@ic}H7I5?`M?5}5K9LxjqmNTVuuq7vjm1Pc>MCOA{If}vTS6g-f9^SD7- zxng1*+E^0qHJWg*Trs--dY<;#1}7Z(#xYM5AQAV1oNl2Bkb=8FE=8yfQkbBDHTxsQ z{i`x0y1xq`5l`yQM$@yqqeG(@o(P=9a4&GQv|(SK6h8YaYZ~h1DdTSY8v^DjgN>g{ zq58228q1{!QMEV?%w``2A%p4LpAg@G6l``+3ZKnYJq!~&gQ&=x2kp;cIxX362#8G~ zj{E7U1pdw=T;8lIFV3|;;muP>!4~#)?}BJBl*D#+mV`lmS!5vn-Iqop4O`J!CL7Y1 z$e=HISaGiZ4hMk8NSCJ;@)&6XLpU_fgV$LGTi2P04ZNyY$^323QLdK3Gxw@E58hRA zw)v`fiM0!2y>RBg#O8*ct<}bGvsH1n_Nq7!;iUK&JGnVKxhn3kv(EiKJDZ3v-{3KD z%$bPooUFE*3JfS)6?cqh)k<`BQl4NZ<|Qreu&~zszL9L0SW+3CyTig-cOJ=Wxf=qO z6j!+$_O&Xm=j!Im|KRz+@e!;zu=3bXudv5O9c;`!oQ1qdTHXVHc~LK{HDFb+o1PUQ z1&>%cmbu4+2OQIU_&U6eL`hCJIYL-lla)9sCD@3*PHs4tGZ7oqnFwaREdcDynlvq_?x1ZIf z#E1rc`P!xcfb|;OI>0NVd{x4?D$TdD8LN3ZE2G9O$>90_t%FpWT9HibL{$l-stlw`S|IM|Zx zB?Ihq*dLyR#Sk$dQHXKpUTH8zI^$yIP%mB*xq3}yP?R%~8ivjY?Yi|LiG<|nCZGp)QCr%5ge6Z!C0#b-aFY>hB6tIl1ns};( z+|?wCQL`Y(3!Vi*9*0Iy8G>S{W<_g3wwTFL^#Kz)WdwDOUMm?MWO7tR8wO+qRndm~ z_`08=KPLBGoPA8Bl$=2t$EU9jM;=SdmU5gPT=!MM%~?p~9cd;mYE>B?W2@qeHVn5V z}gc*M_1w%5}QMM$BC+&kAT`vKea!|^}Z>W2`22&!d@+vk{AC|?gS zxW}0YL-FQ@5$bfe8#YwOSteW2nTT!aOJq2YGm$o}bH`8>ggoK?Po7zw>hUZq6sW>l z{&I^J`mJ=rGmc6`mR1o8!e1RJc>H=&@C59v3U`EDF_FYobgs{98;Xf?Co1U$CG4m& z>?qd?%Agt?VNS`VQ0-QNkt#al=We%>j!5@41L5rJYuo68?b(mFT#CAePvkET$yl$0J3aY z-_%>el&XR_DyRoL-&PplMfa{Swk7;%OZ=#XHRValet7wFeA-TgWNTugTn)E1VNuRR z%4a{w>r-IJt)Wa#ebgjv^chwA@CbEgtp=&dS~YzMXWHuHehXQv1^0rKnsFDT@^(}0 zWDfE9+Q|emITIg=yGY9vM zczV0Xye_M7c|o77#CO;^j{DoSXSnoU*>FJ_Hkv2j{J?{szER<=W=f`XWg-)zV7D^6#oc&=dC`Sx1d9Q?CJU_qnW(+s@A-pnQIq!_FHoz?=Zd(SABdB zo@0k20dZ%)H7Ln97z<9}^;?6Od?g8Py87KMfYRN5*YG4~naXDF`Kg33Z4F_Pr&)4| z&PJYj;Z9r2on}?p z#Q|Z0j^=$(^;ZL$mSszgOL5yT%N;l&lx%C^(X4)|0ht-)vs8;9nSo|m z>L%kUc^H5705z_DgM|fL{4@|O4Vu+E9L>i|b~Nt)hXmbWvwt{(p6=xhMPta+upi%$ zH2BAvsANhO2y}DtI8t}Fi#L47si?7>YnFCipsxCnju~>hD1&=)6;j0*=;KMD_9cGB zN~~)bkViMQ820Ptn}~Izm2?4TfRP&aI=X0~Hc_$K$%=G}0?J=Ixlyc2?Sw{JG2d!S zm*F$MF2iT}Ysb6Iv$Y9R%Js_Vk!l^R-RSu=QGFrv+2Sg-@*!)Iy55yr`XV zPmv?k8ci*faa8s2jd|`aCi=sOd5(*}^RSOtX!~RSS*C zO=9Skv!nvQUTc!&SC7qnl!x`351;M;Erx&zYjdtHCsi_q8^RT{{&rgU)+KDKHf$@E zuOV4UkrJ0|LZ*`W7OcT)6D;NHN(N{pm0`Q>>i7PL&Bx|PZ(=VJHeR&>S2-!(AI0Ki zUlS}^at5w8uu5mGx~jocIVm1sIVrYMrphMNDVGN=jM8+TygCDk{PiPav8C2 z%Se^bquS7;0XypB=2-yv;SoHB02)=!+(4sPA4tU>V zj}kk|OO-gW5^z+P98IfD^pLN83T|!cYhq0K=F&zsQkX>okgJ^_=~|&_5lJk`m)dALMOyAiP)6aKjt>0Qx6lAb9Ltp0L{Jbym2BLqiDgXY|JUNs(l$% z!|Lhw;ma^)O5jXm!h-U-8zy4~#r#1NCyn98F+gUy03MH4Hnxcl6vC9SAgE{7T;G|# zpZbuYE(^J9cetoV!8)fgAjYaerYYesjo~lL1@K^8mi3yk<|%ca=@>ho;Vf1*_6>6u z%?fg}u>pNk3^5nLpfh}&#I4FHr|I)By@9=N3~jOcM8yqrSrF7~n{@>YbE&qE$-$D# z|CPrwaYVLs_^xORLtEyuYSJLc;!u|7(wwqvw+a>7HP4_{(}ywKx7OGf&rKphHlD6; z415V9;e*Q8Fqf)%3hr9EL4ErW&#g6vyi@}=-V$|J^|ud^M>iB8^u`CWNO=A7f4JeW z_ijo~o;3!?_`16d4f1Ru8{suKH;l-iyWMa};7?-$f8>ImqeL`byz2Pyv(JMgGvH=P zQV+GsPvm}2{=;A!Uo#tu<4nX8s54QCPc*D&smXY3I(1?PIm;e1Y&aR)7|t^jj)ta) zpErMoMYuqG47{Bz#<8{@;U^lTrOOm|CnMq2Q33G_yIV-|EPG`c=9wqRmA$YUaaN3OT z!e#Zc&pcIMVo+dL8tHRm7|u*-ZVqibtb?%O-L&65gPXD>C_M(1H-v96AOY`A`_~^4 zTmU`PhS-GsEC{mMhTWf#rC^BaH&6rvJ(BH)z|Fk&`w&mrn5dpa?GLdt(9y0}#ZjYi zn)dV}KE|zc$yu(Zgx)knZ*uNx`hId-6327(*)2HDy*|4&n8r2lw-lm-b(5U6+aF%~ zRA%Z=rm@yiSdNjx3=)ji>N|qG&v{$JYMhGed2^;xjCg5@))+xmL-v189rT#XW?ceo zS^_rtta;@5v@Qv@X`R6~R}F3*x+R#CuY|VbG$wMtL)Lm0%?VH6heX=QMjz_NL~o2> z>@x=4$kOI=fJe9@mNo}m9(Klz9-mXU1aM5gqyRyiMM1sQUli0Ha8XdNPG^E@U=gKR z6x6nQ^Vet*p|Aaqe~K!H$+<1LhPpL~#$f^iHCbhd%&^oLRi?9COD#a*FEhdD@>>Ej zT<%Vlt4)MXC+lg`>EujZbo#AfGP!ozhmeYvVqczssVZ5yZ?Q_*3rknZ=s}fN<`|B( zwFb!eW-S9}oQVo{kFDUEn;Qm`x!VmJHse&3E$U3f6KA#m1ct$KtJ+;Yd=T8X36F8+ z&USSs(jIY|esjO4Y1x1rUrCnen9BbvRGx57PL=8Vppu?e(V`~z*t8`?r!_=pA$PBZ z&FQX%9NDT1f+dzTTqmEq3Bp+rUV9b@# zK`jVOY>v%Z>EN}SVKX*I%;AB|wnS&_j5%e0xYn*lO&O?2)& zujbx@65lt{^0}6tpvsMH^PezzmPFdLhRpcp^O8uLR$$G|RRh7??W)aPJWfS zc#t|1v5}95pFV~vV65z6wxe+C=tt=IRZjP=B=V*sq+_xUvAG>FoLoy!-``riBcx-p z4n49Xo|Bi-v#gOqQ-w&`j$&+#pemFtHgEjsKsySt$>*qtpG}sVBUbG#Cv@iOX*)2N zdp&JO)Fr3j^!=nLL73@}x!)lXJ34v}@_sNn0hwHu)Au23J>C#sDQ}Lej-LW($qH(y zV(xlAoN~$i4!N^)%PG!tqsyCh6flD>4!y&(A=M^o___Oq!7`NfSD``7jm|!;P1p=& z9kn)LGtR8FC3A+EzMl+4fi%+}bH76(ZPledQ^IIE6I$b}e2JY6qakBNI~yoNQWzm| zwj(IB)GQQcGZPH2ukJenG1Hi=s#}sF&i4ksEa<3BXGRTIhR5VWj(SzuonCw^JgE#L z#l+BKeMfBNHc5vLQHl2r5W6cm?$jC7;v0R2xi}MHoq6-V2za^M z`K9TH*tjzO{cBErV$YM3)Wpl=! zL@_Xn8fbIQ1yzpAV^9h57+kND9)5ETq^ZLIA!0I@4NBm};@{ha+3xLs{vYOec##pa zklbGw&o$vy)JkyO0(j}Ml3&bNn`%)|k38r$pGoj#IN{ryn3q*?ZMJ{Fk-~kQ@N+SX zxH4d=7`lbGA*$-3Tv_n%|A?lOo6zJ8)Gl;hyx%U$KKSB^A0tHkR6UNt&`)=v;-zO% z7IB?u5qXD zr$#pH#izT0FwR7JcrMmM&!ls~@ZhQ^_Od9bt-2_vM&je2U5D-d{5CMusSXbrdkT43 z%8r=JTrirBILllxR+-{m76nU29L2tv>SN|oYIsdVQ7?0SW%>;Lm*QRKvZ}STm5>Ei zit^&YLjYp4qigZCJuIy08^9vPb!XX?b>4~8%6-^jrQBY5lrYU1jB6Kp( z4ywlHp{N#usJ&LOTJh>M_bFXnwv&@x=O<#gndVBI{ zu>d`_J}+479gNar^<1E!y~Qny*%?c^h9?o1l@>SgEQxNV8qZkLr;IV_ytcBm3|-d{ zmxMmCn-g)t4ri=i6ecsu#wR?K>vdGi18iKz{fC$bF&iJo#~`>5+Ze(vE6qkREcv3f z_0pYz&J$gG%G7C;dnK}xFHYMhpO-Soa(n2>Gn*Yzlh-c)p^f8ik0{Axo~xx|sB}+= zWXeVDSm|8QA5=E*Ytc&*51De=D_wZ5GZVDT*yt7E#9?pF1I4La&FyN(T5=MoFF6U+ z6CiQU*@M86t1BIVL+*8@10fN2nY_?HY%uhMFUXPK!{Pk5Y1j`GNaD_&%{e;)7EbLA z6j*|yjUI1BJ@gQA>!C&zCYXiX^@y4a#^xYIG8c^c8cLEc+K`b2!DW-FqV?pqs3V(c zp=e%J$avde87vp^NQaTjZVvb^dW*q?n%JyWgD#s$2`-x`R-ed+x2G5iV)gwd^g}~F z7P_{<9Sd2qy_T}n2E!{1MzMgP#Pe1Td4&0PAjYwLu63ZWlEqAyO{LmMn`$XXA|2Ny z`AWYccCXb* zOUJn3!CbpCv#RX-La!p=0Sz16TT%5Wes}n%C=&&F8XQiqd;&!)w8RFxUZCIGrfx8y zBc~p_%dy5*`FxUX@)!lRv5PO?KcMDA~#10 z>~XgvB?5x>Z_rI-a8>o?!>ggm?5mkP%k6#op{3EKwR`j)( zAtU(;6BAi#8AC%Ba%5-b)R!kpn|oLv4hDnBcpo}EBfNe1Iy9TP9d{u|9(UFd-^Cn_ z#j>5q1dP}mqiGHGSP*2=VFja(26N<_$Doac9G5K<*Lx;r#OA1K%}b629gSs7gR7#A zWn^S0ej-{P48KT8%Xcb;p%}J$kPQrTFz_Omd)#ae=FSw`CdfU6(GG@XENfz{muMBy zPHUnUB523!bfi8+Ry!DwG4`MR7Gr`qJ+*gw-52K?Vu3`HW*chX9Z_bqrH8IPge&+ zF@^@W>RcW+*S8PH5UD*7#qc_dl9M*cA}?)*4X$Q>5&Nw*i`js{r_ zm@QATSJ>m(*SYx^vSHpCiCQcvV5o)7G#pMD>CzHYaTFakETg%oq!Ja+Kl~-Cvx5tW zesiQlF~-Ue48(fWp&YA?q=(0%n%YEY$>WLXc)z&`mOBdq=E2*-xVwy_mra{6}t3zCB_>>FDF|sXYgWYBS_(N10&H2cOo{LYqv2< zyvEhZjo=jbI=PWZg;!Au)Nm)#F6Ro@pPRhaNW5b9M|Lp2b|F@A%`xDSk)knX#c4BK z|M*%|l>PhVN;T=&^b^k2k0mH#bfJj%f=cEfOS*ZKxVA&icuJi8&}!};TdCZ6Rj}He zdj7LUrLc_aAHR%^#CA(pBkZ_G!yM9jg;1A~$b&7KXv6G}+8WnCVuB8joJNYT2!9Wx zZ6tD6{yPpO78F-M8eLKqPISkp&^Zi|v^^G{AxSs01dE@CuCY1mEQ^?eigGB|1 z9AK?G)bF7gPQU*3M=?9S=}Fcnwvzz{iK1gW5hqAhW7R&<4O9F>$SaOmbBJVFFKv^M zS2$EK(pzql?Gfup8~>zitOITTL%FdIwDC{!lnQq|_|+;Q6ni_we`|Xb0?#Lc|ZGxa-S)^@!0XNAD#{;oQr%b+Qn| zwFU5(-S5%N7lH$Mq{Dl4BE5t-ue{{$`CSdxxEryrk&S0KpaNMQ46@Tc?@&9ruT5S~ zGhn*c;(FPo+X+&WS3;&dQ*EkOkSjKP@`f9EQhCBpc$5fnJur~bUT(ENq18@sRio_v zC+-VbZ7Adl7I4`kqU9vkv^sx|rm1gsMZAeN8bn7t^y|;EVMFst_F-cOS!FuFP6?ou zN2+qW${^35B}nHOjbadi#~+~#wxlx=+tZl{hP`+`6ngg+L`cIX9L^7bX@=vMXtCX+ zv3c2YCoC`II>u841b!UecsdHQ*-p|W(b10;t{jp`>7jlz$PzG+%$8)e&FUw=f{D?` zs_p-KA!cXBn$dCEQXtNVZ9`RlE@r2V0mLK#U*3px+&_kbt5>6-9$8woKSvQgnilh7 zYuI*HbT;htoeM7l^;JeKwnKe}^{e zp2Y0YO(!%UrHvzJJ5R^of^o^|&T*W45yZ$eAN>u@hVsT9Q`c!TMWG;YO;2sVMjg?< zGQo~=M&Puc5G4fl7=hybA5bPn!M=J~o({#yl6XLsZzlOa|HIckf2jzXcMybNO_b0(BHqY;i%7y`uEXgmL={as* z=(NFucG^_8zSrZBm&C1$J35{I7>ibRdH@eT9RG>`?H>Q&_1i-fWTywz3$V6WUY19) zA{~G5V$6#zaTyvIOy|vyfAPWuJCPj?B^(sIE+_x`(ZkQ8gEZ*iGJJAXFvK8JtPVNI zRMf;6oKARHaao$8vT|%|7~cqWr5J`-0V6v}Ba3C%46eb>JvS!2@crpKSj3km`Sc*sD_E^B1dhRe`0K$QRM!NEsES869Qx)sD}qK z+hhF5YVCO1B2{=C2tgVlmu#x-YoGn&0i>olS4e3$gWS;dHHfMU5SizA6PP=&tXGIK(a!<)073l=)~poD}E?6CBcY^9ToQDr(X0V(Ms z_1j2_Boh28{7`Kb2_F3Lwa1_gQbojiudo-RJx&7XcKKukn(-7J5-_SQi$4T|O zBe76R-*`O+zEl~$lpk|49;b0u;(tx=QWh?B;c1X<}ihM43)utx!ULyB~ybzfVpC>-%mC*IMA60Q^Re&0_=A$ zbE*sh^p!~*(ADgQ2|9}@nf^-+mgZ#qjV=@E=Qoi2|t zs5enbk03tk9U2CgI$N(~jv$gc#qFut$}m))CInMcnU>huz*MIuC2Kr_tX`85aK(fV z*2)2n*MEnbBZrE}>(ol8@EEW%%+*(617DqqN=CR4+1m;OsP*m@2Ju#JBOCTQ-Ik6x zDmhCLLS~1`fLCWT@G{-x9uaU=LSHLGUrp{&_pKqWMlh}m|;suO}%R55T0Ld4M4-Gm+9>$(?jj82|@Gq!V+Az zEx~15iBY@y`z;{Yz5aeXi%eT`SU2>sH4IE1cFSc9BOWBnLwpJ3x;*+1k4?5E0BlaaC|ZoXb&0GOwk5+6*_Z%g)+zfCqRVPM-52DYWxIInsXB{aQe#MUxe`{kEn#I_VrA~eW^e6jY@Wz{W6036Tru%T zz}BF%Tng3FhMRd(@T%OCqJWrfONiN)V)wk(EForF4(q!FL8bb%wheayN4ptTmP?_^ z&{2Qbk9kt?6EX>gzPuy5ee#cp`@z3rEYX&N03nCyByMT z+nP8;XGuJIor!n?cP7#!+1q*smN`qhuP>OOMQ0i8z@3Q-`a*3`nyaLmu-fWys0~na zmQm0P>JqqC)457VZSJyvZ4X#_&_wMFhP$@pZS7l^#KYAkaIGe|mT9qFIAvB7R?CRT zNxv?EYc;{OOc`1wy_ripmReuh^mueVa*9`87ak)WYC>x8Vpoxu-+dO6)AhCkmK1lt z&kKo426YKTtA(Lm*AO+x*u86rx&(~X28^vefo(b6!rjxjB3ln%cN6G|+nwm{j$nvft~T*BV{M3>BSi_0 zs|}9x6jQK#s|}8mqiL5DnX(&GKk;;AZCIRdOgrPz*hQA$xVi+#)g?HtHaIS4AvF+6 zSX^yF*K)YQ9!8P|caBWNJ5n%~?{(xGv#swc%~cEzN%2Srs1C&O{|E_!1&lmk_y{h@5v- zL|o3DsH7thr~{zIAzi#}LVXC=yW>40B?~+gm9|_!iTz80)anvMSC=5V+8i79^=Wf* z*qMm!zu3}-%*|!P+sB96M6%6gRTnWdZZ50yWos|X77X&nu(x>uQSpY58&=ZWAL3B; z_5X)(nz}KhEw}23_lPufU)jqT%Kewu|4YE&6nN2;aJ7cGnsbt9N`lrJVQklRLj!Vl z@4BHW0cTAKIBN);d7Fgr*;B9!c2xVrOP>Nk$$lzYsRW!g1kT(l>HYUirFc(HLkw*u zsCC!=cu|l?rEBVGN+?=G6m6!Gs$@y@SyK{y)|5cD#y~b-iIryBu!Np9hMxJFumqqrB>=4ES&+OTLvC(5ODIEl zsNER4dI+2E{9g$=*TN$Dwh+WJhgVWVOQ)%5r4W+_UQ zSg!<0H3muf+S-JG{CK+{Q6P6BtdXv6zQsYsd)<6X1jt<`+w5}H?*^WCGr$qczarXd z2?BWwARu(jvZ4Ya>S@ivMBnsAe8{a;iN`g>$f+JLe4U9(CgYNLsJ4U~wIv}@tqF

    `Q1;YiQDA9@Vw`3$6e6(BuTT)&zR>>Xb!{r4d_*Xm|*cw>0EX${f z=Q^kcG52iEWz{m!;G<<7c$S{$8xIJyh8@Yp@R!#cpT5O;HXMPIrNeQ00rk+9P@~pR zBi|HOa*b9iFCn-s1we}KUJ4j)WEyeH5!lPxiR8E>kPJ9lr5oE zouO4rUa})dm8zubMFv$ZE6%o^%j$gnWAvc9>AxRh5t!c<6fx#r^ESb#!LS%%A- zeui+`cUCIa!-g)rQ@$vkbE>T5B<$o1JBp*uR8vb%t>zTTI!% z1aoyIn5#2UQLBm>%e#h|J@A(@rRpyBs9#E4x0SK{nz*s~ig*dg>PkRXXF=AQVrI0j ziIWVq7*AtbRHx)D2!C$? zR4%+ehWPd7%v>%-i~#6M&{JQ6o_d3xTw|b@OR26dya!^s*M;{bsHr!o$)~7cPR>LH zvus}yC)Jn4N%e+HRsDz8-FwyDKEziM_l8S3>#v8ZbKl>Wz^dNBs(DpnU}ayzsCtT) z@>ZoJc&abKS$zr4>J84CH=44)p;&WS-N0=2xvb7tPtvk!TIhoYRV~Z%)7)iQJzINi zYeK7*3(zjsT|j}m?dh0ZsyUUJO74d5P0ZE2+A)-_w|7u2+16mFdA_R882VJ<;s2q> z(dF=A7kGMa&{GfzAG9n_*K-|I;~CI2msRax!l=duyKX`MV}1Lu521a%flKSB?R(-& z)1Lnr_WXTGlvH05CDoU}rC#9DZ3O^iboUCtgg)(0hY#LE>w;s*OX`R445T;VPCf@_ ziIHdX+n2;W^(OAgsUALLDnH+V|JYp9FHJ+Fit##x%+2p8o)K>cR_5aA}FRWxnJib4KhmAdvrK9$36|QWF zZ(r_9Xi`r!$=kh%EV&b55Z>H8PUqe2<_ROY%VeARW{Z*-sNTdtxk?%cJ2~q#5Q1_i zD)6a;p;M!rERiLZELC_z<2391@O zP!*066^t?)_vC9awy>{T7*v%vqQO)0p0;s(`U($^I0!6()MFsYg9(OO$d_m3)qL6M zIxETEcR?8*w+n)7RU@bztwB#lP>m)7oz~jH;3h%1lNAKkAMta-PkdwcU|7>?0X+S# zinAF_JtMLoDA-99#1A%0Cv=~a1k_2&cph*t=k}6n!~+3?VNG(U-_XAKM@;D0|4ZWd zHlU#dF%2b%X^`W3_io|`K}M$Kp_ zlbP^fZERv=0NrR#<0Y)eDy@!5S+Y%Y%V>h2R+V96u8OlUlj70Mk9NjCXxg2u_p>hq-iFw6tW>8L2ga^j1eh<5< z{pLq+V$KaWnvaIs#Ee*@{O}m#@Gy*KvAqnM(dFtKb2Aug$IFY$RWX})zy4oTmv+>n zIc}CI)DV_=HR3Hbqk$|#CDSX`1y~7cDK^D^_w#pP1US9j2|+E&^O-;&-*j9O^fQ{E zA7@DzHaE|Qu%5d;pFu0mGI_|z9Y7l#|Cjd#4?53bIi1UQJn!C2-r^u=O7DEG3s0ZXNTiI{| z9a*y(D=Zm@4r1X$cvubD`-dnJ=^+X=9D5`rx_?eaA{h4K>;b#(zOoK!*n~bs4R3KK zVsknZX`@~jipSIQ55MluKlr08JLIDSb)|N%Y0rWi*3%@bI(8 zzx)e2@d@J_ueg5jy)Rz*1fiQ6xnyN{XlCkVqIhyrE}Iqb6;!3fX6DdXPHSbeY%A$W zG}{{uLdld@Kv965*-XBUZsK!DADMx}Ffw5|Bp3&qrYpIIGI)h@Lf=$H@;qq-wQkBh zkDI3F9JP&b8QBQ$BGdXPhY?N)84VB9LFU=rnbMV-nxy3FY`}@E!#3M@KZYZ!e}Vr^ zdwGSV>y_JG!f|lqt8L_+>I`o2^?d_ioQW{XZY~wvMXiUN$=PPk zL?tfF&>3e*Y*c3=wyrZ#iJ1-7@s(uwjx$loWNOe))xM1Wi|6XM4_}7Kv;g;v8^S#R zR5ES`$sG`C`W!A=f;f+5XSLb>3pHSyF9@=o^MVHa`1G~$HQ5$7)W@oUmYj~GjvI4? zYgv}Z^RjHoFgC$8wt(2DOk|A}#7wSgxNJRc4X*(W)REwy-Q}J2(}!@VY1|l=Ggnrb z!yMA8wvWkX?DGHJ^bT<3s2yh*a_WQ5(HJe0qc&G&yr~_j37E;LxjewgN`z+|3K&BT zc8e{%B4`vW$2J6#eD`hP)J@{KFTAM@F4^Zz!JvV z8QX=25J+MC^m+;djVjOs;o|b_yApPN`y4SsWdKsHiQ;y?GW2MEur7p?BSenZS|hr} z89GV7)t|%b;E+PExZZ-w=j!@@sm0{=Dou~jL4Cd2;3Q`vUWPdn!PM7vLxp2p_pTc% z1C)GaYPjTX5<{EPC4CZ_otRUu*_F7qWlnth{(5X~tPFxmt29f*!`7Lo#Iz>#$5|2& zWM3jDsT!suln5F1JcWtoDLD9rGI&JisxnNk4n+!2FHlr-O(f+Jt3 zxyS6WDkaRSaxp7ahHq6K9{rD%K~-z^Z~`l35297mz@GnB{oDntRGobW*DA5APS+VO zEDk+$J}j3)Rl-TJR2c?g<;u`0eAbR|q%uS+SB6^Fm=j~U6d{^?tjwXYY>M!#qcUhK zm14lsD+HmVj5V7-P3wt*b7LsOGrXscJh?Z+zEV|*--Se&*l+6zFs{4T6NY%j{3qq~ z?@*>^+MW`IM4riemWZctp&Sy(Av}C101u1BUG;HTgqWjaX>obBA5-{-^R-<p%Ly)d84fk>?%I0(?(ng(D4!Peq-@P>$%vTbT zFq~Vw+)0R@zXLSeRR8$bw4B%)0OrhHn|7Z22Qhb^hMl?dOzcdg$Lw4sOsdnNPMm^V zTTg3~1T$!Z&kIm>)<&KS#-=ASHW!RJme8;*(Xhqby~d;iY>PQ+1I`6i3oIK=wSczR zJVzy{t)$JE`aGGIVz1`8Q{N$wwI-|AMRVEM4g{|j1+}d(ufuH%pA=@hQ@2Qd|qAIU@31Zrsb8$BJe}*-Y zITU9F(TTe#%M-1YjosXEBrB*&Up63@?zN#IMc0SMe|?C%H3a0ynltj~t${>VRXCbh zf5V1WGUfr85LPbC5TS&yR+$H)RXLi$&>t(vb>lIY&_JupW?KYjzQJYH2Ji?1y_`6}Mti_&K{nr)jdytHP*b$j55#lI^Zo4(A9u%T zK-4BeY7aLqM-u(k90bs_rH9O4-k!kn|9GT5WhvPT_b6t~M~o zH3!wib5fI){_Zw$)rRf(N)p0z^~yES&Anc^CU~QjN`0ObH6X{SD7!;B{&=}PuYL6V zKVJmH8;V0xv3n4?!L6!0^tHW2iC5#V{uA@!k(bMhhg?pI#~MjR?G2$Jsi=Jko2d<( z$z{!RV@}Ft3KNKw%ZpuCPHMpvs`*@|FcC&nV$93nl$;b#biSTk!cuCADl%ObljZcz z=dq?>BK$><6a2FY-P^UW*k{`v(Mk&*K*;i zLDXbn%%IR%6Cxx!GaAl>N4U^%2iaH?51BQeE|iDLVyh4mSlMR!dmV&GmtR-0k`d3Gt16I(PPCEH94FKMkww_W?WB zL_)O4r(u*4{m>#R7d?2=BE&khNGyo>Mn~{K9qH zba|wR-C3luH67ZbS7u!<3)_SlZqUYopF(AhTWrZLk5^?khoAT;wkEQ0ct%$((%RZ0 z1-Q85`E7y5X!SjQ)JD%B1%b8u4$NJB2+Eekn$(6Y_}oWHtVu1j;pXQML~^&ED~Tkj z%@HkE?Ha=vhSLYnVRf@P{QkqKsT*@FD~ddP7-iTarDgO?mvb4@_czzk7^;xYSWkXa z2D#rMV_sp$j8(<;Ixd&r^nJ*eCqkzcc<4oCR1=%HkhBc%jZPRra-06S`OU*G#&9yX zF$5u<6+4Qb3Frlfjoh;fAN4>E%a*TXz3yd`cL z8$$|~%4S0(%hpEtCCbDm^@#F@?Qekn;v>XHpG|rolYjLV&X8P=m7%S$GrHXZ)DSSh z6VyFgPXaVAEr%SLVwH!6)44~92H4u1BFr!boE z2xhncn|6i`p@L^1vxC{?siYiHBFQ6I7V~nEM?PVY0jW#s(DOUfG|wVKH|-3>O7?LUgu<_EAf@ z6M~ov{xvikVTVOQy}FnSMnll4p$~t7UB1l0M~trF{8=nlPnC<=X>-j5zm7TTIdU$j zs;o_Pc_woH7O+RAv(q`ix`trGVt(2v*$NYNm}eL3LF^%)oi>M&l1V=_3n7PmZ3#Op z=BMrPD(1oS>llb)VcD8swpA{Zn8TW^w#p-a`S@j61lzBp*_!^Ve8T0?;`YAXAxeZczY{Ctx3dQSG8sZMmqc%W=$V}=a(KImxx1obL z*{ajwn|TM4tb@_{*bV&uUUhMpDK-<~h|?P{{t4=huOY$orjxND_<%ujlx4+O{T@Ov z&LQyGhECQj!*w7*oS}w+7UzNdK)=xgN4wsdGDhrtLHW3xBnCZ5^=V#Uj8OZ>EUC_ z4P?3@4q>E}c6vg~HS+ZR)Yya~Ox95WgCcw;Atqt6j#?WUvDl_15TY>#_4D$|<87+(4g6S8bwWp#3Sb$RfGtvPbC zP%yEE#Vn1DPA`cM+@m?=m|1j$Egdph%uz2FkWD^Ep5``(-#zxfpMQb*Fu>844wL-$ zO*BdcPjz|Muxtl|$7;=Cl4^@PHDy06cVb))vxs=`maPE~r}p>Hp|Z!XWG^Vw>@*%* z#t#xHGd}toNMKVe``36TwKWu?I*Ut{Rni$b%4-gyLu?I#aLtLWp%KnRdeJ>i;JM$o ziM-U}{T;uWwRT6_Kzj*7R$D{_r6eLppZp%(I}WBwDi z8ZCi~lsfXAQi+G(Tze6JFLXx(G3JVha!MHt1(kczZAqM}yG70sHjhBF!=(Z^M0$O1=lKP2^xTRPO zNCV!ae&V6AmS_p2lM^Gns;Y;vHhglG_=%x9Eg=+0XX>FA0>n~Ky6pT>7yA?AhFWuA zMeYJ0;o9xbK0Fs_8L(XT#0a&Oa9jF`&sbYxEl*wk!-60#>`Kn2w8UB_x0U-nxwDe^ zj#e1VZ9xFYa`%FOcuP*f>HA4h0xxgC_87WjjRR1!Z9a_8h4DnxWiI$y6x6;}9&k5b z!D6S~Q-6;ldbyMl(LVJVAd%ha`;Wa5=P1G}i|T0inaW5{rK!K`(UkZ*0hGBS0SL7O zO%??;flQUC8+e{kcoNzYGMSoCO#FGU1o4vnXXqU*9u>)we%O8;rSytrUZSd_ZtS_B zQcbt|qM&a6tb)Wy5=};QB%h0J_*c+#<;fG8Vuzt{I)6y+g`kLTTS&$I65)_vfA>D} z!rUsa+mokTF?gvZ1hOcoO|dAbO_8chB(*K!kXfc`cS=zh+*>ehpqb*Dpd%2ntUyON z<}iZMcXcHvIJ%M(9363z$zSAt-~31? z%;f63IzW+oeOE^(I4}cUn)dwFGjBXKO+p=!k&K9T8nB>@UwQZpYs&Q{m+POq0L(i& zwUMjf^nIwP9#`lc=q(b7aISvy7D_q1ANAE!+@sJ0BVL|sS0gy{PzB7`5ha-m{wd^0 zltj0{pQDJ5ky*@3&vlu+w4YgTO}be&ljD8%p<6X{jj0xP-Cq!{gS@z>Y-)h;iupyb$bXxJJ4MOZSN>w3T$Gu~QJv zKs^o{5H>jux5vQP9KMTrY5UB34-$p_RY!3cy4-JLc6z8Rmb*MuxLmy;c>a&#NgsVu z9stJ2qn+Us#}QBUcIXm&7*Ik=MhP1VrzbnZCl1HoLbUo5hALzwz9nuFJAxCbCW>yg zBQo&~vN^rd{}P%s&>+Onb{0r%o)_0P^n%*sTxB4{T*tTp?1(_j7gx|AY_d9H55M{V z^@S~ua(#e=$VQgi+2b5CpH?sI9+lI!ansh(F^+dJUZkmIIoZ4_^^x`r{ew7z-UdK} z=+6yXa1pA`5C&%=J(Q+-Klgj`2f`U{jt>CgZpUX3f>TjFu%KZ7`J3q2-QWKi?P{>W z<$(=Gyxh(t%i0SmZ+;g|p+^D6)>#^D$T zmZ1bGJq;Gvb;xQs;_c0^tN)j5_+OTIkIw{wa(iyW3}jh@FnVb z1UujD`%iXLOkYPE{^wpto-)^<^IyW|hp=(&IM71bPSryjW2K2{)4y0}+UdWIsq1om z${s7;<1RW$+UBp7oioXoq2(yH0!Bqc%MpcPd;|@+`S;(Vps|Q}Cv*il#vq|0L-);B zQC68lA}kkW^-%fwk06a455pfn4}0K_qAQ@IJV_e%&q)J4_-8Cs8zr3)p#bQPX|L+w zM#j@Wo(!S39dQ7(g6Z)nJH!}u_H;-6@ZlTCaCi6t#NtFsr#kd}0I4`75Du8z037ZXr7MH!LzSH6jNx`Jiw%P3`o5rbbz9vT>fWr zMuZWT63E{|A|6ipQYaC|)y?gJ9^CEr2qYk1^pDf|4>IIr-0dDr!>%WaFc#Qdtw7G%jAUSt7LJ0gqp|d z)6jk3TPm};JV;!r% zq9QF8Rbv%=WN!{|9QWTsM^sy4)T`rr_(yOPJy8Pae-wKh1_|Vg4-k6-1#hDk$NCNA zHT*B6!lSd^AcEoa7|u+L?W-{KWz`ZJk?k@9)G+S%dIJqAnI}%t2(ajJ{|QP`%9u49au*zZ zxz!i*#?WI6xC@)pp3niVd%qmt=q}rBsR=q+y!WQ3!yL%$IDYyjlAwBW>?CgddSVB^ zf*J5ezs3~2< zJP|Rce4;~~F-!PUU&5by6XX(=Pw6?ef{Al+CerJkRPOq_P!cbLoF(b~x6U>7Ih4eU zRcA@;l6{GYW~Efp-%aXStd;5CR}DfU-gY?EGv3-)lEz?K|J3K8UP+H|hQ_GDM3^k4 zkNz&`R?;2ln3B#l^?53ZXj)28e-{$zou?K^eGZ9Ax&xhOO69J<3ni6w2R`SNoW5fZ z4keXL5OfGi>!11@N-F6QCFi4h!}MaMSv}Ro4d2V9xPCuX$bvrCK)2X0lSu34>kB$X z$-H2QptA`|JcTgA+e!rl@Lmkn6A%0=_JXn}6Yea##|xYZEVeg1Q1&Z_9*`$|*hj8l zc%ZKVhzoM}nrAR|oDxjfmtex4&R?yymA2)YY{^)*{4mq?X^;(;CHfK-%QAs#3#2}WL?sge z0n}8ZMSM08MqQKDW>3k+hh780)HPXN!Uf+JK13%s5K?{Z@*l8Wc-}Y|nCcs4Cicpg zhzM)ShWfk7p2AtLONRjf_1>k!K$qg^{8OJpnc8eALH%7wR5Dr#vFcn?pF>F{!Q@BfW`fEFCGc&aD6_@fHE^2=YJK%gJ`>dX@)(xm{&E^`z*Di) z{*Tyg;){4~%s@zOF<(7b&jhum+HNz!eTe8C3^7Y;x<5^iH3!4WE=T|H^iv`b^v^K_ z6%7=Dre~ql=V?S!Kw3&re-{#IGirg<=a2{{y)6iUzwTZT(22BEIr_U$rnaIMNPP~8 zv_;X{+aLaR`oCKC8Qi6%Vkp*N_?DJZc^RgalPd9`PKd?Rya{FVO^+1QmTF)9-PG0w zW#wwlX4F!;t=Vo)t@*J=CTjv&x*n;|Q{4>F%4J<*)e@F9l(4L!gk=rHvQkZ?zYER9 zM)sMHj@Id1Q=dag9-EIPIBTSnb}1e7cQ<`TgR{~dWh8zzO-PgMIV>KXGg2#KvM}kh;H2gUN`;pMo zqrovqgwi4S`q9anj^Q!*XaeedCNOs)I}+0%FEo~zFoQX<00tNhORZ^dWdc4P(H`*?oSHxRP3c6=W1mH+uDy6>uE>wl5a9>N8 zK&sI|s>Md5Q->?#pODm=Y{{@UM-iP(q|Gkz+Sn#u-uWm&uri&+WA?ZhwV;a_Fg0(^ zcw%KN;ZdXEQS$=g@&D0asJW~f5JaC+_R_L?NdFqawWkwKjmX1l2`G-6^O2y_qM#nS zi-OvKFa6*rcs|~v+{^We;UW1*G)a%I)aPl;nX`(%4n<@smAn3KDoH5QZIu9ybhqy& zjHL5VeGX-6o23NxcOg;9z%04mXe8jIRY`pg>gf@Bd<3HVx6l`cUrPTCOMQFP(eu20 zBnp+y+Q27Ymnq>-V+ns6DNrk4i4r51L}rb|rdXdC>_3)-VvTfqlCxG_!N4e=y@*X^ zvnDo`mnxtbBeAJ`)+J^n7?sajPr7+2JsMNPR)04QVLDx@1yY|wBE34w>O(LpFIDh7 zeWbvueAXpXZV7!Fi9WGDYG4s=%1dc8vXmN01}L3&FMf>2ta4gTPR|?ypC2hiinBZ3 z=4eDj-4Br@(cPw#M0bxsNd!xZ!*>LASIZ6IpFDomuL0 zD1bMn`PHEmphsLvnQ2)ISp$|FldL2vu_ZyKR8{qNQ?;GU>8f@}#FOj1t#tiMtW9A} zTJ6;5pjC<4?~iX1^RWGWHoYHAp(F#Q<}E$#LqxV@EE_O2FF=`+j)|^xdxN2t^IaR; zS_d}ra=v#AX@i)2CcU3E!A$qFCP`FcTN4en*j5HH&1F?bqa&p&{lJi=dA`cF_X8zq z8Exbxh9R5q_P)G%eR@hS zvUe|@BoR;3zCL|FNRpB;f^RDVaH9LR@RD5HFg3;N@22VgeqMx<3@`FEi2+B>MB2Jj zAm(((muOOAQ6fmXQBt3$hPpp&Nz~&x*;!|voO6lxw+C2KOo`?1r%Wh`VwqCSrN5h+ z?*6zYDJf<7=~Y?s_Y%v~E!tCe(wUYlvj{V#GS&7>{k_C`#FBKQr#?@HxF0Q{p`B<+ zbw}b#i3$@!O6jY=3%cuRIF)IM=?EU_Qd6IUCM)(NY?RVe`_EKC`n#!60!CUO^*JQc z8=y&(=|)4CmX7A7{;tQ^^mjE}C{}6u`{5QQFZugya=bmfmlP!vCf&J}Y7hNgXq%Ez zCs%RZJTyqq-5%ORCFN%J>-UqQ#D#QCQlCR2ZMl@7{w^d^L+ruB&mR90HyKr@KVxlL zUGMgRfrtv}Oj4gi#wAw8``7ObK@jznRkKx4<1ZsqX?8?1SioQ2bvyt`=+Tv`zW(mk z6qQCr*^CQ}SLxs*$~YRYDq%*IVMeY_TWNTd)n?sRm1ab_d`j3*RlO-fLIHzg{eHx<*HuYC<+D2_7`58vEdtuRG}3aNS4 zJw=tUoa+9gYM2M^j}DSVYHIe^iRWrZ(;4QIOA$e2Wq^+-h2Hb)4w?Eq*|Y=!RV4_h zG6=|1p^{1A{y-!2f)WH&83g30PznF34FB;I!yUnsg69I?1VT6n+Z@1beZFh@yt|$A zLNl8Q=cd6QeaX_P=6N^mH2fhow|0FP!bPkUq31VRF#QhS~ia!%U9!N zO-Uh4DcR{tU6{QDSXCv!sxqhQ7HfNdIFnR`w`4xUQFK$Pt<(@PylS}yC4-!zo|cu_ zYJTNi6mAXBTB^ZTb1W1vmyNw>YfjJ2Wn(LDHOBHQ&bD1HfCsQ#BwY>gZG*fW=<>4n z+nw3C=}J?q)k?BS=Q`*H;o-WdgP~iC`5LIToG&l2=K014I$Mpf&<^u_53$Y6VY<+) zw?;-hU)YXqHPUh$yM%FVHRJM^1e0Ff{}!=I_qzXW3EJ9fwB=S*vo3$4f)(>t!!MK+ z?oJ9Hrnh8b^qAl!*NnS0D9o9NSIj|~@Ih3>>=OqK^vpQ+J=>de8UG-gAzox zHHa+a8$Rd)O2&3cpwrgCv7k)&ptWMx8$`kfEz3p@BH@FUU9+v0W!r}A!UrX5k=N{6 zRMlq;?DBO=b3QKU5I*c~_pV}wFqkWdgb&m8bt0?B?XIMr4-)y>}{`si+dUlNhDH3-UCyF1pq6rH5^ z&Z*D0UGCQ0Wjc5F^(BDSk9kzrKMLEF5z9ZIiu(61%`Jy6Y=ugnTRKKXCj{6or!o}NSal3QWGGy zCT^%#Qe1T!1HM+pnOY~smF|XmCB?NeJm&WpweqGEd3*8!kG|z)#`5;%>54t{c>}wW z1!#TP$gARPUXMNw+v*DQZ0{(*U@lJzp68QwjtimMV6KydPHxfo^5)N>!Ls2H;wEc4 z&-ZJ*%Jd}53j9mR8P?w;s+Mq4p;3|pxswM90wxmEb*WF8sk~4g@fm^=X8Ol}l zc*CuXh^o7Nm|jbZp<&>bvw)Hn8R4#!d)D7gu9_GaYOq)p9=6V^@ZfbO;_>TD#G}}k z$Plu{`r81mrM9ATd%EFMpC@CKptIVbv*j9;xMYLQmJ48OFUzu#=d#nCC>TZNoZnnl zjW`3!mSuTXp35p73>KTqPWQn;-x4fV8!R?2Kv$A2xh%`$c3Jig0~+=v!FC&LYELo~ z%1vOm&v6@G8}Q{wVW`)l?gni*=s_VrEk zhF3Wg@jBR((PQ?ps*%+qfDybL9VAU94<%UP24#B24}GqfINsn65Uqv)+v z0cu(|kzCFiXtSpZQ1d%Qa;?Y`o=VB8natoRpW?)+)(R*Yz=WsP3edJ)lhp$lwwDX< z&i}?*U7k|F0dC+T)pDIexl&oH9zda7)yMDu206m<%4>Y$8OX*UsiXqCxL+VDMS02= zetLNjmLPO|@Tq4}=n)|0fS=0)m~h0PAs+PtoLcoZxw^1bDS=UqflOlv7bXK#ncH^PC+63C&rt;O_g);O6j3!-c<`Vmxz$;&inFuUrqLM{(3FB&P za8|P2Ft^-p9mo7+LbTReni$u*Va)NtbndLreU>*7TP}OF26L@z)f&d-Nx?Svq~Kwn zP7$V-)&Q>afayoJiihil2+l3+C|g6f(phUWv<7XZQz&J4kf+7D0JihE`Scm+jt$*L zwz}}4V~Cw=^?g}5pS37!K$b%jqF8uMP6Y+_)t{hEgMDT^G|&>cS`=hU&h_2Ly3xtP zA6@seJMkvM1_V}u55(Yr*2H4XtsXf-TSBf{B3F89PJO;j*KJ84Rx1eWx=?5VrtV!R zv?W}sB`%e!k^XL~odHz7IfgKm&NcNpl*InHLI~+KGza}cF4#hUxD4-bkfkj-S=gG} zwwx8>0qaau;F#MIn$;Sb?@Zd-T>87e3rIc>hokx0$+J+>SBCzflk2-b6?*qxt*&u zw{zthZHV)fiRN;oFl20po%5mk9BmAEE-{M|oIi%Bxz;eTTmh=N3=qquh!?H3hK8-G z#KZnv%X3G#_1*b}C*=RrF0nOHTgiN<*DVg4mhcz9C}MwU zi6HUYi)rEHh-9thsFzBdV?5Q+GP-(*(&Q;X_aQz2naC@4#(>3I0$2GgwT0?Sdtc}Q zsv?d)UN+Pcr%F~wRG3^#M}+E)8`#-D{H*#u+Upp_^k{qdbuZ{go-hCfi6=i{&rsp> zG4z41B<`xCxT}=M*5BQ{cW3yNYq)j-s;=I<1A)5Ndv_+bN}To?c0HgCgwPM?U;I0^ zownW8!RKZ5=vt9A04kva6bUzAbVQ%lvevVuZu8XV$qp1ll@iq7g+#n`^%>8wDQ6n96E~G_F^ZMa6-|AfDsRs8E#%JAt+T>jYnwxS z&fH5@O%y$qY8m}qXeG9GzLkh2>6}uZr`#!|DkZ4D3yFA2o_p3vhC3okIUvbtQ-U zIzmRN-mkx#MuM=Tn|B8ny4$-GAJX}!K8G^3{ZfMZyO4;dTi-0o7|Hi0ppJ0TwHu7+ zUBl*+2k(9sRv!92f3jggA52N<$@K$t43H)XbJ2D%u;kH89D)SJ*I%9@pBk2uN@kwJ%99pf*aW$#T0(?X7V_${>);h>eVM-*sH zmRB-H(+IqK;y-JdvaRy%M5rf~=@@4pLOpA;+E6dSG>F2J2zj|zPtMHkB&39!+Q2lIQwc4S^XK=LFWS!gmex!m#>w%WbHJH8=l zIFBx_FtcbsKvTWZIf`h0W7y@5UHaEwnUU)h_OqBU{DdsfBS z7p{u)ko2_@Q6J1l;F(CHMaDs1^x@e-RGe3UMOD^apKG7(3~@Tei| zj(S6l(ptraGQ21)PL(j=D3>B`Tzf-}(kYZmZ0cl%W9VCN;*d<7Sv)n@6E%7U9<6#E z6~mH9ZkUr3Z}HSzPbci~m*w!go-ol`*1ln^+RtDjQ^OcZ*Bdl644+~#aQ-RuA90v4 zK3eE0#t1%M{5mGxJs`yey>Id15T07}h6w34tD1jcsS??HUlL=~8zSVJc}il8dWkW* zEeL>s?p_cW4&+nR03l~0_QB3XC7#%TqP5{!5>wP0XymL-$*gQ((rRr=rsNWs)R(}d zo&u3_t0bD9DHbWU;?&D$9DO`gJ*ZEPRTrqJKiBpnyr{LAsiZKRr+Ab*` z9sXdzRIUcPp?HuR2O5_M1Cc0>8jsiQ4F*Fc^;L#704k?%d@3*)80AU9R^9C1f&(9Z zi5UZ~eUCj=1o#7;xx-)J_)p`DAO8z(9E+iS02l+YDQ=DUV16JN^$Hde!YwYupnnuu zhTyxQMO;F`kBfi44|qCgS-x-2}0j4bxf`Hv<-9Ca>0H z6UU{5v^j*(B<=&vO^gj%d2X$-%YEe#Caxms#IcggS^%hGa*hs#mwos`AO#( z_A(gWwW`m3rZy2ztGVB2WJ9;+$F9fl;CC=kYu+aDN%>%o#ig~5{n_BGMKuh|T2#Xz zthwwiJlr1)xk{^ym1&5jA56T{Ja^R~bQCUg9A2%2=qMaK@9YwU_&|OjTJ;2YhCEUj zgnG0O;Pu1Fxq$+l-hK9)ho8Znx7g&zC-ws|sV|WS2+C0&SsY*g3ZDXv8Vrr{4J*T> zoQX;n!$PKRJ|9Ql?)LcxJvkNSvFA+0)2uTQPqs%PJb03`-(smZ_W$?SutcEqZ%d9y zI|@Ukd@312eqx8V{fT5B?vXp$>*9*&JmS z4I|0KCRtfkx;E6T^ceFn5H?yAZw}8c{Sws?AA1ZN^wF>!*EBX7oa0Qy zbDuL2jCl2~Bbd#--gTr~ztIM8U25-_7xTvL{+dgMB5XYH_$Cxt_ zPmK9`l$=!?4b54|y~KnBcb05m;Ld^?yeM%tp`I=0YJ54(zavE*Ep-F=+td{({K%b% zt?H|X;XSsM(80reH4^6e?pHv0m4I(+aRGKBXV zk#Xdfqk%eBS=H!lQY*-{(w1D&)L@&%d`%pZm5s_8PLr=b9WYC2iu1Hn4>DlJmahHK zNK_`3ud*w}AFavqVscprw%CZNRRRJ}&5xgfuJ~76{)`lAgvdcTmnCtzyZYfr_!lPI zxPcvsx}+42uzl3X<-t#%di*)$gdRA`-n9G0gYSLu$|nHwhOx}66_5CjhOx*UIRc`q z@vVR1+S|Ap9x0kAS*JtT@{fkCj1Bh7hr^4QDE1#?M2?{sl$;iq0J3laTZYG3Jq*IbYG&MVj3P1 zwRV)LxeWmmBf%C?dP$bY;lx49jdYX@Xr>zefh;%AUKg#AT#p9S$dUR=R6tG7{pL|96(Z^S*>tkg zZazZL+%a~Kl31USppAE)HnBdwF(*9d=G1{}?sn>Q&yZVDo>`rW>QRYNE?7!(gnxdAf4FMi4GCkmc$o;b`5^0B-$ycv| zw20D94>>J@npC$2MOoTdxps$`Hjl3(Adz;3S_7q|o-VbBYC>&@yoLm9(m7G2O-5wB z=?TN=T&P`%yJ)FccZ#2R1Cx>LmFg#v4d%lGI$PN7R~rH?I=k3Tgjg~ny0ud!1|EtM zmzo{A#exZ{q;ggDAeLf{$+>DvpmCbtHJ?BLyT1YL6p(ebA!wrOEo<-4&k2{LlvGtG zT$0aG4~exL^+Ef@CX_8(ME!=Ibc62Z$g*1XYBUyox92VKvo+G zH+Aez-+%0;O4!a;8v{ym*O(rrttwLRv~}54w=bQ33@zZe!=4s`Y$easibQ(y@=hj( zp*Tyz>~?W~DD>_d(~ySE<}6d&@7ce~&hIZjIz42}oTo(!^om-S&_0Xv#yGP5-z% z{Tca5RpgPvAvPjy_ocS)OZnK!$x2909)$;+P(UwQy;F$^yYNlsX7}$*1Owi@4h{s} zx#_AlW}ojX)9m)0iHsp-l_9&~<}cSqJs;l>PQ`5aWf7K_)kDl{AG7UG6!1n=Mvpl3 zz(r;Bh;u8$V=z&GQbv!#6=i7Wj|2CYChRelOQhiW7&ixIx1UfTn#KfeEX!(Vw5BYZ zaXDW-Bo`~DP4_Z1kPg?rif4>+#4x<#vD(m9e=$dGtGS>Q5jqYvv`(yJ;&^l4~ zucl0~SGq%Xb;zlFwXGJK3QNX26wroBb^xV-w$;3~FhPfw#iXosNXbSkV2V?+nBCF$ zFWq2^02~RT(|9vQoqk@=`nt`Z@>k z1Cw>EatSb~G%$DoCv!aD;efm_Zmb{w&ngG3vLNHFN zI(TBCTs%<)4=iX&%KCW*zd>%Ny?!SMfe}Ap3m6aj7O~NjlbFdEyFSrEuczgb1jt4w%Toe0_`d|q_fPq<8)~x>dv-W5M)E;>qFQAQzpjk zB_0F=c^DDFae;+#FKFP!LcXh3iWW7;P4=7LJ%fVbGQ>*%pSm;cn&l?4^>=;+n3=vn zW#v$rK!ce~H#D=s#vB@I1dIXO*kEwOZ@)WgkYewgqVx@~^}fz?PDlzVB!%>3NNJIF zZdoC53wAl7QOYCqwT;qcK=;l7x00hLuo8J!Tw?CCne&s7fb}J-dyh%AmdrryCs^jq@=GMk&QpUc<~`x z%#3(Bef!aawnQ{Y=4V;P54brQo(}tiz46%p=Ue~$L(axq=v5dK{jNHG^1XlkCX0C2 zHCK{vexJ?TIU7HOC>vLCKi|#C_`yOlxp4?Okj&#S5x9b1z4VhMJTJg9d|B3aZkulL z(;YF5RxqR;kjTDhONTV@FKIa0b1vQYbCixeEZEg%%Kd=-Opm`vr!Ii1=B<%8ep`w( zV4FE9f(SR8?YHoj_C12(gg0=`j}S_*$@|rhedon{CWoKonzqCeP>c3m$l6Q47KHbD zd4Jl*Zs}CUPauP0FV)N6gCH_>euuaPS-Vu_4K+#M8n!_y9` z;7~@j6&PWhZPUGcn;%T;WB*M&zc%leT918-ox>t~1U8Tp>N#JRS@BPtkq(|v%l zO_|LPA1BA5tRHNXnI=TK6$&w-?3Z)JypvhUmsrH4Y_6EFhzT8jnRFlo@fs?QRybpH zSl8cdew6^nmZBvvdX_9kAAVkw^%k3y%?&0PVnT$G&+)|AYGb6~kn$5@Oy; zEX72#ewg};AckdGzm%}~ajFrZ_T#n~XzfQDru0pRo9>Up%RuoN?rsS#z~NZS-fsHF z403JWHtWk43+OQwl%+EQ9sAczhLC-xCk+fJ0xV&j(9846Lw6^ zvcB?18=NqyC=5Q^;@?({>D&ZT@W8W8uf>dBUE_7|e;rA) zkEU}Ilj9V*=LHI#p7l3M3{BRzAN$OQzy9f?9crNv6Pl)}zos)4-eNz` z+4<=cRzk(?Hu8OS{NSC0mTL*87%Sxm*Xe_IkkJ_*LGQa1LR1r9m@SA11Eh`!C9w0Y zM_VFads3Q7YYCWGmi4}EMnP_Pi%Q%#KZdV34Bve-wHJj)_$E!Bxu%m8lXXabw3gTi zDm0<-nxY~;XEW(9V56ab$=$(F)f5IXD@6zb{?ax%*PGKYA=*WuWpd<)xA8Y{A>3%6xn?Z5YS{?$)n zX`2ILYdT=@ePo3)kJiqpr8ymQv+1NG+QN?>{EP2-_+wg7*910@t@$tr+kUpcypA$# zQcMe(nivN}AZF_xPLkqdYr-86#e&2xFSs<{!D|46sM$T%f;~bGq!#`WOvLsKCW2LO z?y*M5#Ix?PCiVeaUx_lB!Zztc_3_8eTvg5Z<6SfsI?euW<>T@1-%tHa5Xc2~xOPkH zK=|3zzx!5}_0DKq{7)wip1p(+CkR> zG0a6=XGFC7utl$^c23q09jSZTy4FH44k*^x;$iz9ltAS+mvkVd7J^~3?Wz9}RDc@8 z<&)M^QajPvj~}CEX%?s5mUGrPj1Ti26o7yY5L;E`ZV9o+R z&b3PL#1&g3_iFPCh}WjN)7p=uA7N#7Jur9z!o1$tlXhpdpp2@2`ybe54|@!$OnPe} z7@NzFKZCwy&fPX-c^_F5!9c0qXKhGYlVK>^asjvX+&3vTK@3zKIi3diuS@-b6>hf6 zvVNxfHu7`Q$UJ*SA{gIAj>vVt#gI0;UEjIp(N}T^q$Y@g8p7Gm|D>w&V4F{1nWaRq z;oUQWTD$^|`|t4c(75`y(|G&uqw%AW>yLcqt+)HC1|Rx&=o_ZvL-pt5)M|lLHj`Zs z-(jk-S5A-TW8QZXr@}Ie?)SP8A!YimH|hDB)Cf38$*%3{b2p5>gXP zImp zf+aBz2qr4%5sfglU`c)n7PXV0w^&I+;)03%syeJ*Nso|IO+oc|yBbVX(j$cH1xqTJ zBO0Q9(IzJdxa`6jA%L-}2n`(j$aLX!)d&i-1-)&ay!X95KNjwd@W7x-CB~;uXop)D z)4^>;(trd$OP?CSf#bH@Cyd$%5nPt#IeuBTWFQL^92bxmMokF|Z0IOe)EW{U73(Z? z&?;O~$@pc2xUlUrE$+LxMrdNJP7+xaOjOblDBx;pdT~8iVy=Q(m5gNqkWrhK1Y$LU zCxdk=aqWaGS6W)Y<#>2Hs}Q@4wiThwaH5i>9U;zeNhOY4=x5B7644b*#P(k_kMPj3 ztea_-ijH=Z&g>N0wbGr0jgEEj`IZ=&AnBAcr|bs>l8%*e>kT2KG3y8?4JKlf#u6Dk zy{{fXNS|IkC@hVj#73xTP*FDO+@)`s_%_5*vBJYEQA4uhpS02wni@$_vKOQ9u;_du zpW+VaMsZ@H`ct%6R51!03n$`T*j#P$B~6XQkHtETgpdUjmCW3N>4GKk5^k;)T%Q(L z7b~WO+BGHAt`TY%s89*AYvedwq?nQ=obb9xF(uQ1#H9so%9H)NZmp2INDAJ7b=6f)F5r|G>qQi*5zS&E=SfR!iY)^V6l*!CQMu2S2_B2w5-@4^Ll-97Wv<8w+O5?m3uP=?QRIW;m<;xuOAIf;Z`kys5RM=>63`mQ~|F0Nwi+D zwtn#fEN4{8dLcNkzxIaHTxj?Fh{E6jwsA9i7k&7vP6?IFTRi+%erOBy=g(v;>>x zv-aB~mU1J5aMHY#pNCn>SH^qRc_}|){p9>G*D;%mLaaE)d~HKVV2I{>%kq?Vmz}_% zSZfO#3MMK*MV+CdyDtY1dfJx@9SSPyZ5Hj@5+!xPJ9;}ZJz%kCXQ}Nf2fM~0e{iT1 zf)v!PWZVf^3g{-3DW;o1r(hyKB+*9e?N-8|I$=e)3H$J`&I9h-5|kU-brlL zqB139Y$s%Fxd2|Ih30`B0kNqja?L4NY*`r|$;+~A(xBpO+h8I#^0HR!hGPW?8MBMR zrhf8gcy@xt#wxkKFEnf{>x?B3Y%Vl0f75Q~3D`@}zM&l--sEJA_X?yDZq1@U0#3t>~PmHheq=H@5t|XXhC&5&)Aw$e8TqhpL z!IDZwbO}z|$+1Mck8t079dp6sA%72SCjnQns!04*FcEizq)dA7TJiiHEPyBSly7?Q z1(eL+C5I4qLfB$eDS>Re63Dir5U*(e7tWR%I6b(Q7QB{3(nG$DaaR)AwWB-N!Zl#~ zCuP!u*Q#W+3sOt@rU%zVLei2*dhoIZsC=h~5FhivWC6U(N+RjOE3-DFT`R7hJ$S=31v~t!i;a$5D-nA>?T|44kQ&q_g+!OCwll4P7IIZ@?yVeTues@jQ z``szod}VbnbSu;$dJ6Xn*VfP5Q(EO-)YDa6Q?lMnek6ZjmznNyEuekl-EO$eM-X~q zTnF48y=g%}?2}l%MJcBDD7|p4SeukYeBsW=kL;gy;k}Wr+X|pZSl9E(3+Cg#B<8Cx ziTUbFV!nDITQQ3X+zKWt;F!JOu3$-i6h{Y{0x+!4s*8P=87sEycSm;?Rq{B**DLy( z63_Pn_a)G)r@Q&X_3(o_nn?NBRBc@4m5i;4msq}piS>F_*P3G9J%`(>WEM~wwx*aY zy4S?T<}2bQ?5h{{6&r~q5Uf`SwpJTI+F!w_-Texo{HN;MfOF}!cds8nT+399JSFai zx5kyNi3iN5LQR$FpzaZb1VF`8ab)?5l-8yTml`+SY=AgC9z6)A=X zY$Sz@*^pv_wF1RRsMlNy*Txd+6-iNId;(ufMzMc;7={Q~I1zV&xeB>XBhg-w6i?fq z2pD!&>jRTGSS$q({`rpY+gPwzL@~C1B!zd$^Hp)ZlCW6R@^qwez8GhDfn$-XJZ*Ui z4BOj>RrVE5ec`+CIO^~A>Lqln7dkdq1=qHO#^#$TAC2rw09h}9Y}hyW+K_!7Xy4#| zoct1^m+S8r1bJlN+OKLq_bT$lawT7F)R$nez668ygu#Lxbub=wTTToJ?|ODQF%azv zm&v2nE;*<+=!Kj9W9W+bQ~r4CP!ioWl<=>igntbi&%eU;=YhLi{{m+{5EP4QRRYL{ z5#Dcte1nDd zryTk}NKn|aEZcUhgKIp&UCa5hC6{H_Myc0r3nD^`;C zwNqDg>dD4wF5fQHFL|Ov81_EAdRpBuktcoAJYXv-E|%q7 z{E%L$3Wap7$$BHN$$DSACi{eK30zI(o9}QM=z!vsY`&Li5LlJ2D@qTU4Ge;*l1O^+ zvfhAGIvmrb2m^7cU%UI5PU&N<14U;=`*ul~)=cYo;9o0>s*Q*00la#}9H&$Q8M3v3E%<%easBtJgGiApBn5*{@a@Tl#E z;t^G1d;Y~*nPUU9#8 z3b*+4V|%+1EH&23RarXCx>HxXMnU;x2SyR!`LcU_gYk2&Rp~K_hG~DB_AX_qG3t$sUVtdAVq}}m;T?%YBfJ#p;1(1g4 z+E|%FnSzOA_QiXZzQZvVyIA7-&_AL(p%vRQSO6O}n5e|M8e5 z(u2>JU1?D9CoC!KDd~_NoHBx(l1O^+vL$meAt$_Zb>E6fd-d%`Zq-Vqrw7;hB&sTj zqz5m%Wq0N-s$A2~p+*l5SvCS+SzJRZ_V5h2S{YphokK&9iDdfD-EpXo{6Y7hpyAS%jX# ziApBm0v5I12#Z=YkAy@m%RXWD0yYK3OUy28DrRn!z1UOYCz^Rgt3NF@P!km_6{jSIL3`3RIgz46jZB+uGs)BQVDCr4n7hHLT0(hz( zH_?zshH$54SsvSCSvTS&0xC8RggY%3P{N%m;ZDm1l#FD#KYm<*YkJ{M!6sU>t+Rn} zr?E2o+z$vh;p8yQq&8mCm4DkxaML(nS4qK5V_ByI;ieTG{EyotQ$-uE2^a$D2ZB>^&T~9TRF8Cs{w^Kg-c@Bx@e3NL{;hc z2N&B)ti32JMjpwgK;&&D0Z&FHHwfA8Z68zp2J>D9qm^=~rF<1Xjbzv3(*vBj@L_4@zA@4UqpTy#YJ&+WSq8D6~j0untg zNr0-}THix0+MnRp@apH_uOIi+K}rT%wHk zUSf0QNo!@u3>#}Jv3V?!Sbj>ebeYcCR<{5iC2nMo2b&HR@jc@`IC53K-|B!nH10cgJPG~Wc}0|H5MI|3n%gx ze%lt-wzJ2FPYhVuIpWM$w{#uUnyk0*T5Y}8T#+S!v?lw+=q=$!TjEBO%24N`=%$tS z6Jlhi3{ID?1612hWfyy=lwM_T2^7t!;noOrI4&T*YDp-QM-UOCncUNLgWD}Zqt}19 zH>7S8D}FK>*b*)ZWa@_{`t+#r(v`hXz|X+f{*IPDee17C2FR7^`&KCtGM%4-ZWnbS z_mWvxxlybnOuu)R4?gs?%P$E*+A1&#DXQcsmWVAn-|%LXN8>9{ik0N2-nY>kG1fMR z7canqEWP3W+}Q~&tqS|8cB%7F9lTeaC?We7qD{+^e!dMVQkNj6nu3&;bgC&tX<5<_ z*s%6bShXhJG@*;{0yWX53E^a*nqrhDBsp6@>rM!}Y`rxXB?%}^NRk2sl2(Ozcve_D z>}}li-~J3pZ(c&w6p%ELYpxbiqX|h?)=#q&!Y(D8@}md*Jus2GUH5soljlLy4W1JGja zY(df=fBO|ol91h}SJpMLpGhSSP6=;C6gkQ`eXI{kcsovJobJ4Vu%ASuQ$|U2Q7zF$ zAwN|c0J^#E8kFZ**Ig6yiPo+pny8j&q6=Q4*dhtT`U&%v1RT{8aI~rqkKR>rHf&(r3O1T3Ae)J35zI6*E9AX*O~7cgfmVKQQ&##eLmx_jt_FdNmOuI0ic(jXm|gvUq7ssrDDn;nTsl zH*Sj!^ZG^r&ciRT@L37WLTo?9jH|rrv zP8pt(mzCk68nglLh$afKxP{y}VrN^;@#p)p?i85>OD)R!m#tB&mY}Pq1YI?Ru3kZ% z^T*Hf`5IdPx)auxyE<=FnJ-9&oRNt-R z=96rVpruK3<^afs!juqC;6K}Wod|N|d_yPMaA!^WjNLsfE=?*Dk>sN0K80S075y=7 z&l`bC{Sl${#s$tW#NJ-7LfpA(!AY@!P;!2)vGZ$B`&y$*cUKK~^mKB;N3q(KoL_4M zD4lJabtN(&I6c;c`}3cYIRzyJweq7c>Hs=FiB7)8akI0~rJ!0RRwdXJt&4D{#TF*q zv{rAyOv@Sb#5y7SuViM5M+(=n#LU8K0(CUx)u_{s*3M^LbnHr0z|~ zXtH>>DiB~aQ9P!}bIzNA(WLm`#J%NKRpBkk9?OYib@;=LxY|uN`6h{m0+1%n0dc2? zw;uN3=jzw5VhLbNAZ(fsDHgt=18xTGtM>J`Uc77D@7xAF=1epD*39|*KD@~VB;b@@ zo;HGjLQ{7u6eyUeU?0*N5xRNt7O3Z0FWw652`b8?ZnOO!Jh8orIf4IF-J6egZUy!P zbN6E}IE%J|e}X0X!HAM(>md**mb=iPh1_{W26Ol0a;*D5k`0vo%vVyZx>;)bd!S;g zS8dPdUSd_nLG!ssElJqNreB*t;0dnp9Buc5g=G$fXiI=ktH5VgYoa{?Wq5Yg4wX%= zkY`>2KdCNtA`L^599_|VW}T^0c66--9i1y2u|6L^{MHX(iF6FQ6__(8CDW(qm}ezH zH)e9f^mc*C0bRkaQM0d)<&A19+~yh}SoujW-^kt)uDNxnwcP!{TW>RsG?IFv$bB08 zgl=ZCcHLdj4PxW)vieYe35|2a{x*HrcH0uK8TTBd%1Q{e>CZT$(W8Nn{R^N0%Qy$M zx5RAVj;sERcOk!Cq@MzlCDyCa6~6&VnZF_!b1&fD3|bv{?6$_@MdROSn!eTxTKoWdov#Q&4Ry zEJrgg9avH2HIStn0vuaPX?A8#>-QglY=V^yayd~;8g}cP2VZKmk z;TWE2@mNljoCa$pXeX#1d%$2K-bM7A|AO+>OZbIVM4#h4TS7DVClP!vtu`c3M+Nf? zA#mmhH*Yr)Ux$))W9#k5g!MYXGPC)15|g8XNz+aOa#S#B+DROa3ZgaAT-KF9nU0Qr zjT_f#!sZIuxT6zb}AQx#oGN6zb3)!{9T;@XUn{}Jrmr+=HHQNbu8E2i3WOsyJ zrquAVejfohZm9TN!8i7pTI?>td@p-P*yU~1-u$?~kl>KE4;>u>gIMzu$XDO{HWoqo zUYCxri!GFFTQ>X*Ds-3J#D8^H0Z}i^fqG@m-_gR4;~(>QwY=8at~eNdhf*U$8TrBg5^vn9A+cA|0d_o z`-yo$VK57VvVTX9GjD23NW0nKVryFGsuaY`YO3%>1apHaaG4k6DRZGp;_&8k6kCa4 zZg#o`8Vw|Zt}7N_zic9|zF29c zhiYt$C~Gb&w`|m0LQ}@AeEGxsN>yg_TC14+k8=*FETA5^bf>n$O_NO2I6)74xz5jp31Dd^=>_$SO*RyE&n`SounWMvP@ zt2;+3+x%Kw*~K=?=?GURd}ZE|n3H)p69Fy3L^2LTZp-M)-M<2^JndhFvji2DVHi`? zZ4IzNtgP=_Q}65l_vt@=?WK>r_mj7KT-M}Bg} z(Q}rC(w&_aq}*^@kaE+cO66AZG)1Lct9Y}_v`WYba?mN(DM~;}M<8WdWsgm??*B|Z zf;h=cMhgbXP3>b-w7A^Vbm{U;an2f=kt;4_5MdqmV&c%_Roc1x5R+*3AUjVvW((aB z;_%vIGEC7lJK-DqEp{R1ifliIZ#)1&W(K<>#=%(*E=y+ue3N1&%Y~s~?&x9rorIdK zEELcaBT;h@j;dk!>jm6G5q?gU(f#{JH| zq4liW*$Ko5mITw?T-^?^;`uV2YeDCWl_}gJn20x0y?t-%(BU<<;jiKF+QUih1YHDk zckU-%4?prg3r!B_%a}V(7|aL2ibL~G)`~5)@iWpfechx>foq*R)0!HT5BvP@`>=Z1r-lYUqEa>2^G^qpCO^}6s z`^Yv_b3L2BXfUAXeobb!PLq~I zg&b?#?{Tq>s7-LatuXS!qU5B{PH9GDN3)ZAWMUr15Xarof?z!DXa!>g%k<+e>YXJ_ zWK+YC23YLnpS?oAY<`mLBS^zQiY?)Ami$jIUi|*8EXPi5BF}6`AsWG&`q?vFQ+9I` zTD_ZUAdF+SrX^%!r(|QP$?2xyXiX)YWTK|orW8(s0>;W@TM6lyZxuhSuH`AFTrB?y z3liTzKb`BV0y*q0nY{zQ-uc>N|F=KoHGpRuST-)p@?hLI7*Cke-?JO@Fi-Y*%Ro^i zldWaLEOkwaC4qt)bC$LQw4fJ@1nD(!?=$qCp zzJ2Vr%fvsXl*n9oN7!Sg)!eS$Balz8WzD9Ou7gI-{#(LCPR+Zh9lDR5Wi=>j-YcKM z-FY$sdz|gP(Dk!aw!7K=1s2M?Vd5ievfg^PUSM(9*TpF`u#LGbR`MIvoyLglFx8){ z-+tX%62h4`5I6Za{%QX{GD0^qpnb-u%09XG=p?$W>WQSF_=r#L1*`-U!LB!-+#^Qh zS)bfXh)A$ZafPwkd2?FWhkR9ZF&1={@s`0V z74xj!QatRxiSG&8W;}10dy4&l3?|xZXdBY(w}6GG?!(m2CH%wY`^)L)DB$o-2x2SS5LdkUQXcHVGvy91QGN=!(-Q1 zd}+bZQ~bx8CVn^}$EBuFbh4%fTTgo!Y?L;FJ!2G{qOlN?Q~fU51Lm+;x21yfr5f=OavXwEV*Y@DO4I=xU%C5IoVR(}mkLP8m+Y4=Klju5>>`E(-d=wkXIndAU9^%*J)k z6RI$jVf%^yMmNUqv=Q!wm@F3^wU5MqEM`jaALB+!A)`GZlSRR0`?wsveb9yAYg`wC zf4HPmk-eaii7Mr0mw=B6+1xz^k4(tAe0g6sWljq9pwWZsT;0w8r4BC)WTI$tVuV80 zvi4&MW7noZ`0twr=z{Rl{Wk5pdx9X)a;%D3CoAslHmM23(;luD0&+ck17&P(K2%>t zaeV@?y%3NyMi(m$1>G^YX(_q`sG>*r!p6PKv#mt(B@BHo@n^cYm8* zGo6ec zEagZcA((WeZPNSufk1^#+2~07>t}pyw%jErIrzYkm%fRkTSNat^w9(G7dY%aByXUo zkj3m4M#YDz>q+Q`Rs%(+H^&2=UxDuT{Zoa-j74r21jbYTn(66ZalXD!C`dMGNL zq!|cctYyvf*yivRG=!CopHq+9crxJ~2xDLuiej-1wXOD0zlUGxgy}#W!@StHP0_#H zmlE0i4RU&A)Bo`Ye|qV9S45&G1M`b_;j8!d^3-nDursmwgGhtW3%k>4v%BW#zKt*l zw+OkOff$BO9!o!W&p0T|h$X^;@aE(O;EHFR+#t7x*h+mNDqK_9mPbG^x<`qX>hGc_SJhkD<585yq($@eBuK(6WE+R!@Xhbx_b$CVABaa- z1ELp0*iNU<{*q+#2-TA6S+9VDXv+)|Tfo_`)wz6wfNJhwM5tcySu|&K(3MRsAcz2H= z5Kp^DVGx5Ee)s-u20B`YtRvznfSJn3#`U1n z?$c$B_Q`@KO}14(@=m&>cXIVrIRYOrsDHsVimx!xUp@~dA!j@Ip}{>NE_y%4G9s>!q5W`m(_F@(K+eCvFEEobMK3z&M2 z=;_Ck)dUmQx&L7jqyP)ATHX~73l_+(Pk6zE{S#js=v>L9{hh2>L#mv;A4O82IS!kT zeFc86+WtOQ*4qJVf~vFFn+o&!zWQU9@}}7R>ehb;OhHEK_KnMqtnmU}vKp|@uord5 zQv&7##Y=n>|Gw{RQa-+T@!*;GqB4R5^B|td3S!D9YKxV(R_0Hpjn4a)4h z{d;JS-a5*|Wk8At!?80uVl?}D%pMbhmn9>JdXRif7RZ%XX~Xr(T4Z|OBYX4637taL zn*)VI)xP`7?>_ZQ{QnX40x53}^SZW`+r5kmS$&XWis^wYS>)<7Y_oc;6^u7j|ASu- zPY7{8O0ep(iOP0Mwy(1IecM+J4~mR0Sd)>iN7M0{8}u5g9;E15Wa$m|#!r!(onO7!G9-N*4^rM#Sn^u%4hBBn zm>x{UlT(pR74bXBo^2LP#3l?Tf-SEe4uuXMc?E6%@9=Zi7+B-qL0i-Dp>g%^qwz!K z?MFWI*4sTk7+?SU=ziDu>1Z?5GB#e*DQl#N4c23J3JjS-3s@Axvu9ZnSM3pcfI91eAgbq7gQGIvt|PPk6q8%Glf>x$V) zpjR+aNsk~57OqoCk0^-QsW)^cDy&{fk0=Q5fqEr9LbzJYxWd?iiAs8eu(x1IB|Sn= zT(G2)If4*fv>QnrQBb{Dk8mDM=v}NB3Nf0m&?!4kf_d{PykaHJf;iuNF}GSi=6wQw z;Y8>N_jMLHU*4Mr{indbV6(GzD`O-RKZgfIuQx*frljrf_AW)qYM=lHLbnnF>p`v1 zVnyPWVvQ|}ZaggpfYQ$fsA zy(x%!LL#0TVy!@MGurV4cLqx;SqcaS4VF~06d*PlZU|lq1iAx7T}{v3G8;?yRj>)T zFRUw8F-7u+b`Fuk%fiU05X?cCI!)1$TkD6xr!jLS^msv0axp{&_IuO4w}3 zFqNR%V4?zgP#L+stxhUX*=JWL717zKX(<8>%(eR9KY(BDHNx>H;J=U4ICVv!c2STG zDLJMK0g+?DbY7L9+Dd}MVkVUMuwWt{#j!*bF1FOP5-S$Wyu@W>_@tL@w zR}(b1pgWJxdBG9{SCt^RO3uuQO8He;CD=^_UB8w9wAeT#)b)mTl>o4O&I)f`)4TCXh*!!eJ@_1X^d*t>;A91H zC6V;tWeYaDRS<67jB%$7~B^^QVSL$Ht!SytWmJ4d-C+ujaDWP7KP_I;j z^x&!@$M}*+dhoJr_9T)XT)&b7d`Todcv&`b5=jqUw#2pqvSRisVOf>1tW<;a;H$DW zr5{pUP$lFlWtSdu#7`x_YJAS}_z3B(D~ZyJwM+@8s^lJ|U`ep{eQ|)xj-Fl|2!9He zSu##3rVpEctPAWbdgGr5P}!CssI4HVNHIKSLrt(11Qkrgqd1tTU^s6}SkzWnRHW&+ zBScd0hz_KX5W-lamC&lK(5hfb?6V^kD(M9!IBQ#iv$le>A{FwzpuYa+qcFE}#4*;c zf~|syc&Q%HolZOkmmFK+SCL}a=8+U7!(J#>q?m$r`c}}^True$zIrQME096}*IbHp zU2nY=x;2-=X(bVBkrX`I?dm~0Wi$RsPE1Z!&Xti)-Jl*NmM@`U+Y%bKH5ztXaBOiS z)UykYZ3+6?mY}b#ps&~rA{fkWIL>oLl-?%bB}ur2Yh=(HnvY)-el z9oZIq#l7AVHVf;|Cs^s)(u*Ll9ZoU}b zV%!A+iV2RJOX128C>KfbwB;olEmB6z@@|HbI5hiae1$NBL;D{;#&7&7!|*NfH#j9b zb!OK-U21bthjdJ7EAVZc=_wKRZAqlrwuHHDg}KFgpTW2LY6J0OPp>wFu?5RyD+Uw! zA$utTfsyy*Ud@SIC1%`ldgqY1{Tf&ejHPcH~cLb_^UNHIkPBLx%1rss4GYh4RT3Kml`Hw#Y+mQ*rH3uFqG#G^Qv zsKhr1X_GUO#CgSZ3m$6p#rSP*)a3?GH2Pxv<|tfDNk=HbQ#IkKuzInMkS^4(Ya&~t&sT*E&8{?Wj}E6upC z2w_{UN{QJ^z*-|gVKEB|VGAZ&GkZSY)<{rTumHCIVgr{Dwnhlsasj-GTb5;OFUuDA z>_)yCc)hXI!oI;WPIl_%{+t8(8=-28DhXAK8A}4gY@_W}c|51j8P-h+TWd-J!x~|0 zKrX1YrWc56zoTT^nQSR>@kSHg`9xkAiK zxsf4kZBD9W0GGhDMnbo|KE7@-Xu<;~NY5k@kLShC735}80I#xQ!&uOnZzX42`7l8+ zYc{pd+8IFj*mAS5yIq!L!_Jg01k6jh>Qn62{rk1{V*3+_S4j8DH$u9`+MV)ZAjr7b zz$GUjn-a{`80NaWcEGErT|0$kJ+^3b|9^O)Aikm|X^CKc6v3XhXtr%Wf;5?cszy%aZ3;@P=+6&0dXFrF_lV!wpt3>n(K;>zrT0M zwuEuDB_Ulcg>*gCnEQWH&oi!>#!ep(tXsldGvaQn&`HOD_;Z#gsI{Iu;jDnT_q8+P zu4Ra21;k56IN_|BGFPc zuD2MC2Tbw2Cj)@CglfT|Th z6;#g;-p4SS`~PEj`6#fLUcCG1_kWE}dd8QIhU)%JU_>*Oj9bsC<}xlJQ*8;EYD>se zTN3-#mc)LwB@nCiL142j>}Tk?zVP__N1qUc73+N^M62~gYpx0s3>MSIhlI^$%+qu* z;{smQdR{fFjT^lrgD+LyKF(dYB{Zt_G-@_uw}2)YHw$+S`2AKEuj?OpM)ecV&f3QRg6!o6w{;C`%u15Wm~Cj0r4<9}@lQffC%AfBrs~MgU^>OIoKC%y5D2t^LWVL zMCyne!AoyH`r_U6zkIr&lOu$e`ty)7hP=H$2i)F`N) z$4B$c#RD{$wI8YTS^MSEyp$iEEHz}SQWO(QIolHt=*!9+S&$p224Ej!inx zW29kxUVf0w=jBZiuCgC9ob@5A>6wcyr}A`JVbhx9@j3!8oSmz+CoP|5DPO1`HY{~? zs(EXSR6C`8bmxIecwt=<0MwNrm(GyO-FG6s=V{;RNlUnPCDA^eXED|n?%$a|+sS(@ z-|cJf6{tj?TV6taVl!I_pXofGSoXf8oHouHh6ZY427 zUCE74ogklxZhoyY-#uLyP}nomp?wNJAAj_{SJCsa0qF6bZjYb*ZnP^oOxKlQo=z}N zprM5E#71Qa?CB)pD59H8>gy&^-ZPWJ%}PRjg7x>7pYL717(eot`U(XhjRf~8l4vKe zXRbMOf89y!Q6z<5K8=*gJ$xtEt6d1izm*EQzQsy7(2gRAmh2(N-+~q9IaqYhhbwo2hD6YH3&KH5 z`j!x(T?rA|2@#stT`16kV9B_pz#;yg+mOEJwv%8X(ILN;*_8wc?Ib{GA$K0ABIr5> zA)x4xAtE&DBtCZ@keBVx0dqUJxP9{}^IVV3|4w3qL|@lGB_2owebI~4tTTk1P?H>e z(LC4|DnnB%T_fc%hNzVCPtBPtX%X-S07jv!IEBn-a0qXrmy+EEiG3YW>Ii%qU2aXh<{IG&v{C1VDNeAr_> zcn#OUdhmF$wOJZ31eflVVI>6*#aI)_nY1g+SSg05)<_B-s6oXFSjA3Y)SPa;Yi1hB zu{Y2=Ig>V5Ooo8F5@NM0AyzvfRfmU-Vd~@-_Yc7SeBjGB(uQ%WQyCX#Pb=#O@DP^1yA>d1)_|eURV%x3N9>q z0Z^gZ^}?XcdNz-2;O_hCWgNWd)8$aTL>mPQ;4vFa#GZRuEAiQ*8sy8WdVx{P`SJ)2 zDqi5E`w}qKE0`Kp+Zj#*kru065{T3*u^K7kY@i3*MzUUUv8~1P%>LY8-uB9>Mg@3f zN{lR_NgHf=Ht@MN10Jj2K)?Lmm7Y$uL2jgst8EFK>J?5c7ErM6?uAK>Yv7twvD8Qz zFH5$?&a`j8fjvg`qtDpJ^Rc_=l|?OPDb^gx`o=C9sY0a2ZQ%+~C^b^XwS}^%r5+^+ zYO(h*h2l2OPP*slqj@oJvF`(#4A$d^6MRKJ^xg|~ve$3N7QYVF>;KQY@V>rkX9_=W2Dws$H zWvrx<(MkAfsXo3Th-QToag27XAxf}TUxKyzl7nkKMMj|^M)Q@M+Z22)%9hw)dDmhA zyv>OjLonB3Z3S>G%ZiI#Qe24EIA7->^aAt6eEmEf?a~@jH7X$AuG$N{8Y}L)ia)bv z5m1ZyiY1q1l~avmoeqkpmfWjSsZqYpC<>!SvR((8rP;^2<&ILPQI^gO^nE+5pN4O} zWMKBcJ^^Q&Ue@;lm^Og;I_}N455xb!*XMiddLc^3GkEX; z*`0>Bunaz>+x&Y0NwJYx!jgJnNx_n^HNAUyaH6L@ypW<`nGB1J*I9^#-Ar?~CdBi( z{bySJmYibig%q88P_N7WbNjbo%S2H6l6a<`08w;mAzp;~uGCqO(X=?SN!KFwgp9&k z(SQuDfJz8bF9d12LfPiQ%fWB`?XfhIvuvwn@JzcRJ_uS`6)#vG4MLYz%V4fF-N^@u zY6^|fLBg9>HQ^yWrwK2ErZe@udXONe=@hBk3__8n#i;;ANRgHKAS@|Tj4X*_#e~c& zENQ0c-DD2~BkzIP}J_sS& z!#^JnxRU(5`7ihbQ15&_{~&}&bj(hF5GqtznRbNE!om9sA^>vK-9V?;Q2O0fROZVQ zhZz(Dg{-JND3+*T`8pUTy7}?}=hdF|<%7f|#pVg6L800y7K$a}33V=rcz0S(;yK}!IF5=ovsb$ zf^_6!5cU*F!7Hfg6uG+ya+(%rm1Ihuj2?Fdu!{{glsEe*q&nY_HV9n`s9%DX28o!O zE+*GmpwhHBHL4J$=@hO2G4gdohzxC`a*Ydjo>36ebk?j)#KN3{jXYO|n+k;`jU&+W zwR3}nOqt8PhEsrFpWFY&J}L)R41$oBW&H#`>SZ}_f1opXH=oT4xRrzOBfDDX*f($4 z=H7UFiryXw9*s)Rp?!lK#=9K8{vAxw70mL5ll-Df^j6xnp$x$qkAEHs0VUbVw z1p!de(+dJcMj=I&9mNu{(~ZqqB@s=7vZa`MJVJx&@gNN*Vl&%~N{8cXSgW3!Fa0Gg zIs`t&vKA0ElXVGs8cN91AcyYe^x>&DSXEv<&t=V4os(iS&PgrU4O4fXhJ-j#b|fg2 zX+h9WtI?T3_|gV*rG0071N_zxKgS%0d9F`PbP%{i%H(dT@knc#vXxeKSTGm2+=9ih z>&&(gUKHzF5|(s=Q`jFq|1R3^^x{4Ie#Fq@Gjjg=Ra@WiIY6^45l#!eWY+xPD734-2$;oQ9? z!-+~vD*!3hVgi$biFk|#6Z!GF)XW5y76nVJtuaTTzD(C7Evi&v?E==+YzkNt5|s>O z!A-v%r|G!`lb=tg+zj&OLMj25%6JlCwRKiMQL6rVLnJ9gEFtaR==hcdN+m6-9 z^8|$?jRi>up+>#A0pGCpX^XTkZ8pS<*0SbN>c4i9_Vvion+vL~Dd4B&H3fKluC*^k zAgyH`FkRYtqmtfq=(1B?I34$gI8VR6{N4AM3D=zcusDGueaN*0?G`lYMMS(lo%IL|t-wM-NtDexDN%0}KhMY;8 z6nBj$VMfb}djozKbwZc6UCO5UJO1Q$uM$_ZoaqzR6T~xFH`f#bdRE2#Wcv#GT)yxw zF?@XboE_xck+Z|&J8ek8Bk*)UlkJcHgp0P2EcEB}wj8oN2<=vQY|`KT0|c=QJD|bS zDK!Z5tQwn^BwQ$%h(}~F5iEQ6)j&JX`szv{Ph|eA6!pXsu}MR^^Eovnv z&+N6=2KKttKf{>XeduTCN)MccdXeCwWo6j5%d&pfoitPKXeE58k^^VU%CK#1_CH;I zj>g-!Ux03p_|K*i6f}`3#2+!15chNMN+l_x=;nc(4k-o|nexOtp+jytLOzoU}V_O$aBrV}ia7e5vm za7I_M=m3jeKX1=}NX|>beS!t>U|cSMM`Ex59+Jxil-QDqPbes^sf7Q;s!{@iDg{AH z7Sv;8i?Zx5gEbIqhrGBFqD8I5+OYz}?BfDHOr2af(L{H0vg|=)O{A!3Q5l|$aRe0; z+~sp`Vv578nE`l3@jyYaS4nKpa#h)|3!3m4UJw*ZF1Ev}0nr+1KVB&Y8fVSoY{p~# z>T76b%z$=1))mD+?rdr*VL(#7A-$5Q^d#Au4m=N!bx8NdKnEU~_U7Pt=y0RTfW^S| zeAhX3X8}N>Z#t%iOxbSx=9{+#g}G;Y*?%QL38+*8fF$2^5*_)n>8#&YK;ag8c0sm1 zn)!O5{Bgf*QxOCDZ~U`G%tQ2gD6Rhhs^ry*Fre576c`jt#6vNd2v)s&bU>e{J-S?& z9W2uu^8aAG3cG{>6Neq>JDh);x&|F8TNGpy#?%lH6innt;*v^2go3%3m{90Yup~c1 z$MyJIvH_8yv0yeEa-Cd z)9P5z<+yAymm@pE)hoD~tuUWR3U-ZiDbmGYD8m~NGpx~iOq+VgW4aiu*%JI2w+zzn z9=&u+%x5f{TTy_|$tHN4y@$X42Fln}pYX$0fX`TVaI)Tv^VM?=A~8YZ+`T4j(&g*- z&~nQYEGApma%@RkV%hi6cNYZLRfnJAPmjyEkgvC4YmC~~3~=t3%259!(y!SH=dmd9 zbM+%z1fcA*-SV0oadU;Q86w%^I23DTLjj9{FF9N99OBTCQSOo)xP5M=ADDSN(USvHaCkjIBy_Ono{ zWfNhpcbc-57E0&wGhe!(m~q`*>3XA&IojSLdb=OJir;DDx)uCV?GT1-JlZCS3sRZW z&D-Lw#^`XqIWBA~1m+BQ`uE#zuP5e|u2Z-u(poNDhbFX*h7V~5E#N0DviM3yv_ z^RFdwIop!BoNY;5&enj;-M=E*=4t;b&?PpXD}aF|<`dp7-DtLS3JXW}@e%>y_nY&t z|LdJJBniKeOgbO173?x!uql-a_oIz6c7^*39>A;j8~9o%Us5OBAk=) zYYURe6_uEpSPN2Q&0NObKaq@U9dC(n>v+=`rNUacvhj~O!{)B@@$ab*NmR{*EYjpv zJi!#wIX4*H$wM;8s!AmbIk6X$J(RQ?g-+F9p{@Nzo5j7UCMyMTrzpFtiF)NWpiml8 z*j36K%eEKTS{yN3pD%B|16{NC5k4|mt#pF8*%BF{vQZt^SnDIH79=uJW#2+I!I0Gk ztqF;UqItVp6A)PtWAjLJ<}GHefiRbUpv~dOF4m8m7caa^tu+9~mR-I(*@^CSC0SDw z4|x^a)x-9;AN?HumsUtM9fUHAOyqb>OU_#8$Kmib1dr6ZsIStR^v!c_|)aF)Mh~@zRTTKmGo% z;XBU1w66cPmp<~|Pu|8wvL$DjYC6L-ud{bu^HP2`oRuQ3AyVnpX)PdQz6VJJORPER zG?M6$?di$IT%$|m%7UKWQ_U9{9XJxIvQVxw3RME$;n8yxM96SOFH7$&Yhe+4d%JkT zRC?%t^*=Uz)1Z~>kQW5~65@NWU~0a8it+?%lMj&91R|vUAedh6))a-ZD7at|xCfUb z8^yTiVUN9|ZOyJX5kV@3N7UP;Ve>ok0`&t@N$}nQNmn<}dYAmS4 z&TK)D*^>&U_h+>rjbIb<2n{CkP7Q-%zTMfX^MVprqJrr?SS?42V)_#0_z<%s`p5o^ zA$_i}`gT)v3E8NLY>ZnY8;J16qM)B&ql3YRnY{FEdlQCnWN+Ngwo5*}lYEvBFqsg9 zaQ1IL#$-Y^XG+v#sfmen*kp>OtHq$$R{7MwiiZRXY6>S=%+x!=wM^Z>Tdoohyk$+< zViqfW9Nzr9(NFZXyqm7&Fp<4ZJ~dxQmwY^Anq5;E2}C+9T@7Yd?foHdyK9drW2&{BOD6V#T+9_4fyML+Mc@hZYt~u-NUBnL*ynvH9V3G8z91|6(x$yeJtBX* zOEfd!T4F`!+;@JBS`!0-3GAzH!{t{m<6>v$i784XI?{xQ#O5I4BH@xSf8IPXt|xig z6XS-BkL;cMz8t>vvllP^js~uO`f!a6VG!71QpOK2q_uq0?Q(a-Sefu^{HnFfT@A0&34zg5U)8>c6Cl5}H`d z%y)l~1G^a54lvrS9q0bbcu4P{8VSd6=5htkjsYj*$AC6SwgN#2Ovn}jV>=%^v~uk5 z4WYcfYv|tIwQ6{KtmI2r0z293{s_%;?BLg|jq+(>a6;E>rt;03M_`#JWW9-?!V&ML z&6U_2LW|qAFF9mS)p$OERgyWJ>jrWMF*~GTF*aVD4K{A&ecJLi6iV@DG{6b3xoqob zXJc)LdPuJT8i}T`RYU4icBOQMdG?r=Lk*D&9HQ-q`zcM^O``-0oiP(_AM1Cj+J$KXi=`ozhJ1lSv`_hFGdW)35J^wn* zUc^6EWC?yu%Kk9rOW0#g){oFNSstOWrYGhxSwL=(64cR1yhhbvHn+`ZRbL(FSC_+3ph=7i{{ZxMc+z913wH7&h-L&2x@(G=WKnGSD)EM^CK5sA^ ziRZA}HLjP6TKie{HU(avb5;G+ik)>w0-ha76u2=TCEKSz_dN!>l4^2UX@N7Q-9%_^}8wj>s$u~?A1 z=f*jjr#-hIkf5S|NTT7;O?oVOuBVr}Pk!gysdsn~V)hfk+%<%P#MBTRvXHwUkI?gc zeDgQA7243hnUp08GFCR%O8AGC`?H**pGW`sEllDVJht?-V`1lgc9%jvG)GsoA8t0d zkf$v+^}?`52#4nATAt@i6--695&)utDaTeo$E=R6(2i-dv=s9(XS`N%$6QZqm3fHZ z$psLU@%;r zAhx>cAtT(DD9NAR_yDbndL7R=e3@g6T7o2FTSC@p>IV-ld9Y)j`_qT7KnOd=?D|?_ zB~w+(_c^wLOANmDy9P@@yQJc}Ax?p4tzZ*vf22tv!7asgU>;hyEUFc9QlWG^qI1;+ zO9o47+vn^iTOZnisXjD=wxHH`(GC%d>8>C9D#yo$!_O{w1{B0Q9{_ z6ZY+Q(|9Mif)&p7<}SF2s{4w~?LWm0b(QhO{VJE7i6J%bpAm~>SyKTO0UpnxAg<}C3Y zJPWQl;OAU{VdNV|TVfsG`OfAg>`t%u=BBrDEm4kfgCe^`BU=gcP%A+;?POb`94q+} zQTI~Pg66JfNS^^!Le<2@?_=_>}4Ic85*j5n-7SIRl%Yej3%#fE0 z`a}M}LQBU}zJqEX-vDBxS}w>8M-oTolw7vnTL+>LKd_N#!^SobXy?oJ zSGiD624DV}4TE3UIDq8l^(^J*w{cDL4v;SNSS;7C4;FLu)({1MmlgD;xK9+Ah3uxe z<9_>xJhc*TSSnW#gH1WMckk^TmANCd(9pe=6p)~cRdHU<*`=+vBRRKts9>VgDIFte z1v(sT^?k-hV|V$?C$bZ!K#Ot9r+1aD5Qk|^|1Vd}8w&L|k7m>F0iDVYs_Zxa%Cg>8 zKZKyo=#V)ce`z1vaZXS^%VUvXQ$IN-tP==9t$?hPlj{UR>^san`|34w2G;+R=j;eV zd=`xg16<5^U0O`z>2pd=CmiBB1=+8@{s&-Eey!ROiujA|-ZsCo?9g@43fWd2L|!1+v|iyoOVCHRnOjG9WP&e=`lh&0ukT8!0JZVZTKJZ3EGZ8#24+-M|-bq zf$Bs5vz!;tdB+;oxt?^hmD27z-%EmoAYe*Z&!#cU*KQX!CHvF&vp8>yKp9_r6w)@8 z4)4F3#r&qo>M&b88|2dd9KFcube$P~lKgll=%Mf5w&7)MgErb!|DB8W?g#@{n)@eN zkhiNUn8F1*A`4=dpXcoS{5Gy~I(X61eHk!^&6>vzhOXhXQ=RZ{Cv;)HZHOrR*AG9a z(Zhywp3Dd&j8#h~fjT-l0?nk6f1fHV@PNBPa;V+t{0J6(M{|(-Z+t&(Iy(x-_{!^O z1oNZtBX+OKa7dfZPGT`^0c}Se4;%C@yI<$9`BT==o8#keLh^{Ui_PFemmFg!@fUp! znW6tIcAV!XmrKy#%|HCeWXxvJ^qljevm>)5>cNrI&;I9+FW$9t)_Kp`2`V@q-gxoi zcQ5{gO^tJUf(cGFnqt^~{ZqFgk-=$4m;gHWAG~qvY*q_{O3v>QDfo}?{;q%ZL*$yS z>FEd%pbfS^MR`}hkM=j;<2)WQg0KD!Z3<_1^-t*aHo4?ijGbVD1A0Jz_#}Qo)Mml! z7xxn1?F1Ga%`+N4v-|3=t_u^xJ}t&OK?djjYad4^JlIK2DyXBd^VY5tTwu2k?$58HL7{@ZnYWqq6-(X_dXAIRT3}J5km-F*`t-e;eKJ8b2Sq))6wAA4NHquM>7O zKe{cq#|S5gG+)duvy_OpUBQyPLkyS1%g9(sC2XmaK$>7lyvz(H;w5J=QOWd8geuzP z1gye|N_vC@-UJ(>q(>0riq?scS2$5gk02lxE~%tP&=oD=l6a#Mvr|a~Pba6Df+dyo z2tsZ14ROpXPhoB`-Gsaa6O~L50^))t@m_T<(aE(!Nna>A4An`f(420!zkhfpL3eYB za)ow+?&eZZF+0I{!9)d9!%pyCu%v>iVQ1Lyww~Pq>^)1Fb_DutYlR=%JIPOuqTCVj ztFQlIgHu0t&^w}h^Fx#^Be*ZtUM2i*SHk~x5||WJuf&`btrTv(g3-MrY#6dUA;hq5 z1=IXa=whtBCDJLFsAP0Y>{GC$lI~Cv2em7SgW3_Tj2f5DorM#X^az2Pu_h%-V9*%WACPN z9PduBZLolnF)r|StW|zZyAx(Rmi0AYTQ19%jAe-gi!~92grUWkY@i`wAm;Oh+_x4x ziVa&UpkN2L3lhJZrb(;V4o(vBM84csYu0wXNW#aK^JV9~C|d&bb^`R43*Z4f-x;i< zJer=u$(DK$CE}61tW}9^1>Y?fz_txmn}_tc0M{Yppxjv2O)J9amSs5#U|E)JyDZD& zc3JibOA>Z-e!&hfTnpK!m*qQ(Qv2b@5qo;s;q{-z$DPutiJjmzi|IV!o#V#d3m@!m zKl_V>ZFVJKZ70X%V%;MM)_6iPws!aQAZAZ{dO0E&RFv&!VcdNO+oXpf1t;w&e$9y_ z*&N8UlMuEfk{*1%JOGnOdhoJ5?vhA)@UlF)h8m<75|;8!54nI|09X=94_=lBU{Dzz ziNQo{(qN*3S+=Lpx8U603nB}u$7T;EV*4knqz7jnA!bP=J$PB3cVo&3C`=ov3k?f45gR$>n;v`tY};4?!ogC$>A@8s_$!H|2WJC0 z=$Ay&gO_F71{G%`r+m|cSDZ(35=jqUmY2XuBt3Y=*Jf#-@0uljzHG@g_MIFHa^wRxxp6Y-c0CgQ;x zOyn&e?PC%`7%Pb&)p}!>;Hh3>3WJITdO_Z`^l~OKScdNffy$TIpN=aA$|$is0jrrZ zTw4jMinSFntC=#~WF)jISVq9+zKoKQUlOI(Q+ zK;U#*r6+o|t~_z8fVkgX&4}mYFg-!5wW5DeWbh%=zMM`4MdVyBKl3?ZgIs%bo zPp>0{O~uL-NEJ-vcTJ~{!Jiy{VWHgLF!=Kbcj)QtWYp)BM2__(7drKXu)^w<%-Djq zf^A$fZEJ}+<8 zsG7pIV)mkFFxJOuO;n4eoYp1rUISf9#aSPdzZjHcC7)uq0w3&cLBjuo04zJQcpkq0 zXB=Czmj=gl)Nm-FS3^lS*HH4+vB5Cb&E*fERL{EnL1iAn;l20>j(hxFi;VTYPT(u0>}+XijGMvf&a!CM32t>{!wkSmy!>_oLzMn(zJ8U$%2#nVIn;^|NlaWx3f zO8KS-*F+L%l|<5mm-P#$wU*%_9qVXx`t9?Z7;X454P`oY&i$wRzJJ`hZR9O zwmg)8s)0aNbWD}ts=+Sdx~~QhJN5KxpoByXM54mAD=}mVj~Ytu;u;80Me9VE3JXs3 zFuNP52m3l7eti3jeR?M~(C5{{Wt2?MCDdvlYGu)zh`7mLf6LdF4<)2(psT&YmFG!1 zHu?!_E!BfS)}o+?S5e)GWi94jVqxM}i@CGYjWr>~Uxh2|NBE*j-l`+PeWJ!g37Z;9 z*wjF5YNV3u`-G5TloC`m2&!5wW6`S4SOlg;oW^~C;b%`BE*5tq=bSUn^LE0{>^A2`;4j~$fsf&#pSl1h4k;H_Xo zl=OmvBZ#Pz^o3B9D*{{TKn3s%U#F11uvUijf;DlO+SkOz@@wL}M~>ONAi@i+BqKj& zz7m@g2zv$d`0iKl!6R4S#!l&RJt)2w5}5G!**_@rT4`50QaG=Jx9z-?H|Yo+pe7|Y z6owTuJl*mZo$@VK>%L+Dt9p8&Rluz9g%=r;q0UwSuTavw35VR-1Y5;gTMh~a6P3)z z1hS%bC88BgM3{?vylbuku7!{Fl-OJ@myfkEogSR8gdeuy_9+?5bn|?;q>}l#fO+A| zNPd4c+gt>>=B2!m=cT-hotFv?UBXrKd6n3$fK{P2z1`;ZDRGyQ}EZbv9o+oC6qXCsFN$P#83t7 z311YG1y9H)8i%?&Zv;O*?Yspv#im!mO((ng+3tz9FI8UOtk{`=#|N-bFCKcU;w27} zpi{K_1~16EHOlRzGd|?zCrhkamn&ZhhME)~Qd?ERqC)nlgh)-6k?m2Hu&AnpMO6hS z1JS?*_OD8?RVCPJt=$w@MaE~P*eaIDJJDcot_s4d+NuO$RT^y-s}s)xv7RjmYt=%2 zMh~|ePw;DH2*R2acLTZvUR4sCwOWRE!_jIBwwf%%O&S8M&h@9@OEJ%%FK;5iDqY%* zFH^FeSM%l3F8S^sH{c;(wyg+y1-w0f_fdSG=lY?^>*om`QGoa;CQswT7WV{f?5_SZ z;soqk{7n2Sfll@v-F^R_-9T>Ng*c@ZMWvuAG%zH}DmF0W&i`N{YNRl;Iq`w9DK=>7LS%mY#di>yl7Qpm1En6f4}t+GCTj}slc1$R}U z<~%TCT}CL>qdBz_JT`+_`*AwkJ`z1Oqd*CRs!AACRl=YuVo*^dmmsN1kknjr@uWK^ zRbtf==u{DOindP)gQ`jxR3!{*rnv|@g)6}f%D!xM=>7<&@_5)k;?eOLWgfs@js4>? z97u(1D*;tLuk_In2= zmZ#aV?CEis0J3b8*lbo13x$%{R>6`mEbm?%5l&Bg@e+nq5krdh?GmI^(IGy3na;i| zWS{Z7euSp_0l-2Y5CoROT6ycP6~H4dW*>r2YXy`{u?5jkZB;^~suChqQDoFg{pq}3 z)Pg0Xl^^86 zezh&3Ra>G}3qfpKB2;VYmzbLH)RHEIq^2~>Fj84)(WOqEBm?dP|NnO%Z~~ zl+8F9nRj@^RYRPoYx}}kwfi2vTy3BKI@`U03F~i#EZOCQQ$MHlf?`{6vJWbiSW*yE zYz63$_yaWFJmD-~vDk#IyMC3#f>F1~Pl!tpcP#3N~l3UToBeVg)nt zR`60#w-W0Ld77)xkk&a{;ZHH$ghkC2;|wYwDw4tv5@59z zU=?UOp;fU83A~CF!#k;9F}$$~CgQ#@rKn3z}`7khyO8O|6r?Iy6y_1NBpyW z4fJ@)&dsehB*pkjJSA z<`}IM!9DfUJJjHisdd^Q=HXe zj($e%&fovVPhnvDvUqxpUlX2kBH1_BB{5WWNeoq8LZxb>Qa9gRgF8Lzn`;S-3iZL7 z_)~CL)Wo8~iM$EJiP%8~>r^lpYoS)blKjBL#It+r4qv+aL!Vwy)yl3GWqEim=gZ64 zMOk4~W7%{)SX-CGK-Cfh6>CMISYxeRD+<3F%laDdRwby+6DHN$sFqABsA{aZujCUZ z6)?4!ZwZpB1xdwPQK;0iRwct#c+_$MV$vCEoEHnV1WhgH{=`@n;uLF3fliCc2y2>x zbvf@QMt4rtYC^B>>Eo0j_H*jA^=&03SHUUDCyKBM{6jYa>pjuGSf=WEsE(o$!W5yCXB)PkGmvE*3knxnYcL@~l5dV;uZ04w=F4`AbtPdz3(D}wTvcY# zhQ5+)L*L2l8bHG-XZ+*?do>-!yL*rdr^+nyYe1m=^;LA<01*iKG5n5ws*d~g<0U{{ z!h&jIK~Y~(!i8$%LU+%NxTdE)w}78m2cfX0aP7QNKfqGzfXn-PtN;(YTjTdB2DPTJ zrZrg}lA#(jf`x*Kd{|Sk+D%D(Q$qkLT#|RFQ;n7bbDI*9)Rd5k(v@N z)Cd=f)lL9WFj2{vl#_J9lDs>OPRxRgf+dyAx+OrVk*K7gdVVU7HiX0`jX(a~r?8f$ zBqXU3V)azVAG8)Rk38fmX8!80KaTnX+?oe<9svZZiF|DWt}A@@MtXS zTijdHb&RR*Du8L6uhW;f5^h(eUT2wSVBQc;`p)avexHAjJsy@67D}HkFmD?6-IO%Ek zFH9*`rtqa;A|8x(0k2)YdjX@_poi>0R*v|)U3y*82x1Br!$UHdsKmKS7*en#o_B+Z z{IErntv8+Us7MOlz|O|NG$jD4p}?f*@<5K@MJmC@kEAHEJcTXA?7?QAQ>@ROpMsZA zhRtX>o;1fK;a+UIw|p+^Jg#tO^V2DKK|NPSRv#C=QW>Fsjyp^#(OfaUDlvn5#R?3L z>-L^jEM{^e9ODFQ) z|Mstb{2HnR;q=v>7U!N_UcuR|B_I_}#6veWtSrdswnV@Yr>B<)Z3%;Fg+T=sW#a`C zc|(TVk%wonq!Kd=wu+TR6zdi!^8RD-ib%JD-c|y!5ZvNQ8mZx@-qAmLOFkl9`p0*! zTD<&qIY*5aL{&q&f2$=&8k_0iEn%ohwA26^PDK;cY892+?@k~jAu28lXN!fZbXXm}tymsDQMU7v=c-j)i)5<}! znDr#MD42-Xm-Fo^2#5r;ndFq&oK)19a+EAsCARIH4t_$FenS0IgNT5y>_+MfzQj0K z$Pr-U1)CV>b|{W0+PMVa#HuO*MKe_ufJ0JLRe?74rgf#NLTn^!H!LNhXhD#zH>ZR1 zzyfC$vgV02k~Pnwl69WMI$<(%S?5mD36qhmGd}MmRA?^i?Abd)F~9xtSJ4HV&w{)j z({iCB@bWhR@lF4eKjBW>)BZ7$b|t|;T}d!dC$J^d^*g)x=;nz#g!nw`i910lu`&g# z1QU5j_#U`N|Fth;+5r7NZ{JC+Ei@&VHP55LMC>4giTtRXuLRGj!L0qLoX^^i#965l z#L`jl&wSS2jKN90qp%;z8mpG{vb!VXB7(V-5M!B_TCf!t>diHuUC2HZ*fX0~2^;B% zjY!sTP`MF_lZ*siYnQN*j@SrR#OD7S%$OL+r`~?y4}G3KCA6nU*zq1x``t_5zXi7D zD?&QChUkc`*!4E>B%eWTM<8XflHP974om!GDR*HhldX}ruN{Gu^~RGkUyF?=VLao; z%fWA*ob$4^+X0K5{($57_Ab(xuydq@T(Hc8=mB=T)L(!JVSjs#nXicNh`_vpS|WQ3 zWgd=ruolWY<4yu~E`~m!fW5XpTt$&Ce=epY4ihz|+#M8~jtSaCOEQ>qcgCPJPdj7b zG(km6oS)E|3r3n92!PFR*1R14l3cPtnxIyGPDNK)EPzMovaI)illh{rrE_DQpc;!a zw$Byx*r?cqWxdiiEq%I~p%YXyp$r$m?r>F{H~F!)l)#*cGP1F7SJ2ZRbM7QUXQBYE zGut*;2{v*t(R0=oZWAj*FitQLn?0C_jX%-M*^Uy|vn9jf$6RD(pv4?E<}kZM z)N&aTJnra1p}#{Mv+sb{&4=B`@TdHmxuZy)e?SoLqxao!_jq(WZz4a~vsD(Zb^sDR zRA0icyqgx_V=hYY@>>#;E^F%ri=uB~`h9*bJ?EG`gfRXk#9 zmpl8~>D;Mj2t=Ar;R@g>c~zXhWWwSAh4Kz!w7~2@rcm>RFzb9&u;+)J>Md=%cdb_&ckQ7o#3hBv^GCv*eC?4lB z;|(_R$tS-otfRo3DMMcV%?%Zb)0xmgc+tHo5h)5OAlD7qw5}Djzq?8jGMX#q2$!MLH=W~8fcPaZua=Gs%p&!modgWL)8v2Ewcw$bopc7wS+bU2@zP6wwt zI=pq+#-6YZwmoW(+0q_k+GadI%;@A4m%SwAw0`pApP>jK@Vve51obqhXTNOTfC9E* zPZ8lAo!mnDsX2R}=WIH>^>sYK*yF*s0d)&Gx3k_Es&_T+BagCn4Z;I&MoRe2 zoD^^PNGeyRhSPKssuODgiPi}w;#rd_k(*5z4oSJH*4T}%{TUtHaJxMLHPbru!e>Y- z)u*TMoI;^J(U_tj`?9%m{eok3lXj+~y}*{a>>|UdrvMyxGxd;mGQEHlDh`utdIMHZ z_wAJ0gW$<@p%ia3$}2zl@9FeXQP3NqDCq4_6y)JycYY7+78iiS-K6blPp6bdX3ZC* z_d-Psc)PaF&!&5UA$*$2w!itUWIbUJIBj!>y#*oJQ7rt$;PfH6++L_iXqxDSjRX_% zGCi0GHoW-79_Zsyzt~d{O>kG*)2%t-L>04LPuDP8U|xe@gY!cSdrp1KGZYb#v0$2X zdqN{)!JH!zk)ohCTT##tw`jA~K#^Xc$oXM62Ei6R+`=#x7?$>ap6o4p3c4v)!ke)u z=oc78L0)47l&zs6y-<-zF;T-38YxwkB5uZlxtB_;jlF33d=236$?su8o3YZ9%ANvk zZ0ah>dh3B@qBB^&+A*9np;()-%6Ysq>z*V% zrog^lfXF!OUGAtvMGns+&mGnU`~KVbktlF4P^32n&`pn+@Q3yV6poE{J|flEoObF3 zk;FW0O;Am5K{Z$RjN?uZyJxxGCa5TzFqTNzNiY#_>4J&;v>J7T!cl@H$(Y5wX@QFT z`R8pP-3wf?x899ExjPeFnG&^sbK)}fPUikmR>r%}x!j$2jm;&9W?WgWfdtXq6=yq7 zi{}~$d$}wAm~Dl(Oy{1BMX@u{K1y*kXu45XvwzFojRI=$D?r4lPktKOOJvP-C31@j zmbs^ogw@;?kC+!eW1YIRP@22yi-ji#3>Uz=&$~5XcRQ_*ZD4Z^WDL)kY#4G18OC?| zgg_hH=@^P0e{KZ~1aRIs{|6tL9z_g?{f5(eD(YvyuSNAn=a%I1_C?5K|KiS36_M}_~P{kfSpIZ z{y?NBswh#PUt^olbTBbKyY9ae%@`;sMx-#7(((3z?x_($mz}rMycAo@f(sgi_HS3{ zgw5)=e@~s6c+Y%xJf>nMA?owY5YOQs7>s*-^1;l3V9%@qHFRf?;FtMEkeHWP^(gEm z+GT3s&p_};n&?@wq`YgZP+K-;L6BEC^MXWpW)&p7gFZ0ZCne6MAjo*9AjpobAXpe( zxv2@=%-5G)SD{dE5FRM`i0>fLEOuJw*uV3C7*KFmc9JMx)HM*U5d~?^5k#XpLN?Dl z8oe@7AfFN&h|k!o{+1Tzva##)a*fX-C z@KUH9+IEtYc>Afq|v%4itN^2_%Az4K4Eo|DiO&CZp}Zmb~4 zZtPOxxLmf$oK(~x5~ZTrxmFQ_Z15_2i|%RK>z8~P*dPHZnrUtu0Vel@hX-XQB{d{Q zMb-EsjUqxNZv+1B+qcd?ZNZ=MdT!ku zs5}S~N!g_@Zr@2fM6Go`ZItf09E5}%S6_v~@X^QR^~)~rWC(+N{064h?(!4umi;r) z4{p;OBsJ7Trwqb9Vsmdzbjo1&%3NJ3LQo!dr8TFB1`0@t`YqxdZ{ktp0l{c?26xf^ z{g>AsjB8~4-M;fu456(XEU*yUF8=nv=;!;}Nk(MniPd~|e*T-6;=xrYl;^*Q@u8`o z4(E07OZs^!KM~GLdABqxMNuju^~Yp3!58ywL&zf5b#PNq!9Jg79lU+!HD%)zG%Xm! z73vLgnUJP?qJ*my%JpU`YEi5aG~Ye&LOp+@Cud9!%BFC9T_>3y)E`l+x7?W zNw=K~Zg28t8P|suVB^>sQoEhNZb9DJb@{e;>u<5S$l9CeZOCA|)?j;eKK5#xB7D+w zZHRkY1;qU*y6kWlCv10z!M1z$Z1U!Kku@7_Qt|X6P~1=DXF2GLs_o!*7nsNP!`D$y ztLrVM7vg@p6H7yINCp&eVOM)tXp@n*6WZm7KaJxiPK&Jl&@$<3D_afhEs@sz>HSd< zXJeY;mryGxf87mRv`N~DA_bc?HW?D%h|UspF-$lSjC^*V(DdP3v~Y_U8!}cqVIILm z-jktraGvJ_;MNbV%bWWfZiEPmv0bOd-%K5cCOP>`~0#FDv^6tObbCb2v=gB!UZ-?BvJ!KBI2`Q;ezX zEfk4N+6XC@Y0ME1DQ4~MDT23%DO8Njcx=tBK?|FTP6L!p2XP?l$K(scn_t2Et?lm5 z^pqDOY%x0@W3Jaia_uxtzx^k2yd7nQxVPBmV+a^PMwW->B?#uF1M!fzAY-ltF2_jf zsl~ev)5#uOq3CV(hnG>86Yyw{hhYX=)8knP^6;DJ01(gpMWRsbqKwnw$^dcrtH)u=)~II7C7ggh3|{gchJmEVQ(+| z#@cFYS77cjpWCt}9lwRXY`B;w5_A$vBp4-_2sXVsXMmCi_qMnoQ+yy=V!qr9CPpGQ z;d}ziEG6=z&a8o#+1itVqUr>P>LkdwLt$&~N zA(kR_yPej=4WxefiBxU@VJUMZvfXCdNodKO6kBFais!>QDYnd<6q{nMj(!f5_DZeV z5DmeQKYsI@zx?wrZs9(-!0*uMGw{vxT~zxwQFPj^Hx#aMPfa$9E$J=7_I&lm;Wr=R+bzBqRT2}i z0@>R&6uPlIJ%cO6PQ-SQ=l2?>^-d$~<7A#WHKt+S-7Ve5 z9HivroX={AhJ1?VTVfrt>tA^8wKN9lC=ON~Fv4#2GovxvKJ5n^VIO9J11JnEVvjS1 zKDm;Hu!k@57pX`>9bP1BMUcabxLmvuW<>mS=0$E#95#)hi<#;Rt0-09PiZqnvhx^a zmZxKi#_*ZtRuDKbqd(Dzm%eYO;+p55K25N%k+6%APT9T$9lTDTB>NI*@FKa{Dav9- z#7|LP#1-TlTl#L=;Wb1MW-{^zjK`2Ro!qk0SXYVMO;CT21V+F(M zwEg;P5YKb49BHwO18m*D@4kecjong^caseP0z{42l?3(%y6YfJ$A&hIumMsMS!SO) z6)S<_cO5os#{4WsCU58(y3T`}DDUPPfdRIeGgVJ(Y?7LzJ-|*|#6}pvsLx>r%1Z^h z(Br!(|6saePq|&;OS+k1)6m}koA01(=+JDw^weBec0sc3Hz#Sg9v|`NsYjIMp~F9< zy?I01e%Q#H9)HcPO51*9Xd%9*{>|s`4SJ;Wr_j^SP0{(h;;afv@&hSc5{A~*TVdz_ zu(zV^zm3edtUKciK3g=)F4NSuq05l-#+hnrur$?EMe}&Ey%ML?ozkT;bBtzxEBcJ@+M{j=EZyLFa zgQ^d~#L60qei%0>WV45-poc%8XcT{53Y(`nUmkQ!M)k1{Pw+x^rz##_Ue#R6?ta*Q z88v}tJs#m?Ec`S-FyLi_mDIcx6@gY;{2emrly+5?Ez*vs?`K&*%>MYrN02~Wn$^p1WD!OLryZ7( zhXXpVxvs-DJu+GfA1Da2|IwQKJQwZfzNt=6b=qky2?3xxj4Pk8^io+sQI>5~ z%$JxzQCmU-xPQFg{|ue|fDP-=q(@szq64qum*wxD!uSSVY9m}Ic(c{+Meg<)C2+`=G_zux;?jA3XcdT z;s>a~L>O&Xrw9u1uv26p@qw*P&<^{9eYk$^>C+!%8Jh0Aa@lDTdO%sQw~b8mHHYmpl(|lO z(k1bSufFrQzrDImo0z4i4NrdX!Ozfz?2fFy{aIR95@(ofh}VwZ=FK#I4%)MXTJ2bxLsMZSqe}X4qpIioq^8c zw@!*47fhF`Y3V+Y3F_s^+Sgc!J1PFQ{^VFQQZZOk)! z%&`^^(RXQ+x|H)3=aqbm8OD5A8Z~)vn-m8x%c$cYAKNbd$u%2U?8gndW3aNc6y_=-;kBy|klEM9v9HB!I2p&KJo-jlb%z3-0=oHE z=o_ZvP4&lvtyTh&=0?#WO+G84Nuw)7&~6puawRBfPL0dIUuS?-4NzLu0Hsw8P+Cbm zN~}&2m=a7>v9wzxfo8#msOb@e(V}%Cq83h6(<2zR1$#N6x3GGCj+pQ& zir^ya$`!G=sZ47|KB2f( zS)TBdNcxiAUbtD+9ClhM%?!;!gg2v|Q6T4x@A8aua(L$_NGlQc1ysz<>mX0NRPnm9T@z9Z ztH(~dWXg37UR&4TwRH_%TMJ$*R;7ljt%a(U3#c)>z_fA!Jad<2*~qbxQG?FbbSkVo zd9LMP*tiCHqFvL$usiwI@UgYW9}^Zj-oX|tZ>aM-0+&n7VERk zotOAlR38d8P&3`uAg{GVp2a#$4FOwIK-z5k5b~Ors$iGv z8pgFI#x<|cyj5L~r6{!dy!>d4_G`jc^I7}R$WmTSk1A)SYDmK980w5|b1 zYYAhES;4^3)dwSN?O`7*G$>f6w^npmNo-rw;pmKAo7QZuUvik!x`q#}g%1@AsKG*O z!9wE#@(J6uz@b>X3MDER;HSx`4Qg1?x`q|4B}^_@e?M}=b@EeeG?8GXn0hsQX)Syy zSQ770f{D0C6nl^GrLt_zXs6?RVXM^GUqDl-Dy{IPP`kD@psAHpf5DR2?BlBBDY6y5 zRF?HV*fy~9Q*T>?m0H0{;{x)`*a}UuJ4>fNyA*TW3Q8L1?wUnVQdyQ)zEfJ9Z&b~i z$brCd?)gHuR`5}*2gpT2!9;A{U?Pm_%etWjCVF(;&1E%C4h7b*hsIM z*|b88V(L>Y)h*L}^r@BegTYL_@uo7Zn0?zCZqyPtx@qFu%vy97jAqDeQ)yFN(Z zXzKTVjWqRpKN{yXx-{hVQBO;-Xe!f+hi+{R7ix(M-869ngNV@W_pbRU-s$#xpWf4i z+wXmPUclH<8#_v>pIthq(@F@_T#6hr))M)##{lE}t-OreTRDvw8wEsxqCG+GN(z>Q zdG+dv0fHX(#KeK3ifU-m8mF`E@{DG6{gN*?Yy}QAMOi<-kX=!>W~|jjB(=ni!cD}R zk#beMYrIqK8lKeF@T69FQn3a#@kgzklZfPr(8n80~_d%F6JXw=7#@WI32wE`Y~&tYw5R6$_}rO08g}aRK>q*jB=p z#e(CI>4tYmTS3v0(O@Db3&BKKTwT@ycmc}8>j1ohqef9SVNg-FWiV02IK>t4HFc^Ou(-dwq9h7I zdgni|5XBP8Zf3DpE}Rgol4E9Y?{Q55emy-^Kn?@k5IVXi>&-qT>lOFbo|5%C)EJpi z(!Bz_ZSTkmII@fB_T68wI=g+zuYcGOFS?hnx8yxpZ@}Qn6L;NIbQOv}x~G*lX;`Zo z+Y(c{r_}?ttzk_YVog)ZxL!|)X-d}hdcsZjWNU0ol<8gp-nLV+zLMUg_hkK4d{5R} z(haz&kw@TYD&Ks)?}m8M4^=p`cSHnMj38o1(NRH{XonMF`n`I3u%kzJ{F|CMqfHG@ z+7M3y8L-P)cKg>ciQ3DA@(p1d0!z_mAlej8RAX9-JPMaoGgO66#nwgysEW<(2khJ5 zg9$*tPTkAjz)~aK4Z5kJP@9?~beo#MrA-a6+6b_UwX2Y;V4@nc*WCEMA(k~Vd%hcJ zQ^T(|^d_)T?r!W-BveU|$W>9WX8S|5s+fDtnu<_WF?YW-j!qSXr$)IuOG*$_tVa@( z8s+XRNf>H&dLRH*%8sDZe0Dq`n`5vGZMRru+ZFQmZX0`LPQG|?BdqDz*+q_9Tx!{G zaNBZvD>!;E55>8x^A>+2lquG}H33eWngFMbai^=}$7#5S9lubeSnX=?(nj!7up~Dy zpFDl`;>UQ8UUU34yi{|$mu%zt(yWXdg0nJynHwFZ0+xcc@(bT^NxT9MmDJUsrmiMB zsq@iEGcDZtQ*W~}Zh(@^Hd(x@xjU+>i9+fm3Mts=&b(BG+-W-rK#FDTi4tY(+J*p9 zuy1vqBvHmrV+lU8t5kPe0IKslr7w*yP9yKjzCYiBxl3uN$ajA zoT#e_C+Z}e$kv97^{baf;`vKnz;*#6i&pe*4UITgs5B<=NiLS(L2#cZI!nY z9Yr0v=1f}ocCDFWYlu-t#3*VEp+~6(>5HpM4K(WHxLV3LeengjnK*1X31f#Na#`$Nnd=v&X2}x%QJV%H+{(wdtD78>S_>CCx|F1lfJlW3mHlx z>5H!ckK`nhzIa);CPH(jyKmB$d|^&U_-ASWJCh0lN=2tHUI#X55=mdYEL(E0V7<*B zv17Y^$*%_L2>&>dN!bbl)DZ!S&K)&@OP$f6>w*B`NDnUv2={~)t(k)f{mhr-dNwhj zPzvHf^C>QK+BN32BQ`Xj$SEe#NUyKW* z*4#9}WqQ07RT`Qf!Q#rq=5lG^nn7Jd z&ib0mntCB;sjbo%*Ju(S*B!3Bz^I+Y{?{&zIa()l_in% z#SM04VxuHpapn$8?ND>T{ zbWC5oviA&?V`zK9SsZJ7$vn-<6!CPcPrgvU7lajTBpzMCL_Ex5i41C8{Wnn6!~R=H zRj^DRU%^CdzaxP19v^$rroCU&-g9a17>CX%TaloiyC2VgK!jg2Y7De9R7cg57J zIj7gxaIaptSHQ9q0u^orcAs;_xGAFsj`cNhQGF1OT`YH74+i-dC#peYeGrjJN$hdw z+S?7-8bsDhWL2zl*92Gf5?mFj5YG#9DO{JUL1cZ+b>zJuvN_$Hd20ArFMMpS7}o>> z$08}%HEjDg!2X+W!x^+s@d|FYx)B^!lH~Q*oEC1;APmgjx!xl-rD?u|`~7+>V;lw$ z`Za9Vcv69vbbhv7|3CP(Ra#xhLBBaQ4r!M-1c?`o)gcJIBoPnr(8wDMeO=ZY1Ax|} z>y4o%1ZxOVEvcO!yMKorVbAUHdpMJ6FEYieU$4{f5QJHhd&OF9Afz=?DZkluAd)o_ zbh;D3DhgIC*@hZ)HPoQ1p$1(Ia;JE#|I!h^;L>9t$~9_cXE-8TBSB|4qFF^jKS+y$ z-oiyeo^5wF$JxRgujD=Meqz%co~Rzv@E~ec%$H}}m^mn-tC)MmYI_hmb+4+zrD8Q8 zKvk-NK&iXRcza%~QZf^PsG=IYjJ~Tzja4b6Yov@DFBHaA6y*8#xW9JP+$3nCbQXUQ z3T1HtgB=r-Pd=$MQ0Ug16YZT}p)=5#zSH?Xc>hfrG7_8>>qj-m_XZ(S!IEIos|&~Z zy@y>m5vb@4Dp)F}sPZXWU%`U*`uW}dYxshH=+jzjATkwIOmNltxcuQ4m=bs2flUD> zhIIe(Ah>FAPamFWgLUTN8BA0&NEK||t4+-WTyvCf&^WC-iq%AD4a&Wy%E)(-3=*Vu z&+>F1IeOw$?ylo1=(;B^*1jk17sAnDK}YriHQ?#_UWIFb)}TP^PPG+fO^G`T3&e_z zJKt=TWQ9I22egFD%@BmmD572v`-cm9Me;Ocr!e@sTyrjtw z5C*|cv7S|Prf;Z$PlLgy>uLZ<>EYEt4OAKgD#e;axKc1tjSm*e6fB8n2J1!vA7P5W|izxupz~~iP!|u9zhB%MeNb4gJ z+qtaI<4Y_Qz~&8V^|1FR3)6FvyDmBhGU9SUu*_bEz)nWbI>rX#|pT+ldf*+D>%DJ8X?sg{$Qt+URr0~|9 z8Vc!#U*uk6(+co}L(y#0Snn|ib@uj1|M1OzNW%j%SSA}Yn27BfOvI+$oiM*GzKRza z9#>z2-EOD=^C)_0jTJ>CK44+#Dlh=5?i|O9C6gAw~p@6Aq zpA*Y@LG31cY#U;L0#FR)672#rjv^BxuEE4{F8sA8X~N=L(7ht=Q~At!nHqAxy!Nc-V&$H3FE%jh5$% zM!3>gHaBo1T*)?+2RNwS9`b@Q`Y>IJ+b^g!7Ad=;}B0WErTLD1B|qDEj*Oi`gm z!9*2va3dTkSW=Cdg)Ie3sxh;iy*t@q2wd84_iFXSSJ7b)e@~NG4Pk0(2vb9Z3A5^= zwHFIOHw$Au+Aj7MMcFkH-4tu9itDUU68qp{Tgfd}Wm$H;6S6QydQ8z!j8kw`+X#2M zTL!z^3Gv)51T>XpdD9d#mawLY0;qi|f}n8u-vhRl*ry47T;tret&^=8z!DTSp$s>U zH|(8}CEV#=))WQxYm|yP1F_9OZ<)pGkhCkb>q0tMKtWs%@Ja0z>+-{WZlRs)w< za45s8rr5x!AyJKxs8~rxrLL<11Ta0k8W02(ER$^+Oe98yq58%9-`YHvhne80V7@#y z4^#Qpm{7P>Oc`ZVaEkK@Z#_(S)l?0HQB8{Q!f8^Z#%>a%G?_0?rC9_f&fc+xL^TqR zl(WvgrsB+8*9d@`%2#kx7NJ@RUz(G;Zybp=n#*Wz6tPls2Fa}^(L}j8C&I%fi(sD2 zW)=RErE*3>d$I^+BzR}L`n?5oFJ8iAzs(c4fE_R8mYza#cHjV~#cw~uTGeLxOrINn z<2Uw|Sv99UH@Pp->owQpTt}X)3VLzdpWvUG1r8}K`u~EZ@we^mI7Zh-4v*AuvlLFc-JC z#QCvD-QH3VOHffZUN8|GGA(z~m;QDy5Zc@?0bw2^R~syNu3tX8tx1+bTw2$n60`6743B^y&S zMYnXaY{Ovn*q&NI?&&qWWhvo2nmen{CLNYv#%bN#&otm_0L!uluq+9%WKAwwC4B^~ z-1Jo`HshQW8*toOu44#18Oyqkq1P12Y(^bU$jO|h-d4AJS<+GPZb_GUPyC*E$kgxI z=Z$NZ_oz!kAGf^r=|T8XSjVpW6Wpu4X=Zc%k`9M;OFUJ z@vyIzXqs4=LO6nn*nYu8JTC?l@yH4$;(-=S#4}|uQH_}ejRZ^bL$b8l^((#_IU`r}iY8kz3q?Z_?$Tcx#6rbuJ^PD}~r3k*q64)65qnqGRd_b*H@;CD>{@a}_EN%K#^f~vZA|q z#<`L~>8#Y0tg9LElzXy%8*xw8d)F!198?d>rv zcCg#@$%uan(Lrzvg zPGaL*KuRzXhTp}huMm0is8e4FL41>{M(yHbN)QZ^5xPZT;0VI$nsJ@?2qn4=Y)OQQ?4jD<(_QWbgVlM+N=qyOcCY-2d3t}ke>Y~AG z9(K_LaBM8udgZs!7|1+XoP z?Mfi%>o22`y8lIowADhUge&1c;u*#;&Z31_3oR}XcN{mq3=J^$P~m=l3f$onbbGsyC%3Z*EiNgbLOSIue(?7U0XRF z@7fB(=yt_4UTy5R7dY0NCpx%a_(pp@=a8uDT42p-_d|pg9}N|QC?By=%&U(zF`7Wu ze&9_u2>vlEE`Vlylqh@kHF24ltX-Q3nmI1X0bJT8y*aE~6O=JGZH^T_(-`~VOFzTE zq>c01A3?I?OlOypTiSN=M{~^S$<3P3%xe(seuFj4q4_R;qy@p6piI!MtOd}7Cb2bv zns7<5?Zqpv0c0Na%4>;ri76_lkPhePP*50?OtXCb>9arHri-=knUW+A#GoQPB1_r( z!5D2@MK^_dvKuTZ!ecR3&l-5M7I;(8sfO6BYfcrdyJFq)BM)>FXDNYdp=ZV|xvg#K(V z2C~B-+vOYhOP)<7erC7DM7?k9U>Xtuv%1IqYXLDO6?hbmBwe-c7z)Z}*U86%?$wOU zbw`--%RONaxzVgTU7*pj&VpX<2$Sg$ONWVewSD^Z1!Im0O04BZnz7MxVAq;}3pDdt zrYpX?HL;fUo9HdO?iGXF*^Nq&i{)e|hK+|>t<3SBgP{{RU(5NQ?FMdl2WrqSe}`M7 zobMIN5}Pauw?wCU;V!|F@TB7Edl9|zuHcfmw{2>t*K31e>iUtr!i z{dcEfC3?GsE8`b1^I5YQPuRg&P=h@~v&CO$>vH^Cm;DGq8Ob+Sj3|sq<%$u1nV0fr ziB_K?ZzOBXOL?-Bu$xE=_^~HhySlN_BKdlYVFJhex!AmEF!S`W&A@3TBSAJ>7-|7h zd04%NRIr%6k|bX?xhDQHtFHi;yP5I;o2#B%fCzB8TY%p_h}NiHHlW1XOy-+ox7Na3 z?9kAn{o+;Zxew^*`P9?e1D7Y?gH(r2XoJCF7lzqIym%u2%2 zP1xlLnB8s#W;fX5M!46!V{Scjd4kahN4$r9_Z{}PXO(ch_En9RmI}!;i%Y z9zH)iZV9{K*EZ~DKiAp2tqG!ODTt<2iv2E?gvs;bhFdU~N8NBM;AOsMR3?wUU?QGA zV~K>u1QYqCDArVq<`eW*Oc6FkZhvHm{ylHL)%1l-wy;QAh z>G0BD(V3brWA;Pu+MnR%hQxSV0y87Q?B!eGGW*S|Xcyb?9{-FbL3+()*AkYQGEENU zZYgADRC;=f~)Pre%GkY)otTE z)5FOb%@h_S-fdH4%qwWNWBZH$MWZc$p9U*|nHdp3WzLAOsbXy}OeUDfd%hWEym@9s zYUaxtJk!?TnYIScv=krXtBvuRB0gI>cjTpVmmpB%MLtZuhC*Syh|9$r>a9P$VKeIK zn+bWg67&+YKH(SZ>7~zY!AxN=r38NH2#vAuQX@ip+eRAavzyfNM!6LZb61>KEO*8I z2%Kn3qAuYYvd>#IZ(h)b-NR;YCbnCa^G3NP8Z)JXA9d;X$SOhLmSSRjuYpwVp&AWy zM=wGy(Au1W?f2or2iWM;;RsTWif)O$Km?UFbZh%c^ODWsdHiE`l>}kT4cufteNaqb=N4HC~Tc3f~+rLLv*b6M$Pm*0Va%EnS zZBfXPtbx-r`?b*o)TKe@wjasPZA1KHtS4ks!0(0-h_*N+(-wI{45Tc{OA4)(dBfCH z5~spV&*l5Uf=Hoe^&@kx4R#SZENUaih|KryhkyLvr`ReE$v8vk-Ag|-M}v%# zyWJ4*z;ChD+a2FPF7Ua#jXjS~m|;UlhoG5tvEj$~vH1>!EoC~nw^7uAQWpz!$KCJ> z{CJLD-Vo=20^P5$-ZPSD?^m(NfkX158{!<6Vd-;SjBbQ^1QYR?3MPW-E}n6N^Foh$ z#*F}uV3{(sVogHB40lz*Bxb+i`1R-CPJNc>MyaLkcemCi(t$oQowZ;Nl6og8K#T)< zp>tc@|H8ub?09?AKg+Ugu(=%l;1cazx$KB2uiQKWGUlY%K66qbgUGEc#r6<-QI=(Q zRF;)VFVx@UL=QE>XUT*TU1Fz94~utT@6G2gC!D+yhCz8{<4{=1ovtJCCFSZD43#^O za0`1nXM32TdGn`V!Pi94Ho__lp)dB&*=-MSd$yU%*KceDQ5cImAyXR&M~q#2PHwN} z&5t5C#3%6E=>{b}0jYUqW$?@k%J?~a?TfFWK6ZF9M*(l>yiT#)!Vp4^ed<8MDw>&c zc`0X)P|vRgM(fypigpc#J+*euTgZf2$*x&23)u6|L;n^grW7T$5i-%N-uuU|KE&qR zc}F_3gR-z`91hPe)0;g4wv|r42XZ3^cZTiTusQa+M$6AvAKUk|>)+JCiH+PD8}mMd zD9{H(vw>a4a&?p76A!ydp%wJAw*$VNX16FSpAt|N1mHE6;yHeR;&q=qoT{;yq~T{MJUIL*{a1 zyUj`Q%7LV^q3Es^F=uXbK@PFz5dcxHxXgt%QSnO&T_drrsA9PT2yK||0GMXdmI1Fe zriU>T`lcf-csVY~nhV%s>NI9}TtInKDw9aOca_BDopqW1;?MxpDr16Te# z@%Q0Q?OKb&fc>la^bBG4DML}-?OfsSx^h*G<6CyEc289ojSFWb;hjB*ihla-P6Tss3xPH?n zxAaUEM}wT%$JI>nx1EGm6ssw56@}8hHLRt+iV4r?$gqII&aX=RM7eY}h?b6g^CT%m zLZVmQnt^e|N0&vWZL{oBDSNrAwQkn%@L!g1qE0F`NwqMxBIW6`O2;;1ZeBdgZ^TCAur!PP-5z&rdL@`Hi zsc)l1+u#{5$0)QH7??ZDk1RVv63?T^?%yv>Wzp~Ul7M`nL`R2RfJ?Tve?%X!BJ2%6 zc3np1t(~xm)8dCOL52S9C-|A0Rlr1SG8IA*OvFPimirNq@v!%!U<$O-{_8KV ztsic_oBE2-iAfPR#Xb1~lLKto9Pub_zx(X>w; z7RlB0AVTZ#VXA}hhoFLP5NX!Ac?3IT9dq*tWXK|}rUg^DYVgc9nUOPvDxEV@xUl=_ zWir`qF+6u|LYf`LKK%Xj)vM@ahrhm;EHA+hS)=SYh$Bp85o%_S3<~w~vlMDFUoY3* zFaGA^?Yo$3&hHOR6s+@63|b;4rA6vo61kAu08(vgDWU_@B@z^v5%H5vYD^TAXFiHg zzzqqD{U`YS+CntU|70g2M8Igt07qdrDcA$clerXp&tbZq&;fIO_BNRX=8bds4<>GV zXIc&c>Iet+%Q1dO-toHOvjbS>5UIy z6I($Xj<4JXOkZ<#YEPg54+T%lFaI9Ba=%MahCLyI84*9qymr4z+6fJawKOpSpYQi` zzTOx!B5sm3mx%*BfW5;`uyfPxqGIll7wobvS3(U{=CKNY0vLF2&7U7Yfn4>{P6Jf@?IyvnBA9ixY0N#QLQ2Al?RkIwLCBuTA7=XR1XZ^o#RSeguv6N}H>mf)EgTwLL!f!dX5&FzRWeU(CxJV5W}V!Ay(L zw*J+dN^hhFpdI{Ymqxtw{ZpHeZBKCpv&}?t1@n3NCQlmWSx*~yo((X^ zph5CJuctjcnyS6o8WTvqGOwqtd^YvD|3NT4KJ95kkIMLt0l~bPqS%0$CdfAl^nQ!~ z;#8e7U+n4J0w%*9jbi7vBs>6tDo?MY2AXH5<`_fO{TeGiyQ1j0 zcr6S1d$N9#!}z!;_-4+_I}+$;%N0zdb`r*x(C4d) z4?ntz53=b$KLqIhVs(1uS@LuPZS*G<{8`S?Pj~O4WK`B(V_@$;vX>hz+T^nb+35Fn z5rr)w5B(qi{r}}0{k%7B^Iv2^@7%|2Gti}*7gH>b@HX~H<%C&pmv4g}QEUf+ z<{NMRI0c9gw3+`Ld7yE7^O?}n7O+E?f*J>T-apYBQxN?i+xzJrlpdZAw6ULT)Z|wO zdeVPSmIshFmCN+*==mraN}utchr{CO2j6%j1*s15NdEv=VFo>K0ns;q*-L-LAITdH zwB7&2blhQ;)gL~xAF0l?wKw&WZ!QK5PMG78!5GwkUfn%OIL7Ar|mTriRE z0<$$IFc)o9LUr?5*BF_QU05G)rM9ZR|XL(nd&fY7^`Rf*+=OG+_m z1IXROD-6PS;WByt9=}N=pE(-@<&|Z<*)X2h-^5794yIXMzvQFnLk-LuYGB?_1M`NO zxA6=V1Qa!faKBhrBN%w6r70RHtX0jhl@Os|RUV(J`-Q;6NJ&V<$5eue{8SxlJ(Tpg zw??AJ*KbJl_(YCGJpKppk#iUxfQlWGxqaW=NDfjw-W`yLr-NX7*K`MBmQf=S#SAB^ z=?=m*3-clZ+iH4&(9LoIZ2Xv2D5xpiRyFn)1{zaONNBPCfqg^WIJHCBSkPb0~ z&gM@(*}aJWV~}jFp{V$M&1hFP8lZA0sb;hrHa#;8q<=VQ5NT?xNU${8UkIH3{QMs% z=q;qQUl1(4{XPYB;P=i>_Bb)rq(n!jGOZbpavmzENzK5d_^EK6YfMTJRTB+Gu~bn_ zD7tDY(;Aaj@HE8m*4Vj%r=cWo=czi^_*#0`&@EFpcIe2}?e}i%Q~IW|v-qhXR|q8crkl{6g0lcx4qy!P7w`#iL!I zsbN`74a;ieG~8Tm^000MWX+}6CGXMHP^_kgVl_gsLY<}|kOeh=pj1pHp;N&`6|;L&L#>(`YSq+Gt44zT=50ffe!-PTBT%c5 zJ6nEUkl+>O69ntJH}bi@L=-Ekub{0$?tb@NRHMRAH^Q|FYSfJ38kW__yO&}EhFDgq zl>}I^2JEMSM(;WWtJ@9pG zP}A+GXtv@wbU6~pD&Zb<$4O1ao_HqKdufUi^gN|YcC+u`dI{ef(gtel&1zFcc=PS!;2zP}` zVjD*)#9QP@3LdbL6g6un0br40YPx{LWCe<;p=6CvvRL;NP!>$YT_BiKg%Nb19rJ5K0zF!TYGW6kaR8Nc+T40*)-5mcPWQsvJPj z2otlTU*3N;J2da%b{Yy*tr_hVQC=vC?Huds7UgwabKn-}N7o$78r-!M+-2mY-&`MM zoWEqGx)jP)mi6`vdhw+ou5tlv%d%|6guNu7g??3R86Kx0b1wyJ6$=oWRhDIl9aBb5 zlLiyj7`cXbEo*q!lJ1s{_Q9HftfibmEt`j(^jJ1i;$;o#TGo)Rr4Pl5hWIRNNY_$G z*RcFDZaljDOlLj&WewU|3fhWw;u_4g6wEa?qMJ4)WNR$z3@)%MRs#WF;{u#A!n=Y6 z@Hn3_nVf7bt8s7k_HE*4?_2!CK1HuBg>HH64k_kgS%b5dg0o_+C1@*{2$S~3_b&mm z9`^k;ky%UOTl?lST;^o&7-;ryVo0v8Cx!Z@Fs)#XyxF3&ukfv4Nj2VAxL2$sVqnoa z5f2L|@+;;iIJus!lioVtFNKF?8MUC?pdG9&57JF1n~~`-Vzlqe9b!SY`>-`%f78F%cCh+TOM4&L_F5YTJeYr7Qj(15sEggp+>73 zYP6~es#*y|igg45O6B_V_#exr%OLv|-O&ybS(>? zo%mnX92r~*8j5vb!9=k{hK#Oj1%RN3*9yXcf@Rjs(=~i(Rl|o?6?a$R-6S;*o6u2o zo+gqMO+;WRoQStJQ$xr8EnQLHuY@o~Qq=T?ns}&{#6v}Na|1m31bHPV2qVSREZZb1 zDo~67s7MO7e{66IjEWRf(*-0>YCwPwUL7#{Y;SLp#an*FXU{kT*PCnNq*g+xBK2qc zM^f-oEo7LrpsKlI(wmC##v``>T#DRcYk^mh6m0xRikMUPT0Ls{wF0Y|-nC1;YptHP#BU0%dr!-@*nCDQsX}!>`sg2L#uGvtk|4=+Qxl<_ACnep*RwBGaCg&jRc*Jg0pObw6`DGfiZi{hP`Cig2?hQhPAM)V~4GO zzr}kL`wd<+nQy~f6Tf=lJNO+k?$7UD!2yXwibz}6FsrpNt5{E<3$CKGl2NRy^9H0! z12ml6+bo=@X8IIH6>AcKRl!7lT8-98@KvxRKPu5{>{28Odab0yWw!(+I0fycBFL;eOe2B3br**$iYMy zu9pQt3$pa+f}j<)6e_b7ycA627rsFs)ylcOU`cFUdtu|$r@y^YxNn6s1&i@RHC&+z z8@Dx4RBa7~YHKJ|TSK8*iLsh8ko}u8QqA$cR%q2+G27f1YEV^MgQ{9VRdc%eCScz@ zmtx4ZsbN+vF{|mpBeo%U6&(u_@cC|#pqE!(pHm*va9zC_f!(t6gY%Hu5 zFXzfyF*gZn#pAbJz&&gGCgQ0&s0`26!9+Y^#}WxQD^|M(m$ee)RW9HGBi9@OYz2{( zm0=?Xo3qB+HDO<^gnbpOB5zlB|YcGeWo^%8z>KmhRrJEOW- z$DGjeyKVB+g1p9R?DDiMysJab`_tFKm5wmv3G1apI-%G~>{hIs3+xIesi` zXzSq>fP`fQ6%{MOjn5~%9?fh8ca81ix}Q+4`OK~0TLHql$^}#q%$A^6smi2PjZq~g zt6Y_uX}E@mwKeAjTRATnGUY~MvVw_tVlFk>riPepYEBbwYKYmU<}~4^2AXXoJ}cPL z72|&+&}?j;>?SrftZXB!Y+OK|U^art%ChlA*G8DwIA34M_=0*P5Nw>UuN(X0m`R0w zl?&i?^jJ2(vS=f`Yb@&&C(QL4oUnyv!QrRnRgNFn2;dqoQ1a86jc~28>>-6^Y=~%m z=kuq}uqJ5nIC;P-CA~Mf-w4BswQk_~@cwBb+K$yBbur z5maSYI!=B1^=+BAQB)O3QQ?6%6qFThc8bvoC*t8c2OcvQ+X%%9nuiDNR4d!Rxt6Y> zSeqJ(wW$f*+SFWxwW$GKn;PJ?q4=(7Ul8&YF;a~yuEAa#!CtXmC;V%!LPH+k0>2_D z*gppqtC=MnxD zOoaW`b&&zi_3$D?cvrAYF&kEgQ%7U^baHhg)GJsF@2RJXuz&N#)Qnk)1e+@+AKBRu z6N`EkA!D&75JVPCRDo4C!pi23tmQDJjl_lpb>s0HO!RO^r~zu5n)tDe0JXW^<2tEe zwMYtPDv=a5T|mfMpbJQ7*_>i-=m=Abq$rq&5lo6{|Kmri2Q=2GM~ z?gXpNrSN5l=e|3kcLLPr%J5q8$e&A*UzOAmO1pXHOf@>9W~=jmKo#lGLPuv9r+)7@ zW2f_fcmk2GG39g7fq2lvhvrFeMcy0_r3vMkTFF=d2<1rya6mB?6d>Cp)%8`s|rQ^8|p zS+@3A*4vVa`9?5o%^g1pMIY|^o;8xI1w%Ch$?>GSoLoSMJ9tX~4%X8xrvsSyQv_m1#}%hC z&6gE-HK!E28V1z~gNk_xyL9X7#c`F^!(Lq2QmjnDOTk2bPW|X&k_GzEet6}rf8HJ( zbV8MaS=V^Vn#ik8BCmq#`QaIzGYLC|6ZrufPUL6YS;G)~nwRoM#)MJ0F0PZXt5{ps z@TiVXBhKs2Gj32HZ`=8-{X%G7%3DvQFpcHutA;Oi!k3DssliHJO$b&;SgBNJqDdl{ zrw=-2C{omfbihyqU3LY#adrjMx$Fufjj|&IB-&vukb43}Q@!&a*U&qheKeezi3Wl7Q=j}s23$K&BWkV;H-qbe!HN0a za`7p|)H6p6bEpBX9wx2qb;|={)Af@>193ksrpBDRR1dE+YQm}dns6%IEko_--&*1Na?Q!XUZ7O0 z;fPLM<~IKd<~)Q6O+|eVF{*GP9>~FZ@SGh?B*PhleWvm}ifvYy5oGfQ)!^}4$eo96 zEO+5o^SNtO)NCbduvK4kn^rH_YQTJZ>^{fzmcOJ0w$Q3VJ}#T; zdWniseMt@CQK-IqZLym*y7#6Kl~pQg@-b4cMfh( zoO+-jrJ`VYC}PseBa9$YDN{O>2i?qzc7JhS@=MAG;zc;X*L1(ZBZfosT@>A=#wScP z)%f{7;empVFzp@&Jb@TiKf>3%!yYKg2q*SLNmC)0?oAXOLp6u+20MiJsP`R=4qcr0 z0POQ{a$!HQiBk^Y1rzazv)dY*#aF+N#qa7%e@(3|)F+s=A8}C=3Hu3_R%znVfZuTCsOOaTkKnejhhwj;j==-bRp|fD^kVCx(1vPiZi{P4w zCOjaeS@K24gYcQjZsVM>AeutH>=Ero|Gs_uCzuMswyl)>I-fxh&ED?k#qw%@_~-M# zz#n;iL6qi?|A5zC;Hkpy@Ke|?+fA@cY|<7!6HHX`{A)07b9Kgu4tm%bQ*cmp;0me< z){aeRi^v{k*$toItqa@ZpVHJLuj4BS@)#@#vfG;%BxVzB4FNf^)(8@vOJ>*Gg9d>* zg?cb_3#!BpQgiBG>Fr1-=;S9uZ4$q@A?0$*aqyIL#Z8`)q zNK{d*p$XcI+b=h?KpSm8XmUtKp{SyHeWQa=!idU6m#ydO%HB)nmoqJIhKbOYwAtJrKf;1=*UaX zaoxAKt^rwZpVv?r&HxRkTLYvGHw5SHlb$Yvd$E0n{yhv1unT)Jj$MaivwGV2Lfl*F zHiR0;+8sCc*gKsWgDhJqGMtden=3YHBN1CKSQ5;5_O(d=@I7`&!!`?+>5Uhzoi}7O z5#g3_B5&Prq8c+3lKK08qo3K8yeF*M_Upf2r$O*lw(DX4jTfL5R^mGd+g-{D-a(c} zWy~HFsv~N=m({2-HNlwqtZQsb;W@Ke6PcNp^46P|@}p9uvbieQ3($Ct-H5%2KIj#@ zWI74ADfS==v?*rljV6M*HH5UpI;4P?vA&7t;`utu+=6S(U9^B;)3n3}7fhANWn8=T?XzeOOVNfUbbV2oa>O7(|7$32dXv5}D=oQEJ zQ)j2EfzWA+vTW3{tc*zvhI!>LTVK?chv-BB|452gz?Wemu`&|{ZL1j>b2W%^MXP0XrwjI3|AzhCN9oV+ze8r@tdNVSaAm^@OLn&%ClX_R z6eDH&GJAvs_~{q4+|cm8!3$m&w#~;3w!J-Ng)CcdtZX9ekoA-8y?njVrexDuaOBHI zJ7Gbw?fxIs#R{ay*5-Wc`|Z*Kh_l`7Ww#dWb822ki=pXkqjPZLJQ`zjPsOpWp%G>i zDycDkbJW+q(|6FI*hC*aY3G8<%k+&#*0pm2Aw}GtQ22_}-cR$3|fEhDdX3+66X zo!32TNeY)K>MNFu)zw4-K)IQhfx^ zXz9rG#@3N(bkq@&DVAQgk832JILCEQZz_kHY@!}crrCV}KLx0K#Qb2d0m*owArdoI z7V~&+0pc;pWn==Uh6KpmRYQiE^cPlxN7rQ5Ljov`;F-JPJi3mkvJ^ipR*?Hr$Kd*I;A#9D5I}JvTn&77!#8 zn`Ma2Aj^Q?! zt*Ie8jS!u(GBvi9(3xTZf_lobym~3Nj0DY0d16CxGm}FN;$r20I)hRq4?5&=9e?C+qixn0ZQL zKrY#t(3h$wtY#u>YCKPAX7G07=?uxh6d&{LH#h9)qWMyTh-aK1Jb{H#|oM-3@UV zTcWab-VrwfUt$w8U8@uI%n~FMEC~bg>Y0IE9`?+FUt(nvhp~0v->rSoz?Z8+6HRD@ z!vu5Zfmg_#yeMHf6hSj}A!Oc_FDY{v5Pi^nB#mnl8AP7j_m4^Y5jTqygzC0-JJc^kWHe?h1nkIqqEOQA25TJN3KJa0Ex|U^wSJmS zQNwMP!fmDtNsq{uLTskRvn43LX0FOk{4qNV%9&QiHxS$TzPy+i6XO||(O7WW`zd&? zvbiY*<1{U{Cg)*x`SNiZV#08y)pq&vn)R+YPr?N?WYEs*D^>(uJYR<~KQe^dOskBs zl_zY0HqC1NDoQ#3biT{tZrltwH%6Ts6;?B?Np5SwHFE{HNkGDK#@BLYfW8!HWAR#c zbm~0C*q_($dGEUvbmN;P9djC%0&S)%iA6weZaL{RmoIx!(|6cl4UoR1_lZFV8H>(< z=`A0SVgnA{Cy0Q%{M_HpI6+DVp0yJ;{3q*h)<)Ow&W97I!LTzAH~YChM_m%JDJ8Jq zr9?a$=S!hP7?W2Y4nE_0a4Kg2%$GX?|J?sk)&MOz-)yqBaHnWA9XP`Uk;%7~$IYYCOn$~eKOp(HM*kfZl! z<65KR=Pf23Pr4`T2hu%RZ=!LBh7MioScG22vaa#jN(ujq6$B@ zG8l95ohzJJdenEWG`1yHI~j4IL`-4uL>|qKk3F65hhLz{`?R%K352mA!rlHYoGLi3 zU-@b37sOs5F(bvEEM`AqFY{Tm!AOC$m|RJ~3rV@k@Q6ELC~S9Me}+anJpJf)@7}Ny zurimK7^u|N8sZW%ro_5T7&C1eR)Sc{vSO^F;@+Xn+DPJCCQ8rUZVIHphuGB+d(0#@ zv7Qg5^7+z+5b0&^?jB`leH3}F)73AMvKzQ<5GZg5A- z7GH8e_)6#qRVO_JUkMZ;DP)(PC9kG%$V7WOmqzD~pksH{5upxfH?)7cFLPK44k@Tn z8d}_>-ib}MRgTJD$uXq!u5zMs8R)KvfS_W{>BrxJ39x0e6>5&jS_uI$N@5P(mdU5( zZ*lO$`BDj9v6}?X$8~KvjXA_3sV&Yp-Dy3n=upx(A--CChUh4}SR`F|2`N9ilE48q zwCwZa+?AX~I-e(Q_Mf9j%Mh}8AG#9o5u1yJeFPJEOQH!vvzpP6t1kuVc-WT;>xh*p z&?A`0Pm}Lqp<{9WcB*{4I{r5KN97)izd;ZSL^x4caGwGwSA;v}v-9gmk@|5i)DJe1 z`XEbr^N5tI0MCW7wjtIrn>E3Wc`3gOo0lqBBR331o=9G~VSK;|4(T)3emh1TUn}+|G0kXkLn~p{k|m@fBfT~T0(RO9wyqhTe$Vt3rXi?abX`we}1p1%@8F(>7R#69f_1H)-o7#L29O;KzW zVH2nB=csA(eQYJoFF1cHY{EQ=t#~Zx@MK$}#oG|ilLj5$!OYYC4|0UZfjm~N7A5MO zrBDhR$rdbTk3M&YPtL2{)Mx4R4)VhiWoJ?BJJ{X+GT`GJAh8NW!<^SQsM%tLji=pF zl`e`LR&;;|9+>sD(6#(bbw$T_Fk{+gvN?Votznv@2K)4AcSW$`ht>eLXl(3qD%;@X zXya8)pvYRVMQ9>i3&IE{!g#y5z%^*aqb_hw)Z)@g^W|Rmy=&nZO>1kT>yMw`y2YCC zMHV=Jb5eekg%$9FZa!;2=$?axtrMe9LUW$l-G_hkK+cT)DxSqDEm-jij!-L0Ot*uAX1-NY8@spDGkggr<(;$!40 z|C#vUS_s9hyPmVp1{OkLQ{G^i+ANm-Ox}7e2XpQ0S{Kc z>yHHU*Mcvsb?r(g+fw*Ha|F{`fAM>szj++n<@JCQu`o$j_WnZ)1$(>SBQ~9(J*Gn@YG$KVPEp zSHDNU#1d`0d+#UTOcORC4IHwv<(VyvEefPre38x+tche41u2>i@!*I3Uw(j0F%dS) zw0v3%#31#4kklh^Q7o0rGGD5n5XbrbEEmjEA*uK4EX6Y*Nx4d}CAJte{r-gItv#vS z?b1$gEuk5dT`rU(GNh{Mk>{GxgotH32#laI({)*Ej=GS{T$$bqM!7l{Mhs$XIOLj_LPR2@ zbjJfJRAvCe1Xop=&}7gZUFr91Io3aikRn;sES}BKeC{W4XxSF z&9Pdv#ns*6#LL6(PVmKid8W&)OhOsId-}mQKSDT2zs<9-zzbVS8QR|WFaOe7`4?$Y zCvfozj0r1QfYoCC9q z&O=zl4#>jX{i1mtqi8?8eQSl5_=B`Udd$@daM*X>1EU+zZSA4iwo4O!OEDAUwn(e$ zRstrpEu5hDHN_mg&!4Xe+hBkA>#KNBa(-^trK!B-TV0>w-kS4E%WTO%yqvb;Ek#CT zGbDf7N;t%Py9rfL!H<%?2rRs7muZ@9565@X2DYUT2uwfy@o!iY;-ZwaS86Hp;h&g_ zx2L~7{|$(y=btUbIpn$}N7l-@66*=W=@-!D^lfCc;mo+zjosPgyVzrOWaHju-5em) z$_1^>1^{w*gdg9b_gZj>m-Ryd5-8ZtM;fHtZqZB6H{qs)TR{b}M1l>1 ziLkA?__P+B;8CB}5-j-nduCa*M2}tUu1$w^TLA>7nXzr$=nN|i|MSf>+Jy^PtkVe{ z+cGsXTN7hZk;VNmgVhbvnCxkdbw%I)C<}TAQxxRUHLbwwIbQ~H+bx!Aiw2BkyZQGw zlN3<^{LV{#J4?|9^Bm_ju6r(;(15i3YdKRls4%8_H267|t--`)w~ueT!=XLf61gwm_)%I(v=Y={i;^vDWA@n}F{GNqud^*7UZ}qh+*qW!AN|86M0Dy^VXMai<;P;p}&j$po)1z`j``4_1TNFI`_}eDsQf+$k_~UUNQ#{k?7nN8$2>xX8pOPmTznc##B*OT5k}h8AA%md zh9jB(3ZI+Cn}0ctyMG;xZ;jml+e`1`GVm6>=3k+2n2uM~L5&_>;Soc+U1ydr@NS71 zVJ^4%eD-st8m-Wy`2?0(O5~g%)-u6FewQ3h#9lI360c!`iFmykOyno!Xq{^4Q%m$I zToM!CSe=MYg-fdG5rVIR>eciJ3cCr{sisE={tDG;Lnth$-bTn+u%wC}u@PbxEUBVL zY$R$YSW-og*f3{{O<^0NZecrB%n=)*aU7MEs&Q5c(HuB4dD;CCCPWL60s$HU#``OOPCw zu_3}Y^?SBZP-iw(Fj2+iy{UnHn;O`+k&vNSohW=L+D(WHh7;9H-hvE+b*kwR6j?OU z%_N{Gs7cMpC7?K=3569+{l3N@*Mt>qCYa)UyIdFg8{&&o>epDWCfI00#4*~9g+b2O z*D}1-S#V@95hLSZB5(YO)+Hzztuvjm3MZ=An{DXe)s*@*^ELs@u=;-JPG~~taz4{T zdIq^6fLTb9;x#rxGGjeJkY+GZ&E#yb^Xm8kG9PyQN;PM>g0>*hoZFtTBXk1{3jUHSl|m(OSR!>IDPm(4mb0&$28pi_5Y#R^%|MGqIjm zyk>5uh^qO1e`)5MohiC1oXC&aXd)kM6$MWl;%1j#SL%i}7;RI7(KZx{b?JDs)|7y( zV%MsP!`jFTp~eN|dpS0A+08x0YwRqDtf-8Tv9YWh%o3timgT`5n^`nyD>P5maIg&> zJDakBvzOqnakafHZ=7t7E{zu9U3bJgAzdX+Issf|S-+GD&L*93t#jDQ`nlJieq>L~ z04LI;!j6uhU429zs{0g?+SLH8PEMhPdRkWlusQ=+msLQA0I^3`0bLE1>T0M|M^p;o zSN2eJSRoA7F6^^t*?bPPqmZ(w?FmNRE1+U^+{uN;F{4uW**&fNK)okhF$s4yRI00? zQXNI6-KmP4XN$EfajR$-A(%C#RR&+3gsTO$@*AY70$eAr30~`Jcve@#v$`6d)e+CS zQ-8u(_hkLj`kt&G+xKMsih4@cbqGRK(H>XBtvWgjH>H*9MTD!OS`ovVD!^5nV&SG_ zy)u4*bx+ot^wl3?-*|lP1*FL@-0p}~&4_pd?w+9mS_JUeEs-2U(-ETj-WPvBc?dAO zMC4!to6f*=HCU>v!BSlfmg+2A?&|Lm4fn9WuK`e94S?z>Y%ba{2|!_4Fn6C~$MJKq zhkacQiRvV#ZeArqQcn>4mqoYfF<2MGP#1S|-HvxPB&rh$(DLaa-i&~08?R;HF zx%&|s&fWXba3a5aDymeocB;WrT}?nEdA--q1^nG!X;V2y=q zuv8~lN>s|%t#)$UFV-?OD5?__B`UdA5(rfg^iDL|_XRvj?yhBoI*Fjy*IRXVIuphu z+4*vLaGsVHB)@^5-mVetyGzu)llNWO(MY?t%nnNqTbw zTmpJanV$i40+wRkLI_hZQH>D|HC=r>0Mf(0UHDN@(VCf-?lFpXQQ}Ik0RVKrfvFD7 zcVXCcP`4MH6skl|TxmY*3Zm2tQ3~qg*S7Qe_>D@i75f^p)Yp)uz9uxPr$dUfHLsyg zeGPT$i8@8wxCTG-z&OOEw5qr7~{L37$OS`YW1~&Bs zo1#Xpp-z1bb?S*a&6c3#RagJ-1(9(5ro3RdK3ra>|cYT z`Wh6~3yLah<=4(rHEya zU2)#mjx}*DE~M#h)_!SRcp~4+eNvP8?o$w2UqhODAx*KtS3{k8qfXbw0a((*ivz(* zF-2=)n|eV^!IHdDqdrEWo$ToPqW$94-+>kw1!7!~-@~lCY^@B93GX zCgM>%-(odK0ecC7D&$^c?HX*=OZ-zoCAM}!u)@Ma4Xql8Rs}oYAeUjy)?=svRs%&t z0nE;gxIv^$w267WIeC1AD_h>qt>JFrcu$mG*u4-nr?My?2Z|$)-K)pHV9m@>x!v~ZsdO; zpcEZOHGB#0DW@0ahNk4f_|nC%51>Ym`t^aJQMh(&wxFUl1F$A|X{ZTa!Yc!*@k_4; z#vA({kgYLl5KUbg{)%Go3M$enW|bN`HPq0lp(d^g??2-HAHKmNT=wK zt3g|Xpsiw`t|3~3+z(bRfX9DXw#Mud991kp_*Kl>0*z1M!WDUyM$`$ z<9vP%yu!6QG-}KBU{jZ6d0>xaac}Z%HWWfNRZaUhS5@Iub1Cw3hCv{e-En!qsfY0= zYvtEk(Xn3>I5h~fiuG{2sqDI#z`4DL7ZZY}f@QK%hYjAE)Yw&i7G1eTNJhRgdr&|% zlFiqF4+5yh`FdF%tz}tnLZ_znmvh2=Z|NXtD%Kzp5LH&DW+f)1YFvPCaUPz*8r(Cf zYxi4_LbfRSgnORa8cz zsK&CcZ`VMoK_Jz*0M{XEj^_=+smcYgZO5{{whx$;VyHrH3W!P|)mWKZ%b2X+L6s&^ zll7DHJ=y5wZ29`(I+gG3-3KP?iN-xy9-M&zX9ch&gNfLr!9*CY=HpQ)0MuhX-qLu> zMZ1QusFqymiBgyqTxo&U`!EVp@rHahHL-Z5{_nuEF~zE_S^q&J*y& z3%yZX&Rv1lo!lQsS*XF|D9aN0!5cNh*HL?O7cd&>&FRA?Q`icybWlQd`aIv?7^c{|&*$cev zCANp_J336fW{Q5CUs*}ss!?xiAnUp;0G@hySs+nVu}SXn!+%ygwrHrNM!;1t5gRy| zsKU(63gE1ZaD=wL(mK^-p1PuRFw!v@s}<7m6HM=$u?Uhr!5ujvR9 zkQJ*60kJz;)o`$;hJ!UV9ISc#?sT*?of?dqQh``xN!kz=yVug*{!_BU_3Aa$fPmON zSwHNjWL+PufnW_muzLkm%;k-+ukGU5C$JiJ<@Sb4dyUrZ4Z+qjHDjC34o=m;H@zRy z(at06tGDGHwsEI5P{9!wqMYBOd5r`>C5U=W>Elc$$m?#_em?&jW+H0L-SriorUNg% zn(m+N3s?XEC@gS2(CwZ96BLtTi7}u`yA^I4u-DYt+ujb>TMSH`SJSZ>>+$d{E2(D2 zw(zaXx}gEcdUV~;)X=O(X;x@zQKl73#72!ZzQkk&6V;emiC3&nY-S3HwdLz2k_G)i zpjWUSepa>-i~gTaT)5n8h*wiXyc&7eW2_z$s3rBdog6_c2@op?vV}#^w@l5HEZ|FW z_xkdDEP`GQwq&f?1ar;jE`X~b=qKP(ha#M{IsWLEKgB$X4cYE`RV!>I2&+&i+bUT1 z8oSZu>7T+;V8G|=zeU9){Np}HLlH=|C0a`=Cu0+rm z?JYUoE94ZQoD;}T0UC{}YTH{cOLJxoacYD(#d@1?r(hziZLi)MWa(jVEum7uGG)Dk zA&IxXg6t(h0FRWF~FeLsIElEIBu_{WTM%5m& zF%&+HWS!w^m{X&{Q^f*gaxKb=Z9~hV8W`2oz^J9ds6thi6h#&65K9WDLZV^;6)W6j z4SHHCdMauaxAs!wsz&+dF1?h~e&d$$vNC{2`R4Awtiei4!b*3{q*!UBj8j}`(n!`T zes6NV#oOc9sIsF`zFr45U=NPh?C^5(-T$ZVO#3dWi8lV;Paz{RxS!s;UD-ido?(&A zK{+dk3d}I9Dxdwi>YUR_UDe&`I(er*2kzmnPAaLSD*1OMjScQmI36AzKkp(%n;Dxd zn!WK+_RqzODF65^%EsTu^nEE;+Yns7s9uG@p?D5b0nL|0hvp1%2u`ug$(1T|Fi}aE z$UF5VSLzbrOHiO&1ALi7gG!=7ZbjLOuAp5SEaZEL;1GrYRvdy^jvzDgp&>~)DTFUw zZ-T_AF^I@n4ewK&59N4Y3y?hFtt5=}!$)tS@p!HW6x>R>PI#?V8g#VOUE^Kd(p@}x zm!8laoMU{OC*^9k;Y$wPa^O;F;L=hxs?*GAzojQsrx~o|c|z}fTqEBAB~KkU8{c51 zr8;z9X)o?|ForKJRiirCz@?=plwyV~Ej^*@$eHj4F)dZ274unMKfwXpQ-`*E%A=Sh ztEHlKFKL6PiZ-~(QMBPsOHb@#G%!a1m!61(za$a`=ZZHMvfeo!PFSHxis4}xfkA1I zlrL=LWL1?WtIAmujC@^B06^Wmp2$gRx4XH90E?FwG{nBbk} zE=Cbn&b$8J7x=0C!<`>IdILv1N`tSQ`sm5)Zh21F)^KaN5jixg)Mo?}MdvKcH0d%$ z<6g3{>-9xe2`S}_jg&H@rdSE79J}e9sYKDr=`KrYLY0tG@6e5u>OKvl5>h!KQ}ZZO zwCZyWpp2AOQ-ww&rORT=$o*nF$pXWaEwJZ2AqZ@dfjnHVlf%T-#3@nkvRROEcO8k9 zVM^<@SB5Nko=_9X=&Lo+=6VgTrF?*vqZf|t`&PP7OKuxNg{G-Y;B%exZ0{Z)o=VPKB8Bwhwu;ewTkFi64;emKB|?LbcAsh=w6SYBmPlYG-4he}mBRI0lDGAi7XmqVp0L#397 zr-4xkLFJy^v&3XAB}(T7?AqWU+=QWnAymwI5rdnI;P}}W^s=E$zL8@tms-`Do%FIY z1}h~5)j|kHNeHs_)-*Nv$ds$Rw4p|NE*Dsi$o+rkWV#p=>B!wg3j&Q zrfZ}J?YTM9=Nz!Bat_#4HqQv-2VYA1=7a^_p?p=$6jyi#{Kx^kWm%qjNm)aEd_8Qy zkMp4%TN?Z`ZORb4C+X6KqazId}L6B6i{r(d~iTxw2 zSCM-?gkRqgNRBIfx+D_io`i6pLMALR|RXf?XiFWeroemf^zKurBNV*KIUUqCUdFS;W+2v08Ai>83H@iwqC;`wEZ|df!}Yi^%tsg zUdqH^Z!?!%8!e5DP=U`PnjrZf!hZG|>~U`H=3uY6k-tukuddeBhAK@*M|3^4;Yn#( z4y#ky=n(3hvvD=CrL@niOe+sraA{Q)j3DvYLmN^Y`;laO3SVpS@o-d zPQKBZ1EA_009Bg|M+Hp4hyOc3v$+kiFXOrHJHz>p}NjVCaNi!=p6xPvX1>3Od~HkhA+q5f!aVI zUyBF`B}>m(q1J{8IaSg#(Yf-f2@$y;Vn6CrkI>Py$6%L`EK(COT9egobxl_9N7iJu zbDhe@@k7)oDX87*)33;C{)bQC0p-ky3oVG~fS0UJTWP+m90XJo0$M0n+r&Gn2>47J zMgxR^&%eYKel4j%Te#o&YPcrCv!JQA$y%j)g3ZasM6jC9nXSocLrrDlNF#K!*lJ=m z^Q|UCvs{p#Ez44Rp2R^d?l!{fn()iCjWAoB{e)js160g4XUO)a7ykQ^)Q13xyX9k2 zdQGHd_Yh;T!G>3EOz$OwEbR4bLsxu0EeEsI2D3P8!i>5`P$bpd96=3Jan_j=x(r-7 zA6bw$pUsa?zjzd4uK7^hl9YCJUN>U+im$1}TD&zG?y}GbLtLEt=&6UX+F|`N_9Ffo z7k&n}kYMcY9KKSU`?Z&f)=n|0DI0UCIPD8faiKkpAu6suZ46qOSD-PczLuoeK28O+ zr(A9u&pJ{-o4zp_I!15^W27 zm1ztNF(t+gWJ7s4$r9N(ro=dT8bTk*617eK{*e}q_rNv8H?+*T$y?QAJ!d9@@z$4y zF7n}ew;}ntF7`S1&XCF;SWaFQg&|2)ie+zboKZ>!l z$;p#x4CU}mp`2`)M$pG4b~ea?xixk+IVmuWp&j;!AhP*{|DAo0)fN6xgp%)9grro#TOpvx*c~-n1|OejKr0j z!!W@QZ=J+K+z;ghznn~#CMT1nA(Vo_QhWobEvbFQ{*5ofx`H5zyXD5Gdfxaqgjn1) zv7=pRgyAboQk)&?8^R`s#rY8LESwMV6m~wOU9Y!O4SR9c#5P~*V-rMOBg3E=DjKda z9D-;Jej&j)qz!K&DK3sDa6*vnNrI|gHXunMB&cSv(Tt#OuU_Zefj^I;@e3b~xeYqX zV4`z-**GMqnvs}ty13TR6(pNJk{I?E1RHSEBldprO=(M1WvMBxp(>~HZMdu!rETjc z@Q)DhT9c=e5KI~+E>BuYOkoA%XG~fHQ?{VU$Nd*Cy^3+Z4;%N^kd)!{>?i0sfaFtw z2F3eL+MK+T*02@V^lgc=I2}bR%;ge_TTqo-LvfpvXVMaEaVyF*%Go7)c6}qUQ5Nrl z{m&Tn;TR)Z$}^b?ifN-P&oQSaJmq{35ucfA71bv`PNRf*Nlu`Pj{X$7&(7S?z|XPZN9TFP2Us&s>G3D!&trH-Vmm8q=i6YmtI z9F=5=+J;j>R#Q()?CRuH@veMYVmVT0`*60nB{VZFG`5GhOtM71G?@s-ch@a}n2Dg) zQ3t}Qj)<;haAM|A(y{yX3lAW0KDrdRZ%f%HZ-4g*@bMOFl=CO11Bz*6p#{!!*eYBf>0pq0m;1S%5_;aGcHSM z11?G#3^Oy9$#gcsW!j$TiY$hi%A$YctkM_C+=Y7|s#n2F4})aehJAQT*)GeiTAg*= zDn0SIYPH+ci7j_9p$Ghgu>Gy~?uwZ;O+?xCp--O6X zS7}YUinAunrEAc|d7ztvZqCKUoxv+EMLWVQ=xR?)?1;Mj;$yrqD6j(_POwn-_i=P| zgj|f&w^2&_KeqyUikYI70(xe-i`HJy6s@$@UeH~%c8ZHd6L>LFv2B#yVx*#)l-lA| zlPHWSS}CCIW~7t?+E5rKdk~Xth2snRN_;^$u-j3N%W`oE}@bgieeU)l2Ba2*zF^R+7?=a#>7qT(7pqq{JA)Iy$bCEKyG$IN?L{ zE}SqrZ$QwITM~yu=xt&m$=Y+K4FM6VfgTO7)RJ4#<14D+*i}xS?6dl(f zB*hoFo#7zz4e-t87x1I-rE=y#GKhz8DMV*dRu)Uu(~UbIrgV3Pe4IHYf@NQS{oOCc z%(3;_R6oJ5BwWi*69ZFj%-Ugj5wo#6laeCiMP6MWc6dydm`5}+g5=Je{W&(@|Mru6 zs3q=WJBvVE6T*TJ-$VKhf!DhU7r6#sz>k}QZ_Wp!x}0p2PV*7(ts5P&5~LyQPH)H% zhJoM&wx>Az374bb#BpAFdU!g3`6lP76_&!OV=T9Dj0hp2c2|;PNt=+M(Szk z9h-E~O0snAG@YgQL{k!__c;WmCxS99U0l`Zqk7^fP#^BeyiCwMv8T&biqAfJ2`&j6 z54nyvZjgJ*UU3wv7cWzN!#L?FlO-w0v2V6j5zzLO!$OUcyM}Qc^xeyS>pkIm`8H+M_^#CTTI`;%3Kti*zCAIOH?@OCvt|2_2@!9i>Itqqjb9)B z_LF;;4S2j-x+k&%<9I@7Pw6P`hxCfY{SfBcCGPfsE4Rko-kuWjwN9DM8$x>mF5cD= zd2v6ar=I&Eeq(Oa=f4SVgFuW-V~j0zK;y$G$mUE4YL}TTk%ONt5swB;+UH=G-e8yI zPN1}usmh;+PN1|D%swoa^r?i{t%knXwy6@?P*yPZzacJ(s?&y|Znbd5SYN5hwo25_ z;Vsb~o^_HCGt_VVN%kVL3ysSFOH&qgG&IFl9UEf^%5q~YK`~WB<4qVE=4(ij)jRCJ zz!;G%8u?pHMDFQ^lS_kD+vA3|H%TbANvuHHL{K1P1^4DO&{SC!O$|gjbmK`Gxp-YR z3~@8t8;)|uug8C*{j#OR9`Pi-64HNrLr{h$*ndD*$2_av;FH;MBVFzdI5FkM^r)V| z$(!TggDqgUuto0;H5m@ttb?pE16Jq_FY(3KoZ~+|-H76i3v$ElHNFCt+#FvCn#gRB zegEd=@9Gc2JTR2R*8zr^I3Ln`IIYaTqB86Yo#k=>b3UYJ--0si8fDVS8;mn@>9GJk zcHw54o(Rf(aYRtGNVEmI3P#MR?%O9x^U=ng4v=1&ZygMk&ZO^P=r z;VVc#*ed5ZSGfE)T>-D-wxSO9XUFZYUPL6r-{P5^fk*{%0?s$-$%b}|eywpaRHVr` z39B@jlZ}@+4Rq$_9h8eVpXWE%`zP_Yh;s*m70?pg|B;ZAAJUF;Fo$l05exMlDx|>* z$-exDaYPStk@NR0LL=mGvw6i%vLuDy7IY^O|s*!E9B*jJ{si>F15+oIC)Er{gRyy-z zUO>6Kc>%o;Fx?nC$Yghrx=M=YhrIaPlz&A81RoTS8D^i(=ulcgrU=8(kObLi?6z`B zMI4&EtAh{h!`go!hJZwf;k@O?zfX8iDzClbwr(Jd@a#jBC8;N}^}$l_fS)6O9SliW zZj&Yn)TSY}$)s(}wkht?27?kz-72V=gpFY8k@SnHxDJ#OZxEGyb-&M zU7Axl_HcdsM>(G)rWxvY{~5|QjA2;`Ll+W)yxL0$Dz7J`c(MJ&70^XXP0@=xl;>K< zq(hS4b_9&$3Dqiul&^C)PrK z^FSw2AiXfLh%s0({5?8%LJg=I;e8|DLqC=;LkW!jc(dYQaxEOYLPH*=rAHV#P_D() zxj?trYlI;FasU3SzyH+_rQd?}>4XY;@hBTW1g_2gBLpt=FWyF8-y9D_BL0IF)dn`$ zW69EQUz4YzAiKW<#EQe;A%ggNI^o{Mc&ue07=ho2DTgQCLZMPQ41G`vwAO5^RRvNei-U?%CoqntgG!mgm<_H%(syh(geX^RG<84+u<@c2hCR$T z4ShWNIuy(^YyOF74Fe?R#km4C*{uB_I0O@FAdwa{_UoU;7Wp9CTJ+%&9wZ$9LG##n z2XV;gZAk&`A$cmWBgO{v5+WeZ^Ul*eW6Iglj5=bE8+0KDT#gM^o^pyr)>Q{ggg}am z4KoZL{}7D*r&$Ju$ZS(Xuew?O%lu`cb0iuEs`r zJ5mJ5>S_2ogycAkTof$Y$PN49BeRe-W`yMN_%Y(ATt6&tKKJ7y53<^f_r7@yyV5P) z!w(TQoiF?l_3*{XVng`D{m^)G5}v>L<|I7B*7CK^@DJxh+JtBwW{JLx_w6uOh=oiA zUx-v2xk!Oy?=((gRsHu&k zTSB3WPzGYd(0%X~+AFSCEeuR{#PqINAmK5(S)O6KT83JXH5lW30Oj;O95bTR`Mw<4 zH^uR0V1{iwWXGhOVq=JgyrW#mAc8FWJv%({be z$N~ZpJnTRru5C45fe@}p!0&nfOdB5FheDR8(DY8;aJ2$tc?xZ@E$PoUL2N%3{SX~T zSWs*TYfK$122G66L^dGn*iNDXR>)bKGovDg@}u_VP-TGGy#WudEi zPElDSDJ!t$SD6UtJ6%@L9y?AYl`sYN6iUz(7e)b=uPikkxZ}+XP*D51S>q~MZHlRy zUyU|HP$C5ixkf><8TW^8FwE+(cZFvn!I^>ZZ7h_{A}`>MSlFK(-}e5a&6p*GHnC~? z@=XlD{r^FJ`y4#q`0BHOq^cf%NHX(=%{v(W;*=24V!VTJl$CP|`^}@L@FGXBAl`gl z4k_@jT_zmHW_jDCfo60)i9WP6Nu92&fL zJ)pzGW%sC6&z=tk2*^fy=-z{52z`agi*PyoLQ@G0A?HIpnVb*7ZkNzk07Kl0Ukh`K zhP;XwlNWL}Y=_?1o_-w0ok0-W4LWKkZ~SEebQ<1>f@%h#_43MRxBc_^{c-c`y(q?0 zXi-d?2_;Qcd_ES*bBK$4DvI$8nkn+nQI@TeXf@9uD>wrEqA<*1rgqgJJ$shB(!hm1 zypen~sfTwvXKr-IcSD0rZpE^mI=5nC#u$VQWJr|9#yK_^I^qLm_{f!N#V+if3X@wQ zA1^*MFG3!Ja{%c%6k|dr{3cr{T`n6*_HWzfTMS?HSbzNacvBn-Wgo{QDF$?tRxxAC z7y}JfDCEP<``zY;pMDo?V}Qa;vt#fx$rLlq4%^nkV1=3SF&@q-3PToTvDhQ5_Z{A$ z?J=OvTgez<3|z40$AbZ47Usalu*Ics+u_O2;UOgkhkay0sTA*hgfW7p&G}YXS(3}B zjxpAp)+l7@wcFj10rMRMVlt6`7M8=VTp7O5l+ z6VQD5!7I=x1X5f>CIH0EA=7{e`SiLF@P32UmpI&g_p>mcEr^)P{wB(5_xL5;AA#5580~=;^`%5fN zuOa>{&Y}7-G{h+0_c26K8U=pc{Tw!He}g_5PVdLEv;pudnUn}m#qMd0ZpdO|6JE&{ zltV$C9A0!5#1(W~<5Z!fiHFi*qB&}o^!T9+d-H;FCEzwUUZx}F+dY5fFG4a&O;5A66eBHSEQI#&AamHIT%8JiLzWmn6FgDN?b{T-GUi%0Y)?i_32MQe=Z8E)6`87upi! zc5Q8XWzpY2t+)ekqD!!v=jj?J2m(3KUYhe!oVpBBRqKzg>HZ~ zHyvDiNO#2^O`8Z+K}qS%UHjY1UnCbPq|riLTkF9)*X9ox)-tri84d_)cZGPi>z_YI zwM(hnuqY^rAv}QK=I8%-O}Z)UVoP%-1C71D^+&DHKw{w;+lJs>8iXJh^2r?B$sj=M z&Yh3{c8I-2EFl$dyh{6kqb^i;0Mva^QIgQ)@ z9gW9M?tbv(KR+Le5*+7$VQh$wqw2S3n3WnXVd|Yf(*O@7%V*hj9y{n4Ytm9Ge@~=c`GG-*rU-ns+NfDh<+e*12X{wJ0%QZ#oR( zySLIHy|gSF(y4e(jL!jkrO7_>sb_MKoDcE*bw0!|vYZdCnO&LEBq=#7U`L*`zoCZC z3UcgkU}91$LWTvsS?kv)ypfsp4ueL0EK72Nj(R8C_Zq#7vFK@X@6$ z{4Q+aD?>?L=B*4abv~5g)hl7Cmjy%xPI~JCq9SDK93~avQ};tWd7WL7F^emMRZoDg zo94ey1F_4ymvA+GQRSf2%A{-g+F`P{oDXGq?#diQOEjM6Z$gkgbV4x4!j#nI9ZLqp z`MT4vIOjtde!4PHZn?*DKwOmr;;I}FSDC|W&K~1YkZ63)+|Ge-l|I7eWrLMD&gN@; z4t%T30k`EIqtk8Pxsn6iDmw2buhz+h#ypYAKsF<&e62a@wk$|6?Q6WcL*2#U!He+T z@;*4cKdlI$B?a{yP73M(e66r3!V`Gqs%p=1&N+OnGD&H^fhd>%T$cr)UNibF zvI@hC)+4&)SRfNBzRIl#bR`8d0C;5*(|k=gl*{>0jyZFZN zONc8~Iwi6t1@+wYy0jeXRhf)7->@+F%lQzmteg+&RaUacycQ<#l`1g@c2xwsCZ)&Y z+m%Uj^YwP69p%D#M=D{iWa-+f?$Y%fPL*!BmSj0e%2SV|mgDYq zL{-V733(|M5v@tN%C+_~%2%Om$gJSq3Z zH$TIA5_wR?{tehQBwSU7J^7}*$#HKYWMG9US6y+?P&1p)H4XzD}a+O}^(5Twb zsDw%x7OqV;pR*kqfVs|rRdo)ms!jHv>9IIOYLoP51eLW7lu8KlLfHtas&hb8Z9tSM zUF*y9)@M}%pAw~KERkw+u+XVeMqsTClv-|w0Z~R!8Oy+@grHs!-;pyD!DDViI&N(U zldmfbZHfgOS6myyWCV4q*o+B5?Q)k}rET?VMDh9w#EJeh$(;`Q>oq5BA>i-ZzaZ*k zm2kev0f;wzQlzMJcu}3hi|QO+R0}VKxEin=_HV(M6zXxe@G*okeTU?Cw-;Gb4cBZxIEIzEC+%Vp_B@3NFOgg%oV2Feq%}>=r#dYMC)FmK$u|;n(wb_6meNhhvHxm*lN#y< zDy5aluy&Kfl^Vm9rdq`oGzKTR4A;=f(DV#%3{greqhsn?xf!-?3_nUM!&5pf%eI}$ z#`)D4c$Ai9U%iy!7TsfGK+@6^F(8elCRF3GlfkKTxtj|CEoBf1eYd)@#RuODN9K~y%e4Z#+OSC z-L9P!m1b75NevJqgmxYQ6_a<0sp9M;s(dA>>GRd?p_r6z|jHN=-DDk*yqQ%SKLu6^vOR76_Xi`HoX;Qkffk{=GePzB2ugn`tQd)i!-_Vh~pWMHXM1&I< z0MlLwlbY1%)Ff(m_}(S% z&dag4#!^cK=TN9drzI^GtX`ik%4EE&X*6}Bg4Hn5oQY&qm+Ca6MHw{}z4_{m&OKTz zIA=Aa=@AvITCQOc$*7iVNJKKaoE*~_CUn?*j?5zYmXX}|e7YaTt5X33Ua+OnO}_fC=5aR>;9aZ4Mr4bMR10c*xr&IjE>5ROGHHCrC3q z@?C4%5=nBar{}Ntp&Y2x=0K&E(vsZjW$c?;;!l|4a;L3)6+yyjU%ZBYgfC6BbP#S$ zR@;9~R&SoxWR0Ijrtk8S>3Usmn?s-49QxE!=2HTzwwgG(_gOgzswD)q(z`^S=46LB z8VES8$=+aL;!Shqsu8I%)7?~e6Kk3)G<>4HXfFJ3vn{-lrllRs8vUB%h~KMCx@vstScxJe$ZMm4GALQ2QAB!*JbT4=P+EC1Hn3T z7|y94n>{o;{Gi%z2v`saKg4ZMmvd)RNBC>{5!KF+u266IK`XmvSgmZ1VNDuS&>{Sw zmGRHs&Je9oT=+pN&erpp+~BNGZumhdZYWj|2|p-h2wu%t&v2?xMEF71yJkHt%hn6U zg&(wz?0bVq_(7MejrMTj-DKS`zOU$rM9FQp$aX$fa?$+x2grsGP;_)KZtSOhc=yo} zahj|55bMnWO`Qczo&|bGxXJ6jg*#mWc?YI+Yas7(kWxoT$*m~wS>)D*xj*p}DxEnF zHz$3*yCLLVbOf2aiW%DEsfJ$xS5bmh?uSfD0LEj{zWbq2ToeJz#qXhZ23Glcf~b{SD_&|l zYhp+4e8^Zg*?ykC&I))H=X{7~vF{;^wNg#dNmpJR)9EZMc_>){yKQF+jMl`hw4SGYjrdkc*Q-ysF-Rdpfn)Iu#z!-TV8=Xg=leg8==Np~Q zqqlS`sg;@1Nm(|se3-G=JOi!z$KWRMxA-~9-sW*l%8fz3HwbHLQZ1|9_481mdKDEP zisuks!+mHyF{`xfJ_z~FNrc?Ra zk>Ou^%C1VP#PiPC;EV{`6Xo*SgK*cR9r3_TpM$vi9K_XAYSly~W$m1#s-6f~vUKBI zU1KSIJWuPMW8oa$)f?XB8-SE!?o>J3A&*2*>f%4bhPSV?8{q9`fI(R5bpc(ZPA@~KwEwLOz+=vg`uj2H3t z1fy_FVxmF(R!(miRDlHm-54yCL4|okpL`a{0Z_dGP|liQ(rcIpT)H{T8@A-EQ`^t$ zKlDL7_m+Yn6W$YTnqOfpD`#NfuqC%cIbBMLT9GBNv?i<9wR5s+wi~?U>rO+MoDcB~ zbv~pwrgKeE-ATz%UL)(%cX!t+&}*kPS?zAU%H%+&J||VGC;GI~6oO7`vf9XVvTEq* zQ+jJ%Z<3@A*evy!RD1mUgsaI9n|HA(3Rjc%lqZE>uZe5JI>d8qOF(I^XVgf}0ZP3E zO0ET>$)sBAD9WK)YlNP<>z%4k_^piwqDgaVs8MEerB++Www)EUfNCFc4{0JYJeR7<^Q~q&>cGe?l19f++8b-=kkc(%)dxqFf$!$U#X%4oVsXC0zpl zfb^$Z1OJed{WMr~oXUD=+{lh^i?PL(X3{qb@~6K-1UXyQxDQrc+VCKXmVrIH8=wR-5i`X z1)?hw`f!cHK+wlKt8(&|29vks>j8s=oDZqlw%Bep(H3RYG$WaKzr|oMkWWDkgO&=` z?1yBO@igio8Kt1UqMKxNIm-Ewj4nqlJ4i;Cv()jroTZM}GOFXfkY~`~W=TN}Y!+p5 z){L6iEEcSmh>J2ymQcN{b9@%dQIPA4Vf?v|%MZdJ3*wy;S5xV(L;QB5mK(!E zJR<=QX*am07{vAJ+##-f;cBx{x^jz7!{H%qZHG!~ruyqp(ah71Tda*1Xlt*xfDnm8 z{5A_`V3Be|xi=1#w4E2k!(2n@+QL33fQNGIOj$Y(#cs2+!6Lp1Y7oiv+Vik$D>sIW zI4f{W>45i9hhs`B+Yu;P=+WROQ97Ht=<%g(!L3Di{ULmd1+v=03q@L%3wQ^!<1e4NvGf{1Gw9Xr>H8Q*MaRjH#-_n5v53vq_!p%rUPyN@m+h=B1<^@Axs; zCRu@|HLz4#R?pan6Jd#2VJc~QGh412Vw&RIoiR4RWIPy$_juoVd zLwPxq&U!#*)_CXcO3!M{Bd@I|=fVRbFE@15YfcAc1xpRM^@p>$iY?Ek5jyV}CC2kHAbuahuz=$~up$x)QZVX|v zjfY9ccRG+|gAe87f0U*4<)6XYCdbB>7>9)cO$kAsuw#w3UgJm2aD=9+B{`NfsWnS# zu;~_CRTy@Z5Y&+`Ot0`m=+J^lk#qDH8Cf)CVW`o3R}_Sag1+j9IJOFN@G8+88Kx^t zGR=~{Uegf{!oWg8^0E7tei)}iVJ;4`4a2%649miRpme!9BF1SblVVrK+S!ZhhHsUW znP8LlgjDjfFpx)k{EKDxBPfR~+iEXdw*pHKKZKiIA)B$6D01*lVepPCvJ}F3E>XF_ z$*WtVazO~kJ2eU9V6kPAs~-g`8-(L*k@lC#(zO+ng4%>hL7r$neGS5KKBRr;R3(JB zF`uw3awtxbLvaeCI8&{nVNDv0v&~+^64*(qp$+RDy_6x7DxCn%RFG^$NiwoHfiuxb z(emmjynQVTA~tJ9Ylk|OjYc6*lN8i$H7S_37@8DEsmYO<&Df1FxG;!jwZrtxoT^N= zFmPr~6N6<|#d)#0Dz2?3Z)>5d&6ro+LO^DH92q_{TYBW)_^1_~b)N0?kS1N?dq+zA z4{|2kXuli3M-Ev%6=y^b$f*r?vq4}d9 z4uAh5#B3roNkKNDufK@Xc>Bu$8)r>CPn{3(Y;``wYgy+*+6Sk)nE+2xP|wz+pq{F3 z8{}A3sJ^mb; z&*3tQXVKMhcTDL*&~vKspfuLA^lvZh8u{Mm31KW;w1TeH6Ld+2=i^ktxP3=fi3*2! zXT9&=L-<74++kHJF+F@5r9`rXl9izPgs66jxTi**3EOkL=_c7t`KQ-^^&?0~72zc` z-qVuQRMU{1joP(|oO20psi*?iT*9l6oQGh%OW+0yy*Y3LRA$s^n2xV?2JW1{BCx@smMR&pKgV(g^f;B))9$)AyL5|+%44~J_25r zgl;hM7J5!U!S|uWwi;mKQRsDu`l3ksd zakkMHz*ZZ_Q&VEbzSv=jw1epm2vqS6L`i67tzd&^W_k@}$3aS9W_G->xHjM=)Ge#6 z?N>c5f$SATugxz|Vt^kdrQ6IlE+%-FgkpY#6tu$;aA1(AtM>-oX7J0|ITh92|>NZ7RfgS$u6aAN=kqR3GOTF&6J^H<>d&mt|6D zoDacp*D#EnnVZ9~VJyx%d7|x(`%gZ^5R$zbL$H{_buRT)G>ovMn~a}Q&FK>_xfOHv6lsv6l-QdtN@fiYDkk7l{W z(i@@GY&t4E45iBOmnEr$aY$2xT$YMsm*{Jcg)ZX$xA;z?yyn|s&3}^M9h_ukj#BN{ z#1j_d7AA}qO>5F>miobEBEwe}$}&J@t-ThdtaOh_q*>A-F@>lT37x$CJwlAU>KqUy z261%(o>T-+CW3LNTN!*Z+x&QbtTOn7+5-jR)Z^1mpFRjWM5tUDfO14rio=_jixuwX zJO|p4M^G7%B5!whhv4MHb)03TQOcc<5Ca;#4Bgj2+wz(2!}t+z27gk^v44R}u3&1`-wK_*N!Lsjz(^na)Vr!2b zN(Yx#`pJ-#M4@^HLNN&eyAu1up~A(#;Um(Z*lSiA;%GG7WMBUH*N+Ja*}{3LP)W#S z>RZT0L`>!yAG4n;A|^1Qp@SDe8!806Mw!-SgOy55qfi7Ilnx10|;XWJqU z$WlQ9YsI@6y#UfSy7T@F62AFKnBm3rYl#I7or}n%s2qCdHSt`bW+h}Qf7D+PQ(6{Hi zrph^c9F?gc=3R7yCObtkN(Tu~&F~!NDZFvqmexd3=E{vJPPKt2vJyWX zUq^AxUcyE{gz!xCWUf@DEkTntSv|Kdi-IK$w5br-u6=Oae}#^~{#25MaJl96T}Mrf zWKIdy4RokzPFBT4q9a(6?RQ_mO`fowls!z`ch_{52;o@Lj}JQ>3NE%UAdUr~UDH9L zzstho>33zlhq7Vg_};d*M~L<>U!x`*^=bPest6#XHfW?k=Nuap8MKI-*_!BxT-(|I zUvcwLv4kiD(#!^C3Ogyx~j0$u-U*!{p{TOO(W2r*@0(hqR0IK137+Rv$h_ z=9~QU+c4k_JSk+!dY;b^lz*Rp4(Xe<;V1LrAI8#o_RWi{(sN8mP{rLdI@q}%(t!{C zv({HRcGi~z<2}t<9h9EpZHGZHt97umof}04yUdpeUl-jM9UF2h&M>;bYrgFsNh9Hh zKDshWS6S*vR>@=DIJOOunQwC(+my+&q)#l}5Sh@z@Plfq0W$NNP*V+!35A9qbm^Ws zj2ISeYp_fxH2k1TUo&aM?6mUH@1MWM|FKjEOSQ(ZnceUZO~Mv`*I$2#LA^0}#ucBNoRdTizPv&y-H)Cnk{2k2XD z#rFUN^6i2n_;Tdmjme9d@kbC>`s!89=Wy2DcO|x7a)Ky)RJm-3<=E=qKt^J`+@m3u z^9n|v(43$(vbe@TL?8z}>x!6$==dHYxZ|x!D9<%E<9N}{v6&KI{)IOca<)i9=6?J3 zJE0GV;w(#PBP~nmSZAa@iZ$xlv@E5g+Om|IL~uAhV-UGnESi`N#t=I0e4!mWQFaZN zpC5!)<-nVU;LWlodXcg$e{UPNGwlqyRv z71u3C_w8bKz@r^t?7n#T-=F_CbcxAb*`2T**%yF`rvj&8BAaatV_7OLF;!4pc=^^) zvWjW4>KHv+#Mv!sr>&6^G_+)X_)9N^9x|vz9QbALdsThTj-k zk}g!wlO?;ObfvPMGw6+p$`K+r7Lv^R12k5Zu4mB$DPDpm7J5PpB~vlJvTcZveDVf{ zAbgD6rLpavzz=baW7tSvVw9r9!;>gFjv9kRHnPV>h3CEQ>2*Ze_(g}tAQ7JrHB`j; z5HBR055cO}D2UXQo1>rsA@UBRD6s05xBf?&=FRJ21m_&_Y3ODZlsBy)yuojXg`8hh zeE2nNQNI)pF|>w%%oG>&Z4LiO%d%6Pkqv6L#6M=6q;%j(H&d>X<>@vft8~x~(iz!X zgFt2~P|C2&oRL+^Xs6|R)<`#2TVr;3#>N_UF{37#g{Z}B(Jam; zS}mRZ-#J-bu$0`LBxi7tN~99dTEi~nk_Wk~>a=N)GcA9M@1$Eo7Pvk@z5}q8m5da* z`4+Na$JG+CK;EK+BgwZrhdk zTST`lAMv>mUKDk#fATcsr0|eX)e^FpYg^n+wgy=U^((gUvGTH4Zg&*o96knIwwhYp zy@#67UE6~sb9N{EHEt?f!WQqJ|EHs9OPs>%uMDto1;o~n3+F?af|n@Tf>7KVMcbUi zJ*@>77-q}LUiaj!#uxG}JQ?Q#7&e>dWF7QDaAO)@VC#p(LHr)pl`2lviy=X>rNceR z5;>G5O4M;|TH>owM;*kHg4#n)1y!rHpPUM+sYVSL`xIM!0S1=ZD?OS_2Q3Edq}BiDd}Wd9Av{*vn8B?UW2_( zSaXRb~yx&IKF2!4_=qQvz= zmOAnZHQvA6 z68I2jEGrsWg5a_9dJaXzEow_gcf@bYuTS`5f*cx>i(w+DZ3%*;qKN!1bfI>Y?uWG7 z^gbl4 z6(xYomKyS6S~{AOXjIBdaa}~TW4311c5SLzS+pu-wY0=J(36YJ?+oskNd9~5sLsHS zJ-mvz<-Yy&&P!iJDeVYt7m0L~)FxVOQb#!-4sku9qzB-#hZk|B(3$&*0}Z*yoyqoC zYMGu?N1V{;u~7l7ekI%j)#)os?nr#Vx>y|cc>w@n8Git_moLVb9UaNhB|<73!tDrb zEKBK$gdu*A>QMFmfDB%lNilME=KPK1Ss$xE{RnRrrA6_}1sze1wL*2Uni+D?ARLhC zh;P6q7%0-~y9P@H*8SAj59zt)jFp{SYI2E{ z9r(trv9cr1;jU9V#Aji&9?1NBE=xw~=FQ*}H0`(p6K^-a5xZa-VcQhu4MC3nxgVn} z4B_)>woP!E9TARHr5bN6SE|8=m3lv@Mm!@~srG(JK|QaMg4*LH1-;gwdtYDsx$KVm zJDc#HuhXd(ck!D4bbRtH*a2C1!JwL3*k1c2^csPRsp^58bsA12iqrFAT3ifPL?-_D zaPtb>Pu~Zs+fgP3ns#iv%V-NXA9QpWCiD@C3GaeBN}UKI;oV_J=@N)5`{N7suf7oi z7P?UjCTY-^k{_lvfNVJE z+ffPxyu(mF@wJ3&j3|L7s?hWhryxgw0iC-25H9|>gN4Os$4uQ$pJK6n3&CyZUIQ59 zMCal3yp;7zI6_3N$YDE87w+6eu#kHbw(T!I!#|IqL<1G%5cK&N3pRx3!$12c@I&k; zLJL2|uTZA|-b4Kn`V+1+o_OgDR}dV%L0H>CYJ0@HN`c6S7?3Fu!t2%zTJQxe0u1h& z;Ighk3q;}Opk>H{Q&Bye&|wHM@=XT`TZipScb*DEo#4Xb-wiMQt9m#7Qm@M5BuHW$7s{>Kln!( z#syJ;C!yj|<^yV#vl6mBihIJIIKZrlq|e5pdjkW`^AMIge|!evRqj!c-Dgb3>CO2M zYgfps(pTpastQcCCo~`}e1y_Af4`_87aYYK275XVBFoid@$`pJqf5dfvo|=v6)k#` z`QUtry`S?T#HC9t?12VujfFiWKES51TED?D+r8WqCfK(K1E@Ekphs60n`gwlkKw60 zgutFa!L-n4!nmQ_2h>+R^+0UZ-}`M8;h3~LeE8Rm-1pVL6GhnJ$wjDJd53?ffBs3J zpuOP%v94EQL2Q6o5ncwI!~X`8^4O!+Q~h2j%k2BlpWW#H`CNPFFHuA<2B5AiCFaXw z-?q>|b3ds}!qeuhZ+`mQuoCD^3WHopz1w{E?(fiH`@crLxXZVvSKfg@ix6_CLe%Oh zZ2<-epJWd{tk?VZyATm?yO#^*j!%3YCm8MDQPDzm>5l(<&|dG~QK=oJAx`#s3oqKC z`%mqQ_y>IaR;+mlA*-j2yz~}^{_$-LeYj0|VbjOtpPo_^@M{cbNbj-A-Wm#lNIDe4^ ze~~jYL)g6cgaBfXiARcnvL_1gEDDfOf>z1f>#T{F_s)lyX*eI^g^lweUR^pL(pzhH?{TPg*2L=~-$TTxyy}@8 z7-vm6Bf=a3a@LeHA}C45-4Qt>A}432&$;EcCpPA7lR;&^E;rb0>7jjq6}{nSOHW+> z`{;@&x5nL|oZ(;?n^V1<;b1;Cxxt)qlI`&ML*UrA9e1x|BZU933!9d~Fg{lY3@$!Z>XfN zmna)4)p)u)#@h~qEuAW5ME4;lS!pns)2Uw0C@>tMPwKQs+ZDq9;|# zndih!lcnpq?H!CnQIn;!h1cR0*!z$Uo*^eeJR`Qa0I>k;!w2V$!D)%nOrg_k0N+U4$@NR2PZ9D`Awmbb@E!j^A5(b2HArsSAZCvx4Ls~{f387P-)PFC5L_}hwX4tX1L z$lE{(UTa$A_+85GnyWx{Cna^w$*S(8gJWy5>~wttEhpP+pwndY{vd~;4LJ;Lpqq;q zl*utE-J!G6^*NwypfhE26{s;od~BhS8h^|cr-l_luoYQiUvsibO+sEcn}4Xk#tY8l z_BV(X;l=krm}~bCj1=`C!K?~2DxPC8ovRoZjRq3Y0NiY ziC6vk{6C7VIcRDiG&NUfPOu~jHCJfPCdH(b`TER>oi2r4dC))^W^?N6={EO!z4h=7 zLwpt+Jn6=9gopI9$6b>)=|p`Ldb`WSL${k059yuAoF=y~Z&2v%u@DbwlP-5;SoPuw zZR8o<2_?<_UYl<2_bXPSRI>5;;E$_K2KK>2a|Y3c<`~4}mw6^GH1QckPh32tZL(}d zeu&7=*pVS?5+9XcF_e?-sG&n(XRJ~6vPnjhG%86{vVX!U2I#2m21&;gIhHhOYd%Y6 z&>J)emORJTY6CuVvtP`>GpI<f!Ayk7Hj-v^3Z(+PtC?qFCD>iLfHpi$Y z;cZ$$xZw!OY@y6Q*F$(JU+vjq&Vk8IiWFw@SsgO_9w!#G8hT< zxJ}7kIcZ8_K6A>b!I+UXS8eEE-dqK0TxBpHRKV6wx0dI&Z#bC)d(MY=QIyt-CwW@- z2HP6ulPuSup0q6cZMlT&eA*A&&z+n-KVSPjZb7S!Il?zBS`9H`J9DE&%d#=2Qq*jt4;SOD1nqxITf<0zs29e3v(38c9Wxwa;skGgG;Ae)4?Imrt^)X47O8k zGT06tf>p080AxMgyaFJE$)~2^MS%%Lp3|U%s zUe|Oh2rH#~zc7aw)5`EPp2|i?To6!t0V|U3gGY$R#q$Wr`HeP$|cphEe$@romLshcX;+kwdBqL#m8z z!eKY`SdJUc$TO;n9FSEQkhR>79C%e2c;z#qp;*p`*z$>Xuw! zl~0WvcvTp9WmHllH3wJ~<}9bP9T}_XA_rI%23R@O^IDrSlqL>Zb*({F#s+Fw5T|;8 z6mPj1uPDC8<{jRDH(u;p6^2bEN@S0n5ai|4`Dzp$aYh(WP|}fiA(um<3d%lm*97Zb z*8#{fx_KR7$dhlx7zE{fC}V?L7$W7YiB0Q#h$pGsMZK+`#%LUW2v?U>g<(|A3UWNL z1y`dovs$q;_Gx9PRVX+75bji|3InTxNccf@5#=ALUYwQXIqOtB$H<0aIcwrr>wJi< z9hx0}(0#=Y*jYi2wR3P*LFr3gw?x@Y?uT*)g5g@e-pj~rstWu0u+(HUXZ3>F!w<^- zIXJ5@I4hJJeoz${oE1dE4{DMdiskE0!?HrT;Rme@8@Z?@4Gx)ZMRoll++R@@87J`Y zkn!Y`3ijiDh>+#EEiVu@Ev|hEKg5>^g&|i{#Sg07oGG1g*sdxK!gATG6p(dUG?d^} zw=Nn=gQ=W#W;pE9@G56bY*gn%+F^f=;fQ-z_606gk#8T#My`#+`Lr@* z%lS|SA1MiUt+YRfa+O56)+*pB>}+<9*>gBpNgQmhDdGE+RcY{-uPFwFIUmX~dkz*W z35%_?pJ>>eteRIj5Uixbc5@XdV-WjVlhu=aO*UgORuc7EseoYDnylVvt;upQ_6;<` zTx%8RnLH<}%ufgDaP^sd^FXe^l8?U0$7?pMKat~l4b$=&I4AL{G>KQvn)J+d?%>KC?o}G@HTJLl zx9)E}ou{@OpVUv78EvdT^F$6AD|5(LN$2oftua_^)ZYGE`BsyzWhKYIs~)2Rd0zYH zkg<}!@V4B3-5R#PZ$Rf{b>Ry;boONIC;RVR5uClHWD6rrwZ^bAUu(>LS5~3%@5-Pi z?`xE>|JI7-xB!#=Ws4vGuB*{oFPHtz9am$S_TRekzWJ}TGOWy&J^o!k!BJoUA3EPV zF6X?}pY8ZvpsF;K?0{@{`RbDW6JLasl<{>s{}1xxC$Ugs&MrHLhLwhf`9`f^vFlO; z)a&M@hJjwbIt~4DKBR3aU;My<{a&Ur)}-Ul;WJlNNdRm?Jbc>&;yKIi92iy-3|ml4 zw?prt9pXH5on4#bymQzXPNI?XcBzM>QtF}AF2H%5+r+iy9i?YXXC&Gym7I|qNzXYC zW!N8?n5w3QE{JmlX@*MN+Zy6#3w6X{kG!p%I<)28ifQ}1AJU`1(Hd?41##8EbWfFA zC2jeII&=r$W^;mO>!lMeTM$AhSlC%(PA{t%PWD&k{~qS?IZqP11AL;&58 zeBtvY?V`=~=Y3dOR>a2^l-Z4+{HiJR)A|$@BsECYt2Z6~7^ZD1D46#aB*=5~O z0fpVVZa`OL%f_U0OBb4okq&dXd)M-uhGHktQL(h^$6Et%at)00;TpQLQuA}mT z_%_B^qGSu=%0R@&7R1#UCNj1lu9aD{XH31U3=K;z4h#hI&2GcNoDXT+dS{`auOX7m$N&0+BzS~v33p$t8y~JDgt7uZq7krRSpWP z2!%~liZ7NclN7c*YE4F1LXa(-5X`V@Z7|nj={2D(=Y**VaJe7Kn9p_2MOn3hU5Ums z;4*?SL9wP=vflpw8F*(TAPl%wUcQDEFDt4EWK9NCbmz4}Sn;!WNEZmF7;9oylj3$E zI@E?%;d7ji9-Q^uj~_m(YD(w2{B~@`KCE8qoJ6jg61ltsg09bUKLnFq0(*@-ty=?o zO=(*0I&)?q0Vr=x21B{reoZ{eT~p3%q{J0M}u;xR&A)3ry3pzo+o$|c%H}^0y+0| z)j43RCa{HpwLaJk+wwf&v;WYK=?QgChFEO~mq#&ee@roXZ+iaREsjx0W?$6DXLj8J zHoJUuU9O1RH9vbD|HR+oT?2Ja##n7&mZP;qvRtMnm~~Nmu@OYF=49jb1~uh}rTX2V ztL^Xs35oY z0ZMiAs)A^hw@#Ddh=RV^drc#lrZ-BsvT`WTTw=7cd;^Fk6XVxf{ z(m6ak8=MoNbBI=Lh?Z%G>LruVl@R2G*}1pnb5}$E=o9>N{B{)(evVahz*e0DwraYF z-8(D{<`Zh3ntC!wo030AU>+Q2E(>TPrx7EU3yA9o)i$iulyfInihvk!Ma*7SM6U*q?i(?di79DF-}fjndw z);XD2jX_kd`O@Uzszz|tCAv2_rg&>~Z-_yS7f|6#cP?Y{OSLn(#qa3I4dEHZbM$P?R_q2DQ7#6g2|9pJ? z(By!ihBBN+-Q&gi4Pl@0_i7Xv!m~7Uw&Q1OtA>)6#u8O;Qht)Vx3ni53)O0B6D=32 z)$|!{7YIpXxXqHq_8}xT#BD~c58*DuhSHCgwZ3%v_3pVQ2h=nM)GV3N)C3234Vg$V zx;bQ0ev!L%K0_KsjV*yFPNh7taSy!eyI)}P6mbxS>AWMFVInq3XePwY^4#Nim*Vs$a zC+$=HW(mtgRt-7>R;Gh)8{@BKE0boaSZ$C>KRkB_lfHQAaX5hRX1yVX@-iCSydit) zw|=Uzbz`8(viA|sGq$4Embdom;yZ!$? zfJx*OWDL7RQIdi=y9JZ(stETiP7n(h_e;sMO}91hsT& z)THz{ELuV^6T#RsZ4QfR>73i7bghP7@k|7@8rqVnRg3Z)ErFO+=>%UUf=XYL733O) zEdiHg>3Wqj5mdcF*+CP*7!q2_2$~4$67`&X7nj5iAeg7_C%?o`fs3}pRwl*ie#$Wy z9Z2)qn8-^?B|Th9RWDOj#yBo^K5J$oiq0KpX*5;)0 zv$aWo`}CEwLK!U~>YTO9QT}mzEfgyCyv!@em9zGjfB0&<}5mo$y1* zL~L^op0zehXIjU9#&^>iT3x87Wx6EfMOZKn_&!*zBYw5h% zOEM{CU5z=}K85)#6EnOSX)OjymTP=)Qr7G%Q?eHNBxMcs@htUPlZxXTHk6aIK4B~X zN;ZNW^V(db%$yZ_+Ju~>8pfW!zP!P(1bS8!x1eXLIL2-CPsDoWijEY$wHZ0nqT}4L ztS2d}%{ZrnnrD=PGbgL{)oa)}+4wQv)?76{bl;Wo`Wb2;Fze%`ye*v^n=5o5oq_>9 za=rgn66ujz)Z^#F35&RxIo4Xl;~Gbn_4pp*HIi>43;nsqb>!CE9M^LoPirBMuXQ=| z(Xt;`O$Gvm3!kq)d>5j$B|yH?HA=vm6C^=j%CAb#F(+Z6Wa)Z(dgHz!LkZpWBu%Qp zR<$K!T7@$rt;wRXva#oKxKL}jP@;5Wz{wR9L%1`$B^>1K<(!jXtwBT6v#(k!UhUeZ z!jHvHHy|i2n>MC05QoW>vYo*`;TH4oL)?FNM0+so5~k@4@UaaG%60^K)(T~+XA9Lm z+Zog|m5uMuJ0d)5I;7_w>%bNZeHwnyookF{9G9M|9TA@C{D;d6Bdjx!=TQFe{zF92 z%fDh8ct>0Z(YyZ-7VZe;yYBi!+<14CRD%{*HG=x(pYej2j<}9Jj70S=CKW+I5S!Nu8wR?CH^Z53;`EXS0Huo!DMr>S~mEf+hy2#LPox8FK z_!y-CqxHiRh|k+U-1)(yH$ES#jyTQzZ#tAHr_hez?(%*6;e?&}A+8E6s&RRdoU>CM zJ~6kwIk*bExyEL&ncE-F35tf)9I^Jzqb9@h(S?7C*XCSu% z!zO^1&d?iQAR&_DjXnnHuuidOb5KraP|jl6#)Z22(x&eC9%8@B3XuT}+_91o;B|)R zu%zlhUhW*BZ_&Z0$w$h2{5gQ5#hax%LvOfL($pXumW=i10GrO_?yM}L#uBdNg{?UI=;sZqNz3xuB`wPyHZ99@ z&$djtB!gyHGTOkvm{}Xd^WvR3|1>KeZ&2$Dk~t3d(5rY;DOaq^rR+kXcX1&>r=T#` zuzna|jG}yqTrsIj?VBkv=jRYaeChGPVYq+)*Z5b+s_PAwaXIJS@EPYrY)R)sFzF>e z_sG4uH9q%-%{c4indf|n=b!T-?MMFtYoFf0Dhj4NVA;1lJsQ^nJ*DJ0qhW90jZY;* zahwn3n3mX1s_{8^rzgBKEgjP#&Vif*Q#~d1Oe=`CqeD_|+iBOEDxE-2QcyeHsUUR- zrSnW>W7~-DOa-}69VXXgb&QbV$K^wF9>?1(oy}YuO z_t+urt|vyrQt{AoPboSt$U^pmM<}YmemdT@-V>VPvUagXlY}FC<8349D2KoO1S*E~ z;$B0U^KN_hPk4Xqw)e8zKJ3Qbc5jnyVD4p?d`+F|ZPtzNA#JNvE%Lii6O48Z&&aX4 zIXqi3<5N_-Mi{(&{EwG^J`7{j@)=jT2GqoIF|$IxesB4VuV_8L7F5>WaX}=B%IZY^2bV48G^Y`x_vswaJ2(^)`S^#jgf#PH^)em&*H1o+!o_}NZaqN`&b2Sis26!KF#MLvKnyWELhL9rGoWT zTasZv=d7IFp7SC0g06>#9F#H;N}+bcEr$i;Kv^y%7Hl(6f(yxTQF;O<#1@UlrD?l4 zgY`hy7-JJ7DVKtdv5^sUeE!zpnOKeEZZP*5I}MU!MWQCuJ+Y?=l8_8$OEel~x{#PE zN>4ht>EY$4(TnHZ99A%Ru@<*p1A&mG@_c5?K^_Akk2hf_EPiG4xvh{YyOG@4;J^o> z9;7RGkv7pvk%T&2qlS`O)=FoFl{5rl57W39HU~Pxgo92e^ws&5FU%^0uYj2&J|5@} zndSDyQ zb9g6w4)Yi+^YCo71|c7pXgeSm<<@9B5Z!RMPR}{_LphGq#*o3oozl}`u9ot~PDry6JHe%hSSKAW?7@yKZiiM2g7W9-DxO}^C331^C4LKx&lDr%grkQ z!*QH-vS~Nv%eW_1KGz^dF4|8*955WmS2|%G`0K^eE!kNX)x2Gm)%C`TDCI zsh8m>83=tqF@rg_mw1*>NLXg)yR#2(wooti^v)pieq)LB`eQlIOoY$>Z z)6td?)YELC+;E-?;%um6At`nHe?Rvc=GjOUAmz3aWX;rCwkTw^p%#=4X~hutnG1q! zu5->3ykd`SrJUg1NwAR@rQ^4x@dQsQ`Tq5$&>l4`KJeKvZMvzAQSLZqAlFYRqZwG;}G2ZU}!*?$$RyhJC zXLiJ>P(oB^?0`_Y3R3^u^^wp1lh$9w%BeEfKvlX2+mIv>DM?=)2`VmplLfS z*iXsbbDL&MF^z!DRQ=da%D}lST~oHF!%Ne0sauHIOl9NvqnsRg&E;05t;eCRZGrb^KlX4C85L?h$6O4I@#RUM(t+BWuP~%qAn6UlwA-WAN z@OXUh!*NGj7*^9SNNKbE3FbgCVgWgfAP4mN_M1?m;WJd?m<5BchO@y)Dr#q#jIXl^ z&v<*wU>ed#X{{%kG<&vB4Ui!zRaU}2N=iGymTQ4at1-Ct3>(2_{F z3rk9dYey9*f7|~X{|KnIU`8^hM0iPC7X(S30#e2+^81gzf+KCh7%*^T*Ptz@-E)_) zCw_Y$LT)i3BVR*IQiIMLYdB;aC>o=jVIn>sYVYMm^~(>2nzZ#&56JJrLzsBi(1^o9 zH-|=pL6()&b!r~s-EkHMjBK$G+Vp=zpUbKQBdQoa2z}0MB++%Gm7at0i`1X7`wT8g zYsJ%WM)qH^1#HV1S=CzhooQK)XEU<@jXH2t^L2<}B{LO7#VL;kvpZ!{lhfiaR zHAgJbpplu{<2WKNqHB-6Ws+6W#p#{d>4+1t$3uz9sv;C&kJ*+e?Rcgg_K#rB24Hlk z5u)O2;DX2p{C)9f*@i&`j{ksv3jqtc<8@)-N7G@SB{FjL(D~luK-vq#JZ74YqQ_M4 zx**!2dLSe+K}4_be+g}|8$DmxjtJG`XYrUSN)zpP47*&}VGQ+NICczs1UbHtE)f5F zdJpZ#)Qu3iAi{yjx%oXx6nx#|bjuFWJlwJYP4!$F9-u5)8VQu%zKKWUqK6Vt0Fif) zITw0BAeWaf;hPXBlqZsJ_Sqa1R{$_~>-uUE3UUp);2bvxUBf$^b+RvXKBVUwhOVni z2#3IyFuZ^U!Dqty<;_E1yc5EVfg-EoIi@8>vZPXYbyOHkGOtn)FAXel^-`IGOiF`H zRu#*zd1=yJR_oC7cd2W`yVlaMl=;$?I9ppXNQ&a#+rPswDjtkOsI(L%J>p7Acaf!| zoU1usbhO!pz))I{vQnraD(9@5^MdBr58+CocibA5hO4Y~f*~ra;yh`o&t&R_ZZqjF z^W}z#S`t?=-G*{Qd@AYK(xvh8eVNO1BF%}yH>SKKeKgJ+k5@T7G z($Nt`A$SxOZf)B4?_B;CbHqxM%QD|d(4h<6YI)1-z~Lv@V)BtZ$@Sdq-@%(T`CAOt zr8%^;LqI=g9zaUy!XD4^U_VI6D%*5 zmOuN`o3RJkiu2;(eS2vD&8oPz;&mN4Q6`qonC7zVoQOx=3DjUji&GZ=B`JO~TyV%g zw9^2adBs)HIu@=K&GXS`Cc|u2^|{Te=8H=6rGF7Sho|SfxH6Nr>JxvsfBz2p9qa3T z6~JeiLv2b!ZRYieY8!B~D!yvd7|so;SuL8EHS^*am{sU&)kE3;h#@wnC@4D+;jsB6hb?7HP0U3{lpnrxNR z<~8i0G0WtoY7fzq?4rlxO?62;X0GT+uS?=FrX%7Wx+D}M8+cS){`*;|j77=`PB!kL zOT%P*PSD&3<9tY4(HrySj@@e{2AR1z5?efj!LY3CmG+i~(=0zAg^dppt&ue=Vw!NE z{qXB|{u;ao0UIOrT9neS{g$P)TQpLtMjhmqrL=99r8t-s9lW1hR8YuUp?z_R4bY2| z<>Iu*Tb9xeZ&Au-oGhwF87IrdX$zo%%f)FUBn1<87!PUIrGYAmdbKG`GsZ)wC@x_K zRcXQwN=n-S=H9$o;Jw}n4qfgJire0bI0+JS`t9owhXXta5*0ETTy|yfh;8pz1y!`=YeVD}cI zU}cW{*iL`~VO>!f1~SxOuJVn5p$b35KGPOM!jjyLv4iXhQJ~+T?_z+f3F zg4|Xi*DZ!GDby7akVzNBEo?>j1K#kom%OTRFhq`A8St@}`ow#7kE3n7`*`ac?t(=1 zdLEt5|HJ5t9b{<-!oGYu>U2co_p;BB0XrVLMR9B=m#?o3`EWj@XIUx?si;!PM~W`t zuLAS9HT+dJ%S3v%`ds?!-uusmabnnquQ?Wf=%U|>MQdweEXg@nS&50;IM$#4Jqqdo z^fpW+2)X~sw-_;92xb*A4*W`2s@kKyo{=v-(hADa6nRv96ga2i^ts`fDKhFHK%6CKoATmOBF!|)B7RbSLPDgrB=m* zH5FxvES5`v;qVyz!R|dYzkdcD8{N1e3KFt5$KO5my@VxkVxfBsOOW^`S7serS#ZdU z#`waxGACq?_1C{aUrKn8m!u<%TSwis8X!4YT`G z@$}bdR(L~SS$2T7OOktW{Nk@KLyLf*D|0qxH{eC>(7lCWdj8U`s#nh>bdYBoR1rOJ zKSUV8TN75>*C+>eaC4Mnig3O@ZL@(VI4}Az3{G8)_x5sF#G)R(Q8cf<_U)TtP!UN$ z@1OgNO8jG#Wsf%_`(BjgH9%T6$7Tc*yf!1MfDts`Ck86?B`)BWThWf&fBZV+wN^Pe zp)xpONdcZ~Go2Tg6Xw%AY1tbLXn4YLE4PquzQ7o3n!v0p0}vLviipANAp1599O4ET zvZoJGC3X>VSU{Fa@N`j@_pVfXNZYL_%VVu}y^N3waUotmz+ubgYiMJvqAU;mTGrY! z6Z`6MIijH=AfZ2BFZ9;9Hs0j@|wq+~o<`EwV$p+|?6%iKkam*1(0C(G)F3 zd|}#G&?CBKli_jdU{wik+Zr+c{IRFF^E78#W^_Q&(a+Jr7W@WtS`IAB`dii_XaA@| zx8V-*x^cgG7MjS}19?b=W|PSwyUO#KP+75~pXI^@Ih`6$rdEU@pp14MGJk?mOajNL z`47sezyAh8vY=AEVXTJ`E?>)&mDxsKsn%F1g|G0{xcY*=VK;4F+(6>e1tp7QF3FDG z*Z)PK*M`QdUtDXTWTjVAf3BnuN5yj<;wk8?2_EwjS8;~&=D3POdZg$c2Hpw07T$B7 zQHLLoma7eykdNcsB?d7BN%rpQEg{77PUo$gL-v z;tgnfD&CKRY^s?;!vYMc^wjX!n0v7}w#Q6y&qrAfTr;w&J368dI?BXN|XL7c6ikolY?q~#^nyiyxg66S+8L@6mU?(e!MmT(Mk2d zI}Z=PEZ>!Q7aC67;(0uZ`gSr!Waz;HGOxqs#WiM%Dh_=lo!|cmuc*&)AJ4>{W^Ktu z{jbNwdA4ZGKCC5BWGr#EF$dKcwvsPS8FJx#i07E|AsFx)5kV_%-D%duE4|jsi2w&VmD3aCZmPa3GBNs@dM1d-Mk));|V2qbDoBm-hdEh z)M*myc+nRx#=7+^ zLK}p=pyiwW+xTHyzY+zt-&^cO!zudWar7c;m(8if+D-SDP@*}DvfPoB=YU>8S%Q}O zLn-Y#1|(fmvct50!YygFp%lgOX{d+EiRCZK-u*4=s7-@kVQ8JNap`{lpZlMx@>DRo z12GgOBtuA+c!chB_xS(Ro$1=;HnFz!X~iEW+x|75)l;_RTKbn<*W2y%TarpDNhRGb$zh72XonyD{JpD~@R6a2zLATn>r z52BLVG-zv?Wn><3QY0G)C{W*G0gCL{@M-O*`cavSkX$WMrHs?-k-%x_eM40#c!~VH9uml-z zoC>ciYjfgce|h>(IP5t<+wt?Ffr-`zKFAVijHiKbk<%8J?rW5x#I=bqSIJlyj-R5D zV0U?`7f+_v#3E!jH-7mYD##%fc^MZzf>+nXBEUby?t*MC;|*F+CeqoOPMrK2GW$1? zH}X5eU}ChmORNo%7@7~oX`y3{@0Vp1gpFcNM^CN{ftBXKVyRB*u#kgbIrd z#1G49nM0t-HDL+V>#`FkfBf=oWFFpH*XG>Gc+zJ7W4sNQ_*iktr?6A44U_P>shr~` zwV@Qgk_1=W93p7Mi&%<$7k(y;_(sgaxSJ@w%yLtTUWd>8tL=s2lpqiS*(RYOrUGPTc}O`0(V zb2JoAlhR9m7j$E(7{5lim^oX1wp2i?Gr+PU(!f-ZUNrt&O6Xo;>gX0`yoo=4-b_YY}oE6IH4hGpd zOUjub=!BGOnlxC?r<>t>&O|wVfv&ajTGnvCwGI?9RAa)F)>0_BVUyJuI_PUY4GZ0~KE*g)^;p*` zXLM7@le?{QMmGgPc}pU$=uVWg8YJZCE{XA@uOkqObeELl{s~dKOUfDMCg9515bXZv zLoRZS#D>OxuNZ!smd%;%4N;Y7ltLn4dO55l{})+aW1#AIWl#O;@16!C z1g1QNsM*E@b@?nzT-9qV0<7*tu<&g$0g!t4VuFCGyG%WhUmyR&dN#ySG(=OU-^Y`Z zjp3-yCe886IY70^0jiCO|MJzz1cEse@$~FW#PhT>(T1HVB5bm=>IW46HT_=o1H;^$ zN@dKrZ4P#8DI#pHeoIkc)9+*TTY_mzzt6BqOXzGV(~OC;H4$GfL$oIJYb{Z904?3j zSLTWuJ_04tv{Y?#|p8LEF+X0;@)`iD8M=Tyne+)HIBm2x;$OR;d?o?$uF zmSWl^ql_(aGrYIN_4?P5yJKMMM%B~!Y6rFGX-Q?(8|)Xbmc*3~hC3~`Up%qjTJ*G) zyP*$D;yQP2OzhTA5}Y_xzn6`Bh)QjBJlz9KQ^P^-VnP7Uad-lMgvjyM9QpGNj2zt5 zQkb2$rweYnEdp?J(A|rG9EQ{yh9qa7mww_s$E`X2xB1ERx;6A@DS!F5eIP8YVMsnh z8JOfL#tctSC_rnFl2f-F@0-J!+8oZ*=5VH#BKnrQjo3hS9TV5LW+9!zOwTS0nMglR zF*zNBg^(0eg& zPqRqP<9s>`)|UEP+!J*cskzF?0c+iTV6F3jHPvZM*q6^L9tyM_Aujr zNnESM9^F@Mi_|vC$bo5{g=wy~BBX{myOyo_$}lUsr7~0ld)S&5H`ey4q;1Zi zCf+sC=>V`4m*_N1OABT!)jJE&Ts1ToWcj+O1bW?;5zYOdUF~wBw>r8aYwZ%Tj+oiH zRLm@2e62_^U2gTXk=JXk{VPkUp+cctt5ODt$xYGc;rAco z`W3m|TJB$VLa-Ki1_itEAl!a1jKiQzqsglfmCOBmnj-ACZ?UfxueV1{^q7G zXQG@HvB0jIUkAdv8xQ0hi|lhaR&O|#t4Vr;vYd%B#%6D5mb0Xc3Ai_3U2~SC$EI^Y z_c>&%&mmiV4%zA{?8{rHoLI0v2ZHrE5UkIEV7-YNn}=G*5boX*FptmgO|V$H0PTRi zR>{F%y}@5etxSwqS~h3==OC}%Ag{DmJiE_jW2j!AbIh?ffGb@98+k6PdYpk;X<6O` zr)Bj*D}8XGH~eazuWCF4ujc0p4&jcF-Y~1VY&?U|n{$eCanW%697_+m0&Tp;DBNq- z=Y)avImZ+GoG`FnnALUB(1S%ial7D4tic|?-Uu2Zi-HD6G#xVZA|N4)Yie=1IX_z&A( z3?K6p!%MZb6fuUNH{oZV6uv1ym%&RlPZ@0g@gv4q71+Pytp~kfnW$*5D5=jmhC^3kK<0< z>z{{kckEyy%0forA^MNOkhB38rk>@>*zj-&v5tcQXh9@A#JI@805q-XDQcP%EjHw! zv%#P<-^h_@vFnOq03y40#V{B`<}5R3v>ImSE6D_c64v@F{*h=d0%%M0ot5+1ZHkJTU&9<;1kKBufhF<@%OTg+Ema-mlk z>J_pG4@yT1yJk8n0~^d0vI`GdR_}r)9pgO_g8^AQ&0jMN6NTYdYlHt3A|M9Cuhvpr z|9zT|a^kp#9E3Fp!n%2JfT_E^cn+Ex44U#ai8&m(mMDIpW-xThlY&RzT8itxPquQ# zaB0POFs>D&Q}EJuErn4`k4+~s7;-Sxkb|j)985KslaaoLaE5xR_RhgsgA-?|{e@v! z&f4Vk1t-)}O<;)Dnr=D;zi(bkasBsc^f(6Yhw{&>jj}*Qxpv&;BrgaLR{k2xS0Nb<*>fy6|2+TkVpXCqJ z8WkygmJdM>NZ~VkKnO^2zYAz~8FUMYe3sY!7>Qu~aq)r2yKi7b8lPQFnLg8+L_X`9 zL~LOBEabla3U4Wj|HU78WzkRHB}Y}*v}xHKqZ*WzEWn_wYpvGC|8*j7c7|!C3-AqL zZcanC(gm=Q)3R*av@Dy{*)nWfXQCV<8`3qeO8DL)K3Bp6b}p-WrvY5}el@m*a_yXa z;BEZU+H`^&`Lb=(`SJix=gTHd%d$z+vTV|{zB!gO%qm%cVOD8bHlVLtnP{ZE7fleyh_@Zm=yr-Yz7Y3nc+)3Y}<6cdT{;}?*n#t(;%OL+{q0G7!!x- ziXMEghZj+E9gfip7;JSoJ}37w;Zo(D9EnhV-JmL8D;s9zOq63!3G}-8bwqI82^G*} zJS3fpvi+Qiv?13#-1P60r!!1TK4!aX{{8%4VIh!zHEkN8l@RnTg0FQ7YVhzhxvLRl z_?8jW`tmUJHDLzdYIYfX3yE?poDrhc>`aK(dW&V?FXYbFPUN1nuri#JbaDSN*MRw~ zZD3bIcOJt=Q1wm|du0T5C3&o_3uYj!W@ivqB6qf)uh|T?O5~n1-4d<(5*|Y?r#pT6 z8%#)G=;6EAsH9#OB?Xh#Q(luItdcn&{6h_safB*Jts4p%&RKC~1CDZJx z8gu|r<#mjHoCuN<3Ew+tb{Pi^kx1KQay4szPji39ty(Av^XJVgg9Y8|l?x{gqDiK3 z0wI$~53x7Vm*G~23ZDV)v4E4$;D(#xn}UL#mSp?s;|h?~gKJAx`@$_*ZNep4t*;(g zOR`$u42M?`@_8PlVSoPq6DTOMsv-yQ6ghyW$OvC*3JPCZY9iH~gn*W0RdZ6X(w6KU zCN(iiE{{+c;NwiBC((@>7~tb8Acy=EhWt27(rcTos_1dMHZ@NFew!i-ifLLN2Xx=n zmJVCvR&`1WZCc7#%W9J@t4UO6DZ3Db(G)~=wq*4*yHfO)l~hgWsNYi2T2{}lagLIS zK73jnmC=LnZR@>*_R`@tw&kw-6ta?gr%e>S2hEGm##clNxJ(2lez&T@#-EJtShwueX>vx@QEHwatmW zgdkfuA;<$ZA;?x;7c>CJXA}c-61nGCFXIGWQy8%0tcRX@Wje;^$N@Wr0Xqqm zycRY9$Kvmv^^=Qt+DfGDbZo4qh<_vIA zoUo(cRe0BQ?BMUiR=hB*#@FvN!j16l@|;Ok!i{b&9AxHh7fz67&0^EPPnOGwBtq?Y zW_7kBThy0`pbjjHS0%?D-6}lv;RRwrTxY81+TT6Aw`9J)C`k=yi$>qyVLU!mi(nTBo{Ib4@2lw zC1Ikp`AWh>kacLn1`i5^2VGCLa}Ws+T9(&HK_oor8uDNcBH=;j%f<{M;X%pfz@pN? zqL6QRP>LHy6hy*91lT2^p(Qiwe0gmfvI`Hol6M%;9$#DO9{bo)4IpxKC_{&W%Hcul zZj9MJi{%TJE=6;DhzgBPR&x4(oq}gyXKm)w@RYUwTNlHV zv9lN+$i755kf}7s-JB)yzE;;|C#plrJ+@x z6u!AYty%1Gx`ioC>Z3Z1xnD}xRzIsU4AIh3`dO7>aF&+R&$kP`px7P!H6ZplSh%T}ldSbIk;`j(R{Q1@$2G?q%pS z+bs83v5FYfOfW{pR0N>b`e8-TX_j5AenrG-Ca4wECXx$g{w=RhU&0?PUa0O*(-5fW zP}(d@iSJWU0y_OO+u@RF7yQbJzHqRK|o^ z8O%gk%Y+m9i9t&w7&WCpBV!jOm9UKnFHpR8kUIZQK-gyMCQv4de zGMuEUh}5i0>4CH^rRTs^DMB#oQX0X|`bhY2PE#4qA`C;`8=QJL{yn_z4nL}PC0am&{GfX;vE>0nRs>n3oqmk%v3%|3B(}c1XY4yu1>uMWVzR=*Th?#Gks0?#hpmIPhOhE z^QAR~{b;E#C%;z{fzcx97h&yLJFfz|n)8NBYq||cXRS)tu2G9{={#k+I!&EJV(J_c zQxl06{p*K)o?^bbViuN zyD&iz6Q-ORYpvB;d)@GGZ&=o!#nr(*_6NL;)GuC<9vIb;1?;9c!_>B3ni3;aVreXO~u z4NF;X3d>JStw;yMPi&?vtJi(rendej?nG=%t5qB<6ri%v+$LDXW{T9&G$ux6F00IF zLQ}TPXn;vFYs*PymQ*SmNHWh?%d#csvisN+=0sImR@;qzY=p@*#iRTV?Jigh``umr zHU2Mx{hCO~dUkrqv6Na$*e{IDnliqdtquB+Lu*6*{g)qN1tQP!7L%H&2bX<{%NWBu ze6Gn*4`(91eDRJpfgm@>i^EcPJ6=OMoQi6rVcwIe4q#LkJhIIf9Dlrg8k{2Gj%{%w z9^Pg!=wnMILqB}gHVkCB3~7o`b0Q(`s_1d(PQ=UAW!<7l3>euIXM;PNi$Eujv!>rcOSHqr1 z3l?vnwE^knTjM*~B!`WALudxS*)WiagXwzzl#ZtsVG;g4_(3g@7xW#koOQ9K1* z_V2^4vL*>ZSPk(SZtG)gYZLw=ynh}nj{-s%W|I^9f;QzO*3(WTgHTrSwQNQYtS!%dSi1n2JD< z$y%wY2c3~pYVr)~GkXs6X^8n4eWKPBBx9sttT^K6u#*u~*=bv0oXhgD`!89dKYaLi zW0LzAtWHyaq zI0+>TzBxAk{(s1+`ZcCF>_y|Qw=wv}W*M*jY7D$dN%CSOQMfkKyqCta&kY5*pc1lN z!jF7VT#R*Sa1Yrb`bI-)&Jf$}9z&as?Qjg?ZjHe-J=$ANwhVZoyzhbZum2EcYeQ;$ z-PRx*Um^o;oQbfyym?Rnn!7!y31V@U$u=B6je(&f!|049mJFkF^N-MiCX~flM$SY@ zJjd(WO^AzAJ)T0hn!o^`O>y2boO_w1_Rs7;MDL6}K8N}=hWc!3!lw2$jtP2MQ=cuo zCZ(rVR39U?pY^qWhrVW_TsFl$W{kNT?6Z}-0Y1y(s82XD(irBmoI>ftv+lBZ9Eb+> zthBg^c=4Is+={%ciBjBSRc;wx-K^=(_AJ^zev9xXiT&Bby+%OY8itb)^bEz;uo|sh z+$y(p#0Z{jT{|9i9ds82Fuu>l-#bjQ68jYQuq{Qp;5Yc~@qp0d^X|7uE8sK4Nwo&W zEZYjL6}n|h!7iAJQ2y@RzX}&CSC{VtlW6JCQBqJF>I38>s~>pcOZ_??gn@^BbZd~y z>F{}pBUeL%9dwMSZgZkrS_4~LeZ4i{#hC~uz53}ET;*Or-5Sc`ER#o>GZ7E8ix>ti zjsEr-zMRrG?@e=UON<4kTbDG1#ixkjEUD}nv^cZpxighLk49(qdZV$>IB3d1X<7qZ zQo687Q<82wnv+JeJiiVWH@qb!$Wl78-}C)U_x(Fn(BG2CBm8^>Jn<rc1^Dxygx-sp6c&jbvA#C#qWwk<{4Bz0vwZRpDD&2^&^Zo%vaRWGC0{TZ6{ zfG6d5O)$-Z1~C}CHTT5K+h8BtfXEBFACwq|=g??)kWlRdwyQ&+SuG(LNOYfl0+|Zm zIFfHL#K7m)P?&S~7kmn9FBz8KM_t1^<<^jwg_=do+?psF-*C@4nbaC6<17h-@8*0# zVD5IlhQavCBpmZ+wD09rS%twi<7zZ6t_+TmmlMSWZxZAUfdHW$U`H1RvSBit;_T*} zy61R2%WI(idTF;%x7JXb^#qbxNTlb|WYcONm=x60Xi6}L(Xn(nzRU%oW_TIcCIW6^ zuun_q9My}t})S)>6JS-h-GmW(Bj%eb4|i2p_XE8=7QW*+ED9_pobRs z4&@q&tSprqPd&ASRZ<;Ja|G++&rQ@60&cvRii}u>bU=cZ1k8mpd(SPs> zN)LXaGgQP@h8oEPpUAyU<4j-TU9H?baKYph-+^{SL{_U$2xMJ~R~VZ`^AMW1Y2?G5 z!60+lcq>*%!6#^&r51>;v?CPqAsW8uvA#T?e}VRjeUDBa;VQ0U`38ir(ULnT<--Lr zSh^z;;+-`q_{5!vhna7x6;N_>rQjfUyHW~6aVx4v85$1j4>=!l=${q?efw@0;|7gb z!B3(fk1}V~^^Eu`E>n|t@`p3lScl=OkhLKrR)?spW+GS;4ErBGi2;Vyn!G@i*f}iw zAAIl8tDg)_XRwG*UqU47`trC-=*uI{3dY7Y3?w1QOAafjno65%y(Zc|scu5-!`lfB z2eHb=>RSS`OO=jiWP2<)O#-0`d3h?@hZ9I0 zkq)`PqJI{1&Ji<&L<`4zMLIfIG*dt=2?%ze?DmDfpo!%DCNkX%#t5Xhqxh3qrZJwl zBi@0mupl`fAK?#qH!PofP;Qfu2g;Kz<*xmKU`06GcxgsQyyGSCV%#J25VA)^H^#{0 zj)2EgsEfD=X;s-LOZZeg2Hcqt6W?5FE>&?R;u+JK2*d8?U_m?XcCaSG#91cKoRa7) zXtxl9pc!|UkAi}U4YHl6#$QZ?MUFdAfE4 zPo(M4WeTjrc0%~}^_yX$A$|fwU7CNQeRt>!{V5Q@-h_`hb>JB^p#$45A;>dmLXhob z1^*VS&tuIB#&$B~Bq7Ml5-S*sruY$b>htNv=MZLdID{jbJq3;|y%~xx?|KRxxlVWM zW}3RDAtqMYFGD+-Ygw$Is+Bg;O0CkyQH7?B6AQIiWVsV-CIT8_>k!K|K*S0nX%`xX zILL;HC{kogRu7)#b~GqNK1jc-F*}C`-c)JHyk9?Bs|1W-rk^)ee;cce^WM?vLB4^S9^m$Bzovv{Lfqe_zKc-6=itGnv^n& zY}v;XRKI#k;F|cm-2~No3hp>Q5BIh2--3e`6{FK6y73-kv@;=&McHs+P;V&5LcX8He0e}E$SNIpOs!W?8hxrH5swYU33_bF z^1@z@ph@S$eKH?CeE42C-q>5}k!oZMJCd?&y!G;V0kP1)(Qp*yu~mOI+lHU@h$ zxq&u*JEo_2kHz+sP7}t03H(?v6^paqTBsew<4j3WA6trRqbU^F*lsndN7n@ zL+inS4ryT7Iqk7Klh-xEPGxf(U-}M&JK$R+MpwXY4?A6uWDJ=Nfn5VZkJohRxwXAt2~RL-{HMWqU4=H4@&z5RZM0QgImO5nd4Qq=SU-a}4J2%y4+r;ti&( zKI8>ueAzn~-XYnHpB{#qNBqbeE4i^bUUW4W>QO+4p+e2h9hz^95)Q9O2L>M>-SpH2 z9HY*Ld=!^A(5A9Uh90ty6=oS!ll;#hPfc?BUCgv-ktc~^4T|9+Ye20BQyDEm&3HKb!*5ow%B8A2Xg1+c$! z7NB|YRsq_CTe8~uEy{+|jRPH`S(H_+sHfB?Fuq!e z(m=r>z`f@VlisoY_s_z|hXx7=*(!R~EU_vCH5T(jlLp^CP#}ob5K?jeB(8x;8I!%- zTOb}s-oHs8vs^q8mkWAKqwXGTvcV8DFao1U1&x z)TTk96}pg|N+}LsT$PU7(!qv)pgQ6a1cRPSgxrkV>2Mv&KnG)1nl;kofsV%f3$wc9 zJsf_54Q1T!;>aiM;N|=C;)#k9?YnDUhite3YA~cjF8%9UygZOq#qMT%jdW)76)bn9VFo%Z>IXq<0@gG8v zR$GG(yCii_TP&cvfxLzsx1Sdq9l8KJu-x*TF6^PFQEjBOu{m=(Y z%!hpBNp``P{zLSb!v|qoI}rYu=NKzv*oWMcQxw&w|0_91H%IXv$?WvXZ*D(*bZwYn z4+N6zWWE$uiIssc%Xq)ZV9vNC>dqs|3L?|6J01vqAn-s=xCxK9u+ePShWo=kZ6045jO-{kDN0`~GW`ix!fIn_c%6 zWTUqw0D_p3^YJwZ%AFVDY1C%a(hvEyTq`liTT0A873s(eG8=w{R)Ux$k)*Pi z*~ev%;UMA@ck;$fB5>tWhci@u@gxg;F&{d|srawgqM&wWFsl)qUI!pYHk%bxIcjG%&oK%z z`M{$4))AoQ4xLgi7TfhxENr_o>|stxsM9JcStPNbXsA#zkEO16-p8smi{ zVkR+>^eCvhJ5C|sxNV2uFWUzFJoGvW-dNU=VmAJSISLL5O#urQUrez`C{d4`ho4~@ z8|OB(AiTk;dhXj;q#io+ZmD!*qbxT!=FTa$7fNUY>Dq`xiVA4Eq*YbsdGa+8?Tf#o z=5l^R6-(e^UL(j>p>P5hXdSeYc-FpnPqw`H342uBhNKtn-LucX`~eyr)((ypA~bU5 z&5r!0w;B-EHsa<9{ufegA9+VGcDJdkiTUBC!rcl;!G;=k-+vzEUT2O+GSXx1wSnLr zk@uKC@|L@YWvwGy&;1k!hP=sGSOJ0F7IIgyY{MnOH@Hj4YI8wuzklrNjpd6Fa>rEw zxb2RphSUZ>B842~?XZwYu}0W-A_b2rpF=U6!7*Nd)(Y5*v6gPPSlQV zC_H^!UBCer1Gevd@m#Q?Aszb)XytNv<_R(SOHqm~M^b-|Qrc!{d)Q%z(Y3!IH@V8= zSiBWvE!}`c_m{&1SWC1m-iU&1s>9`N)B@7u`nh;MdOj1xAvcZd9AAt%vPooJa43HB z(|2B&qDyhXm>ykQHQ_O46^stgV2fk@lk2D%4j6*xVp`0hbRJm=K{iW5kS!xC+P?lT zR1AYwhReQ~wrjXBjTd-nSz{d2=F#1n*bQqOCCJ8E=)2R|7-*`k^rCcb403T%`!|az zrV3JQA30`qI{rg!j%~%h{5bRrir~Pn#7T*Fz0;V0}t&VNeSki4}Gmoh+{N74A{7PORHjw~=%yqzq!1C&JyHk)u^Is7RHU&f<9 zGKZqh%14@r4bkSb`xMTgxIBZ$xUjI?0)t@P(@pz3Loe17NM<1syD4WPjJ}&|1g^N- zHEMYA04;PLKWK224Ndi5VGl#t0_Kvg3zG@%9*=$%??wko|Q$mCT7P|;ewi~N<7x2bDz+j0+;0Q*{L3)&nGaEP_wWwVqW*KdoL(P zoH zX!kJq3PKT|qshg7CqTA+`Bm`Hh2;C_nrxQ3P7LZ+?31A>&nIhp;Cu zG>v%jk7!gVF{0uQU8=YQ9}L(VU!vLZ{;z4g7la~ETQsI@9>nNFhcgP&1L7XBARu9^ zBznZ^^C*(5c7T2#N&k=x(Qqh1%WGqy{F_l_-jQK_Zhj5%K4!0n6xM;r^GkG~1#t@W8BC?a@bq{A5n67%nm_Qnf^h}7>lerr zy+`P_Y_X-G4`J6{&?ysCPPQrX+PNtHTWGe**H{ljOTO24Y+if?_K+rwgPdpuev2a4 ze{K%2prDIX0{LA?#KUjB6rD(@#?@;UfEF*}|Go=9lg8zDPUGskqw&BQ<~w@spsPLkoBr9*%MIXrP}@cN3DN$MG>bLWBO+q}aAvN>@oU2yeGB z?9W-ZoZ&4@@U|ub^1Bx>6$btJ6tw^ldy8WC0@|j34BHp{-!Z%wEe!gT-?D57A#Do- z{nD~*Jg4G0w!~+#_0d#kNjbJO0Zr-p=giOs6#A+{#Lznc3_Wy~lruw{Feqn9IUT`- zL^(_1j*zq|oesN>q}8!P%+YC;((uQWG9~dxcL5n|vyz~syCfd}>8fN{yEN1?T>u-| z)iX+iFP(`phJ9(UrmrN!H|O;a7nQXo@y&F{Ej8lAGHjl2bO@yZoj3`ED@MV;`tdFv z{9m}U1v;>i)A{n0K9|*XW7`hRtG~k=PdP>)0W@*P=9pc)~-p)Z7ZKVud13e{gi|3%T zlF*r>jQcE{gUd>D*3H-Ta&TFhgUd=2DCSfzXPndVxE0%|Nsd67LtF=2IK&;658s4r zOTuD~-1XS@4kzMcD`lwRWXM=i;}xNt3oNSJLwq+@Qsmi6*1GAnc~``BT%P2)ZeAz*m_AzDhbz=e3#ytKF6hz*%=M z7ff)PZ}=ISrGZQgmnu!1+L{y_&!>RFSI$IwgfbaZS{rcX%v!r%ujNcM+e-UT7@Iq5 z?S0*e*axraqsOK@Yc}#q);Wx;G>mI4Ydzhr+TL)jwY+jB*PKYUGKXlDbU4pzAVait z&0}bOsiWMmCDc-C1m(c1(!eX7wNfC5R+Z+s-dfgd)io*Jy!vJb!=u)+=Hchenn&YW z*6YJBHg090({f&w!A;?XL3r4QHwP6(y!|k|2^Xh(48cAXVI`J2DJiy(t9dGldvlJ3 z$^a#2NwD744Oier_qyTA1i$&pG`OhfZ~#$&OVQpQVu(~_C{bFLC(E>KhUcpcE=m`W zG2$xoMJi`=@&HV0#pBLd01rc7q8x@)nfN(pNo;m!q8$61$U0|9IUT`3r=(4DV(qG& zSi6dd6UJ+5;2PYNmgN<$uU+W`;gT}p+HZU&JjdE}q;RPKHBAv^T9VbuWGr$k6QJd6 zA|CB?8)&U^2DxEP^8!>85n|eCA`_IA&X;YQmStx=myIVbD}$2cyul#5ZSxZYWGlmw z3UO%*KXH#<1>&t5o)-RuOx$x=IyF%V2Dv#mWQfS86LCFMC^3aTCug$vb@%E zD#O-J7r;hN${L!Kmd$aohAE{B$g!XF)C@t#BsT`IIVm~MSB(&J zQZgxH{=x_NrUJKgQ+&D~EFnc9#iXQGUmxF#ZnO3tbs4~x~rrJPH> z+MLRCRwZLfu5&O|O~*Ffbz;BktW!=$Fhpx^o^W+}TN|P^msO@TaZhtuoo|K%t_{(e z7oe5Nv9=*v=>m9c`|M?+qUHtYCd#pG4#=u=Kvqr1LDiHdet4``xNWbkO}JFD+6G&t zW!cDSS)RbtvN^UjkZN9l>Yav7&1F?TAU3tp&?W+EyiWy(Xyr=x23 zri5V9daBc#KqQl+7G&!s1lb+>3}IrEOzvvznRp~4sP)Ymd*(!)$z7>oIFhfD=5(FO zUFl8`=>fvpqiFaLTw9wHbx~%V$zw=fZIBV-Z;VMn!LM^5#$ng5PE zd*t>UxlK(Dg2)9|G3ux`5Xo0S4o#|aXi}X+lWG&W}9X-ihK#3fm!gJDTNlbXYH!II%YnUq-4mNI$*-;&jf;U!t!csy={ zn&Bb3{f5ZV>*Ie|L`>gRXq%j)b4?B{YI0~%BedwcENB3O?p+o%1`7GQL(T!ZhGLoi z21kfBn%v5{ms1yVcp=_t+E6UhmaO)&PGZm)OysLJ@uCf_3@>sPz&jjgBA#xYiL{s9 zs)`<@-Uc=oraQIbVe3qkWB(k?)DULcXfz^CTe3N3C)l)9z!0wCYltx|$*Q4e(9(Ew zKXz1?`Z>925kGia8sFMBCfLbmvYdFQhT@&JDxn>%x62Z5+9-gK)0S+Gc}@J2uU#n+ zYDp{ACkR4q$!gc@ZcZM|TOEmL)RsPM-o>or3;Kpo)H62k7>Cyw6g74CqWw?vga-GG ziFWc?$6zUEB0W)in_e!4x~&NSq3&K27#`(RG-nz%Y|2+s4yS4ir*f8*Gja{Wa+Z{1 zX2M!{*)co98sT1(1GgFz3gxUyPDe1oQNEILqNJJ}4%XywuqKCtH97apHzst-*?KvX zdJYF`OfZ#GJ)YxziE@BglLN$>93a*hAT}Sck(W2-zNxva8r+1xyiS5R*v9N(KD#IP zJ&!m3OAx%g_?A2UCGaX-#@-MF+sd6yovJFn4M(@6ZEJ!rkWq?x?y=GFc`cG1KUQVx zDD{ok0pW{GDuum5VEouXI8TT#5Gh%-m>eZgtv5Z#4>IAKH-2dV~M5m!dciNb0r3d>POj?L+WprZ_jwN+Oq zZnm8}5i^H)&e*0yf{rq@ov|?Kzq!7bExOyoe)>>!+Y&ch$yzmzL1*)<4=QW6?R-^o z3_)Coicnn>YlhhcLGf)xOO(tzpKA3H@5rO?8AE=GK}ks+^6T(-#bLTdR=jr#Zl_r64h{g$!`>=*Ek5 zPYUh@o)kP6_-vB{+*)%8(ODAr0!M`mZIcg{$>*dF&5!cXuaz*)m>A z)DkX(qmuh_xhGSXV9F8vQB8&b!E`uIO4r4 zgN|^QS5bmq?nD{rt0VN~E{TV&&$SQqee9s8CnPu_9{ zySV&I<|fQxm?Gud%n{3WM9h}5)@IOl-jL1VV_gm(>xhqSX{CqvmMpvEt%juU4K8K9 z5BJ@6M8KA0RihL8T9VcI>e0I;dxtR%;M!^mOSd+h+i4yfvK zBEvdiRX4W}6m_@T&k6VH43+Y^2m_{^iE{j^fmF_t)J*%JdGfXb?O*vEPvtKkeDBe# z_%?Qz6W`V81CQ%jYeJQfQj4dAlmd+jDLsFB9kB`4+LfPTtpZPUZXd^>gjhMoQ$N`Ww3PCMCNEv0vdp@aCPzj})ls9Ogw*;lQ`&1JWb)Ed%D)*Y zt(R(h%u%V)*K7J?a)cY6tZAUnJjdu=dy168ym)cH^`9rNlYTETQdbw-BmU`L7uy@WvtFL)63SG=$FHaw zP5wk`a3N8FFin9kd%W=4<9Ua@=n=NFFdtvL8S>*PhP|LCg&L~v zW;P(mQw(>3wG{D|ubu*;T&6S^SFM$yjGx1adc%nv#n7R`)F9P^CI=Grbh^-85_f^M z3Mt!|h$&xhHb)LU#pFx@6iIb@42^Jj8>7B|0aHNx%V|o=37zT*46SBukkDE^RW~#| zXb%r`EU;GJ0o)2dJ_t_^kheD^XsrNcFN1;BQfQUfH?O6LH~95Lg5*^v6hC3NyuZBk zjQkmz-o#F=Wv$icS$(m6;^m5cqt;HC(ze76584!0o0cb^mt8wByS#mu%Zp@>9=|cv z69B@mZz7_6qbVmSswWcUogM@U-Bt`BK6kGea)O=uoCAivWkIg> zkRd{6Bs$_pRt-BCRhZ=N{IAe?i3q`%i{eNgu8!^v8d^@F3gF3jQ=G@CukR2k@^*t9 zbkrMkv{@S-xxU(%0H@_LFo8ysm@ud16wxFGD=mwY%?(r9_pe|YD&T?oMu6N9ZYk*v zNb=;(7GF-Gl;?%lvN$WxUe}X?=jY`VN+q`Pmbhj~?iH$ud`eirggY&3Lk*M@>(pD+ zgo$Ildrzwr!<=j__OTxs(A2~67QK8{_9$xzxE|%H4PWxq*kfRBBewCn=7YgWlfFgq z1AuX4NXo@7B-HfZ)9)l)H8e+72M%@@DX341-Pr;jt@%+0f z&STT55)V&bq8zd{PApF69{v0b5QHyIIZwz=7`3TIpsl$+@wL-npq8_M`^;;IR#G3svXoSa;YlJHm#Y?}&mH&sZtQv?}J%u#^;PH4HEF4RZ&UTS?LLf5(1vagS$7sEQP!)P? z`FQwPas1lAkb|lQLRDVxX2_MVuL-=mtq%aE?p_}lH03Oljpt0Hhw9T<9Kd#`9a{Wy zz!}kg2rB~vsGPa$3E1TRb`jEq2u9Q8AgLh-NezUgR`nqgWu&Nj20;0G6W!Bpa*u675lZV)-hoGmX+68d zNaKp@!G`Ho=I-I)!!I$zWBQiMZ}7@`+U5{NS}mK%k&!}naSkD7loZtKn51B0JaN%H zq-5_?>=9X39G`tpS|L_BX%}4?J(8}wDV1YH`-6!nl2G*{mSY1vrBDWWwSJKueRQxo zoCuq?1slaEyTOnki5VSlqaEOuGH1WL^;taR6-kbRZ0gN3CRhsRSOL70~S-m z^c^i6OVnoc){v;rx*FP&?yPfcOR#5MA8pKaDQ&%VsWo#=qZKW?W~(TY!D(Tn?f&bAAaQ< zF0AWz1XQ#}a8NNX15wWV+nZx)2nbG03fb|LxbN`Ra%ws}O&e4Q^5D6STFeE_k41@N zY+gbp|95?1eJ%DRmk3UN7C9O_INoa@ksdSNF>I)bZvqs2GP+L`diPa#-Oi8^UzrAx zI1{l6kGnsiT?#oajs?_SaKp4{f>vxrX8}9~N_6wC1~Ur}YWgGG{%spqQny{XPN;wv$GhV6w zLoq#{U{1r@U)KM!y^yHR0yCcS4u+tFJ{}%aXE)$vy@m#sguKFo&Xk8}5D5=jmW^o@ zK*i$FHxWEmHV!yqB&n9AQ(S5~SkzRzz%5xlCYQeZ67HSB%?x^DFjtl)KcXWWIuIk- z(t#~@l$W%}$392d=vs2@E8LO`eYM55dm~|zB{jkx7g=l9xFma=m<42c$Vm`de|Y%W zPh>qV>Q9%8K#~pTn=dksaN)iTHl?p5!74W|4RCVjCKqM0>6~S18+v_4#*N)jPn#5` z!B**Td=rNt&-JsP2UlvY=w6dzLy{D%KOOK#p?dgvt7iavrv(eQG6IqkU*J+}H@Jg!UGs2P_6or8- zMpI==0xK9~8-2tC(#VEyfB1i&L79_$tu@@Qf;))J2wTcH#9cz%EI_x!wc);i5||tY z%nKJlfy)558{WJkYj%a>2jj3blmMXdzz=-*3CRxuQ5AIl3n#k|0;|#0&h2x^84rO{ zBX=HTavA9P^yTwy@}Bmr8hj z6@p5@s#kAZfU?}{jSHeJsq*A^p-i@)YuYVJ9)WUHqQgs`;`{@25Lj?1|1r7Og18K( z+LSEOnMK)uhkOmAN$1N`Wm=ZkG-+8LhG|(d23;#)p%?`pViHwt-TEG z3ziJSzWE7^74TVM;7w8!!)(&BcbG8;)fDE|p0qM-&jr~y1`MrPkVX4V-va3hie|xl zxZcn?X3Pj{=?cSaGNAiSt_tS>lYRa^Tj_-A8{%Ey9kcFnDGUe}1YymRG}A zFBGV)^3xQ;f)Z!4;RSJ5WSq1@A|95$nawa8XCj#Q=B*LPa<{iOVJ*wCb{~a7Wk`)r zMT2aX%a~#+yMm|)0$M35$cp6?7S2bXpZ;G?EH^uc<#i2V-$;-K`s_t_6C?|-CJPf@lN`*3@_2IBR$U3W4JW6& z!oZ#70#wUrt2%OLtEL-0+tggl$T(qJK{qI!Tj zJwa(XkxxBiU0z->2#%1SDHYbM5fvaZe^M_3v3TN=ggRBqSV=*QJYz_t>zb*h7;mlY4{Cp_`DTg z$Q7m$ke38+p8oP{s0%9IAK;QB8ZR}l!Dd@tiOWYY<))L%fGvYG0wT+1&f8i*~;)377GKqGO;?VVm|8`AhVhq z4>lIVI1Ss~%0%X{WUQ>OBq5H>NA81x;YCil&Nhvyo9QXBMRqQDg#Ye zLG7w4LrPdO>S&^ESd3cQgxI7cc^IWD#2fQ7USan5IY}d6HkO%vkhTb~yDJlR<4Ix6 zg<)NExSmcY4WCZ$Dnn4_>POICnP?k%zdXx2oJ7V~t8~~DE1+u|UprTZsmR@%@q>qO^r<4s@&x2i z=CQ#GXF0_ztE8h+fbA*Y{OWgqMRww%8__;M?aD;k_$EOEU7U${Bsvqpyt6DjU%vIqVuc!#hESB;4v<9yX zlyTNP$F3$IXQAeSuvIyjrZSjjp@3Lzb9^c-%U*FomP}>>au&o@J$cyrTHgfcEEJ&X z$#Za8maV!Vs}$!oXj0bTnFZOXuc0z&Sv~1uij#P%0>kIhO5`k7#c``ynSh*ye949; zCTCMzn{i7Mwbps?@Uthsz${&yaasd}`?l$+%$X^9J9&T;=`J|5DeoX<^A`i@D!O21 zalCWo*mhgF6KPpdm^ce=0Xc$ii#NOU5;F%Mq+F}PE0^8=cX;=`JG=2bsWpQSNrq=2~Lkyr&_{lMg?74Fl(R{?})J4QR1!y*05?~8C^`h|7*_pv>616h$&`Jm{=sX+Yp)&T@@nd|J&sLunf~o3;Lw6y{U$ z8WR7zFMp4|4B9CNf%YM4s5U2y)|808siydl=dpPl52(Woa$sGY$v&*pYJwc^KL!ns z*k}$yT@T@ndTsDV-@=Zk?wdF8CoCIZwbq7i7{PcTxHf#lHIdc^bvP5T5uJ%J#IEkE z2G_XPebwgvTxXejfI4dU>XVL-=n84n*$b7^fbhqDkp z9MPGiB6}=gr5592@)9^#O|WCF(psS$YnnS^wrj1H;IbCnu!KP$%i3<(-YKR=YuLxbw4_#-a02zLD9TTCtThIjfvfb!yobR0_Tl#2?3?I3qf zD(6g*C!aqnb>DYbc*QW~+RzQTeze&C0V2>+zBeVi%xNm3vm}8tSJ&Dgg5+M;+7OG8QIh(( z4aLSpmN*mfn3Nz1dFwFV91K$(@N>Mp7J95fG@IgtFTM5P!MR*U05uJP8g#0~8bonJ zY&OMt6SyoM+sDwGWpSkp`@>CfUcqdNdu*$e(Y_JGa-8ikw&it{Y-kQ$xUixz9A{Y* z)hzd!lnBlfzkK-c0VWR21IH?a);0ueHncUcW?9?V5EPTLm9@6umaI14uQ13kt;w7? ze(+$xTdxS78zM7nO`r|7CZk87Zpo`Nh}*!1=nLfr#X{(DL)7IRY~ha0+vpppy3Eos z?5QE#k`&ZKEU6+P78EA1b^LDUxH!fCjnU81n-FG6s-P`{Ov`Uyf!`Y%d=5C?lGT`y zlI7xKyi#M>%4zp~*-;J>*n}xoIaC5Gf_~7Nhw9M}e+a4A@(Vmgj+@})3)fxsxLpp6 zsWDL_5=(XHQ1-3_aU2&XVX4&+OX=iGsQc3qugp(qg&645WFovW!6X{`~G;Q9Zt%{~2s2*1%kKy_+V^m~?f^r}&uFe%F2zgZLWaB=d~k z2`-p8Nm5XcD{mVTGg(lRfJw4+J*1X0(#|QFk)Gw|g0Y2(fg}aBH%bcXrGHA0P{>>` z8jtYDTrgIK@W(>)=_rpU=NW~)c|)NdA)|kW?nL1o$&9oemNL>KVd?j})t7#+8ynM( zydssWjz`#l#sB&Ebx@i>MoMV{8LvNvp(!(Oj~Vb9=oxdg8>?Snx|G zNf1XAPx&^)EhslxaKwYNjXC;K93MaYFWR|!_!+7l9f`TH_Hrp6{TtfB^^6<3=%5U* zxHQy;;cG-)V|c}-g`>L&NEW{+yUuv+azn`CEBs1!CB0mCDYLBH-x$8zhm6^6$mP)I z%loolhpfCHj&Qay z-=WK59*yj`HP?kmY=RJS*@KT!OEr96+^n{AX~?<)dI5pLhcCXqj)CF`5FWvAYv95{ z6QPb(Y$dkW9Q`^QJB4Vs8aAwnm;tp?mYMf1Km7}Qlmyoer|6n2Tv(CfHTqFYML$3^L3-YAWJM{r zeD4n*#EH|;1Zt|-pavhTN%6vur2Z6|-5f9>sc0M%Z9!7+$GlAAuT_#;e=Ref!fs7< zwUV4)xa^}()S!Sm#wVfg5F)^EM#~>$-P|{@dS6FZXF@6D=*OXY- zBs73hb?1ma&4f^l3wY=!q5p>g8;0ZXZD?Z?KXGc_Lq8gJUyHj4F_^6hm{^lyL)bP! zj$tFy>SH0)#E=Tt4Y%fkRx<6_g44u9bO6=Fv?YYFqDs6gsWm4=4&tn2 zaRIk-Zs1&HdlEk&(CT;z7^Ck$dh)dfkQ5H>cATZ9<01R!Q7Pni>fXic!+6rOrGp`V zc^rOje<-n#IRy^d5?Ap06=DqTL}p#>a(luaZXOJP;cgE`pg~#*<4*kkuKi8-!!YQG zGoXzIz>;x6(E|3L&TmFR9#N;^nU{VD3Nq|ojUqg+?Hl}FuC|a!?(^_ps^Q78V3cF6 zJ1$Cv{z&Zixr+Y9a0ZFdx*$X8H}WDt7Ds&(J&2(V=i+h5pz1;}M440ha!{CP1H=}y zjt+%*gK5#%W2Va6OI-U_rh31+o+WfE0b zQw^W3{oY=6&IQ%*wNxeYYuHVkoGkRmv-JH3Q`_OQok~!a5%Z1_d<(uL8HFD_`3_8r z-YxMC5+dH89!(PlKGYZmVUdNF35QDX!9bFg^81s#q`9CopAG>^c7zNtv-g*O{1aUr z^J~8kycJ*kirHa0JDr~V>6>Wjy7)S3m#{?uyZFFR%;?Ggpq>~h`{LbKe}VGCuCFs( zpxEOLki>MzXZrR6LnE}r*HmJT3(Ysm-lkl9izLcEX(|iB5L?n2C@>y;!FZN1=kb*k znrA$@9e5}{ZxFLa3l(QrNP41R4+Ol7!Is!922I#Lc8<|r5Vya_te<@F0-B7oDcnI#l(`W#VB(Jm!`8I-XDEPjqkq8k;GwxCO^F;#C z;0I4(&cGd!s&we*@k_X%Feee)%~=u*c=dp|y6bKah>N6@qG+wAib>6WtdCgjNErooZkxb7vlk3rYwU`rlUg%h*NaISK=Cvm4d@24Yy?|k=K!z z6gYY@ys#8jUo;Cp0D zyFW%jZH#N9jK{suK^I4zT#ozyDBp6UZGgjL64OWp1oOR3_y`NJQCT? zh7w>>*rChFt)Mc`NxKSqjLfq$hcKkEcE{I-U!WJqgCHFR5nMa$xN(+_3wI-Vi!+ON z$K#cl>TxJlRxii5UjOSqkUG4s><2K@Q@B*C zGeE)TnJD_;YKrxQH!{#^(14M?o0V--W&*I!>zJAGp;Spfr?^|Bp;r^5-dpF`zMMCiIOpB1_%@N}$P`C`P=Ymot&t!@E6-p-hee%Nj;%9r=5DnZoY*{uko9=@AU@7 zIqQ@$NA$$!+zr8Vg!U~lNUhH~jnoss^Xg-Gp0Bwy*mE0(2%lR$Jt_P!xMA5poWpjb z*M!fnPmawA__-?qn_rhBJ@B3)+0NF^8QMhs))hSj8q;e6m}o?uLKCJ$8DaB=8_Vxs zGxa$%u%{5Bb=|HOxb1{`bF;3`JT|%rd*=0op`?sCz9*EJDn))bl|*pSohZZW_XHf> zCFS%8icfNvlr!E9qFgsDH961mYl$M%=yQUW`kbJpo{*-u=?vR+REQv_yO^B5KnQfb zB-PjkhpyG;`tQ>)A}+dKj7j9{2quwlYKWgZ?9It6UxkRLu2)D+_lB)Hi}CpgZUVzx z*Gh_Czv>Nq^`!7k2fF^gJ>fCn`QAcUmuoOgcC9L=#d6jNLTPX75)jzC*CmF;`V_T1 z7IazS7wk`rH0lkQbr!?cwb@VqAK$0;Igl2&?$LT?%GUm^YvUW;Y+Vx>X0xCEUln6Q z#3l**w@#7c@=ef~&o(A>%$X7`1gb$JR6<|o1QLWfz7~~N zqv|JqsG`r|e!V$5XBC?MUnypwpF=Sd-ZtfF|JG&X_;?C+n>&E1I5k5X);CGmzqMj_ zdjX<+)Av?mm`rbgo-KR&|9EL!Pal@TCr9ufUKNJ;ke))|9*qC#*9=1rqZ@J<-H^lR z24Qs9HN*h&cJCTuFu`!H8G6V8Z-b7L1KyDH3a1)TB;g_6qcj-&7DU2BJZ(D|>J~)8 zgUUAtwhachg?z(tr)XAAj; z2VFqM%4*2LYXimQIlcangV%-}yf$zUUji43>Nf&07`zr5I6Uk_$m>9XeQJ&ivdSt3 zrX@$5J?WPkojK@iFh~BDUylq1mxWq|2Q}v!N)|-IgK7!`$JQ20hY+qi7&10*ym;B` zV3=4?AUqtS0V(#++ku@ZjAxS^8a4IAyBaWXXE^_q;uIwiz#(oQd=(UC`8kDPN{^h;hnP zwP_B98gekyV2&|5)#q)fGtq`g4RLa2s!cjIr0OTcmll3cG->+1GK4dJEQ0%iz|oYW z(um^3rr*a6`9K#VO}|%8m-x^0`%~OQ7}VoyM!FGcnl;w`o@SFA;4=vDxj9;poVy*Z zVL86qgi8z|&6mN{nWOvDy8Drw!l zRy8;%k)yWc138Tm24VOJ7uqbxjC9gcXUr20VjT5J%bB3E2w|U9Wz8AOSfR08ogI(H zgrK(1dbwWXm~g2?x!O3hh6yknEy(u4JyAG-c5HEDfLvEJe*1e0CWCO!@XFvdh(qO} z<{J#cYev_N^ml)l6KS-qrkQ2!?`g&{e8#CL&zy1qY(J9m=^oMZnCn1hno{?3Nrj^Ip`(<3sXoBCY__d%kZVV=Q#P!iAB zzSc7_PV=!B4*jD5p2M95AwV81G_i08nv}oRFYI4hfL^uS%GeS}0 zra-w2qo{5V;fyI{bIfjlQMv{>W;c;f^8!@AG67G%eq~OjrVHTtKPhWi(p)y&fz)2`6XOfqwrrW{-Cl&8x0w^=cYoB^p&(uSQW25F%mWKb#` zcG81%$~2%z{9apc`n@uQi6-)OK4MQxndW#xgVWNMWiD0*@ z?<|0I?)9C8Aw0e^iS~G#gy0WWk|!)!4#$^2h500&G@8&v_&8P4!^f?XHf>TRJqsoU z^(adU>fx3Y)Z;ECNE|3Bn6W7=OstO2C?;sfnMhkQSr2VJugNoFc>01EQBoysRkupo z!rnv#h*B!$K%v3}_V^4(P$;RA*TMvUk~!+}`POeRo#5@+rF$CJ+lByjoT>H>PKxG9 zma9#d63n4D1<{*i?%GYx1j9kWzR0081yPz=?%~Zha@PZrtq=mtAf;_}o&4n^Msjcd z_yt2m?aI5)<8&AvDYV_5_!Zm+ftmU zY=O5#uMk}_uNk`ALSHQF%U*NR5tf$ZzuIXJ4!iAO3; zJd#g6B3B#r&jD5?0js3~RIemvwI!QlZ90{_q{Isu@-0sDPh=}tdby>w{|%pNM#P( zDhY16)yv=`rQu$_5k~0Ctsd{84(H?h_ymQpvhj-$(>JAXqoBr@-rNoPTF>1CA0-4e zzQo{O)z=WPgdh)IBNzjuN;-x%D_RTY4APv~qSC|``TB{WTc*O{D++y?L$pd0YUEQX z2W^!GZ8=L~YdaJ17?zJY9OaAKJvO%TsiO-nWR1L|G&iU_%izV8v5M+l25lKZZ9Y9> z-}ui97}D6)$|vCDdmoX-mj+>(9Ao@jX|R_t*7v57V)6h&jv@!|hALQYP0J1yC9y<+El^BvF~es7hf}H|LH> zqPv}Y4uL8uy2$Gba!^!hP*j1DxAdbHz2@B8lC=DrPQfG3XW$$lRT?0*rdwPIR|ZSD zbgOdsRF%W0D#NGNDij;LG8dG4Qt+sDHUYcf0g!0GJ3#xh4~zZE+>qofhF4F{M0#F! zj-JY(thIJiT_=ZQRXH51%Hdd*Gq~#7q_-Hcia3_L>9{YfHJ$3DIW(&>G|N*=PDdb= zd~MfY$P)D>YR8jj)z4MaEjJBDl3)OvDwHIjFa07+n?i2=W1O`SO|l37;&$ z<==WD_-gzQYsBe#dHkMDy=H(@oR4y_Rz+CL+c|Rh7VhzzmK_z&>fO8Ss0d@Z6*U97 z!}k#7%cn(qdk7y&?JMG0?gF$Gk?*X4LD`2bI+s<-5YO@|lM{?p8NxN!O4Wey)<$h} z2v=nYS6Z1nY)i3O?&jRGt+v-4w#@-ul>uGzmQl(WzLl2M+bM6$7_5~pfEQzFSvIL} zabzIYya3gKO$gUqR=47oNmagvTKN<=1Z%F0E`T9cS~ka|CX!1oX5GPC3$~W{x#>AZ z`&9;RrB!0XdU9unn$Fz}RCyC$J_g07hj^nwWl&ZS2@guv(5ylN5}H3C-{~R79aaWn z&GkJ-M_|}hC^|fZEAjg(2U%4)$K)y#mgVci0!U^$e7PA1jja;I>++F#TH9YmNz`iRfn38 z*hUF;4hpLYg>9Cg$NHwQ-tjI9$F5$}sl1nYHW^WEv#qr zt(+~>!gr?kvQp`P{S;nSguCzino!nauBs&nVIdz`p7i@y@JIasuM5Iaf!biJf{PEA z*rRxDwONkw@Ig&@>iokWy^W>I@H>Emuv(~dqO0m09#tD2Xn45FsEOzzdMxAV^LfE6n`A1x5~A_Q%+5^sh2d-Rn-fq zC0VVt9^px?wN+Ds1g4fsSDF%!N@mL2p`x@I?=PW!DaOjm$rP=sPYmjfZ{A1T-X5>y z_n6G%JGz<<4YJfBx>yrDb?%;h@l#|o1`9;*PoQa5^Y^~gSSJH@)` z;>8Fx0Ulqz+KjVG#@llmB0KQ2-M`^v_b=g(7BR^&(62F6=hDmN4Z`vJ@(b*?LnAaq za-4m=F+okP>9#R(P0mEH>eU}N;5YaBV(2KG3W(K|?;FM3)CJ8g*iXem{?o<7~R(&N#cNSk*>8D-1|PYO1{ zYFkdr9Q*4i!kfwm-+T1xCqv&*w2{t^T7a<6x|Ft(w>~DS$Y(bKKJJouirw$f7zb=0 zCB7T`gH!Q7mi+;KG$yLZshBpYZm8H*2=%OpC<8vJMaU>baD+*nHUUPNR>w z3YV)I#t@YgPPNI|9oakgmpAY~=)p1Czaf_Lzvpk!wIR6!I+c_$X00KRf-EE(NSrY! z`W+6z9q~dwUZ~UL;FKok_U$Go{-=?9nr^-p2iorTwM0|AQwm`fw4Oe!^i6P0Ccwux zlMq~iEfC!?JCYLbfoO=YxYg$w(W#gofa`VU0Z1)_?iG%mHAG+BitCZ+O_YOS8iQe| z9?`<)mh3etz0Y%Nt(Pe7L~PhKeb|yd^AnJ9>!TMft9`}<`>bf4gJl|nWhiUvjwaZL z1f#u8m=8&Dc5FQoRN1-AMWn?vBAh@RQsxTmwL%j%;p}*@ZOudkRc1%SVnkX)P$g9# z168O#)Y|klwPew3mc=T?W91D6;mq-pxboN$`PFqZMo zquqzkwcr0XICpc&ky9BSdyDz2_|>pnBy!$YMLk+ zomZs3Z4NGJ4K9fa#BO9xT}2Vrkyngb#~63jnh2ORDIO$(V2a&0=#2f((LVUUc*3hS zr>lpkKmhK5!l!f_2++(Y8 zio3Omt9V7j(2C+&tJC%;M`WIk2V8fh}zgY-#CI zYdP<_H`->iCHW|)t0Ac zX91fQjs*~o*-*w%7@sl(Wflt{d(nMD8$+4`WgJ=GXIl!C+0sNWftF-rlyyrXGE1^* z(jpdv-RWLDDQ5Hom~fAa7RDQK0&-{#l#y50r_1yI!pwlV@Pc#^qqoFj-gp5&tkQ>&)z$!=)xz1PEQZM}b~zI*!;-O+n1fI(ru%T019dtB zbvXN=MQ5UASd6tujX9N}UgKCJafZfD$~>}mKI46+-0d9Szjp@L$n~8?C7$FU0YkFH z4(_KjfikvY(O#XolG;kf$)uxusONQ4c^XQS)YRY_TYmh;T4xx|)Ivr1*)z}v{X8Ct z>I|CUT%)<@oYTBYx^QDIG`C!iGM?TNpDIo@Zo50eHBUfJe%<^CHiB*C61`K{qIWrG zow^)`(;0^2@;03yovQ=xz-{hzz@4Eu&N6wljThVQeuQ&n=jsQaPj0I-6vvr08`7DG zJ>Qx>JV`pUX2-XdwcbadyP+2q^9C`nhosQ$!l!^bgLx8ydOPU!-YGlBUYW$cJSjs{Ccla_xXTZ*;INOt2Cbl2J z9AgVsmffAN#~YGEI&kiZQHPl{c4tFu5;^i<+iWd1+LpNCGo(grTmmww#x+qgr|vUs zQ4iH$(MA&N)P#AEI7~7}HrII8NG?f1mpaS7Ks1i;qdPi$bVYiD?TYcbk!N_BS&6O(0V_7fX&VUO`-g*IgT`7z#QA(Jb@HDiNlUo0X?R3rEHokGGDa(V0pFQ~ndRlS*^QY4b`c6l>EDNaNwJe|p)S`gK zCd&fqN|R*)p5c5|*SusoR~|XeT-jMU6RAm0se(aY1Vfm37U|`OJ&tb8h;gsy>kZCuDyjyR_myf- zkVA*6|6^L1;d|=e+lLxxk#HcPH&DZ;ub~^xL~4-H849JZ8e{%;Q1jkezC7lf`l{J* zEnjUn-M+C(CLqOEw2n_%Jh6al7N^md!#DbzpcQ;{XQel(+A0HXDz5G3T$kbt8QVH2 zyKU;QX23W=G}GA1&R`9nv32yyW&zr-=??gWam zPhu;)A3hW;g4dhU$omlA))T(qMv6yjdlQ8sd+Kxf)6d{Q!E+@>=h%gboRG!r1d(#C zIRPiV!56-6n-g%-%ZIIQ&K0mCxF+xDH|WBrsKFS{M0%jP)#IV(EJ;n7Zl7mRhrCl8 z&<7>Lt0-T7_}P1*=NQW2)QJaYDtkSF3g9q`d>s_Y0Uo^p9<%IYJq_hZN#>ZA;!C{! z!BCKyPO5SAw3=>4J+-DK-A1I)l7&2DD{DN0&N{1+l2j9`%I{B}SMWdKg>kP@$&v~X4zIR)6I(LVmxXyG&V*IvHq50Y*<9&n zV1vmgc8_w4mIUHndPLj|0lW8_m@KtI>{^DKBy%;mWYz*uA-1i-BxiXWIlzhUs>dNG zfHb@g?wO7(S$K#RW;U`V%tkxx|AJO4z@p?bD|zi2x6{2o41`82hVP?ch32Axr|C0( zVWQW(1ma`pvV<<7^B&PL&vGkOjCtzmT+s6$`~gM7rH@z}`Nso9eNNO!ZHjjBhZT2Z&6ISBPo&BQC{j13agJCgNFc@pd;V*-UGI8q8)=sFz78YPF0pcgz z$1xPo;T281qHi$qCN|U9AVgxk#w0eA=*fd2Gzm4*21MOL(B)tPPXR8SVUR1oyD@2hg(lfJIXsixoY{PtRVa8B%NZ;800-aJui*#U znqJO!?tGEG7`D^8mPBY@ay9}MjB+_Vft3S4m$uWLa2i_#*s!;cU0~?j z%EeC0q)m0lgeL5)bCOUxmxL0VK8A4a0(OVQlUoCJC$I*VhJok*+e>lAQ$m}#+2HG*rK?M`CL+V{8G-pzl%2m(0Ty6#g=!EY~Dnp9rxLAjH zCR#wP)fhQH7;KWzVt>YSoEywRvjK3Gvk3 z4(*K9NOwSXj_54QGH`wUrBC6Y5AS1?SP&SJuR1v=aE><}TJD77JPsx_+|DITzHqdt71;&*i`bAHpQO57i(zH~UM+a$YJ6I7vjR|XEaK9UFCF%s{jEhS~k%K>DL8_M*He*35kykZiK`N0gHWs83c^NYn zq!QUmV?io$*)mk3#}yvu-_!D;C7z^CSGhakh5u^^2L$S%(=m1Ps* zUwCNXKd-Gqp=_c>K{k;Sybd-L$M!kl;OKty2TXlzzO0vq_zOX{5B>$7!WQRy?4wTI zdv~s5AlDFIwh{^`?wt!{)lky*q^ZL%i{=#SGE6a89b4>T^C@b-Zu7g1fR{B{wbEFJ zfp4Q+Hq<-l&ko$_jJbZXkEIV^L4qI~YHCQaESU=~`f|knr@xc3c^qY;TwF7GmokEK z*H z-%@v^kcXPsmf?rUs848Upay(|i{CC7rP+ayb7EJ#%^TZ~HNIS3wTug^}KUt#7RzIAN>UTcq&jfalv-O?aQ{rWvwq91BzM zW92`degXt_xQZ82Jg>$jCd;_Yn6aAe^|C7zx?mjCeticDL7h&^g|dm>#aY6A`C|(@ zSa%FtIJ`39^~Sh8(nAi3jBBT!7bG%O?y#GM4mViIW01p_7$6r5`*2gXPaHl~h;rFh z=tumkz3J~$(-49z`Pptb9xlkh6Fi+_Pq69m1dW>EN@$eJc5|};iX;QO^E`I$r)$4{ z&XzVN2ZgUYb-cJ@)1dV0vM%r(#Nv+*RV98kUgTWIDEEx+@ ziM;-g>g%aVXeB22WKkuan~Q=uRux$CncV}kY5vpxEA<>3aO&ULRulg&U}UWQHSM(9 z2n-nuCKE|^%T$f*Bcmo1?y*?=vNfnZY>jb=X>3X|%UF;azG4bt8smaejgD!Y>{5KY zhR8nPW>*E;CXqs^z>RUaki9}dyqM?t^90JoOCShf3sqq5(iTpxHW{o4(d2_&zRIea zY?-0NG?FDj8wz*2n8@;CXk+foXAB(24IS_JA-^D6yvwMg%r-A1} zis#3VzJrR;7sril>9A8s0ksgEVNqF3^u#Mfew2Wf5M-({V@=KS6nmbAgJpKFZj;Y?-qhMY{bl#sP1k-P*?2> zf;^EHtIjcxAdbb-b$%`An`1G@H0DcpDJ2Vn?E0dE)nSf>($#v#@;Y0(HXmcg!*8FD z!-lGGL}OW2ZD@&+hi3OCX1%TZ;Yx27@_JAvIE23#K5w7ED29sVSt!RF;4T_z9@q?#u_+3pn^y^WYQ?1V7+k z?2C*nT5P@;n(WdwCS1Eg%!pHrcj*|GP zh{Y_y718)1+#>uC=H7jD1gp3?I%a%k2VJ6*F4!e%&OR3$>kvziw=q)ezj$?+tPX2T z$Ub(F&G1(yOi02+^5td{JEN3nhXnq=9Pj%!SmI7Ek1(8hd;>>($0Obsf9 zZ6LE?Zjlf#p2jP^TqKzo0nQO3N_e~3ww=X2@h@k zzD;5LM>m9~(!q-f+i=0W9iG+I-B&VE&Ui2peZVBB5bA7 zYis}iu<Rrmsx-Hs-@!>`_1bRv9rdegqdYHFoSZ{bYt1m^{xuY zswWJ^j?$rw;6rT5U^p!eZrp{_671sEa9VnRF}sa6eeQR~r91dyrek&EphWp-6F%nJ~H5VIdm+OgkoIBHv z*HU>o<`J5KvFN*s)Mbac*aIBTmW$-6wp65KX^aIw9s1OzXpEZkC`q!NW_w?-#kk@$ zJ|r(=EJzx%m0tVcvmaor!4nq8&y#ArzL@AhY6RQFHDbtWDkb}3xjZ(=Yc#%;Cp zd_!9tsTdgq@nD;T7i^N6<8mtu__e36eu{aEIco`16uIR93imdou3x&x8BDgx`=8ib zG=vb#y|wpx6oG|Y{29UBPBI?0h5%CA+A!#A|JtbE;229;_#X;~~1!h9)|$Uu@Yj2zE~@gy`XP86{)tdtxEyt*MB0)E=eoek5ct&p!seRdNHYIGLeH8zR=;# zWvQtb{U&Q(Q=K^4pMOmaViRG2JG&2cSHdTJXAb364p2;V=JmU6IQY)?ne3whJXb#b z0{+NSE{||&=fl(R@oDE+38jGh?Xy@;C%CgiF=QZBf+&9c@oR{C=hJ5>Xh@8#gioNd z#Y%Ysfr@M(Y)N@-_Za>Ijy!GrDmhB>wv8}!C|YCtEn6?!QT`OoE6KTd0rLA@1&C|g zRw`6bMQV-(%*0tM2PuxbXa8kh3md*Z=QXw6XIRV&>h#%N9!G&N%jsbGsn9WPH7my` zz@kyH3ELgQmI^i8x`3+=*va8v56@sOS_Y5BBs-!x9O8tmEc70sM=!P!v{L(z!BMl= zOwi3X(bkdnJsL}NvYkVUiZ$nL(YIhN_0;IS#B36!61Qk^S9`|3Pzp<9sY%a}8RPs0|(K z4O8}147-@hF$!t>+k>V;C)P^TX*S)eA*fZtCDw{oL-o6M*r_`K!kCk7(;2YJrC3a> zk-~vwS-`UU`U{wNQ~or~90w-mx{Bk}c$i$TTfjvmOp>_90ZvzvMlrVd5bZ0?p+K;q z5j^m-O0pev4SarI_NNA zxgnFNa=8@Kmix~zHaUypF+>}q-95eQ^~G)sd(-=Kd6nFu@!6aI`sMG@CdjA#VOL~1;n_YAUn{#N&p1@1q1xlevTsXqbQM^N z1WdI101q5L`9!yymE=oIRiBQKRB|BX({H141e#6zd&EeJkN(or-3y=N9pK6KuxX1~ z35Iy{N%W=#FL!+HPOB&E@&k#h-M66O(RxFBQZ# zfK>hVduX3^O4)okNJ;7hs&hS;Rs#+w%oWGp%=g)_0k2%9gtXv#g(0rF(m7z@$s$t! z5j303r{d$(4z_}gBJ^qxe9*hkACQu0Zt}2gQ}C7q3H&>}l5GlXxo@GgJ3pVoqhktoqG8j1cB!8H=g@ZH z3EzLqJQf1DE$uFcfs|G*|G{eq6^8egl^or8;}7Ns(1)kXtB^`z&Yj-aAAkNLgwT+p z!S!zmsa66KUPn)x`$eM<^;>U1aCoU%2}MA_>XTSEU;G}wV0aefS@Pub|A!SBvO8^T zr(V$|^uGBII>i>wea$E?C7M=pgabptPA(o>Xu2=(Pzr%tAqakaLwtBmymb&khByR= zHgAO>plWnpBg;0m(X4dWz*Zo_YbXW-*80B1 z9|O>aNKeBea4R$c1!5@9|GAGjTgMmXAF#rPhuC~ewa7y-=v{Q%f+oC#HS#y%&%MSV z8{Y(NO~_mYZ;B;1cM^)f;Y=F2PSe zj{VTx-^amcZr#b9*kpEmDfp1CPGS$`u%@j`lnK_v>zJs6a;Y=Hnskv9d`MS2!H0Ae z8hj|nQ@bRaU`;tALU>lxP7Z9v)DzAXu1U8W!J2YLggajptSM(i2o4K(gf7N{>g9|G zVP{eGgrUAa{36+aB!g0EoK91Q1AJQSf zjX0&K>abm~=p361%?o!IY<|Ch0=v7F8f}H-{TZ0vUPIXxp@t{>WD)9#oEa@JZ>oaf zBJyr4BrnVjH%}mmVyuI zY)Z4y><0aJ4_lHu(d;`!H3wEk3dNZ(CT9M z0e+^dTx&t5c#U%>(90$aT<4I|T1e@9(HWMjB^fJd?pji^q7O-iR`?-)gBN}%!zYR+PS}5GCK7!rmrP#>xQap8|<0mKIt9JM5 z#0(_qU-OM%Glm<%E?JA-4|yTAq<^UtIjtO4R_Cy?T3Fe2R+peJ#nX! z?S(ak^-&|w6`iw;k&|y>eb}eUOG@}xdu^FA{%VJt=5)`ot>a5vGz}XEl;)&DbJ87o zi#eDac2wuEqdMmtTT8J(;=g|zEoqfRNC>^4hkK1`nuaHzrOOWg#|q^yzaIX zxZ$H!T`eczqGLG+{?sm=EjA7e{@jOTu$`MjvP)kJ*2#;`aF?k4Vl@fuiPn@ued<-} zLz7>!-=^pcxn`k0YqB}MR`AbS1?pmhHehQ{Rlq%yVdO?~=B6r0-Pz>epe6?gHJnFh z*>jOKMhk+lC+1NC7_2ePtK-o=;C8*5UN)I>y1F4&qqoa^}VhSnjF^C2HON>kGIzwr}n%Wx0!d<;L7V_3oPpqoRm40wqd-!UqT?+GS2a1fsu5fj zR!?2{T-T*fS2aSfLN=AmrLbZ;5atvkAL4F_iae1s3gp~pr2RXAS;6-29MxKH&CVgM z$P;S(kdxX8&kDCj!0v6B`g0f#ukKt5)SOmnjO|?h)7%rJ zm1A3WRf(Or^?%YwMt1_Xq8%)REBsK7{S9^9EkSl5Sripx!zU-5X_s@xa3^RBC(Jjs z9W+4y+c9>#dWP&ONlh!Vg0`Yv?Lb$oukeNRwCq^ZD#wxqQNCwgc#P+Wvx^ zm(vD!M(l?RTz5J2YnMa6c5;Mps=HDY+e!LUwBCJ=jh+g!LhXoD#=w-`jB~r zhGE_#zfI=7eLwp!+;O%OEH+g%H+9XhEX#(SDwk9i_O&L}#@Y?KN38@|0}4TW{ymu41-z`B%Y**tSzz(c}?6 zwkFG7c}@0)2`n6Jt=u(BQjZJuS}T_=8J!P~cg3tDH;qkc#VuesHB|wbUjWyX zEGZ*g>-%2#IJ}(SNe&iVwVfwN5Wj43tFDFS{!0f#uHQ~T)?&FlGZzKbm>0y0A#n89 zNZN8~IMKIrz$#`&_aV06LmBpL4O`ts`W7(i)=1wv92HWu&B?H8g-GGsiFRG<;rP4H z(AhA5y5F>wBY2B~YRI7O89}ra1huFVn{Y``fYYKNyVXTO_NgPmbbno&bCRxgsZ+7O zmK>^)N@VgJ+|=gardDv%NG0wiwq($`wmHzL73efliF!#u)1n|Re!{wQ>HU&^(Q(AwrZZMa*PF4dO*L}1u{iKYQl z*kzU}NubTaKCNJ%=*SlS6MhJ0ybs2}J2wYoVLahF*@WSTc$S49;u#lyh-cqJ7#~JG z+TE-6^;r8rWcs33D-bAJK~6qYoAYt|){&uD49o#VZ4M}Eb3jp>b3m_^CX!?d2f?a{AbO zD>+x|;sTTc;=Is$^&_k$`s>{5M~EQUzedb%bd_nGD-@E*WY?na-s_%_`I7;HEAI zH+6!Wf@7u=^t3P(I+ynpS_*b@tS_t*`(q4=(CIWVeoFv_XKja;0uET}WqmB@|Mjnjgl+RX`a)jB`t1sz;+f+;3<0+inQpB?eC zSKXFN1@D*k>YV_k(HP(o)t62V!t^Bze9fE!@~GUDdCAl#L6kHTt1PC_@Kg31_Kx$!gd^Oy@4Y|QDAffav z(=I0~sS}PARZD2nnp*DIUaX4+Err!$U%aYTjx!dpv|0nt;Z)}^`sQVH|5Vu6y);{UQX|n{C$zonHh#WoU;Hk1;@5RdUoP8tvfQgz?WI?zv1qYs zRp~`G>!c-O?lqrx4*TdhTs zsG!7}Rt|qn%6IqQ)U{UJPQLo5bPTN5k~Q5W?J8`2N5X<5O%k%=b?F$G><1n*E;lQv zn*(C2wKx`LUr@Kti`h5akH{A@zi&H^>vff8P?w%HSp^T9+i6%|iw=YJT6Fra%X3Vh znJm{2O85Hcl#iMtV07s#4FnN$I2P7n6>!jXuS;4Ld&v$)a^-8T|H()cc-SgU@5dURbB~im=Y#5UjSQn9JgdR>6~awThfYSs}Sxt5vYM z!z23k(}gx#5krp)4N z#qAkneO){f;vLRIVy!t2u?5GEfVR~tc;e5b)L(NLt<{oRHdQ#S>rDtI zES&7efLwrG=kEW|0ia)&^LeMee!0JfqP@Ryy03)|8=lvWiv@LafGqkH&)GnWT*_Fq7F}*fpW;~@ z(Tyi^ytlJPg3Bi}>by7-ZoeGM#!nVhE3%+k;WExvTjcW1*5$LtfXh2uuSLhey1ZI{ zQvQ0ILT{0P2M~Gn0F&jj$8Z#FQl87dJ@3p~;XvACE!T7Wy}Y{i6HXVM@qXphefyyu z61cxZpqErDua_K{`?v~j zY?ciffjt$rd=?QavWQqIL~N-CN;%OumK1Z8a;kAGoI17?HnuFOCO#p@w!n^{IR5PJ z(9Q|FrSASXD8^?gM;Dh%X5%hPs>h9ujZa=CDkGhcdhoG zoL!tMoOPBni&MfhRZHPp(MeIt%~|oM!j=`dwb}#@q*KDuIT}k_WC9c$BtC9hynDC* zq7YpQ(^@Opp{$jX)d?FHF6@@r<}-MB`!7mpEFHL75!Q)0R)ZpWDVWMezAdrFe~xL{ zRXSKTIdo4n@v|^hdHYF6b22U&Ea(u7SKY_<5)|s@*j{Gke3ina!gI*MsS~W#Za#UY z`PNrM_$^(Y*R%}JMO$A_m6PRP-3?pQCF?8<8cKLnxW^orn$*W(sA(CuGnwkK+s`N3 zu)Y0Wt^O&sV6+djZ0bHTINd*L(cV$*~)+4=Unsd|g?3|_84aL$CNYA)vk z;lXTkf?f6fNiBL+Sjy$*6XjAHh2ukrAg^Z@XWe26Sm|RK7?oruEjNo7FcTV}+%$G7VKPtu9`Uq$50h!7&kM09@1>|yb zz^>%F@^};3V}_p+7=xZR+SqPjSiDTwU=W_FFH+w-7!!*umCGwyse+^9sy^&U<4tCt z8h=VB=}IfuwZ^O93A@^MHTSYUE_rB0SY2$;%2~Lk%EC33$2E(C)^VF?b5_lbIYQn} z@`~1M=U|Sx#sY5cy#3y@ckaI{)1-5!@g{7inmC@bT)4wHE5f?#+~6&8arxRdc6V_O~^Vf$7o$%=kKIETi=tM@qlzT(#bn+ES-9+ z9NQTS^JsBMXDlowt3mDjaDgnScK?UFMezX^-c#&#NGFh}UkTxP8s%fXeb_zs8GarU zVyfh#sfXZC_Q?RddH7Ick53tKRo0=p>h>GYZLQ^!go3WaQiZPZAK2&i`0pT4uv(Y@ zQ*80U2KzK#QT0FmkvxjSLecUy*e;c?vvWyOy=+tyot@FAG`f1NFx=AnmFo73r)<1r z!K5k+CRJH5sq$y(<_C$poXU3>4JXH!yrg!lyNPN=SPi`*ylh`qSiP?=mL!E6h1YRe z2&oc;WR6njF9I5kPssur3v&~6+FC%cq$vCPnq8}Y{oS6De{d;4UK1`{=kHwM9T%=P zoqI&|QOkxNSvIkbNdZXc5_FC49_uPzP&kT2e)itsGKmn7gmPv~z`Z0uDfmdt&{7LI z>c{?dcnbdy0lygzu2lk*#={H&hQ_4J1hP;19k;*5viACe1HKR?2~_tTcp^F=Kq)#6 zw*r>pPvz`>wg#K-WBwL6>E@WfbzmtL)3ySc;!Sk37R&Z_^J`dZ^8~E5`F!vMTL+su zCyD3MMrA80Kp3-5n2Xif8EmXWPriIr#?z;HWduEi`_N%1uM9Od3q5VK(9_l(dh=Sj zE^?mOb&(TxK6qJJ?d#Q`&T;rDI1;ir)YfsRbM?$;@OGQ_HMI2p%b!@pZCzeaR3-Jk zTzJQYlgEXx^*w|Cg(j3s3gR+F;alwJQh>Nj(KBp8hnBcNR#Fb48P%Tdd`FRH#gq~* zccY_4E5d3ZR)CI_Z{77xhtr=v+~D1|ePo2*ZEPJC>aPacy!FNR!S!ihy>&dua*K;G)CidL&`(h!-QbnGw7EuQ(-!xUQGrQ==_ zCQ9efwhjS#VJg<~pCw6!Kfwk%1QdPB+0b>1YphPer6%Y?CaO%9Wjza8Zi2ecg(kSX zATOyslLdyh4h*eSp`LX`_!hIe^dVm|jbWENPy8MKwI}aV1k%DCPM(T2mvfdSASTQ^}N~w{=`++%VBq%(hTy zcp^HgGd2S4owxE~I#>(a;TFruBP@0<9-=RJA);AAsw*X@ZGB$QsQ+05#X9qadXO{H zl$Qj;Z+`VS0xe$YwA~Aj+3q&^eMfF=b9||hMRz!T2*V;rovy0e$_MBS%AelBUqIuh z`mgpE73*w;fj{pKpSr)8W}9_vYb(h=OZC{lrMeIruMrvNwr-Ee4%5sxPpWmKCi;{H z#}2Eda{&Ww?4|$=)cyAB)b|e7M5~Zlh%e%fs`!Me$TF|PH&MkjKCUR{7Cf&M#znp*^#*g+o%|i3gI*hVmujDOe$Tq z4#s5K?$?gTc#;l3lK5#Y$Fn8}uq&J`^+)zih&>1^1%@Xb?XC+pRzP0ZOhjJE>2hNQ z#zYF|b?HlJ-0p)%h=9e5=);u7R=azJR&-!%e#`RA&};hxJ{a0z1xXje)Q-d)t!ED} zL%97pp0cIp{YTUQkZL)bHE0QiA(~!!*N(&lok`YVtlB}EU|q&+?jv>$FmrRnuCuax zYT-4n;$j>#%i;Vye$ZQ?TJm~6!~(LjxO{#K6T#ML>9}d_U`@3390r{lk5bri>?T?` z&&AK4dj;B`&xmTfls;2Cb`vbwL7eDQy55OC#go!?QF`T9OKOi3qn^w8QUbYm~OPPALBQ6)b?Y6vg+ri?CUr5-(f7|it#9eCPE+bWGYhF9(V#^XM z>j#g%_oc>Jhg|H-cN+@<`{SoLRZcl$wdXCdNvP~4 zy4v?7CRi8NpVv@}e45)sttT+SYI&AnTEXs@GjdST-N@?Prh^Z)a+s0iM=2mW664Dx zNyRYH4)#zc)>5G}VSnXdO)xA9wZUND<0}Mqpu-j@hb`Xg(EYTvOSbXdMJ8~t#!GU? zE}NAl*?Eo!0R9(RT)W$LmfPiMjn|giEh$QEy6B8jX#xmJP*zeYw?mv z)yDCagM}WfE`6uuwS^A5!PhmyR1kBlkIuFw zHK&BxenJZ<;kuC&nGdmd>~CR%*KN_v!i3YdrI8a^C=VXwaK?q9_NgcPLeAMxd0IR) zLRl8uD2U}v^lPy_VaIzixJe2KV!=P5QT<2YD;pDb##$lM4-)M}-+{fewN3w2?$&COPbXO=+HG*B@PceLX2^PiZvorGh z#ZMX&iiswwGP$f=WCu7sS+qMs-kc8hy%pR&@LEHB4rU^BDN& zF0tB15RB8G3?z9n3u3%qcVc8m2Vl(GENIBl&y{J7N^VckOL&N8VVFizXq;BuZ)`y) z#vQ^Yb7EAQpcf~mT_L!|Nm9L%Fyq8rfy`9y0>r$@gsdzV%d-q_;ewG+$$ z5$0}$slaVpaN4}^ZwO)loe-|*ZF1uhWmZaNGp&})#+nkQ{b=Jr%fwKJ+GG(yETgWY zT>C~q3wjLsJVo=$fA0cfe>^*FUK?R8ljbv@oTicx7Zi+`KJ|wVRyT513bW4^9kyXR zUjBUdUq>#V-6le?U4?Q)C6~hwEg)0$&N?F1__UZo3CA((rCNl9K{azAU;j8FPBli;{70YRW;?rB4#*q{@2k)HaB$DcRpok}Dke(np+qb3=?UPjo zpA2Oa3)l%diO%|+!zgq1z5Cy^e>hn z#lHXX{?OAqhf}=dUrACYoSiBk|4Famc8;Yilq?h_+(scP@uxI)6?O-$ajc^Mnm2w> zI_l2Rm8B+VC<~4bhgN*~=~Cuh7Eal@^cG(}8Q0x^<0WapIKna>0(ZlLUUBXmUh##K z8t#;NfRmjePm1(;mb|qfDle88T3#dKyhcdQyjQ$l3j!>J?MveR&w&E3 zAei_2|AXmh7zliM5``6C-TjT9DbDY*jwkH|!Gt}3R<6s=xXd+x1H0TFz$LvUt}IW` zYWEjRGGt`gN8S(hyD26MfpKE#b~!rIUWZpC`wm-_WBVDk zmwoL*dwE7Ki193RV%*8R@L3RBFd5mx<+%j=M{-`A4qP}p)cJ1A!Yez;e{niccgdk6 zC&sES*y!KM;u8#|#X`2NJ_Q%uSN|o+1v7DhY^M1x5_;mqP<`5Z?Sz=P_ENo)+Tz4e z;4U>p(8)-W-i7Yu!WgF{%^CqHqXMOBHVTMk^)^(qy9qa!-yqbaT%?_#lTn$XB-;gX zZvUaZ-UiFvWBs#-SEG!ron*4O7D1A_-C>lyEgAMW54@>g!dqLqzH{fYS5A8{_@aIc z@<$}N(q?-nBn3Ii7X7>GS?G%)cSeAgVwI;@0+)qMqtn+j#Kx`ZXz(@uEjAj=Wkm9xFzwMRGhZV6hQDDVb>%bnX9Hn)zs1f5dWHN!h&G1rI+ z)N*@7b+9FuxISw_l*v0v}~- z_sN;IE^B2)&6uTHhg#;YwM7SrDPp1`0I>* z!##};Af2{Rt-~fuDmY?tZoY#MRqT-$WtqqHiHg<}6VyC)`y^55)@7qiXiXTpm2Wn^ zdp8!k?Po9cEB`c%-9eyJiJav2@NFoI@ndPy^rE(9Wb)Wkulx%eh+&W|ueM;Z=M4y7!ypN|X7|G4?v~`puS}kwIFo125IQ!?i&}bzg z<$0i<-31Qb7BTJdH>uYp17$&squPQP+i+e?ILLw+Tgi!ikeVO_1mUx@ocfck*qZO9 z48m3j$U_g=Dyf{ENhNMZZ)an`5~xY>|bk*&?pVX^-1V!iXyk zQ;0%>B#A5(s7C3x7Pbr7AuRM?zO#Pwxr#vc5Zzo$J8Cc5qrbi8z@~zh(NfA}(#qaTN=sw#;9cqji+uPA?6|FD~lm?M~ zjabszcFh_{8OE(k4k=FmG0Pz6*oDfLjY}Kc*6|FxcdGwX5=5=@54GM?)#^zew9r29 z)1H3xSCmh?(bi{#ShZZHT{2C_Yg^$PP__Bu@q70KOUWrL!?w7iQ))ZsI7`i5D~A%TS;4YYDddsIW^V19J|dA-b3#+7;Jk? z(_;H~s+QfRSC2YV_=YR)Ln=;f(_#W0stVV1+5x)un2=g42_^FdN-D`qXay$L2{Xo` zREyv3g~E?;ja6ZGk-p_*K*1SK(f_5EyZjNg3m3!ik-*j1^rw0UE2qYN>tot0&OB4p&Xv zc8WH?oue9R1c;_+*13~7i=xhC7}VVnfy7W^yMG&hrR8Ynt~YU3AOPGsx`F!{9`H1! z&1@%t12y+YbvD4j##ilJDkVa9k~Z=>w6opY=^=#MHz1i%XXp6FY5Qv~n~oxN!Z-f& zF@|b~XlE->yG5G9Xy@RDZxuz*PS6G}YrM3`1-9sHms1$qppOlAj%!%Pm3_Xkf7c4p z%kg{o4{n{T%Myu2kj}8jefaFaHEs@{okJYKY8~n*Y!_jjgMLrHQ@Tp$ zct^2?qcS5ERsSQQq|WmWxM$m!8gc2lNB=v8fX=}VU-FxSBkBZnpfslgOKLnzEy7bn zOSyIGG|jPXw$DQN?#G`<2MukhG%ooSl2_+h?66n26@Jn5KgeY`*5O-6J?wKsTtBd+ z`b=LY^_b5J8G4D^MLp(Vhc7uDNa=hg2&U<&@7uc{X=mFB)EGK{_(4_>t^t9CUUl|z zwWmE{=W;z3S|or2wY&bOwo85oB(b6{ofp5-4Pp08|o^n z`uc+dx6AQZX}+6T&I(pfnudZxu6o{S%MsS05I?R^WVUDd%P7?g5Enkcyu?M z?R%45`RgZ=(S?=RLI(YO#;O&l4sRYV#V<%y7b>Gt-zHJEAw~gWl%1zO)qnUF{;N!H z#5xa2ysBKN`pNc;@pVRn4z{%HUQR%^bA)8ns6Qr69UNI|ltUv6^*bW6B&l<5Nm94d zi;AkDirv#@%l_6{?AtDsRo1zSO%{8~EkJy!DdDGc*O_ceY!?pO%}2kXHI;)N_TtTM zBD2fi+75qRs*jVEgnaxT{t+uQy8)m-gKcB_m`Fh*5cYxI!G7yt z1n*LO{VGbMVB_;SD(t8F7moKPuo=stR3Hf6Ahwss->h)28eRX~2?3dt;WsLCGQ1-E z0^0Xx`~HjHft{&C1b2M@W&C5ce+~l(E#R=~aEIj^ADYk6S`4B7!$SD~d8;W&9B;x9 z_CWo@;}&-yNh?=j9uO?fuR&7_t#(5*B^z~eVg|**Bsf89Z+1&anp55<@X|TxVPm~G zAc^X@c>x`c2+Uhke|%>5@FU#ZdN(-Jt`rw1;&dkk5*r#ur8?BV+2IMhlQBg}$g`m! zgYhu`=RR`bDK_2G6ZUWEDVgt=ZP&h9VAO93(_Sg^|em=jR z%5(_CZU;F-kG8@XwJkBm@&l4)^TC}I^*x1=pFjT)DquLA+m}g9 zZM57ZK_ClF;yAUeq?+oqMeo=hDgFI5o9_(Uu43Z|hcxG1YR;;KhK(f3WDA)$#Sl?* zlCWbP6T-tWkz(Tz$MnD&P6j}pjb#VYiwZQU=N9|Fq}B=F_!`}0M#tbY-*jpIHw0D` z=pxnecXz|z76Lda|7Zx<5M^s&AX%=(#g>YOPWB~BE?es%DXJ687?}-HOB?ETP`b{b}Q4Szv|SA$DeabK87$)E$F-d z0qVziETBh+rRcF8U^|4_V1`p{+M-1ByO$k;TiS?1nCBQwb}s(@+RxFj6o?_C1}mEH z_ujt0k>*sudTE~wVKrH2YjE4x8{N5-eE=E)Dx}$L-@>rDR6ls(x6pM+G=mHq%vLDo z{_y8?{_dUM5@Bbs-QUnv?dGv(QRa{chBDPu$HOaMe~!Yer(lS53q`SURO52NHT||y zF^9P+eu)2|Vjb9Mch6h3_;Yy4TAqR^%4I8|-3X3$75!%S%ZIS5jk96P31PO9>G=?w zSPKQVKDc1eo`zTsVKrAUv^l;JeTwY|?a?vwe}>>|^y3;v0XJU4RQM+R8C34RaVi7! zd=q-ubR0$osMB{pd5BPm3%I{I+Fw<^Jyj0v)R{ZJ>pXq23&QGX$HM7Lo)FHOr;c>Z z&up9Z!|cw1UC>ZHa2_1Mv;)OAOn(vc8-N{2-BsjRW#AX>C84bRc1 zvc`tPY|9hGfwrJx4!T93${G@K8fz)c%4C$oS@EZ`hD1)rQnB&iF1CblC@~W>m-!WJlq7-0>&hA! z?yOr>!>obfh-s+Xvqpu(sKG`#o*I2B%VP*$Mf?FKoBES7ATX5FT}+AF|CYW{iAQuu z%snEtsG|ryqJtsyh`NZ-BUvLM=QCSH;V5lzBsg3<*C;lSKwAJqQ1c!f8a$*whXfl7 zLAP)B{|6vA+=d6`+2~h+bU`cx)Wp%&sgB+fyZ`-4i;yLlvqq3_ zb%p!ErMt~($o=3_-{u~1jdD3~(Wlg}&pjpT#l{1h$#KI_EwRDiJ0UjXc@hQDq4Yr3 zx-ZBLxuPI6lt*H_0eR&1G2qha<_zkrY`tVy=J(TM!P4Vlh{60xhQt5~ui>34SMVXaP zSUQBqh0|my-NDLOpO;z8uJpNvbj!J@G;dJp7B%Q>12q)Si8=1ZVq9q!YbzaVLt?6Y zECHD_!wHe1bck(M6P=i|V!ESdG46ABl9I)w`D&V#hNyw&h89KU($TT;wf^ahOi>CH z`xUUnbvz;as2I}gN|#iY=CXT`=W+=q{09cys73-IY;MW!0F` zr(#z1P1IQ!tjoc!u0f7=(H~<5fwCJg(*>DekU7z^beJouSeBgye?_BWnZ?9P$zw!E zEq9%cgcV^O0ApcdwxvsJ40dl8BP$&v8!N`6B}m8IFm`}!r3&@X(YC9@jy}b^Aj=8A zpCCqhdo9zqOMu>QF}K5E<0iAY9R(W;vk8Lm%b6gHf0d4Ztth6mdo0XNb}4cz!fM>H zu=EexH0&;1irh*SI+ufkO)}%w2AhDbRblnvW98`$MX8@!!{N^3;b%y#My9fTMz%jk zm(nUqJq|i0O}UI^7Q!ln2+NJ=AjR@eVG>^#4IosvFB;tW(4g(J7*!c$RIZ7Fsh-8* zz5V%HPrhsBO{=>gm+~dEYetE7e?(W|Qj-?x>vrrT-Oy5$0;Q&e_vsZ^DQ8Kigr#J4 z#8DGuOwds4^=pt#s#4gPkC>YPC6R?yx7#f>fo0RMF<}NLXzS4}ewStd+L_ ztFx$^oj_z^ojpiawR&jH|3}MRIa%GC7+A(Mym$|i6KF`g^aFRI59)=4ih6?PiITr1ayN~mTthx}8Eu9&B=qf~BEaG=a0Q$_g-M#{Fm#IaYsD_L^wH2oH=O4kCcJc==W$ga%i(LAM$=WSF&p2P9FcqFWKoy(*ODwdU4wawyI+bnLimHXVnT_@aX zwd;7x6t5y{B)HG`Ma{G}5-3}2EA(ou?OD)jn+2`54q64 zrmn#5JU{L}GcO^t>ad~ zYO^w~wvJ~->(cOTOOImn9Qw8W_T55+&Z%r2(i#iX36QXv(^TigI_Bpueol@{@O}v)|46|tTr91K_?Nmj(>Ia8?WG!;XPhs z^w--`z<11RTr9nA*k+-wZ5Ha#fdrLu2V=Bg(z8hSlcXEw#|ZNTX%?Xu+H$KO)np} zSqWL&ES$EL%&e%HYQbsor*udRZ6AJ6C)6%iYmga!h;Yujtd^v$cq@48OdHc_#nijU z=1%Q$yM~g7A2g|Jm(n%J3_nCzJ-{F{{9s|n%m$g^hX~(dTp?uFD|aYUug-#DwZO2+ zVsEjXOVb)!J^Ya7EAAR(h95j!9pxHih93kBYRS>UYY4m7{oH>yvHu~jBx-?MQ^Isz zdhOuWx&HtFtcesvR#Yj!2!hPr=v+malUpeT}%N9Wo0wM}2(M zMp@&*<%>nsbJT3^k&c{07CWmQI}25$3$(dM*l{^(Hus1$M?J&bBT|dHh1Fr>kXdjH zxC^^Nim5|bRm`!oxhlB395@R-!lB{Q&5QU>oPBP~KJ-J`jxFkPBZJ6IO%e3vg4eJX3R+pS#JH3*I}-o6IOqGYwBWWgpn zTo!#wr*ibEtWfVrTC^^m)6u8Y;P(B>{_AmwA@)5>`%Kjai(_8&JIFTo2rvD!P+Oga z+G>Z|BI>!6vS8O`rI*zX$%WKY2OoMQYcOQNxY~WXb51=TLRm+T?-?y(>mKt6Ux3%RK5*=wA zew!|M+U6c1g&IfTLXW8J7u%o#VXky(Lu~fTBWiGaIfXk3v0^!5ozWkwPj@mk z4!e2n=}PFvLARKnY_iT#HV(rD>$23f`;|xo+;;Oyq{%{XjUYHgOhnQ7Ki6EAM)J{? zp0IyQPpNU|>(Qq)&PSi(35^db?y;@xb4U%hVD*b{Hh$6WhwPk2s9m^4g74x_F?tQ? zCMYi=&$BuruTwkN!}1Z+nOf4H!sAUy z--pkC`QUTx0&Bd4Cce^08e71elFl|G&l5~C+9L8<(_V7fBDHW3pONQ5EC6q=D}~oZ z3T3O#$a7Z;ri;k){GO4QMsnPqZ6rJMnL_Ehutt*CX5>W)cHpy0u=(KCEvw?Rd+o#L zv0zA_lxT#saapHriU3(`t#NEEIFGaP(i$Ud*Chh7&2C>JWSz!rvJhJ15Zc_wLRwnS zx!kkJBaWg4yWfGdxr*o-wZ^5N%{{`+5vUe+){e17Tf|cqYi2-@sXw9~PvB{BD?%Po zpFCB==n@gf+n`;YwY`$@XZSE0nzTma0|3AD$O!x9M4yK*Jg-P1~2QC{&(ppQ-z_ot< z54|2~B(3d*{{K)1EioK43r-ow&7x1KeWOpo#MdPT64Y*AVr1o~?HnMBDZ6uwEcz6$ zw!Z)gIM`_pM7jgs7!<$+bgpP8$33Gyc$bx^wv+4drxa^bzVI&VxaZChvuKa0&yGID zVSK7N+|R6UKRXArh@8mkN)hgJ^Q^I1eTZ}7| zY^r27t|YnLzg#|)&th6uI0jCy!*_zk!Zwl&w^e0wmS8&}W2;rLWtZE_;diyzTdXPI z>z)7n6)9?VM#1jJ-#5b!c_*Z6N&y}r0=O2+T=T|saC0XhYf1qTX4|O(^!eLu&eNR&bk|aXB_K3&hLP$ZjSRimt7WY zqL8a_6SES`b}qpzsv%EDtOsl=;FW>p+7$QMn)aJkpF1I2cU#;e-U0R-@csv_p?B^E zvZz+Esmrgdw3_ql$ zYUM#@_#wg^S}{`sv)+BraVU29A)2dYBjr1uH55Di;PM^D3YE`+cg;C?dKKs&ck5V4 zC0-FvsYK*u=ZV#fN<2^w{f|Ssf`8|7#R|w_llTDA!!OF9+&M^f zg8y%kwqU7|C#)*c@3frCf>b*Pse<0iajNK3nA6u)0;tsOs|3fTqSflujXtGwIQkT? zlf#kKF{)r)f~mrFId&DTOQ(1AsVpb%u-4$Ah9B&zvS`-MpU1qeV5Y0kkub;%KiKtW z9mCvZVXoF;u0fyS2X$1NMYmd)1U8gB{GhhCj&2Py!w(VW{Zw@HwgR=Le7ZDQC;p(u z@I&-*RvvkC%D`(~{?}08@Iy*=(RyjHwL-4K-Qo~dAUd|fui_Qyj2_xM{NRQQzgjbv z%K-~D!P$2vX4B@X6@)dV60HeZe@=68NVtrz6xP!(dWFym#DXF-y3=~26_kZNBXCM* zNeb={eIdGaOl$6uQ=&4h0Il%2$U3sw3fYR+1+(8TBU;NCtUvmrAc*H)kh4Zp^ltkEDN61#R(!KSH zuug5us=I7ndJ|cr2w^7+W9Q^K9T=O_oX~vhsMy>i(pWY0vPuq#O*9rwAlKxm*h=B* z#^;njr1t@>%LEHO;ygJRw5ml{OSTS-oet0c5ML zPMsjE*)LXfE+gwu{1DjzXYBRQw%@cYft2drxkRi<9q7i#PWaV}7`}&(p1~ms z+s4wRPhHl5#V!kBbq-<0Tx(|(>psGFII(zhgzp@qidLI5J3DuyShTL3IodgPb;Mhy zGZuYz&UVv2h7o!C_pk=(9J>lC<`C9$6%Jml2^E{j}sS>&qAB3GR|v$)a;S$219 ztAocqV9B{};b`GJ>}zv&T^M27&Vj9EtsK}|5!N`oBCJNA5JnTy1^AsKS?luZr`P3m zj!(*WtdFjs*X7l|>+%|PgOk+db4}L5z3MR5ggp5TN3SM?)npD}%?(as@SVe0lU3}= z3JzmU$g}=rV)(?%79U=gCG_Dm{Mi&U$qHuv@2=pP#&Y`Iz)(ywqe<1_v(%-cN5JY(gouH{d z;@|9Qr#^A>@KaqIWO1p^ajD=Sc4#X46s&t)8{nwo?P~*vqN3Gi%~Lt7_|=_p_UD%o zv5WsaN|D;3sGv#?NJXDgha7#1m(L3gQEwbAoF?p33x%sIjuy@ncA;>#?}8Xl)94_}4J(@2ub z6yUThsT1&kfK=e9nI!|C53j?C+oCR^^G-OEE17)A?FRxohnLnh;R)z8(H@qYww5J% z-rY5R)Eo37p%c6`Dw%EP*wTLc@MjjS?ajm<`zHEaL+7%m=1vpRYx~Y&rOCeAlNB9V zvM7BG1b1QK$ih79lG4`(q`;AtC)IhL6yigjyD%#_c`bA58m_^OZVlJv#>1nCvUp1O zC?RF>lupg)Qyd$EF#&anjTi1yvJ&raN5WI=Xdhza02>_(Ed4h2`fc~wb!b46Cu>|Q z_O;99>%@)rRYv?QH^QD4waVd5D4*@VTz;0V1xJm`hwmJyACzGehYcqbYFq^k3`v$+ zmShtzOJP}8`4?G`~ztHNy1nR{f?WjW?rxM1*5&w7^eH!yV?Cckl*)}GN=DZ%yO$sQ{mFkkOwJ+)AfafU z*kPl(Td_zXO!?tGAWF|NzRPu*FP*(~Sa*k)sC4Q~N0VlR*geCwC9`NRxLl^m+^UrJ zS#I13Kif@RuphSf8g{#@y&P@vCvETWh?;R;6`jNLa%#Ac3OZ%iTdCF)Rnq4p%Z|nQJMz52~y6Cad59;>gjQb<$mx zs6q{@iE%vz7FkNo6b>`3cAWsGQP*|Ub?$=pg$4>#LI;oil53z& z&y@!1^jr~UBR+xV9U6O&QQ{a?N*gQ-NnTnIQ^Sp`CK6EyLVEDU&OEbaLtV@>!)W%A zmxSTVLMRd$*Jwmv6Giw!&e?&n?y(%*qi{R7k3)BOnQ%<&fkGJ4gGczs19JOXTRGS> zSjMI#JSdX0jV**GMdM!K5|m=Twy;ap??Zb5h;(ykFI)yvuv%eD=j#fM zPOiuusf!k!6FCb(OtT7QnKS21U0DcmnpKGBUz78lYm9OR^b-7LIFr!MS=cJ;!CnDC-^r4xV-~iBc zb&mHebc|#Q!7yqf+J6_!budNuKmmsunN}BjBL$nD%}H*qiB@Idh|Z~a`9+HnaEo@- znf8YGiep+Qg-TXCQ5T@>;c7N$pq6oMlJriq%Qvij^*# zok^-F^O{HpICL}H0diH-RI^gbU0DdiSrsOeVGJCO|HEI+dssmsWZDc*Y3(Rk?Pb|( z9mGx;1|38%$Dd#XCBj~~PyKZmllI*=AHi|pe@LJ4LHRnlg7em0)f9b7O&Wa4 z0M9kF0^-~rS{=!WR-3g=aC9eHmm0al5~wqh*I-d-XwTBtiJKM<@YqNC47{}MkC83c z73sxH;kZszADyMqr_{V&tAC{^>CjHF{4BszWC5PS0UqBL^mTe`Sh#GWXmix)z6$Ox z^~GM2%$QWMoFTM#`oyEhRbEIJt5A8ukV3wPbpq)iA|7w$mXq&ztrB*&x` z2Ex_JHjUT}p1N;8wDrhvAhtv{hDiDbLO4wtylWTX1%u%Iu86Lb>!R!SdFTskADhy0 z8xlRh>!+1s(@ni-+wvT=HQnIffV)>pPS@q4WOcUt;w^Mk`^7Ilht6roT*^T-+h1d^ zY%2guci)r<@#zMe5>QDLh|Li|hpea6kkPte)BC879n9@f9ZSh9Wz~#PW!auT{`fVV z12~^POK(IGO7>fO88b<K0_D9yENF|5rg zr&q!=LZ=c9c3*dK9xP%oA%$HwRmS zgIPXHHxvtn$u$aV8Dyxp1*=R7usH?+R||W-L54bCGIVroP(&+*rwrwgw!%^d0r*d9 zvQU&y@o#{k=QCbw?whaiU&D7yFw8X^jV(?&SEW0QwIa+ujr3&GxHDKQ1+o<|sV?tg zW`N%I=N~tppmB-Qmx55Vx9LTC=^%;@_WlyL#HLCIQ})Fd2vk@-oU8AD3rm^wUc7WL zr9FKQXRq4b6VMvVj3Zf!VG0%`u1tC*Tsn*roFI%;P=53&wq5)w#G`8%1W37gb6Yx~ z5>=MHT3A^|E$EmQtB;Lknw%(s>zuiv8tsUuD_XrP2hoa)~tyJ?uctlBC+&j&CE3;;;7OhxT_`B4q)W z(q+_mP5wdU>w?is(wKLs#Y=LTYDarRwt$^HA7T-4GRtCx#5+`XzUox{0RN7DuonV_W!m!&)xnUUugN)9 zRhEvBMC*cG??ZD126A&~t{e`DRa-eO5`Bst=0DKiX4vDGFjDd3zYkNOa#<|V!gW4I zpVGM*eTpOFLPK&?mpHYlZzZqg3G{$D>&+{_z!S7tuLP4Ul(sPS$WlT_7Aj>+Er_v!;AW5S{oMMz zeFv>cYm&;+QU=H6nm~3G3NqQr=$XVfE0?S?VRw~xjAT-t*l^`A$>eZNSDBWT9E8HU zqhB$U75V}rvd@K2D@J_Fl=|cWDC-#`_Hg_qhOMDg1WwxRRzgdrir#b4Y&=^9!6ud! zx2Z4xhhOP+M%Aw`WpaF4NF%M-lyBhQ5SMLxdgw0y zM2!?eCA9^9#!e#bJ5b~O`S=i0`9yCSX}qb_cv&z@F|Q zD=RsvG*Xp_b>)zYy|Fr4w$2`EA1l0UPPdAcm7^|prAh0CXMf0>)XvIWsRYG@r=*aX z_){?JH9q5P5{> zNQXKrVKi&SI#RQ&gC{j(g=uN%FwIKI8WopX$5U{*A9NwJqJRd#72#FGaX*kZeGK-x z;FW`2!*|@ih98)@Z8ap!Ze5bfd_Qa*m6=dD>9BP$WQ?c{??_e z_-5MJA4dMxr>rdNvuZ~ap0HplTZhx{QU>?B2?$qQ}q| zmKu9N96Gem;Xl&B)2*PFahdpEsFU5nBJ)3ITl1sfi^0?l_Lb?Q0p(WGR+iP!X}Dgp zTF`bLM~iP*s2A{#XAA4r?1Trlf@I#h+pYL#D0_P=Fa~?e{!MQA;P1H7(~j-Xd+)8F z8009M3I}Y2PKf$v{I+06$yi%qGBc_WP~Qriv0}gTeYDr^_qEHN4(S#2R+3r%@ZiC> zA3S;oHi0g*ZQcr=`2ZzA$Nj<6uotK|wZVG%Y`!MA#~?8A-Ax&ZjPvslm|K&SmN> zT#{r%y@-x7oU=bai6M0PH+7fBz@-A!Yc5E7CgU1T&5=x)aksN1bLz3==cz@K4>R9z zmkHB0zcTn{AA{+(@1;}WTYvkEYYbPsY#Wwj+hF`wxZL1>^8m$MeQUE@J=HbPKf6vS*h z9CSYa=j|s`Zsk_+$+*N(;<~$Hr<KlDy|&~ zne12s;WhJ+$FMoK7mG(k6FU`kIKF@%+X1uGj)zQG!3r39qjpHd0?vN_s-^zgCpalk z*PNO17@CF7-S3|IJKjw6AMG4ILV=88o?jo}D2DAyF5B1f0|AlFBh?OoOm+nY*V-N1 zu`TMTs|gj?j)6?}1_9$*j_|;g#;|%{2eqO4!4{&&6ufI8AwNf_*v_^@Yi+$@^qBUf zwId-hCs_*>SqhsR!)ixJqIF?b-Ur+o806-FTT50-Tv_&==)mn8=t*?<9ZRfUNTXG7 z$XN0%lGI7*%OpwRAd6)R0U1k@o{oKN&N!f8Hwg5Lzvee7>7*9+fgW3sWS6-t$@9+u z)4hAMo!p^*<}az2Jn(R}r;MCh@>IrcPj7u{m#X4>o+ZOJa;(FbN!E0%!%I@_$~W+y z)sjoj$Ddk??>=$h+S3i!M=43CmQ0kzK9bWrV+(zmEF@_t%aS~cmL+)wvMjl5A@gxb zRb?EmLm`^jbghtMS(GUUu%AUgJBnJAufjvvPA;uMY5^T^)sVH9ewIkwXS+e%VvIb( z)2iFsi$~ip*`Zt9g?C*w)WST*eFk9)3+@Dvz3Dz)UNe9AU)zOoM01%YmbB4FR{Z~M zX=DofRZ5Yr1$|8E!QoX70{sOAb%@rsZ0N5nK*{t5xE2KRg`K;$ExuuLdv#}N%X^wV z4uhO7JJ4pkV{)_kH#$5m%W8)~?5Ol{Yn!6&Gx!VZ7`hyzcG)Hd=q&foHqLf$s0Cqr zD{!LD7A#`*FZ~(p=_pC`DcuZ2pTf+%hE;%(+rz43B>N#Y;!?Nv@?Yuop5G)%rX#S}f+Wv6jI4zgaWGphQ;p-x#P*(3^dsmj$#Pf=Ir}SQY^dsH%!eV(sR{1)F?q8zcg0`7qqXj zDs7ttJ!%I%CR!x>^xEN$)cI+*TMO$Lk9KH~cCxj@9c}%ddG>Gp!W1o2+ue7Oyp14C z!`NM5dxo<;n(K#WzwExkYee43YI2B0Hi+6?#3#&W`zT+(L8B<@?lDPSfN~RRt|cSn zGiwc^B8s!ixJ;A&U=VF$9RcYtC)`^quxX7T*`IQvkR%WU|BPY{0bDG!6#Ew~&ZO=W z4uZmLWpG5nr~S9_7zP^$QGp;oc?Z%~ee-Xu|9M|3r*erU7eIjEgzaV;ohDQw!m4WZMKkzf#Xmzu<$YK)cKht38Zk-^`V_BU?KSk~{H^BKB%`L2qMjfzb&r(rwFdv~O+Pu^M|- zXWrK`clOPvPonS?l^O>vaMTL_j=6m5wiY?kJJ3d<#piG&{dTK_#dbET(yQ-AsKpQ9 z__t`8gT5P0EYva&`Z7hxI;%*7d;A@A|?y?brVW+tveJP%Q|1&5-(?syapMQjk z(E$gHXA6ftLZ&_zf&r2J_rCM&_FX)aLRKS3X#Ne|4lliWc>`r8X3)s7nX@Se7;9O& z_CCZCmna4{?&ORa$qu=;+wcAXXq#eSqtqg}eQXq9gr8!Tfl&sn=KoydZDUa58UvA{ zaeE9Db^%MmsP-9>Zuc8>h5f)dE7H2Mark0Fo`rR?*^O)xB|i^vdBksT|=HU&Bw@d)dqR z36xX+j>Ob53$1X3Vxn`>hPZKT!rtIrn(v_9$0weDmulDObl-{(NI+Kyv*oBQjwRka zT~2>Oebv_#s3keW^-0>KHbNcHYp2ckKSsY@_Gty#2ygh?yRTzfL()FnecYte5sjo{ zpa{5&yB>-}~T^0|jA8##j|r)A$}p=R+EY9D3{pZOIq_ne}<08Rh#Qd>8D^2JwMhu>%rq`;*5};RO|1 z)-8RwuMrgSmltsK^=Ol!{0Oa~IPYl0e5^u`4Ew{zVTtHd>I0)s!GhP=2paJcwu|3{ zKZDBcH&5m6o1^lzo56>^`$<2OKz_an^wmFk%FnvDD!2H zWBYaYH+}A_ahW*587ef&{KV3qVa=OGrkX4=)nt*WozLP4wQI+@JV@n<^~Np>V(naN zPqZ$FRf6rx@!mV1{u8WAmr~JoF%OIPJVocYy&NzLYM7NDv=gEhZkJk=q_BB<9R`QIj|RfO5u0(sjRW#AmB{s**W$XRY?cKY~fj+ z!J)vQN{$K6siZ(K8YYAdhKH7egwck;-1jS#9dO{yP-^F}V6<8`>4)?k^JChq?SvG@ z`yp#O3qAxn-ea5F(@=0V+jaGTJdu!H7C79=)yI)qvZk;*{}nWeql?j}vfR7NmWtMu zHNho$D$wT+MFw>fJ{caXE~hG5SJtR-3^Q6+)`HL-M~l|QP9ffhS))RrXt*xHr17Wt zg=+jMM%jUJ>riU2&mB{ZK9w~pJZOz=6XYmdy!Wz3g<#k~p9_Yak*800?u5jK+agqU zrWQJ3zY`?;WqXQr2!RixBRz2;nY^5bm-F;Vz31wn7MJ&Dv%m!8QvCwpmE9 zl{B}jU%GQq^dZbvj{PmPH^-f~a`JDXa1P%KVm!O&#j-eFD;#g3a9*dW7+s^&3aL{u z3JtB?a-=pornil)u($;=wUJ#%U{?b5`9%k0lHT1L<}zJIUC6=v9Z?W-$lDRYySGAyqM<}Ha6dBSxBrEB&LP)6w6{@t)%a1;XLC6 zda0P`pt~R1wprTKA)S|Og=}eoQZE}(#iU-Iv-9r7!K(f`8sulT*AQ+o{ghI5+bm4g zy5zp#aCM1((Wfw5uVEYr>h>`1GyG!XJ&QoKSp=$;{68G&(mN#qzTVR4W8(xqRNWjwHGF1U!u-x%VXhY*|v{ZEy|>U|KGp!|&ZRuyZxD z^FnaasATC4wqVrmogk#8@;jkOBT0HY-U&Ivw|4MG=kA4yjiXL(htkCvt>L;XYSale3in@D_E#5UN}VtzZ7(fGJ7G$3%@r{P zO^^keIsr}E5HTFj(Rs0~46ZIKgR2wjw4f5Nm}d6_-2zu)g9=v)8&ojUf)4Cr7h04P zCp$^XnlC(yD|Ioh)Mas{PPkII&jm9rv^UGkW>Ke3s8hTlZ0?1I#Ac{ar}@&dFjFU( zNekymBv(<*PY2;jDn{JC3xcFmdPU!5QKT*_!>Y@oNS#rnYZwPAx;=~wDGHA@0Y_7( zm+4azo$#VnVcvpH3GWkZ>9TI1>VzZ3o6Jr({uEEj_)|Pb!%tJ)GLE#`LMDY)tv{4~`HHg^_*>V!Z|Rlyx4;OV)q?5@P~ z=?U5ui4^tWsC&WmBBpll#Yau&%{%@cpDox z`Ai7wNC;NpK-aj6G(@Y7<6C24)+YyRp^B^lAe1XS037sMX^z_6t|GRZI_z%UgWU|# z-%UK+s)B~7#m9w9$Eu;Dwo{9bt6+0D;x!g#eH`do5!RVL78W(K>?_b~*^yQohrY)8 zNK4hMW8uTF-9yQ1HkFpDO;<`@GbO9x(AT)+bmG6-2=TfbrlWD2zCHwbwPtWA=AbXs zmF2fB;p%STfD&&19xfhIGe(=J_KZHIh7CR?@C%M+`xAH>T$NK)_dn8wZxy~+Cm+O) zR-twtSCOtnMHN}IR=C(yE2IjI#$$b?$vSJJP0q4=4i`g@soj^GlapgrZF0yNo>IF9 zyG{^VIKWB<*3v=Z(qlRRR)p2=E5bU>SA^Bd!OqO#WYtDE*;HrpY;v4zxfO!P zrb=cr2_6fN1edb4qR%bHbyUoP;R%^9cCln<7kl0RPTxI1PpXNdR?D)rV`Jlnv(*HN zO&KEH6jp5niA@Ph$>hKv``6(q{6D~j=6XFDO4Cp*!KRNor{M$wgwLQayueHHbYUiNo90ZF#rSo{aPUVHTq+f+c zhht(<#dIn!E0)8=s!a|P!&6zoS+cakUFY!GN+)E^ct_1vs?aFCBCIZaMOe)p8ze;* zEGrx=TT~3!Ldwd0MOf$i8h|Jq6dM;#o7F{TsX`XZ6eQIT%+E9kk-h;CH+p<&qFt! zwGsI&BTLQ~lxgjhglV|rYEipeVuF3x zqccx#mlogu=B0-_-e`BQv*`7A%A>3bhtK9#E9v`^cqD7$JBSuErK4%lr?3XNE1kJsg9{8Wp0?q+eeA}8GpmgP7fZjm6lxuor?$YOAXXK+*9#X~xa zz7?Lnt=8g9zbfyH9yzIs9&=7$wH9^rlaqyqmV62_Z0;=XR(S5V)|M>dR%8*k!V$ON z^v}7Ft129Ni`Eqw342-|`kb|?-sX|uFX5V!r&(4qgL@2+yE}Y>WrXELc2DBRVR(O0 zI_|bMCQCtY>P*tNtgBMaQL5N!ND_ru&JMnG&@E=8GAjYCv;?&K^+gG|cJun8bdW8m ztfOtwr*f8SrQ>hWx_G@lbHQdeT>e~@4#Y)kagIFXm`lgyqIJ1R9IVSZ_25$+$!B^m zeQmfZh0D#zb8ovuv|ta&iOXofDFxm|bjzCbS=g?WgPHLbWsL;64s50$#HN8Uz%~_r z7bsu&-Hg1H@7D6Mk(@>DN+EX<-PjMz$aCMy`AxnnKix}Em05_c%tCafAiD5C6i^pv zwxqPp$g{}>(ap$nw+ft_>sDcL^qB&?OF5kosY*H5`N>4>l#W@-iOvaG`_{mT!c7){ zE3*JxDF7~PTf=bIl?CA1?JEl*Z1HM2ZpWX>^4Tsm&A!2F_i$P6_r)03=9mAUx-;#U z$mX*X4`mY54?byajl+Mm^T*;%HmY13TchUP{rN?NHl# zDMi+Iv1{w4lx)Jcj>N5(QnX%kBraRZNIkiT!EK8e+|~uO1$&w!aoHO2*mMjoE1y1V zU2ltG-L^%sZrdUTw{;9ITO+Y4&j7h&k`(K)73db2E{f>e*3q}sDhPdBt%8pF^~`yV zwwgH)_Elk?=U0VwfbX#C*c|YwU;A9Gz4Nd)_K4to{M=%_b(C$ilZNNbM}PUJ1;Hk< zBCNLcSS_}uE`n=YgKO6X1(4bO3yLCQwk;xN+mb8n>#gTz!RF+F`#Y>V&aWX%0%>g_ zVjrza7qZnj4=Ax^vDp;I){0V2^&t0uSX?VIIoS^%O#lsTQk6 z@R(i|W^;%2DI#u&=b~D~%VN9ds>2;pPIl&m*>FPHR)yEBENZZoS94x7uH?+dMH}Ye zHoeFL5jZel*7Y-f7NKD}P4g?!;)%UHjHnf_?!S`O1? zkGT7hE%@}a9-d&=ejk4vfBy}LPxndLHIb@7$nVqwxxz-5@U(a;49`dBUxRDi?fmN^ ztW_6bty-{FxQYU|;;GcgL4PiwD_$1+*mx?QhCjpNbN>vm2*N@3xJTVqs}%oS3kQoA z!NWIK#E?#F*F_MlE`nfnQ7l?5v1s8&5MH*{2t@}sYY9h-D|Sx@5JrZ*&G|A{{=g){QN8)MJHY-AHoZ z_VlX%&PyMlJ}0Bfw2$%73jbUUSOlQ{7F0Q$UbS`1w8^g>v>MO9ee(fX?@Su0jx7oE zia6Xei&$0dSXI!AS-jYFQ2-!y|DvFXO4UrIo;>~V`Hz2(WNw?nlCq;;Bj&u8oCYJ-X}$(CBWL-FRjcLKTgW zqj(j`n$N!jE1@6RS%#f;q_O(vv{q{5IAlD3Htcf#JoXkPg(WRZ78y{W(sKSKP^l59 zw46ULgO(-3b}R~+Y8+b{Fox}(nR5f!X7i3M+sCvQX^N;)BUEXzzCx0gC7B*AOR_bW zC7BZ4N}_G1uTRyD1WBz5vmL{u%!Nv=T1WWMs!HL3DJUqH?MThy2+*p|!hTjW51Z2Q zo^>^rhoqWbNDuxgH)?1H-#Fg0F3+>;H+`d|Pqo&KJ8ZbyeE11^mz_+6N3H-A=zgU} z=uQ%;@TDaS{xYz6KoYtXp^>Pk_aIljad`6Ig5Vn=I^n)8bSIvQM`%11jC*z6z&ZE3 zZWqcF+vGR?P+`pB3+{mtEmZ@GI6VyM^+zMPC)^&weJJOA5j@exi{O#ET7+74Qe%3M zD)UH<>r*rV7a^gh2njVsM+h4i%@pjJjvh_zJUwuOGcn!MX`y$ zWo~qbhD8Q1I_uZEYq%`7^?)B+oNlmC-2h~4PX9OYi&hX*xPuhorqdt_YF*b809N;}CyIiWS_iR$Qi|8?IM8H3cy;(yl7?ZBAE8eUCISA1zS+UnYaSff^y=H zWzer_96LspQFlipK-iRK%9DeGQJGA6uj?Sxnl!(?n^!@w(}I|~#!T51i`v8BX z*DkF)D_0$UhFYLj2fPQk*6@(tx3_|pj+R?>`i>1vOrGf)pw>a9VDENxDVjeA1<%R`!II!B*kT6GRXMN^d+x#Liz zFt+F%r>YiOKsPPXx@aG$Y!b=*Ajs#sGwj?g@X>;_11wa;ajPXso`s>fYaH>?9S1PQ z+rJ1=bq-PGTGW2Wt?B}uZtFr5bytL?I)|lhiy-gWIVR(p0d%mcdG5B$>jlyg7mVW zb08@=i8+=OO;t2ATQJn)qM$>F)7^`Lt|-o_bKI!fy^Vfj3ot}djrP8ZUcq&a90l9M z!6RS9`^nX~gK|rfZj3s$IZxh;MmL$Aqee@b=m3qj32#Ty;tTpaM>;QA#ECi={1nt* zLZHH}>X6bxtsO@4lG-hW9^E!3I&#{dbj*-&o9Tzxlc2jBH9YR@2B~2R9qt@TT2W%z zqE6#wqpGmuMayb9T;zpmU^qnNC7lks2HsWeJ5Ml4bhrwIj)8XqhitcpDcSa@*rHun z?deyLr)i&Wb;=k6Ar#j*?#{uYTXosUF8FC(k2T{-=4!mv%pEUUm*-{f@fnP+{co@j z8o>Q&Ti(g}HvAKrgdzYshlbWm*O~PMBzYbX)_;HvPlx}tt$CWTg$bd@)ZfCtj|jHI z0eU1!Y`qgQgfR+-y|2Ifr_cU@ahLY^og+iR*+>Xccs6ptC|H((qpP1rOw#>+S|Cwa zSr?l$b}ym1F=_1ve5m5Mr*Z9gk(bnQEu;uzb0OQJRgGgu(KgoM7)_<)($_^RE-)!< zg(9}pIkw~#Bir$5Hf&nGq^p9CR4>fg>KbTCQmyPIodUY_@xrV?kwIPX(tQ5C14m1e zJh`s4aPN50Qnum3VP%JUAZ^%9=+T};K;GVSs5)Ly%u@O&W^Y3A-7|M6;| z4L6fR=-mb7_Fnwvl1{n?uNU|eP{xHT-6})dmEIwstTJ>fVejD&RxcZ18#~~A>VNhh zm~0bf?j7?n3cWX9xqI&O$J<|ysab^ftlT-*JKD37GmpVHp(2)Bazh<`DWG?dXLmq& zynXD)j_e)rW2}`z?0ScKZt}K`;xWC~=^gNi&D(tu`RN_`iI#Xigk0f!})bv5bx@LfBtXN8n@>-q9rk!O}*GZC^z52O4z6kmBjC_3CqTP@z1F z81i^A(n0Xfe1~y7C#Wj3oh2RAJw`L91d8&3*)ipsQkfcO>m__{x7-cpYkV zdApw8S@)jBpv{lnTc}UlQJ7~7tGDR?_cQ7Z|o(}9pQ;}=TH4@jH++$9Z+q1~FE;i`K z3g~s|+WX$c2W6z$gE^pcYc}?cj^kvqW<`|Wz%!iDDeZK}<;v&nFYq5J;J9}T=O%Az z#iDzOdUpbCZ*PPS6|OX~o7jxkQe1fNLWNd@)vA{-iEa^_dNzhXd>c6@cHg_epqqNC zF_q=y+K_JL9URX&44w z#~*3EGf2FTT}6Qv)^0R01ZVbXK*OT7eTdN3F2|egl$>`bp{{DGv8;J z>%g)43Q`AHiQwU;aHgCu-2tA3(jC-UlGIhLmn1zMyoq!zqUX0c;NkPY}-p%|D$a~@Q~tn1_`%W$a8IINGOfw!&MLpqheeI zM_}xRPOSocb#xE{GnoM1iCWn4mg5%0*5aA$GEj^DJ77accwlg(r82Hk`s~{v!81VC_DvC6Kwf zNgf)P8SY_}U9P4v7ifH(T%}-@A3vavbB|Zt9Y?V{B5=y@ zLG9`J%gGatj-*8O;kj_BWkz8s%aXdRSgIqtpy(QFbU0-xf1V?u^VDwq%x$PP^*Mi- zT3cdd!kRm_vZ{}#Dz4wMK4Ck$7@2h)oHcv6EaR+I_xM1pVf0jGt-(E8$;z9bq?W(a zrY>H_+mv#?p(;x?byQ`w89h%4)KtI-w(mxRtS zkDjo&J_#q3zBDv?$bvP`@p1{}^~lR>hdR@ks5`w%(Njv z?$Ohh_I0cps>`3W4IbUmsJV9AQ}1%jWgPwqPY=gF_Ky$bw@0BZNd;Sa)6RBuge5rV zJIE4E#k+yP{t7&oBz2;V zYN9T5DgPn^7G0_{79p3>As1hl_mkBeW?7Qt-QZ$RaN#zY$kg;&c67jHMOZECwWZ$Z z!fsZwRfDbwtK0NCaNFw4>LuYo(&m2@yfPCjO#A9lz)D13&6lYo^hxihM;D2+qP&jH z+n`>A7G7T%jlxrIJCbV_9+i=5swr1ASvIB9M6H=^KqBy?@E3R}Y&n*K#Ye$0xn?2O zFuLPWx7MLxwNVa9&9ou=WI;CAEV=Oc%HHWxfY~VQ1`f^G!wE0J50Kkni8a^~Eggdz z9mKihXO4e^m&yZH33f#aorNBSf;pZQbFb_`% zEa$9aGb8*L%2~%|w5B>pgQ)}qWoto-2?<&icC+qc`#2JmX&*9^13>n%pLsL6pqiDO zS8d9zp*CGnLv6YutftK9JgI>%e(7hASA_L-;bFvtay%TK#bB@*Xqr)w?W*}E<^f^1 zl*NQ^A5}Vae|Z3lm&n)2<3nDZW=3ZyGwpjI?-oC+`Kui*@N-$8xGABGnsTWP)s7jX zqneX6QPoUfM8XfXtQ}|?)I##$?>^vf*I~|{bs9JR2 zyny^ry+gPCI!4Cy!U2+M(aSf+;PdSrv-R=w?n|Vic6T_)^_Aqo@i9HMWoY_FDjlWK zRBGL5Dj4{|gQML0Z#P3CwP3VZv19Dj0?Ja8R>zN=ITe6_3Z)A67?p%lR3DY{W|GG=4zUDKe!Gv&lA;8qRK+ zupw@*EiNA=d(y4@v4An>DB-KS}1(RIXz_t9nWxO;%58UJ0RD z6=uVswboipB5D8+H?4&jV|{zsr`d~na!K;puT^2T-Ky}NhI3%YUcHSd!@jqC-s2#U z`KI&=93KPa33W{wIa9SNtkY-e9#DYhe!)8!L{*0-HV4{&j%88W(n3|XV6Jp_`hs_| zeFK?Ohj*9VW$aU9w&k{)No|{Mu>y&UL))TR)DfQG z-0SYZiKc>QygFnA(A>MFMiqGoKCI~Gi++Sy&BoCkJ6B|FiI{n0fyO-Vf0X()A)8O5ek7id*o=A7-75f-erZL#ZM>;(UL{EQlw$LMOU z)zHhDIKHzY%(Lv88WPfz6{ZGpyvGh~+Dkm!=^MPUmzd{)76Oj+tTv#7J^B3qmKxjz z`K&YxTk{KOj=6u=y|cq(dez-*B)livAdsg?(Vd){?}OGqrvd92Prjzqk`D8%%j>Ys zw2aom!JfROkYu{%vDrA}lUE5z$cZ`dlhrCkQlkhSt@9?6FrWo79-a$gJTN~;Kf&Z> z7kBLYXYgON{jD74v3s;DxXfLJ9j8Tj+b?LxU%Akqy$v6mOE84&V_J6HX@8ktrXF4i z@==}B{bcwQIWK<@OluKl_KDBSW}yOPPp79Ktn=+@|10Qhw~bvcUxCi#$t#a}riQpS z3;FZP9iy^??-tPD=ZJJ!D3sw*xip3I@TnZ{i4D5SU6>P0Wd!KarB|Rkcf0h;fu3lw zY*KWR?q$0_(fY{Py!o@#LmcCY=FZDopZi}acOHRZ^C;)R*$bR?-k~FGEDCeqr(IR$ zFpt*q=~GgKN9BUTj_w4TLrBlF=(QNe7M(dB-uvMcvE5V-?Wne76N&Kg%5tqFv}d8* zC2MiHYORHKcL6+F6SBW!HcL6Ofm~Il!2YIk@Ma-HK{&rg2g00o+QVtvv~oD6br+(8 z{%to6%Y~wOL@j5?Gvu-)TV|nXHq32?s8e#Rl|wSVi6ES|l9k+Lvzjy82>BeIU^p6i zJ$2Z{k>{-(lG#;H-~9-)&+#R5B@mrn%{P^jnU6YnGy~21BeHc4Pymf0Nw-Pk7 ztSQ?HDq@-$4nM#Uw&mUK_xL02ODj3%^#1O(7a9OacBBGgPyw(3#5W;ZTi!PKFcmve z0WmLPcD8`=gE8mvIY@H3y!607?cV(=sd|`Vz|op&B3y9>?`#WeyG-0sXl&em{vkl!&`$RZG?m~NpJiGLSB|_GH#_w|dRV&I^?>8~?WCt8FDt@o zsTEfc$|5;k5bDES@CjIu7fIe=kCz| z1AmO)LDxIdl1GANe2!c)TL%4NAxE78mn7LRKZ9c6eHI2}*ZAAL2-SA_bZS$%z!=+4 zRGV-86e()VUbF|U94N8(*1MyzJj{i51>U*;gj$p>^mqIt1THZ)w)L^)t-1L0V!Cn> zF$-!qN|NcL$eEUNa`x#ZXt90n8>n4}1|eEo2_pHQ51=vXcidn%b~06`^Vdz~`3PD} zrU^)s;}kkF{{BBfpn?0%jgTXBNW|5iUABWEyY8ph2-+dE%WadkiJcCkK~o-15J8QM z+Mn9L;i1MGRuK+Zj0kk)kjQ}cJnvCEyTa1WRoUGhI~qFc9!;d{N~Hku--ZtGQ!5g=Kt9M_?q?W6gjdL z46=|RyRii^ohE&`uaSm4O}Y$!Lt<>4S5eLGAKyoZY(D-y$?*CDt$}%<>fS^go2}F~ zZJH9c!Z#KQYkp z2h5Tr+rs)s`yvMX=F?Y_qulyvlx$_y5czy~u499~mkjDSM809Q@x9TLi`xo>_!cVG z{rO?iv6ox>;}@x10T1Y9Zq%SdO{Z>}t-}vV$>g-R4n6FTe|UR?CF(e&_vBll4%{Fp zj=HWpM0B|vaq|w0HNdsoHC5!ywl0t)l?$=-#&7Gn17_sI@X`_M30pLf*WG&ZaCqyN z7+NURJczk8dI7t2VI$r&5KddHtwRv086lQlc5H<|pw{qWr{l{%`vPz`9UN}90w2t} z*9M0eRosV-pb1aI>*lf^CR1a@6xFnqlR|%cX7}CS{luCo^&EFb$ikuz`)?x?czTO_ zvi3aEtXpzA2({y}^PuUx+qingtw4!*DvYm3|F#8xxZA&Ng+$==)uHa;f z2Q-h-)T*{K=IDp}=BKH39e=1!HcSTi0gDRXbiW`;oynFY*|DJDg*$fF5>xXtnVq$T?ocq=Tw&^~xL_Pj8@y=$C}Zg+@?>9 zx~))#Y*y^wCxKrlo#o(;Zw2bv64Zg23CqFZh}F4Wtc$7YUGj|*)iIUH_2ZV$3dn%? z5MvDk_f&oIn?I!Yl3NMZ$mXK1#CL`FQzHl_@QpyOR|vsWH(Mb9wyZ?ir`AxHP2*Co zv^^q4-otjS8ef2=>|H4snffVi?gk7kIieS)d+kzkV_C4aMMKWy&Mj( zH=T9|;sJVE$lQ1#JTx;26nOgK?;e`LoWuDdN_CUiihusXng|Vm>E8~ZT%u=KW1XFB z207WA7?ZX5GHYhqx@|eC;t8^AaIL~|f3$6}?U@eAY>p1trtM%sy5sOUl3+F<{<(F4 zz_$GR^9QIL8qsD{J!8{sky;e`l7(Yj{p92K*{t3yao!i#If@ms@t%#<= z*t>c*FoOF%o1g;h&h7q6yBX8I60sYwxU5n{!d8$0hTg9GHCh_Rwyz*m=U37o6=bk1 zsYCC)`3y>&VD8Inz0(_%Cwm(Fd;R}#lgYUGrS)WTn~o9e`~QGpZHWcrTF2aP$s0RB zup-PR0(HQ#iT_0DyDHJlt%Cy#)p1w=m!f?Ip7?y)O{Y7Xt%Cr&qs@01E><7w>c^hE zn#4fNsmET(wIP?wMlmk8H3(u3$x7X{OxixR#kMmcpUZ@t@ zKb`e$YT*I5b%$`;rqmt@AU{K*r^XKbSvUas*V@H0TviI_xBrBi^;oXb-n14r@XJ>r zVc+c=Yg;Q56s_F}mE-nXC>w*rwy$=6(EKK$&e}&VTqq&>;d%TzqG-rd)ZT6?DCK`OZ3$*x%!T`TTP9F-_sM0EE9;rEFVww3t{ErI?#q2m=0nKm6+d zkSnB&yB^cpws!a+=DTVK6r!nkz@eF8^7)_ZzOgpq@aQLN0EL$jdGoLEGpXGF>#02a z>!>_6^Z0LH|Lgk*W2-@O{uTO%>3CHhRO#;JU+ox^d69jGH#PK-=5kM(Vna`O)6!tI zf13uZgHZEBTvO@tCYp*@J8=!!wZ>EFd>z!#1Kk%$DqdDm-*E74+&&8&^zi2)y}GCcyv0>2>I@Rp z6ECZ%Gf1>gxGaHs@l-{f!5zg44h=b(71yw6q9{6_RSPzZYgpt&98Tm;exy$BKq8Cr zSP+UB*4z=rpdFPfF08>#kIAhYV!SR`aQ)8x3l_$R*ycx-<>CJJ3!hso%&EohlTc#q zP+~OeqR}m65!*DozZjvgmyg@oT}}o?c=uSu6l)1X3OANSB}H`O={+J}G?s-u#_Pg{ zkEbdc%kF$vu>Uw*8BFE4Wi(aMJTFKyU|$C|qq=dgh?GLFf#MT^ocjv*2RQ~7PsKAs zq(;0oSeM7$G;}y2sugZEDN4of_#(R9Hz(kxh9a%F4@9)$*9f*@WSS5f=LraCrX~c(LR*cXt@q*2&-Nk~2Td%v*urGe2Zx$Q zLfuw{d0gg%DMG9%;#Up6@t%%4#~X^B?W$rt2ZxIgs5P_P<>he^&T5KqRwEH}@fzt+ z4$kO8zSf%B#n45IDCz?eQkPSVyS;#~aEle;uciopHG;q58uGGwtq~;XE+@>xxd?nU z5`Y)41$Tf|#n#3?+r0>LHG;Wv`fw3)gfAz|ttwD!Rrns`O3dDB&i7300--u{h7Zw7h8JM9sFg6Qc>X#}7i#T-x`MN#BU;f^MKf^` z-D->IR$CO~)fUBgwM8JTEdpV!fUw2>CKPO0QYY+%K32rPTF1YZ@>lm8?2RsjYaxFD zUW;wwP}fqPy1owTT!gn;_gS@QS&Q~1uHHJfwNz{Mz)O;9Qzt2@@^VJ?2y$ubI>Szm*%Kt^)bed3Ah~C%gS36x9}?sMg&h z73@V8gLQTLKu-6&eIZU^2Po(%o~me27KK-}LZ#vw>Y%hWj9n*kIc0`EY&Uc7(5ZO^ zDUj-6*^^5`w_Ue_s^Yroke$Ix+(>J<)?%@stGQs)@iToUf&j+BLx=oYOy;Eqna6VvX;xX#ZM4Btt>SGdbLWHzT5 z`HRk7?{xrgw;MmMuBF=BWugf^bnc$7to(uH)lCF@W)U^(95oA;W%%rI&C-F6-Mwb% ziXy-|hs&bM>WW}46@Bok3(_-5q6_y>DMfa!i$=MlYIEv6{Qk-VJ7H_#AytIhx+2up z6`{5+cpQ_iIOyDE=+Op@^$OqYv5vvrFUaP&Mnzz*b6{?+9ay&_Lf1)<*?ixVf?~@< zNfMhJq}_^^07a0l3qm@nQPKQRMCiI8q2tyo!gHO&bCF)>I9(`7tTS+H2gx0;QyjLN zQ%sV?CIm?m>jrcdvvU-0PBA)O(K(zqm*nC1lUpf@TP|t+Wkuv$L^w4 zESmTwE^U6!^UWDEwM!+eFI<-6e!nFy}0oZ>DAT>7Z#ZfNw_r!17FUa>@`f>5GV7Uqtl!qVTugh~DF}q6ezGds)#} zJW``xu6M95*u@;Li>Bg19M_QT98bmGJD#e7WxArc_Yf~9PxtcoMfk3F(QjF;q?DqbP{jE9BF5Jjo$~C1nD3#7Tz4b>DJg_RyzThW#YlF8W_V(k{;o}iIJkUozdXBSuf`1-yMT%YP zz3>0uf8)<_x*EB6v2|nr#TFO-UM_{T0@Bs7J)ai6&GX247ESL#Jm)5mq8Pf~2;FtX z0q%DHild0U^+EFHsu+ZCJ{9}(ui%ZEc}KkQvs0 z#h5-wFbIE}Pa>u0I1W~)D8_CmB633!ksFGL+~8vDawfWI^OBwU;K+h%0fC>3eE}V|MllRxfVi)IY06P*p9vqdk6FUd{!jSu+3o-_eK}9L1YtrUwyb z0Gk`r{JW_GICwYZJUvJex_=AWy@=cmE^=j7#;Aq{X#`M5_qX^Os z4$@6IPY+Urnw!75Ko>C#0^{J|=`$rFR%BThE;s2pJ&3~Uq9>W@L4?(y!Jg*O+m!S4 zz(qLXHpxs6JDQUPw9zC#33G20$_7SY07AZ6MHpgmh;7PndJvs;{dI2e%|tsQbFLpB z=!M82K+St6%l=4N&xj#nbsvK8ksniVKnSdB&WY%HQ@ zqtLTV6~>}?wXrB(Z7gDHqeQJ`tHASaRv>4`G4=3Kpx8AB77zq>6`(OP3h>GbFy6`v zsJojRFLe4~EW%i$V63brC8KE+VwKHy%?b`h&9%V8@2_Kj6dIK)HyAI*4I2bck|bt6 zuRKqZSLJuqGaY7{YmX!{wR#;s>Wd?0k$282^{_oTS5PGOdqru9ZQ%uQEBfyN>VG!`Ac9E(D=#v))ey7QN} zO~)O{aiZYhbHFH?N;^O_mCnt#)#0AtfYFL@$*ywbKrS$;+ajcSd3BQ$7Ul05)E)*c zjwT0#mUZ?F=<*&JSNK-fhcSIFVRQ^AXj2!-b*m3Ii)TPLHQmva>pog}o3jY(T4_bt znbN$dwTQjLH*fm*Oa~K23DlwnoLX|nEx9&J@2Q%Cdn~lUHu2Z+w8!Ut3Qrpy@u^HS z^Fs$8Mu&TXmMx0O8XX3TmWA^mh+`j~H;a1UNb(ls|sd^C7*eeb^VDJxjt_GPuMKm_nTL6M$kIRVa(?o6Dbnm&$^n z9~KM9;r_cV@p+7*!5ZXO4>Q@MtRSqaFCNg`ZF0|(bp&&*HMr2NRbd^|LF-7Q)M^pj0dm6Wa|8Gc zOp)CMd*zDY-YeK^RhVb%oUkZgWL)82nC0v$z5N#3-?7FbI^83P&)x8Zol}OZDG^bt z!uO15fnT|txlM$5<%C6N_PVRWJZy8qqQ;sXMGdxNF6R^}fX@o?EdBZyf3}^uc`eMF zDN+z(Yqn!;CE{tZOSmYfYU|bAk;4~OgNHc?u7#F z#<8hru{^DEBjlc^hHM^4$MjoKvvwj&Nm5NpFMOjf;88%8OQNce_Z#K5lj#pLrkScbwkDB4@Sudd@oD z*X4DjFKH66th7nMvfL(uw9ppwZQ|mdvUTJ>BP45P#t?a4Ohx3w))a>I#B5!`%Z|;{ zcj0d*Sl@0Owc0l?JdoH!x3$}frhoxRF4}KLJ;@ypba|%B43MW<&Pg6p>6OD#yZt-x zK87qXDGx^+5<4bWR0)O3P4WD@>vUfg;i#$zM^%QS9#;YtXw%&*fl8>zlejv$=c$T9 zmvWN)yOfFzYug8$maJ?)Y%lE5Urq-a_Kq~I2=kcavUAT#AD(w}lKi`rs>r-Tpg7;$ zb1I9+?rMwi*j*EL>?zZ{IHUeO_?XzQ&SR7-JSDXSIl7z8Y7v!qb_wsIsXn=KCz zN0N5!SHHxB2LEq24j%E7?np-FYDd@R1QaTVk@m*-2U`@MVaEObw>G}hIz-OS{Rm|{ zEl9Fx>soSN4z*Q_2K#|wrRy>P;OPEkfTKszVv8o;lE|pG5~{?@z)zB)98rqag3UXZ zbJ2Y37*kB2t>aD6RQ&2LUyH3^CYHfWo|e+vBCfQRFelDD8E7lfO>;85QeqjWBwH=F z9OBIlv6wlHue^urGLN>T*-vxk)`20rdv9p}{h=KonKtfQfkDf8vVjCh*nmkN zG-|g(f2<`RO9sF=rZ@3h;Xd4nbI()976z1)x7-43>sv{iK~fhIR&*;&olW@At)$DA zhv};DvT<$kPYSbrS94~wt_rg?e}He$?oMBM4vBdAAjoGm!{y=WT5Q>BWC+1LNll|} z>6}=*6}mH19bq}S>ZBV9kRh9iGNircR*t=`X1Hb@DLr5vp*5r-TTqU-{SA(+`4nF7 zwEHd$O^#PCG*U74&w^pzx)urd+ov8Y=!IksEW_gk9RtgNad`UlAwwvc-eGSYW(iJJ zF3cyIiY>%0BKJJG4dXCZZwu0Lzqc*IEn64I6Re_xE@KDSQQ0j67JRttKS*{I+>&bm z{@v6Vj=uQ(Ve9G3)$P`ymuMAuN<_z5s6vrFg~f0sbI+;byo||7^6yeAo->#0!V~7A zqzmiu?V~1ekv%~ZI6~u#pk5?b8%^B|eGW_eOR{15=vTXSFlH%Rwd|54Po%2~6dBRQ z`79};MvS#~?HG*D9}SttRPADZyl^s2EdXYvWon0Ema>fw&sqS?ZI^cSVmrcvo&JQ5 zjJN_jDm$KD!sL~>wyhn5IofLk_}Y!_toHa!jvW}I^-L}F8tK6GKlTSiT?LvOm z<+TH>%STM_s-O;by$GG2*X7mXBj(-F0(0FDz5lBP|2#~#xngL6S-Y>|<;11WI|6ix zr?olL{iMrP+FJ0>oK|FOfj|*?wRN!5x?rJv#ns|2QYe%pVsuxE+I_ARUeO2&nrksv zimtQfO5v^|WC$j=P-P>>6t!%+}3g;?V2YM zqgqa(%{Ldl)vn!jNqYpI*yr(Xf6{_Q$k3C^{{*Jj?iAYWg?6-{C^~{x3m*!5L%~Jy zR9JakmkHoQ_b(F!7{!a#$v8L%xX7OardW$3*dItqT;3S@;XwA&d}>xsW)DiFS5Ri4hr@e7b%q2jrxqBD{L65?lVlB zLj@K}FJ5cMs#ddglq#saBUbCBL<~)pb+{^@KXpGBER>h${Mpd+jakH}YIo0eUKvZI3D;M>ZqRCitLAI%K-GwDRw3Bo)O_Oy1_1Dr4p-NXPvte&$_l8O8}%-U z4&+;v=+JvDAwv%uFX+z;D{T|z3+^b|3A4L>s?M&B+1u$x`vu|q+JUOeasy&^hRLGN z5BRyfRw3TuqJ|6@R3Hck;QGs_@djHfq;qtQV^wDa)Z5K_XJoyzXZ&ryJES5SAy!&h zf(VV^s_10iIBpf|lZ}KA#mmC@eOw(hIG1+!>Yx#96)(2L12+P)!et53il^dmm4^CXc<-ac+qgaI?xK5FYF zopmzylBBc598Hy)9>_XHkgIW!%WJ~<>q@F>@Rss&V`lyMkgjcQ8yAA)v&B?RbBu#o zUYJ`$Ex4kCGu*PmYP(=Bb=v(?Ar13PdBn1cPk1+!iqIL@No@4y{I3KlCIDeN=^E}@^| zUD)na{n3_Vn7f;FiBaPylb1{((T%{RKOX>nAT1T~PG?iL;rLt;V z-;7*YooJUN)u0QKjv_6q>JXC8){L3lf;&I9lC%0rpEEUr3uao9RNE~{s=d6VtJku< zoUoegwh<^it#M#zS=dpbTVWnh0)yb|s@?Z+2Hh^#zPw{fv2TqFS=#J>@gv);e)9Aw zWT)@2wvEF-7BqD^k~dAdbhB(D?C0kXn_jyPVFM33wph5(HL;DH6?=k!hC}rk0-)`} z_+2_A);REU$tG2cj+8eFdvMjwp@Ua8mw)O}z7b$r96Qbv9Pvem!y2JIVP9wP=jxcj zcJ6n~j_w4j=;D#0sdNzfCEVZBeBq9Wc}X(8BRxx!I{fnMw}AYMRH9a-1jQ-OF8QV>LpV<;~G%Ob6tmJ3nshZwm-?)>%fvaheq33t?BdUI;#I$ zkaP@ZNm6a+B{AT0XV)PjRsRBdFzgm3BIX}nAN1nc12VNJ}Bvf{uivZqdKd#c5G)| zo@QKWCF&b4f+(LSMpW8EwJw4vT3Ir&C_^30A)U?k19KtR$aK%bucK28>0D9E5k!(9 z)y^@T6Z(B-;R*gYe~h|eDRg8>HD7R0^t$?%iWpKub?(qwg>iO5O)Tz;|E9%J=OIy~t!QNg&wq&& z!l{=HmSt$^adprk^ylu?K_}oStgItQ zQDxbfU&Y!HD}!plTNLXFWBa?wA$QD?!W*;B!KJ8HY~*FFiVQ21X)%9+OSh7LN$n#{ z>33KvpI^h89g8iCE8U$xB1uNR%XzXBzLg~FxQL)&JIjSdxA~{-StmGYxpr*3Wl6T( ztt1>y+HG_a4s@$38A6!Rtt2&?974NQfK0}0==o*Iu*sMcJ%6hwH9pg#OzGNC68ZB# z=zg}{Y)@ZcyG5wKlTe=pv3qPJ7g2v=+dFs>{2X^%oSJ5@D{SbG`1;)C`flS0SQOYT z;uMzN2@<+(C?rZqr4tgA6DI232?n}Rn2>uXAwK^wmjoT5r*V*B{DY13G{A)fy@a{6 zf9oS8sa}K_xiX;a7pT^%n@jNR{eg#w}V z&=MnB!afqSKRo}@n-d4_+##`OwRmcL2bsboXJo!JiZ)jNOg)HM5C*Q-r6IXmMlU- zogg9fnLR>XEV{)$+fW_f_%QWD=0O=vsP$Z!&r+Vtw)-sgZ3*yM94`{%b1R8CIz=RP z%zZMIg782(EL)9RfUJfE^5sZS`z8i2T-pwk>wu|*Jrxt5j2hG*+##;@oN2^C6K@Ms zC7D=aeD?Ua4ZhrE-__i0FIxbTB*Q)5efsq2%kX>Vv3RE|LjuXD_AGgp(&X0BdvR*aW23#!uWiJ3@p zt;?iCEex^nzJ1IoaucTk7rXh176NJIdanmDvn=esq=Pa@7z! zI9*!^8Y;LPDaEXEZc`j{?-0tmJe%gWUTI(1OMK3FtvkrA02U5h=$Z(s6p}-TUYrV#%frsrA1y%O~ zPteJX%ffBii)q{Io?-pVL97%!)^i|^y@;@HC)>@=qd7hJRNE($+wEOY&cWuS@w1n| zZ%HcBneF&p6bq$olQ>kbV%0=9w)H|${t1hipEt!}8LNQ3#U@|c3rj&0pk9{~HPHL= zxoukn&>`$zh)N`Xof~&h{BUaCwG{}OVxQh0_rg{1&nWnKK75KJKDPWg&`1=n@*;9M zJWEZ@zE_~ik}nj;B#b4VO6Sbr^lt3s>U%*~?)SYySh_N-{4E^)z# z4!o>nt40)6$-y#gL5*ydvr88&M(1I7gIRC$dFmT3_$H%63N-E=X;~50)#a)tE(B*? zUMJCoc6NuSr0Fmm$geVBvHpM_WT?@c)!u-@=JFq@_1q0R>+;TstNFXZXp=$z>}OD< z!<0Y)SG_w$m2W-NgnWzRE%x1*4Lp&p+fMzva53zY9cIax9`fY#8Me&!LnL8+$e>Tq z;76o8*sJ25bz*1-EPXw8+{@uA{8RfIXkEi6T9EG!UX=Z_uovWvX51a|s`u%?<3AGX z?uEQS=CNF36sddRIbF`*Gk<};xJ#%ja@&InNVMJKCz zrZ7-uegd?An)DO{E*bQ~e#Z06NOqwnw|uFVl#2 zbY@AC$EG=G^p;DW%`32HOa52T%#!5b(9C6_3~+zR7CppvbmREPN!!8G8CS1#_Gl0^ zgIsJ0zL+x&#^;xH=AGiQq}p!2Z3h=F<0ZLXI-?p#vngX!eg3y0UAZ|p7_(k|UEa)P z>$pok+s~4{TpY~0yu#1CJoN_`0b^gK-=oiLs*hoAG|lFmcFcpIms`Unzd!icmu%CqFy5<5Rb4 zP_WnF!d?uF_vatHZfBEWQjt^(W}9wI+nhm;Qo$ygGrcGtgwxnG+`sw(%09#3%RHhXYLCgx=ZM`fa^ zc>aV|HeP3cu1hr>24%?3wgGQuyXNlv0$ zZgNF~kAFzQf@V4dEa@xp zgW#CeY<09bJNOn;k2l+5ygY$j7gSYWx7@Z8>@sgJ2VnNqw-GdB(V-SXvv0{WJNhzL z9lt_4HMXp`-`hvS7n9pinf5u0W)TSrzzPpFX&X%7yo>>keL@Z}JMdk4o=)}(bXEos3c32tE5JcoWh zyk~nM@+%z0V%saU!HG-?;e5JxGws|KX!tw%9S2bGDqI15Y^uP_DVrUUlG* z6g1`~mJ@!`2#5Lqz5RmyrQ;@-sPpDOtO}?+<`ZjR`YPt&=*henL-J|+IXH$AO{KG7 zG!-VrtJefEx!-GgW^(@L?>~H)*bdFtQqOX<#2~K44_Zsx%4B!=N>t zFV}bb@7oan$D5QV4=mr9o?0y)#qw0cQ8hed@NE_tAF_IN+ z)k?G4vafm%YiE0lv^jmH`yJJYr$W?*D^5Egk3eo)o)#aDd`O64G6BOB6;pH5XC1#5h6pB1)OWVY`e`gC*T=)z4z zH;ASep`!~ivFY7noeqcZVS+^C+q*#en&{}x0$IGPz0x$0YVUpRn+KMR-uI3UZiJGs zv7k+)6dqImh25;p?zVTjgz#Vnrzo<~odU9tLmdwvUsI9K93Alx^P%^oec9+(hrQ(7 z*Emm$^%&X(|3&-FQDRIG!9AE2s~3Lz0mM?Y+bDeFL*%hROANcW5b{fBhejbAsPXV! zh}v~~)-f(5IjtH-2RCp495cFwLs<~9U3P76iOG$Qa=r%{pIa!g-+}d7Xe;sF(b0`v zk45n1t0L8#4_$+<;2Is;he}Ze@6JATgdBU2e%?jV|QG_{@0t5QW-8ayb5+GSpFa zIc$JFFz!Bky?Kqqcw{;CenMhAAI_^M_yXMnz0^Lw;tLga@x9$1jN^=MH_{EqqoWo! z|Jb=VJ7IaK-$CBPuakNLD;Ct_g~Z`o|MzRChql{QzoM+z5cs#{a@k3t3)twg#pGf9 z&Kqx2o@$E$J=BgfUcMHOCb9^Q!u}-9SbWtJa%_rFASckh@G&rU$_sDm%VDoWV3fFkaICTGxGf3=$<>ZYU z5i03mM5acNCzs@?#3e8oo$6G*_e%&uYaUGkCbr*3#jD?%1S&`Xb`&sy9&s@DVJ)y5 zUU(eJw7d{Rfu;4q-YD$1 zZ(skb-IzWC5&bLl57Y6gJV4d`t382N*Kgw;6NwxJSYhOYYx$2q+J93# zH#|EFwuUZ+qZ$_VjiR`t(L=Xby&QcD*2}@TXsV*V;UQgMf^tX3qUse*8ZK5TT2@iV zkQk=mq=6fP^p5C|hDfE6qtR3jqenU+$|~p>NX5J2cxx0)8YruvZy=RU8gsrio!&zd z?ijcJ8Uh8516Mv3^#Ml@gMGj-;=`H+<=!8Zh(u~wLk>fSVLv^jZ{t9?$ew}^Dd(w( zv;#vCYQ{-sdJthYV7OO0f;iiDjLu(Xe!tRgfWI2L6BoSm3Dxs#ij?g zj^mKg>SzaurYh9D&$?*rar~HMEmfm2Cqh!SA|pxEShz>IAhO^*Bhh5xvY67%R-Q@Sybzf& z%CNc(v$^@Kbqb9(2-)=xg^CP~tF!rQNKp+V!?T3E;VM|2WP=Jh@@4^x`yH;dv)~E4 zn7|@K(%tPSg={X?JTF8R6(Js}?nqv==43$08eepoCPBtyBE;2Y8YV)l zB*QNelAP4{ty+U)&z`&iYc-F4;c!ZIa8T>GdH*%M(Zl<{OPq_niJ#s=;&x!NN_+^( zRY>8Ps03$0L)h)=eF3TN_P$jSqpBREvcRg%<$LDWhZHo03zOB3u^w3!p{c3}P2sha zOkcOvNmoLmIy4HyouYC?D%uD%EK$~qVl3V0m0hhll{-C%0{0AFN1vt)rw7)y z2s%|o(5Z6JY1*Yu545?iB&-e%cmt3{SobtjO{WKLOm{`oZO*jCuG}q6_KAW+{{i&5 zKJ2HUxUO;>$=((0E;rj>AJU-^2&+wl(@POPs*3PYW%%fEMNk0>-M=Czfattro$QDZYX$!cG-qr>tV!=iL=hK?^c|x}!R5 z_wXW7PBZ3ADb?Ze9xsABz*-SSII3bCwQ3Z`QnqxuI=AT|U3=SA5<0f3JbUI#0#f0F}c}Qzp~HftC_Q)TwgRDcFF_p5lYc zVAOSWfP;_suMSFrxbV#$HsJ9Y47vSpEF}7ew${3y4S*P%PQ^wRW24QBF^PJ9L5zKD zcruVctcA>Zd$S=2cm3_gvoy!XY!5wiVsb_N-i4D+qND7nE z%=gJzY<(QnP4gb6J2CLNHlD80^4f0c!eL03%-CCZ1y!`BB`e~sv8qQ`zs0pvcf0zn zLsCIyi`dk*h)r#UO?`=lAzs++PCrIxuh7-gmn6EafT?B4BEvd76>X~`!#ZFUEvv*c zZ-rdlv|GA@wc8fas;vY&E$6RPIauo=n6)i}SzCcwH+A9OC?qTF7zJs?Q?cD|v=R&Q zY#q+O2yAWTEb5|GMO14mRO=>xwuKRFBEpp4kvu^4lwJx%?z^ujm zg=F1Ga;p~6tF6$h<@|L%KOOL5=khT<9MH9!Y3v?^!*tUXzH-VdEc|m${>bt=hX;-t zY=u>YyF^hi)wU>@YHRfBx^@7Qx_|B9*i>+~7D#1g`3#@0wF{eY9U>z8ro)rnmgA!?y(FpjU6L%ask)REQWvcqt8zuB+c&z}@hK-s zQ*`Z^ROUuc;sLcg^LM${#qJ70$j^AW@(S-udO2Ut zERIsG6rpZ3*s4XusxBf{wL9%sHQ&Xe8^N_z{rJE`(gjsTtD|<0rqT|u+|ETPt1d!W zwV4A;w0_ZpV=lyi|R#yw7g2?tOcDdQ(UvyTmc8JO@F+6W^ zQ}pz3nC|pOu0@l#P^xe*DKXOY?X^&^$YDEvm1_h09k)YK=v6JDSNX=i zDM=30-Nq6mJ~4t|9S(#{a9 zQBf3E%|{BuY^8P=-Op8uhmwo-3MJ8*A=(Z)IfM$*&R}=r+TGgzXP*xB*N%?OmBRhU zVY0a-yXhj_u9na+EH4Zg*tN^mrU;8%KLwtu!EIcdu5OqJXfbC?KqHFfBGXnxcTPMmXC$*nguRp0PCE*+zWC z4-NFjp|+@EC1br21h=Y~j`E;lMI5dv;&4q7hifD_EV=@1Bvx##=^UwxHXV=nToE)o zHjdOqi{QzAwTPk);E-KVF=2N(#dyd#WEU+$7l6@JI@w24F~iAKhfOKSE+;H?=YhW} z%;pYvb%{R96~W3oQfJ?-urX4)$MeBu_zsjWD`g=H$;ChvwEZXA|c#=av*G zmlGCE)(k4bYXfW?t|{_yh;V1DCdDNwc%_O>V~;B8rw-(D_Dmh82fBJ$Q0k+-IZyfsC!VolN6$EFC< zHGHGi^Wjcg1nC-qbc_9=D2A+&7_xX>*cC5pRW!ieXB>l*iG-9bYsKDpS&~;?H#4lx1tfv*D=Ar`wv_eV5>*yiV9 zVQLFvY|4i@dQ}0o>3q&Y%~Xu;Ol|~|!IxBMf?@ly)%kPiliqqXE=DY9iy}JK6w$H9 z=-71?0PJ=DDnQOShNlx35EgA1He>SgsVdrl(*zdC|(v0ITxO`m6G8?C0b~|NBOLE5T}bZ8_Gj*ayEX0)fIATX&Jy zs&PH-%Bh{cmEE<%xz;DE)}yY~`~wsFKCKQ~2~B$oU)eiWFTywVZ{ew#P(oW2i`EL* zS{nT_DvN^BTAZ`IE+Se0th*Nxtpi!XDMWBqxQdQz-Cn6ROrNalS{G>+Rm_do*_l_` zzUVMz>toN*N%i9uQXMyNgNhYR)sBEIx3dFZx56VC#qq9NVXm?dIa_QW7jm|ebCH!@ z$XT#QIsSF4n6!^t`Bqrkr^vVh!Z2qowyLnOoG>fz!q0;3<6_bHdV9Lat92}FMQye3 zt+1%AE_X%P`P{>!m!~6H%XtdG%9)#PLu?(xnpHqu>#UfXY*vho zb-n&5eeJtz9gVuJFI~IX3WUPqhCZ!uOi>tZQ6O0B0>OgAp@>YiMy4KFKnwPCzZ)+? zPpzP*up2K5_G*Ph#mmwOb%Vug)xC*tzYm5F@S=^b^=OM?yxLv|V$jY4tish1euY#w z)fv(|!`36LWnmqr(OT%Jji%y39Iv~ZdY7x?>>it^J=W8Da| zm0j@Ga+h#nTPwn9+yT*7)#it=*YFI+kKJ67-mkSTRBI*YHB(A!6q(Y;X5F-*6tQMX zx~d4@)swr|Z)-|9A*N%%m}J(;@^ zy3~63Aj~~Et2Niv)-};>C!{kI__}~-axk?o--$O^Z2v`HD#E?^B0RRQ{q!4XGV=-O z+vNXoPq|3OW;xuwU6e}A8Z8UPef0kwqNwin|6S3!M_kfbR7Evuw2ExoFJV}lfTpXH zhD2RDflJGhMTQl)w48sDF$FF~-D6k8ns9pvS#Y^7Z0lu7wXfb?^6JA3MX^ww1WtwP zE8uBSpCZ`QIoK5JrA5@KlbEXIy10osw64KXmZ+5_tZG@4JFP5GX)$LZN;i^p6;CHP z=|+<01jmwA`=sEc<(!>gjafuk(oOzSN48yfbV&Tva{d83Qj{KEH&R~;>*GLD_L3re zx#{|jsdFqTYcC21#2W(A>ZZO2@(u!$ZX}7`cSV6zT~QzvxCQASZ&l36SGSMwsQcZ1 zQFK)2m{M?R^l%AFvMTd~uWn7fz#*n+LF#pLh1l<;prS$S&M(dtG;ocI?CdyIs30BI z(WcYE9Vy5Gt5A}nWmi#5Rp-D~NWG%YP(-!5BC6F%xK((zaCj@!6tVumL#YUCbq;LJ z=_Up7l%JnVEE^tuMd4YU3(uODLl2qn>O5UGv> zUUQ|eK^^uAmBM|XzWh%D6FLXH=JMQ=A>@OL**w{}pI-h4vd|~DA~5myj#NO?*;?s>$-*sPgv@%6%yPO>Fk;WJ>(T&63#VQj&w$JoKBU#V$f_fbuGm}s z{rCyq@9$3km=2dkIFXh?U%_3rGT7pB4DF7on{E?c#%7v^kv zqP^{nnEhE>HRw{dMMiY7Sw4SNMhF*P5udC2r}z`QIeWKEL5jT`5X{w)EmFj@ddIW8 z=G5R4oTZ-|q6mfFaVwvpYYH}^=1CzEz2j56&8vt>*uI0j@Y42-WdWVx?gdLNH?K~! z%c?pKRqej^Pb|Ldl7$i19nuFBddHpyEI_V41gkaMyr&4}-UU^icGE|y?1VbqBhVMY zrryD(;8gE!%8I6fHLrdfAnAU;?c=3leoron$9)$)?6HC4KBK8EB=6jOnq0SVq*dV( zu-y9ys#qE~MhyO4-k)kRGfk!!okE}3TFg#$3 z4)zU#lj3Dzh4r{17(kBhUJ(pM;An8*Xxx1GOZ30$zs#PWOlyIGc~KY>44xguTtv~4 zzCi-5Flgo~!lN^693e~bRJv#m`mQ4AG!#Ln!Nq1pHRQQD+#2rYt2qNncvd`f9p83` z+i2@q!-{x5VSQ_xAG#=JaAZpKu~{s2e!1$(buA~U7MDC}G&%e1xaFqUM_O`(RH71LoWVrl}ptE%}q<}uja_BO-eW$O&dtb&skB?TdU z57{-}u$X^jYA=}S9l;<7X*o|`5G_mUaC3F1&Ho_$XgN<_@ZLz$Czu8~)psMgr}mUk zsT;`yOY*|@O$^Q5-)$j)aaz9s??Zmu(W2l4CDup^yxug$! z4Mp^6aP-MHmn%Z8?}e#tU2M~mWRaB}hw}M5wbeZa8(%mSrd?Y_UcMrBePFNdBAL8C z)H04eElKJGyd=rH(A$2(rH3u(Lz>(;(iV2XOkPzdtRr-#VbykvIgi4UmfB%-6lqb1 zQQ*;Swo<#%g)glrylglu9MS+EU9i%v&U89+bdgH8YDmsH1`k-e91qXHIoe@83u2?~ z{V35%@56y&TYWighxzq#G!kj(7~&{kDA#&)n16IsXzWhEvBjhPN$=7}!9b=SRK>8| zn+n*kAG@bG7kNw&e=G_{8htR5jr`f4YYh8X6p}O=9C~!6`}9fKP)2ik5YH?^aqKSsoN2LSTvfj74jd~~h;tr{NpP^DN~ z2YRa0v+##D4<8>N=(YLiSWg94dN5i0p=TobqXZd2Y_V!`a4jdiBTp@{MG!u`gjJkr zvVVNor?=drqdy3sd-rvSKm0|v=8um2Tt02Mdkucww&4#C$uAX!6O9s16r7}Scug<+ z2`vkd3h%xi96X-yzg7>4bjU@Eb#v?CXJ~BWDp+ytvFJ6vlJ;sSMMq$?6djO9EFG?y z+ub^6>_&EnFR$i8DLTWh%j@)-m;VdpuhVO=77h_rYi;FNQM44DYFF#xP?0T@Q=8f# zyI3^Uy#x~B6sFoeuN7I)pIDoPS2nC3=?+SX*c}~mnlF&#PSd-9qM%Vq01{52>ig`~ z4&z8tzLB;15@-~jq9pDJ(`9x%x`MO=tk*?{{JOlFK57@Wezugfg@r|U;D3S|))oc6 z{SEem>7HI31lB1$n=Q|Z4md^HQ)tt}?sjq5Nso}8Gig3{?%b}>C34}^viL`0| z6Wtw6dcu5dU+&~7s02pg76P^MO5N4C(OT%pT`s~=suf`!yDP%FtjY+ZJ!xIx4zXqA zsS7zKl@X@S>8^6h2y@OnczgRzx!ufrl&=ngd(kV6?eyYMgi9pY{7XQ1U9Yd z;7HS|4h}PAc`jQJf z+Kn%o=lnhPVn71+RX+CPjwr#`KD?91-)HO#kDE6kKV49Qn?rOkZnoIqpSE^*@zDpQ zPyIny2jc;AnMJRjPES8XaQ%f)Ob2fut#j__{3!Lt!!Gj3qPqMEPEjRC+MpH>&9H|w z=yY}Gph@?;b4QheRdkSPcls2~4U=C!W4wR*^iOFnaiD2YRPDGZszzKCEi$5`Op67m zF%aNF(}5OA zl|Y>6lA&^;MERW6Xh~)|dV&ki)Lcm>E#oS|H`e2Fwa_t?mnkxW=Qg?09kEHJQ%!}> zd>0)TE7twt=O3W^VopoZ1byY0Ov;Vg#Ki&yJCq9tN;$KhYLRHpI+#+6S_DL1YKn_yWtHN?Kh zfshAw17Bi0DS{4_oY3OYry6=nGPN_j1DV4G?<^NBkvk6)7j|OC?lwl9rcadNE<&~o z$y8W{*(Xix<0mQ34f5)FEY8j1hl~pz?KBylZSzOCxe`Qj)4VC#9GSDRZY0wYZb-7p zzJUVIoxPNTH#K^^Cr9o0h@Hb8`rqI@`Tm5Ze7fKrdGaiWo7Ik}ivha*fQs2|nCt_E zkAx?G2TFodgu^A#RIu#T2ZD**?*rWhKha{@hR^=kSg|$V>3?=M2=Xd+Z=H`(N@PHjTK?WQ(QW=p$nSHWQd+gyHJUk;XJ85B~XTCkX4nsuE2{0 zF||%cLvA0Q@Uo5Rs>23?lRCa>I%1Brh?)UbNN4`~%E1fUl$`62%mDx_U0(T2$6x!c z!x#M-?+mN`r@#5OZV&c2KA%o(3&vT z=~0z~{XHF5>bD9gZfuY~#12s&QcvIgrt4yd^pf+GGLi;$JvCuveoO0V|sP{UwQ5nJPvE82@269J^aa7HVuR`+jC%sYMx)7CFF*V|x zm_r-B)@WCng&pJYjcLO}%OZd(bClZD;pZKm!Hd3Xh=lwA^pySkotOL8|}w@+T6JNA<{Kz|C(*ERxRs;{%05Z6%Nd9>7NN_AB&|4lF|f zwN!ATaDgPzR612gQ^Ay14-6D?zXx_;Bv`Bv5;PusshvyP*xg~a;yrKPOx?{vk`-a~ zco|`uXoZbDs4-uGYh>+KILY_1{Ipw8?ew}`7r1XeB+Ys7ElUO$+3E@H>9FF#u#~*;8+nu2!rm=MR37;+D zLH8N{&Gx$$9IoBexkm!t9SeEEKMlXYAJq>b+}cUubdCx6>X17&@4brr&hYkjopid_ z6OwE>WP)<-khz6}RNWc(LZxfIA({3-SUWP~CDU7; z+F=QywNlWwE+}MCX&re>O6#y&%yijiWL?KwmNIp~rRqL_QIBUVXbzhc%Ub(0 zL9Sm@Z}o&_F2iMGafWKFSq*hsw0D}eZL(`f&B2==vIBm!zpY(3h_@1iyEI;16v$1R zLON}5YZv_?N<%Wm+SZPvMD%tLC8G-MwQCmF2 zZRif|vuI~{x^rhYW{l~*M(r@l>F`%rsD`*jC635C-Oi2gWU)2B3PFqfJ#Ke+Bp+Kl zhGKlaGB;~lW7@SNq#JZq+S%5Qr`)PR!BVw5?{hxBfCJK&oigT9mwqNM zFYE>HaV~G?Y+GjQoXz3YG<+q>1pO5IO#>AcEM_ks4ruyun*u6pM__{b2#UGYhem^= zG3)xU8@$b#YAQ_TR+4q#ne|qZ^W@f{1>>~FD-%7F$?EV%dU0}*;+X{%e z&6!%v!Iy`P&3|ChLHDsq=h#l4BkF5`FQ22Y?S6#WW7qxs<5Yc#N?9(NjWuV2^xm}= z)G}9k*h~_PGM5`02(Qcyk({^hzloY-w6V_AV}qIhK`!t-c5D04yn^iUKp|JPuoLbC5KGXa7HR?wZ}LsIY2w?F&TLo< z9BNF+$Ld|2>!sanEz|^3SP)dUbQo-DXa7aJ*;>HK$B37@T&ZIDqEnt=0ou*hMF($c zfhbGf%KmNgSQ4WWPla8=)x83o-0xlmpoEJRlJc6};BbEXQ|lzZO*5DPlsOr8Uf)B{ zvC~+#nmmqp?*2}>xq&udHFwy5hz>UV^ivY!!NrCCnPk{!vCL0Nh9|%|8Q!6>3^xLg zq`XX1L_ZpdM&X=OEgA_!xozI`&ash5lx0aa#9X;-1si`^V>LoLmJ6LT#}|{y8pk*` zHKtSpcJ_5bLoGY}P>4_?aVPUi3g$o$#R*sRy318iTXcM)r;WoL4`)+sW3s=XIyx#yOnH=|6RoJb+c2V)EeFlmo$I`ePQ`U-~8#Aa= zS_U=lf|TL-2BvDPxNTy!&Gy;+{g7-Xu_m{TOYpXF=Uq|*Ajjz&OMT-B$M&1xx`z#x zVhgXZtea4vxT%o(%Z09d5ed3OTbw`Y~D-Q`K14pP_bWV|t<5IMQLBo`ul4Tt5*f>d=mW6g8 z7i4EK=@;IDu6pkNnBLDdo_TbjGn?V>=*iVj-=fmlZ9&47{!5Z%=XEPddV0v=@?=R~ zwjW7$d1#~#}zcWQXfn;LajRc9HR+lRqY;Ax^&Ax$a;mGV!g;^lK<~5{g z(Mt>^Tw;aOtL8>d(wGL&^b%9F`x}xXcRKReFu!IwY zrehRET|{uk!#cr^j@ahra*5#yduh5JqA5B|(-g&tG{QL0r>tMi{#tH-opTSAn>xt^{8aWpM z8`(S)8Eyn`WQ9oqk2hEW@>z~;*nVb%QMVbs_Nk4Q^pdj?u(4XY`naWRc@=qME40^` zf~XtEFq~n%u-a=$2R7CdOhH$3{WV$Nag2TSZLEGyn1t-8`@SUyD(oU#qx9yw5r}c^ zp;i(6Y<`N|PalyEZjW~9&a=Y08p*U3tD*KfZ(m1m?V!Z2d5#>ej{sR#K>eK^kF=}x zj$8Dv^XcvMj<<0UAWM>SmO^Juy}EV8V?X{9Hfr8SuZ6+v3MtxEw*oq#+U`qC;|5yo zidMIwY=wBBdB&$7LAZktvPst#3FJ3hp&qtJcak>5CiAuu_`%)KRZeYn*+yd0HwQkn zHNslS8MlH!SV@TOjB}ccO{=6FeWiJ_|NZ$(kKQ4FBk0FuchZcy_NgB$guhFl z;UsM+o)3RYeV5D++%S7d&^SK@i5=fg6PnuLAQRn5sCw<-kKHl@>Lbl`?Y1vlv{=IT z317Q5#lKo`5V#!6gRp78+5M$=#}we}5e{Rm8UGqNT{>{?PioXsR;w{~!dZJgO;_*{K> zFRc3CNxKdakuG6Sq}5&Rj?vr?LC{oGo2tr!t|fq0$6wft8P0=pp=yVSoLfW>%eT3N zllCnT(~xzz$VD}#Pq>Wp_Gd;+&P5VBz{2E+fv=&UCYc>z^wI#_L1hWKmK#M2-CDqs zFJ3Tn1K<7eZG5A^>W~uKX0&&5hoRNOi0GE4+Glf|kUw|cym9ZwXb-h^U`gL&-`VtR zxx1HCB{W0nO10o6e}_1FyY#q6&E|7yf3z0J|M3rq1AJV>eEntbkm*zb2 z)gRx)06vm$DmqV7JIEv$BHgVc!BPgGTmvick=p~SOX)DU-$vc8ehG@P;dlCOvJ!`r zOc0aV2~Gm(?qErm3(c%n8=FXxqpH;aElXg3{vNb<#`YSUnLvboiH_k-Oh?-32hu&43&{w-vW?~k9pooECEnWNEp#scRK?5LVw{|m^0 zA%D9wMR$j87_MZXxxG1WfyO32rXhJ{#e!Lgct=zWNb4 zHHU9Z41~18ttEE@O9M0Y%RC6)*i!LVdy4R*yHu@l$OwHmlw-C1C|$f-3(E1ay?SB^ z9;?lh6jU9!VFCEC$Avbh6~NbHMX}l;8=|2{X;?U9!|olp=gd452GQXkM6A=me*4}} z3^=v9!g-&z|7%Iu_yPnLpSG`n!{)2BRb0Cajq`d7Z+O}FL$@q@o%U&K2Wr?|;g->5 z(ZrUjdyBzBuXZyrlt543K+e0MKTxZ!*Y;bi?oQPM5YvK2V2&R?_c^ox)m#4ZWs;jV zLTd+e7;jX>u(>+&9{f;LCo!UzW>RmxURMV!1QexAI9Urd_j6#BXHNdmwzzr z1jsc4aa{@MBzz;V){-sS-v)aux@V?w2|)99uWjiBGg?X~o6%A{@r+Buh18f&bI4eb zLkE#XOX&nQTB^ubI{+=(mQJCfrHaNz(G@n0&qRu8xhNm0DauD`1d$7mUI)zuB`+9V zye&q@=n%dJO&yYOAZW;a#-Xm99|l2 zD>g9p31({?d>U*>aMakSaIk8$p`!Tj5ZAf3I12crvY8>l<6I!vpb%n%L0Tzt5$<{P zISEKZvDpFLy50yzJ1>D_N?C0jSUbnq-S3Ae<51gZsUqiKAntYM0)Y1RnTx=+Nbb4p zr5Vm`P_%8$0FtF_t40vp2t8YQgq{_fr^ln;-`U;VYrOwVrGEeNKP_$GR0Ce8oGLu~ zOGNVnMzxPOXNyX4=#O-p<9>vmZ8<_;V#s*hj`}{+3SBXR$ISBdH2Cm>*Nyb7<{5sZ z{vwSRfr5BL=ElCT#>1mg?m&u2fb~8@&l;4If;03Y;Tttx1pDEV@!Mo8DRO~c2-Fv$ zXI+PNCwX%-t?W|rM_UB%wF2)&T45WXbDe_Y%~Z<6LJ&Nzls5lb0qkap*o5C6sBA-a z*tf=YMKnHao6$A~+qZuIGRV?SB5wR4vas5U@HgB(Qq&gA^*;RLYKGgxf9n$HVsn+Y z2vlnwsAkVmU+&t&Y-5GJY1@&vj4I00!s%X-%3KjjVsDG!wAQ8Eg&Hby$O5p1$CS&- z3$e#`8gGdGGv-7yI%0trL2j+f*b5Fkm$w&Uk8M3HhafcP=6(*Hn`4hhxa9U(;=^0` zHhGa~TLj6q4w9SWNi?d1V2P(99IkaZ+#F9Vry?A#bvWEyL)>|n1vpnkcvDX>S43J- zcRyD|TH&eLylF}i^#O~DRGrT;#C>pRTc`+6%;x(bt;9kAciU$fVkuj7mb_-ilkCCP zeM+Qm9lYjcL^%Vk!_@Z8Czv)^j+eb!ZWoImQc7~`G7ar`#BTdK!rSI)951D-9@--K ztd+dOuwN@e&{{*#uG0)aW4EujUGibj+Xs;`=Y$tf!XI>S^>hs_9SrFR1@r%T=rsypPX{3=B@|@>jVXxVxAP&IW%mM`K|~A>*OTo z6hHLdbmtya8}lRbxxsRAt*b0L#x;vr)N(V#Ih}IN0(M0QWG9JlQ!j87X|Bal3~`}m4E_%=Tg-yxBPMy zl^wRCFWNHbiU6xl0IP5Z1-6Qpf(O12<{d7&x;dD4f=k7lRTGT4@J`UFPcfd6&3>qG z4D52oz>b5Ysa#i-bJht~74D88R`F6CSEsr|sr;R!noSXN-v!dj5|;p5od8=?O$hTv z>XtL2*(TV0<0?=e92|#5h*#$juV`EBm8XP2%a^VQ?&=)e6=jUqxl@es04M^wIsv+} zO%x3PIe!`+HiB~H7%Kv|Isvz)nqYgEjI$|X)`g&1S>l|QdH4x@^~Rq7<=QFULydz+ zbk?;ig04D&uBO-)fv{aq5wk!9w#pK-(;jvd?BG^9nbZkBmG+bGb`}5=qUAIpW`1&rpPHMIEbxoY;ijuxM2SWwha(Q2NaqQF=kFcVo zug-x{QTB==v;(N3ZE2{U5`+CtM8Q+*X~|g;Hn}3as&jZ%gg2M&HCKdrD@yn3ia@Qd z2-NC4s5LWOrBg+w@6O4A^kJTd7VJQi%W=&)!nfZ5Un$o_V9a=oBv@lqwuzAwVndUucl{CF z`O`bpEm(gM@YW0Prk4j20NEEIZM~$4g;nV;pI;D^1LBq_b&3}iX^A`U9SXO^6))Ms z@+m^zdPyFOx5ZG5A&+z)EoQ{zI|Y9mQS$IE$|~yxd|R$xb?tZ-PKxyFPH!&NU!-3L zwYmCP<_=zSl-yI7N47+%`;(4RTGu7o5~VulB}&$vx}$x%xTF`9Z1RFs$}i~U{N;aR z*lwT3l&Sl>B`u`OX8IyrtQTA?Y*$49S#JQ@HTnbpx;^>}4i;xt)faT0f{bA`1ZiJx z=-od1;@$t~6_wuMV;N$Nq)~p<7?+z6d@L*|m)4bOLS1XH7e&}vUxc0YavOe5gGEOw zdv_;(Mq)*Jcc9vG6Anuo6Vug*y@Sxk#5}@_z_Z?gXPG9{A!mrysK><8Q+CT?b8vZG zc7>oNq1h#Od%Gp|a;IRrc(X4;$a;s6jXSbW2ikgvjg5&}Weyb^6SIhlz_7ju4C@^j zHfBtEkyEq~tD?s>i!gQiG$xjs)p*CmB24wwlOtzOBga8pz$X+vf!?i!0i!sx(?kbsH*${4PHE7W6ZK*ZSv6qsZP(*Dy%AOi`w3H5s5PL=A!6k>yHNu-rC7w}583CIlM(oF3!=4>}_Yjt4=_7C9HlEXRyMW>du6O@Yj&h}jW2q%7D? zIs7=)1WQt~%SJLuH#Oh@jau$pKEq+i-A57i)pJFTT%<^|4lfG|$^mE5Qn2Fd>;M4S zt-wULD#6E4swg14qma=qs;Z9wIPIl|eg6-DkBNo(B6YiruxOW6-O*C2_i=YbP(|u?8DTNTsv=mea3%tbXqw~ZA?rOt9&lla?K@kv8o6}!;1uRk}@i&k^xZ3U1HIBP33U3WjQ+p zEkm4BH*3(Pie+k6d(RNFx{psnF#8X&$nIW(cOGslz^PHTYb8tPI6$Tf%{1-wI5b?@ z4jAr3I1Gm(P%}@Zm4S4tLRSgwg(niv)dtUPUEaF`kdO{yf|6&@;ql-Aui%I+N%R7T z(Bu8=paQOS^X#B1x$q0kst%)FRAt)n*YgIi1=&+q_MrR@;_rv^y=aB?i9b)#rx%oP zxVQudsT|TZ*$Q(dM=HaE!XaHji8-(|Mp{`|EpqM6(+%1nnw;%Rrl@FS2Zho(27Z1JLrk6@~O7^sFjE&v0d1$?CBr z5v{9=fVQd#XsaC1merIyl9{L1IG?B2kuXW$lNC5*ZIYg?#(`^-^jyD#)h6kseqCwj z=>t|T{1iEOhp*+i(s({eFI?TIWq0{lzJ875Ir_DO(kAIiYikFh<>^_=AN>TgF@u?r zQ){pN+SHe(x@!lYO;)~7LwYR;+6Sl$b*>ISMJPZ6cJg(XvKZDb2kn4A+daldBt7gv zel~jA+E_d6>}<&qn+Jf#6I<7-sd0Ujsx{{P*K+ZGH2kfLAhWeWX7{s+H4w3zXA^6e zRTk``gUF(#N^E!SE+>n&r4}45r3$ylwvYWDqvPDYW`jEo4Y_MStYiV!!leXfinMBDl!MroC^hy5$BYBlf~ATe zwzY%UqHVFa4v!xPv^lx4EjVy(iBjj_j*_+J^2U}Zoz0r1PLE!9STZU-jlGT&mV<-L z_J{u-71lB4Mbb3`xa@DyJSnAX?JzROfKcjWYQc~lF1A#sQ<;i)N6x{aV6IM9 zu7F=iU^Ad>zrRW=-Aw{1sYx2RecJyCt{9%V2M}<=yd#~D06i<~!z6i2VOZ5qgE(z8 zuN}@691lfk*V>_7(YBz_Yj{Vt*X`lGDA{Z6j!QaN){2fF!CQk24 z;{M#6W<@5d*>TNm8ZPrIL+tdZra{{cYk{H`MeRVSF#{|Ihd|9;eU;vd!X?5w;T_kX zZh!=FkvA^6`3r5SPJ^aomw#Pn0XQ9b`z*l0P0?o6C}X8I4tk1~Vl$0~j*UAX8EvaX z;Tu7v;vBNVKYI!3G5zWE3Z_B{!rC}UD%uO4ZOzrpwo5cEw_c=WN!6OE*=1-2`&9%; zZ3K`aept?OnHSNpG#uD;#1dm~&}Q4b@i}zY4gk0vpZI zu-(nkus0?Z9N(KV!XzRdk1JHQQ*mw2E{G5N>Ga7)X4wMjRNl z)H>S^RxtA;!2v*7J_Y*uuFW>l7u&tW&tvynbZWRwpxX%IL!DybOCl9Ay$|)n$It!~ z!_`vzQjR_@8I(P|^Wk04U|wd+?|zL{HKFhu0d-uZ1gLN1SfHb$0|FZd=mfn%(LumX z5zw=-=NIq8>;_QI&0%)qAe~?r9lR4QrMm3)SSuZO|MLl6W1y2L8;A2mD_6^lmSX!0 zM@YefjQMLv{*`>KLxHAgG>%Qu6ahXP2l%9#Rn$cY&&FjnrOK)M?wntuaSW)|X311d ziHuw1zy*hdbE&)L@MGX<2!?i}388tLA}D852lVBDo5ZSi+(9;pjC$k%nrWIjo8o#D zg-P`|mQ)wZ0u;2RwWB(NywhdF-NwNyvrTK@nk5U!-(e_;t*K$)FcfZ=4$^HLfHJO= z*5n%ppp1!m96H>jLO8wLr(?joMZ%LkEKdv8jhvxlsb9M%tgzX2v6{3;O_nQHBb=z5IZ;y#cGiO^ zi~KkcCE5hf{KFBw2vFG+0V1>p&h{EF#fH1kks=ivv~&9)lzg6fmIU@$Ad4x~op1||VZnJE4?2d6 zPPlC)w`aM2)*}Kq+#`}L9)5}S44}p%!a}-<6;B@)sZ+9i7P)bVPlg+Z^aN!uz|V*q zN)z8YuqRr-+HS57yapO^!`{qg`Q+-&>XmZ7w}J_cxS$NLt;2x~{;PJc;@jcB|7^o2 zxjI3E7VC6?&_vIeR|gGEP}A|Xt(-_R7OV63;N-xz;rFx)y_K_Q7WXZjRQ+3^vN=Oa zQQa0L>1+iy3j0}yA_d2wUEFjH=t#r4-IqEjDcG#Tl%l2B(}o4(u%>8RYMgd)q8(5? z0_d_i3(3Z_Ny(^lZ8zd^Q;t8H1?Igf4& zY>bj%wl0Hbxfd>RCn%^QTx#o5d7^Ep>Z7G}089u$2c*3ImzA)pexh<3Ck~*>5c5X# zo!K}$;+oaKCu-I{Iz(!Mo-1dI&Iv^Dr!285)Xp{8vh=k332ySV|MA+?U4uTsv+E<9 zaF&y-9;Ncy!Am)2YC)K$n4xsETC#WyF~CCFUX`bvi zd1kePmlm~C`<$K2tOax26L`0I?h0$j^z2Vp3&Lbx3n2nw;&gZ&^Z*9za^7P-_}IGW z3|Z|!rkKa59oiHv1%thx5!3*dZk`d;4q%El%hnl#CzxJfV2EK5GqfvxbQqj z#%{N1zMq;G>iCRFWMM?pdMwD#Jf-TL6nht2zl1#K*Guz{c zlKUmtQiKOp-(12rfdI9@O9+n^_kr|}zmoryydmtzPw1P7)i8J4PyfeW>a*Ksb_m@( z4G?VU`Y`WdcwDlp1yZ^aq?da^pq@17=>$az5BefRskVfoYwX4evD;&}gN~wIWQ*IZ zeuqfce(>GTl9~iHipxO#XOI~|lfrEYvNY8N2PQ?CVPl-ER$XYcTD8PzDUOM8$xJF2 zfhHxO)Vb~d=a)V}rGmWrLOS8_Y1Vtg`n&EF;G53q9M78tFuAEon%^Kzi)Ft0ntrhDN}iDJBUO zuLa|w3VGxRwDZEhw@?1$6L3xoCV_J%3D|-r3D{VO4eq<-3}ySp!pBpu#|Af8*~0d) zwe>!Q6v1HTnr1Kevjg0i6c*ovko%cnNnpdJ;ng2u%FYV zLE1Q|CE8i`eA&*j@nwm1dYI`W8{%Zm55J<*8I6Zm7Ih?^LJl-=ar%$@PS4oU~b$z*G9on{Zgi-U40nxQ(DGGd$C|p~hn>VWuHFw(n#2Bm)1pt8+oE~rU_4c47jE7HgsAUQn&ORm1?&Mi@DTq9t~ z0vVfI8do;NXgS+BfMjyeQeIgjXRWk#3doI1$GIQWcjMb;70J~L7BaYCbQ`9?WX?&3 z;%Xy^2-F%Z<+K(nWk|_=G;V-}+#HP?0YrZE5iUuuFhQ|B{$u;+B(S2an?{fkS9!|O zYKl^B8o@+d<;*$j@PSRaY*J_da*OF~KKpvykX${{9-Z83^*1C;g9HTlpiptf?%arT` z(bfJD$T9?+cXl1Q~TQbB9gJPiCdESG?fE~1c z!cU5utsI}4kuYmqK$i$TYjA8|=24PNB%@`favn}{T}`%f(&K}do_P!Ez^dZ3e%S=` z{Dbd2e&^E)??<{6mNRIo3P5*PJ;EoOeWdK|RuC8b%?>r&jp248V0Zou-_kxr>);l< z2=MZz6|~aB4lQHKa;PaUyA{L*XsCPaP zUGr92cgxLu39BuYQk#sHg15bo=`A3an`3&rR(Be0R$Xhbl;AO#r9zXJ`+N{IPt8+5 zO9@Y{Kr&-WluO$`txI89s+RrgxLRgF?QyA2)!Py!N5*enftg^^dBj59(iiLi0U^h2 z(d9R75j@jM^2%5&DL=NAi>}WCW-gGeCNASdFh!2Zlg2S#DX6S>jt%DcLIH z-m!Sq7&E<78(bz9h-RvH1o5_l%#0aUAqzN@B~}Bp+hi*E+|%~i7vX~OKRO@Q3QCjZ znbl`e;_xvpQ#m0}^sp|TQ8=t7BR7hM&;0E-2)6d9+u?-NU4oEXm%K9W7o9n3-KnQB zF$+P!nRx~ToVgRF3YHlVh~~ZjyaalK2`s=`U`?<_D+ive-xf;oJb4G1+G(w`Ma={= zwgS|^xz*3#MdR-Leas)|vhG%}8dL}dcE^9c1{N^$vJ6Cy!$qf^T8G{QgOngSOYvT! zx8&D_j}=0mbiXj08(YKb<~Lb09%?;!UVIW}0AciYCVV zq}~n8(XDg>O}8^wsIG7u4aegEGyli zIN3frEGJK|+MHkpJ>4X2x{R7-vA9GULp<%IqUFHaa}BHQM{vIB_Q}?#(2TWDL&cp~ z%J)j=a9HgdfB^k@Qj6d zTTmZ&pRaMjBthPt!)9UuwsRm&w3I_@LQ8SHem#U`ylj1YSjJnu1(!$QRa`3d8K$;& zKTHQ-Y}XqdR(~8U7>||`C5$lGE$2IfrPSu4ZMmozYs-N+!L|g)ai{##K3^vY&RD#k zCh-b@Go~a(2xv2=WE)nts5YGZ zasyVHjdUKH*#l5NpFaR0h%FC_61i~u%Z-(@3NaMscxL6jZ$WSkP`X-SvO{y5P9Pa2 zqYJn@$(nfqRWzvQfHm)`{t>E9pmHZChd^UMHGKWqZk{|GKF0r2>J?4|OW)5ULD3F$ zCtwU(wX01HGFTZRZ&!!Y@gtn%l$wKXSF&cp9!=nxcq!=dexcj}iMe^9j57#DU1V?h z`JEJxw&T-R|NZ;qf&`kGClgQx8o>CjHqeQkUbky!cl&>&It7|>b^eXWSapt!ICO|i zP{R(FiI!rUb1X6EY;y}_MT!$R##PQ@QE$1d5lO6ZbyB|sl35^Q#f9xa(ra=Q>e?9&#Rw54~}Rnw{sB7#JF{Agmvex zEY35`9@1{hw&ynX2OL|f;L%n#{h+y;U@T6`;F!jc16b?=?DKYm+H5I=FlpKObcm@_ zjOF2HAn(5X`<;d;m#h6QXwU;|!#!r<$A|5!@WqDvD%o3M`z21Q^6Efj$a`0R1 zreH72l%2#4T3MvH>cwfGjWl>)~Ute#8u6kElc| z6^OEr6!6Ek#d_(12IdIz?|;$`nrVS=R``VuV#7keL@ zdtfcM$7Tn(M4M%8LgD-Uhc*Rz2gY(phv#~CaLF!=$1lcbp^NxZ_NzVb9me9cM>5t`kGBPC9ZZi?5a#5QxPM zX-TW=CG};Ql4mMoR=IW6krfzsBHaCsS9BeO^4$t;3-({&rRniirD#=lD z=#x8FkicWvx`wyf;RegZHMdN=slC7{@4pHnc!*Q~et@xQzC4z+Ai79TU?rTuK$4g z6Rg|InI#xr^%y6RPUo+{0VGIwQ}%+ZSS_pneH{gCRSZecIjCL`m0zxqs9dc-c=!-i zlA#EUg04bWmMLvGy`5xe&u>G->A|U9z!bD=x&?>kE$seEOB}J4`H?0UK7$41^Wo;2 z)7(3dWxj;fmP)DRMN7d7uhA5!%I(oq&M9G1w(p*Q?oNoO_1kF-J6t8o9b2EP{4=VY z{o_2DU@DF*ZA$b4r8qL`ksv9KjB8`HEReA`bY$Ep+ms{YMtPy;$hbCkgN}@Ai)lf! zPF!t6qd-P@8^@7-cGW4!cqI+%#w7c41(R9lD;KM=elm$Q6AHRfegg?A&VIrQSTr<$KzOtOK*0P<{)RQ}f zS@8WgqDs2`3M{bZ(6=d;`@#EzUR5|T9#Q{bG@w^K+PR%>55U!?1$MsnaxMF?Z47!< zrR5CoZ2E9{Y1l#wLQD#Vpl4;ig32)ou<(7!FW&qZ#KQy0V3iPVaNoG4#~f>jIz+#N{|87PPqNer21Mc@fcrS>rD;|`W# zF8J7el>{isAd@Y!gns~d=u|(4+5P@Z!A@X^IU1JoGD|G(H{j(ilVn^WV_7>E4HEv1 zZ3Y&)6UeYo>{kLh4XgU zg;CfS48o0R8#ZZ#m7KEy+pI8jAHACYx?dZj6zgxPg#B$OWeCMJ zumOX(b#2(M7>EF_HqWRw%i4>VVtqo=7;#-+EW4_&X?9^%G?RCk z97`OiL3v74JDi~byR5P~!8uMM3PceK@q$-~P(U|qfcBLD7Vt;)AD;lAxN8wu(_J+n zvYNnWU4=l!1iS~hT}S!N2nN|(yk^7umyf&eiz)@G|J{1wirGRXL$O` zff=ztR5?^5T1sas(Na+JeXOkjVcZ;RD~D%9n`Ko(!uAaI3ToW1{`GR2{8S#ysD5Q+ zND*Hho=dC7%3&D$IWkt=YZnDy8to6i`E?4Mm4FtGw-1sv30ARC8>{69-@WUm0Wtky zom@{P*n}f{hZCtzZU8ONqO)?j z7PHl|O5XU%okKJSXSa@=F>F$fQD3+U2d6tM{zl)u;BKqzeHp&^hp62{o(gX^e+G_97`PR{~(T@n^!OYE^d@94_0T zmjHq4!IA+_X_K?B1kAXLDb?{sh{RUGptaLXv?Q%0(PB!5X-5>5vo=u|_}L@S*-G0k zU9ymIxh#o{%_m(vU|{$8?`&(m!8eYeF83lB zUIY@c)|bAn>(0tyBhgaO@il@10J%Ma`rAk#uFDhzc5~Xiuu4n!O5l(?!Ol=REW}j6 zlL?Zs*S!9sA8^70V=+N><~~cyGWZaEnH9}atBbn0fLz9T27yQ zfquYZkiCcLll97iGi_p4f>&TMXuD+l%aRK^H=E?uA)^*>@s|Xf?gUV*-+qm1_t%^p z2!LmKXn+4}{JnV-x$e7k1m)WzYTeGUyDRO-EIbjjiG4xW=)Qs>W!yx9Ds(!D~l{S=g~ZyGjap2&8;D zJ7WcCO(D<)NFZCwk2*DLD9A3U;>ah*P$m_a5_-TmySF=)*?>JAe~fQ68afgRP;&eP zO{g-1p$w1c@a90Y6x`x{09*sJxH$l>1;O|p6l0MOgJf3&MzziVDsB0%1;iK=Go_0~ zYs4a(BA@n;kG~q6&04UFafJz{Tsz3Z64q=+etCX)_u;GWQ=RM)m+NFjq0hEgb=-gT zq*>E1sY2Gw|2@WEZJ5-!Q>S00HR)Qw2@q^Q`v&9d^aFf5r1-jau*88SlcMI@;SgAj zV;99HeKv31pVFjtEqN6HO$@y;|GV05Kcl_MwcN7`P0UMB(kb3Br*=e@pkE!H9WFNL z*MdHL4z4hC_8ks^;R1rk34UKo7R6X0Ovwsyl1^*RwSydNM!!d=Es4)E5X=o9_J2tV zl(Y%!j`>Q9Y3JuYNh|WTU=QfU=}V9uY~UI_Euz-~KcGJNrmDfP>1|VP-==7~c1aR; z|I+1TSA|)U`QoZ#Vl|q}@vqGqRUYKhxh}Ati?ggOTX+ju2M$P zTA&DY95nl>c3C@Mef93cM}~)@_crDTBVNmq5d8W0y$=yZ&gi`%%qf4jUpqX)R(`f0 zY9aM-{tzFmW*Y4ROF)3f&G+wExGbenigst$0#29!5Tz{o*qrtBoDjOT9tpVwMr02C?F*dSv?XG?Z4fM|?kxP8r{5o6v6x3|!?imM zVi~d)25jTGJNyMM_ecgSI0cA8YrVAxEP|zU$`Ne~z|%EABFo}6EUUi_UjxhAZy(F` zw}<6H%*}Vc{|PSZ?$>~Tz76BUcpR87$Uj>OPh1a4XxG1G)U6fL^c9>jH8V;X}mMZca4!?`GRWvpnv=?owXlyvtFWOd--*Av% zuq_1!qoY^w!myU#!d1~sp$L0iOD$R|j0SXj0WqYaK3fovl^V!hAMQw-Y3wLbB_us8Vq%m2LGcvk}#OiyX! zMjc)@23QdsH_VCybc13QSU27lCIt8MkPQ&ro97`L2joVXWt{@^1zdgHzDOU^y~F*+ z!MgqWd$t98`JNtq0~u>DE&x_37-+B+ZChlO-R58)=xFN3VY*|sy966=Tn1W(Sj{#= z%(J*~PhB2bP*akP7H>=S8*Phyb-XRrdq#As?jU0h6kKki2n*b}Y_%w3MI*ssf#dG5 z^%X&Y8wUZ7n_x?kQ+?zFhEhVDQ@1d$>K-Z_J}_|+ytk3`wkhVN2{rSemgUr6wh5h* zEju*#>eifVm9u|S46uS6RyT-x_#gtwX;W&>X)`?=io4-7w{$EAI_AG|I2_C2kaDgz znkVN%mi3P(3q^R_#@$5}93e$`+r};^x(0usXtxJ{cLFfVtg3M?XPGv{Hx5Ay72%09 zrWe?M&16PzimPH7So)c7e1=GaR^$7JvHU19Bv;BK8J5cvn)EF z$rmY7g#Uqo(#v4v+n4rvQDq?59_BI#WW+;!z6=9fp=6E(!Hp zpBlN$j}CwgKSg@?iIU6w6sfxiV%xg>$>qK~h%Goa9M(2&f(|rp<+LY;&7z>>(yA#5i z8B}NyQnqzSS+p%U=j-eMK-lfG13d~F%)Z$=WGu?8Qz^vnvtjK2bP3DW!DZ2goYh7e z(x^L^N7JWlovp*r=8AB4Jdze*%%N(bR-6UTv?6_BJBC_jib!ABLx<;I?%MBAL(XAG zc+&w895zMyYg>oDMS3L3Yn#hIOw!W9lC8tqLUppzC+k!d2W1jWNlUk|_uC>&ZR;?# zIrjF$vubEawH%UC%*=V5J3wu&6_$Vl)aHsvD?H1dQlG=l=IRtSRO53+gbg+7xgzX3 z+zHvaBEs117A^T{lk#EBUJ2;@Q|%D3xdC=a1FQ}rVp4?l81;&EQPx>q1d7!Lirr5c zYUGmLJY}dI-Zdx4yWd}L_oyA@6)nYDomybfWW9EH*LccEll9u2t_||zz^+Ua?2^M{ z!GT>-#?)}5rF2FXEv4ogEv4Q%S}HdHSf`RcHZ@v=SfS2kRTjZvwM!h!G~vAUXyMI6 zUDCwDL#qh(YDc8OzSh7Sp+sEhK&Y6oux73yy?3mvhp?LM>X>;QPy?Xv?1X9bxp!nJCLYuR1j zt4pHf^#fhSQx}~Kt$jAwwdSEMX+neWKr?(0VvW56&G12pi$bn|UEwHEgnHEu^%{CH zeBkaBfn9acsn6QwhXn^@5iV92;bOH*Ad7OSLt>Eg@IeHw4m;Wedv5F}jRrqmLR>pI zY)s7jI3O&@kHf;ErHZEEMX6@BOEt>~K|MgUJ5KMo&8BM*R_$)_%LjVVr*=7LV}1xv zsU7|`CT4Xz*lSG8H4EUC8%PfP8rLjrsB*`|JnCFp*&wmu175Kk7OW2Ws`q*|`swDQ#^GH{l)4g*$)|CN zUrY6?jYjKNT`$$I`dy+_ojOX=PE!POH4fx*^^0~iv<7A35H43g^IrsSH4ff#^)vr2 zg=>jY^%(7`>NHv^tY4SHwZy+pot7w7r*?JNVTU^cJ6QhZeLg!so_2W}2Ui9A=<>N7 zKRgB;Xyqtbn+~XQl$2`GxKoY!KB^vF&B86~?!EuK1aFCR_m}5+;XP?K(KtZL)hXPv z?yzvL+TY>2wPW=vDopQ0G>SU??X#ivL%JolacGmh0JT33-kl(UMxdssXK#uyr^aDU z!7*gu(|!1EfGyn|zMCS9sS%7RE*Mr~yp$TF8zemV9ptn`SrjM*cnb6HK&YT%9U8UN z7d6ai{cNQ1zUZ`fiK`-AyTmJ3KRX$RPAyRu>DnPuu6`bM4vt!))Bw6fS)@~U8ZqnA zCD{s2aCVB@IQ+>`iZsI3>TssuxOITj0w+ZvQ&R*oH4bFTO5VXsOTAD#U7`%zrn@j~ zsm?`ha)1`lXg)v-T!f6i{p!m%E_V=MhOkek${Pm|@%oxhDmHTXa0vF-sm3v705nA? zP~%Xb;23qOQPEP+-!+s2?YTXaJJcuGtb>1|rJPg6rAk%v0T#&iQq2mAr5l7BhXdL3 zWDCSaYfJ|SMSJ1g>@s6&iP0w1Dx;-b^jv04jdWSOMJQ3@@}M$Jlw{5{9!DB=ncg>O ziVhPt?l57d7f#(Het3jCuqadWEy{H;(YR(3OY4xL*kEgYa@0~!TL%_p_$jgF)@MVF z_}QhGE?R#wa6~Nf$>~&xo#igqe1lF~f4SDEX6~Rvik1cLz#_|=uU1%quevAUlJP%6 z+*^kcjccY6-a43QTr;ifTbKD{ckWkvybofx`P-W;b_X9FBW(RmStEfQNaJ$S59|MG z^CmiWtX{#lgvqoH7Yf=!(b2wEZpVr)rdmUd?gM@cEa>Kd-#S<**hL2sMN8@0C0fb_ zSm?hx{~M<_u>onPZ|$WUdR4vkc}-b*XQNqqXQo+t7g}xKboT4I;nX^S>GFu*Qm;MC zl;f%hU}`ioP(S=y809DFTPqE15ECmf#Qkb-I9`+-ENw+6vvSe57Y~I|m%i z73ovXMd#q7pd1{IG}n;uRuULH!IYx0x+{X1ItMX@I#m)RyP~Y5&SfP<*b^M;iO0Xj z$idj_@H*rUU$m&`im<27r78snPtnP`&LL2t?z7tt4<2`{ZmuCVBF%2X-Q9Upbx_n? z5pKnyQK2F{fm$2@4uqPkoGsd&uM2A5;ZUK5I7-9o&4^cIrK%4V;piP~Ma{p0TekOk z?XlKV{W_d8ZNzsDeu}Wh8{gPbh( zOcgt%WP#2d#vAibR{?b%Y>Gum4><)(sjh=V*Knxoqyre!?UN3VIK`M1+$rqFT=rA2 zi|#O9v{X@S=d7p)HSPws6oq~F*5~-Ne*VFC9=~Icg?1i^3JR@A!var*MO}nbb&OLj zbf1AKN7j>+I6cadu`oFw%8^NJq)TG0fyD7q;j1B|MP6Zs38`=Xl`C z8Aw_pqeYS<;~sIM(-N8LYqkCiAskNW)O-)Y4%(w#iB15cU%*)iHSM~04l{}j0|AVD z-6Kv&U(fsl-t+Dr-Vd=tq@?-IpLr90ttminoRN&NUh%N9p!x zT$HQS39=MtmON$LR($qSEc6u}d+P+1iuS7)kP7y(`k{sKH?jV~9Qa^Y4W>zFFHlvy z37yx*{C!^pVf952R_`FJOAf{QMaW=l>p);@{bATw@7?2qV~N3UT{mERcSdeZEaENk z$GwBJmYZ-$R)&~-Gsb*|ShYMRX0bTXYD~;xaadJw{P@hLkm>aft{OA8BjpyMRJ}u~ z#!X1yDcELJ;9#k7&8z~4Mjg5@5hklAzQ&#|1<76zC|Co;c$hT}2SR0tbuS=8tkb1& z*H|wOY0A{hv3F{aOU-Jb*FX=9$*>y@QjESoBwREjhmW?zi}c)jD01(+igL z@$(xA4g65}g+33@W4nXuJlRXD<%`&6PoF!9}6*3Iq9raEvRVYaa zMNn2>1ZDM-B^4e6?qJ?*M>HB|wOIsk_3n=Hd@BoTRed=)OSc=7-J(jPSHpA+3`Sv;I&&7vt5F!4YAr7Tw#v~l@Zrpx z)vUS`1`yV+_6thEpfr7MKpu?jMrFC&schFA2IUxLQ9&p*gmQSZzSE{?VuX5YVF)Ve0+BS&*3_yG$K}2%m-O1Ra?;H9MTjm1&v+; zG};BObYp>nBw{Gp-*l?)oB*HKD4E zHc_No0iec=QO5;+TBcO14Dw%qK|xl6L5;am!AdeymY5YiCT7XpqFgyV_nyVJhmSGd zkX2;qdKIjCm~~nASgFfQu#qlO7T`?aMADR&>(_`FRKI{t%k?kYs;XSjrR8c_i(%jB zQj=_Xb^^G%GK96VIW;iZAqUgM$O?_O!phAK8o`+I)M~BS9yoX@PtOiH&kZYgl6tuM z57KmSQl1yq@pv@o(2<;^Nmhn;af}sJ>?AA0!rkaur5Ff%!1IUhC5)QJR`2-F_5K_X zD|!T&miONVP$7GhPWlh1EE>t_GFSJeu>#~fN zDrBq43D)5);~2q$l{_NVtgy;ik~IAv~R?9-y2p>ohl%n~aHvqVe5;_gFYg>!2+ zheTvilOBK)Trv~^UYw35;pzRqPaZjH8S|rEmXx0{ zF)=S$Kg*P?-(^ZR(=nxEby=0nYLOm`V3@B9(Jg z99K^A6wqZ%iMFVZ0=kTex!SNo-MvMY>|%GK_2-8V@yS99@RZ?oRamm1E@LJf$845a z;(#^wbDNUMUY;O5cY=F3+N`uIPD=j*Pa^+7G~v_p`Pz;wJG zQ#N9DoMCrZgs4<5ZzmXY3|YAbX=LWy9;6+35^a_>7#2*yF)t`VAe9&X>oQt!>jHkl z!1nkWQcsPT)jKABl;#`)rYuvk^~F1@W*8K#;3{LTw6hLYna)W;k+k1Z38s>*zevlH zi8F43R8VjY5mYQl%ea0gBDUZ$F*BoDu2%m*F8vXndsUn3z8+FB23WJ>I+XzdSjNP} zfM6_RN^{9+^a`{BH#eEJr>b|kHgiRWj3o3_GH%8!G4mWLZC7wsdXikTTxVE!a=FmB zPNxx8-y*Am!yux#%+wu43V~ymE9FVeGNqbdL}7x|e1#!{9h_73R|vo`T!i)EwRUJ% z02&(WcB@Ud#f2}lQ(g&7V*?AUOS0VXeyi2YnnV0GCk;zVX}dzT`rBU6WUA$xAxZ+!RYN;=+5l2`Xj{IUEfs%Mka7iSlUI<&)Pvh zLCFgM1P&Lw<1%fQ1?8ci<(i#Zmx-OV&TH1?+l(0|YPy>A9=k`aZs=1?F1wY?O}Rg|$1#HP!=# z)wP3k?2@EIjc@zv1Dt6cE`Eo335;V0W9Haor}{dgs9nj@^{+gzN(V2!7T^YrLPV$f z5or2{4}WZP1tMjXd`x;^QVoQC|HjkMxw#8F3N~E!hVBSr1AWGPvp_fTQqJIlZNc*H z!}A(w&CTI?EvYhbW?6sG92OrfW<=HLyOzwGtHzY}&vIfUv5!ADGP|pNoq+-dP$#vNs z&dSuRS`K!(;D#TVdlB@r7U(D2cU5<^J4Jf;xiyPM>Jn=fj8xE{MRRu0kG(-`NT#98 zw#jKO*Vc=KIIjiz0VyVOw$wUr-bI=AU*=hoIq=0ka2FY3ozYH=I_U0tK^F#t!+o4U zXm5BeSkL4Da5bwoUCrzdC5I;4LG{TIX$$T%RX+jiYk_{C2<#s8aOEePw?K;rXw$Iq z;f)l?&;dZEcssgw#7|tn3aQv=pm^`l9~&&^_IqEUfd=}gP4TsWK41j9sXH)m-25Hb zt7Q)k*QXg98d~?@){j9u5q_k3lmI|s&tGusw6Uk4UeG7l%W2oh4-Dw`$nVggV6z3M ztI$Pv@AL`d#!lH`O9crbKz{b8Pm);+J`|R{1Bx5U`> zeT=`^r6qRIwm(0OZ|OwF#w7wx@W8#xnj{lv)dx<}j?%_qL=&9Ae3+hhb$F{qp`KaH6LcvmsI?T6YJfyau-22eI z!NIGWL-$6}poQ*fv+7Nw%&J{ROR0fIOR18hrPx?)G-G7g+5hb?Ffj1pu>SKfx!5>J zDMMVOUVkKOnIE>@Ec3dC$uRHKz08Kw@-neg?lQ5{=`wLvmGILPVH~t{sJ?;&v-|a` z!#ki%DK#4hElr5d)yxjqqM_7Ghs`!}1Zz@*u4YxDt66x?YA_wA+qj$|SFJF7i~2lx zG*+L+d77YV@xvp;r4B8K#bHL1oN#P(Xpy}UdfBY$p866B zM?@uzVBs0@ zCtH@Uv6Mfbeh=bwL}259p-IEplSv9ZbQOi2f3RcY9l|PYmTx>lgsG+-|Fb=Hn|2yd zV0-eE?zV9VQ7}e0s3=-WO*L8yW_u0qz=m!Q@9tWjXtU1I#%3^*Cxi`~-T5iV9J05w z+=t=aAk2^iELx^y8^xL+RR{HM!B=~|{l=-lbfKt$;sTq2eu+A#a_hV)!{#ABF&(;g8RUL5S!13r@#Jh6tPg9HrTfg_lY^rtxpdMIjgNt z6$+Mu7rhVBTciZt9HO@Z`#@N+W(EI=m*NO%b`NP|+?xlp*>t!2GF<_*bs0eu#Gefg zY3s0{3^9AqEE^mNv&1ElaO)7Es0!FL!zys-(1f5!1ukW1f|yj`Qid|b92j#_bs*71 z&CGLFxy*A`xlF9eonV8Bd3KZSAgdCy)`M*+^=G@v5epvL4cR)-XPF0g0PJ8(7lfT% z|I{xx>AtV6LwP3Z1P@iRHJ3{y)q-u(h07nBteF7$t$Q|Xl3qAb^*K)H>a(q!{~Aen zxbzrd#HA5U@*q4f>W*u65RV4txtY?xLS`TmeI2iH>`WDB_ z4#$sPu;G;O>a74hKekoObD%@)JG7X`(3*Mc@`kv=;o?#V%_jQW1U6Y{SQgn4%V3fM-oD}m1AF%HIpZFfKHTo^`FsFY>eTUC_qoV z6k`K9A$Y834EB+D9mKP&I640nXI`UZP`oZbXo4|~6b}B$)2q^t?ds2nfxFX}s5YJc z*$UE=le~aEkk6vzU1m^FECT$%InA)`bArb9sM7Oz&zN)2C%kg&ke;lxU1kuo&0))> z0?p&jTbKSb!2r1h%laWtI6;he5!Nl$A1!`w zA3g$II_ACgsXtT7qtjtqm-I8I48d~{Q!l6iT0Xq=YhW&)QN z!4odN6)?x<03d0;ejl}>XGavE%UQNQ(dP_t;>#d$tJ_khZU2C>)VBiZ;Ln&G95z4s z)wB44lE-w7&elOXLGu%YC+qWP;^OudG3Ksq#lqs;1*)uuGn8Sm*_o{6!EQ2U28 z(-vF@e;X73oru+WM)^@QTx_CNfG3C*)PnX*_9At;7QiP+jJ5`QrPI|BXL9j()L3?KUCD_g!jdPphMrCiLc3{qO z_Z^rsK}>>mi9Hj`2ezQvV?J`ZoUwlz{&7EC#8G<;Co2%PySt%v9c2{t zYKCi;84#?7wFa&eqFD<{qhuYEv1KigWo-&lN?T;L9_mU~WnBlK3Ei*Vv97`XCMe0W z#v;NUan~!dYdzDo*g9+H-OE3)m!_b#!(k>z9o_a>J1E9Nq#f&Ao&O(PKgNok9-uH= zJ4_};2lRgk7isQSJ4^N=V(8x734Q(0)aTsveY7F=p~O;5BG6nYMkNHSrNOF?N=YnE7GL%QEkjIc9@v=9reP zdF&<^cqS8smz-T~nZ-W3Je+YK*^4VGgT2t>5vk%wTcDgF6*y?h@2DLtlc`$OIVNUVyAxV==--(H zB$AGc)eeU_)SrCyi@SNrC5)z3bL|kALu*MimIkSv8AcJMD!5Y}h?ZH}-X%IVt&9WLHZ#zBIZ=icivOCay zd$j;DW6F1vpAiUVnUWnT4t*WBUz!GY&;5&PSv46srr30N27wz#vbl<6_h z2wpPLTqDrPQge;qB9m3IMa=QTL20N2Mw47`BPlO)_3-%r>Tc-61`Yo+*PE7cjU=^D ziee);ySKA7Ob-V++vp{D4*d`~oT~4`NjX)hUO$*fVyDJgu zNlW2IuCd8B%32snh8DPufE-iR(mrq_Ajj21+<85^w7c==mUh_Iy=uj71nF#hIc@qi z3~ylGZbvWAh=qsKYo-NSk2Vh8IN`0}{Udnm+GdVv9oo1fOTO{D+M%=r`Zf%4*y14+ z02+Zi;-%P^#Y;h{_c5+PF3Qa@u5qwOw2N$Iac0@YVImptMA7y8`)a^t766+>xS-x-90|HnJU@G8ln&c^iQ;{^PmXQ||=Fm{6S^ zb)sykMxcyeqgN};-B#WAfiF`+bK@|KU?eKaF=;%i5ew{wZCryb(2LuHtp_rK&8i^= z1tXw_U0`SWHY0;?HrqU}f0JCJfEts;9}_XpRID6>s)82qPYJDh6F^?O*; zu_ccx2*>YVzEYA`5=>*7f)`;~##nLJ<|Y`E{E=Lxl0`Dfqreu4BAtG8 zT~Gs(BC=E;JH{nC*2X6jlH({M=^;rhq<(=Y5(NoPvOwM*NMKQQvJXl6fTi6H#J7Hr zEgs5=Y6Oy4AY0ObIa6ww)v!>b&Me4S-U0$khnO3e3Sa?GIAVh0Vk>8NCWe@$73~uM-ntV! z#}10W@P0^hrB;v(hyZapiNIKQis4VGd(#!JD`-3P`N*v8F)u@$f* z+^oPK*djS^9{dKv1XR$UUmnb&l>`q*_A4S|L&K!)a^A}(u#g-;1q98sCDsb+;p$A; z?5&_43uNr?vQ4v!p86}IoZxQk+w@)fht)3 zY0cTX^bFhlI-cLeHw367#Ak~b3X82v%-GcrKvN@w^l}Ru5AM*h63c zz#PL5F=USKBn}0k0M$H)f=#$CCp55i*n|j>$#@De*9+DK)1=M)6}JK@d;xA&=9X<7 ztqcl3P=;IOCH2RV=VOrGM+4q2M$dH1S(jl zkOcqC2M}2Yz|3CMJ5~s;v}$bKp_Ak4@df~y<%?LJ2!}F(3vA?n@-jqg^FR<^@;1_% zwiUSG;iIRY{wK6*FV%8f62xF^S;lcPE&&go-Mosw?yx0yNzzK2(5)mlpicC8w}W5b z?SZS>5{E9aY$d+|b=jQYh)WOb>In;Hmh!_9On`(b5zuyKE5}VnI-s|kS~+fl_`QOQ zv9N2C17qVdW1uK4kOCB?I-?sPT7ec&nLT{FH|6d(h}mvYn~oYU zygC%L0VELJ{MYq%#8$wEr4shHREqsuycBHj8uX9`aeL4c7y?lNGr@;%>|T8;jY)rT zh&d$#xovT78HA_qc_QXm1L=>6Q_$%IgP0`##6N~D5!?xSY`a=q# zoq!Hw%7kTf0yHG;q|~2IvM6R*W39aUOY0}*u$O~dRa#MZk~-m~_NOE@K@=9MV?ujR5dXCQ3suN!nAB|w;GJYpn5CmK^B>lujXB>_!lgUG5`K&ExW&BIPOe$8 zzDdY?CvXB(y#Ct;GxyW#wX~4!Byr;XU!hUkRofk2O1rV0q)a50r7hS_00f8ye}WKfU1P~WwsCj1@W-6C3sz-N)~O3mdVUWC0F$uyJKO$i{%pJSwvq>m&(I zpocWj&`QF~J9j|D(r@=`%#M!rXQ&P*)+yLwf(mHJ=Mu!>vgzJ zv+?s9ON-qp&DJ}?6)z0qLgR#_*LJ^35;M3vKB zuFi)DEgQ44NYhgQcG(Y?%hQe)D^I_|w=S(#JBKRRENpjiB9GzEs_IcdkIIP3&f_?@As>sLTx%Bj-gy%SVnfsBm?t&Te`_;BZv8*CrLP}lPovBa=A zvp33%>Kxi&Ae`MxdO2&dhrwHl9>-b19555Q6abB_lx)gksjqaya_6!h?9aRUP4EFx zoBdxv4Vt7nG-B7k`dt{6K^whwB`t0{0VHNPq5aHGkcqJdO*Bc}4xg|Xdp<*#1{s_4 zxLmSKu}<#LcnaOBvCuu7z?QxAK&d&M!z}vlT}+Dm6QZ5%h0+~^ot)i3mC&3??QBz; z?XO|P^juFT`3-lzV0ZiwBHJ4PMtExHz>8CZZrPgKrc0KQw+F*Vmb02(FseC3BUs9z z8_`nf9-|Iu#%nnG@oo6J27O>E-v)M#$ARVTw}<6{=lVO}|K!uET6F-BzI6gG$T;f+ z(Yl@%r(;~5gRpGQe`w7UT|dxcBAr9Ag0|@qEps%pU&EZZ2-oV0aIMZA{u%l{d=McN zEhpss&yoP_Z%GI`L7EqvmMU`BE;T3CRxkKiv|qgdW${wF9EozsGvIhzI_ZkGRWdeu z!P?>+mW+*Fu()_zy66c?L$JDVTY}uhOBIa`Nezm(RWvpP<|79?S?NI0l4*e}5h!yL+eGVxMH?!v=~*XTK^Tn{IXh!1Je-8(ojDzT!Gpy=X4ls0Kz zgH&%hPWLmc9)RM_=vD84#b6f&TZBDf$=WqoKMfyfA=NvKaiAGK2(jAtKr?(0;v$#t z(8ZzV;e#|$q)eCb6qRa`SquIcHZ=hvNpX`xa2Zj-?g%s)XG{k`w5_6%Ao)^p4vU6_ zK@5 z=pCvWWXvI~(NYSAM@tn=0|kf;E4S$AS?|!pk0xO+7V}wdE^BR$Hz}faJXb^* zQ=1MIiFtQvB{l}`S|0{m5g^zH0YQ#eK{Swi6odk$NNfy9k=tEC5DJu5ZXW}Z5;t!G zUZJsJkcM=%3L=0~B<2dFNGz~R5uM-V4F`RR4FG8+HULDb|xt570Wode8&2nq32!*U^he0y>L+7vI-nRHzwW> z*BVwUcR6*2n3Zd3R7hR2sATEWmY;Y3`7oq2q5h&No1`^fwKMl~(3-!idN%RFYD%RL z)2~wrfNr`vw9Ex7$#z6myd{F~PDsu_Rc4jjYf2sJXRE~#54-omZhx}_ z7hUxWd>iuVK+KBG60=IP#B8rwVm8((Vm#w8=uIHCWl^wo&W)n$?}z$Ju(fJcf~}zx zyW}e;b3YS@x2Raqw?%QeM9APoAPBm-@mzwtL0miypBg7Twk0((M=V%dmY7XAOI)O4 z0oSrkuocgZp6l<2Q6$J(wuziMvxUlG&}_{)ou;!c$SGut&ebfy*%UGJEO^-zF%K<4 z%Cf|_SgT~oP1P(svqQFIXqy=SA5Iq7V;c5c2M2sX#72JLKoLZaf+CmwxcV~&j~%4A z+$S>JwNb4~@Gq2NC0>W++|TQ91!^Kw>6mxIdVdJ=ScTmlmWG|G2;i!U z0Io^^u55Q$^;5*@Y(rI*B(9+pYy3JM=6(+2L=xAg7-PN5iPkA%?uFo7b9`KXKky@H z*Y&S+KU1laAY2LNHP^=V_o*$m{V5@^#EJl~stE9^);s{RjNM}I0&h*#%z778Yl@iV zBVg85)N?-v6$qr2ZGt^~mN=(e>1ocWrKjx1vuv;`-}n>4y{*F!^<%{R;dmAN7ArB} z_*iCNZWZiEOjb**ad=g@@UQ*+eU-=|Wn=Nw}Wr3%jD99$JG zm9thhKtZgsy~tTB`vJkHvNf}oucDs&nN+|tu3QrWTxE%GQLeyLb4*`7#A1yIfH= z)oZDo)vB|L1I;c3qe6G?7lL*d)ba2$G;$cODFnl;&}-l4ehxAbjB1Yh`ukLhReb&H z+|N`By1vc@aHRA0xqyIEbIo0UKQt>S)%CA)KT|38%5&716(+Ez63{AGq-atl7}k74 zZfP#hyv0iusag=Ocw6kD{zx_w9pHWqFu2$HeDg9w=viFpYr5{m|uXSa4oJLd+fv=SQ$ zl$y6L0?F0_lEt-i`!EP%X56D9z-(QVB(@F$X6fbJYV8hnM${U_%+if!XeBlh(v4;) zQZn^h7o~@-1wRXq9|O|vCoF5=WH(P()&i5on~j;f^OSO@+)U;RWy-8w=GWY~@U5_( zXIi2Bnzh_*KSM8El}rKF0;`4PEI3=dRBU4Cd1d%k) zn3``aSZy4hHt;iiNUs@yF}2`m6KcoNQW~)beufVsu_CuE$!OR6S<-Vw)ut!`ZR3!& zf#Kl;b1wI$P4b{>9V!_Wd((jX+po_ai`7ycDZ6UaH6k3#c`d)6)%aI8+1WVHft&9su94XieT zZq3khFN$!jP0_*0jijJOcq`I=5%{$!0>3r_enomzGzJ6$3$)@Ou%J5;AZ(@;9%&8& zi?+g1dZrZ~p8|nJ=-Kuo^gN-Sp_g74O{L|Hf|*w6xYtH<+4v*?9W~zw%Jt97qlz^S z3)o92_Ba&XU$hZ`Yqma)%ri`~DCG9B8G7!N;8`>Dta?GRGW}yMzO1ygx3JO7GfXH> zNn&q7WCRT;ZZ#rh6rt!u<+cd2+B(Q8W_4QwuI{G_TYyqGPZhSo+_5`$uDdf^hfhVB zWo6ncKnVQxH!tE@_~Qy#f4W6uTa-1nbtqMoD_s%=OF7)i^`)o2INT~)Kill0tcswk zZ4q>}bkuqgKaU@WS~*JLgeOspRxf#9BTA{0Cro<^`^%ts;xgY*$k1VY6T(KO4e3bVnw-ITL)7Gt<3PMYuE=Ib$i%%uvE0!B13fe zRIn`vR7FdX1Ag%E(KBCQa#5XrYr8(rKlsk$ckqB34y0;qjaE&zDOGn|b;-(h>+q{6 zLu8`!43Txt6RBQpp|Rin1XD6xMq$shuCTjC3xsXSUHUlETXNILma#190Be+?Do&Y zp@W06W-CBYfOQ81*;}`V{Q)n-c58fLOMRcxxwdj@@w*?vV_0tA*AO^N`d$WS|gso0spLi)ULpU3IDYshv z7v9f3ZN7`)K*|&ZC|*DLPShV1p`bzWQbkHum?+Glny`~wdM>)!76C@J1B_h#q?ft~ zB&uC@ldGTjuU%eKOoO$#PL7f#?@*#8O0{A~$vSdq&=RF;bBR(XL`#&5R!N!0wL^Mb zoh&7X^f*fHyUSHtqFnU4QYWo2;6Hbm`|NNfu+4u?D~uIuguwsW;X0G!YDeSBAv(wQ z5iS$hZ?Ht_EPXCz-`6f1X_AveIs;z|mV>arM}5a0D+mL?Iy`JhQN1oY%U3%%C+M1r zpq<*Fo%^U>1H8F8s@IZw6pd-M!*rruRG(S_N?&bXw9tP4p(924e55PQG_l%ZlpnRr zq2}R(@S_fOpcy_evB!EAnfGvy5zl^ILC@MjKLZ=X2jNHUb)XqO2(h}=d0vdq#E&XB zT1wq*v{aG0i%#y<4ig$AHhf^wIVfnL89oRxAwY1V!|QRwhrS!qkZOkn4HXU_=-7KL zIZI?;1F^87>KnXd#8I0YKDMJ?;~RFAVWdfK_ZvAPmL(L7NBNmC||SMX|;V7>FjskDIcJggd`A* z5)L`YJA`OVyr&rf14G6wF+f)n)(#rlZ+>V<0K)wG{sV`1Mubpj(D@W49@P#rinayY zyoPrGL$`-fHlefOXsKHwt;3h1O{fpf^j!@% z+JySxXsMzBAc;n>?2$WUN9#bSF){m2hdqsnrRE}a7r{@pq#>cpi&4v=PUBukmsQz(+&EBak&VXTO5>WTgN=ieGBxKcS88^XrX>wFE(eKY7X{D8 zy;hj%n(8iQp^d|jG6KmdktQ{bM~)T+;$Wj5%kEu+CkBQO`;_F|2y*m0EYRC8?!F_k zrzDL=U?b$px#+z(xl+Ro zawP!NxPBF^q!eX|S@()jyX{!N>Ib@)++SoLV2y5)zRo6q19?SGVg z);Rnq+eZ%}EmzK#h~Yjp{%Hrkku0Krf?4bvbp87jNXP0_Kprs&vPQBtqjJ)}F}DCnFVf)p*KDvg$6M;k>{8aehBFQra5 z%Aqb}qNUgkW4zjvmzSN3yAR)_8G!?!g7rHj%GVF;pqZ`%pgb`%!=8A|wyRb(zErJh zd5MzUFc@gCgLg(Stm^v@J=wZLoifBldgNp!LlK=GRUjT?a>OL(B7muJNlTs?u3z;S z98?ZnTB<*+P?xdf>vRHC3mp^pG^*u%T2?h`kNx_4uOlK{zVA|2R^!p4#o_1BB3q00 z*dX>_blFVfE@4_8u?{Ml<$2i*Rlq&;+rv zBmj}gVk8_#U*b($2N~sCQJ)$W)GdlGx~jZ&XVCH;QC~YjPr56@k6M?aWLIcbSVNq) z&%Ou;jQ{n?skiPtT81Ch^#n00r{V1YqYNiSDt4IBBui{@lCd;1yrm0Si)MXgm8-TR zAkic>(QoIy&eGUG=jBXG90vyGgRT~XP z5(gz6R=B!&Rs99u0G{j)UnG^fyOW~ztGz}`sXz8y!P%tAWh)nl!<-hnP~?dnxD@Sz zu4VQ2l zGoXrFqRc6aV2jpeCM{I!upv*W{c?~{hImfKNpTJs z@{|Zdb@FEJTJP}|H%C8@2aR^Enb_k&%ft?xUnW-dE%PkL*I>n{`FMEpb7%rn4ZFa6 zpHP+7VL+$dFX8oB0811vhV);d%u+7|rh zHBbWsx;;=kEGXElgM*@_)Ew;`;<4XDHRtZN$7x)T$5LPO^wDCdiZ>Q*vPZ8ns}- zx8MH<- zJ>?O(3wz9q`rTLWZ676Dms}sriwuW3VK%jgM!M=3__ilvb(T^mC=))}dBg@fp6B~| ze5&)f4fCw^d&Gt*sdoa@EU{pJ8`yBT%{=2;N^LP(ialtY!Fjs z6|&gXDCfu=Ix|bAW;aWw>jxpz!Q;|;f|?Q_CTA&<+yjrr@^s8_xXV_n1{md>wU%vy zb(bS{$V=6J0zYmrXLJ9dPY?pBq1%`M$Icaq{y?Te&tgxY0c}*-6)Udfith&4AnH*#9D!p9dGzH||W%Mji zI%wvE?MQzB@O-fEn%(_vT$a57Vr&p=WK{ zY0A)0`*nW84!RI3xp2X8BAu%-u1{8#>lX|yEmz33+Ot4BGn~^&zISOjll^ntb`@Rg z^lF=a1zY}{-6hlKQhLFCu*gg324vmoFK^+YYI@717trS!kQk0?IyFocDz)7IeL7M1 zF7@X6bL^Bo-n-JSGj<#H&iWATE#l)uW$(OlFwd&%>a*&)dWQrB{l7s%mtYRi=k{Rk zke}$VY^>oBEpG*t!+*9MQsi_cT+_u9WK0ePnx-co?A{8Rrsw`OW(I}h5TVsk1Q&vB zATaoHk-jIcT;o#D_+grZde0^Q?wBO%J2%lhH}O&Ya?06V~0l`O8E&qF#hU)$F~?(Ft)L zQK)h*0ML2(4^yU{f?z$91iTNLnutI-7XtQjg5X>TSQHMmnG*$N2lNiUIUrD45|{r) z*VMgKXkFN#0`*?1vM!>aH&uFv*UY)c!}tu#cH@DY89t9=P(YImycMljP4i3ij_3P} zOSID6&D@N9D;V8f5JnHTzpsWyF?;gEvPs3K$Zir_pu-bCte}N+Gp0&{A2qB=8VBP9 zMdk3E>7G?}iDt~3*=`(wlW1rb4!21(+>b`BM8o}%b{_r)J5lTsi<6~3@4tk1*<8Mp z0j{z%;!3F!56ovkBaF)|^Xagdpza(lGs&kzVG<3=(`C{`M<-2P&kmvH{%a-M4X4yx zQ?kA!rDnz!B$I||p!)g}MKLHV=ohd?I|Si)VSr-a;tZ1<{C2|#%Qc5Q7YDB-dFtp6 zTS;UjcCL219+br*`7%EP>vs8$`PdQrU`Mx<>xQ|IULISWIGNI8fB$Uv9u8eclhl|P zj1Jj|zW%Cw5<)lFw;%IpKr`pW&=n~~Fcger5pna+FYx>Bub>=Di?(t95M#M8mw1R`rCSfB7?zDGJgh(^@m5*e3kRDRm|)<90Tu@6 zby(NuZhU)TyKxyamOW^1JK=SEFlxl+x!cPm;TG$jJop_-ZcrVT(l1 ztCMxsxy*^`dYKakl1vcO99_E13NagNc=0&&WMT-c1=`EHr-EDf2QJ%6CUm~Hmw-~j=6XCZlCVAsMM z0fAAjxJ{MP+l?gAsQUJ#J_nlYcCTU5762gaqp<aZ&w0w>8;7Y?@AEEBUKT&XgBv}{`lit#W82E+E4l6h0Rue8%%LQ_Fc`T}{sJ3nm; z@MoAWE=w=qMZw?&{+Fd^?d`$?Y^N1v>UE{n?7$Fu6U#9YwH$K@D&oizw#HYx{2fdiw=-I~)lFJN(>9 zo-Qe5iBb)VpBGHYN!!A~8NR~=d=w7L@RX!VhhHpFE-MHwFkyg&124SZ9kElBGgT0$ z^K;?yJmzHOFpIg{ymTeIEgW*e-r{bRrLtHMJC)%Ca-BW^&c`cXG*SCv&Ql5($avG| z-(0oBR!Teq@v?n^n3N)k9?!#*rWYsEL)Pe%?F$FI9b!;d+SzXS0e_~e#X_(N933xj zNWKa(+JZSqVn8?`GK-jJ>-GNU^km1j5Io{?cuR@LAkf|7I2+82BdUN7I%@)W3xONL zQATiwcq`Rf(C6EuE0;iuG>zK>sRJCM!>Vfxwi5i|gU=uuY-bv9(kcR~_ zwl+uh1@)#D7G;$UF04a`MMTF^CmLbv3RkBDA1YgvSg z^peIA7L??6IOa)r4yPEN#sNcJ@$ol5p~xn{gzJq&AxH!k9j0zC+h6sjhPW;PRp0*n zEc!0&3}E*~e3TWC0^9ZlO4ZsdtE#N|4v|P8r|2b0^`Q1Smff&NzWk6rhOotDt9Fai z)@EbZaCYw6;1?Z4aaTyhPE8P0J1#<8I}xSR6ev^V$BhV4F88TwDw;R%4wXfH{{uxu zfU4B(m8K}>1Nak4JL=i9k2|w3$l>xc-O~cBq9#{7_ap}aO5Xk7yKe2YXNS?V!P#R9 z?iR=ab&Js_E!Vn8a+WfkUsxL)^X*b}fA~IrV@lQ?G-6|)U-@64znIq0fsQo@Fl%!>$5`)bi;z#!(>m*4}P2SUABU*EcI>wFZHjwwU^1}`d7s+ zQK~XMjB~ube6-6*XwWirVRZV_IFu^)W)jgB4 zLd^QQ^U!(}=9tVmBM<-d=Z`&O%LKn{JJ5{y>UIS*0WrmShnrk;%hB7VgxI4?2YV=S zC}Kg7Im6QtAiNa}&PKL3D2y(7P2l#ip_JYm8|QSBbV#qdX$M95(M@ zz{79x+y2F5k%FkFpH<8 zNeR+&-6xN(j&rF`4RK49>Nq_m&xqBuCVW>Avq2!-Ls@pHKH%r!z4sn}Ps$VYwBTLx$6=4{r?+`NKMT|XKW{g~R$j|Xk8YB; z0l2sWF2|M;gby@)?) zQy^I(SXa$2eu|=i^WN@eQ>x!qU>Ezmqg}CL$=G>x)8a;#BfON_%m|ILl(xR|rbB;r z@VB?Uh6f}uH;UM$05LLq%VDGAaVhB};B>0z^i=hV3bfOEFC}-Z3S<9 zAGb>s+T0wsO9#tDhh@7oZJQa^&0k*plQVYc%j|gSH&a(47)Jv?%}djzf0_NjCjN!KB+9?m}o4_2j`DpR+mU?f+fpqtrJFp{Ux%YKUm28~%D z?BORVXSbC4njd`%LJ(QhEQW6$q&-q8FbViWr-prZot5I?FK0-FgP=o7g1$GaxTbUn zN^~qlqe~D3QgV9`bht@ySO=g)TQNWhvBUcI-M^uS;z|51J%z9>1w%Q%{W_F%IDPPP za@qo&j09;nR|-}#Nx&X)l7P)?BzT&5;GMuoz)ZU61LtTTJ?R>}9&HA=tKLk#Imlx{ zI4+CCl0sa!|DtYH<}1YP|L%p3&LRENhPEUEc#IP#;X7=@&t-gDVOvVV$ij%M3rG-- z#rE6gw9LkbGLMGBo#c!xbju1FC-P~Mp2IL!#}y>QjSE&OEI1^?iwMN&ZmX2c5!Ws0 zMN&m@%CV<`i}D4?r+5?{QuvZ875uNXBGCe#(*h&i%$DwJJnQtVuTik*Go8^(mn$-{ zGC@y!RRJ(?@Uk0A+v^O~I=~?9$s)pSO93#52fA-9B{>8JiD_G2^1%+lR`qg1zmyDB zI^5z~Yw7KVZ7IbmpTCOP*lWfYwy8?Bba2I_D0U>m>fTxON1ln$i`1`fe0!pBNOEH1GTXvFQY zQSgZPu)J%(+iPwtEp)Rlo+q0YNWzi*E_on_N*tisyN%&b+W*krT~G-qbB>Hd7L*SM zacG-AV+X&h-l9R-FFM{{AIT~~9~Q_M8FXah6F0bO(@51dPn*Tq!o$I>9V+TaDts)#uY^Z z6hL8i4O9Xs@DvinTnT(IN5h+iYoR4Hypkl2SN`}DfONYOE{8za$^i(L2s)JgVIiM) zcCguhkrtj$-(Z2H%|+$%HM}Am1FVZLF#7S&AA?W0N~`H7@VAn0;NX9Q#p4M};qILP zTeWE`R5^4(Rv;+TVYL!~!Ku$tlBGP1<=0j);A3xRe~Vkycq>{l(6B7`z2g zdoz-t(#pXQ#qRqMs)_6L5PpN22`#N09)Wr?tc4AFwnq*vrMR<`VmiB54v>h&waVcW z(N=1B(N<9KeKf3qN!%O_D+fJu_1#PgYG0|_j z=aUBzc*1C@+rK6nGzI%iECrf<1 zF~K71AZ=DFPT+uxGK(L&wprbSPn*NLNu~~wm}VnYkXC|4{2I44gSJcuSTy_eNhjpJ zu(sy3`yO$khSqPs_as`~EyqtOz6lrszlIrF?CJ{a`8U;@>4a7ZDuI>a)tioive|KUl5_rYFFX6b-fxdNDC^Et$CrM;UPex5RX zD_8eoNihS*VBi35Z5L_xkCX&e35M|{1P3!e6*yK}0*k#(OXu&(;Te7P_zRHT)rH1wVR; zv;aA7kF(rY#NaqS>|3>E!ES3>GF`^i>|Xn4h_%S70VBJV00D)^_km z8w$HVv7$q9h=Dkkhd69#k95NH5C&#-uwN|_;_WQ5>F5Bd`4ny`rIM=3Ll?`PimpEX z5DOG8#(bB3b@6acSaqc!#xkjD%RGFs`4qpw&D(PUn=M6MmsQcVFPUp89z1w6Z6j(0 zGcfsL2Q%thM9E{B0&eXRDLP1gvw!JVRwbL zXy`Cpd$0pK?d>A+w0{b};ct|qR7-ga5*Cev;?(@s0s~Lb!%yljKup{!>H)nS+vhQA z{nZzsOR=sN*aJB1p?VuG^0fUS$kNfa7UZLS1(SyKPd%KA0mD?pTD#l{1KWoeLMmGk zCI&Plkhc~Tq(Fy<&AVu0XY2F{n{DlYkTZJOA5ULmN@g}#-UQUv4hR`)U8=uW6tK5F z?1`#lIx*A^4~YfA+T~e9TR9z?P0s$h1l-!tlKaqE0}pu?fBi1}8d=_c_gF5!J1mc4 zuKwro_dhJ~^a@g6z6_@7nFvB`l7AeePT>s4*ZLbm9;h;AQ&Ah zYi(TNgiBsv^t}!?jB*%T8wc9UJ0LMQkb@JWt+Ez|gBhb^#TEvOLLkR^EpZTcz+;p* zIdU)TyCnb#8adD29S`F|GGy|ywE^~cyXO!L@(5USvwz(VIXFHNR9Or9xIo4cK*=Z} zrgn&9P_6Pxb?!Umm{*HwE!G$sv!N9PU7W23>&*%gGR?*Y@`SXl=JkD~_1%JS}l ztuBZ<7U7*OIDj>_J{v(?XIW|-;2Q0mwZG6g+x`Msj(!`#UKcuNg(?|U(l>&%Dj9uk zq!ElYy6hXDVisD8jbg7s-`*G!d%tC90Jq+}WoR7o8e9>Kzdronapo~|w%24JOAyxWjE%?Z*Cs#zW4;PG@1p;H7;>2IIk>7u5pmus?4*%xF!pX zYoz2ZtSK(PlU2+H%GjF_u@y1YHcyljKO4?wldhRb2GWFxnPl8dh@>Yq+Epz}?pj## zSpZohS#7w!+I;vTuD0zC4wr;hmO)u2jl;#(CqiZ`(h(7o3WW$S*o`jT;a!s>(>r#J zL%N1?#`;N|bIae^9UXp1r4@~2w1wrJ1#mS|X%`zit_I~Mh*rE+4tUu}p54rhSZ)G*&Cs(11oE1pm;M>w zn4y>cv$kLIVp3!ja_NuF(90}X?=$o~i!6+*$-=mrER3s>TEwrcn&DJi)(y@#mYRz1 z6^;fhz*c1P0hP0Gv%suIz^oar_+Tb5)(pLH#VTJGkf2s8q-@l0{w5Jq#!n*&eN1#n z$6UMZH!Q7}dD)#Gr>XFzSK;;EAN$w+~r>Q!9W|)G@bN_*3hW z|Au!fu-6!#fTTa^-k^0UfH7INJ{vHE+_VBs#YLgsdU#_4*>3(%s@iS^wTchK4m;k8 zZTOn43!BVd7J}7EF5&z@l$YO1USY5aW0PSaFwBKL%VpC3PZ0up@c2NtF9w%@=y|&Q zU3k-#a3S%3N|V?!VC^`B%=dozyEI|fJ}+l!qUY{Qul`S}^lup{3u@EhWzL9>{@a(Sc%%K?YKXFc(wk zqPrE)?2X|+?Do=Ow`F_`3v8%i9x{^gGyO?hk(SZ2$G#l?vkUui2iY=G7Ctt$SxIRv zLuc`^3`@J;fV6~Y2e(~Mnfb{=+1f0Wt#v5d3S+A7YhpG}!PKTy zAjDZ(7C>!v2sP?!=2-;}L|ay_B!{iBA&}V=v9O^bcZChL+@Sw)rKu}o(M@-B2vzR& zEcRq6E;-D;q0=8w3U?Sjy<=ceDwk?qsp@EY_l5{`Db=F2Suk0f1(UT|Fj;Fb*=1h< z9PIXefqR)NsGlrItQANsb^;MpEbM5rlDk@g$ztqfC3>}jpM@u-fLahGYaOT z`XOzqL+}h;{!Wlq=diZ9Q3%E8I2COQap>gL^$AF#b2wVijm;>obqF@xRbn;S=#=&76>X)48*Qbw8*Rn$ zd{qdn_cdZpJqtqs9p|DwwmO8up}{F<0cu?qpw?vpYMler?8Ti!i$^`iALv2DP5`x4 ziQS@Z$yZzJ+2Lp-tK$#Mv%qJoJ!ffI;Iq{s*t%DV*{G+8=|cydpk`CV?DQm6ZI$>I zRSH^>j$4AS>=dlc!v9klqT6p zrWrCK#?J135bOcpR?H}C?y}O%I){n{eVM)7cG&;`{knYv;83vOunrE3wo-*gTd`)} zfkuHQ*+YH1;k|XBw!DFLxL9^Bj~{ zdschzkVNj4^jsiUZwIKzg3plz^905vc1E`*7)xoFcw>%y~D=V zM^X2_PQRvK0swjkgGHyHiZ0r3Ydi~QIE%d^d`NFe_b%mZiIVqSSTu-0V<uxzqXtLnLU^09cUoWpVNu&wC4 z*p$N@I)v+J4_?|An(XmgdoOZ$7BM~H+6%meHN8r&Tkqgp90ayL3fpvi?z$2tN1>OE zdzV2rNl#BP_gU#XH{PIf{lgc=0LJlIS4!!A4UCoaOFr6Szvv-oU-+~sB533 z=QWd+U)H<)vdK|+rMb+qNqXkWfn=u=;mN*$csjoayoWv^+zT)^BTwmB?R}CH=G>uT zll0QRTKW>_YTZke0iEv12MY8xBNL(L(EaZB?q9|prb@*uz2IJfZUy>!^9ekpYTwkd z$Exl75A@DLueg^ma7@)SeOAI)FNjyzy0e}g>+PEamn{PzuG_Z^0(HfiWd%Nq0NMT> zK+myw1~D>$JiVY@^JIc^Es$x_cF_MxI+%7&pIGg)^1phQ{}pA44RL`bwn8OiAq&j4 zKo(P(e1c%UH_7l?Aj?vjpjwx8b+^P&34ci|@1-1afd_SvK^E?5w& zh0b}~J5MH<)B+i6P|4_h>^=*1>IHSu&e=AlsBwNh2*9*JHg8rkDC=l}w|TP?`OGVY z2Nj%XehPvRDH+~57!5?QA)NyACSZ_~(ZdG4%bv2&b)D=%9fa6!|5M<>_y;N^=w0em z(C)Ho68kJ*s5fBf5CzLER+rF3AkNKu(!l4ZRd!|YHQaYNj{l%xx<`{3q)){1v zEj8982O}ys4kL<)&Sgaf*PDBBD>P7SC9qmuVpM1pT?wHkS<4^?KZ1g8UkMI8ipF{Dq)-!G33E+$+q2P3FHqdaPOUl~GG8XZElx-vwTRvnJCJcNKq5ayy(1xE_+N*t_oJw*ES zQMqww(lv3qAO&%jmfeRfgNl=kswqLqEY`Fv#93Mvuqmty!Jgu+*jvY2=@$N4l`MoD zK&sq0K2JB)$3BPu9+A4Xjon*7Pty*z)KDvMl^3}Z?4$A z9)3>XbGdN|S=arua0IcMnkI8DxD|+TygFsgR^ zi!3Oua8O!I?}bCtqOEiRtW3u_@@1v0sapi4>JBpRu(M_69b|S*Ov?{n7?h;(Yhq^J zVPx0D(zA=ni!yY$n0@8*SUm}ccKM-CVXAORRV!>bRbD!r?%ApGig?Fts4B17NC^>T z;V>`zcBwtKe>BGqIQa5&dbbEo*4*`e{6;K@RgZo9v3>P*_&r@ufJ~!qzkLLcGvEDw z9P2khrn(ERQU_^8Td842TS2Y&8-W6d)y*4$!U0ynVI5`_ZKax=Yn8r$Tow+$3N=yP zhML6moL*4@V;Xfsqr@~U(^snvjiR<2YN8fA*W~Ws?=K9?A`8eWTt-xMEH&%7R)k3w z4)B_7GG_2#MzLk!Chu~Kpd2KrgEFwAwgv~Zd0DBRH!&s*d3!5E< zbm|bXxh8l2KCbN`G{!;;;$m#w4iuZ?O`60Oz;1j`xGdcJT%l274uKg9LSxLB6d}$Z zl6V0~e%5@G^sZA`1feluEanFY04f|hHYeo6mUP;e3n)nhPKRD7J61V^z6L*_C31;M81;MNU#scLd*(D3!C>GPF#{D7H<`^Y(LhT z_Bq-(Ozm1DLd;74+Tbyqv`)V@82dl?i5!f>(XPAYwe4`UYhva>(#v2imS-(iBgDFe zUswzdGP~|p7{0}FU2fSD4^DCOOV=S{OMSA+R>ZY+aM-mFC?0Md3U*CQ65BfPYo6h) zAYV&sY@3C4Z3XRG?q98MiRVSdQ8vL=-pqRA_;a}W^IzcU0bLNRuys{~*RoCZ0_E0$ zS$E!G&c|GW`PQLY(N?kZlX|4B;avB@e2Z$qn}hk*!C6seRe{k~s?2CBjiPqfcj!>O zH~!G2G?A^#@d^&%A+Ndx&*Ir7UK^xoh-d) zWp`~IST^!A{=kf7VPsoZ9T?P(gUJRc6%qD`>uSrd+TH)0O2NvlOY<71F#aHO$fk5rx?Hh<7cIAgv)dtNwh+w&~9Eep^*c;j#M@4!61KkB~gYcCfLQg}{ z>8LSBTTNK?Z~NZQuF1afx7MI@@ZRI@moeZ%y zEJF5e~T;c^-cd=ADW!6TBy;Wg~TobElolzmEaiJw8A3 zaNWOys)CYnn3eAz?t1)?PPuhZRdfio;${6hw94~C@^lE5r^FeRIoFfbHL*-nb=q6% zWAhJ);_?Hd3J#CDo*g9tY_C$gmVBmzq^^5r2kRiIk=5}B=Gj3~*F7`On$h(DPTtZ$ z>%U!oz@Pi%933om#2(xy91a_RbRD*J6_Drh2?H4b{cP`lpu~i&1E+#ZFe{B~>p-jM zSn$sGp&wOzw}*aIR7ploY*-ZFWVK@3{1CcA0N?B%K+7jv?AtF!&7wAf2ACj4!3|HBH9bM<7-tQyQ?q7QsRh$or)E>0 zq)uh+Whp6KlhkZsf@V!nllWXV*Md$QY_&wm+Jk28sM+nF$8Xicwqs6?L!PsmU{sao z@TnyZSaCRA9R)$UNI6>izrE;GR9 z_Btlk{~m|tJxbpDq3k`W!J$iCi_o07Ak4pX6@({<(y+9{`AhuP;BWi!OUw`~8=HMO z2^jLO|I-J!#5|_-#4@X7uyj~b(9JneDcTAF^b)rL9^HIoFSC-U%A6QnY_(k@NjKKq=V2!;}{I7dUBd+j05#ar@zLrKSGWK%@M# zv0g@>`!jLHo_0}d?v<(~{@H4m`wZ*U!AO2|b@L8A^2D?h9dzU=UAMfSU7VLI0bJ=; z73YbWTUA!yd=2NhLuA^+gYN7*bF>3;SxvrMH??JzIbzk?G8+yVvby(!rKaO!leTp` zp5F)CDet{>n9w!bys2?%O)H!%s}F3nDWEwhXoZci1|9sf(ye;bbKOOECv1ntZ>Fwq(@HH?)V!J+PgF<1Fsa+2Lb!A{rE56{|Qu0 z;>`kk%B&ov(xE;Ky7GvB|)$t6lPP)AASyJZ#xR5}RA^)E6}8(pGQoeJgWqob-^ zmeMSlo;qg96zG{HQys-LTM5Vm2QsVK$^kq}lrAJL^r_x-sn4j6DwmnG(5HYk7fYP` z^J1ZufHsQ~bC}H%C#pMpOWWSnJ_C5Q2V+hM&S&hcDRHoJV9iqJi-tyqPzgYTVIypW zH7Jiw{SsoXeu&*sVZjK~BLKRRszY=f;3?o*aHsAd7_!-)y z=vPUq(c;j8$Y4;!)8VPNvcsv#Fls8-s|1iS?TA-Q@9LJ7;4xPW(6PC4cudfWT^doe zmFh0q3YK^ugeznT-5i7~hs*?r&B_+41g^m*2}=zb37gYf&wZ5KwIDS@ge8}D@0C0m zE_B?PT3d8>>@sJ&W_`^Pv7;0sHyI6OK|ZtanM&{(;fVx?x1M(6VwxplM=3-)JAr1F z=(4osz?jLm$kW^9z=>uR=eTCw!QU)@GXedo4p-?N2(wPl83`{ibgHO)6+eb6p&4IzE6kJ%H`hl2do!6-0l#W5A~n$Te?`T9K3Se-mfX+z+T(2 zi)_kEud>R;DtQVV!2}%5{~EWA4s)4rVZEhRu)s^O1+X&u$E6{)19q74R&01^1z{Vs zU>_ywdR#XgyZ2N0%y|;LtQ_hRl?Qv$_;lD*{>oV_r~s%@7dnX4pqC96jnV|I4S03h3d3Ghe~VK%4J zi#YWkntvngz*G(?udf!&W{TG%@#>(OSd6J1Y!hwe%rdkqs13!rkMA`SX>N}1wS#P; z%;xymS`ZwVd~k|tm>s-kv3Uy3yN6)G)rX@StR0#Y>|ekg>rwm1zobi(+TlB%n3++1 zE>Y@cX^B!D>=LE(t}#(d;!RjVE&(Shc2#SzRTlPBXJJ3JU_bCrI0W?7i@(P!S$99C zg(m<|SZ)FbnY%Kq5T}gJJ_uodqnF%kS0J{adY85n6|7qHQvVuQmnc=m%M*0Skna|< zCo>d4Xiani3|W*!Ux!c7>V#-=_qU`273cRi7tK3_N>NxEe(3Pp>_z-H8HOZ zfrl=ub8?}&ES)_T*|B-!pJ-zN)y~$M;&`p-)A@Pzu$9)dCEK4K}N?s}|fSJ{Iip64+7Nb$ehJ&?r2tKuGac zjPu1?=~g%Bs03QVSld6~VGjFz&Jo~3(Y%*T+2Kk{lx&($!V<8>wD%Uz_+=%Fy+Kkb zH?el0(o)arR-!#Mw#i04gyck*N@Z%7u;aTWAxpMSKy*^O6`|+NQG}jV zdA&TGK(cm8ZI(`@nkzDqWzCYZJapvLO3LzZk)u@MxOARVfiv3a@b%L`ayb+WN)(uv z2a1+?Skop|VbvZeTJG5?ahZ789-Z7&aYHRb!A^=&Q)lX7P-c6<3u% z!}x|H@hMvnp*sgwz&~18wolGj+3m?t@N_#_YuVP9!{(^|%irEb9L4E@Pul_t&8VDS znysZ?>sxSP$z|OGi_iw&W9z|D+-K{6?H(HhOHVu7EL$t`O4S0j2Zmxtovc!=8eg+Z zcZ|_M*BDxKAIlqnK{vJJ z!7`~c(vWH!1&@{o5PdF^3UCxwy&_201EfUYCJQ!dq(W<1nws%*%?s&BYqFL}C5A4O zsyglZ77xiX({!8JC|b1Kv8WMyp2dzGOf*4F*R+koL)UD;ou%u>M)9F*YLc;L|6G&O z(vb9@KYs8ImLFWG9bJb~+2jlxP5-&>)N#9_J7(b~-8o2TO~kCe#pwzBvrH+ma!n8d z^(^!$V#!SDD4c7M<1MP9JX`7DzNj( z0l$jUxS{m2##Lq6lQ345W%uj-<_oML{IE~w{YDD2rZ}M}-AH-XTj+KFqi+$&t@Mkk zuN#Nz1fz+AccQIw&XbJ+K9}GOJm>b{oK=t2IDjWQMYY1s{&m|s0Td|^Zmouo(5Xhi zp5sGM_&s_0=wah9o*)|n_RRDw7|$FHYiy2&4UTD2zH}pS4%5&~J$SPyx-875k<1@v zgIRS)iP)A#z?_+$1-fAxtO~Mnm--XbxJv-Ktfc9MClC#DLh2B3hG`tP>>bkzPUF&1 zv=LZ_`y}~GiVxGcah;m3R*Q_w@oSAq2g2;lY4(5mH$W@{u)1^!+6V}vtkMy(5d;Qa zV4=e~Q_{IhnG}K$^+*qhG?KQnKqh;PJ1DLG$=!4ih*Fky<8YM$beo}6?KnzGTx+Bv z3d14fb*WFLbSR3W+!LP;MX?0?BLc7;PfgNQVlE1 zp&}w!)?H{ka$W$ja$J-aBj6rxnqwa<^!C7AqoUZw}Ox$S?mCidq|@=ev5+-l~T2WkX%vH zC2^Zo6xC+s(6kOPiA9js9$CH*!Y!bYn}cwhl^D|sS`zkuE=i_uo`o7=^t;Yd0QYZ? z5w8{SB;LR7W0v|?=ek6x*11HfcDY2U7P&y_z!OiIlFeENm@HB9k=tA^e%a-@-LSyv z?KjVTl@#HUVV1hpkhnw{R+EEBe4ki732Mp(h z(K;|?g_tewU3h!D615YRU0t5-QYoeVw({ojDlyyL8nJ*W*Q&(7(ApD70B#9<`3+#ZJoa)}SCYK$_gDvh>cyEIG3^R}DzgBLA){4+%i$#QXIe{om?Q}oyY)k?W( z6lpuDNdn2<SXD6?!(_Zu^)&>lxizg{0rwUcLL0`v|y88&{>w~a&nYi7yaM)8XN zABi6aolN)7^lWr<{4>2ObGm=#pPgi+|D15vIXq>WE1m^w8L!RaKiFr2|2p?&s^H?0 z%#*-m9kMdb_E$-{4pW(?C*gZE1$*(dh%Y}geMGq=MptjN&W|d0nx6aD{p2(~=8-~e zC;2Jo;Xi0LU2S)glQO3xlDWfI>=~(pol@K{LYX@OTBcT)6dTJ5~Y!Ua(k3^7)o$h0aLmd~;qgCUOl-b@i016rR zrmk_8OtmCrJOz$#m>*Ap$=KSETw z2NrUg$iEVY4(C|ulaFg|@nH0dx?NC;qg>F7qh!_m3~^{JAHj zL2wbQG`k_dM%+L?`|O4#HV>bKPOoou0*yS4|6c$+whQ!A^CYxS8@;UJolY>4Xk_UH zGKsgsh4_8&?2&wObMWl5ig$Wfyfb{Y%ph#jKBT@Ieoh5}y&x%AF80vbkQRP;@0C0$X*z2v3D>^Ea3Nysyw#PIUA)TBUS}cab(1*hf_8{n>Gas;q95&-Qlw|DS=ZK zI#lCJ(w>pLOF~(vXWzNN2JbZ-8B2-1rX%}^=FTp2fh?vP!ACxYS>G?VL;tf^Q)KQP zEHW*bRQ}pKSY(=>*1Y7Ez#Gl0UXn_#DdC~g)}B@44-1vxTwn7)(KJK&?JfDKyh z2H?fJ9|+XwC4aFL0+b%r3)taC z2PI8PV2-J7DG{l67>DDQvYdL!82J#P267tGe{6|?*#Z;oQ)+eZ(2c_U;_yY*%MTQX zdnvjZo|JkBy;oSkhtJ_G`eZMz;^w+r`u;*MaE7r913Q`vDz^W{3{tr39jQc zIT}r^o8-r#9Em2~eDx02n5NOKe41A}5%mtZNHjEe2UARsrE;F`hvUzToTW4dT7X5I zH*bE4%#r;e)i3rAjF=qGK@W+Brtg4;X&PPcRv1uha4Ot%|A)m?kw11o!=#|(xm#W& z>Atd;%9jNpsLa!F+?C4QJ|oa~zyIS8Ab#`uDf^~(c^P&kweKMQ<6(=dEPB7XcPPW; zxDHb=Yl7ISpV-rYbTsTes4y>Fd1}N?Y%&wdBkEoHMTY=;-24U(-kz8nzKfGioW0b& zfVaY&16Z{~A(L^Shhz|ey2IbhUE}=%E0ZK_w0EU1X;pzN9ZY+H8K4ks=?~S*`yV0N z(Lt?uMK8l!OsA)?{&32+bgJRDl32Y$8qn<)H_mowwA8Di3YCJmgB!5tGfg;RK46D$g+xFdO;=bv{JOcHC6roou^YQb9ltbHZ~^b?g$kgcXS$Xc*Jo1 zed&;#zstlBvX^OGjWt5Xz45un&4PPVYm?rX%sD{JbB9%X+5uj&Ro?I3Bo5URnot&q zb!WXqjL-Y%w?!w2M}QB+ZUb=51`{j5H>*u_t3k?=L+zcH;d{;yi9IpAIgOPzpkL6} zrx&4tY(Zb6T0yp;FYZnCC2D0d)zk^z#T?M?{2UhZxf;tqF|MjzP`MrSx@+KDecV1`avdq@hh z59$mb8N!0K!n7v zoi;(tdUHMr{gY?~Yxn>RmUumsxlRW{bjuco1$o{-0vogyY%v>u?nk%*#HzH-w)`Ht zKG&aNkTH~kj5YS^^LEIGOb^{xV1rho!x}k4xPt;S zPJ7GUvJS!BGO^m-1n~%ifDKikEsZ&bMQO10;}MvUm17QXkd$vFDL4!wC}@vITu+kt zRv2QL8&%-K6eZCDVzyna`I8n00gDaC!)r82r@(9CcZpaPxWt2K?|NeYrcPOR&)KFJ zi)`0^_}&PO;@f<2tvM*-P{04>pKXm}@wVe05Z~}qKRHV##|NLZ5*C49Ly~CV2m9E zYfYCj(x#zM~+tNQNHa#ZMTnh^Eg~{anGzWkZiWU$7y}vLKqxS9q3_4YWvEf zEuUfsaM%QR94|Gije|ad-q3*|(NPYb}tB>s}MMEjO9%a?v16Pidg8) z0T^=v5dh;+uyy(?*uv;{>w$uo02s{PXGv~?Ud+*mXM-v~wZ(>oXOX}hQpX*#BIY_| zEj)TP1(P>%$bkrJ2Cna{?KMTpf*WVL)leX>%1{p2rDd|-(k_ML-NWLp&u zw^$syaJYp%KRbLH9Tq+8tr~oMjZVXbd!wUk5Hjp7ywlc}nFYCYU@1I$(fk=4+X!&K zV@ybqws7c$m@|4#VXF`TV@ek(B^d%?#laGf-REYGPke#jlg$>A81cU!gGF;`VE0@D zIZoL@=uq`_D(~k$yzhqPWxh2%rvQ3ZoHDQ@1_Z`17Eh1hx9#t~4-u181-*CyEMm0d zumY|3Dfo;rM;nC7^X8|YfH^2&V~p_Vx?zY#v%&!w(N=73U?p@WE$r2f`xsaN zxwtt77W!Bz_RPQ+45_|=N=5&J(b@`uF|cm0iR(nn7zWUbefK?F=bG2to!@(f$aG_F z7*%(C0=fe#|M6G{P!)n*Y@daBVJQ~PyN|p;eW||s!_(*tOJQ?9z4bF9Q#UwErW%=; zZHf+s;1$dsEhh(7%uiKqN%%`UgF^5K6o^@Wwp};D3~6hdvCOb4BrO6`fejCy-|V?U z2srS%m$ZmgVm7DG?jrVZ!DE`luR}Y&>H;=cL#xEBr-z|!M4_Vi3Y^1EcXis$6aq_J zQ>N2rAvqC`yoT+Ef!LNGQktOp15LkcynkXF@VYtn%x1fSw$HP16@K^`{aXoi?)*vyU00i9r&oHkJ zrxyF7%K4lkYvC$B>`XP(&10Kj(a_Eg!>9jJfX9=_^vHO1dj4Vt9RH-~V~&P{6Rz40 zHBO86Nnk^zEjxyQ>q06%5KJvZAL{@6kL~k#;;N=|k03pKoW_i$e$M(QDRFRu#_dhL zefRON(It9kN)x;~ z@smZ~l(qv(wx+*=5_Vx#=;zbBuYnVC#tw+sm&j1HBcL5B&0kpdAje2SB>sZcX?qlN zE_Ur{uh}2TSUe&T3tfUsfP-Kw)nl|36nY7h041IUCi`9ZHL_fM_gLP3cUT_9T>j7F z@1qR5Dv;jtU05H+T;@*D=eR7MXe*APVHpaN6>r7bkGImTQFLBee%mDkEiXTZd<7X3AS^5d z2aQF?;&>e&D{D#QBnnkUPNEQ6Wi1H--Qv>Vy;-=GgXDtx5`->379WV>t+LjJD}{>A zOHa1ZR_ZR6jZtc%;zG#s5;^rz)z)ExF(GUnI2diEOJY%UTL%$d6CYB{-8y_Q%1_P$ z*a~PE)#=tS#QROk7AWD(5Y<+o!tk(y9O96LgUvE@}1LYX~)?tysu^cEFZKW7xv{lx^kj$&_B9s)Yc&jWo zAW-MLW%0sr$Y)f5Sqnp8(Xc2SJ{siE0j1GaSqnp;)A+n}^BA#W0aN1xsk?}ZB4_8g zb(m{(EZsRqMBz}_P?IcQ;c(gDj2uQg#~#Nx!DwT~E0FEwd7DFmOSe+5c6lI&vNX4X z(S}!)D^`ojM711jWjO9-lLD~z_Dza_w&5uXfD3>X*vEA)JG4X_K8NInny8zfYm%yH ztF41{Lrv6_4T~;1%Pg?uX2Z?*>8fBWd1i5Oscz@EVsW_?wBT~kRJ0&Ay>%&R(XsU4 z7n+nh^|>ajP*;o>Xdqn%(Sfo;eHL`MbDXtJ^HRZ<~epZ6!M| z9Lp?U@3P|nig){t!@X)0v=;ZgQM461b==5XQSeY)J5(51ZbC}C+~z!TRBZ*sn;Ig$ z#!;17*j*{u-Rcl*y;H<}nsVtNyO>nVEbOk7Jiq92E3>e>Qu6=eW3f?BiB43h?mH+t zhwepN<($n*$rlU@K>)rrAqcKFMa+vW3(hO$`(9H+uu`&syi#%rSBGG|uMrDuH$}|y zaV3$#wITV12q;LS8ER%LWc>`^dP9UskG@u=;B-?gu{;HyTP5c3yh_YF^i^VZVC zAxG$M(WxMAQ=IR~!8)LAQakBAp{kUk$*Il{+_~<$f(ynKO-5U>a>LHVvKH?*3nkua zx_PruW+7&!OIHj|(Sc^sR$0DTaI;GS3zc)10+CG;@L772AWLI{iA{E^wiuO?T4b~p z+hussNp54j73*e45RNT8@mf+=f~ z9;URw;&N$dI{>nlo$r6`Q=LK?gp-crOH5Vi642&GIi$Me(qT!#<>6qZXsej+?s~gC z-B4Qg*(K@%GP*tLI?yP{Y*ubr>8dcTmUQYD6@irwI+`N4f1}*=(q)y+HIY%W%+X;< zp@FiL>|mwHKw02YnFTJD4qTdJkM34VsRRxCzpPBM(t%KO?D2YV2-I8?UUgZ?WTnHQ z<^~epbfYxagm}ZtOjPtTZFANQje_TZq)E&z;Qg7bR(iIXn~|`mJE>5UoNW{yWRMxn z4J6X$C>^@Ku3TkmRNAqXz;bh#)ZBEWiLQiD6I}+OCb2cZauz^pepQp(K{ZlHn=*Y} z09J`-U!L{9_UZk#N|33EWCSE56C0BRs@dRr5CkgfRFSYp%*0zk#rOM;3NX{n`;JQB zrueX`z^GtYheIV9Ua%cLet={K1J3AKG29A@Jno+3#?6ftA7WE_+@Nf2m#X$Ed8liu zb9&wdR|wSk6ftum=u=ok0z*v=!TbmY6(2&4HK>IwFshPFuhr?SDO%>vik|9ObipPY z7Zj^I+$sy4s-(ttYC1f3!KC7hW$9hgxmFot179U(b;oDHdXKl_1u(@JuNHk9ESQ^9 z37EAugp}(}5wp6p@T^MktgxV5@>kF~NHK4GEL{MrzFOd|_$ari-a%cKR3@Rr9ta>H zqY{t{(Fpr+i%9lWtv#-Ddi?58%Y10Z8h}b*uV541kp-2Kg^pE%j)jG6klAHJfs)VL zHx#Z6G&)7rZJgOGzb;4`RJ(ly74DbclX_hu*M;DYn8;M6vt(I5+rewIowK(NOD_vm ztFlnFDl1>Bay6a7wd7K^qOG#_-&p`$%VSB}mlpnZ`ThtL_Wc(n+^6<(8BP**Kb*9>nw7eTw;{LNPn@UqpZR{XD)8pcSc z?ARmpH>z1)gNyXf3Z9)LYc;N=EXx)+YmOm7ufhxojFr@BkI)UT;HBIDT9T{+VieRW zLeFZYrDeSA)8W0Aq$`~Bt@v#BPa1$;PN-c`;u#N|*(W$tgJY^!tFvkm>ny0M7N{z$ zF2k%Yn+8Bqw{IG<5UDx~k*c#0soJGo4NqnR0vcc(d&>@S)}DXwQXNR`K&em@HQ!K^ zEZcSHR4~RkfGWbCt4j?xG8by7= z9o2)dj#=Si@HxTpY zz_+<3%v%=n)?^`XjYHn%*pnIM#Pi1Gg9R6=gWW>x-M$zEcAH;vq9cvx!Ra{UZEiX| zkic#+-m;LlMk*NR2jZ0=uv>Iz*SJqU&Iv&VQlAi&c5EfcKpGvcqdjfY8i&8lO@y`S zz_;uEX*bab=61D5*rz>0BWT;a?&wK`MzA;RmT*$`Cm-845k%5tWtBCORTf?(0>#B! zLF4y3kp?x6H}6E6tP;mYV7D-{SvXuHINXQW;sWNt7g`=*k7-Y3<4n;d2&@q(Zk;;I zv&(~E@!7LUPjc4tJk*qf4j>DrYXqiSX>(750n1dy8?gXJVx+&VSu84|Gyj&Aon zeybh^GL#^L#zAijl5{C$2m7qc=JW|7yhU_iBJ`PtMu4^}1_-lgB$@1r^2n@axoZcj zMU}&*8xB7Pv0Ziw0M2gTDLCjX$gD%pqOG#xvMbJvj>U0#ek;kFW{0QE?SrLBmX{WI zEykPRY~j_Bg}F5jbBoBqrJMzIAQq!Mn!iOT4r8d`u*N=nbVsdM< zP`TEja?!EauZPxZ>yq38a%i(qxi*N(k&arI@D}3j=9SPoRBmn*VNBisToYP6t%KyQ z58-skZygvH>OZD>p2h7jTh9-HD>h}{Wnxo5T0Wr2H4Y`JGuhe9iYMP}kie(IpHS^9N(?WvV_#gH~uUcMROTJEW zwf}&MMXEQd*uh?t{B!?Vm{;pDuc=wfC@$Ep(reC9a4k8gYjW0cGS$b9E8tZQO=y{Yr))f6Z6WvR~L zRu-R%^0^-%QnmJ0RJu#*99$J!23^+s_MHQ*qGQ2t-|rMU08%&a6gme?1&7Vb66+j1 z6&*|cG}rcaX;;^|%&=K9wb5BJHBBa?TISAyQL|(kU73uhkcB>VS?E*evb$zk%5k@y z%jlZzTq7!z5q8?SPeTTmje8Z0I~SR26rCkg4F-A0LYF#8*uv&<`qh!n!AY}ZSsHYR z(roAR8e}0m@Q8a8GBvuf(0=@(Pv!ZYdwibzWD9kvSWL!4JE&+Jar}XYb_mf(Gybq6 zJ|)u%N1~SBFt8SMFzy^M#N4t)I7nz5cl<#ZnAef?sg7}lPt_FjNv|}+UoYj;83T~ zjItJkgPi6*QQN1_uy+o13N_IaOJq6@ZwfWhWe{R4YZ*A;Da2cB4N&@Bmz90hWj){3 zIUFi7BL_vzHQ^aK9BQr!dqoFDMRe+_8|Ow5#&j9XHDNd9FsZpFG8bI~bI&R762#ec zx~HBSMdreO;PTCieY(c)1dW<_fw^PJGZYqwu|9k(Nug7faJ`0uVU4i3d&n|sxnnt(j(==H+bx_m}$xOTE@YA~;Y!4Wa z9^>s@j?^?8s<>&IEH%08sMIsA)zUe$cTm(UnHuRFnS-Kc$>tOU0TOQxYznSwDJ5)? zCzG^9p`&+T6SFEjsDh$AsLB!t7SwE=&?C~lgPdkL;qbUHuX#=Jyd1`KK7IwpaO-`* zFDu78;oArFA>Cfkr4QkzVf9_}-p@dZqyb9H>m9&!J$EWA=zYEt!tb&E)GGe~tRDce z69V50y7bHUzX7NF&C7OInmkWd!C&u?rl6Mb^~2rGv9&h@>OMI4fSGRZz=2LdWrX;-K0Fs$Gjb}&}7)$K}mc~R5T*G+^g0Sq-!^S3aRT%-jZ ztQ+1+H~?#%KB9D8x(>Qp9m3&ObF=21pi7mSYeIJfy~nNA3`+8({=IqTm)Jevux(j? zloZ%YQQ-HX&huxGMv1&Ud$M+);JMy`Q+J)cgkCL+to#>DI;Hyc?qT_BV)}?=p9M(u zS%6gU0I8t)7$$YuM*wWPeIMcArs%M0wb54Ut*4=_uhKToAx`V`YO+zTcuO6I9(+a= z0_psCm*mV|kf@~=_Wx2V_1~*<$ik-jENrUJ!lrtcBegyw4cgQ6a1Z1a9C|g~gch5_ zt=8$)f3MKv<$C=r<2pSn{Q_F13@~)4`?Bc{;WtN_pownJr<;s20lk{}G(C$QO(Hh# zn%t^fjG~qvVoc3E)Fh%}or^=Jrbi(OyA-NvdR3z2PhA#9%C5u54Kb6=ca%6@As}AtyFi>R#4yFE&x5;{`?^t#dPJFWpxFk8OBmWv>f-ML-_0fHf?Ya zvwujnvY=-LhDUMG*6Jt%ZQU{9xcc(4F~O%mRJZG$XK7WCuK2{&0k89>s-K|eiL1s9 z#I$PLQ}x3q;iL@u9+Pq)r5hFP(yf*`aroCVCm!~?UUD=?hj|4}&}Cn(Ft6@*g;*83 zGSgeM=^mV)U_&j@VOtaQEXFLe^{CcRDE?oZ`QRW7rQEbwW8<@P^~U2_i<)&GMqK9K z16bERgOe`#1ec$+tR|P1wL+{qy(Uhnco4`f7V5F8>p7A_U6tO1^br3^AReWt-6Fy>T^~HbS!0eI(z_)!vA|>#H zUX3*92OKyRZKW!Xwt}uNVIT0*t%rY1G0R3B3>9S7fl<*`s^mRD+G6u#ykvbUfeED= zk$U4`sA&ILN)~JitCG3;B)J3!OwE$1$woQX=o)R6rE!N%$wX8OE=MZJl}nS7{z;w= ztFlKp`u^8g3;4m_Ip5>jvO6UCySymr*0HTIc8M~}Qr-Jh(mzj7bt+_zVb!BhQil$2 z5;E=3r9e%}wkO#-jA@ddb&-QE;ahWRp29y*b3uJfrn-~f5Ch7zavXTX3#>p`IpWs| zzta1MV0BSmk_GXPKg91zm4$O*bJS`*f=r z%aS1?R?kC3^p5yBKG=%yuf|mG#TC=O=q09oKTvQ1(2N{JHLVxyJ7~=~plY^BLfMKS zT*cc2hgHpv!i+^00OrEekF5c^GAP{V5@#7p;C$gQthpws901?!jV%DWBPas(g$7}# zlEk|3NY;#%-7!3xzr(ZUrsG>h{Qt%6rm+wOF8dCkSGVsw9EufXHp|dGu7wTcsdy7} z!kN#K&v(`PDXKeM%hJ0Rh}E(ui2s{IKWVa|(z^wT`9eOn}9g>(!qM9J4 zxeIQ!z<@g7i9VSDRoM!$+T#Q8%eZX}ru{@QO;q&Bt zTRSf0u$;{I0R~)UbS}GipK($2@rwfzk4vfsD2Lb2Jcmr_dgIw zQMmM|6}hqEOr%#X5uET$+16(0c~2qvP|t$n_V1q}AQsP{+wtoMbs>P1lBMq^gN!|A z|2>@U4RYD-QOI$i;O{^vL-5Z43if-{G1$95C*-y>7LWx(6%K?7hB=qw6m11#yu@UH zP`Afq2SY`NRTGT0+B$eD+KP31iGFi`UN$RR!Ko@d4Y==K#&69R-;BX|>(ZN|{IHF3 z&mU0F>QJLSvuEX=nP;-ghaa=&P_bqW5Y$+F%GFr;L{ zD(Pr)XtoY1q2oSD{x11wa_)4UzIDk*yW^wIL@B*;D~OL>51fAa#-E--+)Ah7t;2VY zxO}!->m5Q@cLp5Z+gTf25((@QID0? zRgYt7ogRM2+)wg;Qcg$nO5fY5w^{JbHm7(FW9i-`=#4GC=svV=0nOYTTDL)P=8l~) za0T%h-->MRu_xaBr){XPI1m?(?LU%cT;*I)67tZu>pbPAZUv2TWXuEk$j9d5_~qY| zSXhUybLN5kWxR92UR>u`U~-Lo$aJ$QHE5z44C2^+tjfcx8c%eB{DX5ddYO zH`dEVYjb~&+LYX&haqB11>C#_- z2}I(^bX5pG;wVW$lI!EhT!*Y9*z&?$*qW~7L)XY#K||&=bouvDQ-n46lBC=&HfvNr`;a+*Gi(ad2c(N=1a z(N=7o&=tVv19WE(I-CmF$mV=XZpl4m6dfWf;t8$-!?OKkzcUAHOAAY?O-Zv`L02wn zocnWBuLD~q=KfilyF*$gh)GZau&grAN4qr@xUa`eu)#dDa#z{VI62WXPmp!G(sSuh zm5H7c&!uGitoF=j@>OEq%dE(`bcJFoJgWxJZEfcsxW3aKF0)IeIi<_;S?QM52b}eM zEdLLS8irs9Dy3?b45MIExza7`Zju;0CrG&z03|}t!E=(H)Ge7lQyT1&nU?~lJOM5d z-waaks$b$ASvuvG0;w#D&gJqHOV{Gu0G6jMH+OOHR|q1Q`r+`wyO<>eLC`=czzqoJ#pUX~mMB$O6RfHP1jo7Jfj1`Z>Fvp$>C&|n zOlMgRs0sXKOR$1gj3r-OYdunu0^ zu?(xz@jrNN?g;0dzT#4sg6x10XP(op#3sjTiigXz@j*cltNM=H?>+b!U0(hme$~{1 zzS$+dL|dr|Mq5Fvm#__B=k~BI7|+E`&;2>NZ%Kyv5flfwVz;s5Z}B4%w17PeWPH$Y zWFIGO2+ZTicu-c_0vSiR1+px)cytHrc3z=Ls#)6_0eIX*u>KP|RSKx%C`ryPC1##+ zo7Bj>B*rXsuC^ELJf>5Z4-@U2RqQx-0%RZRC|Q84M|jWS$`(t&vJ^MPuf})T>QX=( z5FmCH&2zZxv5)#1aFf3O31W9n1pYWw-r(}^4CiT04wf!J2S7n=mN{9lLG($hNU)mg zK0!>zC^<0K#4HN7$7M>^*S{eI$mv`?`y_s(bn;U2V6Hm^G4r{sG9j)6pHT+rqPG%c z2AT&BQ52u!w+%FBf1`+7Np=eqIip-U)mARqWeA{XX7KT@u=ZFKbY!jsqH(Jilu5;v zRAE85))`irA@m*K1FPM#heD|qyAq&gO4^4c?Mf=L{)En97>6CyxGNClDPOB{Kuye| ztE?)l%HcM_u`CtlJ_1(&XKs$bm4GznQkQ;R+-)U*%~A{df2kGw(ReF1&AV1-ECYM0 z#T<_4Z* z6H8f0Pc?z`ERVubbae{XO26*>-!x@b_iE?tjNgXgTNpZ|gFpR#T% zNzPeQljP(~c1{K&sW{KS^`uSEjL44R2?nkNx>=KkLvN;~VX-JJS^;n-c~*f4hBME$ z0642`vsJ=TShCKcz}q$UvZ>|l(M5PADLAXdY?AK+?y>9SJ*;f_wy6btir%gu$_~}X z^OMGgIchXaUt6gwDTR9a3oKI*9FNa@ivDT+2!=Do?I9i8D?xHze)WaFKl2&-q{SfU z4fsNb^S{R6<&d2D7S>y8#T(nDakLdwd5P*kZ*Gt30_41ig>W>Zz$R)_fBkw|wu0Zp zx#KwLI#1atm7qA#ConS01Ke%?^EC8)NcdkRD9(I`g5NkYnv}pc3uLO9CHB~`T!&vJ zVM;d6@_gBzT!%an4sHu%F?C4djq8oHCWwq9Bi;mpab(<^2Cfra0N}8H!O#!*(QdYQ z+a@_TixLztW|@*h)iPyFE0SaboNr}HtQ=eR_yt#N8`iz;{B}6p5L#VHmW`7uDEqYB z1bA7dcN+wZmSniT6zGZ0=xuSQM_mkL3!zQzBU9@?^UH!Nm_Ugf4Mzux|eZcF&?i0-~I)b8V|!}wNmAtq1z71 zvMP$UlG8{bZ79O3A@f+J3AS##x*<-tM+NC2? z?a-K|(fQ=I*r!8X_NT*pZ(~?^=Dzz+5~frfEs97oWXuW7bQso-KrPF2QSDs6(?~cf zikU@0vwX64t|v|!mz0=mJ|)tlz>-G4CMKl|T;k-3wV(W6?XZ&N=?hTuuQ$Gg&w~ja zPQQ~-h*A&Y^LqMVAe}2}m-@2804vKB zi*6R_hX>B=z>s1PGM*C8kEz-S&aMUgKyT>v1g}=~um9&c{58dFWGPUG%ap9J{~|zJ zR%?M?Em_)5rgv(%g);$gMpNiTDvS2%QUjn;JNu87OOeb@>}ATHMKl1Rn`Q<=)RzyS!+%m zV3=knxCkrVu-D1hH&0mDw7ZfhZ-WNFnM&1v<^2pV(W6m7=8cp&yi8Z zG1;ZB>>z174_v5Cj!A<8m|RJZVBcB*ldw%m)=In;?^EKf;5jb=7EsCU0oLIq!MHBK zN%`Y1V1_W+V*7u8NMe=;gy(3~_%@rb0VNz8SpKG=(Bxo}IWhrA&TqeNJFL?OpC*1GIX;6eLBIVF%CFN^T_b=5cg4eLz&UVN@W<&&sBuXmLdk=& z*s+4RLnc$nTQQJbTy+gFFiVTtRVf@b4u=@wHcM(TxEigLP41VQR8rk zWdTzQ;uAOxQ>^$i2xy6tKM$#34PariN#-j^Bb7 z(1|_yFq~jh8g}Cfcbw30h`n5yHG)k1`c*KC&}s+514L{gln$JY%k((*A7SY7wI7)_ zQj}-}oB)$nnPu>|rSuxuY4L^5nT_BRQ#{ZmW+M>A_bWgMchD6$#}JgJ)CffJ!si(G z@Cz`CgQU%i4v>xD6V&wz=0DnZ{IkSBHD^wocWxkU!y7wwzv;y4X}xu z16sov1rA6426a*ukB^^*KDiO7KtOO#>lIM881 zo|?9i@B(?dm#q+CFQZf(-+1!{N{W`hV|DJT8mBU}X%=G+L*@Qa84fU7RM zKDA)iC6KQXoMB>tfI98q8do>dSO0qJb?E>22aqLry78Y!GUtyVXwN(zYjAruM$(%e zjVqe*^GEA+nr$TA!rZ#uY!7vw_|xtw=-rIQC0(5MFTq7&bj#?ncT4QyHIB*dF?-o-4^kAW3G^<=IUlFKmCLQq``Y8lOf+2jVaT&agc<~ z%&w%Z?(%Rl$~biCb#~f+{i-ecC&@qsf55?US3d*B;C2qXHYIO20y{Xe7ikKt z7DvXtu^!;NEc_a#Z&~a}E`IPP^~lGm`5pyjaAd@vzzWL)OFD+r#%qZ`sepm8A39uQ z7CY>R_mpeZxD<>zZ8#+1bp8Tb>)=!Oo0sUkCeQ)g*NkojJun}1XWjP1j3uC0D&e92 zoaVx6S(po}1dFA58U5V#jXSi%`K#2Uq6xFo5lq2p?_=tX_jt&M?6yBLfB6We0{23n zdT0b+Sf=DH-ZCX`A{>*(3-Rf;cx=d^BwLmb4#7R1nm3;KJG29Z5(?S~^ng>oogXcP z+F|*;e*q0Bgt}~sbMyO;{ue&iPLp(!Yz2lum&znTl&ydfR}-h0*$O1_&4W)re-A6p z__Rovwu7x;5?Ddo1G=?hlWv2VQLJpGdqVY8b1 zbvY8X4zZYTVLhc*Iax2Q!5H^}uLVSLbKq+wiDGVQmw!*pvZ4JJ>cGl9Y^++htLwBg zX$7&sayS+C^qfH=-S&;q8e4}|SSpt7I_=X^XZ+kZKTKQo)*%)v#Ow$?qkl~t2vUJX zFszy{ZT({7bUeIDl&q)uDG5x0sVq*(;T21xvoE~2HS_D;`(P7F=uRnyxAK%L{vQm( zO0N3@vMOx<&{3j(%ZU_^*)e;Ir<{xZe}A69qSj?mtaQks>RP1lkVsicYkWGG!Xl>S zLktPj+h1awCPm>^(1}Mu1y6UVe}g9H|Nbj6AjuOv_XN(j0!d(@o04oH+tcQ@+wSTw zsY6ziTO{c+vz0eM7RWSMO-wn}Yql<1Vq)Q?vux|J2^id_E3uaPJ)}h$$gN@%SUQ+F z9R0ZmoK$RniuuzzQFH?F?@m8ty7MWv{%!zWH=aOm9@S5et2wPl@-My&!BcL5e{ z41O_=;D+ujfr6RKm@wZm;JgQfD?5zZ1sWZRTY)Wp@dU_^`wtL)C}X#kI+1sNhb@6! z#~E5V06`Q*1hBx?b60+DU17)#=1F<7Edv%0gJuV0&q{~)@E&$yY*;VoFHbtRQY3O0 z@s7>Qm>gu#ova*%<)&74?%qJBK~ewd&tD}_v=!juWuWu>yW44afX(y75<5r?H8&{lGghamZqi(ooq6m+<=p)J z&EL}KdSe9!{-yH8N#xoIAPnUzeYP_5uRAIbEFJMn~`&cC}<%4_rqjxw!<0p&-*d-RVW_*f#qwh?4gdUxNf) z*(I1M&-~N=^cfMWIxJB4pK2P`c+52mF<$I(_G3iMe3W4VZal{t5!ffB<588Y&)Ev$6W-u*cqAN@I4<`b;15^>89 z#OZpob?Fa-w9Lc6;EwxWfGIwo3T$C>foMT!$wvm!7Pb|njGtEU3(#9sEo|>{_#;|j z3DLK3T6v!1lm2B$u6Y&>upsE8xUE1K8$b0_R7>5n)xWq%6EZX<8frU`0lVg z^1S_@$KSWF<8%O%zHnw3OO2cLDL^;%rP_&h9Q=_eT*Sa(((U)Ll@m9Q*jkn5L8Cm70ubOZyx0UvjJJYwxNNlm9Nr92b%GuqaeUeAUx!QXp2A@$9m_h& zcT%!FkqKg`WZatr3WKW4f(yGWxUkED3vulwb&b(^WjT037Q^dB@Wps5cJT9R6^Jq1 zxq}{qLUTxDv{jZtyVR=aSXql9E6u9QO0((&)Lc+2Yd@@30XXM77o>B6Ox<=+1ug|E z+A3>v=P=ReSXs93u+r#Q9LX0%&FY>f6T~#UDg-@U=-jD$j7gTEGF*hEM4C=;(}g}+ ztxCorOyE+?>uTsD51pkx2b~7h=U~)mD`@kwK>%EO`v$>bromwaJe^-1ln>PjkQ!{l zDh)P?d1cD(?Xp1CE(og1Ky0AF>9Dben)EKAET+(2lFQ}?y6f!%)AW*P7H^dkrF%(1 zn;(moTrW^vuu06~Wt7-aT$;pI!Y*C&^jT?YeGs!_-hzOgG;!`cbivR|wcWgS+>*=6 zW$Ru2UC=0kXq|{6wisBmF4t|2HyI`77RdSZ4xx*T62$44F_#e+8YSipWRzH3km(2G z0$H3S%gwJ(R;A0Go16Y2WrXxWNbZ=*T6?YcTe!4gd%4T+ih{AqCtkTdwvFXf$1&_YPj0Q`gn}x0QlCl?AEu6TAoV_7?3dfZm(av5^v+M-R z&7eZCUeLG55CNsL5(ST&cTrAUS@2w+1<&p9 z9aaysG7K1g`y1KkbSWZg%hoq|ICtvYo03wQ%1kMgl9~+??{2R`K{@n7eP@{3kQq91 z)d`dq*>TRf5NmWE5_2~NP@D2E_rLG`jAbMyg=28r0%K~P3&d5^uqu?Tv#iBr-z|MH zTZ+#fjp?0LnZ)6qo9qDtE}d)XXcXDWD&9 zKB7d!$%YJ+Q>(ZX>=7keCfh>ItVHeFx!;Bd1FF7Zo#k~_5UbWwUI?XBec4i~$80Gm z^f}0*-N)Zi#SLs~g2`qdhPTj=TI5ti1*<|4R_T=IiB;tNOaqFjdQ+`bDfwZ93%pfn zI0aLqb;@IDLGiF8k`Ha^QlcwwZ&?xNjgJAx$#i2OBBhC2bV)`NJx*WjJ_uC z44q;xp0kUZq_h3XfU%5b4I4`pdE7G?Ha69YsWq8>#^a|39)sMf27`fQQ=Q^bXCT>B z5$RFRGjJ7K#`nJkXCXI;Y5*0ZuXis(sK6(7|R8S zbB~&!NX`|QA;{_2Y2K_<4O+He1zL8Wp#TYc6oxhVjAx%_i)eyG6=Ke#vtR|b3sv&HB&HaZoQKfFnEbD9TKSWTfuLHAAyz}~Y5EW5*?_a2rvDIPwcnnm{}48G_SDn#A404; z?P>ZCVMAw6Jx%{{?2j(u8Hptg3LC7!x9Q0AbJdts_NjlUS&g)Bz5n2vlgO71KLNk) z=2or^+c$DI+nwM{_GrMC9t3~pvxSorEz8D!@3@D zMOblD1y?mya8)C4)qpFuR!Q)hr_?Z;l#jqtgZf!M0!0ldg=g09JSE%j&v1=g+zS14 z_!KTGEq7w#jigy6O4DqlgQmGVf-VgxxlVzW29yN0H-ak-D5Z5))^x`$V=G*F+*BS} z@OWqWc5hnanOYk%wa^56ao3pt-fPg1sbLdj!t1KsueBjl3r$q1+mNXx zlzVNrk_}m6-5DmeSh=B5!^&Btf<`U4&~+6uwKimG$PeuotnJdVA+bni$&jUH)$Bse zJjuc}s?Fh-xc>Cgd=0aM{+e{W>!_AHs+#hI)qZUtRMKB1lewO2>n+P*scc)Y;umya zjYO@7(SfxcTFf@9n#`6`m1aw^Zrw5Y??s%ZYRo*Zn1RM6!f`g@w8Fb+<;s6N%*mTV zzm0qCahNXNMvAuq;te+*$O2NK;>F5!YPL*Y<(sRptaVj-*18JIT3dS7vK*>ZZ-Ccg zD+YCq(w8^m_v6?}vRdG3(j%N-3R}jY@!xC7GDztyG!6rDrYk z_MqVl$TguC*1kbqi~PvZ#U;lg*j9!ao`x@0{-Bm6IqPTefbfK?cr!WfcaNtgj{Sx0 z`?Vol%VJ^EUaXvTy3|cUwZ>{b5!(W0{llp#vv4h7)`&1}PYRS%66>l=tF=H{Zsq=a zZ@&U>IhFrjN+F2f=MFfi`1ssGpe=94e=p6lGM&nQ?@I~f7AOpp$riJK zJ;r*W`4`z_Dy8_02s${fG2|ZFj5}LR_V8 z%eYGR!cwn#=KBv8ui<4qP5;5YsDjDXRWRAwahbP_Uk+{}AFDE8ZCR)z{pANE2$sx$(BKgN%L6{Ra)9jh$cYY5EW0 zM;BNLjU!w%ZfRk^F>GsMcyA2M>O0QL9Xru9jPgK=aavN)IAn?uR<)hmaJy&HrZ3Gu`7v{hBE=>R;r}E!RDFyt8-D#;i zh7=8nx$ji~(Z&FxVH3hnmEP^DtK`Tu2x);a_PAq%gnLm17;Pk9%GK+?_v$vlDA{*M zjs|01y2Fc>#lEY($D5ItEplx754ulgV}Q|61?BnZ{l@aBhQvHpEq!W8EFD}@F0*0q z(0t8~3e8HxQK5lSgbfa@OG+^?sMkgRLAMNT3j)b0Koo34@by?yy8mkaKfU);XFv(UnujTgQUtQvJ4u2qjrEfGAr^O?H@8 zQr=A7Z!Oztx!3AK+@I{p%yw) zWzCC;P&}>#OVV_u@<#N2Yqwnu*_JwW20bL^@nHDTkeF*W*l0-1H49qw3>0gQuhgv5 z<#ae z`E6Bd)7Da(k{&iLpSsThkhb*r93Y7?Sr-Ln@>Pxh-U}v)J$YLiaECKZnwD+_idvXZ zZ|$(&ux6UWZUvC?F8c4K%L--;n-J#JRFgxX3bfi*fmYip&}u6gOk+x6Ia>zPP-3)x z+E$@iTf26B*aRy@l9*i2{(G-?%Vt_=qDt>oAl9}D#M)MYSX;|@niqnBSjoX}Xx6X^ z9$JeamJn-b9@fl*#IUP=UE6=q0(a|>)nI{3>-eo*8a2;`K~_C5(0_2vhE(-5{f7|i zL~DT!^Vow95_+^<%xGfK$@xBbl0jnCscfci9hVw`KLQdtm-`8}f==Cc2rgwOa%+fG za+Fpb=-V1bm24}(s{4!pSk&V)f~riVt$|ZnW_7ZhEybq!)|X@IdA)x1^}ifSUgp;D zsSBQ*I6>K`!~WavfWDmR*cv#M<$;&B#6w$n*aq0Oms)u!21vTxepr)N9B@sWuGwW-LMy+hx7Iv0@ z)E<6^d@Vq4ZLHFe)LIGB*a=ERwQ-A8$k46| z8QKXl^bxFQA)z*o^WeXi_7@OW0X27)Ze-mgr?e9^h`PzD7Z3=~!JK!mzx%1kt&5u+ zOHkVh3Pg2L_WjOoILFH}Z-alFvcKT0(+cW1K>Kuy&Q1Uzc+>{>-#wjwjMh=$_NG`_ zNACmxD*ie$-s!fyok2fIFCy7PJ|Xwt?-TT06%w=yBK5)0l8rJ4z*3mGoI7w&Bu_F_KG>c z)A6^M4a6WRzTU8sq{lJPBwLEj%niYR?+qhhlzVsuO7eJkHMAtjtivXlx*c!XF3%r- zEh2Qx#3;kf5wT$=M$FZ+eZk6SC^fFlQL-}})@iI(sY}q3VH4azHo$pGwZUeKo1|jl z-fUhz2&3CoAtXCb=P_xkWIUb6h^dc;o6M-D3M<)pM$f!tsuXIV$y^syp-DsY)E*P2 zNFFbs$t~EkBLNR@De-*G^M+|`sBOm5X0^w%xc{K^YrH!12pbPrC|Ek1DuzcADp~4( zzl>SKVt(h=fmjAc$K5fMMVeM&GP3fC`PNxMvlx(>o14D7zOx z1>y>40wiu=f)nPB|h`Hhw{{M6aEPlmb(5iB8NKKMAhHR!FWH{~Z z#MaPKcv>gm&PV=GcU>J`Rzukw@g8@8qlx&T8 z5vjwSt6$^j9Hly0r!-NhX6K0|od(mOSs`0q%>uEi@4EToTks33_WR(rT#t09!gdaZ z?QrGvg498>Xcl`nuQ(O5? z!R>Z%xwMQu7&0@{SwUlF1!!oD*Qt6j5GDdxvjXtCYCjA@{6_fnL7}N3LVMpVO99$AdvTSwX2* z=lD@)IYVi9k5j5Z4CYxNX1h$t#Ev#4Wg=NM>0w|HkavVME2%d5`gQV>?aRD=)#KU$ zC+~tPPC%Z7E)3*ZsGJoI=W8}a!ZcLJDUD|})m6ZjFsrz>C~lIxoo=~8CS`$kuxuQ! zpE=R#j8m$p?flY^n4N~5UvgsRfsJ%RDRiX&AYjhlz+%Ls9g>PqSO9kjc9i9P5HM$v zST&dtwZS;vO%^RdCIPQ?_-F9DoE>o6Gj@zK3X`8?A!5$pFNtV*7>vTK8Lum^tzQ=X|HIK*k zs?wR?wRf zwp#;j=BhFeni^lN05v@WBHPyTZE|XDE%7E>ilbuBPtjv5wF{Yt%m_dKNBpqg%s0Wt`#cw%=`tJdC^7S+>KBwT zcLZ!r30!RzO4C-MG;I}1(@Mt8l6VcJnHR4BHKR3SbQb`=HK1mp@#M|D->vuvs#mjj{&6rH+ z40CJP%L(h<7WH=PU*eC`C!-aroF}P&wSgJP3jy1$p)Sb~<9RiZ%XG>6GPX4+X1YYw zR!Tw3_c)J3P>;uXfnMeqm1YHl`8quE{n^yt6iIvfOim1jz9hvUFigG|RpC^wmznCj zM$v39)MT@zIIc23C3UqGJcemVUy?yHMZ>GbcVR5?Q0}wxTUyOXzRV06+u~GI6Bt3;ad)pe#pmJAqL8r;MQ? zxWeLMJ4tlWc4=F;6ToDqHWvOodnpxklG=h`eZqY23g3Lhrc-y+-01`)nN({h zP>FV#MV-u9q3z_(E_oR+8-GCDH{S>WornI84qBc81AhO97vGiJu)Xn1|zMXP`{BS@wJop`Ge0)AUZz znR!aH!kIeR3Ws%;#K+FinK?e$BTkQ_XZhTxFP)$>LrzEz2F@hqY(UKn|5e~jXW-0S z{c4wUl=FHd?HEQgS0~4`c{!^dXX-Tk#VLtT!(8I--3z?=ZIT`VTAm|Kj@tT=u)z>o5sJcsc|$mgvF&AA+Zb|Mp*iTymUoPXQ;|>bkQoh zGe~88%zy!!ugNJV99Xgj@E0YwrgLCrVvKRD7I@`*&*=Ag``!BojE`o82CpQ2tl=!# zQaR09ya@c|9fDuliO%2`r=%fZz)O-7 zgJ0(A=LH^ys`1R6r~;i5U0oMD^K(ooETF4`U%D#zr8D@&yF<#dG?)M(&uhSnaUSxi z{f`1yc2&31bcV<{Cn{J0Vut!M;(6s7@w|RXAO^n72t=}9hTPKV5|Cv`$*t>T*2Tq? zYLDmkeYnBqLx250betC3mhm#v9YIx~d>aXfu{41dcx8;3!1>N@pBdIH#Pga`wMw$f z_Eq4ur^9EkNlTz~XQ?eLC`JeD6w)M_DCl)G74x6~im@(^U7Xm+?g~WPNqWogzwjDX z6Il00(&-bRT@K%NuT12ma;0(KTqI6aZxgX;oX1%@lb!3BG_dh|#ZVAbt(S>5l-=maHUbCfi3Y#qj^*)DWwEOto zT_~h0j@b2xq~h3(Jz=E~!E$xz@g5u(6Aj*WN#^NQf#dbRRdi@@&Nw~u!)i>fe9;S4 z>~brr(s6q3MU^rQ+8J+!`>rl^oSwN-U7w-nI7$+_4zCbb`Lw4GiY^S)8LyxCv6D*U z^u&*(-JtE!vB&hP>t%Y?a?+#>^I2|1b-gTA@yLl@XSB>(P%SU=Zz#|>|Ikh!BXGP^ zjrzFy5&j*c2$?0Ja9 z?9P_-DHKr^$1Z5xD-+DL`0p*#0!$T<9!1oaQ$;c=Mk_2L)$(ce=PzN$`ss+tWURH_=l>r(-3cdI zZ})5WC6BHHkH7 zK(%(S_ufFiDg!0!u5fUte4SZg{XIVm@*Xj&YV#(gA~v$O2aRHUlf@X!)%s@PnE3?#R%b1ztk99JT(tR@GJWQxJp3{$;5_O(Orw(3+D1XSU^DY4a>b4O zibG31s0(6tcXw`&%q{C{Xi$i3E9$%IYbYp=l6J~S9R9PrrRj>mE_XgJ6eSI9Nk%S% zU9zRr31&+{iT5Z8oaON-X~0XiSyf=nuvV)W@iA+~{{PeAwW2^dUxca1kob2*%x*Eg zv^7*_q=~{$qj=01KTNDHbEM|NeB)TmTu&RpVzNDL44qlvhYfK-@{JusipN!M%c$LV zzWV__i&->w^r&5b5iTDonAhVUJ`;s{Z8nlsgMXT#WZ${Os^KvsLO@%^&>PFJk*>W{ zxHT9?$W#K7PXkXpEh__E<|r4H^#QS}1{evb=hau>h6A^~tzOESpfQMLL|k068sGx4 zYE61af;CL#dc=S^uHJ#4*u@dhesl8B7@8s#stO!OdBRbrI8++%R$Q?9jlEuqw~b}Z z%<-VHZeF$qoQ#MIY|v1&t9*@(a)}m1p>gl&fDT3~`*Hh(-UWbNCJ2pX&BWP~>k2E# zSm+;{pW=@)3v2v96DAv%@ZRm_qp!b#M#{pVF`Oi@^A_ZhXK+JF&mRh=%D6O;G!hUK|P zoqU@5&`5d^^2sz77`xXf} zx2=vfD9KM7_~EJ#GcLmS43+`6z zpK!$|$g<={ADWsp6_irPm<&t;oPd3>GX3+CoQt+#lJ_VIfaLKgDnJP)5`h++I%K(> z*FXM#8PNupOmh}o_uL6$GS?q1#YSl?{SUFkF>Qv7z2*!VD{Y31Lz$7iNxZSAoF)^v zvo3&3NVYw?FY7o>ghCvA$^T&)FT;0%Xir$NGVJ zFLY?eUcdo$$dHVfwTFLyiu1x}pbGIYAO)zkAQ^}V*Xs}d4ssNGjy(NHUK^M(!ZCrt z>j9vFwPSbq&YK7zm_U_e=fm0ojaUuF2KDU$gewYAh+NC7MXUv^F<%}PM2+my;I21u zt#jOH)ttVJUtv>(@U9Ka=n$PxM@TC~7hCZwFhq;YwH^q11M8U8^=D9DgkMT~TGt!_ zI;;)Z$OV$Mp&Z##nAN`o$2HK5hlArcRbOd)(c?fy^(wm}`^^#4utY>eq%8}KpS$}dVQ27D~j>k=&~Rlz}q zQZ38bwP7FQ{E$>FK_sq!Kfz6(cHsgxe^SEGgGI!*JW;1r;GFke#~$p z;K%2F{nI~g;f%^t=(rA=759CNQ^ftaJ^^kEekZ(PS>mh({1~l`rzI#0k+*}v|F<&C zBnxD*b+$opxc+Da6S&Eze}i#x1eSD=p-w?ea{$W%S>`#Ttmu2`rhy{kO;{10#z2Hm z`!|sM5_wUP4oevG+7d(J!pHkCN6di+Y3;ifjATsUw4z-bOwv4I`rBaT9an5#5XT|` zj1sxlf|T5cN4a|gmx`MP2dvVz>sl}p>U%uvu-bnu!XrsoEiTeoFZ(}1Q24k#S%VQm znDN>&M4lpohN#wmf%IZb;pas2FM~`*>C361!`iTu0AsFU4DcCj5CjUZ9Yg`=({A*> zh+7+)GF>8SE2Y#M15>iinr<;_LWVI_iknRXz(4K3TE>E7E2H!@ zb_`gF;d0sFQI6PliAihI{JK=`2Z82^*||peS$z=03TuMvw(PU64M~aYl-Ujno`M1U z6juX<MIIIOsdA5X^uBmm7v+*Mmg~r3AHVsJ`Z-umJM}X$FV_7I8#0BwR z3%D{W942N}Ldv5$BHZPPH?e-=G~y_{cGQOzldGZ zQ5M-&oh}H36*@g!B`L+o%FgRr(oxX+=^hEtGNgo{3e>w6xCH`*k;d*}tbal&fm__J zp(`84Yk^+y&-*W<9B9w*#!sieqW=Dr(P1q&uPhR)AHAK!K7Q;+;W%PSLQcjKQ(}50 zV<93I2Wp38OnM+@nXux}?luxvF74-DkJC8?h+Xr!pjSWv`K?iaCw z%)E`Q+77b1>@az}<%pMoyAfpOTVMUf>u-GM52&lm8aHzO=Zk>^z!2ilLeu^clm$}W z2pj{Nr=R}}VuFi}aT|yLp~@QrWg^lCDsb(-k3Ya|%#+SVNE?A=KoS$(_BGT^rg>p{ z#?DZ8DjshbsDVtgrBs30QV5JM@pywXKo7^`jl(se6AZM7s4*LA_V2yg`<;zoH5d^G zP@Z=9xa~Tee@2w-D=}nZz8DkrTf~ND+Lm-KPz@TrfH>Y2d}=?2lAB*qwQ6j^rEy!P z+#7~!J~3ady2z1gSqQACp%A`F-14ktNXg>j1;s3-z%$>zVQM%Q7kBy`pUUEQV|dI+ zk4R9Gcrq&}NjaIPT+|ea)Bu?{f_OgQMCoRMzELBf%+b`&T5)&U67U;GG5=oBx1P@cO3J+04kmi;ql0cT5`#VPC>se z+zPZZ!v<^WgO9*Q!`sGG690{~8(JxE1XQs)L0LA0Hv+1_^5eY5@#%j*|Ex0#=Nq|! zsMm*7ldjfxXQ2K^qy@5?s0YfRuQwID{{N} zPl=2}7*vWu8&jaw>KmW^Jh^2_Jh4W9PPMUD?C(A=3+9a>CsSM*U?N=6SQe0Ev^m~C z?FqhD7?wjd5akiJcHF%Ukz@3pX=8U|NhKo}tCwZNMv_YUc3BQAc9ZAti9L34@7%e9 z8Nz=AdUQVjnTT2V({(z)ff$3y+v^B3w@L8+e@l%9Z_G%?(?y1F1H41kvR0OQCGZA# z?7oFR;Jst>ux*-msal?*_d*wddm~vQXu5&@Je_|G&0_`FMU@maEja{nCRU>Ih& zwwUzN!Pt$V86#r^^c2Ay%~)(e5DhRBsj9IOx||RzV{?#j<_#knuYhLzkuSk{pAn&M z;Nw#XO_niodHV1lUw`Axhz8+Zii8cuX!of0wD}s8@v_F{xX2jBD<9>iW1h~DQ7{aI zj<{zcl51B7IJMi2%@i32H<>_zP)Xz@b=}Q+!44@=Uhw%W<{UT7diysN317!Gv$2`~ z4Ox&J*wUT_ANf;p4mwbWKp`TriXh;Pp&HHl?_Ycml%NjTT}l%5#vqMk%yLu%LwUO7 z9r@ijypb%0Y2rOT0?BwhJ{p`6j}2en6*WdWyCq%`wb&Ml07;B)&S6Iac^JV)(B4+0}E1<1` z7SjUa7zXKG;#I_OLdb~!c-4`DCaV_mR6!Y@2?rgbEB*ubODl&0|S6Q-uS{ROvf7f z9Qp~OaBQ*IxU4=|V%Jsx3Z!wI4oK;Vo8QCzU5;hhyS0Q8*bpRx=uDq`Tw~kr_k{ak*z`ucOhItV3yA}B2Tjcr?lh+ zAj_Ak^5l}1ly8eyEBR77^GeFl5Vve8oiJxh*%BwUoZMC=Eo}|C%W}xeptR%#&dZnL z^-;c5)!48sr=&Ct3e1+O8XJZX&O2($fyy#gG5x3ciSi3szap>dP?q_QTJ= z(fN|CBukAE)7?N@OPNZF!GOkWsVbYU0v)$ipyO69T26aYOSH;Lqsq7qt<1KiRz5#| zBoQksgqT>S7(R%&M?+2V>LlwC+KUwJ2hTn=eTUntPGu95M9+sFsydI2?uI(y%4~5 zEc~4d7QA!J7EoprHvqSR-bO+#ZLjSNu#F45y7N1riG0!cjR3+O1GbpRB!`wDxA{_4 z9w4yXms!aUIPJr;lAS@e$u2s23*`8=uL(@L?SAqCz!ao)C+KZjBm(22)M6`Y)7JyA z>d10zb{GV)g+wm~>;%UBW`NBY1R#$6#pm3}vMsQa#Iy`2Rm$|skH-32UbZ;wELAP3 zJ4ske>w=Tl!W5QxlO(nYddi>QNgi9CE7kZYSJH}w^s!zDy?O3Mde-~WpsE7?b`Jb4 zu~Y^5?W!QZT@~cFt4e~~NfO+|06UTk60mPcHI@^%IIbMs8&e8fu4KujN4uRq9Oa5z zsY3L2mQpv`3fqX})=elv=o#T%QiOwdV}fNZOY+@fgof%<=u_SWa{9ER`_TiVlNR5%meFB02^VMfO!V-QIAzsfH-ib#Estr;3m^_lD4= ziab03_HqSQ$`9-fn44lux}O^WQbY$pVr1?mkMZZX|6xv1jz#SSdK)FE0p<6GvgM+~ zz6x&J$9-8Zla4(=w1+1hd&_3bGOG%_T?q_O=+ylg2mB&?jm}!{4LZv#)AVc%+#9?$FYqdOZC?ei?Ik@j-yOB)h3@D`m?sw8?SdV^)#)`@efwpM z%M!Kr0<_JL)lAv;j<2P#*}Y{=4!cR$x9jsa-8>$n)U9Z!9+MtEM3YL z$=<=T+&B@)EbTKLJ4?0&bG}ayfQ~&rL2z&^*K8F;wl|1us8t>>hL0@}FPSC}E(6CF zYJS8bEst%XX7$7i#2QhP?nLmhX*)JRY{&^q&(5qSIkD`tVH2$SDx_?0NLiM#NAxSF zTho?Z1(WUVtZTMARUy}4vU%+oIyNNc(P9Z|Lt@suVPOlz8ekWQAJMX%fL*A0$%;i9 zYQ@8vIbvIS+K`wl}GVEH$$qo_08rYc@lsTAL5-22?E&tJadn z#TR;|^BVS5Ic0cez7OnpeEspjelQFw*G0UT{4d9cClPq1mrA_}TnWd~&J8XV>Af|`6@MP>G#H`g%qE)bQyIm);S}?tP!u0M~03y6KNtI{a`9W}}bSVL& z@}(HLSQ2a%Fm5d*J6qYiR#H{llK;O-Lt0!S?qS1DSuz{Z+j^AT`r zjF`W`Qo40B2j^eXTP2gz%!JrccM7Wz1^S}`B6gPhqevUwt~$0^Y*j)wOiG*vtp#*}TM z$}JoA)brDS(6sbm*i(`*1EI2|RJ}bv{Rd0T(5RlK|BzmA%q11{#8NX`>mspgIone< z+r=hS%RSHihxAleu{}-y!9A_Qq7H^dCA(~(RL@WU!M&(DcX=>$s;{~KkiM&yv%RQN zwVK`PV-u{DCY4BA~(|@p148CgixN7EhVae|0gD#dl7;4p5 z*nddPRq8g>s;{~KAk^VtU{z1ke+WOS+@7ZY5aK1B5~hDJM5?c_|6raCk?Lvs52=~` z^XB$H#I%yMcrX+yIh-shD_g2cp#f0c=K?q$`S^O>Qm(ShssfXx44LZIAH@wg&wtW2 zatFhtvX!$k(<>)Swqlm(G17yeRQbwPrIVFc`CvN&Ia#^dN!o~w8#6k0aD*S=wjwpP$;4qC$2Hi*3KSIvYj%|R*p_iXqL$7XclVA|U z)zJJy7bLWHCUL6!=W@k)D+yO~LoEKSA7)hmR%-xO(tHBRy3b7jR6Ra7F~BO@tSUKM zO7)yAWw`W&_u`RWm2B18RbWZ>9NL;-kFCl9u8AVtBTKx>^7i;-unPEUA3u=TT3S}N zM~@E%L&v7a)zYz-qzv8V9LR1qH7Ro92Lmg<#iC^rm*x5uY} zmg+Ud7>%6H(6p%{#8_ugTFwwUL)KCaJ?srS$plL+*E-1un=T?k)3`9z7dl|r8Sa)9 zT5b$TL+T1{&)LMW0{fvmbvgs!PRL}4YjymGvKzW2`bLKtI)mPl5-=n#TS{F)wiG4_ zFLRR)X0g z;LTH3DO1qALH+auLnnaVfRg1eAl^JB>ohwN?R(|ciiMh5JIOwTD+EZBYG}C_aAizpLv}e$E%JPc2%%hR|T7O0h`_9 zIPkE?0byMg5Y~B0*I)n$W4aPb4giD77W%H-;ufB5_EK@`^zR-~+ z1E)(fI>)`{<;fu!9h@b0tZP8bY#7S5P_xG31!7g}keE&0vcKZp(eoM?j`SaNe`04i zR!`G^oXVA&ox@iHX;4x`XBl7dZ1QT2hZ^alPn+qg4k&hpTBWQHSztJz_-JHDDXeOr zrv~_b{1!zNQXOWQ)lhs~;q~vf`40AeA_oQ6QkG|l(S&;9A#q8B0kN9nkXUL~bIdZY z4tSvnwaeJsIYX1Z4r+y?NC$CC}N$lylcQ2bkp8-`8|$8(8|$jw#d z4tZv=SZdhF}9&hqb>6A3{*Y#cRQFvwl2Q ze0z2K^dv#PypDOO`% zoTk{ApH2Ss!BAkSxf1bjrIb40c;z{+w~EJyuSZZ~K*f=lj>d>5e@zrAZ#lOs#jIv} zqr6qc-Wn_m9O|5FN)FN~9TKS`Iv%Eqh_rPuOci0q4C+c1d3+c++BGo@xG#ozr5MvO zkSd}se5!~rmealzd0hLR{52slQDsj1%$NaQQ{CrQ4DCu4(W!T;i2D0f5!L>*7ZktY zm(|0M#iQ!+EY5ZJU+`w-!WNvJQPpRgFzwGb!B+pFcYg#n;LhWX^&@_|{>}g}!|EPT z9*NT6t)~6y7f@|HNROX0sz3EFyyM`HS@$frjB33C_L|>ePSIkYq1)qvqI2_wSN`SQ zSMkI(s%3=^xGi@ffU-)DhGZpGQAo6ewsN-4xvs~*mF}~p zPO{VpqBTRt`VHjsk6~%}*uQ)f*cnIbYP8%4$Thxs1MnD$S>*T)nTlNOr{k+%0@3Ny7~2J6!z-z> z5jw&Ki$zU)u3FXUNVV2GHRMHl1D;0d*@P{-YJ{G;X?T-$v)q5wHU=}zQ9hzR%c8Ps zS$%eA`*2k7bihv$4m}b^6Pb*mNY}VN@A%bNGGZWIvHx6h`XLI|;IA;qPPhy40?IfL z(Bi+Bb#Zrw93>r>fk)X=I?2kGf_dI21;~VYd{SW0P_|h$$80IJ%aPYRX>|K(!2pKv zvqJQHdB&NES*vMBXpm8|7ls{WOPP9SyCXPKzB_8W^Wt?VX`UZb_mEiKWMD@;6c_2$ z4QEAKrE~$9Alo5tG_C|@S|nx_e-j=B;Y?obW{+q`|3=tQkvh6GWZURIIX_aSo?KZ9%_lhyfi@COi32RMK> zdDjL(jdH?+K~ShgP98CB!<6` zZAT~4^bcYuo3#Ce#hCNO3ZD5m-h1)AO#92xhQ*)FvMrn1bBBf3;U&fLq#bjAXQkS(# zx|*(T#?r#ClVDgsf53o7yl7hdH(n|Wu$Tb&wV^}CWk=OAG$dSNgQGVXz7}elXjUK6 zChKFdE95PuZD8$%L3NJSUrL!<+ZnlQtfo)re}n2E#(4OR!>(aIw_W%3ul@wZY_Ms0 zp@3d>E^Z^3Pu83_4*sN;V4KJ;dI`82AUqET+>Kq=lyiq0IUr|OCA`~@?hS)I=}@vU z;3vzH*&K{$aB~PH0&V1`^yw}L2sA^clh7p31_@PeN8@yLw~y zDP_ikKsER0bWUa2x)E$<*!-EA7i0!o3Ag*#`rFvb8vwX~-u6Cn;ZnevbZD+h5!wV? za}Uip#rAk;wgjN0dyzYo@?B)7ipaVBEUXn6M65iN%@_dz_UaEg~>4@;+L%>PWMkrxj{xK*{|Xk^uNSZCe8%X?*bctRDLDx#WA6;b^TyWG(*mJFd`mr3jf z$YeNiG^W@;S_((N@tQFijN!;qa#@C4ySBIvLugVgsfwqHl$ZMO_6G;hp@_f|$9jt{i%!vyEZA?iaO?ODOL3{Z|az{t!Us~YGqr6 z7HthJT5d(hz%spRKkg1%?f(8H;O=ql6hXUN1CZt@Ys`9Eg&}PXLt5@{jjp$XAz_q{ zj&_KvoCMwqo-|dY7|7Q1izb>la1$9_8&{_8(N>tNjG2eI_m;jjkZDR*Qbf%>(iYn7 z=a1ieo~=QIoG`vNGTg$w*fD`%muapkRF~3 zYz<3lZZ`oT;lDY)37PDEUxs8=F3{Evu7zgCehA*$R%HZj1!v03Pc72B|5xh1hE}H} zK?&r9?oNwT5T|)cb*poAsy9uJzABVyYe_-Q6-m!-QgTX`o=%kJC{=gao~HF^V3TtK zk9;h{!!f35rAro2dZ601NMkk>f5&!Ys8gzldR*@^Db$XgO;t{i@z!#Iriw@xRK*Qu z^XE10Ip{xV4|r>D-(~7I_$gIHcWYck2q!cu2Jq9e_Zxsv<3(7omLxRQ3n^lX1|T)| zj13*g-x?qlv2yGOS@iuZ#!`hk%wjq$#QcXA^IJQzHWcrP#jCa)FZ#ASOdtCXTKR7c zlR9mF3FE^|s{i1~Z)jA~w-_vyEmh^Q<96?Rg(4-YTWrh2G;GC#Bo9NW+d(+W58#!`d2#HO>-soU@c5-evlX zuA#w#OKBGd(-($RYqF*8-t^+JrkGsA6Zx zRCx3b%aUUYuYEg=9GUXv82nB!srj09Dm~suR9Q zbVOIy?HqX8#_%YE1%8lv=ZQ>M(q9kfH~$mi9iQcyn|5ah+lKw3BksGZ^K3gqnsSk7 zC+SStHNh@`rw>{>^WS0SN#V z17w;~tuxDsy54Llw$UM1B~^H5z|3KrTKEL3WSj`}wN+nr@76|z5< zS&qHwR%l4kmV-1-qyDkb7)z?7LdMOhMzYdY9hI7?vx4e;`#JEoM=TlR&W_vR*0Kq@ zGcaeoLiUE($&I(sI@A?2%2iB3u*#sF-JN6>Ei%B<%0*%}v_)c8R)%fXT83UVI4-(` zz6_Ho^+2jL&K-n-&`+Vz^?RTTR2eaZj*{;Tgqf^XePCSGIA84}`m$7^(aH(=-U;?H zreBV`a)9i+*muRXupy-2(Zj=B+P8XVzUO;`un?LgQ`7S;k+Lbb7l0+rt${7VMw$5T4Q3HC>Xc(F+;^^x ztx-beV1=9r@c&-+!s~Q%rJH+WQIwOTz`al!5_vgSm)ImagQcfd&5Dzbr6$01qYd} zR}XKYiq*ij81L+i{v!ylg*R7)XpFWARCrK%}z`dHnzSrI^vmskaqsoLJ) zkExAf!ff}FjI-E5Hm*ft)?KI!szc0f_rC|{n*g;aK*>3;fk5c4m%W1^I(P^--ZKIM z_uD~haRT0d%5$jg-f)m+kE7)3Ewoy(r~-awaSdR6y0Kh|Z9tK&tu3##j7mQ>fv^s41?dUT=eukH-7947{l+eC)ug1ez2Pw3>O%ni1386@K~$wIguTHrV1R)B=Q|)x~{oXQlri##QE&GEiIaNgUJgx*pWwJI)(+T*bS$+7+;Qr=}K}^#` zL35tN=BlIGGtC?=AE&2jjyp_i=z5oZ)rqma-yb~)0T?~~ z-}T|ZGI0t8Q{TT!DH!s7b^vJS@!5d@J-BT?Hf?WD`9UoK-(kk}dU4$b^CX#++oG4- zsEWY?{w%k_{&0U}`*5^nGIB5%09a;fz}fS%C`bqbsuK7#m+R!dfw z;!{K9_;@4);vnfWqdF+Jv>)WS)+jNgR;~p(7!;J?hV}Lg`^AIX0p*_0m}|tdo3zVt z5G-hdA&Tt>1BD`ox!ofUwI_tJGfb7Xs}BYZ1qM0Kj81SP(f)LPABDF6ffmpTfddCQ z%GGNgG-Mxw4&5Exa~wF8sl>rga1Gj}yG{=R5K+5lZkJ8%8_#NZI(z`>oZf{;D?8Z- zgNBl$UNEA2?40`VJ*FN6FPfsh|9vS1yL^en2S7s)N8*EJ$TSB`fRC}&vcG-&q>ncT zgNU-i;FyPMF_((C@r1z`7t20>mu1(1vt{74mg!lUckxX9w}?#*(R*EX8V?2v1{caB;CyePRn%c60mkoq)>X4zy60*d6>Q;Q3?`VRtz z50+Rn-c#e;6#6{!dlLXL#ZXJ8xdG1zTd|gk3pygZH@-P48u&BCQb)ox@W+J-miEQb z8S>-9K>7DWS%{*?GqS{DHFNu*RP=*kK0QtUA;e~tBT@+o(W>}h={DhDkNf`uGxrZ# zq95!CR)b|%oQ!@7se}3ZH%Dwgf;BOWIePoeK&U+?BDW)D^i5e|2g7{g1*?cik#`pt zzumuSaeWZj=f`mWQD*g{`$vqSqF=*&l8)D~pKK|0!r4+#{XMD!;(0u(8_1JwmJRpY z{|>3abWhi>;G_K!$&VfIG?}0}Gh}>f(#Xo)00%*F-ug1m4|Lb-SIgZG2SIME9%5cF z8zXzS^wH3oqyPoEvC5eTUfPfLWkwOqBr5`T1t2os^IfgJ@mV}tL^S3*uQB@pXIv+j;6_&`>3Swe1MC%2u zYy~=@)@f?c3Sxp5u>_3tyEtbQ{`dCI1m+eLhg*S727)5|ycO`oMg@em?M=0nT$w?q zXvN#gd8Ch`!;t>d0c_t{C)l`U2nEw;GcKWI4+dX};28pbnvN|6%IRwDR8o8TIV!w-8h3|ZVac@p z+*;mD&bi?kP+>k>ihW)9rn#T{`m7CPvXrKTmHW?q_-P_tMs$0{3E+$Gi! zOnQ%$qj<-;xqRU-|0ttRGH9$e8X5wLEOdtTvp}lanc~s#577?w*kF%IGIfBHWV~D+ z=>|-$;CZd&#r*8w-+~c_YeXmtbcv3U4?>^uH-x*rS5N^|H-G}zTjkdrXT>v$MJ7Z2xYg~ zV7yCCscWqq4LW`qqa8l$_Ilyz!x;4xs14DGR}N!s9UDrq-Fw`81cgalf@^F6N5(E; zq&~;uF|z6Csg2e^jo8}_?KcNp*Bv__XGCO;t5Ae2~4fP68NX^OP8OZ%;{G6 z?`3=oGJ%Rl$2V#yux4v0MXJc63eiNlZnE{XlHuSpdY*w`s=G+f=I5gXRnzK8KnzG6 zQjfWD(G#y91+!yV0Cdn(W!dkiyK!4t1=?T#G z{`OQWr-v|#0zbe&c{+Uf7Z4VtL2zwrIL8&bXg1&c7({n~)8tTVhlc`EKb-*_UlC;k ze!o41U9RtH1@LIUjjlv!hN&D8b8mNRlw7S&FpoG24Z3T@<=CH&1QG&gJApkw67@~~ z+}Dep0U^^RqP9}Xv^m+1mV$?UiMbshkcVS#XCO$HS$3y$LQ!VT9FtvSqr6R=Fcwc3 zJ^@l(_GK;F2}%+w4Hp;@8E&z?{O*VS0PiHlWS)|P<2#v`7x2&jhnS*qaQ8H|m#iNRv?Fwt> zW}}n678qpMKJ{9VkRfFW!JVKVkn*&A1o{}2kDwm215H2=jI;H(e(>p!U_dq{kaw0T zGLT^jww>gO3_DRWggd+GH@xBb1OXip@Z;j;ND8Ifp*zbNiPccxZ;^R**`-9_@;2%^09$P1-jiEuQMr4rvs96QH=hpw2T8>2D2`*${T7{|An%X#i7vG6 z1Pl56XHYN1*A&9%K)^viNVwoAR>E--gXe4%L%TlwGLqx;j0Ah+~28rC}Akgly z``imZ$7}IB28^7x@J{jE!13~LkOQq?JIM$63xxWFVRPJn2Mgab=}HnnUV%8zP(_?f ziWz7efu|L0C(sCJ(f{e6J}w$eGF>8SE2V5^nQRMT?H)~mk31etABa6k_9aR?I`_!5k1GP=hn#;3r;fRjThBZZ82}GmSJs~Sw%S_(xo5~ zrq@_CE}7pI$)sQqs$UX229mT)j`7w>R)U7W>|m>b!0S)R!|enXd2ao0)ECv%xEax8 zL2!_#+y4q!+)28|uq}3Y&;Lpx+mbNGuH_!hXk*=u2kdATXq6k@{9j{3hQG=T77kP98K&Fb&lC?7!WQs9DbUOh-n2pBT0ciJrN1P{5Zi36s=AX98`h<&A_aQeBk$dn2;PH6y6zJpsK}5~&M?d?{$BNNN4o6S$ zH6q}36-EbUSpk`yyLVpu)-Q>Sec=y3hzaYjFkm3@r^8Q)jDyuoZE9q(?|MAPIct1e z4&NoCH((<+g^tbl|AD4K`n3HuHLa1ViTUCUSH^#D6WHPyfM`JQB<)ECKxz9e#=!UP z41kiCy}hV^Oawe@2<|6(jjC8FqgAmwAdExofgPWK_#6@Qj+=fejk;7N-fAB;K&e`Z zh0*Qi#+aLi5JTC!KTv--W?`1wTre&!9r!)2`z&5mtBN@_Uwa)h-lq;oUH9}xsZOAX z{hwkapiVS?+X+1Mpamc%*2zae1kM7$ireP{RXncyEG7`MT7vGgpNwVabDz4WKA{_w zsvj|he(4D^Ru0$yLCGo{A4(b>{bS61mu5h-}~0;^qo?Xp%}Nj$HJgt_`zTdw$t_}M6cQz5fgP= z5RHkR2#^sDbN9Kok>7UO_Z!6M2@&z#~=fmN?kxhMVzjvhAELk0BwjVkD>KFB}7sRk1is$VjOG)O4bXWL~@UY$L zKYvBhR?;|tSH`A81gB;N$nv!7aapv^%Hdx0D{#=Tji95b3<`YX#}STx&2_0ZZnrc+ z$N-elayZ_$Ux;J(hIN7p4^ipYVFgbyk0=XPP_kAK_Tq?Tn8Ip*yDmaVStlkQR7xSu zFp5aWIbXhlNmF=<$h$2NFgRcpMFvf5`~}CiYYHPwP;j-UsBf1Hz6c<;ahuyTX;V}x zcm=qKF^(#)r;nqN*Z?X!q2Pqo1s?YQ2aZ7#=^J4k;X%t$7SOZm{)m6O%`s3Af{qQw z3pnB^YY@k6ih|*FIezd%_{DMoW4AJJBPO&@5F64H!0^{#xaB-4h*^ao1h+AAU#cy* zEGSunpaSKyTZH7|EM++G3z@c{8R!!{#q>`fzy#%(D-r)zO0j3mmx8an2TL3%`8vk^ zKf_PYa{JH6a`(@}@?Ffpl|K2$H=Cwg0YLg^7$3o7&-~*#bLc0p6TS}fKK$}s*f!Rs z1RsHneQ(<649l8!31Z*^XXV>cpPX%rJ#)S-4YA3#EafL#ik-G9sKAEZO2DslM+6be zm#P{JoD_sapltVbj+-r2H5d$E%eGZB7#aiJa&0vRz-3EmG|!fr_6#)e8iD7sYHjSe zRhFfi!O$3#mu;)YGc<@GFiiRr%#Q^W&UU26Gc=Z@lx?eOFc?;t zZL4Z92z02TF7JVKjev$TWE=?6>Ne0Y*ZfHW>>vP%tky$ENoOc<|=ruk^Hko z#;UYzX=k@|9c))V-A-F$L*$lIUQ#3g^3oD_j3w5B9KlOZf~rutMo_si##o7RDsPdP zHNHs9<~&9$^3lMXG_fkgt&szJ&%0=`l|7~CwP0-v9a$U1wls>?lIez^uzLH?7#^|D z`V@;-{I~2fuI0|6MNXD%`BePR+5olY@Q>Zc0pZ66E%xfljj`R@a^QvxpPAtrwXWqB zqpY#4tFW_mU}rCrf;AAahbIMV%Zba4+;tT`ww81`3=d2m#(v5@8{N7J99vuVT((oH z?J?GF=t{}GTT43Kcy9(pbS9nTO;EC2Ly};ZETS{Aj0CE%vbAL0rAMJ>k}(?(=)+tgVY%I8^EVQp(k7R)2rt6Za;t*W)>V+&+90)5r_{A4)hfx1c~R(KNVX-=8M&@| zan}JHLR@%ucMj#6J=|Bp7)?$Bg2YW1VF?HxmmboRIyc=A4+Bf1TkbyNHHpD&*jz^Y z0?Z|QQ56mho?Gm@z;nP<+Rdk6#_QLBzMuLFEO0{!`~SbA1N%597FUO#TOcgwa#mn% zXxu0V=aQYi791`;ECi6tmr_k9%_(lsy3ajuLDu7Qk17CeZ2;U9vy_j&5e#lxDpG_s zJ6+_t^?Q2w#_+f)-n^8$^lT|c=<*!qR9$Xq!L>T-)wAs79J|Q8#bc9+EVq%S$2AbrV=foFz$M<)kt)6Pe-=B7)PS8s6hR?a7g5OQOHg|k)m~dZn{~=ANo9}7*474{!e zbJg0;5WBwS{)49#2Gl)^VniV7$>WlN^WiP@@&0itXR0@n7e{jF1;Wz@LF0O5fCB&` zWw(A)l?b;n5H4whhQnn`!E*0Y1^{f2PZRLe{DPN1~3V-sX8Uy5DtY+tJ2wM`Ygwy8RNy0HuDv(je0=jE1L zWj*uI&&!iYoR-=O7&p)njrOf&!{sEft-|28k{p+n+qUZb>DJQavi(y3oh`-VVP4ui z27dMpY>i-d{ORy1+zv+@@mqo01{IQH*;b)!TS3|8>(3hdRsgm6I(23p{x@Ro?Vh+u zWsJ*dB59xi^;^l2o3Fe|gK}teS}%f^4cK6_l9QovlMOa5+GAWMxBnk>t?XHB4H}!0 z25nnx1scQ9xm|U(elJA!0pwS1BivRU4&5d}G4nZ932)m-czc-+Yyo&ZJRR63@h)eU z4KeMCERikg9t8Lr%L%4z@2zFAWt(6##UO(T%_U541@c;CN$oYu5>L1mo2atdDx_;$ zg>-HGa=HMICV%eHds~&iwygriwpF0mRzR^OHC2IPTLHxuo8XbKNX&tEk+{m_C8KSr z2|>OVi5c7;Bc{_ATLHWliFrLdM$8VU>d5C-QrZ@qV4WtslOSA+m9tvMh|6`|-B$3d zF=CdC;aQ7LRgf%P0H_Bq=(2*Xobhx*J5sVW&}#bN$5w!<0RwatbXx^ZZ4I27_J83U zdmm_b>19hnt@n8WPIW#$FEDH>*{p$7*-{#QLxacL&cgkp-0a_NExBxgSYz*yxV*}S znmOdo#V65^JsYsl1bf_k6KtdTQVN9(8DptdL0DUZu!c>rcrA%+NG$xY4^DTv3ftON z-NLpNoC}MH`&jKiq&ro57uYK=1l4=e1`Pu1d(nSzcMSRJY5I?2e=C2t^{ld4K^f-N zY_Uv?W8}@|<%6!!-Wt@^x88pU&uZO0P5&Xp8gdudQ04X&_8)8omQdEy^dG{8smF5dYb-&db%@|s;B8cq^G9J!62a%nmbDk8>*7d zpYH4`w9EQKku2H&r@sz&S9OAOC%{zJpm$Xu)hAI>EUUq$=O3ngF~r5G&IuL$i|76F@87DFe5r z*rT@|c7|+C6=5|QtTk0cT2b@P3PD|Vsv&jUQ$?gZIufReNO#nUC%Yr4S6Zi4@YgPx z^!3d7ePOZ_5Nz6JSrnG{73bO-oIg43{ta8Q@mqO3s@o+qzMLx^23cw6MuPO^@sVI4 zSZ44T0yZx(1HPu}=kaW)*Fya|DW9sJrDTxTR1sl`%^yLaK>)ZtC$x!>a4hir&dz8q zF#ouUE!k^W|EYflwc82Og`J9cJN9_}DmE`JcyWRDA9ezBJ&${}f(un^d0olzEO=Mi zdsu>3wk<^b`$Pk{*5eb6sywcppj>c25cg{L_b=g9jX2d)o|5l&Rk>R`!Mf5SG|($4 zLV>>WZ7FOrBLTy}vRqY7<*Kl;T@^OAtHQ>1mda&vE3YJWyQ=%pc2&^X&Y-gyt}MCB zD0$=?R+iMeWp>Tg&#pQ>ZVfS;tKWR~w2e!C*Q__FO7YqmK4v`gm@!Ojjxue(c9Jrw zM?=Gm6CNjqfEgv-X1+7j%P2(-s=F-DJga&?;wB~lm$$wFua31KU81qGD< z$$Lus>vvxJA=<@BNy??z37mCjtZ80&rQ?)4!?KPzn0Y*Z>JR7?mbY=)1;=^AvXbJe zO5561rETqSezK4AK(QW=^HsT6dxN!dg4tK$TYJH`egVBdy$YRSIuU~)o?EBq2KRz* zjSI>(5mr)-p2H@~j}yY^LJ*IqKR(j3aU$1x$W1_cfq zBW8&u4>~>%gZqklFDTep6T%OxJKyC;^e*{YXyUdQ!&6>yxobdjcu5xT*!7_3UI4E# z{^{m|y+B=K#N62`gllgI*CPJ{Z!NM^GdteP1!ZGR@Fk(j}YF=7hxdjYDNKmF#L81R^XTq3Ws-1xK?i0b?C8s1M| zkH;V}X$ho*Zk622VZ?YYZu1?)luL(HGdi=lugb~VSLI~w4US62q(G!zmiv1EP7hB5 z_69j+n`QN-hquE|(BGwtR|ucluLC3~DYARXvdY(A<%Fw_9_|f|iX7jmzSJPjdxNEt zda1&v_J&W*^u;i#IZAcNbCf)-O6%HSs=4~r70*%X%xaEOb!wFC6%B%#qhx2BmV;$q zS^aEN20Iz0@I0$Kp;X(r6X+5nkgN|leH@IkyQuSq&Jh^g+NPPwO$RMJd zU%Wl{-M;&KM5%Iv@?Kyeq{nrb1)fg-z#sdcVRb}d(GsbwPD&`;I~1gRazwV%esguI zjv~81Jbqkbxr#fVBji#t-(CQr&&0dBPqF8Zxoup!buJg8?+pY>dPoC=vZWLp%9cWu zya#8%KaU4zLxQr+s;Om5so7;qv3frXMPZ^qGbJs7G+DRX=Y2Yk_UaE zgGzhDlCt%)TOHKTvJxO^o|1K~XMH;I0f81hKKv{@D%(wtjRWRMjE5>P=^$XzeEqWu zC4nCVJsQ+0l(R~d-f?Uk)Jf;74we*^lk-8cqXzX0Cv2pXgXAC((KMN0LbL4(4m6-- zsS5T3H$QQTj)Lkz5THTj+-z%4k9e#<`sDz z-TK2(=2R}QJs6M^LD>&3#_WS`O+F}!gV20#KGVB>e3aw+2LW)h6WW8NC?$p4_mJqN>j7KLVcM@gHo1f*;!4w`8N$;rEE zfp;WuLxZyHJvb69D`{NRIufb?p@RWJsfO5}PYI1|(=ee-69x!P6=A&?8Z=deZO34t zsUp&f`hlq;(#nIXH;5?JgwB)4i?BvGcEgj#vAU<@zaIaHa9ftD2g_bMb?@P5d+gUV zXWSA@Y5E6)i<)q<&S%=}5rG}d-qTV{m zTNO%ms6wd@cBU`O;p0QXa+xyHGbn4S2!Wvo%Wlec=kdW%b+YeZfYwxxc+^#)SqDGg zm#|q$iyAla;8%FlVUU!zB}z>Rfz>MDR+2Y$3#nFY7zE}#@S``#OnB6;bVXfn@-x@E>|6 zr4?)pq?o_NDS7w0A|_9*b07@FQx1FoO!l^tG&!kS^#Db z&rMpv&hpHvlC#XJp0lOY(6gmD{$mav0NG{rUzok0KJ-D+u;frplL_KxWbm>Dh;IdP zGfHY#P_`Me8lT+?!ZuTRl@cXOYNqlktr^^Qf{ixEui=mLXMP9kF3E4LKy1c_YQ$i* zKueF^>#x86yz03CC+o@qpjM9bS-qq`LD6Q&Sbs)lT&ky?>A7S<4eF##p;nThLVWW* zXN}F*o3kwg!DhN7@Rv1BLKnQt$W)q=^fXV&8d{W*Kw5)(S@xFTG$MOi>$d`84eI6a zYS`6My{suXK}-qHv1|`eIP$C!GM^ASkGtX#gM?L1w!S=DE@ zlulxkr3|Ucma3Y@Sdvq=Ew$a4(KRgwR)BOXjK<66FJ)W{lokIrORS-Bgcz-qSHIdS z5UVv1E5NiknR?xR>PxUu{KkRFu&WW4xU;J9d1A|mS|F~{uVGmWO+2Dj1FuGER!tdf zH9}8fw0x-%Vym1(=(7r^6>4YbmMdS>sWRih)WUIs)*z`xehiG7AH8;@Zn<*x$|Llo zCWD?vh)puO4jHAVBl4}iNq7nn08z9({sI9kq8>!cA=KffMaipXmkv&}jxsIPZ}`#` z?y-r~KgXYMcG_Z~X_|1J_v!)+DzYUHhu~52;g?*wgeM zLcC;;9a*{nL`y;wjA&v=6Z+H%N_1D*P;r71jq$(?+XYW7Ub^_Ele2QD69M*&rNT7~ z5K;90eJoG+bb=Ux4DmRwd3%Z?VY@Hi^ngz%(9wiIPGsYjTotfH%qlKuDkg^a?{hie z&{bttbp|RWtx^D{EXv&l-t-dEJ0MDrhjdGt$}+1)nJuLOGh2#{6<18(p6HG>=q5C` zd$)vH0iNb5*-Ymt*~QLM3f45F1g|Bfq!X-ZNKBoo0-A7F8YSD$*I%VdzpmVr0*mF& z&TG(!+1<`_&Ps%MkKrg{mL8cuSU6l@;dK3YCmB$~npHspEe(lDL6QVDq}1LSinPeH zBt#7>XEs=m^OS0aF)wO?y22s8jxPu?(ya(6?gToTuXF0m`99D$Ddt;Y(g&&^i7)&&(K-$pn>@?jdJr7a=i^kYy!!o2OAr!X6loUy! zue|%OpF*6yHlGObeBqUUdH2;fo2Kg+C1M)f5>#kZeG%6?z?-Yn40RlZ9pe+L_j(9eZ7v53?4-n(i>75b* z4F<~gj14j0GgB#|am@6>f!sWA@D?7qY?^eA3dIh~CN zCx{g@7$GLf1idMAX>dl7v|58$W9TwJk7zdPC%+4K8&_S=8dnriD;{C#J{W@d5&aqz zlwn4W-R1bV^LHcsN6dH`{OE!KLMg6H#Q|l&MNM8R9<3x4-M>H(^rq;9;^dfKQdX?% zz_24ZfB%~!KKpd~V1~7fYnlQgkI7wwpnGio7Jn3Z8Z0y=&*R;nqkaR2rtb3XSM5=R z4H+j5W0&H1`XTs=GkpF1I6=uKjBSjVFPzr9PvNt_A1BCErx}MIrBtoiQmWi+DcJID z3J~o+d`(^yVl}4ys{ls%Qs$M9|3H?+>HO}q{QC`MaAnBR(+nkR5(9jOvPzi-9^KMK zV0SUeysW=-db5mi!Hn`UF=re}ArtkpU4nxdO4aF%Oe%mOXh#x}(mj==q*?wAH}alh zxZLku2xe5RPD~22oFu12kmqXE92baLiEw?9^nAR2Bi1wUnmslX+|Db}x@LMbjVr?f z5e*EX-_HdPf)5QS*$fRIniqn=Li5$mt4xI;Xwa-|?L3?fdyxR^Yrv{dF6oQMjDSFc zYFV&?0L@d*`pn}!2?uI5_{X|0l;$%B;|dGF=jBUOtI9eZ{|gq6600@x+*$*-~nE$x;Cd-9s@j zp9fdt=%T?t*=ALl*;1<2Y$;W50HMt$(zdXKd(NW3kf7lp2}JLJ4&&i+{vee6nK#N1 zv)h)k%&2K*OI7JsP^0ONR6s`1yFo^aQk7&PW9A=4s&51&Tx#V^OF-}eCm+bb2&YGY7Nvipwa3>o`t zVN7tG=U!Vcm{{jOBVA@In26gAHddrJx$;e=%Fh|Xf=Y`ODn zvo_}`Rh6S1B-o&_w4adXR&@mbVloERSK3f+f%`E{tkD9FdFBt+OB&IUx#A# z0_4n7asVB)-rqckAtwjR08(GOzeK!x@xS0voBh`i;_nG;L8e|b>05T{PP3(0ed$mb=*~TEZQ_~h$Xt0?aJ3s#+Tgfh8uWOf1f(dEnW~Jf*74C4jDxVcMClIR@rU zOsf@m2LCj04$On(>R^Hpx9G;gH8QN9uJ0kJ(riKy8osmo&KyrHP zgEvEM7%72k7m&IUR0b{X5X#HgA~?IToSe9mCoqP%4DacHxk`tU{Ux#(hlbE3L#QR^ zWJ^`~%y>xcCGZ0IdOYx=leEr+&Q?3DMk5C@?DD!Rd;V+7#L0DQEnv-j{cLmdl%V8zqMw4)%v07VZ7q<^Z2f}R%u~+mk$NZTHuH6AlneYWZ109b#b&_@lkY=` zb!$0%HLRJ&lE5@WO6GQ6Yg{M0%we72yvG_Q#@vp7n^qyEK>$ZCR9_9lIK>pZO8M1%q=*I|93W0Rr(BXlcDR z%;k17EEcV|1L4hoMj$WKhqYlYx0lWK|BD6yPM+eUKYtA|N+Qh&7q{~uW#fBohp+lN z`;Yz_w5XhQiUnER2fvDl9}DRh{wY4M4S7ih0>fXjrP#q{*EH+EV(#%7Xv@P3sQjK+{PQzycN55>pgvy^k?$;$_a2Yr= zN2!k1TSxcGx?*kMj1yD$4Uln4@@2|oMJa%Tg?aK#kJ+B3M`9A#b;l1ZSQKsa4tp#)W z8F2IS?x(juK~~n-Ye8GaB+%cD4s{6Na=`(kr~Uc%C%h>M%Fvc%0lIC z%st*B4d(H9TXB#o?IPP^9I(TZJ0|7jzke$3Q_z@2VxFul5_7m)BsM<^|8d1n z94sjReV^E_QlkJhi!7-vCWS93&1e(9re3gqM~PWei)xi+^G4EY7AoHeUNcHu*xndq z6K=aG>8`Y*tc`#*qm>)ytlSJePfIiOtl3feBKD1-Hs~DI4soaCE&Y-HOE~k!5^YjN zSh=}Y1jI=eS+rk7$b!6V1k*tiql!k65+62lifUB0)&%PsO@Y`s<^OgiZg1=q)l^4lYkFg+s8WovIfJ2zq0*HtiH+ssOckM}^2YF>n~Oy3 zzcKj#sXNntTWVsBzxPuB3OKuZ?sf(gP*g?*^nk8WL}WM|1Vry=zfbkvt5eU@Q>}i- z{oM^qtt6FHl1l!mq}{*WR=f}-WPsWphqmRB|F^q}RY*KeSN{Xci{T$G{=1-iRmc=N zoH1?pZS4MiOuP4jkkCVPh%=7L@Be|Nfis-Ipx7i_2pfu~;?;396^wqrG$;UrZeAJ` zLWK6_tHO~}LR0#P|Nng63 ziNAp9QE7Xd@Qi=kl4YNz9aJIAXDM4Ah$`tT#q;ihq~M(;Nk7Yuo77dGLTaLm(SpKj z&{icTKI2|?lGfP+jqWJ5Akeec!g5*zK2h8x$>wJ=54EK4q14fRS?xu7?jC+h|I zw8tm}=OA6IGAHlfRcn9gM8u3J*H&7?5Q;x*x=t~Rn8M?!X%4J~kIk2$_A z-u&4+*mT)>q?=Re&J_C05wpX=xIv57xY$gb@Jb<%Hjj01N7jXg+l(679qkrA%I1k@ zpMC}9_I~L(Xj|RC^nr6e;ydqu_zaY_YbO?(?H#FyJ4?CwiE*m#!}r{*Xm6<*%euST zg-1M3P=)$i$+fGLTd|HM;a%?@Ix!u1pk3OxpRm6AQ%sHyaTjt`%5Zs>+k)siISk() zvpjjA1s$DyZ$6kxSWh$+rqHWX1=G3RsS4YP7RxR!n#vjTX^WKa${*rx!4bVQJN!Ml zZwaokH*e2M-At z99?yo=q$*InWSW?&XRT9CY5eCJ$Q&!tUW()v~gxrPX6E2>2(oKd>hM1%`C~De=VqsI&uQ1^D z`(xs?CMzj)W?mWhoJgto1=YOleuBE@AH9qMQcy^_>84XD>?P)lO2RLwH#)-n-}RzW zX%RN}?zRM7Nu7Hkv1Obx;8n_ek(`R$T(~T6+okGpSu|*|!F+`O8B^!3eCZEq$}R=2 zkXV|BO93htP+%NpmtpaGXz~7obEu`Dl-WG}Y7^teYv_xXK^e2Ka1>QItvyO%C#1&b z!|Yn()ADW-WNp0|8;f%Dm0GZl6H`PZeZnfdORKBml87*?7c!x zsA{f9Nz9D4Ja-i$Coev4|08B{yYOeM&N=sz0%jm1O(EHOV_`>VHMDhuJxFP|#lCIq z_HiWz%!m?qXVGaVUP`nKX*?1pin3Tixt_FKK>{hGY~8J@QsBvowmjBWglVA(pNED% zX0Kxb(?1EFF3gr15Cex~uWQ();In=D%@&+4?5Y%ma@qgz88{o*%^n)F&}DZvTuL;I z-6iT8{G?|%ye#2qS^0#Aa2S}001)h736 zXyxj4K~8S>x}KomPDM~z0xI!T3^n^1!)6Z5AZ_>8KRisHL4s#gG97-D#8;4)%|b3u zFUbQ@C4K2U3RTkQDMpjhUvo9`(;p8F@}8w~bymTp6p%1fkZUvW0jQe!R~ z2=>ff-PuOkO3v=gOfY5s5_Q4QuxlWFm&O$DsC+5xM019)Ygoo7fy{X!xvmTwZq6KX zAL-ov5OaO`bDTHWcHJ@Kl2OWNyh!cXcD7aA!Rs7~hwvA06-K80K2~C4F3sO;-p6q4 zpLIrR7d%$di!s*4mV`ZAc>?oki#5jsc%1@wzwmtd70H&&Rr;$)`{uWhM+db1Y54~aoI>pCrW1VN zK{uAX(fx1N92(KGpo&;hBz?n)4JRAU8q(EMtO#&so~dtZ`*;8Q`Vqn$Z%T?4F`e1g zg~vtW=9R#e>2`G8P$-K9`iyPQRUp=aEyMNWT>e8{?rvG7!7Gs>WVALPpxV|Q>-!(> zB)Jmqk}V4_8y7WAb9p5ICM){u3H?9axpyV^nY5Qno?=jQH+{C(AMOOc5*Rbi*?H|s zdCaIC+{thyJSHojeH_i(|I=;dD*`Yxwsu#eDj_lcYg5i$SHxgYZe}RnHpQUo_rKic zyb=)8ck1R7NZV+zAI@P{62j6oAEAq4n05924;NTf5rughLglaT{)vp!J>|;tmnZ&x zcpCrTd+6(Wr6T5n;b}v3_V0>xE8#EmDJ-{?iYL`*Dy&$q9vT5Fw|i&_ThgFRWw1WYgjiFWRJljY`-HsgWW^DxoeU_IlEmV9PHpMAj;W z4ug8xn($I4%vcF&naz{!V}W`{tUxW>&hF$L&fbp^WWiE#MVcqZ328UC3uu|u*H4K! z4>XEp4c|5W$JWzJ&y@tKP=>DUB}9e9Tu&jivRJO*6w1(*>*G_NUNa^kl;zTSuQ$== z&j0%OlxZCjxv%63(n7D75EW_xSgS}qnxa%-z%G9Vy~;r5GB?Xb*!+Y3#`!tK3BxBIU2{?W*Dd3R4-MMA826uG&(@jg2$ZJK6D1~Kei&;z_=Nj6&ZEhuW zB|H5M{Q$yeJF`aZY-)7--HL-$7Cb4ECcn7pVctrROVFDdez|&6gsR-`O$D*^u^Z^W zUGp5;63udQvD}p)mStg&Se`}$Av5bi2ek1aM^D~YiF;MTSuEHEXa!5K-4W;Pmp1XY ziV(|czC35z+Y{&JTVJ7H)Evly1J@6}_=6c3Volnr*Me0hbWIhj ziK#q~%LvwQvigN0y_8YYbG(zynwW7-@hUKv^n&CxYKc@?X(q82yo+5Ia%0E0skhc# zrPxT+m^M)-3kfPYHfPMY_UW|K;Sb5N*Fs3_QJ#GbKWq)FqEs z^BtdY2bFxiow!zRk6F`$E-+=A<_UB^XyIscO+4gn)aU%#gGXN=6{Z3gS6mAR8O;=s zc0Hdc$h-f+V#wZ;+P84k&g<4hKBRDWBwG{l`1A+gL6hg7AW!J%?)lbqMF&*{DL&S) zQUBHlhMqkR=-g;6prbwf95U7G$Q{ntV%(h%ttG}J=GST=9??{OjG^a1mHEHxKDM@J zUG9Bo4bXA353LD!SX-e1yYiWz{Nc$oV2N{hnO{2@c2-?y*WSqS5K^$|{7p5^+eTpV2@L-HR>uz6YveWKMn|9qbMU!|7 zrbR?eH*nC>GZrL-F_#tFuGXNxENAXr5ZJLD1=^*7uKtMy7Nq-U@rKD)=nd>+NEMSB7_$n-grrTxT|9$caL@TVf7**NB40eXypS~9fq1Hq!KC@o+uYbcB z5O4Q?a+$I}I%nwnHm~+8GwVUQ^GZZ4<`pGkAvOPFDw7g-x1Ms(0T{7Vq2u}uv+3c#)I*GAUTIEK^)dQEF{#{Rww-1T&w+Ox3g`S zJ@m^l3&69!Y+U+KVT?L2*bspD_|fZkX0^{r^c6^)xgiGe#Iq>gmeze(s*V3<=qn8Y z2rLuqev3Ufal&7BMiFk;+6alT>zMZ07ON{1htKK{{Sp~(ghrgtpP@?U_IH4h?qsy_ zDB=kl)!ExGf}{0qmLilIxhQk&KKT^+z@y@|OGGp|zuM4E88j)1%?|L}*$$^cc82M~ zg&VylQ~l{}Y~k%St`;?O-x_L!MHo})Kk^5iZMWZ|G0Y7(zu6F%IKUL=3-s96Sn!|H zx}_l;fn2O4T?7c^R!@fgsnwWZR!$4-oo`F3KvhcsY?*1 ziNx;ynU%c2r*tPkMeQDJ4)FQ zQJm_bB+N^Ian8Ow3sxKp`<#U)t_W|M)F~(`+?Wy_73^ii8{=j1g^Fldx0stqWLz<} zdsHzV)4@~(EY~_DVasrJG}dagocG;WKxVWSo4h&!&UkgW14K1ko6G(1)KILLyATc< zRE%h7xDkYpM$6jd)#Y+rw5&~Cg1BnDHMmPGPp3p$*G8O>);ULgaJy$At+D261-33$ zp(WB9+S9j$T<4RxinPRDqqb-T!bYpV#TT>&X75)VE$HjbD~?t;Y*bmE>5bmbUf4lI zG(Fj}Y*?bP=$oUQ-BE74iOIIYWXDCg+eWQksT=7-!feBpoO#FwTV9@rj;7k;&s&Ns zTeF1(myPT04M(wM;ejO}Z(M}8g&@3OLkY`UDdHA$OYGT7&f=>_y^b1_jk`R)HsQH; z6P{}+7Ap(H#thm!EnjU?Fw#@bC_tlb30T8X&}Rf=~{p(H%kgI!J{@j?Z0Ply&2>kN4E z<;r?nL241*1gwRUc)W%$GvNQQo=?XC-9DS}LLwptYz^ zCnzhb4-e32D)z(CRDPI7w|<=uGqh{E)?%}N*FM%s)Zu&z%Ppny)ALd}oQiwG*i7z; zmQKJ|P%$N7qi#b*Fwb7mhdaPn*bR_Qz*kgxw);vEyaw+>#ObrJ`*dlc+XTKkxkowH zhZ>WO8?3T|uSI(a_!{fuO`yDMlrssh8P_dmI>lV0oPD!wid5^Aca4f5eRx4VZWhvq zNA9@W99*{%-nA?&n9F|#*8zx5xYn!~kIi6r+C;QEAzIP0Fk0^y1s%xM&5MFg2v)RM zHefWBADy^aWmlUlw0>`anSJDby8PG?(^?hw`=78Y5V#er1yQb5#Wwj~3Kd%|g6H69 zE&O<0En<_o<<@6Vu}u+T9YL|R>Ie&qD(0u>sUkYpdx?Ur3VWA3CEWU)y}4I~y_Lh` zLc+kJ?Xxzzefw+zUL66iwYqQOT%B;PVBP7C>6Btr_ce2qus1hC-VyF@q3)LwFM-*& zF6|{?_rcbVg2Prd@#A_**mpc4S!=?=uvXQUx3VVX-9t?s@vK#4{K&;k+H>~i@dSvp{HAJp7(>X9^@u8dogI4ot$em4d=*fIVz}n&M-C_ul{jTogt_@y6BMi%IhU<4V7N2%67u7qDA-_cdhP1ug3a#!)<|9sKqVjmUygam2WY(24*exRsU%E z)8XMjG;7TS8lg4P$9IV>5G&ge#9Gzoma$CiD&9Vu2DQX(jr%G!6c6gLuy75ie9c7p{Xg;`$nUbbP%0ql{Q;{HbpFvxa6_>}Mfl58^E76gT|*qXr^ z&k)qr&*Ku}?S5XOsG`OCiT3n32K?b|xcU~au%xG8Q73OeFVw#thbLgt@eqXBm_bbl zIn8S#q$!#?yU=K=O_n4SwNMfEqEVIn80E~n$MG1(t?=Gsl&uE zH75`=;yisD5-M5{o41H>YKnd0+(>NRB7U$C`r+KD3Tqbedv&>}XP>1wcfbD#0K0!Z zd3X#u1BP&SxVUsz7wk=)*i?UTrDIp+gyCpi@y_33!SBQ{)i(wl?ltvn9ZGt;L`NmO zKjj~r3E^forGme^ce5DSx4YR)UP22hOZX<-Fhp|Vsk~LO26PZV7f8avpwA5o=cV{YR+Kkm2yd=d3Vju?-aljfA}#0)vLqhaV)&ZaJ&* zeE@rrGqVo`*bleC&g9CTkC;0QH~X?o=#PDw>R?}o8-ApidkA|Yg1_&Y&+h&S`Qd0D zVt$Jmb}?IS=b@}kv$S!a>!JXN=jOe4MuaC^#Vr@~vP}3-aB3kC1Px)>4uAGGZQK0` z1~bl*@J=QyC|Zh`dbJcDqtQ|}897Le?sT}GJ7fxu)@r24XiDAzx=dlwl)SeKMJk1R zn!akaT8bap@ltNIzCtC0lFs*lWRXqQC%S}krdq(;MKRNqytfMlG)3~~$$L^C%AZ~F zd^=ei4sEq1)+x)j#5y5W!1~m}GWMrh*fHdcUf+KaehDYK{kIKkgwok(Umd8=ls!#l z?v)|xG-E!mjN+%M{Jr@UJgv%$xmV?R@ip0 zObY831V^4vue}W0+Lw`!!#nI*Mp(+a`O@Do1h#}Yp)B4*N6W&XzOEw>zI6LKf`HXh z_3VF3RTN_e8^)W|R*h(UECS9LNoQQ)wJ%ZFvNL_+1+5}OHdqi(*nxs_f?XlqasgkV zQrO6INz(TPu$`A_JJbTXV6jj^GN6M6aZd;p#N8m))AKElR-yHLPk8Ln8|Z1Mmwk7) z|BlP>!PzX|#LMzcyey~qr&wnbY8Gi{xy=_!vZ)VnkkstB_PtuE+00bn9BeLuQ=#gF zt-pzyQg=S>##D)Cj!pK&H`CKDw-^6#K&+u3Fp(y)wl3OX{Ld5J# zqj$w$%WxDU7a|s%05?TW<-*9KWx>$*%ZeNb?B-=fE&)=}V%eC%R07AMso1>HRP4Z` zsk{%LJxR-jm_;-9bM`{!Ja(g*dtbefIS<@u=9|n-Ayd&6Yff=gToHGans35tIbk)< z+?|x>#L*VSyg}m?++<&hsbZC=S-gE&j4HUvpo+>7zQ z5m1m52;)4dXm36iqoTdN7R2TUpoKfHp*Is3?JGh6i^Y7=BW|_Sh6JrR&vaQ2 zXKQ}Kghz)TcR>n=6r_+-=o6&&LnwnS0bG23u4HP|MD7G3-vp#`1yZps6oo{E$GgF) ztBVGEy4^)9fQl)r7%G^G?HTkB6a^J-7z&Dtr}D!wp30BTcq%`e##8xG8&0(eVda9b zGW!m3YX^Px{SQBrZ6a4W#a+d#!<2HYn4iFeZQ18ZcNXDm6|sJM|JwzU=5#qPt`&EK z6|FW|U&6K)izpOkjm+m-sZfkH5_YyOD1HmgI1;9udDM@Eof|2HSjDD@LISzQMUXx` z#>c``(;IAB2%K8UnFn$o$DSh&didcmcp+G7oU?C3p;2RD-x>m;f(@=5YJE%<%Aq1j z{2B@^17grsueu+H;la$TQ2aFNlhj0PR?gMRaVG_ZAg8(SAf&GdLK!x0uvItVr$X>k zv@C34?-vdQ7}L!Qhhh_DDu^<{k~RrX{H0IvBFc!zYqWlB;i*FGzoUY9N)9DqJ4ccT zeF|1*Q-oF_JZet8F5Sh!6PFtT2MeK6a|QX<79?s%vmk~QsHtO0!YpgV%|O-gF8ts|Nf-nwe;R~dw~<~2XLxtj1+ zbemEr?F#MP3&LLUvM|7}s|?%|ynU5H&r-#U<@q}}P0IB_J0i9N9^3I+xS|Cn?9Ts9 z1B=KQHk6a{NS~q`3#DYSwkKQ`ZUmuc)9U%^@CaU)=gE6r-jCgQEqL-?FJ+VIDaLEg zl&-Bb%qwO`VQs5**+kh23HjQ$ui&sUdlntBdhns`pi&Rsgw_f{YwOk6WO%xV8160< z0v0hO&*al};V~>MEtG^$8Pz1-feA)aQExqAXLE|UaKnP$wz4zq`Mx38Y%X^{y9qX1 z%$SgQ1&__OhGRCR zK(f2hmsQ_I^wC}HfXkiNTZ^JROLxr={$jBXA0Uz**y5DJC`y51F(+7Vy4_gPQ&rKy zS{g6AUmcVP(YkqcPzn|cR#Es^G?iaQm)}RDx3J`){v4fU_yT5D5*b?%V>3o|V3!+B z<>z0o(*IHqlt`>-&VFe6oTW{8SOzmE8s;;1YHwm+rH{UP;%P9~*5ZZixlT+GJ!Pza z@x(VCz4kHU0ZR(Nnp0zwHHn4!oVoRge=Ugl8I{G{<*kx}t60o;W4e7fFGeuSi#Zz+ zx|);mgDX6L5UZNY*_+18a3gyfwb~`}kA0O~s5~WQ%dwFRQJ|T81Ox>QE-WaO z4lPokOt}gEl$+pBDVP6}O0Lm1JswqVqC%xcM};=+rBI<%3vO6}K|!kt5AvCJ&T5+g zP$>Y&XYRX%#7-qKXC{f7vaQr<_Z()^7SptO6c;^FO4L-!P+Dx$NR%+Cl)2ZI*PD|v zLU8uQ-(H2^*nRsg5R&0p@T?SMGb`p@BC5IAJ_=~&iuNlP^KePS^l&*eVYeSR9g zObKCTD!~CKcqN*O_vg`6FyPe(gQnc>gN3I=i`_J?2_guX0Qe2bMUiBO6*7n^%QD*-Y~l3RvvCDBTn zKjyXJI}uq$C?>kpt0Yb-*hKool-);IM(;Lol< zoRh93LP>LW3KNIHK2j9+l5A6zw6oPT#yx}yzlU5Ajd4|*tfPb|jrH-pg=oyUnxZ^= z({ax3zFDQ0-^!oBJz|%d756{VH)`>q%bF3LpRS0~Aj8F+iPcP1(CbXlW=iIr)m9&4UMM3JbukjAHjcAe~mel>`Jd zGP48)X=U7*Y9+xyEb983z#f+4_7Ub|M~7L19nu-sne2OIC)^ir(-Q=h@E^_EYb(%a zJ!@X~YSw;O3-X!Fy7OAgKwYgRTXInq8KqNMlPXK26<*0rUIKSkYblh+KBR|WZ{&G+ z2}VSKkYC{l+|ep}Jp}NaL9@Hc-l8c#_#sx3>3p#gsB`XKLBR&U(UbZs_1HAKy>}&a z$3FXaw4Qe;zc9CpA8B7#3FbMMIN?0*euUhS?1Y7%cg=)(Y^#pUc8z@k4?L*F-!TO~ zRh#a_RRVj0lY|8G1XCFhy83ZYpWFSoMC%;z#=+tECe}6Q^2eVh*DCZUsvUbz%G^4D z%by40k|Ynos3trbCtrMWK_Qhyx9iyuS^~|cugYJYq*#7W?hZr5F2aoVO#X!{pcT}|V zqD%rN8^BvkxXxnMyoQ;~+P5w7oT*3QT=ZQn7>61Sjgh9=S}@L%q&L}TmJ1pe2Lu;* z;Y;^1yhPec*Z!{A6Oip}ON9i7<|TZ1_Sg+4<~0GFKkq+%3?4c&^6q?eE$k*XjO$HN zHT5Q-Qyb8^ce^!s&CPDN7H$)*B9FLeDsM_G{cI&V`ulkB#kIhkXem4-$0gjA+NP(D zYh^p=UfIN7>xQTjo(XZwf|Bs&F<2c2KEdY`>rLRN7VtCObk0D6e5TrL)CkfCBJIW- zl69?O9iVd^KyXl`BEo{EwZc^8OW_U>Dut)(=~A3UBoJs?9^KMw#ol&0i7$f3eyA2P zqk9)9F+$T?N%M-`v4hAa{#@WzE$k>#7Xe3h-+b!N`%t|?Hk$M9W+dNL1R%{R=37ia zQYcBp^l+oDw@BE~RMqXjqw3#oec?#h;Y7EuJ2piV)dHM? z$_jRhrs74oO(hpFoE>=89{;x9vd=zBy-6Tcv=o`(S4-i&@48kp#3%E&@DNuKp5UVu z;ZYtSUVIeu&uu8xE%O}CgNVbcfeA_Qx?AXk@7D68Id>8z$OrE47Nq+ z!*+~n7kB)|w`J>3*Fu_$O+S~!QTkf2)^rlzR&4k7^c5B{(7q3AG7M{L?G(0L3)Whf zXNynk!?hN~HCaUGRpODpF3%%46A9ke6dtwMCFl!!Xy>WM zr<(GhUYBR%&NaR}q-Y3zf$?{T$A63J!W|n*aMA7!(XUU8!=vM$F1FR*L);w>Gz7lB z!W|_GhTma)?ClV~&wH398)9Fp!rqqsi0eN8!Sl#8A(2Kxo{lh=t$O#>r_dJ)?BHc7c)R|E{n7H^Rm)NM-N#A2Bj*NrA~RU65`BkIiRqMW-To9-b)TgVcXLDhtO= zG=$AigK;ff5rWTFgn0%IR#~XoN)bE*FPK?_ z4R0Erawmk*CDQ?9BZO?B=>&{*H9U1@bM66in9aEE*^@>>pVrk_w4gf@ZUlgd!X(M& z6G=bt1$V7$%jP@fU!qYDkKgV64%QS2C^mGD?aph@%s&$GG^vK$e>VcRq=LRFglR3? zj)I(?gvN*ZRdc`pgqfXNlK>|v-7QEOVOPfs7BJ@Y&geJ?{QGF@yo4eexyLqcUU&M^ z$UQbu!+i#)p-XIVxg)C`oz)0az3>*4JtJh)j_)lv;CN2+?WXH%jR30PtSF2snhJRG z>aM|`Zg1q(?n}b$M?`R@i~{MrhDvww)U+a)WJM-rMorAJ~DiF)d6sd(2Ai z>DY$w&$6W7J-+c{bFzOoi@5vk4FR5eL-BkFd0(&9`4bv@c^-O`?LhK806TjM%-)Ew zFGd|J+)DG#S#G%Pt8Ze_xC2wS?*pFjcSsMA;pC4vZ$*em-Q|62w`S^yAM4oNhlz0p3oi0;yiDL@q5!@^WTLl84}u zBoDrr)mnizn!j&eKX;Cs*R_KLF)idN>}E;w7Ly64G5CKp$7GWQFv{tIr<~mLAg#a} zRl`?p*>JA8gw8DYF?kwjMR<9jc^%kftL-2xM%%&VEa6Kk=~_(Si%MejHE9Uz)w9Kc zsr+Ti%Fg?>6vgCNgFRN-x3~)|Zxz8zW$wF>TtHi?CR=c9Zuf>-D;Lm~g$cn-)zMu* zYnj44!XP=oHQIfN13Znzqr1TMmNCq#w4XJ90#6EWYQez!({pz|9&vV8kJSo?u{isa zAy3TpgG%n3F|C9k1*bY8GtpF=rd0zq_dd7okx18g(F6XkzDVU5TxlA=B_2wXs-Hhd)^8=id3KCkFHOoJHFluGCIKppKu7F ze|xuR6Lxek0*@JC{Fgc{fg>yqurRl)ZTjbkdn*uWu9Ty*g3u&;>&BKK`sZG}X$2?+ z-N&ZeaIH|LU|GhRt}6=!6WzYDAfy!bTALz@S^`eEzKPotcxlLXVSfMzbYB;2C88+W z7=AR5^M9Cn9K{kXOZqu`ESVloXazD|Y|L8iE(Y_ezolc>R&U0IKu$}jX;~AVp)Gv0 zt^V(~cDn^b%f&pk^g8u&p1l5A%99;$&~`+b#+o?W(M7qjq_>E-9gHw*k&dtu+Ua7E zJ7_lJ1ZT`%whMAdxD&XvlryiU=i9BL=pYm~Yqd_u(o*T(YU8#-#nO|c9YqI48ew_3 zp$a~8?=~NyCmw$OZ?tiX`(f@lxx=H>`(YAWQ&`B-LW>bun#$IzD#1X<=C601!91$H zQf{=^!GTWr(vli}9TaF`3IJMFo5$UucxasnowxVa__xF7ogk(oW@5W-em+|WTlqRF z>})4-KT<*W^lL}4KL7e0D?#(+`|qIPFdMp4@J`^8J;`9!tX~c&>*yTL`6Eu!WGRRZS>xXigK?S0#cdtKY@kW}Uja|KVb^Iz>^-!ffBAI!0`2 z<1Gy_i6feB7GKTC5QZ1*~-Jid&3VGUD4^CHaK^-w(*?=7zJIV;G}3O zwrn&NCger)LQ$&gZI*d zTOGk6TM(i^$vthUJK;gmCSx}`UqwFxMTrz4-4Xbi7ZcJmTPnp7 zNp{|#bcsyloOVKb=8N@qlI&cI6U-4YU#cHM3u4|93u4|7wzI%23qN2iuSKMgZDZ{9 zOZS9AM}b2Bz;?vW6YUy>?eQ%Jz&l`JILGRLKS1uqud$HB#>5i-<#gMO8)*B72 zztCD_w^a@N8fC5#@*P1NbcE*5XerxA!l<@KHSm^PBjmjU!=CWJZy4$L9Rb_-3GNJTb`g`Xjnwz&@bdPE45`NBG~8SU)IF2~xJ=31L(40vS2VjZP;OX7c9 zR>>Q4RhaF$k~5oeMVPHOAw0zP+-kQS6)DxsOb>6g~nw2PHTexJZvEIonW2i{DtPM2(x9Um2m?~fX=kMD9@Ii&IdjPRA^SbZ*n$LJ<=FfWGXoYIDWCzut0omiXw2c1{X*^pUw3X_hE387FOc;1`}2>mp0eZKQ}IWL4PgKf^QKGIO{J$hWDxeI zdk3Xr$zkun+M3ed6tJaOdJh)zWV(K_ai}|&Fkx{Bd)r~TfzUtb)4lbEX`MWlAerDK zC~PL0${8_w>o?ySt+{$|V3=Ds!N|ayF1&D%w}zrs^d?1FaN`!QV6Xh{VO={J=?+7z z5OfohuF89>2J#m!v$I}}GS0?B?9lv}f0_D%g!}}nENEu6%ED+&rS^<{QGX#FliRr) zg4FVzGMdTudE}}fwqC9;57r4yK6E*YWyflJ;Tz4WoMtg|!ZYXti**!6vuYh-H4|;( ztRq1^E5bb2t_ZUo?EudX^X!7vXiq0N7c5~r6YU21 zA$l0uiV>HMA_H@56wX}G&8jklaFCTkjMsv*@!anz@qSV-WyA-&e-S)86flV zcpMdw?u0>}t$ED8z{=_ZAD$gwvrd&pI&q%6@g)-!F6lraI*gcLaG*T5M0u%qN_Rtr;x~bL`c7 zBQoc9?@d8E@hbY^_z5~H$aTM&wnre2yH|#m&WQbtB|mnOp87;J$q4_9^Z%R6-;c#* zNk0mgCB4zclD>A{8IC2ro_^#lOZqXlEa~lq4Z|7p=V^!i(dF>iaF0FDBu>YIsMt6Y#Qg(q?WEiwO>Nu*3P6)bx1H8Vh!o4sa6dnrC1O;ppAAKBIDCY5eu&MB z5ls;>U#jqv%l?~aI%`5K;Ou?g_L%4-zANbF&81BJpu(KFoT(pIlBuh=u#*W>59j=O zCdgz$*!2qvUs+JV+Xs!4oiVLkPe;1!i`17TUS*by~g=`6mh@QhCcAg0ZSt*?@ zwIb{-g+pWu9PSTk%b#ORdrw56DVQZ~V_^r|MpjOj-y><-C#l#RU3UgAFv;C zI69Lrw)byQVm>$b-hbxV=63wKonIyoEQgZ#5%z6!Sjck!DvXU<*b~?31=l47f-MznM{GyT4kBj)KkyV4zRQ`Wdv^ky5ddjF`rcE>5w5Yn z4xKnjM%;tNPF~C#47r5%o|$rwU@E_KjF$y-UcD$l$L(H}Xh*zQwje(9j&?@3#9F|9 zJeQ^{0UmuIT#W&H|KmL;>D`(2U|Z2(TYLZGUrv%I%q2-Spz8U0%2Nr4)F`32jPM53 zTae_jwxFj#4wZbz>FKA+<OG@dt$$C2N383r)(Z{zvlE zI3gj*uEJTC1-W$P{SS8-it_>z*6Mo&ctCaew|;{>`+vGUE3hGD*kN#*kJLYhjREC2 z3EVZ_pL&Eu!!HM~b3qz&iV)90UZZA6*MxKIp-F{tkGbnbDViHe#B`G#4dtfudn}5n zlv4u^(|;7TzWh&1q3lhyAbKMC)TkbZOso=Hbz&k}1e2 z7YcH!U&TtxLNP4-T(EB=H_n~_Ah6ePZLr!`XsxL(^}mLg zj$Ba3l9p_wg{JorB`ANPH9hfIRn>EkbzwI(t_$<9TB@3#5ivEL5E68<^V!S(i+`ui zClMvu0-rlcXDqap7Cl^G%X0}NS<2H{YP#r9%kmcX|x8V!w8|d0Sx- zZs!g5#_SG5!8+LS^j9a$qs&(B_E8fHCO;nVe%op9oHt$3k?JILm=p3?Re&wCqJXS3 ze0zEY+{k(YqjYZv^k{*7@%^XYN%Ntwj{X<|z1iw+7Y26cAEy(HTmn2+g#GY(^=>@( zCdj_{K{_tYCAxzQ>Z;>0hgQe=cM9it48b-1jQ|+j=D@ag6DDzuH_nO6)hcLfV!N|o zL67PF6za%>Yj6Ie_!%sCF3>a%WamOXY*%GZ?Dw~9s#l=2^PUAE4_4Uii3{Z&Xjucd zrf~o5MN=B?#&O<)z{gvrC)y3{6~BT`F8TO1;GwX%7^{OFg~>0B(S1!Sh_mK@|n6~%`4*Jq2NLvu( zST5QxG?16KN{UA+=)K;Ba(Ow}zY~K|aVl-(?|%N5)PNMxv5=v+$VX@zjGKM;-Y015 zU7`mC#d6r(aefjlaz^KBt3>z@{#%(JL3eos2isN1l;e;;>!WFB+eocWfd?-Y_o{ZGgl^NC$r>9>EdeIN0Z_+#PG#nZ3X}eG?lE;>VPAK=>qk!O3ppT5xiPp5#J~3LzPGS=XYTZ0bSe z6CA7U&C_#_D8L)idgT+4M8>Vnd)DQVIz1ts7sNCmvU?UafI?k?s@r!ZPOi3sHGbQ~8DI z(j-SymfnquO^-sxf*J}ai>C54CR{IxB8rx^sc#5aiJwTREo+lQk$9=d@E4XCO2V#WF3HJloCGSy8lfb*7&UGwurXQ|ri=Sk zObMcR^D3qkvKTFv?VOc3maz>~R^0zcABxXQLX40Z2|LnRDrF40?s5}vEQL2NE4B$U zmJ)+CE+T!_C@&=jD`*P=kI_$h$Y(s&mMOm^D7rRI<=LTVBW&skn*zW}f~fJPC?&z$ctNrdh!n)VVtIZLoExc#K;5|{$8_Jb zB&Zv%yU^WWHxSGlO@&3mb!~!>wABxc3fNtj=N;g> zJdf;k`AyTjyi2`a3a|BoR*-TQq;R@_H?J1P4ozAh&3$8|}Uc6qW)CCtJXU zCX^BdH!1IXyTrmx%2WP4e^1I&{#*9;rCbwSFNN*C&<_Rwt>!G?Z&Kd3kA%vt%k$`7 zmuFu+Dev2V6W}W;kj~DvaJn}C-S)f`v^Od5PUlMDdQ0{STUPkpLY@*)x2i2Yob;Z3 zHF^pwDxwSEbq?ahoFOU6NxJ~k+@Q#?t(L+k+|y;0BzK19j`%mtizT5=Us!cGh+62=o3f_w@sVfTP3mLQ$=oV<|O5*xL zNw^QhhHNDOE>sY&#paT@&Q=L}izE>MHHE$`$@!5rH|i0hUfefrtJQ`%=R64BY+nRygH`q9@QqM zR!N*em^58`MlKaSVzz6qIC z5)v6zj5|Oul|Zy{JNrIQ(UB9E_A3d5T*-}1995WYJubrcbGi4qBFvVJ>a%HR%Qetw zS#09v>If_w3wz5_^xRah_N}@JkW~W6R`l^!p6Y3W!^XLh!fe^GFg1lYD4ebZs-OFZ zfBGNTNey4M!#!a?MXw68`Of`=Ek1X5OkWBA8td%7_frY{3U((!V9`{YhONDzbzKMm zb=|%Y5YiP@)*Cat5D@A$ZhPNf=u2;FLx`{#}IL_coCa? ztT3?^#WtB(g3?xs;DH-7$|hJ=ZGvT$z_R7)2queG$4|*?{ahH?SRX%vB;YKn&nCMI zBO5E``@Ar+v9PN}Eof{-n9rnQRj!4Ijf-%~*8;+#MciQJS}53xK5I^xlxO3vI3#E#d1(V%-_!{`>W)EKrfC?5X3@Vz6$KPTENi6_sMR?2dsFq-_Xf3vQ*P2Ka zy0Uf6{w2!m5BDHXEl4V=m>-eR#X`LaOx2sfR4u_?%QltkwZTRZbhX^hn}}7d#Oi9n zp)7AoB~~M0_w-OL#A?WJ_(3^uGIznNsv+m$hc7~i)gUwc@XBujRrRJ2u6k1lSG_5O ztEP*)7`aQK+qFD9HZ;`mgPK?T?Wk{%Fq?b$_Wba}y>47fRM$}Y@Wbb^EmR4YGPXG(FevDQSX;)de+Ij9?Ps~O#VixIkt$oqjjBk$|J>5^tG557n1?$={8 zx>4OXSzltfqPqD>JEEJn{*1hDXChlO^1kkyKv%s9bkzj9W^|*v$R@bO3n=z!x~#eX z;l9OFZwmXW1#tz9NMTPUn#H*G|m)T-B zAmSCN2#@`h%>9IqemK&^y&+Z;;+oOqm>v(RiE^#WHv+n1CTKRrfHgwAqGe(IcE7}E z5Zrb15~C5Y6)l!c8coHv?H?Dc{`U-?0F@^Ln@!g$8-ib0wUn3#QvU8;poS<|bhc;+ zjg9hmpL%PAi-{&A$qVpcOKxIh%_c_HY+_`M1anCXkS(^%+|4G0)@(v(4MlQ&j*SaC zR(ATt9@RoD3_ezVeX^(#ekQf{c9*!Vpxp(YE#>bQXp4PSAX!us9?Q{GZ0jZc{i1BK z%{Ni8MyOa&f5Br5`U?_^=FiJ9$={C};b9`_R&5Qzuu)68hp-zVVUnlsz4RX4sCQB6 z-j3HHlV$gM?9;u%M!1)h?%aMu&}&p9cRtYw=;|M5EvxhI-^S2QkD51|$X2t7Y&Al* zf*r#U*VWG>)arIWzbVqH5u_DVR@hcF6(3YYQ~6DD*pthHbORb2emGRu2=gvKJOO6|oeNskO!zIJK;~@Toav+-$Gn2Kt}!!(#mfYqdKzAl8VqRXyU z5Y~DrTMiUjVOf)<_;%hzv04e#nk*8BjE*J*; zB!R8>@R18U%(pL@v^cZ4V3fIsF2lMUr7A~0)R-XAWkR-FCwWajSqq*gvfIVn%ddn>OhbEAm~ zW4(n=ZzsXWpTf`BCtrX~4k;+06^u2hxqASG`F0)3w7^ zI99Ot2+)eAf|;+22Y{=aSwg!hM5`5&6;;-cT Sc&JThI;|qDW#KJn53R7RU@cZ5 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%0AxkbzF9O|H^;e++%pt^x(_z+@MZc*XJ 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 &eABPY-fIXDP6GL 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%0D-eBa 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 ^b~Feh^O(HG(Lhe3b5T24s|I+& z{G_geH7(cGF(nl=fuAgEqP=X`B!VW|(Z;;25j`N3{o#91m-)V3x<3rKOT@SdAZ4_@ zX*dr!rPvk!z&wi|Ucfg;bceSIEQM!ui{jzUgp`}NM?9lzRRbw(Z0+_BY@U+I+=NV( zqWG5Ie?Okc!Vl8W13<})K!K#>KIM+geF`4E4YDl&%GE)(4Im}&wXG2qIHdlVZ3Dkl z-7oL-VWf5!u z^;PbFk-7(FLY~IS=Z=jX?fd5U^ojX4(2`~O0GX$~5KaX#e_`xL*8gqDNSSeQ;3jjD z9_hwZ;D3`bzYQ5F(JvUcQYdMSmORGQDokFSZ-0>w^0gryWl9q@h@q3&!X2G--w)vR zZA@d~qUQ3uAnP_zlmhD?W~Op&-hJ}-_IKHdXbqvv>*JG_#dZ~vQie8{bgb5q%3#od zH^o7I8Ovq3KpihlS0*H_oeY|Aqzf8Q)2CS^QY|Ew#HZ> zfYFdygUsz^>$?0daK1Itaw9g@5bY6nWxM*zJy^K=Qvh-s6H_kc?d>cHRBga5Q*BRZ za~q&b!ECN0R>J)+5|>-!E|B3Gzu;;-{U-aqt&x|T)!lUbx+GGyMq%=w()5-5r!ekb z!ZX;*_2D@%7{=J${z*2Hw;#QgqHLfqCYENRZ6Ge)XE)*S{SHU3Ic3|OQp!?m#N{Tu z_peT%v~|#O^Ks(oGPV0*d_$Axs%%^VBQ1-t!%yvDo0RVN*om31PP(BW1>GmX5NhhI?(K zM+7x=_POYkB@b#4HMW8@*3$v&`F-^SK(%CnwGpg@b`IgR*Vr0c*`TZKw;-j(3Oh(b z3R`K)g*!2G zI+fO1G76@UtLigY?qU-Sv_@FaKic}2kNxx$lqTb|ffZ=Vogr@Y?M}~uUdpA-ZD1=w zQe&#I6%>aGto9)J?fI{0S+Ilb-L^(pAc*m6`lpYmfwoLP!P3%G-T`x;fqlfN($5Kv?6HYS6m` zGMXz1msXG8%s!Yi$={6dn1AH+~!Z%qe=h))vA#)=gO-VmhgS4xy2S zN~xu5Y6IDX6(FO|!VK};{0`$hn!)J+SeaIpkaT|yRZXit z2&=#5i&cN29u3}#dK~wka!j-`-DSfDlL9Wjj;}w%+O@tzDt^N=(7)WrbpglbP~#xA={_~9NFD; zyZR}HRz`e{TblhbX%#~e(<)lJ2V)3Y(2k#@Ll0EuhGx>p7EuKJ$P@DC7Mp{-pqPvIv`~W@>Z*YnY10#u?kyhG?d}i8NP9Sz*hNg4 zMiABxgQi3^%2yE+&J}iw6FY^Z^cge)azS2_aXkO2y9XaCskA`}cUwZeo0Z`R=m#BJ zv=ZL2(_16u7D3+Q(Wsj>ei@eteF_Tq+o&knN3`xnh2q{$a_gR5Q}*Y0<>5Vw(dBs zu49TI*B|NKtU@x#$ji|a`iwxxyVpkK#SxwiGNXh$?6}5UnzzJuiNa`YOax8Kb0}dx z!}*j!>y)NrM``|Y|5=Oz$1gCNaCm6{UzGRIow*c{6@y_71chC3 zMtUZ5Ihm}I7%G%CuLbXhdbz_G#fY}sZra&Af!}1Pw<9#qB#+6evoN%=P^H4iMk=q{ zi%cz`FsAWY3DCdu@zmT?Q_XD2xG7m3bA;2S&0cH=aP=O+aCiZ0bSO;d}I{J|dFH3;}* zfB5G=@Tc0u9mk7Lflz<*lh+}ZW^6?O9o>o8=55&GSYu8jv9k!2V@^_+%&1OQvPGaBxv#Z;*PWAQ*JP*S*ENaNcIE$5_oe@m6h+tH-@ifz zWPC(@y4J2jAC*-UMD}$=dPPPAW*An*zx_R@?(NQVqHD=}zv<7uw}%@Q85xlo5qUB) z>#cJzDy;kie*+D7UI>S?kbH}OAG;LkickbHPXAHjZz#y&`IjKZia(BL2)8N>|CpjN zKZz6cSh~{ha1VoJ^;{TB6etY;z^3l5KfDQQbgL**5Go7;nIY4eHzlFxl{}$-srj^k zE&|B0Os}(TMpREl78PZn$14@o*ss3%5XwwWw+Il&uKW@sW&I+E4o`oZY#lHS?)eT& zlJ)TR6aF)uUapD&ZP1hLH}Eh+D$XH@KqL#l!cNXi395F2j7y`$;EteEw4PF%Lg5Z9 zF_xuOYw3sq+XR&tihOVtH#%t0Tv}ih28A%9;2C0;L{*rAbBqfZUKl0<9rwTfooFUi z8dZhDB6lY^r_-dMSI3BTGH=de@dWo0nRX4?Lt4`n29?Z9Vs?CV)xpECS6QK(=?-TI z;nR-SC2!YH`l73=GthgvyL#hi$6T%(`0Kf3p(?B<1AKPJFEL>cbg1h31Kcsyc;*IZ|`0|!*7y02V`Tp*1M{E7)%_kmX>hXm53=$stQted z56C2#8L+Yb?av?k;RO(gUo|iTs@|=zIwK^^G0UZiz|n|7yN6^>?%2#_j=Ks;+ES?(4Q%z#JV zG}{lqfRh&7wlEmueb8XFx$jYf!FqY(6S_b(Fav+4I*a=s;3t&8*sW_+12bSK5Ob*R z_9%whmT!Yt!mHI{fER`l<1zQOIII|tdRQ@)4OK+|HM-T`KuA}&FR)!CAa7xq27$N= zt*?(P41!SUtSNY^yMtYc(UgF8h7DtAWdWrNq#r)DB zjwR*+<)GW)<_bHSet(sOiAP*Ug-JoRG?Zge7|k*uM2~rL`jIk-(h501u_!~Bg6JP{ zByOLi-zj3326imUtfmB09dB??X|JaY=mwjo1ENPrzt5LGRAoRnPQwUK?7MTJSXCOR zG5j(8P%;Op#z!&)PRqOs*V1Xq!a z!16m4Dx=H6pdh1{=A-&s0(co}KeGA~EQ>x2*BT%_(BBgIOFQubffzoZf?K1^7~ zSoV`{QhrMeFAX^X8741rz2R-^@;jYMMK9dkjNZfL6?_zOF{UAKpo>a zKKff$xn%%V3TAcbN4l#J^0-4zfdCIkVA!SHxeUB=v^Eg1b2*ny(lJh0ob7>qJ*urNvPjzb>zWQsP1r(9B|Y`zS~VtA=3mrk1+ zmf!C``b>C6>tXH;SFK}=b2oj}q_uGwz!dH(@Dw0H4f?bF?n?>&hNy5{UT{vkVr2wX zFn~F2b}Q8Ca5HbeON+xY;3^AZ=%oA~IEnp>zo%li(ysud%&04XCv%j(Xoru7vM`Cb zH#!uWR1(}mAqvlrb7FGG>Cpc450Zj~DwGkeYQHp9?T>fBwfh2^ttAo~bn^1Od(WcD z{_`g#$uZRAdhxb?s(tde(g8zFU^jG<@rV0hJo|pNAFHjZRY(jQ54Zsbe(^DXq%mqZ z3d93LzT=VWp{{un!%C{TN&{4KBnfspKHdNN+CpqcGM0d^(2EwtR9Uhdt+p6gUIdq4~EhF6EnE{%H2iUf7SKK<-;>oReR>NxWr}AsG0-9lITt0^{ z;#m!=`6blCt?uLMjVre5Rs&Fz88ri9llzn>F}Y7+uAX8ofSQ}fTElE`w1~OZj#VWL zx`*=df);d`m98D|iLBq%sVTNJAc*`H~q zD-Y2P@4ISK9)&{bY)ah~c>k&49=B$w5-QUcG>S-t-{tuG?yO=IC<>+YHZ9>%7APbb zn#|YW#OO1Is}tKF5}tr6Eh9$3(dW;xJiPiULFFhSG9t!%9u3;<5L|{hjxjAE90fH- z-<5wsI)uAyu&)e%CFpk*AQgJcqJ!Hi>c3#bLULJ?qdvjd(mV601V!P_4r9@f=#cZV+C~NMHueC;d2(b`0o?B{O=L@tmf+f{p_l5fHD;Nf*$s+^5|AW<7Y#oN`rrfq}H8uiFm)q8@#zw&Ia@*1nkCf`gCnpn_yfP5a z$&_0_@-js=Y;T6S=V`gjZ)INt`DR4Al|ci}m)j9FX!fKCuwQ0dhW}-^6@b9pwsf*j ztJ+Y&8M0fM+kn9Q{@%*^1PD**2Ee}?V@y?m|E^9h{`d?^+=fdm624g(>IXcA`zXc! z!5=`0!U=m<0bF`xgfCb7Yb^HOEoI>3uFw!T%ZS7k@q=4NPZnB!dUYJ(ng zbzU11InUqYaL|cV64asUD^N<}PzN+JZ}irNOy>7=cK(|Dx0%0nfG$I?W&f!Tpk<&` zNdjmYD2=E4=Rj#Zv+Za=<;B=Ap1x)Zt*gZiq&$VBqPU&|c|v$Y=78vaC|Jy$igRm2E$1oSfWvkqFwXc} zc0B7_0hhG_mq6Z!`YNEa+&kzB)c6YiUB^PN5s3z9KJ9qcR_JxfKW$#rq0lSS=2q)< z$=~I-La$l<+sU{~wkoy;$$3h(=_O?lRb%5KvAWVlV)dr;N>GGimeLTbF#+VvT5Ukp zBC-0>OJXsEVN&zbW}D1vwk})8>`vPZwUupM604|7_A<6=uX(m=uS;ifavth5ZUraR z1}Dv`I+SpoM2NplB#noc{e^E8orj99$oKSb&C_;qX<73-IAwu2Yj zu$Wq7Z@`Hbh}F2@wR;^*;eL4vb=Xm3ZHu^5!-*p4^|RYlIZzv5lpWD-g&)<1ALX|N zbDx4X3czk2v<)N5Z&v*)^u7HOil$vR!y$B;A5c_;xAP)XGV=x$01Yu?eTR@AVFfxX%IP9{IN*QcAtBn8*MFCuO0S{Ur zp0}V19LzVbu_g1#F@pM508kwOpm__%GO>&i5G8z(0Vd*mke4d_o49-PHP8t8L5Dd2??aT9Q#qUFg%Y(*B$^%uF{t_jf3aODZg zl;Ur>EVc=_&zK_l-z2s-R*IGz_?iF)(^#<9JLHELOVzfC}X zGP`IfkY7w8H*_=x0nL!bhl-r>D6K0;s!X zHF8m*s&#lVA$BOF_^Syh&;na`w+qA`EiZ}XM$aZxt3~2;0->>LwK1g`TeaG>Aq?>u z<0)tG8UuZ1c)GnZ2W2lWSAM&b1AkeZQgK7xnwmJz#yJ!RT!poDW`YJFr6`C zwXeZCW5g!yO{QBotv7E7t5lkuZnr8{YC^HnW`&jEq5On-HD)!ImvTvZ6A$UldMX2Y zz-N}T0X=SRsS<6h1j)(N@fyA}*0hGxaL-Y?V`#Xn42J-AY0=gg%CpE>U1fIE4F~ly zXZNiNiyEHZJ4IdKJ2#KI2Jd8d(V(9C7l?J;TlmppD?w+KmIvLr`xyR+qG6tV;i(p8 zNU-^x|M%z(mM%65?<^CG2VEu>GcFT*4w`8_JHj`k5cQx+CSKNH9HnvH8gAoc>IDs` zQ8H~&*MUL8USNF{c;t7O{TP0XQ)%%bfKk(p{;O^`j{4USRH7{d~E4Ty0vDSvMi zd0Fg~RpI0doM$fsTvTAOm!85~mR6?EC^4eJdCJ>CJS3m};kO_B`B}J#gd#OodZQA$ z<`qm?Y}de)8J?OUGFEWmh@gs-1l(oa7x(cW(`^!sRou+571NB0s$Nl%lu=^UXSfw< zkCSjbx<4FkIlhB`KytZJwy}$mTwvJ^ZtR2|`n|~ZR#Pm1DVdHppengf!Lp~Y3Ebr7 zVKX2nxy`C~M4E;HMOpaMWbg@* z+?xHS{uBWmYvN6f)0}eOUu$>``ZhSrqWL-2b-cJj*3fOhY%V2`)0=I;Y%=|R0B>@i zlFSOeGxsSt=j&vk1zL0CWT3qjaMK3hCRbQB=p)(%F>T^b&sGtfJAb5CXue18T0l3* zTTf|tYuL>qPo0^I#5yf6iPIvZH4x{L5`9d|tTuo+nX0pzoy#Uv81=4~ltCDskBh|f z<`WsTT4%;~hTpskSB89Y>e|-UV4Fo^wO#gPQWWRzViTGcEfQ;Dw4`S%%(*01J>SH9 zR+4kc7OIy~szA<+1r5kqQi8!bV*=k zXRL#=4c%(7O&Dx=NzB>R8{U&WsTBdrkE`)oCMadvQ=dxDTVg_|XbkM<=FwP@pnPEs z5`v&erFj?G3d{1Y2XwOUB>N5}HY3D%O0qlyhUT=uznwJ^DsGlr(MdVlg&>tW)KPlv zvWCR`F6bN`Z6b)I;c=8+M2djXrOBLmgo+mFHPaatCh!jd^OC;`ukLn~xe^D<=FOxC z9nH%V?0ZS)QJdmLN<1ntywbJ(J#%R2 zB;D4tHehIxIN0>Ek1EFER5k0Y10pn{5F5H{tGyYMT%zR?CxDypQe$#U?>bc7tPW3nu=(mI7Nd>s&->97ieoCC`G zRwu320p-bTi&)Qf7+>S4)s4gWI@I0dHmhzGLvg?+R*!xGRJ~6-HEV-)X2{fTykHiN zmv?9K-CC^m@7i={+uERAUKY@AFdv)9`!N~#81 zmNd^?3fA16(x^c-)7>$UW`;~B*M!mK7XGyXGYkuJpL6)OOLuZw(do9RT|;Spb9I>? zFXZRNe!R?*Z<-Q}dTmuUWA2zxJ~7erN#?a7Ht&KZ3UhIZ@WTQTRra{o3fA1s5XDfN zIaOK&Huxt0DK&NeQwW8p2#j-6H;=#u-Q+jx3yI;4xAk{$Km}eM)NRs>Q`T0kLnp-3 zg&S6gAthtYg4}q$HUKAE7(;UMpR$mcJ5>zZ$#3gcwpFwT`Ds)#6rHZ5SqIE#Ue5vQ zIl>&ni)@iL4{y0TGBHRf-1=4^&)N!qkWVePqHcJpzX1TcRF2%;unxG-0VKh*TrC4#>`>U35BxLsg3k3FoR7nCtojf?oJEwPQF`wZPdT>&TSXQ628kx#Vob zmJy9`R*M^s^Y7rWc?4Ttmf9JPBaWSPgKFf6R%am2B4?k8MH7dJ0O_5T`7CmF3+ClX z-L1|{b+@`qrz5y?9oRbnH#ZLKT>x-0yJ$#GZhY$^q=W2^XQ_|%OZOgO7R$Rhx>&>$ zNCj!@4ADVShh(-`VO42t^8epdz{Y4NhshM6+w+} zV9%xT)uJO6JhS7S>96U8vYuP)e}hg$6bD8Qg=0XZ(|aJsCYT zum|+VS6;+)+P;g|KghKwox?pB5(qNXIo5;sf4l~USg{Xv;q>VM5H$-hv?n-ep5Uj_ z1>Eio_Q|1lhnndiZ*|_P3vWxyY>V*FDPjW!x_QJlOej0{>hY_)u=@Ev;H!v zOoX(C>&%edDm}G(b7q*Uy|S%rRXfUDm7um$nxF(VmXZl8!*r%-6v3G`pFuV=WV({q z7F~D)Wt>chvB5Fks4NaU17c>lsq>rRrur98z^|C;3DD{6ywxnF;Vjb<8p48Q8ei>5 zm(ShvZu={Ik@PZD)|@@orJPn%bM@Yb7Y1<+8t4pIaWXk&))}PYebEfSz!c{uctmFy zigT0uIJgG`~ z;3v7w-pa`tq5?SkxP1)6mv{%}53?9~g;i(8F^k0N^Dc=Wp7%0(gHtXkO@`j!luKe| zt5`~nt|5opme0T~RG6-ECuna#O758Itt@7qzb5+gGT+9Cy_LnxOQQaAUXpq9xls&5 zxnvuNHHa+|s}UE8HK4uo!+m(<4b~^ao=bYIT5qVy44GQ(LaTDUWpAgP#)On@-QMb8 zE{SCT->Mp>w`!P6{%#AyNXCd&@`#bFpMLQHw9EIgNtEa#G%`h&XRL^dOmS0Vjdese z;QI)NO!3ql#K(!;{n1;&3!G*do8KhFuD82{BjIrGTPo-20|vquxbjjK0F95}%Aj_> zaaF=-ACV9Ye!f|D)#81S+XJ?^j991E#rT$&xb^`E$qPt*fJ1VhQbT6@V&Ws$F}DZy zapRcV2Mi=vSap)LN%y;76N|v7e2@a1!61PQ^Dz~`^@f7XQ>yi{^<;2J;I9JfYAlci zfp29lgF@!{>m0nGlr?LAE8wFy;3M!Cg;*gBeIBxi8nY3W-t&|iOEcx>(%x!f0$W#L zfIyZxtJ};JD9TU2eO@Q8Dk1N;7 zw_o!$%A55a_)ysaKy8`5E|c);hDEq|2Q9vBKjc3}6gS%lwcHcchquTts>E;*G(0vu zt)ptj9C|e-)UeQ3O)@VAiO$(j{X(=gDVxzy^9ln<;A^=jw*3QR8a_1wFMi8Gs@^WG zfky^CW2QYL71F(-CZM|zMi$n+9b#G});WkV(nC_-S;BYK^WCj{qqoLegHmv}+VE0! z=$sWR8(yicVcY_Bj<`j$S_w`4|1LNBM_3~=S@Eh(B~w_#Uofb+e%N7C z;rvCmWqLzlK-2#nrTSMtyFN{RLt#z?BV;}+C%O4#WYGZ&w~v_goC2rseX17h10pm2 z$d@9py4Y-m2WV!ol>o|2_4igNOdrZy&gMIRQ9FifZ^k9(yiFuO2w3}`sZ&bV0tPFrnZd;h1SK%7%-ux0V zJmfPkw^=uA?o)1IW~PVYBZMs2Y0C@__De^WA)A{ww-vYWar+9=d!C*fmiinT=T!%q za0`!!bUp!DuL8s~Lj2h&=789}>2M}Oe!&Be!ooQP%LM|D#C7K*5B17Go_}H8-F2WE_Bj~I&#z4br3b?Wwqnvd z_a5H;8uOw!d^iN|>x1v$sFN|Y{f`udtsVwFnD38H#zkWFr9ptud7p+0GPv0mh;L#o zE0viQ*dUyFN--5`+ApO|FV?D8hSmhO=a&_NOlH}n`3LnA9)c1PA#DlZjm=`E z(Sa^2*&+Ze!3OEJPOuHuS|K*_x~E|!)S&!39U%g-8Vq#Brywl;#2(^$t&`&~tkmTT zs2p9{*022(#NfP5@xBOfN?wR40y{=*}-3r(Gob=zReb+1IKB2g7@0d<=W6h}2-wIBr2!)Tg;lQbA`ou3tq|z<|odA@804Y;*<1{ES5)aEWf*tBtp?Q4S zm7gY`U;xMkA#986Mnj$fAawoTJq5d>Zm!t9;ZY!05;)rBD)vq}y~#{%0~+o`k$cie%mOFBz$hk%@JwM29=JFIMFbd0&l zLgmUFXZNF{gF#Ie>Qn+}Q-aU9K&cs^VI9-zGN40sI;cw{X{b*L{_M(4$=+{aSO?-p z@hdDp4-7kqI*e6j&cJy#jEg-%R6Gz4KUCPg|^TNj~FWk*kq z;60qFYAW7sm9WAh92y$!qu{!Q!Xi^TF?vTBGrj$7%2nzjl&j>ng}Hf(#sEof9*qqz z!IaHQI6`4c?o;kZbD#1FO00fJx9Cla-(xo+9Z;&v0I9GhVATTu;MKOP)nER8j)!Hy zQx@2|PmOHPR~AA5UqdXgbje>Y<+@8wyFeotC3Rs<+kHRMZ6K0ZzAP((T+Fq zc4>2_3|Fy4&LHlREdro2-@AaLED+BdE{Nf_i!zHg3{80*s%W@K-2CJPjLDS!m!VW; zQE8!C<+5w(Fiu?tG-ZKU&4*%{Za^mSyLk;R6-JaeQ-%tas0SH80YRCUAs{H1#OZ`i zU4}D6Q3mK)#*aZM_|w?nOqacaxz4*KZG>A^79{bhw=9WHKp#lyW(o+b=KC6EgT;7@ zE!UDIyt?P2 zxr0nxZzuS;GyvvB{t;O*-{v*EqzVtEYclH64jVm&DK(Vjp#|RA%X0i(N&!kkV(8=N zJ|{T4v^#d^p5WioQ*PYcwqWAx5M2V2xp9atLrF?zvj)?^GFxmB?T0sd!(PWKfmvll zY62y6F8U5&O=SBhIdubTFg!RcN?g2D)bIY2`|d)i)A3T&Ab>~0IRS2Eu87#oYeVPd zrR1t)pOHZu=~kz@46w{h2SZiL98V8}b38o;5(THD>FZyAg{dXLYiY$Omwk7u1w zpG2#`5el$g1|TMMN;WA=t2jY{#qRJXnum1{%$9u_SsDtne+&fM_wh*gETm3YMj61D z;bjTdDUI!hzsz?^EOqCtKcfFDtlM}$6(b)&ic{%E8IYHK@ht>Ae)bN2GIAu0rVOx4 zw|xX|B{aH0Oj={CYhX0wWxD&}7gX((soHb)|bZ z>eBER9QNgnfqYLguNURr!^E;>SGQFBat*xmma1POWUkvz+@)LG|*uoa@fE4 zd+d&Ex94-4b!i}s($MpyP;Bsvk|`?*xi%YYblX*(jKZZGGTyey8tjx?A2n`og?fk{q>P)$cS-TD5H&;G9o4{kAf<;#W2RZIOM83?Z%%go=#7Pvb z0uHi3>ZJ%z&dUm3#)*6dxzj_W5ukJm1Cv93*0q&UN=*EhaWSx3tCmMA zm?CWnR{`9Jq_X{0Sv3khiq8rk>!Bc}IQ$Gw9|3^FV}RI^BBnRt)|FSIprU<=K3ES+ zjy=5Qu^Osr;I^eiw+e@EriQ4gaNd$W1p?AhAR=ydCHDAuH#dEbEZeF8cJRIS(~^ff zRThXf)yQm-BWZ16ms+E9NsT9Eht4w!ur&t#d-LVSQ5|S5Pev!Wx)_|5?-=GEMdT& zFnoBKVz-qzX;2A9)grw|%W-+oMq2Gu0XbQ2LKk}&Dl3c|UTsN)<+%AH{*gB8Dg#gO zr$zmE>|7ScXX-M451-5QZr??Dtej;@IiaX!To^Z2z*CmxaW~wvu4Fg(%PoSME|WrO z3q1it0WHh@B&JckC`aRDKvKqqK`RpC?TpXVct$Jwh?{tRycyJz$=^+U$zMaU;V+PL zbUdTWGQYx!pd7^pXl6kqH!)!sUYbmdgb{--g&?fvAmNzM0)J0?uP(xQ20n|-nOwuq z2@+m~;+JK5x9^mGH2xcogYI>Q&8I(nfG-JYsse~JH8^F17Z;J(B`w2ykf6Oo@!t37 zB6KLF*tl}Sh`B-Atsf&b%k<^w5UwsT%3{ZJWw6e02>04j62oy^-so4v(Duc!11~z(*6dq%;XQWySM`?{dFD&BF=dGS{=bYOX z=I?dn$H}XkM}8djxs9;l%9c!F?Nrg@_hG0KXJ)sXr_!-S)VGT~*lXeL{Biv+gxRaj zjPr`LHuwjI#MqeroN|`h(4cw#YDSedo!domp-7AI#sQ6__J};6l@Yt`$7%Z-1$j%v z=x*8=N9ETNy)ZX0NTn6sS_RA$jnBV5{2MQ|IC5%L&!J0L4y1Q6)U_49%<9t+psCh< z!Y#M1HsWGpNm{knytHbp3rYc#YD0bIDRr)0Pzsa-(8)~C+k)uJhL`#^-&}Q63aV>^ zem=pR!r)`<+3@}ex?3rv!xCSZ{|1CD?TZQuF2T4q6nMP0x|T7{QUz7pMJwP}V8F1J zZ`dh3dwX zEx7A&7K!eL8%iw6CGNsXj^p8B3c&#ba=z*GR2{G%r<3*r<}*#Fjuaz#sy~MD%+Yz! zTkLnhcE;(UGf7nq*x?}y=##6Jo)r?rzoba0w%V6PVvm8l`pc^cxZ8e+Rj%wm*8%0p z5?j6Lj0O$bx&PT6mK1eAqWOdX))CH`7Bm#UlhDtT({r<0rW6~E_|)%g=5@?nQS}P0gNHXs}l{vJzXu0@aQvb zeMI2rl7~v>O_9t9H24}A^V|=V_dnN_FE6bjge>Rvv@?!Jkck&H*<7 zFw;+vTY3tS?-X!>vfMo2T8+${px&(Jp7;waQFI@}9PBIN}~9{U3H%sEYM}&Pr<{ z$bwi{Y*A`BY$OdDhW^sYf+oT%GfG~x9XO{$A5A!6G^6KGRx{LRO?EIsEVHVM$jYqh z3{c@%ycnF`K?7HE=ojq>{^^KTW8ez-2h+eurHrWYf}0UyNuQbkv@G}3z3IFp0chd& zVo|*c>R>&o#+bL1RD*{!E>>A0WrzSy4VJtLMfLmkEVSc~=vT9kHsbIO4Xa0cs|H zOb!WjjiE2s!VJar!!{{Iljz+T05fJCsRe7o`;54vE1Gxj-FtAATuNweLg~$=`eYs5 z*tsJJF*e%;t#7RQh5>nloR0Mieet4&=EiUsaK4;5pqIgFRX9(8;R@jsTSSlWUDm@* zz+y%vmJ2r;!(ztNEOECnEJiwZ?xq}LY7C13=d5ts1W+dTDPL9OJ_V0^9i$r^GP-e) zZVZsg?qUFEGKDpW=3NXeB!0X8bIdjj_WkPX6rv2AxukqsC>2{{Hh;i=$Zk`H-5i;SE^7$+bB#J8Z$+OZ87pfM%AcHBesmPc@-_^^#IF5x|%Q2?7W+Mh*9t z);CS4$4QC?nIsG0YM4YO_An&ovQJ>xBm;-)n{kG2DneXc|JHY}V`O0!Ae+cd09-P< zt(F=e1@vShuNn-)WLlO0z6|@`04aEcfcuB1!6x@tG@;;T>Jbf}0g@TjUnscAV(asc zl|sk$CyzY~m&z4iLLnLhV&)YxYew0UZS43FR5jDO+b@{Ic)H=Hl%TQIKp6HKu3`HO z%y;~l*Gg&P5U>~qwc&kZhp!%o$q_nbYq$w;3~>k6NwGkk+r&NLeWQ0cjdw0nCA$rH z4~K!csFp}XzI&&BBRM6*X8;wlnv#QV%aK*QD!w`3Gt9PGT)5%^Ln2i?ek{moWBAM^ z=d^X(jNmh8QDvcSu*@Yx5!C=0^kYd>LuP`mM1X+Im`c%#ET{q+vn+u6Or$BC*P8=! z>_Y)KNp_+eJGc}?4Kk?DoadHe1H@^6unnayqk}$R_S8c#wSo^SBKfqu+eUV(E4fsnIf1Pw_djEGUH;Ie&+jsHLbgHiFvM7Y%BhFUf)zMm;G@>ILpz=lek891!YPK~{v!|vtZ0<{)Ixec``nIR;gBDqh6`IZ-3iI$wA zBuY|l9wo!gESbU@I)ar0uE@c79}dkUM>%${q;X{E2=X(U@X%tB!iz(TZCahR291m` zO)nm6Lxsxm2tT*!QFFN8y`O5JS_4ByIHq^^wFZSOkh-N<5_;TVsmH93%igVyV8cQd z_<9)QjcrWGG1>Vt`-iV!m?ki?H3VcY(nm$&%S zb#Ilmmo#kGFTiE37@CJ0Oi~)R4v5IH`tlQQ5JF_mIa!#l100eUkJbSo$$iS#1DQ_| zIJpkFYk(p*4!P?9i{v(|AQx0T6cHEq?!h*j>b-NkU5C09>X>zqOaU36354x-p9{Sk zahcwu-!i@An#gQ7YwjRGm{s$SAGYT!%+>~q#O|d#ZP$i}fD5~HeC7-Eif1$=K&}-G zi48wY4F@D-u|I}^%m^A#kHh{wh{q${bO7BU?E|kv;mNWDYOyH6cgeB=02$|-ipSPg zdjiy&#~=m|2jvc@1=k6oUq=XJ#tuHq7R4|yWTtxo4Cz-7;IEj24FyV=781(WhKP*z z4fH9XuLC$TE;Q|!)E&xC!pM|;>?LT~cE+;xCaisI!LegRz|TcA901M}Je6f7nf3qZFkU-~ttOB%lho`49h zYWj03C0++CW%>znOHUaNHq(wjg%Eg(yns(`9(ff;x$|cz3(6RdZqaLO?>?WRf&wWc zly3>8m~Mpfkx=^jj>%iU!a{=KnVSr}N>275*M_Kk1@nStzx$r!{%LXBil)p9U}y?> zq1Q!)JZ#u9#?;$v)Ark1(UcLk`_wN5Qx+&SyTs_L(CBVeU}kK}2Wcc4fD$?`nTwt5 znIRJcA@{IGq42btT8A?|^aFS^#UqRjPAtraZ6guTkdu%90sk``kw2``GHz`+$!yyS zlZ+@4g4RjnhLpfr9lCevSbD6BGy@7K$%wr{FCM_)68vdtfEs4vVrUQxcGAxF+ zAO9P>Z?cYG8(8vFD3nfp^{3y#xN=$MI-K7b?UyV!*9MiK@e#YC0g3*Gn4n|zk2F4J z3W_R#b1Cm|jAvA5QmMT*)C9c))5GB*I3H20!?m2OJ=X@B03_vR>#D3M0R%?mlLheF zK@+eXUZ=MM_R46=_u0vrrnNyP-HR{4_pC|)wt^?AWL1`s9pDP0V}GYTz;x<4GRYWpaUc?0%PAdO%S)&@buJ z4r^y9$`t>!RoDd-h3VT+$-9C@2Vu5pYp)9^$_Q}+E<3|dAPL4Zkr^(Ccpdq`e3SNk zyHHs&-qW-V+lAs1UIIRp>76u0P0Cf#U4&BRd+M=oS$I!T24U#>m^7lZtQ4ZQB*=8( zpwEahMf0KPWL%!Kx!T2|6Lyxfzhk7MFq^cF?gFkdK!tdKQJJ^n4VLOt)mj%TPDU+@ zc9IY10=SZ+pHO--NCkh)K*3Glp%>kc=b6%lb3Y^c#6t;M>q6$NCM0E>As0B05aoK7{aHG*UruZA&w2ZrC__Kt0=w$ z|Fksh445G?M=3>LKZbwFmU3s1%pzNzyja`~4iFdQ;;Ym`b#@AfWK_lRIT)#U8s9_@ zhQuJ+4fm*0S3{>Dj+8)k0gf343BvlO{^A+VQ+!MDzcV=I-{6e7%p0Tz&sxBIa{9M3 zEarVQ&w<3?3{PD3}Bh5R6GLT|G7cR&bzF z7~Uz2a<@I42d`kvT_{N5{wgo@7!YrCh{22>+41fSOnLjgAAa=!kdv%PJA+Xk;bFKb zUf8*6Faj9AWG&y>>6}q+K5G~|_s2J3XMVx>926jtz)%#lwf*Fmcd%OHicm1<&VZDE zbD6gN)8~IDeH!Enp^Qui5K9a;2<2i_$ilV@D9W~lc$?}!_pernQZm&A{A7Hnbloz7pJ_Ubxih+PmZXN?2LK#-F+ZEzq*S!uUwoj(9X7C9n zA*Qub$^Z`_%CPFiq#AAtgNEs!i2+360*$E=&+`x4 zIqhR<-?TFj<<*y-1YL#Km+Ul31nguut%w}!*rMgb?oSf*3^@56rVp>oA+C04cB!bU zGsxs4dV7!!h|TJ0Spo;VWKl%{Dd9o>p)e3yVlum`Ka==lwI(y7>Q38~etb1OEGp~2 zL6y8mX z(Fg2fK?t=Fw4|B>+vL#tSVL02hk;HXLW|KC%CfVMr6cpi>H~F@fM*IWeSkTJLr9pJ z+^?kSnD_9zRC4u(bifRU=I0O^&S76OUW+jd=Ad(6hmJTg#GbK6O5o`}U>w7CKBfrn zwLpC=F$m^OQXJI>grnOa3E&0I+x-KC4~d|?0UMW&icaY4FZ+OMMAri1w8rQIq%khE zMA6;=jru>_ve_P9;WodDptggiIO4ZYvbk-(b2QO>44Fxg75U_w8HBHiZT5JxuvIk%PsdQpvu>gvY za52|C7uJ(UYLR9d02}CVIK;P2OU&M&44AWgfri8v3~c%*M5KFZ3>utq?;+ASz6iM} zJ|O25+E4wlwP@>Vs&Xw#bZ9uGczicu zNWDWB!>W2Hy8-d;`1w%=kYN`y61vA6g70+e9^6<>g=?4LC3u6!u)69}I?)G^Vu7{K zyutPDfco_9>W^vd-dphqv<{0SU48fwnm_zA-N(@zQUSk5_@Uopy);0EO$x)kgB8Kz zX))OwR6&%Y#ftVg+_ozTS8r&=s5KL`(Fed{*cHLBpZyvO2bM|=+ih@d8o>?FC?C*2!iO=z>ie|)-5Z)gZJ|e@f8e`L zbHQ*8g$Lwf zr#`|Q;5i)6*}e{8m|}1RlWNLv)XmdRrtXlX*gXRGJ=UN*CH5FbaQ4`~2d4NkER7)A zUUY7d2PfLx=Nu^w2bp_bZqL8tN(tU=?0Tc z%NC#V+-IsS74KG%Ssx0KrWy+3g>t0ar`&tzKILva_o>?yxby*a%Wdmc&OG99dEv$Y zx$NN-AiB(c8C;j&mP16jZQW{Y1V}Hpty_(aaI9>qEuE6#aM{!&SO5L&F$@LFS9_kv zu(ogqvcKRaOF}$#3!EKK-C|(isl0)a)Q(4P;W6;kEk*^N^2Ktl0&n3l(3ayIQ*D_l zZZ#?b5INP*)qlSpx40tvR-?jj$;{D?w(>?rl<-yq!w}1S2{ACPGBQYe^IAzfBgLC{Wh>9Byj`I@pq#I z%Jc#s@bnoxM|rDRdmD5TQn?*7CsV*ELtoMdf`17XQSa_X=2hU7l0~k7#>Hs;NF3CniZb=@!9*UWp zrvRYxUkQB%u{+lVVznov7^*7>x>p2z({UfLb$d>Uoz5KL5jEyKb2s2P^Ya!5IQw** z@1s?Rp=-c}ht45s(i(V`+=|7nR6MP4D;AsWW+)b$k|b3t;1w)t&3Wc(%0-#onhOe4 zJ1%l|Q)W(za0oB+sepye_aZ=GQ_9z25b&?5N7P<+C~tbO*(2E|j&)@dBiWd{p|iT6 z=AIpL0o&q!A+Jl^bg22_J2kmUn@TsDm7!X*oCA_ICAJzXz*t$2I8?DHe<(%EYC?@W zJswh_DBg|a6L~mS5q#CK8+WcYz$0$u<&LO{@4w59vTuHhEl*9O44;~!aX*|lZHrr> zQN^v$sDfzJb&xNBG2J-G7q>#0id&&f#jQ}L!V20@x57%K;XQo#%?<6YO_8%OaA}kn zbNIZ0(iC=pZQ%G+i-sFQMrOatr;nNH0NAq_K{px1$6HEpBxqFx7&P&UMDch6hp`3@~s|EE_) zHidykqpaQ1b|TL;k}iD#+Z&qA4&sf9p*_qqo})yIiclL4FBX|on;}HgYA{G>v|FxS z1BOQFMGb}r&B&nBZH7!O=49zqe^c1`J10~78}2jO5e~&uNfOxVL__T!3z1m#(-+_3 zAMj4;Ehr#fG*!CyvndShdG#M;^_RB*6=5=@Iv9}Y0@FLD{l68oQv_%yGj`t!<|$b2 zc8bC%X1jS54w%mPja%nyZ=gA~T`mS!SaBN+eQ{}+06j$jdd5XUAUM~KHie-)*-{0> zC#xX`48|W3br}GZFPKhG#BJsqa8Nu-pDq&&8t_DQLBr}(Gx@vSvqZ9)yI}NCCO5@j zqgg)CAeHI`2iWeRPCNnHeRXo1*`IJA6ymEZPU z?F<3je3@bVHWg54%N=rVTd?UV_yYmDdGHTlP-e3M56XSY?V0gR{@hT;biS3r+Y0&27SGYQb%W0j(V}UaMPg$^Z}XoX^-N z-N}MSG*KQWCkuPT4Sm^bF)v zbOPRCzBGT+U3MV$`FqJ($3Qp-nKK4Lt4CWDTqb*{730i;oXKn19o z3`H6fDVba+V9Uh0)Sv<6nrcY(9L{-8J(5m2Hf1KxWsl^! z0_#hrA2`3S34-Mf05eVA05HMw27o>i0Iw+}>&Og%*VH4{iYMb!j|e(nhMK6UM|8jh zz-#IeYbDS6I$%Pf)Kn|7c~A!MYw8gbEYJGZN}ly)1ELHN*py(}N&v#99=ZDOXO9sO zvD~NfqCjj5DZwcd!I8q7XCeUv%M~_nibrA9&exZK^STjc%W7!ejP_mp>)UXru+H1R-Yl7Z-q0@ST-uSCWpP)DXYU>GliUad_*DeU=G0P!(|ogP zsUl1^&snXxpu@`0u?dApwQ^+uSq}Y@K?Rel3>TYVzBymr(^L^1TOI&a#K`J7gGP+( zf*3bNo+52!7}>k`F(aCHhMz#;&i8vX)dem#D}b9aFCbO{8q0l3U2$#zstA@{$9z<_ z-#q45cKD8?6`{AiuD`{XR02~)C~Sr@pw@vBE+SQa-r*P<{EtAJL=hpJ_aX({>B32UmKb1nZXv$;equ77(pDN;lc5J6ByxowAxK^cuxN zhxPaNMTnP-rNbax0~ST~F=ID@Ee!*!q8cMMG2CBf&fNfAT?((}3y9SvvC0#$swuk! zeCm>?3J_qaOJWn?CPoZU)co)W2-IZPbh^Dg{Exmp4YN=}HOa@P7)!~wEv{TTe~~<; ziUm^>b3C9(+O!ntRRK1dBy+G}-Yx+ox>U84%~gx)Y`*>g{;-qIW-Z$75ioo&)St>|Vi$ z#d3lrL8lgFcdiPU&s1Mj&jIime?&|f>Yv8xz3+B(4gqbk7oOUTH=!cA-IwXz;>+^5 zxpQsj7GG?|03f*ej6oGJpz%jUQHK6x7$THO;Vp~9hVRw%#`i6TW4b=LsSN$e>_U#M zeK>`ZsqtQ8o`^FE^-@!hXhe-i>T=BC7N2TGXP+TK(;8F33=D!RSTc%%K^aE3vvuD< z^%ZWmK9=ue+got&DilvGi;-t&>#5J{(I%t>u(Io)zF570dqxk)nt0Q`F1+nL-GlHOXE-5i66GBoO3baVtPu~3~}U>uEuTZ zSPm7$fJYRi1iIsCi zi!$_MXYNGpqxuiv(Sk5x!p`a>f=Bbj!KSC7GA^@QlXoxkMMCkDUdzzbR{C@TETpo% z4rozdGq93rb^S#)HR^~KO&CQ3rea2SkOY-?e?0xf>ALGzD>Ze%jCf%6SQE-Tec2|c zzYdtundbb(h~0LXz9N7}xlg$@bDx4)PZ1mV(aj_FtVQ6FYCXVE&(qI?N1y8q=y(7o7;y5n3(L zi9iQKK#``TQde!)EsgOEfYB6BwY6bJqdYZfJrQV64H7yI|HE2Ql1&4EP8?JfcA@wv zhrEfS77WMTrl!19jMd@p@GR}+O)eG8fS!{!RG$XxjAxbDKUXSEWU_3Hd&;b#sg9)A-8Hy@%N~gx5!(fPXNtLuy(R!XR@gOE zcnKJeYi>-EEdFk8zS{M2szG(BW&{^(SSxe=6%*h2W_uU^AENYWeboe%XG&nzcEoxn z-42c{o16=(n>V7*kpT4Mh#gR#tVhI}quPtePEdvURh-W;ZA=+j@OGR`ut%mQot&j> z!dW+739_qS#oGP!CB03tLBX=|pAu;+V=p2*7hM+A9i^1Ue@gzV|9)Dxp=9q?Pq|yp zZ3`y8j`I!9xZOC;Hv!ejZPpFTWRBaryyS>)blYt|KEH>y!Pc|sV}uwkBOP~a4BNrH zxnv&beVQ)QyHywI73#VB36e+jkZ;l3&>?VVTW((gqHUec)MrF~mbz@$FD;7X6L-14 zYTPmAazRZK&Z~_umyuvqL}Q#ylQ%T0;XX^uM?jx2fPIX`>Y_0N$@wa{CL0DLY6<*3 zigv|w7-P6gh4tOX!*>{G3F&A8#IwP8IQVIlDDS6|NpHlp0-1BCF!YP#ze1$@&KROt@3E zzF|P1uYd71$LiI}iSOzZn7s*j&}Q`zyYDNO{UIFiZHgLB4GEf%Trl>=fT7Pncz`V6 z_ypc8zdgSXyJ-vwf}B|4G5tK&zXvrY1@i`hb(&B*lFZU`wN7>F5mb(xs+!tr^aREi-omkJ9Vt z48YQYFmB^Kg|-1$;^l6$3T*?vG};GIXdA$#QF`ff8}OwO`s91s04vQZs0|fDm&D=% z+W;tyhyiz)97${CK_4L+?0ybES^g5QfxxI;P#A^K^PCLkyzQf$DN^6 z%;?Tt#;OhG4&N}d-@Jq`-MOTsjpabWFtCm&E|vq$6MO8O6L;QtqJnseY+eA#heosj zFLnZc+W-4jNUd>2fG`vnRUme|3;HQxmu8vlYqz2JXOgE{YyTJ* zpYJ2CcF#hLw42`syhpjo+P4ib&m@`q#!>xjWQc@Ho@IJ574(U+uPcOS#dQ`@Zdp~g z0o_rVWt+Qg+(wrZMmD%xE8yYuxb{OlF1PC5g8&kEZ*_L84bVU24tsL{~ey6#O?JLDOqj~Y@{*M{;5*|YNq-IBQL**AbRl3p#jG#^=$Th$z;~7<&#^3wm#*(` ztz1Yu=-=%TpR$=I3-HfE$8TcafcnhqKcGH~Dh;U5GQIoY`EG_vqH*T%b7HShNwm;e z516b+Uvai`rf|kzf7kdHYKSi7m#XnLlnyNj6KuNVcI?G!5Eu)$P5q2~k&9#7fc@n3 zGyp$Yj|Agp=rdLmT{s6hEZzptXQ9i%xDD39!%aZ-^%u<`0^&2&yO&5y&R;Yy2&F`P zOJuYuD|QDJRm;9``wz?L5r-Q=NCB(-o^@|3!UuBbAVU}pr>e&M-A5uHP>GR z_g@E)C(kvl1JslIlrKwipMs0Nj`?cj3cNHtRX=4y%Uk@%elAKF7+T{7kg% zlXQ<&b;k`qUi`ktIN0((qzf3<0p?kxHTXFR))Dnt6v^l3au+G)djb%YahK%YlC&T8^}rjod!(6esZJ; zz|S;m_qL-7(Xki+pJjT_mPYAS;Q{S&xn&M1zJtZ_ZqKz623WuP3D@ZT87)}HLZPuC zWfHjkvXre0(Kz8CjhI})9*DfCkAV0r(`VRIdmApt-UD^wD8AbIG;3vsj)}dg? zjRR8cXPB7Xb6=ph!d>w3b*K`Gd`*AuV{@z%j)P4-B00i3917ddO0OW$lu0#yDiTC` zxI;$!ZjV#NTx1`iCBfL&3I|;db;SG=Ft%1i2%LEU9sBW*fQJklvq&qpDa&2o>O9yw z+$xkA8bhg2?o%-KDUJgZx_KP8x*#Zn`S|4LgdML9FnXE>!Hnqe+z#pV_W1YYm>n~E z#J~Ov_xe%s2Ut-SbZf5)nkUt``PuJ~X%af%I3Xz9N#17FK$nuHo66RP6wUM05P3nV z!P=0b%hpv->QgT%RZexK7p-gG4Gy}XR5`uaXIAxA>T|)=n$I?pRrp+X9u`eCs%yuA z=4H(`l;J;%63p8wh^ywhH!H3oK1)Iv+;d?EHLhbl^Af1Z7KGKbWlUJvRb3mrvq-E~ zdlA0kIJ}<~et%zJ4ItNrt_{tZSAyE?Z(qCywq%Ipx`6AFHR{@MoHr2|j_<&0(Y@4c z93RPk4afP_|9%Q6a<@ehmb}wsZP?9xf9x38V%uu0$E;7XXTCP5<~z7|EVzdIt@jA2 zD=1VJ&}*yF86%c!RMr8cS;438*Z+aWpeVk+j;k~|l)Vl(&2*e$3_8b}aBWZSQ#S2p zVw$x@{N@x+0nFSyoQAR-zKfX!cLcS$MMkaky}12=%PiB&th>`7gBhyOy4SwKw{)<6 z9m;T)+3J*oh@)b=Ukm8W_#@g=oq$&ZkEIn|Q9(D3k!%}jT*Q&47(%&X4FMNJX5 z3qZ^=y-vi1u60^-GbgjI4nBSFnJZt_!Dn?CN3uTYA`*ic?TQuLwzE2$MNyYbW}J1x z%?cdAmqqm|2op4hFn3DrJH=k+$i!H4WHQk(&FCjxt1?_WE3TREd)`Eo*x4DtGSA%Y zHLh5j#hv0SK^s`@opl@G6*_k$+wpotxuC66cx8^Wuf}@>`vgKi`XT8=7oe2|VmIZ~-Eb0$y8yI| zULYvD(w!a0`Wl+)a5>7R`7>;Y?#h;QXJ@hCAT}k;vughOI1P1PjdcNA$&003Kv;60 za?9pEh3R=6fjfXHH;%wvD5=S9R*m^3^ot<^VBj7G3dYE){6uu9_{s?Bw?e8Da)DIc z=Lo3?U}(w$sYbp9QZ?5Cskl&rC_9d|15%J4;b{j?DF|+77|IA=QI`QHBc!SWwb!Bu zYB9`u=JB*|_rlKr{B)_TvkPT43q4bl&9XJPWTa!F1H(%o9e29A&1?8k-+_WtaZ~4T z$y~2Ofz3?+4J{cF6cVh{@HWI`UIA{dAc5Sy))`_lDnX|b=mdlF$3W!vV0XkSaV9o#jYc9rvtXn$+QJ{l0B4--FQWV`e zf->CEaHQ6DpP+v30F}vssxDO0B#x)aE|_*_Fv`3PZaKEfP1@ZNi_Tq384?cLS?LTS z9~YLJ{?GrskFTj9x-J(IGcnUn(YVLDdNq2m?)+x3EIk|ak4X2<8`tJKJ zAm3y6Vk&vV$g|^}nbH}Q0+z}=os#VgP5A+)K;O4p%=c~k9!6X`2-+E#GQ-fL*<`!E zAebc6b=$mn?h~QHD@V|GkM5^3ur7cm)~@J0pd^!IZW?P8+LJjKN?D9j#0%vs)-D)I zyfSEHRx<$<+3rr(rH9~f(|{3*Re}H-Fas#Ez*em@FRf-5Ps1~lj~U810A_>EbSE^flV@-4ObJd;0p-Cur`W04(sSP{ljyL-Uqm3nckxu zeaEKYt6Iny3D0q#UOv!AxMWlqIH0s0+iOt@dcDA3J?kQ|&P(WXR2XrYhL}vzyYPmd z`~f2tn&-yQcD+MRDC?3wA||84h?&Acq;cVcFq*c^3!^rjr*toyC5AfMdFF1-Eaq<0 zk%w)dy7NxW7ZVkdbT;Z_J%)DN*VTS)m`Dr}l}+Fv%dl-EfTZ;EOCg`*3!N*G#c+ zbjJ@A(`}eOCy=W*hy|VF!nehNl|%Cke&7iKmiusgX+aWCTQg&tK`mE9b^6J3*bb1( z^b_Qmom$%qChK1nQuK9<=kHgnW~-ofTd8#e)SME^fTQ2l1iU` z4nn~r64(qyft(7q1WI4}CA+ws;S5n=s4>;*QPA{6$E^}&R+FI&WyazWO9>+uJ(A%a z5fu!iZ4Iw}*gQMbBc*M%KAaJ{G?K=yIbg*D*9f-awl}uHPCo9XK)4U^N-&iMf5TRQ ziZVSS?8&{(ZaCkQN}+m#R|ugZ4js5;=sDXJeF&$3XfV~Ru5?3{i4GP)w0lEVzP|%C z?ikQm463VDEi1W;R)W0XuceI1hVlsdwf zV28u8dg}f^PazQm8kAW4f}nY;{mQXUnyZXB30p>juWjHk+qDlJ#dY`Mi9w9C*=y0EudO?tmX(O#bK|eaP z!1KIW0UDiLv;7K(Z-UiQ`~y$*d6#1b0?337MIv)-bvFIw38=sM0Q%jb1}B9yw62!A z(7(y)mg3eUPqtF+tb*i5EVr@KN)ybNCYKT$tburx!QW7h^L%74(v&n<1AjvF+^@Dk z2K&vI7!~I|dE6u0sVUTkc-yejIpxMBdupXQG1W{#OmI9ON(4u>5ii;r z4r%Q^LjN(W_^P#ZIU%UsRI{S$lp0e(+S3JJwNmU?P{Ev~oYe7(rM?BsVtAuKfs-A_ z<|~W?42X2^18y(Wfc6fy8V|bxrG+!sC>=^fqP|j9H#laS%wUW$&8Bi9ur-T~=|H1e zKr@OpLf?SsGQMK9bc7lbcna=rH^wm@*BlCwF?5EVDg=&H-Hbwr3HJ z)68{VEi~G^SiUfr<2`f<&SJRI20o4l=D1}eF|aVyBZ%udGt>irn$?+=j?A-lzj(=3 z7F0z*Kt^VPn!=Ee3|)lUk!TYr?py_mn|XbTEs3H=d=j&9i$w_EG0)hug(@Y!6^4h5 zT09jSLy(!-29eVYE({Psvthz{{|p>~5C}Z0Be!|`xA8Bo-qT{NFnr|k-7n#hxIDmE z+k!G-y||`0|UUk5-p1ej?4(4Hd85! z^|Ro4-ui{8!8JNhS+y1c7U_7rY2W|pv)7pHCGQZ>ki$ifB$nc2qm^~##ka!15!e>t zdirx(vK9d-nSO%Y(o-+AT9DS!dou^yu`(`|HsdOEHOg7xphbu zo-uf4h}nGn1nLcTVp_v9#ta}EpoJkCb1}^#l%X5>Pl*#mEXWK?ggZ{r5KzX=qhSCu zGMf#kM($IdT=3Z2e*Ha?S8ih$+b>ci4FJcUTMaz<%(_4(Vuzh9e*(b4g9gJcI>zXJ z|67dy{UhP5nIIU=6Nd>nBd}Xn-2d=5sowooquqA~3IaUwu!UgpuSe+tD& zVi>TD5lKKVDSxQ#7*U;g13NlHLu|M?f+g{xeG6)aYNJtzF^-I?mdw{=B(PF*c{O4WDf@e}TTw0|_ZaggmT#^^q zN`pCzDO<5(Cq4Lc$1~C|TNnECXaR$xT+@ z7}YE@+^;aSiw)+`e*JAyV8BI;p|%@bXX9!~d%2~Rj(h^s!PRp{vT%Nop_A!r@W`xP zLIH`%DTcP2S{GXnrU_bty;J5;8bWd*s>V76N%+R+Sq)g-$UIw}O7oQS#)A72%Nlqx z&(?h*FZpGT#iiM{#MZ;Gy_a%|G8~P;E2$8&_!Q56@U6B?>SPgE1{mcK1{vpH8o1$9 z%sjE-DX3KCB5=3I!mc=e4Yp~qS}LT1nX~7ynd@1DFNi9FcbA5$z$fC*e0%Ni)|EXh zKOCr);cmdng%}z!1H2L^FvO6dY48d^=eXWBD9RE{T#sEuiC~DLF8~hs#hna%r`#nAnh)?2r>6n9Pt9P?+4OFegt@6==)N zqpG1U&wqt6!#WaX&%6C=X|NmQ63EU6S@6a>4_-xsfiS!;=<3VY!q8Glp0jyGAHDg_ z-&2`sX&?(MK1vkvmFYGEyfU1rA~?qPJnq^$?T3~IuY~SmD4q`?w51^|^OWio1LgUE z3K;q-e4@|p31d$nVp_?Tu}CB+2*l!kLWRgg^B%W0S2wL-*g%ooDkWMaYwt1uDC10H zMaZbJ15^?RnD-?@B|JkX_I53WT9A2_+SwOmG;og(ktL#I!}guP%4Mhok-nq-1R<26 z2xL^JvcfJy9mu7;y3h+?2_xne=Khzz0jSWZW-!SgF)z@i;ZEHnd@x@GB#ZWP1S8pZ zAN=qT9(q`crRi<}$$x(PDk2{P6|eTy94De9_%k7c;mxVwSZo+9)1F2d(2>pXHhB>4 z_xJw*xn-UPXoMTc^PIyBBkq#ACN)^4)qz09i|M6dHR2*ec*MZjeEZT{_?6)HG5{h) z`6T@E)z5TnwXGr!0?V>O_qhEx?TQbyu}wKqWjF{{D#Hz12Po@M{J_Y4Hdz$_5MJZ6 zYCi?X)0cD#6=G;^2tv|KeoniaRj3b{euCW6Q|=*ipMpWJBV`5L%S43y-7!yrewp9V<7^iWxig4R-4R6n@tGUl1YnUp48;K#vQZiE+rU5h36YlUC zPD^l>A0MQS1Xx3Orh?^4v5dPIL14B*1US|&-FwuhSYHJUW1(eFA*Pvn0+A$CRjWDv z4_yU{!yU2V6(lg;t~{S_Z7ZwscoxK5FQPkL$%=c~!L34pM`}8)LaTsQBpNqLDC!td z4d|0ss0^5Z$}z`^HO|zt$b|Kf?3olbRRNwzVyLL@>W2DC?qJiFyg72fzQl#-C8>8_ zz{uGZ@5B5ou*53#gj`hto>*q9#+vAw)F@Q}u;8vHcLBM~=X}|8@6h|DAsvv5Vb_p= zZnr^X8}4UGfu*t<_XrT48{1}ufdR>eG7LvggDWj9fP?N)u*;>pjL)uJZ*gC z2vB7x26!^OH-CXi>d$_KuPMu@48?fvyVpPrLAUFlK-#ofQW=VIF&8BIRa)MGK`?3s zfv77(G0-{;u;bv})=Z;lw}h-$24r~mr7)>72xCG9SuIv}0Omg0Ucq1kaEvI=`jm7N zVOv@82SyA2JX{zL9d9}$l)S+~4$M>rXMFfN1^}lLs0li7fv#awYeAsB%up6^johc) zVdg%CS$PVZ05NVJHVx0fXyjpH-b~qTF!=iQAJPOhFyoT)U7^%$19=lw%#qY@vB%wQ zeh^AsbV0!&+;3j^9-eJeKN2!cDK48n-)q}e24GxLs*oDUepq8?ezSk#$8>nJ3ZMmN zEq4r#xfl`%!{YyII~JC{>tEp*Pi<0 z-#BMDT2d-s85S``qsqS&2@Df_RfW?mQ-dU+5%anYsKh0)tP!gKOqc)|)e^)EnD_>( zsDAe)hD`Bud=tlMsKgAJngdfPj6m>|(Gq}(IUzlv7(hsPRwAy){ZH^y@XpH6i9_)` z430?7I6_oGR-09TCXNRL_+9r?O#kDXm|QAqNF|uv;=_81p)3#6pB`D(y_G=}t}%^B z0i?Lpn2KRw#YNX-C$kDj1<&Dh9pWy75?`q~+=HJWohpD8gZ&v_hSP#9IgqNN%D{@? z1L0_7bQxCh?(Y37wP9No39!`SRspNvzUxr+1ikhLd}MXUmc^iW*Z_plwS z>eI!7Z55D;%qV531-gj#r$6U~WPmTGpCGsN6t=cb5fOOB%_Cv}Er^fuMG8ZO8Eica z`|a~7I0fipnck;gSNt5@kDIsu_gmqq{t?|9l|cezz%2+dbcYwN2HbEOxc^9)`}A94 zUIz?gxC<2m9qL!14Sd;^37V}9z*v^N4lu@ulW;aNdY37 zG0oGeHKq&)fs;R~BeF3ghGv9R!^QaIe>e}(I^Y}QLo^7ZIpSjZz<9m;8Wg-@}210y2^={nSG3@<%NLmm$>Q%-qL9jY~gQ3M;VLxn~hmgrZ)g=)h+ zuGT-t9wjfk!#^>EFpOlSSqJE2SE5gc{h#@MXjZz&QnL;S$Y}Qjp{)ZH61pd=(>j14 z$AYLNJSW2r%`xnEi%ARw*?vjQJ`S;a{pvG`X#z3FcbEU4)`8!#+R)txkVVVX-y@WbO(6Ej{HK=yW^&6sF>J z2(E#B+&Bc+27}}a>nmsuwP7Ct^OT3Rh%O$xSCf+o*a#Q@`||UDpuO_t1drARiM&$5 zBK_){4^vG^Z7>L)p5o&*H@gz{-K<}Pfe%lo6>M$j2ZO7Sr3|4CxW{Cp>J`!d@|D-o zOB5hHN~^lsU=A#9i7Xygk6|Kiex6F3Yr{206_I0r^WFDtZ6zAe8qd!RuP273SQ1q9 z=@3tCB^s~+Js%S%&<^jp+Q4wKdae!F2zmr%T3^-%Y)t9MN;4oDRJ2sVn}&wq`7wLQLbtXO4Ft|j$IAkTzy?1i z%h%dqk^hC|Fnj0*c#a4QQUn{>*{lOP!V;vu1;=9#c%7;d6u35YgbPLt3ZlSV>+-f6 z#sMiCstq8?p;uRk%3wkdOl2q)Co?yc43%`>L>mToz@a24I`PN@pOWlFs$+8s_Ae<9=>V5lt$GxLU@cl z7Orr`$#U%d{>`*ISQ|6~$%^}&hh6(r+HR~37Qu}?#rlcoKnkAQjVv+)8nV!?uEbse zCv;_f{0*iFhVfzdAay5VAjfAQAX5^~sl!7F$A)_ZIVE~p%?4)sP)cz80IB|=N)US; zYBuI|98p(y;gtIw_!B-VdVT-YPeApn@#LnZ{5LEbX~!?~gARSb9lhZUWx1IUs-H zfy93Bt#}MWRa$Qh?+C^PWeSN+06PYF_J|^ou6Tni@kz0$2}s8f>sU9(l{U*Q>9r+9 zH->kNsaFDHW9L@5nA;=V5K-g{dYGumR%>IB2goj`ZJ_t0u^2LntBKUndTS_2qIzS; zR^G5iQeM*p;A1dJ^{W>#IWXrqEM&#nMC@aG@8RPR0cJeZfbP>xxou;Z z$CxgRSYZzg!~N!eXttNHhrQS@03L&rtNs9DObwowVl`HJRU5=`=eRw-_5j2k+0&mT zEV>DR$F_MNy`s|v=WhE)I>57&Y69lLI@4nCQQs0!0cQ!LO#nQ`!{=2)DYP{K{K$MN zpdh(Vp-$&Ij5feKZX8CN0D26m7#vlxdgqHTMQs7`;QFa=5YIYZhEnWP1#V+l2MmGH zPEcZB{{F|0?k770tYeZ)og_33@2qX7&CDi19Fg*`(zHf2NQOy3n1vZAuP(b%K?>7N zL^+1-A$lA-b>@t1S}HdI=uly)C}pcDVvZO()t>n09X1RhFn~8@TEjM0-m&{1;HJa% z-R)l{D(TF6paHI(-Ihh0T;oTd)R;d0W1n(CF(X2$_N9QLZpsa zT}S^n3_f})yn6~{DL6L)(4be{?qB@}M*dK&k+RVyU>b9j>i*DZvHKK1DyWtx8Z_P- zw(%``j0-+M0bv=LG=v(wK_*lb<1P5}GNZv^ro$SIoksaBng>5#=*JZ{m)yK&Tkzz@ z&$a2h4_4Z4Pd)gT(M4}ueY^8#qVpB2wsJ;-9T zQ3T`;M1VQihi-qDbsMy5I=|T%{P7MfvitG728%~oeKrPpT-lk~>aj&N3p048DLYZ1 z!5^qAA*50;O`<#Gn+10XFlr+3fvGti+)nGmCV(K*Pmo)BN`2&9JN^_FZKog#$m8Zg zG(aFk`FO`JGvqC+0FV9e(l|BzgNB_Y*4&ZHQVa<`K_5I+#0V z30>G2{&6;lHp;<@kL9ELUnlc56a>8lYmlW-s1b?gC<~2HAVNy+57;-)G`8zE5=_1c zK*)gqSOxONK#^Z!XF@Aq>{0*0_^KOX!$k(o7xd|zY7lV)eBg%95!5Bh|UZf3H|`el(+Cz5qq1jZa5&LIzlf~ zE`=dytoT@l(Es)<*z+}fu)$1#wsLriFER){x`Y5u%U`wSWT4z9yTSARLJ4`cFHNui z^#LS&NXt+>fG=baepaHzOXhcKZuPuEy@zFbN+C+zp#9Vf;>E*C_c!<#Gu9Sf)L9GTDa-jrxh9AClvZ@PY*a* zrq2ezEVq@eTSsOjuh^7#!p!gBZ4_3)E zG9&f$fdA!c=T4SjuwVvn1`g)X`w}j5E&(pgZFMJ0u*+cC_G6IZ-+%Y0{mjb-yBfKk zT^gF0Bdj}xfPg7x3d``t4BiZ79HCdYG^{aOtO0k-oy(mRPYm+1ZUw%0HKtW6$e4XI zur#!h(9`gbyfaWn@NuMx9M_hHKMs$;k*$e`cb+v9IEp{=*kE}l2(k<{Sz{8AI;Yag zvNET0rwAW#$}!$dZjNK=zxp*kZbQ}X!0a)Sif~Q3BM?ObY23&QFH`Qi@Rx`r86`>&$(c>e8DQ2-sRpn$x0NeBx7D5WPCWLq00HQF^#Y^{_-h`sm7%b?QK~X5 z78o;6Ab2W%TD4!NOQ?8dSS$!&H7yB|8Z;XCfL#@ESsvB4@2Pelu#=lpRe)n>h+Usq z%&0P_XXG&v>hf3$SY5w=In}8G zL^mtaQ1#aDTwO9?a$~|#6AFM_zkg%iy|_I~tEAxu6QQiWT9IZXoU z)}Mt=IaJAI^&fICH*YhuFtBah>g3R`3V7ShEZmW^X5qRXvn69GN8=Ll?gX$^UTK#J z{#6FBWoKK$Y`05;3MF>eFAeU5pjDyxuBdRJ%zRyxx4%f$dli7Q8DiIJ#)7pn^b9=o zn30D^Dl5brB9^B-s(_fqo>Of|Whhy{TcvdLWNd=6Tc`p=HpNERBTb6JYVrC!BPf(z ztx6RN@y6JejYJh{@ut{zzl@YTxf4!&G1VtFwtX>`u`{WzN5ra7mp9E)z`|JGyRSZj z{4c-A&4emKU>BNUVqZN)HpB@1HsUC@s74q7uV#&s5WdgXtZsjir**1OnAdUJ{bF+r z3Z0%~Q0OEZ0oBSe+5l-q86vlfDO!=hhz zWg-OwKe{0dkkk-4|DSG?tPpT`grb(Et(60UK1Vekr*l=~0Xt(Zb%3kJnux^efK`n( z5s9H5*y;hsn%F4r;u%7#17elcBMrLqCGH z)OPz4wtFUwsITDZG{MMyY#35Y+b$dr~|Z>Icz|;sIgwDziba`1Gs*H8;OhR_uLVF=MHM+ zV@@WQ;OYQm4UR6C0_uQb4bZ2D0c*Pq3R54Nnsx4a8>BZ;c+4K8xBlI0=jqjD$7L9x zs?+XI|939BKjPS?y*80b>1!(l8t39<~8sR|67n&>t| zQ)&r@OnJAOwE`?PU;rX~tK1qCKHM(drKkfeHEjl=U~7OAjHsQf)^eCp_2FWNUK}Fo z5MJG_12{FvkHGk~)o@J+{7OAq#g=!gQ7d3lgWRh00w6U&FM1Dv)Bv&T-7u*UQET!H zHCe}HxYtGX=qkX#sgeGrxU7!I)KJtl;dm6yOk4JXR_=bW4);hi$0BZZ$;<$xuFuQ? zn93bi11hG-Ex`%*p!qrj(S6>4l@F5C22Z^V;_5wICp#1`!C%vD^4cINZjM*4;UdPN z;dR9HglZk?s0K%utK_xeQ4`&|M-Fx?clBz6p)!PEsMNR+A`&$x+dE-UwcRM4V8(-M zrg>Ot)I{f=AqNGnR%Dk-$MqQCr@?MjkA^*scWZdl1eu@O%#I$>r8#v6Txqa>HU3!Y zG}OP*YkG9u$;UryLy;z=5hCd9=<0($x&{inP&!K11bAprR$>W_VM7z$`nGVeTd~_l z%a)|Vfd^wNs2wyGXqZjSF zo9V)JW4O)w%l~4tb$E=q)^@^8s6fix$SNwKbdt*ISEHweB8K6(d zVG|&l0b)#5J9jnC)BCbzkY13PCLl98^0^Z%(}ah)1{t%7i?e2$L?}qgnv3f?r%8Zp zvYL3poSnPDH-i=^78OAp+}=MeUj7UG0j|JjhvfXFi3rX#vBY4;^l4&u;lVko;o1GZ zahI19v?f#_&G4g|9ghzIzL{m)5S)o_uXNi`c{Dw>P;fNJvs8LDR&zALvukk7uvH@l z=x~Gd@ZI7*Vm1=LVC+q(GXj19Yue%wsLL3#<82Jh88m+UPl=EL*12>UbBD4W!JVFA z%d1#TKz1@ST7YxHHF3fOtANcfY8>4d200mVdij-q&vw)0q`uxbfDXo!Y+vIua{}8Fn|E z>Dk?|>#+O9MB#coRwyWBwRrnY_xdg7!xZQg))|zBMkE7wCWRadh^Bc6;0{0Byl*~u z1Q?r7vrniG%5*M!IV^uHgw}If z#!a>Bze|fozS+oP7Oi~2n%m05>hbUnES0BA{4^%tzfb3H7{ayMCr)qXf!OyRed2T? z1Y&o`KC$)e?nsbovBVyqkJ=Rnygi*BpF_{?jx)rb75i)`&jAaH#N8`~xOwObouYIl zPEoqzrsrkPND*g=TDE!3DNc1^SI|b@$4H+IhbUZk?IX-kTT|fO!0rAw_*b_v0P!`t zi`UL3ts)>keSxUi2gIjOtO5xa&Sr>Ji5b$1SkLqvRgXEHs}JVTyDIxLH5s}p`^0L2 zR*93ri2*t}^y-fz^eIc@X799DdXO|UC#Q1_syXzkR;23FFFu1u6XGOV#KY$fV+H4` zQ*NMYJQj}Uf$=D9`+3{0vIV57&Ky2eqa*a{`FFWTh8xoQkXvR7Mk`ftek-W?lDGlq zT)Usfu&T=ZVO60(rxzQ1VuT-s=KAWm>Aod{{#BcOO6v5ov;?v0bBH*7yc@)-%pqdy zS+nFEaR7JtGBlr;Z@*9gqdhE`in?p`xaIDuYnDH`L3(Kaod6(^xl3lQb^@j|&x|W{ zkUkv`fh$!dCO13TYZPiVI}jRcpgZ%-s9Hyu*U1{9(>DXL+W_axa&CxD zzh_KS>|8+|V%#GJV{p!FpBZ{IQK%ksM0bsEhEknbJz9~@+)NGKvABa|!R;RsN-7+y z76IUyRb{|<_&hSfwoBLTMQyBN(y2X$&_z*(od>XIkR{FLhWF%5S(Q5^&jfFP`8mxR zu}0lrL)uZd2~|hW>Yf>F8`v|)wt+oE#OiSd_GG6y1%BYCnGri6K)J2pzn4so8)esL za;xIWXIAx@-%1tB9V~2~Krh__zw=un`&0KlfNEhd5Kqk0cT>}yMUZ(SJ*}8+>CLBC z@m(*CUI73aW`Ink#YI4Z+7Fo&pMw<`G0*z>{hGSNxxkDk(m{I7T>%mrV<}yZ#1QJH z6Jk*Z9g{ZXqmy;D4l-|(%~7ZgQG_C(;rS*TC;~(@Pw&g6VR}<>p#?!d88f#6*q8Vwm{-kCkhwx<84k$Mxa$=G85*0KSYr`xdrfs76Dc-| zyAwY0v29QWD?m$O_|S`p6UE6$mVflB`vP0--UURUL*BjXRw+aX+1!rYe!K z5(5<2kRG=9m=TM8W&KhFlqht&O&gISKtzK|mt{o}P@)u+`B5;!bCS%9fD%oy;Yyrm z!z1mOcGRNoQVxXYvozkqN+9U*pWE*+p_Qw3yajtpt)SxDd|m(?x;md1h7e6LYQx%H zt^8IVYk7<4z?C$Yy~w}J!AJb0gE_n_=1R_L;(BJ$M6vk!AJO;f3HolAtBY`rD^RA7 zuYnC$X}h6pfXOO9>BC#vOBt8TUuxckSoc;PuD0?i2z}UnQ!F02NL3>^ePE4?l$gtZw=d2pQu9@JXwVpoQ>7&a8l6^15u7_gxU9t;%{37qe?pU;=mbGdjNaZ-0W zJHv)XW~YmYSnYGs#V9AP!7;6iu*Wv4bni}G7xCwj@=z=N*O z-T@KHoMOO*a$EW4Bxn7kH9NT7T?%`dXne02kfV7vJO*dY)RmiQ z*ajPos95C_@S_~YGJz!Bd*lE~Y8U}X8so}_P>*)Sr3cOMYOMxoClgq$2$e*G`Zb1K zzY{w>yD!G%KDJ$78d~J6%8Zr<5>1f#3U^GTvN>N)U_-`$u8AfXPz8-xrtGwrh6l}{ z6-z^cW{Fi<6AZfp_7R8l>Dy{)V9*=`0T0S^?PY+3a$9+f&20sp-X`-Ukf5uR`7&TZ zxx@N;Xt#X$C0wKhcOE?WsN3u=dnH3khZbGUHWcGpB+g!x@8DDROapvyAwAQHXQaIj z!N>nTjUQ2<=}z7A#yd4lJ-}LFjok#HtrlAXyXhn5U{$>iGnr<=eQ%rvjgGUOW-2RO z_u8KRiL-uw6ZW`!7jsH=EK92h!rI@|?`jQD&m^fIkwnr|)mtq?3D5+q0n3@})HUU# zVpIXanbv3kalF$YD$~=PU4_eAQzCHBnqnaUH~pze?p+4#W`|+Z zH7^5XGt;4Ki{B~PH~;y=*F2|7xbZR|HGH#wcf1dC#%6t2^58ZVFDwII!843JHqTg|-zuj%(JaP-n)nju3-FO*cvfY9{$*maM}g4lg*hFEoW7J!RG znU2LglY$PfLuY240Mg{P3b7IaZM@|L<6aWHxg=JU?p&W(14c7GB-!bP4M+nk^#J~$Vj=ubCG(Zupy#-~)!BseE?Biv`Pd<~A&er8;} zF5ovk?qPY|=gZNxsuS3H!77cza*JOzLj=SoYo5B?gxI1K10Nn$IjQj}2Bc<&*tI#v zdb-?QEv>F+Tqps#8S7b*T67qRqli&-7hl})?Kc0fh7;Qd1I{z&)jD66)>2qGx_RH zSGiUO%0Si34|}Xpxs$D)dG^~*^Q%y^v)DfZ8Ec8RJgvfiWzoHg_qf(DrB;{l`euu# zG9^x|44Ro*_UIa9Wf)DL^ACh`cg^E8Gp@ZT5VD_oHkjrcOcA0uumT4E<;mg})0P9- zRX}Q{IWd4Hr*mHb&2+9#38n0z_#HMU2duKTr_V6W1bVDO@y<-o>X9RC%URwkT<)3? zxTF3ePRibgtTDZjJ6HxqfApJ9DbH zf}L4nkFq?vUIi5f-`_Wazcrsh5OHPerd57@NB~hak=lVn)u%7Yh z`LM3T+*a<9`{EnibUtB?SM2|c7@tZiRss46lp0eV_rY%Yoac_~*P&Acp8fJs%8(KE znI`rnY~Vq;4OKZ)l%5rtk%dzT0tTpyk%;+BGwgfFz=jGfytO>fMz-R@jjaK7(91+4 z8cm@sHwooApgdEQuDDqq0=yG?Rz(L?hgX3XSf4KHpMH&LVJoMr&Vc6(vLS~as{rW) zHZ-LeoC6D*X2W$isB2BgR*dsFmX3)LDW+S6>YGH=`m%BxaGXB3vhiMp%UQERGZ064 z?X#h-H$Ja`-OP&1u446K&)K6@yawICohvTP@l*3bgZAObWActrW3y*;Ku+VmntHSP zF&4>bv%0bZn~4d!$MKUMM}*+R5{7&_;w5m|V6P0f@jj)RY-NDWkUDVSGJNFC#f;ZS^v99Ip+endLy^=K)6&>3WE9 zpo*L4!2RuT_-nKx0V>x9%?$P}+FJ)mW=>j1k9aw5Cs zwbjiGT0?pZ4PU2L=Noc=S)Hy8dVxb^ZEDwdx+}E~cuekCh^Mz%cn#3y>MXnt_)F%n z2E=3w#t@kwfAJP_1teM{Z8CMHSM95{!7)8bN#AP&Vvv8ac5fFDOLUH$%#VezGE$x? zT3e+}uXAI=w-E(87#F-&h%}&lVl;MoAE%%hx0hsA?A~jm;P=muagZK6NL-->< zET9QG05e&fh(aHSxC%Uvb*OQ!-ITb=fs}gtmTR>(Y^Em=U8-0e&Lm|(WpWq}*QNTR zQ;i2~X3PlFL&nuwL7HiS1cau+_PRz)J04DtVCx8*QZlv<@XTTHCa4P*!yWP62LaI6 z0iI!*&^bh2oLP3*>ritu)ot*{UQpG@5a5~2To$03+*TTFvoj!(n@hSzjm`DxIv_Q< z%<7^CT3#c}uv)rUwZC*9ysOrR)PMl-Phap(#jWcA(?m)Pkd80c2GjHzNH<~Ep~QwI zXLSj!cfUvh(b|xj$!-H!6D5E_5)i)*V9gA%ZV~%Dgr0Sy2x97B;76{(tgXZb_( zb!lUloo0z8i1Pj$!!q?vh9L3F@9JTO*riep zElk61GC2?W4UUHVBxYtH4*Czi<{o5KHt1*gxwN&RHz2DXK7IMOCg)IA(;r$FIH8&* z!%jAa+<<}2tH>4va@V)N2*R;3{08_g56AeJG|M+Gze}Rt7=i<`o=3==(H>WHiqCpgJO6B zHf#*R!33u)e`5enZt~m&ASW;PZ4A!I9}5}tHc@W?;ar`lHwNY859`aF21pUjj@x9O zlD3H4G2PGI1c;|!r7uv_CO|xWV!1fAF?{DE43CV!ipnk4ii_f-RF$>~Z{iH|j9`{< zu1$b=vYL2g&1&MSp5Z1UOhbG6Q^pk1ZhvDSPoG%j<2s!YdvMS>0|i5Ppi8?9F_G9#sT%Qsec)7L48#Q*}_GsuRCMKwFuxq&`l73}(j8aZ9vgwh*+ z0iZwyWU+q%du=KRKeFH6gwLDLbneUB`Oe)>XT=hrpT4yS@V$x94;Bao0EJWe8FvWy zldN$z;o23C7mMY8QGCP0_#K+byTqGNdo#m^suF!+y~4E1&w;f!)!2W#fbNbkH-`B1 zj8Kz*fP4CEYt{`#IDDU~eWG=XLZJ2(pKJPbT)qjQ4{L{u8jWh&3IDVccL;D#pA!{e zfO|5NbAWzwTlvN%w-w^>C8Y!Fxjv-_*e7$?fc!M&%MdqBwZ>BSuuC_tHUajTqI9R6 zqI7p`pC*U-u>$Y}z3&zX%I|me@Tq3IvfmT@2e8;FB@OP@XeA$55Ly!^yNB z1KY0388$pg&Jg?NWY9?DSZrg^&zx!k^wZ}=wwjxO{`85}oC5kYEouXRMwBi{$|hhy zGn}{{`@}j&E7Ey~@fnMx{qyiKctX1)OSh6YhW?DOt=nA#fMz@QIC@w+;XRufVs%DH zcDH$eyV}gB+ubMlMWSAWc|x`Tu>`UJ_Vf&?T@j@_-J5{=WG1ix|KznQ0|J!W3aI*R zjxGW7T%DuK0Qck$>!ForBFF0YutjWmnfaR2$K6t{47d-Uh~4tW5!X?4VSdj=cG9I4 z@F4l`mrnwdJC+zkwq<1ieFk^{ecINP0r%OKe?$mj;Xl7TeExQ~@a*|9yw)e!cWH3X zIJW`rnI1jBJyWB5Af2L|RT;D(;<9obNV2cuK<_zmiW85bgZ3aWOc|fL!CFvWfE9qa z4Cu}*&jH|>R*C^U%|D*|H*9k8;2}h_Np=&koqmt9BQ6cq88;oP*O?&Gpy_0i5=sMY zSc%Ev3`Rn}+tE6)Y?VtxZAK^UfX$%T)f3|*H{%KoXiYFG*`t>Mq+ukVdgiqZAWi!Q zI82=N1jOBs>wEY^$}?pEX{I=FN1HYQtH$|?aS-EUkxv-^fY{X5J*SLR8aBfz-s&s` zUa&1*YzPhfW=Jejqg@(EGs2IQX_w)m)SxdbeZXl3=>@x;gir`e5YRZ$miPac0#m?i_}%kFhu?R2HAoQW(u#Cw2rJ~^ z)AC*B>I8X|2GgLMJ-Xo?{I+7T<>!mUgCR9oIiI_0>c`P%TEdqBqZyvscharuZK7NE z%UKBofM$?h*CPhaOh`->_sQZVd^MLhD+r)zDzh@2LBWDP0ac|H;~;hn+5_aA-bE+_ zJTss>AHsl{aXA|*GeM?W%VgL!IM1+VMA+nz&8r3jHj^bo)h5J6TW(HY-ujCs5QAsH zOoN-GhXY^X+x`c>Dly)wa@;~R;~6UB_9hs8X<*C~%H0X_5R{?}NQ`(Vi`r$=T-s|l zu3|ZNF0J-vdT7!cfo(G+R|+;Wbxx6$(w_T&Z6 zG9oVH=3#IP!a?;HEkjntO@T)b&2_b~fWHSA;f?LXq%YeMh^P|3)!++4^ z5I>sU0|+y~&o?4W-&)L1HtgGHgo)2)+jk_|<5Yyj!OV#h-M_Ov-=dwjFgnD2L9r`=9v5X`x+>CQb34%)D6ldFKm z^qDcSyG{qiC}{^D#j=?W(u+Y>0h*a*KA^}p9V6xM+BDYr^;}fukrU7yEuFXmGd)Mvhl70Vq>F!Eu(v4oEhD< zWPQqv44f&Cue}T7Wj>K_Vpjo>nI6}0n8{h&ZK;b`isH779AZ{>TdLQmZ0B&5MQk(l znd%15x>;|acKlZYm6gDZb)_k5j7HUQYxtdp+gzAx?kWRQ;3_UX%~AF(sM&7SYi_N( zoinDK-kYfcn9^)06_Cp=y)yJD_K)O5t;djFv=wj0xP*b4TfiBa);G`2V{q5pw0Tl zU%oDDj)hG7~I~7^2!b zA*{{X|01{vL|hxRF%)EE%UZ|RVbEu75koR$ZMepe8OTPoHc*2bYs7E9#||NB+VtP0nM0a zN&RnDEV}QSCDvexxvjrODdU#6vG{JQ?7QlKUCi!s~jZHNnW6S@t= zy41P(p={O zhB>ZrRJ|y_!7%%;z(xWZ>j1q>ODq(tOm(Xch!Nrai~u|qq#$_ub%F!yI?M`Jc$$9i z!Govq^dMhe)3g-um#nUJ;WH=efWl<;ugjksm=IXzhjF;MIg-LjBi2uA!!1rp~ z|Ch?C>VV3OD$@WN?~Y#|-L4T6G>ryirf;sAwhWw^nWAbihYxqiBSe8s#sir2u0(B? z=750E)XNV*1PL=6Vgmr;1c23s&9J@%gp19`pTmwYgig+|nOg-Q*02yom13N@Q|?YL z@tbeDC6$KN;jYlB`0yVv#={DuO6_}X@C;akYmWb1Q0XS1HRCPVTWS?H zAem#OC$}0vHCLzMCg3%>%&P9*M1D9R`Ej?rD_?xQ+xs?FnSwOQ{DVc^$A~e^Z?cVT z47quQ1W*X?vR9`^>A8u<02_36{0poFy%HQI6veB3lGq!=Y(lr7OzVZl02}xt>wN19 zzi^$%FO~_8-WXt$!G^&$(}FP2W|j}#ANGkKCRK#G6MEXNSbT*=e1otoC2oyXob>w) zg7DP~k;&uYRV-VY-Fu)+F4q`R6HEq_DTXu#)|`XF2&;zI45*B%6A+;>$OZy{!PX$* z;;}jX0z*+8De5$a-AwWvP@6%!l-+a_P#e14vHTY}SRmhU-yUV$=8?Fla^TprVI0%9{k8L%2c3*6_nARW|m z3J*y)@%j)VMSFY$|37ZtU>Z%Cu?av;y}{D(RQ>!R+CUnzm2VuMc>pF5Om?T|ehV{^ zbl6zQ33xq1U4-)%<)d?ckd19)m`vaEtzTPhPK>WU*Rx8wP}CR_^Xb`G_5}pMFv**o z0zx;2!F&tzI_%#6<| z4E@L^stNcD1LyAWPqe%IqS-ItFC9(yixDfDh7L=ppN{|+o7-PxbK6+?3TOsr3S*NP zZ6FMq(6V|z36Dp4h}8uZJNN~^MpjOMz6sz8LSWX{6$v=0etCbx?hY~)i*sy3#X&Dr1?HnzjO?Azi567KuljXy7I7VLXbnx z3*@-B2`Eg%MOcm8A-|-BT>xVEF`?5EB~J2-5W6!r+ux&WSW?q;zX-8!`wr`;&yU`8 zzeoX36HpkgG#cdN_@ntQ05W|63YyV`r+c&d4=#BLWu3(ebl!x@n7(ABo~j8@%wcq(H_#m zv+LsUMbeU?GgK!sCGQC}FkaS@^Xx}Mez;$>C9DS5TNJ;8Dr=O|=w>*8Gc&{*Xz9q{ zW?%dT!Ge2zP1*sQp_%ZUkB1ygtcSy6serdJYzDz+^TnBRv3~XSR59HIfM%4;)8o{P z>P5h1tWV6S+cSXDv6!hDf!Jf}05Ll6R%f91usSMOQ2HWuieXol*cR-eeXO=yeW2Tr z82kDP46C30<%!2&47+Eb*p%?mr!G-P>^9{?&|jlCgJycBm@+4-pHy+b!hV_v63=AY z3oh`VbovQmRa|gMPgGW#{^4*(lxj} z{4f3<;gQe&@jQ?+Oq*xWs~)jYCMZHq_?!!Cb$Qcd*MVlBS5=PCr+PNfyEe0O6Iun$ zVv^%6Z@17W3{?G2wcy{SR?zi1{i28K-@rm6*XKB+KCG*>1;Q3E^!?(eFtWv;FBus9 zyGm;q*S>!F@B|ctq?XbtC{>wfU7r?jee=xoUrKMPKv*9{dsrZB9C=;fw0jFC|yBO)aX`XRVasMd^B(VPIN8;I_lEAOzRZlwgCVPAFh!s6p_69-!M) zIFCYD*HJNWkK8_B%B3zKUvg+nc!dt=CThJ6^^d8v#@%SW?T&gTX zhrxX&D1(|#e?r*YmOn?=Ojlja7y6u2lddm9X-km2X7zxr@C35ie-0-mT7Ldha=LJL zs4jo?JCHN^At4+_Q;xPS?t;!B1~)lKd8}aQzGV1TTGuLM7OTAi={vk zu&p-Z$x1iCDJs|7Ac%G$v&& zAymK|-NMh3YXgvynOH(;OKvMyVs0zw^pZOPo?N?ig)m%uxx;#hY&P$IayATl^mg0T zPosZVAPXBAeUJOkK7$T7k{1Jl!uvJ^P+0TA;}jOc9Jk%m5~$O6HP*}TFf^BN`$vc@ zn+`DrrH4o%0`(TJQfpQV2ugi=4&Ab#X1~B{D{ZvVt!m8Xf40uWqT9WK*qx8x5MVy1 z6;tL#h0+~eNd(lSsGo%3u-a($A0cLFzBHs{kPXm_b6Y73{%T@^uDhsZSzg$)EEzl) zV3I@c8pKxMi&tLx@*Hq=ZibaWSivrZjt=lIh@QKm(M%{GXWdAGzf6X>GXH3ALp;=`D9!F|Ka zSIK;e0GTXyAgt@Z!aUpWIHu@X7-WJ4>0&`Bbn!SQM#-i{R1xr!?eRJE24m-`_n|-; zt!z(=0G5RL%l5P|utdi$8mzsHQkN)*A$${rMOC|kCsIt(-7Cbn#-kzg#g8DT#hYJn z!L3r#0NINXbty_F?zIPws;k znNfgA^0H77z>?fns=jmd9dCKrq!vU_ZWC>Rx|ORFZ4s~%J`PHU!SxMD_iwAT11k(A zp;^Hi7VopZt_AVR``u!-2rvnCvETdz76cu@iXNmSSOkP*zkL4@)J$9FyDh1X7x&3D zuMLdf)z5_ES9f5cK(yfE?^%=czRL30b3+Sbz67ZIZ1#&W_orl4op!} zDn8t4XY_N_p3epZBH6Eq;0R{c7A3=sxIgADv0V#@J_Aa!I|cKjKqVCy0W0bJu2{ia zS!65w)gsiduuy}bE{mXe@WZss^@-rjMF35*ny6o@@1p0lV=KZ1qN4l^A)zz$R5ex? zR>^{N%U8jOEgzXi8r0Isei$bZqEBS_)8Tj6WAfp%c7G}U7)n=S-~=}kI|FW_z5W@L zvgQc5N&DVGD^wSB`chF{7>08A6gM#2E5{Y)m>$dkna5AolrbWmO#*WSIZ|} z+(k265pcPrVL&R^r{RFC6`aH zdG6f=vlmu$vj6URtO|}xc!y?KgGv5ycHqSu5J7wRwSq$0`ezAf0UoJN&pZVi=K8kJ zjJ*2}{&s(Si+YvKkAWeGE3DRN50>C61V|Y^G<90t2s$Kcd03+^mzQ67#Z5rp!VnSc z0GW)5FYLB&a^aimwdx{3B7L>%2G_ulTX`1imlwz^y0J4PEime^MF%#&XUjfcR~=KsC|2Gri~+@}rK(vS}z z7`(|=FJ3_WTBI));TaAMb)aA*smj-((Czw@G-$v)xGAF%?YGZX-+m}$u7_RuJm{A9 z(HV)$l!uoFb@XNOQ2LaO^W*5QT7$Vm^E23d@x|rkR7}Jdd1GR+`#Ch&aSl}%UnABW zUVn&*AljW4q7J*6Gu@#tHlBP7GsX&FS3QPxl5Ccj z0o5of?j5MaE$?+pPFotNf%Q1k+3ENlA_B`OtWRCR;jg&*ZN7s7kB7hFk13%oL#YSf zJm9S$*1vF(eXMYBDLdq4z&H335$X6Y*=Y;T+mdYU-+_)6HH8??4?lm*(})DNEv?$) z{Zg1Bw8B$~sGjIbZ}VgJGI&y_2z~U9cvT4PXa%#mxb6fj6X1 zClpr6c6}M}js-vaM)azE^{Qq@O)Hb7fgR}Rf`1lF|3n{S{kf@bwyL&f9X7Nt}LadXc^E9 z%KunD{|$u8lCFJP$t?qpu_&HEPatO~N9l^7~zzJO-rw(?+^+X}k8 zmMG=%@2p=&NKil-M}<%a1eQe^}r3H&<%3<4Q%cP7IXtYzd;1P zfp^|;`EkR=#SPC&Zn!GA;R(kL)A(L)kAr7*>?)vaZ(+K7~yD=cx}rElRuxR{ZGl+p_y@b*s30Yuw#M@pShOdPRS$ z6*s^5rNGw;y1&CO9Q4xL8hzZ`ELYYZjGvwE-m+w+3`nqu!&zhcNBh{Yk5#oJTNhOJ1uQm>jQIw^!WJ#fi9cYi-Fe>|>vZRgB9XXZ5TuxKTrNWP6n@$GyE-^q9J-Fy#^=6iVz-^cg!1NK?DX9&?2BsK!<=XfguEj63`pGp0^1|KO~99c9|3;? zYY40*5I`W1z&Zl!2?Pbv2!V|RLJ5Qs2q&aF#$4fn)+H1X2l{BXFL;1p;XVE)uvz;4*26TA@G-g6a_+o zQjk#SMnRfFcM38TWGTo|=s}?;g6x1p7 zr!atm1_ezD11SumFqncC1#JpC6m%&Jp)iz!9))2P^eGIdU_fC6g^?5tDU70EL}4@q zV+tk|Oeu_^U`Amq1#=4HC|FP!PhkQDO9}!7k%AQkYYH|LY$@1Lm`Gs~1x8^qg((!K zQs5M(Q2+|lDcDnRpfH2NObU(^oG8qqFq^_03UetqQ*fc+N?{&_`4kpVSV+N*!XgTb zDJ-F|l!7~jWfVLpcv4tSVFiVi6uc;SQ&>g8hr((Kz7+f@_)}OzVJ(FK3V{^XQCLqQ zh{6U6!4yI$Y@`rMA&f#eg-sMTQ`kZwg2Gk`krcL3h@!Ba!VU^MDeR)Ko5CIn(G>Pl zh@r5L!hQ+|C>*2^OW_cO!xWBCI7%Uo!Z8Z*6pm9kLE$8YQxp;?oThMwLL!B;6p|<; zQ%IqZO5q%Z^As*nNTYC(!X*lqDO{nDP9cLrCWWgMvM5}maGk;p3O6ZaQ@BOpHiaAt zcPQMYkV_$tLOz9i6bdL5QYfNupTYwQ#S|V=ctoLu!ea_gD3nqtqfk!aDTN9O&nP^n z@Pfii3Y8RIQFu+Eib6GoHxz0p)KYj$;T?td6h2V+NZ}KOItuj^8Yq0G&`6<)!WRl( zDSV^wokBB(9~6F4Xrb_nLMw$f3hfj+D0EWzP2mrPzZ9e-KqNpVAdx^f2}nzzy98t; zAS(em3G|RaPYLvrfV>10B%mk(B?%}?Kt%$*CD2C#eI=kO0W}GzOJINmG$f!Yfk6^? zJRC6La_8iwZP!mSA>+)aWr+g~n2;|RCXbwSjtQj^*|uDMBNNJhsHG3?AHalXO5Z~s zDtR!Wa-{U+8xDV&@G9f-FlgG$gg0c^%^_BbOsLtI6}=~9E)(7w4YAD}>c)h3GGz7L z93zC%oS4M6d?wWK)r#*goj~~5{apVaRZRHoW509y*i0rgoevLOGaVoQlDvG7%tl)# zeEq6ELT*+MCVWet8J%LgmkG@|@#VR4OAuO(dhM*=$%G$8A?eai0uv>I+}@=4R3>(t z8duc1poxjnX8FHVTwgL#Mru-{QkVi0WgXUTJW#F3L^;1%na$LPi9KHVU9E_n!NgvE zswMsG^O-20)puo9>IWt !z_YH2zjsU(!+z8*mq;!%Ialn^WwL$x?F;Rm=-x?I|&BTGnrun|` zI?u#GrNh1-jVfT`;CrspY-tfgFCJxzjwO^tQ z?n|%hqxwIGit%=#OdPHo_v1+V6DAt!jjf!vYAh3thJKJ)FmEIi$5amcP;lTo6UUEt z(<%wXHCx-g_Y3z-VB$ns&*F&sB}|-@|J(M>&2vm-R}Q_+?O4mi$qt|8uI|c4DD>|w z|4506Q=FPi`x%BXaq40lg^ejk5Wa*wIexE(i5vq&<=QF+srtW>)zqlD8qnmQuRt)ZRW4|a%3r&QxJIuAu;4@GjYjdZMjtUo=kMt)&HB7(~F7Aa`i@CURB6M&ztrVKuIJ~@GUwtrE1BQ^XUYW~$&zlpcoF=g7bJc8|UJGNC> z!yJ~Neym4Lciq_P%0yw@(u-yRSV=4{$=O*|FK6P|hy=f%^eGcfQ;#RgK8a_d@wf{c zo34Li;;7a2kK4r@CK@EWjM*c75VQMB-N>^8FoL?z7L#Aa+nA_5;Zcf8-!`lpb(Z_Q z9b>Vi9NXcXK4=b>9leZHQiihWdn)D7^*LAudk63Qy7ERV*0I6&3*)9MV6D5Dbd|nb z%tXbavf-B2N3kBBF-TMGJ_0M`KDlqkeIH=Wyr^^P+AVhkgLIRAhw$-Up$gp#R-jhp z6(eKIA&ZGU|IGYqa{Urs(tp`~Zxt%4SESO+tF?y_vf?+zUD%Jim{S*6?J*wrB{QyDx%OprbgjpbE}P=0+p#h9f% z#$qf&zdU_4JQLx>V=t4q8`v+_Z_U5=4Ifv%Qf=i@AApTxcGd3Gep@kuJ{vwQJLrau zL-tN_^Xdr*kW;XG0H&3C+s@?+#Lw7Dx^F%y?^21-aQ&>|0QBmBO=;ySJF$3bbj3^4 z%v-35$6X9G$%=gOay>Q|@#z?u&q~-_$ZeukJ=F4u3wycn`R zE%d+|tdK*4RdS_9|3WC=vR5lY7iIj}wEXZH>@veH4>y?mESHJ;wzGEiv%+Hae{HKc z-E#g?Onig#8s4a{&%_a7=Nhx8_h#bA8Mp0EzgdMHO>?7fRDTI(ibZSKQ0o?KZ8}Ng z{0{gcT$uCM#aD`nqg8WvMLgP!@c6>r7q;@4Ux9W7tAfyDCOyypQcuB*GkHj=w#jv1 z4$diI<}=11e0Lqb=z%x3$V8oUW=GjlStgGAwf~5s`cCYpa+!0Q}N?zn@ zDni@({K#bV#w11WQ0t&5Y|!1Ce)ma}!M;2(XXNl-7?de0UhXq@AHmWzdH1_Z)0D9b zJGR{!@eJQQ?b;SyoswAWxqo|&ITeE4!9L+;OG<4Jc2DPpb{RJ?f-_7V22|?fr5SAw z&8KTWV2dmWlwlReu=*Vs*}B1OFZMwv^XO)VSvkwP^6<8k2H5p9t72Au$GSSF_dxyj zW@CibVK=_0tox_gjZa$jup7er@eZv%xE+_*4xJgdu=>rD+FudaWQou+a<-eX5jMMa zVdfCo0wyk$+3c!kkHyMOX2T)I$6Sse5V=Gx~F?P?x zb8iredOR`Si+f+PyjJggJyw7vjc&!4Pk(3P(y(*c`wN$1o!6{O_LFNsxP0RDN+)~l zjP~l|o)=@LEPJp1u^O$Zh3UURShz<%l#A97&fWhQ#b*2hvD4n&~vL}X`w&>L&WL8(KRhoj$PIdjJBei!C{GVSkj6=8h z|H_LGSc+w5jb~)Zi0CAQ`iiua4%GA7pdK~@1eAJ!%nWU|sTJXHXt~=Fb?lxd9X;FT z;CljVHCjlmrXkATatlba_Vzz^GgJW3%4t-qvyj{`Bg8e z)<9VPzNE8a0fPUdwWAKAM8o~A{7!a6C4{?=e%X}cfZ%jETRQVN!ua$NTXTCL^znQ8 z+Fc93)gsP_|u!WFwT>d^^dM=RcL4Zy+}=70Fimdi5NVb6;r%cKgLmHNgOqTmIk6WeCt^@GE}GEUD=QA2(5dI3*oF=d*{Kle zVvbcSq(@=I4Mn^sc=x`(ub?0L@Xs1H%LJFP!7pyeVVxLsZ^5^KhJIKEgEZf4Id`KB zLolzQkERKFY~4xcJz6yZaQk!{H?6q@iD09?h8)F z{k()(P`|p#Wc~oml*+^pXTq=uyO*hlOG7YbTv5r$vn$c7iz>&SP}}wuGk4(MMLuWo zh4WelZt3WB#ZquuQz!P7F4m2gOApR_?TjTw(c6ElvnH0E6A9Jd|5=#*wEl73!aA{h zc~}kJT7_PnY#o?r;!%%(r)<9S z5dW%kidd*CkCq%?&as%sOnc$*9bIQy=WD9&`3YOVlts0RDkfl?Xo^vs{cQMrL`KI!;N^Fr6=k>kng4)pa40`sXW;Zt0 z&v5}Zl?ez%iQZ+;_8~aQF7}LkfX(;uo#{to6%bMiv!5g!MzBs@(42#%K&$w+u0;z* zM=Qd|_gC#u1U-}Imm(t&G!_G6tW7_ zL8FiAhQ-C0_ya1nPMK8WQuzng?ar^dji42;5OpF4!F`;^ZE+()q)Zt<=y`|nEiJ6bo?`3TBntAR z-hB22;exta=&jiZ9^%&pbMb|}wH&L%9Bv}$4$z+JiSbg&@UeV8OAq06?)d?Ej}R-dLuV?z8uifa_fLdV@Ve>BN`%BOAZ|rRDIE^qzUt;)gh;=+FnBbA$;r0h zYfox?{1F}U)p z8g@3lMj6Y8Z82%OpN;4F&<@QWg_u^orp)fxVu$p}%M*@oa3+%>X?t&r#i~c%f;E3NP^)q?pWl^=^FwIKAG%);!_;Fu9F*6= zeaT5o*g~s;IMQht)Gacv87;vPsn4Yy(DDjS%=luDuy@J<;*N2bS?s6#Q_lx2)9wt} zwmcCnjwf<%&%jv7jGh-o%Wfg)jo7dG7(XF1WTr=~Dz>fedeQqr47MYTmv~6ZzTrU0 z$8O@FBl8g^I0Yx}!1mW|U4zcxBbX`D^6K&y-!X-yB^8E;VJ%*IQWm@L+!5@!)%g2bu7v&F`@67|dlUwZ)|YQV~q}tJ~|ac1JK? zO0U=7GY)5ifAs$jRNXp}37w6$ZfYesB>Wwt@vO(}w#yP7Xy_))ahaCQc@Q{C0`CbNe?!#hQk6A4421 z`ju@>^2lSt_l)<2?UHh|_zW6(l~k(tiV5UXSuw zmgaz#sezaMGe6_>vdCmhXEzJ9Y?7_FJk%HOS=6^srxYipU(c_oQ|q0Gqt1UbPWamV zFhcddKU$QxR#snJ#e~K>1DTY+7@a1k!vjZ8!(nWbO>eg*;)~GtxaqVo9KANK9BWeJ zfg{}iEdNbY8$74Jh&daL^VO+#$^|EnGNFF8+Kyh0`1ShfIm`DI&&L_;a+T*Z=G8Ib z)9IU@+Z50(^><>8$8=L;!pHjtwcdZ4@E&_z&t^S2ge&?F7eo!ho27mIC(a7Rd)l2m zHGbML;lp6Pn#EREnehHml7)qS8p09_ohz>j5dJ*AT{l=7C%_q+_s361Mg2DluHERg z*9gzg!rKUE+lI@f2y@@7O&$G?3ANu0oS(QXL+El{t(05#vh6q}u9?+(v%?pIQgfk3 zRq(%n^XIo(KU^$ONHx==d%TIH|6{2x==srKAE(6CU4E|W(sPyH_z!WvaD~+iXX>}l zlxM>004Gtd;1v_9wyo`K%o1?KEvZ>sQ2&StFDAsNrr~r>`0uGoTXA78<+V(BnWntv z+cosh3#H+q3a$zWkBbl7H^ou;^LxFw6T|0tkNH+d+nyhAir#WUQ8Ba1D0|bMt?er~i(xg{L4TzeHmOPUE{I`ZRaPDCMFxXz5#8-g@9E6Ux38xcL6P zj+PvYr%NtiEXs9Hk274k9xwe{WQ5YjK&jk!DD~2R&k4el-cy6*j8-$@$-iAjC|kLr zd{^*yyl4OJvte(w5lk)Pv|9q0@OW3_58d<0{{tm`$D1||dB%j|yv;i|=izS(k1w~a zO0~^Jn6PSE=RutF|97c)yTF7;JvQm<4xY?}k|VL#pClb;!h>D2ozyK;5jJl5 z^43#^3HQ6aTCn@WjDtz@@IAFdoxb?sQVX8{o|I6I*?nI>{foSr4HF9Ow|UMC&p_yM z_`Q>l6~;|hMa%cd%u{Lim~hWR)gdP!mI-+wJ7avk9no^}q@RxtdMt0}{Fbve7=pVA zZap)zP!f6XC)wBAp&;`I?|5_P=u#%!>GIFrsxxuB73VS`r>l70_3R&1y?6{hu4t?k z=Y~}x$F}0HS~%u%&KT(UZ)YJH$%7~Nu#{I${ zacV~X3R#oQge$X*ZcVs}6)Cf8gPC1>zf!j#X-=Py_#U~a2bYH&K=`*a3YWWfaivQw zm%Fx;p?p1fNB(Ulq-T}tOwN7JgbRDB(qt2q@F%3M---Tv>S9+1xtJP#GkWefCj4hf zvrb#IJ28(5DJQIyZoGB>AGp{ht#hJY_v6<1%TY>~e^R=loZMA^&X2I1(s?wI3CUeq c`5&A;b~U4TqtyRAp47+Y*#-k$cXz}82L>f1zW@LL literal 23396 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 KpxOTW>;D4~DN4`) diff --git a/models/gcBias_toy.p b/models/gcBias_toy.p index f4630a513136a66e36752f57c564846909793a5c..627497d1227f8196296d5c3871357e633cc06f64 100644 GIT binary patch literal 585 zcmZo*nQF(x00yyBG=RvP!JE;W$(z}m#hcZe&70ku!<*Ba%bVMq$D7xi&zs*{z+2E; z$XnQ3#9P!`%v;=B!duc?%3Io7##`1~&RgDF!CTQ=$y?c5#aq=|&0F1D!&}o^%Uj!9 z$6ME1&s*Qyz}wK3avyZwdP(ZTn>Ja)Ig8N+38*@Ma5{=R$YqRmMM-R&Q3Z`S{; z7vXOI+&ga7ZJmC1`&YAtrb#Wl;%@)u@$$nyHKFeI?{tq&j6D4k$hhAmlJ~FI-Tr<2 z0So!x-ay9WeFxenC+;nB*IzdozD+ket++TiQQ3>4uj=U#l@ z258RqLyG^3fKGkiyI^`k(i@;ueUhZr(QiPJjvuq66Od@GQ_n{;C8NlkbArxL9h`DJqM z_D?oBN$e7i0*2~K#u$TV-0t=dpX{0FxgZ@VBE@=DE_9x|{XL%CiiXLR?)JB~IsbRL ymFsSQgY$Q2TmjJWm)sU7>F!hl#@B-dTpKiiZa!uISJrGxxjQ7`FfgR1>Hz@4Nci>u literal 1355 zcmXw(IdWV<3`29B#F2~pasgHO7|tE|{*fR5e2=CBu?Z3c(evZaU;X;==dXSJlCR&t zlw%y{1SdJgY0hw#qfg>x>ZR)C>Lu%C>!s`E>jCr-b_jcFAHoh{hpoRFsrAlO;f&xJXj^1J88t7P?2-8HbwcrKg`|nP#6@*WD9sVU`u!uK;Xr zXvOSQkMqbQR*6p_cn#&BeNg}=yP+PD$;#hUHc-W!OmK8R(T?1)p-dYae|Nxqv4c!e zT*|w|(iEe}L~X$CQz0#r!g(J|_R7X0Kz`&;_}9KXNMGP77=!FqYV)aNgcHTEi3v76CY|p#+G-DuZbu5NEi%0QLXc|li z-3%$FKa*9ih2LTeZ?N?zx1zdOk*x>H=tsv~Igk70;;sKt`r~*AC(NyG={&MZN))DP zcoTo3Xo|Ozk*#t@-l+0wf;VO+g2O-EkmTS#+q@gx`cyC;5pL8d(TSWlT0A@WD*c01L8M(cijzVDah=Rb>89U1@t diff --git a/models/gcBias_uniform.p b/models/gcBias_uniform.p index 52c5b860179d5f35a4df049e3111779ce6b8b1d7..a8ad93dc97e0859272460912c57bfe82f76f97ec 100644 GIT binary patch literal 585 zcmeIu$8ACZ00dD?4knpwlY_|^C;*NeUJV?7A1(s=qy)a83M5u@*xN|+AHN==k;l%L zS%`=aQ894|NhxU=SvjBb3W`d~zEo7z)HO7kZeeLBld_hNB8(>&HMlP`wg7y7anDL)Bpeg From 194ca56cdb3cb075d72aa470f98d5a6848730b05 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 13:22:58 -0500 Subject: [PATCH 198/323] repickled the files --- models/MutModel_BRCA_US_ICGC.p | Bin 404224 -> 193920 bytes models/MutModel_CLLE-ES_ICGC.p | Bin 2003913 -> 950391 bytes models/MutModel_SKCM-US_ICGC.p | Bin 993782 -> 458729 bytes models/errorModel_pacbio_toy.p | Bin 776 -> 426 bytes models/errorModel_toy.p | Bin 7791940 -> 3282719 bytes models/fraglenModel_toy.p | Bin 23396 -> 8991 bytes models/gcBias_toy.p | Bin 1355 -> 585 bytes models/gcBias_uniform.p | Bin 569 -> 585 bytes 8 files changed, 0 insertions(+), 0 deletions(-) diff --git a/models/MutModel_BRCA_US_ICGC.p b/models/MutModel_BRCA_US_ICGC.p index 0450b94f8c0b1f9678924fbf151aadf47299769f..f86c49a1ee8298ead1959c0cb7c5e5353c55c750 100644 GIT binary patch literal 193920 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%0Dc!0_td>(IBnK7J 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 A;Q#;t literal 404224 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

      GjKd2>ipbE-hF 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 diff --git a/models/MutModel_CLLE-ES_ICGC.p b/models/MutModel_CLLE-ES_ICGC.p index e14a039f0e9fe0d1cbc6e560524513f4ae9f1a85..d2cf0ec744967017b2357d1fa12aea1ddd5e5f01 100644 GIT binary patch literal 950391 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�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ðE2I?^R6No9i!M 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 literal 2003913 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 y7? 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

      0g&Z89v$pRyf28*Mc%xSPNr z2~iJBPi|jz!t=095}wsOSVBm-Z|*2--mRX^5+YCA_R;0zc0xToEAxxC+Ixu($Z#}DL`|^^?>1kXi>(LeY9M(5IIQQ|L1_yGIt!DLSFPIN` zs=$=LOiztG^!%+5_`m=6-zAcqb^9OnXcyLT%G9)d$i%Imn)-J7aT7#sh3-Qm(3miU z9^0Y`X|{&U79KS;$U-vXGzP3Fp^ZjO+t(sdhxV(Y2{Td}Ixq52X-FV@UXYHY|Ch|C z8YX=+(x@p;e7dPZ{KWBXA4L={$ac+V zm}$!-ep;>mwAPuWF;94e88jh-QaH0cA+g?;%rxN{W?C}$)75$YSq3|k%rg;hW;|Fz zi9>oKW_+`R^!&JIIr!zYV@Ly?f}Xi5hR)h~VF|%W&x|~3D-e^lSwjA_4f(u02TKSJ zdFRbu@$L4^x|woc=7S}yK>@bMRhf2=i?HeiXLx3mLw^&E%WkW5?v?ez64F~`7&AE3 zH^*3tC0sad%xC=&$i+&>`~FM)93FX!B{a?pO9<6DTr)VonvM0iiX~h)FEKPVvLEtr zEq5PL`-y;s^JdS3C1k$Tes~{IxsS5v?u8{J1wQOqIMLIDUx#cjEFph5?3t~KOEUV_ zV<|^uU9rR7?PsurjEj?BF?tIpY~Y0@#OQ`=28Vk6a5;&IoOgK$uZI0lD_uIVJjD`v zTrVu4I$nL?{85?MV~6{eAbJzo*it1u>JIZ^%w!$voYjMhm({SUdz7Iz?I{gTjGBp%X4|qVr>@crf{=bVM0b@Dvow{$ z@c>N_o>Z(R?L!*YXL+p!v!gLxw7N?(4VmPR?uf31-U*x~%{|IckMbU4`VncmzWfBIt1gBs*EG0B4pGOV0pd6qbB z&L30W`F&pN%(>#}Mbc}r6e>w(oEK`4MsdR}bJ>xnKV;07Cju9_B$>`JNuwU^VLM#p zL5`Og<>-V~a$;^26(n;JYTdQgMZ{d20QZN}eLq+nf{ z8a(3=T8(i*5Y>(Jg|j0UUBADNYfyudhf8#!pG^&t4QPWt>xa-P<@qMP(z%%>kUV2& zMQE)4A`r3F0AfAX;&@k61b z+8RB~W(co9!>$3MCP_QHr@w66I$C!H&pKjLPaV-qEvagXc>>f?#~FxlYXWhQiz!ci znIpUy4d6Q`D)3?J;BAk8}HJTVEYnEt{#qi#&rHL>_?35m}xx18d#f z;0^ZoMLaGV@qIs9Vc|>< zUT~&S!+}t6w+B|inpJIj@Pab}5Sp8^-N$U#R_o~_$hwbf5QGYc$ok5ry>(RTZQ(fn zI5armj`Hx+T+`IEJzLL}y7jnB5FVNMpMxOe0v=Rw`Fra&2trwUt+AsMVh}lB>aiTh z-ewRi4|2ZXjPQf|eUTtyICwl{*1V#p~EF9rm20T;h@^+pi>B!M-?#YigU*Q<)k zC2)FNl>6MrMK*NeU}d|$4qfelTK(CjpYsBfR);|NvznwOgdA-f5QO(D(6s13JRudN zLl&B-L;H(FlOcp(=IQ3GUUhAMBw7sNhrjQz3eqEn#=(x`XQgR9wBiUoG;@R>IK7dP z(;heko|xmFrz*u+IBnC%Lx;MyZ&kB}sR4P+cd&%&(k=}h*BIN)#39w%`%fiZ`VvFi zG^dd_O%rjYKy>+_P=SH1k3;LkS1(gGI*M{R7D6;~ImGT;Tf|odbf8hyx;^B9-%~OC zp6yt0gfnmQ5N{12n(I{9;#n%P(1SEtcv&3;ECYyRSyi_D+v~OH!uGZ5*M1$@U<+yM zPn|+eedP)aiJ*6wVbMI5qsJdm(E3z?hsQ;Db%z-S{SR?#=gbz&j?(CCe}@@VAxCJA z^pOZ8{>zf)CEuZo-D$_V zBhdMdb{WMI8i$ao#5sitbm5;k6eLAKqgu8<+m~6wvnw1dA?o3lK&>lJR+KA{EqRk? zTCxhJ;+#qwy^!Z6+z{oJ`k{p7E5b}QY=3lamhik)43qxy~6k&srO!M|YU zB7*?=xiiOoX~n`VqVNJVTr=lPTH$PWj869`O%)zbJL=Y+0?`w!OX_;B>eRF~L^P$5 zU2ukT=1@m8C=GcqwWS*8g)CIF_94zs(&L)2UJ7d0zE-<#F5Sf$Y$3@Ftfcs+g|lNR z?XSZ5P;&>EEbbu>wX5VNkiqJy%1C3HEIi{3u8;!Z-=yoM9;>9dLaT~c3V9A)XxWa3 zIdftmE0HLYY)NwuGHB8>2E`I>VLYfx1ud9+kUtE8EOYTy2_!aV~0FEW?idt;cRcOzU-Rv!+W5=)L(kSP~5WjEp=*ttdT%UT0R9& zYSTVo)QT-kCwM~n>+58(^$r+H{VGECpn@hO9x9mgdcapr9K1>>xoAR9mTAJ{wGwpt ziKC8ukMYzQW#P0bpKt9PAy%hdjj+S{}26XLmYSLcNYc z(Y$b$3^8?P36E=Qkc4!j)Wg_<@pP448`31XhEKC;LdSvq#jhzg6g#^n6ohtR!~ns(A_2suk>w0GAnq&8OF@6u2*^( z*7`Ov-;A03P%JJ*2VL#waRn>*$E@I49(4MF(`=sYw~`wR^Cf0hTk?TJ>bzo9k1JR~ zm4ivoN8hXz(Faa+b0nv-gFC$|e8(B2;J2RH?Mvd8r^o_Z;TtK4ke~9!*%`){iN{^L&l_ zf-O(Zdt`rDGjH;I*fTUq?d{f2#CO>G3(g<}OP+S}o})^WEX=m&^SB7Gh8_MU@43%z zRDxjx3-isM39vqJxR|ondk})^#eSc!K?r{Tp|(Ms)8p5R5VSl5RKhv0cZ@FO;Q~Fc z?1JODPKR$o@VMnL#{&jUmpLyHvSr0Kvj%rIu6Iqtqn zIUZC+K?~+B(jXiNalj#liH)=zzDH#?@T}y)27ZI{)iil)hyQ-Gqi*ci$x?gvl!rJ& zvB%mh)S-QiQSI1YaE39{$e24Rd(%O{t!0a(&Rs*v4zL%#5T zdf)70rqoVx?F=2TS~oBJpPIB!7kY}bU+OTfS{~Z?t)ABi}s0071U~Iv>STRA>CroWv{xo(SF+^7t zPySDX(k0<%ITru7AYZJQ5qwC~^?;t8;{Uu%S^0NqraxBIba3GPu)ASQ{~c94**^{H zSHlO>8Jg{ZtJx!Pan5e+%(`?o$Hp zL&Kc?HcT;pR*jjzqiQDcr!i4<4~+e0#5`1Z-c>V+zk;bUEDt0%EfardY5vEEzamLV z6+e=BQ0D!PFq8I^G?ef1sii5}Z^676@nroPMk=-u*Q_nb7bBjeA253K4j5Zs1qKbH zj_fz(jku@uc8=P?PSX3XmjYg`+)HaP)}QD}xRh zFF3=DnN{_6-U^9q5gjt_Fq7^RjGoti^jbuRC40FW_&wP^N{XN#1=D8CCCY%b8Gq0c zP0uPh9+Sl!lO)7U!KlT@(N&5jr=)X@x>e2oTlg!i`&@gF$)L?!O zt!B{Dt^0xJp|R5q9f`1uSu38)R%GVy*b_=U+6N95J*k#p{`5$uMs~)T%pdCrKT`v< z5LLMCMb^~c`J~U|vQr>xDJolK%ZYH8cQ{I*MCaM6^Y|Kw8eHosuZNVgOY2lr7& zQvnOd`za3vYMgJMMOKd1i_Glb1!q_^^5})~zzNr8_V0o-4Eitk*7^x1&wH(sCC^Jn zjvAghuHQuTlEL#{^q(9MZzEQL^$_JJd}p>^6a zs7?FQvwE^$^{giC6NjrA`RyK~da}RZq&*`Ycj$`F?zyH#)RxWk-^Yg0dRCM6lm`$v z?f7>45WT8g@=OgaoU~`;fia25hv(10?0Hw4+!vg*XFWZ{U6GV$+p~)Dgma#+LH~gR z2^xMi_j~nZ7tYy!h_ymL+_(Svqgb0>n`+bkjLZDraa|}wnK)cEQZ)G3OwFD3V*>Du zGZ;WfAn5-pSg{>OnGaXTYFwv7lh~sWN0qi*Fx=vlNiIm6^Hj8_oj_~gsGD3YuPDh< z{2(8DEe4x-ca&M-Tp@ZUyBczfvN97FmkLL~O85uDG zFHHku<(U0Dhra629;2c;f_kNe4EouVZu;*6H26QY52VgSA9v)$mAowxlGeaJmU~C_ z?88$cUS*GZC$_UKoe99Bh6u67!01xN2J$Gk_`fxFap&s70q7qL%m|>f64PK>#{*yd7u`uEaV7x8}s9tb} zJ%ghc_+nf#Nz2ysA1A9rJs@>wb6ix!R{(F_mZM%cWzPTnm`J}WSQY0y^g}cEG8vC0 zs7YNJlKG5?_a}CtEFGOjKXLT7-D5IUwze?aoXqSwkG6iyb#nyDk$b7=FGV z2KnWOITL*BOf|oLRK?Hjo==+vzZ|i~Z`zbM30cG9*NLfEy=Un&SVg@5TR}c2endY6sW5(|-K= z@y)8YuQhty+xhLZX6_lN#qFb?+7GSr#Q|OJ~n^I!B#%O3(7g5(U%%%uW_Yr^@)(s5T(_~Fc99j1g=fzzQju3)I5mPLZ%@L}r zL@lS^JHm3BA@BuO|H{&Y%go4oX(G{NegEMo4&7 zFlY4)q7WcGl<*v(5Lf2hva!>(Z#)?xJ#fc-!5nfmIlg_4hU}Ofd>r*d&)JDXBh@-D zFB!Hm|6{7~V_fa4wRffc)C&;$cHv0pZQ1I^eqCH@&pvRtbWpZuoJvX?$7JDoTjWn`l571oU z5oR!jywbzw9Il6}`vGH9KIw*O$r&ek!|ez@wOaQ{{5Qw5(#>&qR)_Y1Lt3F$L@)Jd z@C{B|@)>8agba&J+pZ?S$!OJEHeAVduK2fyI4b_%0hC&_KT0-7cvLch)_|cVaaW-r zjqG?y^J2$?AY@QHw2;f8b{@l+AUsOLQXJAyuAdTA+Rc{J^x)})N-guWV-f?=LR44A z7?h{Y?BH3N5pVoq9J;h8?3o z-qG5JCADUM?AXlU`QSwJgCP(hZ(I~Y2wAfAgN18dop-E34PwX?NmM%C-&Q2;L7Eyo z?=(1>R1nL&PZ#T34YK1nb@-`uexP7^ylogW1$?w=l>x7B!9-X(2>FaMz5dtL zk9|p{=IdoKJ&L881=1#5AT*Z#QyHh0q}NstO|92!ntx5*mS)w9UFOmtRIS%Ouq4@D zSg9L<@GKVxdQvA;8ou;XsDUkg=_wIGKTyy-x9AHbr=2RZo zl9Ya0vE*P2ME`t!uBXBzL4&l_8iezQ%zc4KD(l4T-+6Y3oSxxunSdwK0%S+Tx`HR2 zoI!|SHVFGg9L;$H4nPmbyk8nUw$gUbTX6~Uhd1B0B)jbasgaep7?!_4!eXfd=R_7D z`|$C@jNh~puRz|D4M}M8Re2l_Vbgu&?%HCfnJ`a1Jtq8WdZ>w}edkt0Y~120q}dxv z*eva%J8QpW+5VQ-ykAkmXuk>T!{zrAeKwV5`p%9?cT}HQ=9z8wnmwQzoYy0>&w%XI z>Uzqt7Q>;%g5&Sqg$ZQEYpdA@(H1=FBK|SFrp#Z?O27+{-gft0YiC0ZR%EO zS&rw6jMLq*nAY= z5-kg{4{p!Ko*T2$ds{JR9@b;)w|t(5gu-)+le@s#KStYkm+OF z*>9W8+bFdfJ&NM;mMm?)7nJb1V(zK@U__qkV)CqA-{iYk4A#08!&WLbPyu>*#)n5rxxmg!mFi4 zCar&e`*O8Q7s_#~SO4^lLd>prD4&17$h)>dksx=y5F7;xrOBIVrP+vdv`}8GR~PIO z<+r+!E+5A;9f9%^FNn;k30;%-fxJduqxC42fWUx?rRv56QgUF@B+D zAyEh}%Q<>L*o3v|*=c4I^;)ZVU_@;MMaB9nE)?~+vO5t*y& zRjtyFs=e_jDl_f*A||R4ogBCtf`u#;3KT`N{{2|srsD`KT&C!bo>v81F`_SyX!4o<_k*A#IoOMOMu^rffl{F8^b{)~ z=s9WqZZD?iJV#U`#lcx^(I2@?&Yj&919)WNsH$gM^SFgpd~8ek_+D0FOThHvmmO9_&#VLUi{!5&j3NtZBozDG}G9IC_H4EDBQ>oTT{pLN4<-3JMGuJyp9b*S|I}g3!h$@!%h>CEtrm&E`n}TQ}g?X%(pER6eC@D6lFUe9g&gjCG(FmnU;l6X^#j#jx8ln_U59?+>+&( zKIF53LT)LRVA_tUwlj*Uwi*%f9IjvgzDE>9o8CQ>EN2fR;`IA*DmtX@^Vig(_z`7Wg)(G|Hn`tc%-VNA4LU`(}HH&Bpu6nYSMDUpSV=;#-Q{U%IUFy4-ej(uEHYxBowh>iqvnI_Y0Ee#`rl;1O4 zB%4)ZlI>!9#7mC}Q;4iWm4FEoUL4ygmQh>t2L-Q5&LD-6|MhH}U^{NLzf7>zkU;sN zt02#+40=r+%u6%JX)?W5D0*;^H=9ARGO9eMIyrG2os^fY0 z$ZVx{En$y{+Q&DPFki01{|lp$f-TDqA4vJ!wW~JfF{0lHt}k0J>SDf(kb~$8N|J24 z1f7+h6p#eUi}|W+TgUrV!ey}7(|UMK#@{%p)obT!=5>gF2T73M+?5;F+Uh^B2m?(T$hH0!5EP zRRnKYf@{;&PpyDs>VY;{fkMBHesE%;$n|=TUb!}If(HyKfq&H=vS7k^@un}rr13)L zWC=f;H^NvkCfm;2iMp0Q`h~K9lZbi`vQB~H?8C{2({?ama238SXnj2unsi5KT_$MJ7VUP*5~*i-!jR351cAykUBjb?@Dl#RH6&rJ1)g3?b8y#yMo`BiInNJCWgBbUdgx#9@~A@uXi^u)c|r z-f+T>)zd_;$T1WvHfY=5Cf{!IgeCLxD79I27&K1NZ&r`#x3j+)>>GD=D3;%6S~V?y zL^J(%SrLPOLv;2QnV{8NIc}?mlnd%PpPpzxm$OB*r^ESU$(2;|sLa5fCw(w*zyA_r z1z(lrk7`iR6ugs1(Y<{SYteBhUPRr>1BNTO>JqqIUvvz`kF+TtSA=?%Ck%94F%VXAWp=G7!X_#C z80kY|B#f>i)go9ha>^Z{tNywc#A)OEGZ;Dkr7v|ueWtuTkfkvtcXombrejou8d&mH zPUTbEs1>}wh%*dXFhxl$5oFX0=EacJs(eVp^{yQbbIotVn3X%O2Oa(g484`*Xe>?8 za(_(AU0{Y8)0w3&U3;qHNF+~v*A3xRO2gv|L2b|nX{+1B+*z7I%u$!8XW;js%8OYt zGjkW1VaDuF-K^Pbvq%B!$<*8hW|}civ&819Hsy~k5(hPmg;gvnFEH~BzxC|t=oe#L3e=}R?JqRjQlgn6`y*5Cg{#E zOm9jkE_QmH-JV`o9L%V};Rdqb-K~a%^mqu;LQ<^W`!+dnpJMn^f2`SW-e83R@?d|TX zj*bh)xr&o+_}2#vlu0ek){VN7uVwnxJl$MTPf??qlBYOy+Nvz5af+#H9rMy{Dd!wh z=xWNq`BJp9w%@Lh>E$3kyu9(zSEwoZz@detw7g{4L51F>dczr(jCfoe-SU)dmdAYE zWn4+vaSMivR&~1b6jfT%vYD~F;S5^_M~{L(<0{V1IwuSDGOi@;Bo8$y+X?dc)5bJw zcabM)J8(Fd*L@z3D~=Lh&D-7VCy6`Z5F$&@)=6BGQy=n|aV2#J&d=ZKdc1-HB8|X& zi7j~hBh80qM(%utQUi4Yi89+Jx9;X zEvXL}ULXc$eHxIa@Xj#F;4xXG(jv==BifR&R_@Xyg$E4hgo*?$O>Kl8pgFvYG{Z9k z^QX><>(dyZIlMDWQg}#%ORt$SOhwF|adUVVOHK|?IOOTWa*DoPIIotREFPVv$ht-r zuovr+?bR_Sk0%_GIsat_K(4H&B7#;YyS>fPff}1gGyQt`(xV<0)giNpUKygCwG|S^#sEr4z(7sXWf|C zJL@KiJz$6iBL%EJ++7RxDK_RHFJCC zK_$2M4_BJFy}Sbxbtr$NF}ZhM;_7m^XZ%ag_*G4EyH6^)V`C~ig_b&1z!N-MLHB^g*MMSl6D!kyT_3%1f2Cl0dAr8lvjG5G${F(J8 z`2LyaKGx;`JWKbg6)vi(p6eM9?|uJ;DDi(jqJsfUR%5Ehz0io6AqaQ zZhGmLy{u37(T%R0Z!lrWz>vGGlm3!Mk}b$LOD3SoL2(~Ck_75XzBVqZvP+sdQ8@lm zak6_zLog9!Fdi{rUJW_fJ#g5)q6`a{xb@xa-fcl7y(gR>Kk6*&MNo-lFEZ167eh{d z4;*#E+My1`?IPYuqJc%e?-1NAJ(w&lyP@}?c)C}}G9Zey+})k8$gw_y!y z{{G4B?7jPD_X9N`zvHMSd8`U{4cb#6Ps^a5mg^{4$Q1cF)ha)RTN;wqHK$ zM=i-y9%`W~^|0g-X6spfQzXxEm9pCn7_!r0d1^_%RIbwg7no_xJfT_)gry0JPes-* zFw>SHY9gwj0eMLC5@CpNPu=Kzv`c+b@y`5qdS~u5*Lknzo!=(ri+AQPr#-9w`#ECq+sCEx^NT%G5jMRu z7a?{+kl#Mp2!4LCXMQ{F`I{?;Pf);bLpHO17dCdCo$VSpANPBVVbit zmAKWlOo# zvc>p~Bv0oKRBNTfG>LNuDrc5P551KlJFA_ml~ck zKUJe)%gA~4sQhIb^G}jl+@{%Du7tJ6g)zM0q%jMpI}og~Nae;Mn0moU&W~|X$GMZ{ z?$fYvUOjV?e!}4u^4J}A^$VD<#!Ni07X=sh*c`(9RZMU5G3$4kucZBuhg4%xV%E>5 z{ivdSv*u*|fT4Mhx#{EkaB89%|0mDAGl^pp>>x)6wE%<@To!!OSbsFqclnPX;56+4)>MYAW_tP!jtYRn7-O* z6<1nqN%P{9ReUxFrF&j$AnG>0JQ+P}@6xE(_<$idvn^N6#+S3;J=iyxv|{Kr=PP@X z`<;v)ApKAZ=G1wD4t8n9z|iJ#FLAXRe+Fo}?+imkwFkvhOEB`9AvGd7MSh~EvRDT_S|!X<+nRdR#)+o=A%o968QXKI%5tI zKmLgTPL0MN^TXL+7Xz&=a;69`yDOtryg57W5WHD&(tR`$R5~sORXMC)Q#}3fCe5&7 z%&{-Ru1^&s+ipm0ybNksF+@nb62S2|X3cEhk$mJYhZ&Q%%B_L&wk?j?zT*z_4^c#{ zhQD0vt_oa_q+%7X3}UDIs0P=^Yna?Dj9K3F4PnBIGv;dgkcNCgxV(7g1(=R1&V#~B z<)FAZv>5$>q@RqFuaoX)_)7^BE>H~&jV&&e}r}D>!#4`%!9FD5T_+x@7hqUf4Gba9$rmS&h@nyD% zqyh&Pop?IFl_^_0rur^khdnNE#AMZR+~e9*9}D-*mXqq^ky+y0@o5AWL{4`tC({QE zwo?;ijTFVGbl*|i7Rt4 zOr@z8Oq=orCM;Pn(2$zu_38G>s#Rep z|NZxW|N9>rdHnmo|M~BK|Luu0?RP_|?X!l0*bk(`v(?vL?1#;dp=>D9e(wh-gCSaV+{BbL&UG!Nw1XwZc zzbJevJujG8yC(iFFvFIAK_o?J5Op+2)3$t8PV#=Z!*5*^)U5Z6*ICCpHt(lQU=(&& zWfARWhb`-I#a(s9Zxu9K$Lo6E8D^L=oq?N}wQlzHJ|G=5r!4F855FC@%!Tb=n|b87 zVT@+|VnjmeGbE|xoT@*x7_M3(kE8+*E6Swb1!j0?%4z$ZzV&I?u}Q!4pa`$RaP+iV zohYoF`guv_!`~T)_-f$r6#5Q#eiY|t9CLnS!ncwMuo8z7+R9076b?8eNUb2la{Z-)J z4lB^ z6_Zfz-XLwqQKv+)QQPquh5%{6(0pKTEtzgqyYl;>lITM>dO>T){!uA_G-b! zr!>6I7GbhFm_I5u&vzbF@_b0cghy_M4zs{`*4US7P#=rD4%oW=l+w^WqyjC^RPlUP zw|Ty!|Ks9G!tj=m`k_7RF?hb8=J}4{i3*ED8l`A+Y3`y9^2BY$N3YIGOc-5h&w&K( zEH+ZQIeKHYF%M~e>KTLWjek}u)_O9@cYzsJ%v?1Wwm#kag!-0CnvaR4$AAQ6NC)&xSd)pHxbF!l;i>!0fQ%=epK+h8b2&{f4ylSZ)w}(CRPJB)><)F&a#i z`PqpEzejZa1~aUf=5W1@TgAaksBt+eK3*oEg~_mDV1A`bFMiL9fw-w=>ZqIK_tZs= z`i&i%kbc^FGQW4W;^g-P!;O-do#6NMi0fS%R!~?mRO5HW5q1uhZSm#d3<;tC{NDo5cHDuj4(s=!@oCN%OhPzwwKjh=)GXgcreyh$iQuG;^B!8Ue3r~C z->Eq~`|a?^coh0`Awk=6ule?e>SfNLjy>jqnYN66c3~*L737lU&6bnpqgOnIdG0Arf-3ZMm3{2Awmik>%56UFp1!h<==Z3B@ zT!Y$ig&LaIVmJ;eNj@f=E|lRuyGO7gP4b9kry7Wr-TdhIzsipbd{BTt<;q=>4<@__rLGlr~6wEmZs4nLlhm;$; z)jomrGmA^KHsf>hghK0qLl_ewQm68)aI<{pRh1+k3V@~wf|~2Mdx)8c}%U8!ll%d{uWCmbKdJ=H-*slU0b@Pd;xpKw?d3Y3h~3HM69s=c{zjt3F-J5M!J z23{v|Pf=vaS(L8udIMFdUTjGUy%{Jt&<4Utp#s)2F1YcMWR$WHmXz!wiy- z!UD=dwU`W3B%h^uxy;8J$;bj2N~N`9u21)ALhly7NRvL929-oCds+2Ce@WJ6e4eR6 z^3lnXcayej?}|9jnpwT$IamyL%oKUQAC)At1a)BR7?3wvYfu-MVa25Sy4lW>U`NTk zu-P!Dvz{)kr!-XhRFRHV91$~Tloy!6>OmRM1|cTAf)z_j*68tqzS#VG{jP=8&bU$vs*WjXHv6sncoFwSTP|W9%ox|5qg%) zgx&>aSTSihW_+)yv}hB0XPCj~(G-c)$4-Q+`}woJ%;#NTrWMmjx00(KNY!;(Pv-M3 zFw=^EVP!kL&=(QBFwEy&V5SxSf=rRESc2g5I0nAV)Zp`!qaz3m7&%l+V?OUJ4Y5?( z4euV*>BYJ!KF{W7KJNlEt(b#w9m&?GVMB|~JFf6S=dmq7QtDH~1f8cw=d$8sV5__Q zIVeJbNK4VKb?au)d8cTdK5!F;C@WN4#}TWTjpr`SVDlK1t|so83N}xD&R<}r72`r{ zAhw&RC{dg97no_q>FFUfI@7 zPzN+}e;E`pR8BYzknp+BKq3dH&fs_53@#682>rrx>rzgeB6lqAFq{pCG*nd8sds&< z0k)oWP%3E-jl?NaODm=o2zizr3UDpv8K4T<1appPp-w^^4tb=d_C}?y=Ube&$XM^F zZzb!nNU8spq0+7%qPe__JcG>RW*VEm9N_wPbHdcC*0_#A1qb;Q2l7lU)1RS4aRb@3 zf;mP?YI`1|B15nKT@OrTK*+1SX?d`DTz29igdNnX@A-1^oVi}aA&%POP_{;s#BG8c z07A634*PCiE^aX~`UaVf4aWiqNxmOz2%;(vpE86%`g(gq~qc=$&B(p~vF| zR2=Ovr!S2!m^VWngdSTJ@kw}#NbRW6`CY|?QlVm6gQ|Y?aTb;Ow=^d7&Vw3+UR@EX zY=tMePWTI^UGfEH*fDpP`}N`VsqEMjZbI(@Gt8I{mi^$)l165{AYTr7SpU!sTSV!@ zR$SRCOJhRsEDfPlsF-W-YQXxaxFV-M-AK12jBX5+v$Bed(6eNir3Q6&T&(9uH=IAY0$rzi52W@j ztJs9zS;d4>2}5~F)Ee~*iIxm6eOGZ3dcPs?2`u)}fy67iv1BInE}KI#dcvV1IXp$B zq^%q?dN-V~W6r}=*`{`a(o-Wx4eN}f=I2{IWIVXbFL`<_>VCeKm3p0*dXC!zOvAuY zfUwZ&+18vcD$Gs4~B0))Q zz?(S9>CuXdMOrxvYq<`P7OgqG^Da!~K!~Hqhq(Dg)hO=~?YInFogbk3+QFv;o(2EKep+x;+bJ3_pAkLtYA zlhy-=7g*wMNI$sbxiYPH@jL`nTgzmasIA#Sq*|Xpp2xi21t*C;s0R*qRia~4j;z&} ziM<<6+A=tPB+fb+m@ipm)G>y|9sE-Bg3%CdgJ$;5ekYkd+7pnsjbbC-d)+W*_AaAJ zYLCnfIrgfN^$g|mc%}CAGWVV>LQ1aQ?ftKlGae#xYH6K~Cz(C6L6lxb5~kn8FibOh z=OO^^N)2fUlq;t6sEWn1l8K>SyfRT$jEb96$s7=4qU9ydn^#U^k7xNPk%)9{zX9bv z3rF%IP7-_I&`+YWUKSyUJ#Er&IBCjX1Uzd0_H0^pP+FL8rkuPU;?O=B<9 zdA+kK6IVS-CKiOCiPSo;*l$xdt#^!0Rm?hI^e)zxCTKmqmQ@ybO6~A?`Gm>$UWtGO zY2BFCyGRq^h3*cK+L1TyPu2K*=}B$QuhOXRc@9cFaOL>gd8zUF@)l}y{sI$rENRHH z@72jg(2%C>_&6x_Jx^&6yNHHzdLE!@y$eiOv0&I+ z_J*a#=Z|ho>s?^NAp=9aU7^kz$actTbADHG(t3iSL!vCVT@K_NKYLK7_0G~HtyeJd z3^OMug)7#RX}t@~v|@VY)zQI&ilczqoWBfeSg|f`mECwyMe7;TwBA`7qN%VOlAJVg zV<79(uwv7C7notil$w#%*=kLTHm!Go8CFc{_D6ZnC5_gX2WVRF43o4T(c2GB)iSyD z>CTnYOY}v>1XHOSU@CgEt<*kY$xQ2Aq#0KHi~FY$1gh!zmh8=nlh)Iq{KmQ^2wIQ) z=gXjoq{g7QHnih4^*nzj-?ZL&P^6*;3@^0q5KukOpT&R!xmz)T)P(7Dq}Nf=dRDh- zy|Xk)>q$5CMchX{8V2n_nby0&Oe_9Di=eQTikg-*Z@!o?Y7C03PQt`4VOsAjP11TA z6z@aq4VMm4+in)EciJ`ay&uwa!KPJQq=pBzXuUJchZS?|2AC=EeW!jSH&^Zfc$R=glzA_}!TA29#KLu_2dmlbB(2AUbD6Dn0}m=_J@qz!ftgnPlaM<$+;ZaT zoDUf8xW_<>)AIn$>0Mx^75}ChW(RFK`D$w}6`x^}(nB}EMAnwrYwM;dy?;_Kx=_`+ zNlH&J=51xQHGhGbR!pa| zN^E&hl}ol{=JU?FA%;rba2AhTW|!M8n2sneFw=^;s}OEWUCtjpv76opm3$t$;Z>*L z#5B3Cp|As^Lgi)A_tHYE`D*JeAVE5ZN9W|evu~mJPiu(6w9&rJWFOi z?<`I7dBCt6RoQ?CQv3OW>4@S2Gp!ikoW8jDJgb8|4B^CS)RhoO(iY119-1t$4C z!EldUF5LqOx`@JyH<)3?Y*VmSz<40V=Xtf8&pYb|O~iy#qmdV+X%n;|&F7tAlFuU< zuAI4a<3RJ zzL>I{=E%!#ASh)+wZ8cIZpHj^)s3sa z*$pt$is?GN16qFj_+p&v-52xA5f`f}c4uh$?X#bkkG@NjG#*w=fB9X{#ivi;&(HUW zf?rN6rbK)%0Dk*eF+bmZF--Eb;$N((u$3La@t1E_oGc!L;^@2cS$z7$#r*tc#l%qQ zZ+_|G7`9^bD-zEWjsro($4HcaV_GrylXo%`dOWPSNxWlR%pXoG)-~stogz&wjY+(- zqeu=9-B7JmEW53ES2pku-cNV@a#}I&ulA`WL0GXVyi<;Xf`DnoYB&+DYNtK;%lqk$ zUyg_ZYBHX&=eMCJLMAPSi!{@UxtFu6bb)zxP=3Cj?%+hH6=QsLXtt}W0a{Nc@XpdC zf5%M0VOFxm=C}Df{=s{Wf?rN6hE1sa`GSe{wdlJ;jsloz#kvTmnKDdeYdxr@?=C7% z`i?wWN_1dr)TY&e9}# z2Mh=J8i;k112lPeftglJ+rvsIED2=A3-Zm1le?2N92sP}>r?%_Am6N*9Xq`rEp5|r z7I$Zu7w)b~MF)&38#83l<+^#0MB~Tah zr6=_)zd8y+#t#?@vmdppi}{ARXWAITj3}t)uOwZol~S0H?8S=J#C!}2UUP5%-9p#{ zeBthB5ior*&z@E&us#h)LZ-WJ_$Z{Ia#@!M9(`=?j(_mQiq*t?z;G`)CD<0Np5=FG zCU-~qI`x`ctrcop-7nl7rC=j2rZsRp!pd)VT&$kuFVYNOOcgw#3DPVHwneLF`3uaj zVw(T-eFDQ&tkdgD4^iG>h@n!&&=nET_TvVg{1@(yXJv*JbL~+f?lY*JALTFKte6-o zrQw=kQ4~vp?Tgj3T!T8sH@sy$Vd`b11+8V}h2H!CKF z8iV4-&XY0W(=bI}$ve6&^)MeWYQMJ!QnXIHcQHlx37^~@*ArAt^XO)CcMwi*Ry?^o zV0dVGPk0?eY<@4?9skC(ViMdH)7XlOyYrw3neKy{+#Q`@6jVO`W^;E`TE6*WVyILx zRcRIAdmuZr1k9TiPwtM46nEUVitAdZ2l&F>@ig)sG%$pTY?hfnYIpn>jigV}zs#p0{#cE!jx`E3ha9ZZ4=H+XbP^vt7T z?oP3Ixve%i3fA|8H+Of@&E)PBnU>>RFx#Q3wc3j`BccEX5;_JFdNOx+*3IPZ1hY#s zsqx*uSY~;bW^#AHeAOY*lU&@L?Z({QMVev7#1Mb$@Z(9YOt$r8?(PhOCem(LfV-rU z+Wx&u=qzy`6fx9<=^hi7ptw6rX727H&9q_|n25~D9y4p!4I$HuG}DS%W0iTdii>kF zjJdnBG?Tl7kIeKTInphSxw{L@@Wm8SG|ZAfR=gy8vtnYXp<*YZ)~B*!tJvJ#S(?e+ z@!~`?iIyhLR_aQAS1~bEN<&lF%AYToooS)LZkYI1j+UsSC4*vjVasF8e$i+|)@JYD(V!jNXiD&BXi&_?ry=nS@GoVxCq*vAJ?Z5QM_<>tf6Ve1W6Ilsz>>wr#J3S zEy{;(sD0ggQ>Izfkz5mgJhG}qdBX6RTlwFfDfK8{ldq2CFEG=J$#ulBOfAaS(o{q8 z7no_q+zE-r&^=r%*&BDK2IV;@oN*;vdNDNP+KWN`$V(auxH5sQYM`&5le?qb3NnX* z^n}xl=$R=IPA@Riidj+R{gyPEH4o~IyHkVm92Ae47PVz*cG(J-cG`;16F#{+T^cFU z&C(Qiw;`n&NF51?mXd>yHneiO2d1?i@P(Vxw{L@ z@WtO;+pJ)J!Gte1cXwWzle^=VithG4J|-gepXTl^FvAyrQ@2nhrj{nSJ1#S|iYbpJ z1@ZLpXeUYx6>f`*FXTG5-Q)nx-JPYG+#MYnqq_-LW5X8{GS!5ir5V1M%PvT~byL2_ z6K?MAEDbSK4vKxU620rweY)d`@E2)_p#}^jt7dA!gcT#@eNdCT`=(1kdb~PJd)5e< z?l6`{s$&8l<)k*7uph^wa#vibq7D-sF#p&E1_< zObj((IC_N16?f+Wn!7v0Oz!Uci|9`uo>O_7Y)a35yY0@ucTQ|ksEyy=3p4{Cx zCz#3vtWWppjtBVOq?uOyO)@>qua5R!n&$4#x|!S^c@7TZ+lnJ%7d3d-&E)Q=;Eqcg zg8@Oe^NnafC^vHUs7*qM+7)42qOlRRdWcbtvkYLiaDyOzw`(vdus*m~F)n zH|@6Rv2YxT@d9T*M6{v{QkVJ3G+ zTLD$oJ`xmn=b18hcY(>cn96_NrP#}n*O2y1nY%l7uc66(I^*Be0(FvNi6Cd}sWN$Y z!5Qow94ooMy~R-P4oY}R2^0!6fS<9yJ&Z9~i4;ZdT zSLwAUt3+Fn?UpYvVakHRmbGPBIYHym80kehgj3seXbkZ8D+iL!1CzQ>RnmA6$p0c< z4?_+bPaVYtbJ20~c=VN{$yxb6DnEl*4S$<@kul!xESlC5wS?tNHE z(WZ<`Ay44L?;V3HfsE??^*i9Gxy>6^HR z^}BLs3$nwDvy#=Ie9t*lDftaeR+~v>j(^0ijs9DB}>w(}>+JSaGdoaY8Jv3Vyth3mB+FqwYg9tTQZFpiYZFzJ)2Bc$$N$6PdE+jC_$ z@1mTf^S(GPA|?*QQE7y01;*Mjp?6*oN$3Fsg%(Nm zKT$bM+li9qV?DI{`jdnnFzT7HgRj1{=mlXy?;&;;=h+J@89i_mRBC=a=f&uGREyC& zF*ARNs6xlo59l_-qu08P=P5U%cb+ODs)T`$s>9lnAR*f+AGZkDrG%l-jXSP;dg3(t z$Bf=t$HY@14cRyKRCxwfB@!N#8NG{+lhUI<gSk)VtxNB@5?oY1!+l z0w2#g_!`y)hf(Ztfy32i`F7(Jt!Gs=t#`#qTc$y%c*Z@JazU2Iyxw`%lhB~z#UC<+Jp1{0<%7`hjv1Y6%~NM5EqL!EZ*lnIYP$?McA==o8P^3}Y6>s2q} zEbCY`)oMiXthx9Mr3D}1toY|Jm?A{G0!i&a< zxy=tafUVrR*s*Zho^SG`K~wxks%$4hzUl~Q1)1bK24Lb1wm7^jLJni^z@3d<^uN0K876I+l)HS-9#m8Y=oBZIQzJm6NmFLR<>z7`ntjiBlYHDQ zpTlZt2&!UGdX%dqumRS&%_=s@caCw@qC9cfQtDocXSoU$ERI>e^NcfwfZ<%-l>|$i z9bZuTS`O?2Gt8KitQrD6elU)IYDg|Wc!t5rY-u>f>K*Zb30F@5C72HtdqYo_4-K#9 zgRGlk`K%iPD8XD7XVQEaF~vFMiPyK=E2|^<9S4((VX+tpj`VHMvznBzC8n0-!a44t z>QTP61IY(>u*2hi+^vVGmgIstDj94aiwIsj8;K;W$M3BU{d#izS-h;vv z3g+-ICOsX}j)^aMCsES0j;Rd|81sB{vVPUF(#ysv4NjnrAl66le3USjG)K>+9_0gu zlE;vycs@fm&v$$bgmx=w$7BTS(&#hc!SkslxpZ^Pdhw>tkcQ-Dt#RvS_rBvFY&*Wd zq&p_MrgB4GeGMcAXqxW~LxhyNQ30IH&sH4!&9_;;>5MUXd3BL82}9jb5D}D7?g=-^ zcY#SO)-6c!NRQo=o|a^7#b=nL_`W$NsHxl5P3^_)3-vIOX6gbnteAuYUHP|eisD-^ zZN(RuVZ~Gic3pu7l6o@3cYzsJOno7DM7LUFFD8}$GN|PD&)V1_S-dRK?#4HH&uZtns!teCe%MCUxdI8tBV1Wk8; zlhhuAA{kgwqz6@JH4ntv<}quT=5QvsaxCw ze7mEk9_0guYjHb@P?Petrqq&Lx*1CW3ad64^(Y@OU!9rkL1iJjT9OOq9AU%!Bo1e) zZam+5rO5A@ef9n-oN=FnKhS=sCgmXxR}H(zmtn&Bs3-XyCV4%`d!AW|yp+0>FC$V< z@)ww4#vI7mk>gXDaU0QJVx||EVa9sbwGN8w)4fjBll%^ov>t;(92U>=qW#di^<-La z#(o^sTF1%jsj`6^werRmr+B@E(~Wp?j|Gwhi|k}T@6 z=Wx=0ePQo{!{Uzl;z<3caIBvSb*=No@14$if0N%M)ZrYQOCk6@-aLOZpXB#=!s0-}vSK&)3@|NtWYGw)5V|n^uI!?=YnXB|XpmujL&Dl$Q!? zUPhO+_?PCU4uT*ELP0Rke87+ac`S!dpUee6o8LR_5`3DLOn}6L5YHKaPajL>=Zhti zH%v<=-3@P~-Ns7Z#}i#*FAF^SFFs96rh165`&sFH`uH+_zPM#RO-lxc^MvH_Y*iOd ztK1yln>=aCs(0nS`nJ2ByCPe9i8A;!ZTT;|dPjwx>b(>4n>Sm|`+I+2KfiS!9S@~w zbPv%S-+5&XijU;&e|lwkwsz8!G;iDT8D=niz|e|O6J(ejjserQ`~s7<%ue{9F7H|} zvSkm-1mDq{@<)a(QxB{M(H|eN2|j-FYRiM*LmqAo$Vph9BKRy1QB--;!(oenYnU?3 zzUqfJOqeo3)CFc(GK{=P`Dawc?k#EFkA6rq44F~so!>{Xn_45lYePPj+VEl6F%w1U zY&lTd@jjvOn{CJEDNk|_7`+J{mQ#`~$eT}2at|27xZGSexd+d1^T|o>0Yl|k!t5k0 zFgKq}MD=WYz>rJc868t=UZ_p(9jO(5G0a#nFpAnSt&g;!Cih-olH4Ohp!omETEMJ? zmtW-G(TW*D42rZvw4wz@v*tmW+dJ_^{9;%!($Mg&CVYKW7VQC=+k1ftD+Y!xj+JdN z%nmLUh+o!Ja(jZIf-QE;T}A}V%^N4T2Moc|PD=AttuGJC+}?RmN$m-S)<&A0^;P+> z_C1PLUmb-ynCDD=(SJ@~ZRgOPI9pF@Sbl*SRt!cwPWVSH%$H^8dxPFwQJxRTyent;*}>DFs9mb|)_U&ci& z6?*5MQ>$q|hW=_~K5_a^zs+Y8d=TFbEM9QZnhA2)Ycxk5S228^J2QMo zFDRBM#eo^AwPkTO!v~*qv*u*@D4wJpKplpbG&|pL`nnyy9;&5r0od#n;E_rX@(_pf$VqHek=)gbV}rW z(M>XZ8WeXt_F1oa5)aS}-&vYu_*CXf;q4AezHNq&wm+BnSe?vMH)QIIs$3Fi)@(zB zPPH746HY8OV7TxbgDQs4R&0jvJg8*&IDqiN)y}?9?jfJNU~I+bMaA|M;&2s$x#GJX zRaJW}9GmeA&ah)PtYJCD@fnlg>0LX?@o88bJ>}ai!shrWTDjSAa(uvWTYPg7d{uVr zxiZIhR&sKDf}u8W$Dt(A0_I}J>SdlfCJHRa-V&&p`O>#qm%r*pz04CvZD6&7w_5wn zxL#puU4DTXc1)IvnikU z2WWopxTe(0JawZiLri!?PBdD)3@X_@q#-EY@rEiy*g4d*{G-Ol4a?6Ez)=cf47eg|8l7`ZOy~Xg_DmLUn zEoSeuQ_&}8NCQ_>OVj>llYEry-K>}>Dpkyjt~JS4@#gh_xmht$RKO7W#le#d)Ui`F~Kle`}Kp$~DSGrt$F zw`9A86)M!oStp+zl!K~Yo-y8tJvH$RoG${vpAqPH*{tQc5qsdIG1H}h$U+O<%PG$K z94Bw{mHjxW2E_?xNKmfK^W~d+FY}ee9t|bf%_C{c5fa&qV`6Xao-QWg0G(d>CtY8e z_&u%)Ef-FE$lFlo+^Dr}QsGF2;WRhid2TTk+Oa4JlC9Yb0Iijp45)Wlq?V&CL% zPo@ePTCb-ula?g5*pW_OWo~K2K3-tbE7LIukE*r4zPi_$nwVc;(v;~|!@b6xIU#%p zvb~UsGYjT$3HlEuP+`e5uECvd=dQNqYsS?={9T&l^|*lZMU~Co7kZKPf>0B4!5lX} zbv57X^B0xGQG|)C+b4dR);rrD#Z&|5i+-iscGcJXQ4U*~#CgL>JJ!YSC~cr1qVS*Eej81I~ zmY_Jj1=)7|0+V)3VHY9OJ|=z@r{^g*r*|qfB)OG#3=Bm8nx6GlS&=0pe0sOzkZs53K_#W9n}{lrh=J(m1=G>RS;fid{iXhm zgsVJ`zZzTM*NxFrU-Ou7S~00ibi>GsJ-{2Ir@rP1LyBrhpp9!uc8QU76E|TPRylH8 zZZUeEa5H)@YjaR~FleNI_a4)^*M-w&{Dw2^7*>EPUWT&18~&JOa`6>|)MN9koWi4$ za)-t=srMq!VD-TH%j?5iwI!Q%WmfMEXP7c%Fk!(SSM7icr%m|{Cw(%d1bBbR+! zJaKT!-GR4f=trnZEzK|Tge@bFcF@{=mpnTVQ&024IaFa%IT!Io;czE&JBog`z_JlS z3FkarYIB|gqa2FfI*+2s$vrlpw&pjWFlQtZP;EJFKx%dV%ot(R4JZt{fOr>KL;Gj^ z`~UtA5iz+wK4|k+pYuXJo&A3# z9wrle5h&~%ftUx5C>o^)76xwC?-;PE4b6~;TR8$XGwb()GYp&rAEiy2GRw2C z^nrN^p!FE+l!um*d#|T_3(O_YC9k1WaNv+s=8(Jn5hsZ)8*Wp2ewnaj{g^D)!S~>O zXygNsE$B-7@o>SEh>$*b$bO>L+Pd<7-1C`0+yX8_%U@1)5#L-^N-}>MnwpD;ek&u; z4pUV^@3xrKA2_r2266j`3yk5k$y>dT zE7?EE!$w`vix+*FfyZU~@5P3QyV4j*w$P<=8*=ex3#g6y1t=LnNkq@Wa$(j`#YYB0 z(u-9m2PmLFG?`S5 zfycN}z0m`Ru#tnuK55blY>(1p;LDsP8%Rx(;?LS%ZAC!`{xBW*1~lxNScHU9Z1}Z* zTkpQ~cLq}RU=9t=wY#1E(;}%!`tq`BiT-Zbs>U8ja34*Y{rBJh{qNs@|JUODBp%y< zj!RA(zq+LlJd%^O;@X5bw1LwzseSV%*s$*}rdXXQmtCr3`r0gsL~lUJ5HfqDN;^2R zs(Q2)1@IJL0iEuBa_f6UB6Krnhm;TtN49QlVI7PNes!p*8f}0x?E8yTHEH0$*^$Uk zG$))>Zxzb2r+HH%@i+EI9;Mls%@V%hj7UVc=etdeXDnz!5q6rfIV`4B*;0isIrB>9 zmh-TFf+y7b)`fFix76ehAUeKxGaf59m_oHle-|j3LMC4IsU?I33aSuiUN|qSExAGg zaUV8qy2wJ?^o=Z3Bb3mPDw5Tz?Xj9*3w4Imz+MDOx{$sJgv1n|0puwwzR&`hFFd9x z)e0p9(nU$#5`Ij&j{&_jOc)+dYl?yf4$Y-1NMAC@q%E5n!{h0Z1pCC%_0||yVcH7V z5~QFPoMFkHd!T(>wx7kyJf-?-IRj^Bd`uH+}a zpiKI_Hj+1_t`**em%jIm6>(^ZOdOuiq3WNW5>ZovM+0a{w9g_uLVJ~H81*l9M;@}; z^Ig=T?ZDLGG4)BBX$V9v`% z(6nhflk3UhEl=1}Q-{PnyNlKjZtb;OB={QgP`pzo4$DCJ^~i?1Wa{5=rcINu>9=JT zPS|u)hsR!8>g+V+;RQbK!|ZVdb*QH4GR3ncCUeN2qNumqDcHMKq-EJm9iF$^auHiU*h8(=Q-(&Dm{ZS`sZcD>cWpCeleR?1Q3`71;OeDVGOef9Vguc{noMIAfm}U~sILRb(bAnii3sGo#;mD{L&LsoF z?w8}DiiX|?+YwSozh}=};xXn_`@YZ*Wi;QoO~QAr+p0oKlVl>}Qmf1&)Yo^z zrp+dv^@GPrc_>Klt5w!d>B?)2;7ap;Jd~>e>A>Mw6*UylH!zMtuOO=430V z_&g7i=t=^e;{_eTr$lTd+cm4T`XkZe6p#A`-3bQ}50vswReU+7kNnnUjU}z9xQt!| zl}Y#9mj~!XBiB!FLqj1kG>BwMH002%mx!#{oeJnYG6JrN!wwX>CgOTjWMc6=`N=CX zFoae`P>W7v0NWS#>DD)|q!x?7$i7Og9yE8(2= zllKL=UZ4i^6_u~=%BYuYjy$F{dLv6-v2dt1D(7LP6tn1=H?w#=w&-{|21aF0RGhS@ zwQyz@UvP#=bHj&WrO%a*-LM(z|0|E4OYx_spxSdI6ncGqqXIfzdi9 zp3G(2->Xe+)rE5oJ=AD@10fNlU@;{GUMUyi&fwdsiZhb9!^;Q?q(H7NgJq4oN>_1i8YV{Vs*lMR#`6^HvwVKv5_cH4B zWeMkznO}SnD2-Y;q|P-M3si{|W13Ms;|xX-oL}^k+h_4U1ux7t>f;uzmwQ7&T(x6O zN*+&rk%AuAA{3AAOg+~VhYHzQgHWDAo}B()+*$rAYEoW%WBiBn!K(z?9-KIOC=0 zDGzmlwRc&DIOVCy`bC~;(X`72Noy%_~L~I zpC}-TWOiityI79})F%A~G;Ep!A}2vf0huIoW5A`OLcl{c|kf>Pua zoEy$GYwqau^#-qrD8M0dyWk8)5qU^H@W#l#_JT9edE0~fGyOd_6_hWZ}l(onf^ za7olQ?tz&^JZpN8h~KKaQiWtaW9rDh)-9FiHL&B^PWwd40|nG&QEiE8$-cbVpC%E{ zi3U~4PaHTteb@5zxvKm$yZ1#NeDc82#f`nJ39Y(JK3qcn&3f-?;o+WlvhdaUotpgnh{5MOYn zL34smmW13eIL0)Ec*YqFq8@>A_TCGl7{rCs9{L4mMjo6qiKjz`u;;}fek_b)Nz|4w z=bfZCOMdGl?i}jms0DwPXE2C#W*`Etyo<*Y3?j#n8_u+6u^Vv&qgnHo%?#p;Jky@( zL)Cq~y}s&bW}W-m;TdNTi0U}O?SSygu?wjk`@4Pye+Z7+iE554Pw|JA$Nb@oJky@Z zm2?k2>pAj6yaCdFqgq7mPV7DJIGZu=RGY;qUOn0$dp3J`Wc^gZA2?JDk&%qeCfGxz zEng!Jnm0}yXq!mdQiu@pTp|tvq=}>U-mynSxgXiRlII*q>uj0><0a#MJaGQUcKYU5%{22ryZl11GkzwfPl9zP1l!vNk_RuI4g>0z} z*)|jm;vY8cnzOSp4hpe=6zxBTQ<-y1WD4G<9uXqg0P};T$u0x>^u8%sf}?c8I{r49qs`^T5=# zeFEtQAzyA2RNwX$zescM0~;hFi5%X@i!2OXhxWj(B%&I(r$7L8iLnKW1c(auCD6;r z2)70hWx2I;ETFxsQOkY<8YCh^1E|h&1}YMDuce=rMG5iTtbZ+A$4$H{zMOnUVsLVsCr5YC*`g^oGSXUL}axD zbUa9jISLgOPQ~{NXNMnZ*nYtoW(^J%mReg2M`rCgyYYzHlZQO&`?t5(yaGYJP0Mq1 zX)0YvAfDjpRL2rRcF=xOmo+r7kFctX4fRaWCr-sx>$|dQE80Zj8Hb>2;HVsC$J6TJ zzRE*oTBYdozy^;WfCShD;+KkD8)YLqqJ_)MLlg7mK)XY|>{94H}Vwp`_ZVmq20D>~d1|i-rb|$ca_Y zR>*D^P;3C^5ziVLJR&z_IlELw(Kb{EeA}gY#Pjz0cMyrXYRlEoP*D(xG=04p(O?n* z!i-YCW#Jwrk=Df;2bCxwh9=MG;nbGoNi&o9GPFS@0`!-r@mdq>%i-KiC7w5GLa(qQ zcqtrd?5Ra1HnpkescPMy5-8-iCJsg2wK_bopc4O@N<7a!-gL+VcayAKOrw!NO^yevu~~HJu!Ev=7}DlUSITX~iGM_bvG_9kpC;}%hiTHnfdJHCYM~P;Kfwn-UxE)lO`8Vj?+;#`-g95|w4Qs?TCWZkpo~7a zx+!IcT8c_sKo?I9P+D~X@jC9dKr&s=Fij;MT|WLR%^Dy&p_W&*;S`r>eciZ3fYPqH z>iPAXoHdF45zHBoMVU`*&e1hoHUGUf`{R@iCQ&%Vdh$J<`XXR#-it{*<9wJj z+`zs{f;?f;7b21Bo)42&C7kqQ6DlInvMnOk1Gy6@uw3IK+{Pp&#=!4 ze7skQ+Ps$qy#P&<{-&ly+wG|J`=gF{Fn zflkpY48ru%v}+~o44mzy)$09%GrcrTSG!ePn+-z%lT314{`*I*IBq4i5K0BwHVeQn`f4v0uQZJMr`P22U_ zAeaq-F2S@Kz~{CKF-{!Bcdh7HZ&akUC7ygM&sR>IpOgvi@TFf?@*qtk9``~ufFJUZ zpx)_M`oV2Kf_J*fGYy(6TVI=!Ag3yWwxS8GUVXG0zz=z7KUq}W`tIJRIjG%mJ`5Uy zwpO`yQb|V7ooU3geg=(*0deJ~#C>PU zD5mGw$y|Q*>Y@p?a%6;M(fyP!headl#n%rek)e^N*eteMtnOuNCh=uxgGvO5N0fI- z1VG`WO(h;v18O-rMn*@^a)j3PP7Z?EPWlCBI%#rUeTcW+qh_ zOc?aws44skI@ALGePyUAdmJ#?a_MUN+P|OwHlfKE~nUCefe~X)sORq;jpj$hwYtf!-nywa*+*W;D9qJE1as24CRaBT3&Me{!&ai5FqHsfCTQWUSwuXEYaYw%$%BWC7 zk5!~RG*5xDlXn04uhmj#n9d6*h}7)AAPu_)C5smMzjo{)-s2r-aEQ7^M!~{9VyI92 zT4y?+UvP$1Q<+5;BOE^*FF3FT(O@AL0B6qg*{}exa-U+!jjxGAMZ;)vl<5COl zIP0og{DXu3%X^$+X*G*a{m@>9AW!oA_aBQ?XEU3kNyKBAr+#7siaXug2SqR zu`5P5Z9f`gO`AhJuMRe@92vFTsA+3@Q;1+X`j`b#bs3R_!mw&uigK+)GjACxGV*FQ zgLopyz!_Fe=&EkJ;8;O*>w95#Kz$z9AP|3Wmk0CE>R2+wer*ErJoAG<1m_P!0k37@(!c^t#{ee zQ3r>}`KUxXvn^^KA2tLK-g%Er?c>+{>Dq$E_69VJnl=dB&fgm|hpT6xy0LTv8dgm) zrP_k><+hx!^4o0*DyzN#O%{>#8$#@;OikpMb5qNB0Uga+y~ILA)F6z^8G&fvv{@g+ z7&Va(9P)DF+=tVqN*BQ=e`4QzO7fVd?W0}B>W1uhq$$s#K6uSXD`2`?7Ws=l&_ zY9v30#`PWfXAf;(NMvtvRDIePm8>5)zv&O7z1eEXQJO?Nu6zR4iNhg0PT`z~w`^Aq zQ6@YD`b!c;?x!~oqCS4MhRh+pERRVdl8z;okl}b_K_Y&cL>yb99Jpdw-Cs?CNFH}P zCu_P$L}Qvnd=Y4}h~(XPA1oGr(Oe#-S;RM>Y1S;t?kTsvEOjl3+N{sZY|x0TAXwH~ zuEr@E(W5kt_#zNKeyfQ0E+}G(?6w-qKl5iE@eL@g8X%5paeB?ngF1Fx))|4ms&(`;oZ=C!qZ^O-HF!iWPSoo(d!B07ws7VV&(_GI3VFcM zD-nUSL<5;fe6hvBB+@rgog{axr~dLQj^HuHGNE%6OB6jM!lbEN z-oq&>(W)kUAX|I`8b)0Ydz9U*FUO9wxWr=uL_OwHM^t?Dy%6iA4p;_dce+S4*hF;1 zg{g`g*O$XtFE;T-qG{ITsZ`AOEVG~!DVMseSE^~o(4b!E1PM^Dtu7MK7nYZ^Hs;+Zr{ob?#NcH6RHc0iFpFpHzci_nB2%t6vHBWuFBSMM+^b7a2Yw#J_wrus# zETB^~qwew{5HIgA`5KLNU77SY@*k!YkI@Vp^Z$#pgHE-VU*1T)y=W5o2Qlx?0&UbN!T89^xw9sN=#C9N$h zdtY9l;QkU@QF8stC1a#F(Q4#szpwAmm$j&C+r{Q6<;(oh((GK z*s4n_7AT0t9~>qwsvgXu-Yey(7hblQ#U)+a_1O~lfm{6T)mOSmN&lWUjMVhk`0~Et$Q;hNiDgaBK zBfIotu!`W|<0}Je8G=>BxNbPZqQRl!c;^||wYQ!Zt2k4HUDBfF@-bg@AtVbT{dlf} zRs6A7#UsvO6&V-TZ7U2iP94%cUuG50dLFEzaH^{7v6N0co4nZshI(^-*5$WuS`fvS_Q$C5TlkOj^x9AZy1&ah`{i*&hY&rz_7Kblqi z_6cO14}0dOe5D(fJTZ68D#Cxykr`+B=wH0)LK~cC-ql!stuJMcq@PoJTxtwQ z>`-2?Xnfe24) zk`_=Hw67$d&l+OuCJ;eKtg0XsRZMn~XfTQljq7c}j;fpdD$%fNfa;RS<2{P{@JcbE_@eB=DE=fT%+?w+ zRS6Z(pc%zCpkdblQTq`aM^TE_5y91E)&{4@Ehjz8vrlB*sNecBr}(1m!6_CHqeIyq z4iVR*cqElX$3)!EK`9D{3Ew$^e!tGTHl_F`&@gOXrsr`T?Wa~taf(a0HtZLmK`J5< z^(S$x$6ahtlZtOZ!>|E@ND0SLtfHmEDO^?v;Y_R$0qIQiEU((KJv7sbZxT(z1}Lil zi2C-VnOA%P8pNV>#LF%_5T>9tfZAWb0ZqgHO=uox=f0t89hp~r0~#J1iBu`Ebrig! zy2!sPTb+uAvZ>Rob66W;H%RFfqBin3py9GvujCr`0V=u)@NDGml&Hq?QzE{rrM9Hl z0g_q_UnCm5BD3~IPlJ6dQ*ZfYQ)(oC1NyLRtSGp4^_Jg2H_KLQ`7ty`R+L*$c|Tw8 zVP2UKwaK%I|^ozbIBEG zST^0x2(I^9BlzFSUew|-hR_9-(2;;Ti)M-Hgyo@`TRa9eYC}A5sMo8UsV6EbFw{$4 zDtf^gcKwGUbxwXUm>pcJ4(A?zP=mw zWMc6JXBai|upqR|7S28`s+W9?YaTm0OF)~c4|#}Xcc`ZB@(-qY#j`woX^e|yRVQdK zvZ57j1Ev*UaE7m@w+5tQ%u)HIg?TwFavJ-P2O?#M3%`O?#6Mm1GdV@%(S?0<(x=yc zX43MQQ#{+@

      TB$Dt|~ST28aiZ3`H_N;oFn4>z#TF>Sb&p4A)L>@@I9X0lYF{&GlJ4B;230+wpbBZrGANEWWuQ-tPT?p%$DC>QlPD&B>j!U3g?_L*0<{8J7 z;#r=_D5@n_^6l|dapia4|Ac1-D&nm#raY0IcFPxS~ zedU)8sEPcmJnAYxao8^;L(h@g$}gYKDdL7R?U@qRXirI<%=XVJjK9b;{quKqMcn={ zOE<&|zT@Eh=D1kmd%o0E{?U(l#H0PFrThm@^n9fuxz@gQWg77XXWBD4!R`;$>$IQe zFpgQoGtOiYIgJq|?)6SrCFHRUm_>ZSnem2lUKJ-;o?;Of&c&W}(Rb*Fs?&;Ed!4GK z{G%U&s`vR~F-;s^wTyW$64ClGiFh6tPV@t({o(qq?Ac>9hxmf?Vb3zey>z*fW(8<;SesVh}Bl8N@TrBoMjP`VD4$%Mb*j4n*&Ip8O#=G|Y@SihGG7aW6O@ z_Dqg47_qh`j}dpv+lnqeMpNb+D^o}2>S51>BASC z4}1RNI!COjU=MX~R{A;PO!klY58|p48dgn|Sa~jM zhG6Si_2v-YfIiF`I;n=YfMil$Duh-V-W$+|U9;?iK_ca}B{GZn0yJqvp0KB+HPe@`xvrqOzfdQVkFvNkGniEk2pn76Ja?_&b7BcOKOCKF$PCYy*vR58kU zY)Eky(o+(bp%HZr9Z}yMi3J{<+7dOL_)>wUzVZ_Y{w}Prr%;W*A@9zTFWmTsgJydc0AgtmqrLgTMAuR3LJ$XJ!uLl3g^U|{F#IzI6NV{U4M6^XtnDq zi*Sw?Db!a!<)Lwbngeecw!2iBq;Sp)gm=k4fJi0mvzB#2GY^jEx(=Sbo2ifdJI-Vj>7GWP z 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%0ARSQ*2O(e%U(80W(n_x* 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

    1. pwygeLz9xXJ#y5)xT5qzGylWR~j%)#eT?!)^oVSZ^t=JUqF2p(xVbVJou z6^+>BDsZ=M%;#NT4lBmSs2<){TuyaCmKD!O2X!pZ30LEwP;sS^Z9~LO=;j7HxA@ds|OXnM?}P38X}_@)E6B+D#y_A5ne-(fB(h*6;b|W zQtu+tVahbU7Dw?Yr8vC>(;@N&=5WXa1Mv=m-t7j`FsAfon1j)yqKg=P#{nSgE7sUSwaU^X5Sv zY#w!kxb-leO584(H&Z^yJYdvlkwLAmhAErOo25CpJYa~4x9_4j6-dvNxx5QZnlkl{ zdgNUy{_CHA{`%`5{`;SPIEzajGHaW-X}t?%S~QR(qiaR;wn!E^?0_G1U7$9ax!STSq0!Fzp~(wlX2Phba@&sKnq| ztF;B$coSyN{AZa8Vn;QUsTh(|p|?Jb-aTc%hlBWB_Bo#B#)PbFK~AV0s@GM}a`lS2Eh zRcm?pR6mzI{QP3ee44hb%wbnn)wJ`e{Kvw1$;I)TY0OZ2v}%9!4CWJQ)LE|P{g2R4 zsX;zWV+MvN(4JHkpFS4J&-VldAEq&Ly@=ePr17YV-t(wT?@c*eU@~atEdUB{WiXzg zeQ}RMwijdO({RjOO=DlKB(8BPFKh#7f^R%R0uz3j8*ge19iysyLJP9}@xCr)L)g4?aeNwLvT%6P;Yq0QX;^YIeDiL@Z-yo7 zg%u(nS+6xxM>r3wDZcU1QeeW6mGC6?el`ZO<}zf@Ra1Nyn56iCp(w86TU*_x_<(#f zWJ0RPD;Lb?-m>_rT+o8NXX5z9Fl1oJqn6QGA4TyQh6w8Fl{uuPA=f3#;zNwHIX=-H zuQ+MRS`p3aTCqj)dEQL&P4%4ok+fuBI19x56v?+>+9}U4N%E1GfkLj>#L{e%kF=P5 z^60yg5^FcOv!_@iBx-rQ&yFk`r z7$D7tyW_EEdY05~Q=0J^ zCP_YEzUZL!#FG>>$9DWe^6`u5kAWd;5Q}P)eEeod7E|_>4-YfuwYGk|(SzD$|NQ1X zNan-C9b?21mh#|^Bx^_|zDqaf{!j!cznErBc^7#QskLWE4bYd0)$Y7thQ?sPq&wzb z2Q-!@ybfo6{%1+!AbEyKE2e-B_DL&XNh2$6i>5B=Wl+iSLH2MTd&i`dq3^&+g!)}K z$?*XL!4eCAA#TZ<7t$wWA7kKY!HS44+;(&&rLWs)0!>rl5eE2l>_Kc+GE?72l*uD<-u= zqF{%zYJUDm)BN5ACh0xO8`OPm?=YPgw)r)^cY`^sSTM0ssrmV%?xy!{FozWb!{!hJ zc~Z&@x2*UAlk{EOgSsq+r1yX!>rn|s&kj-4BTdtL7ip5-!`u9%qjC6{oO~RJRQ$(&_pOeK1T?wA zsWGB#G9-w}Z+dUMg#+<=STQZL`f*gNwdg$$u<5-EOwxODq0qUp!s|q1_s+_{4=U+B zTqusa60eq~^t7aDE1q>j5EZ_dat8|Y_aw(TjWgtnG)eCv4UVGn**3ojnaDH0!5qGr zVh43Ld3J_P@9}_6MHF0UAfG_8kh)x+2EbmF8_*DPP~7FNBd_&Q^xl%JeetZDr1uyU zoigg2XccdIk82(kQC!R~={;b`-&N7NrK!lv(lotygE_1im~MNzq={MU>v}hs!-|z5 zt$Md5!Hy`@*c|iY2zYFGze>gGbe<~aEWYaiC@#>fwH2$exvUskioQR(%g*0KUz#X2 zIzLdj6tV*>bvoZD9Ts1NIgA)qkTecoZPlpL`7$B(zrBwMuMpCxTWLAGe~ZTWr{}A$ z&~zB5_U1wx!xNs`JJ58j*Bn`>Ci#>nr*8Ev@AjQgDy8~PK5=`mCT*AIqsaEi1D}Z>TZRnb5{@Dh+wZ3KaQn99SwYF|p`hQyOd6Nv zscqTIm715A2}^R18fo^T%Kj~!u;wQB#y1lYHm#Ws?QEhuOjfh=#|BL9UDT889;sFy z&?_d+>M3^5!)kUf9kbkhpM>FEW42V0*VV2ICd|3XJ>CpC($Tg;VyZpqB-n9xa>!QB z=JwR>wUj)OSKJUt=L`(R;IYZndBQgMM(u%EBvVR>-FI_)RA*rZfTf{Bl%k zc2y3{ql!3z2kl<`U^08k0#a@x3$%{Y(Gx?xSRjt(Q8JV{!D-~})a(2)9aDQ3(@Aa* z9BPqj_q28*X+V#1ZB z7r3LHer&=TZd#ARpomWC3E3J>T2C;%HK&QPhJ)5qZ*z@lhDlZr7~Wot6jT4~F*U1q zg9(QW3|)!qe73&2m&Om0QIf{N_6p(KudCI0YM64@*sav+e627=(RY|+^&|~^`A&Gj zIc~FQR_`KBl6nQxeStivAoYk?-=sN>m`6k-7RAf&S!+)3Ce3NY93|3-Q%}w5U0{;a zV^E|f>n!7CRA(HUpReuBGnJek?NG=tMT$R44`~!p-uSfPwUMjG`JQmx3pdbqNUI*_ z&jN2wk0_cW+Ois5mn?UalpfM>rM7&7XDW7M+MLu(U0~9Ru^BiXnVfYKjNXrC^!Dk# zPU&9YN$4RAP06b2!&;39gMzdcX5|PHCHXv1RHPP;xLk%2o6nnNNjeV{?iN+1!d@ac zIo^_ektHn{S4&5{u-dBBv5uO}yZFy!^ALvK8oL~Z5}O@e5c!lavl~t}PcW>6@O+h% zwq}~myGWC49?fr5-y2S1-}9~FANiW;QZ64J7R+I>_gd>C5*T8j1oQm|FD32lkoOk$ zwO9yL!cbF#>3JY=SW~;b7ns9>xuVpMiF>}|tfniVFEHtcX+dX-Xu)Vvcx^SAcNtWY zd8nA>TGnsfT6G`SV16WR-dp(dkrg?x(=3OGB zB=dk#1C;HiIw#$;ruOAh@tDC=S#=Bwn2$Pdv;=BszErFmhc7UZtw0*OA{W=yg8~$o z1=)W1k8Po|U6dUh(!dIqw`;X>hTSkt=FKw&mw3XEe%zrRnF(O5nUvICz{ez$#d?g5O&O- zp_w|VZQ_4LespL!2E`k%RbT1Z$%RVDbcabgk4=gnW)k*pxWFch#jQjWtplo=}LPP86D)?qNi7KwU)cD2FTN$_!y7 zD4y+#kUdRAOhOr+>HAQ*OUgokp1XEYc^(l*BcV)XG-_cUC|@|f%GOzyV)85t@e(M1 zs8;o*rC+Ee4}(MF^x#g%X36} z6m+}bPDHj|bk?i6KF?#l&8d0$hEd&mce(U1DylV%`Mc5Sk;yq=$oAFtv|zO3Ef~At zGymPblgv}X5IwT(##grsRLN{AFjq2J*?X5$_wq*?(|0pW(sz`1=yvhm*@%~b z@zk5XyTGIce^C6=v7>df@8?m>*A{$%NfV~ngaqY|UdfwmY2N5N4n3)2{4c#H_-e747*F^seaF?(1BYv(sgQ^Ob+J}6J{DYkHv?@|CyKLv;q!A^YOH?ol3`3Si<4-M4^H@ zHoRc%gbqqtu(DefP7rejO7Z*=-K`zm;vFU_JGvRNsZ~P4N{-Bwo;H4gNkf)~ zyMN2SfB&O0!i6TE+=T-4RD45AdnO~#%Z}SAt8MwC_Ga$p!-G14go+4+c*KmaTDzrn z8&ETMr%P6yL9KP7rUM3)?UdO9Lz=ed!?SOgH0MvEvFO`Lpb_TW)ZN7lle?q43{4`+ zxqBeR-C5nu-Q8f)D+9xX#Gs0;@}g++?go>_OcIhvQuDZu;(qll+}aY zFUyp@BAUXx>^Di_(dAR^PeQjv;Tf_iyc^76%3J}~sqI-zHFX|hQ+RUmdw2+3#=M6zK*-V{6p`r_-si7Z zFlVWnzne40v?&e{Qu1|_Utiq2gkGzZBvY?BDuT;^TM{0r=FGWQ6T25;weftKyqm|< z4@f8x4l^BlK&I_3C}p^TQgON`I+8GY zhU`U_uv;n@i6XWBJViy>8PSy8JViuMk6yUE0lylSO9b^y^kVGJlTfEb_0q;hq4be* z)h$aAcI`B28{8urND9sx0fKK)mD97F>*od1G4VX0rt4a{Y;Ed1w?zrIPQ}J|<)VdW zKq`!)=w_=T$T~G82jyaPq?;ZTJPTD0VRV&H@`&EJI=$lhpm1>q^=kcja$`H-E>6jE zls&GJG4&`96dJTgF07vkv+0 zn#2MHGS73fbUn``Q+UH6JYDvqv07@8S1%5-%~ zy~z`XYY<^`k)S{wcUhXF^MH65J1KblujH!AXk9^($&D2$pTtNZ3N1@3p!0yDhz;_t zQFO^}pAM==BNw{DaJkK>s{-5nYeQMGRJbtLczrfUw?@P{p!Q@NZcucers&2>F?A(> zM#Ng+B)89$c~$9?Xz0Eav5t*G3{Hx9kEjT`CD)tJZHBH#gn9nfQ$ml=ErPBWG{4c> zJ?=6xe4V;fWWHt5dXB%Zj^t~mf198i7l0a)2MV>LwYm2weiuR4b0n?TTHG%as4r)y z<8a;V z6#liW&f1M~W|C}gC}F!KRWP7!b+pN1M4o9=b8&rEE4y=^Dx2CPBHK={o2}i_kx`nN zn`;wca5oCv9*;N0shBEwAiV^dnVYLfVQmtI_@86?9!JGP3#P4iwmSl(XG{dUr1>H{ z#MTm!Wxn%1trp}53}XrnNA8`BUs>L{tX&15?j!-D$Mn+lE1I{835jGh^F*PE1BT+` z+Lg-ts|We=IBE#+0uvTYGf1ulR}5vdEnd#jn3tQSK@%wr8&lcJg4teF6r5J&tefWL z+CyM@9M$T$xFpzzHCi{Ep1!S^T+|lxewnz6qB?8a=_2-X_jozkQo-7A9?&N7dL7aP0D#p z94bh?N;QV5W#KV3DK`g2>S?pbM9!YPg;tdPaIkXR7cFU~gQ(Jffda9|F+YTn2`|Jp z;dx9=%Xv)PbKry?8)R;IP0L+W)3n@z;SMI7IudxggO*dey4K~HyKSoRchhnY4D(%I z^*}17wuYOQyGfHatkX3`b6Xz~;H%wuEzJLYs)ja#>4!03uIq2lr~czh!|DvFG5xW5 z_n4Gl-4n&T&X|piugBCmh_)bg8!wpCXZ5;NFOY;moH*@wf!Bg*8y=mFE^8!=-k#8s zZmnijm39lMW->l?9}g6sq-VPmiX|w?+G8lwD45au)OkE{I0lsYFPLq_c!z=+0~;Eg zA295obtqjhJ8n~>aY-}7G%aWALoXaD_lELSS;01FH5z|`Nk`1X6BHQ=#?llm=gB8p z63jeP&B|FC!DM*XML9FU%rn)boMAXMaHy2K@j!x< z!=1Hmh7+#J5B7ZXOczGBS&Sx)7GfLmJW)-_Ss3zCRA_}dD(Lb=H6=Gkk6$>iOOD|d|a6?q$S9_?gUuNNE>uVNn!Ek$}A8YrRDk>sCnxwYjTmS1OMS;40qV%<;hB<~ybUmE#blDBjt|p@b$Fq16)=DI`#3BxDcozSxw-M+!7rv2lc>WP zE4;BrDraoj2z%~xmFyfX#%Os~2Do6tj2AsOPy$GkcFYk0oN!#5phNw( zeWbfI(Kc5{84G5DZl0=S=(w}axnfu9@<+7UST$zoX2ZcN>>0;{!s*5=7e%)uy9X2y zK551@0l`&jqHKS)O&F$0y32eMLZvjkkXE~j2T~ET&BiRdu&ksdTtuOxevUVrvR%p#9>F3f)HEl40RBrh!1` z7sDabRp19Vn)dQkckyRXP1=pj2{38Nz?2tS)}!v?E5MMyuX&n6V>K6#LBV*y5X4uv zDXEvZU}hB)MkNd+SDoqFmZL%zLfhxN$sJ=TCyW}rZhaIP<5_FsZYsK>3PC{I6IGV^xRv4OZdQ8)-?!1b+YyM@w0 z#br!s!&F$~j4P;UU$gV!_~5qT+4u;f_Lx`*H204&l{>T{vV+|2*-a#GM^2x>q0SrYtKpD|nIz5V`jWN-h3w5v^-&b5RpBuaG8M|`Y?8L4*#g%K z4j9?6Ey%a&#_3Mhj;o5iOI?e|Ln_wJdxA;3iEg7>GyO2N3T($={X4D6Z?*}Knn}`* zS)xZpaiJEVNIPrBq}@DCEW&Lx&|6%Y(A0QLb+WPvH)}Wc=t0snVR8Z#yo8e|*3OVb zOw7|CCClt^+QrpZJfuW%7LM-t->m8=~w@ac89^Eh@T95C&M zXX7J=+N!~0@ixki{CHh6#?)?jifhzW{6Ha0+A$j!93Kl3lUxcO;zuf&$iC7 z*D)n&N8JvL{H|=_SfxN>A=-k6YCL{1Em&O{qmGnMWk5@q4vNR)0t|7CiBs=qItlVh z!2I*K{___vyz>A4{_C&5t$so$4RYME^v?U%6+PD7cEut^4n*%oYv#sdh`Nghj9wa! z(7)4)OPZI^f*>nl)U2oCzV+4Zh`yV|8*Q596vBYQ_4uvkSo!KGAl1w$Y16QPRA=r@ z7o4rkPc-$W4ErGFHs ze+wam5HcYyMnf!>!pLdGx~!euifIOKYr?_8s^$Z9NlOzZl0-L};eX?Q>O{j5;lK7u ze~@`x;0c$^Qz^9iEH`XjFEWq6v`apPPRw174_83u3<(BItTU5&$IywE&jF+RAsITU zvG{b#gi)IL<1vj!!U^+BjigsRsIKAzMm@yKfKE%4Y-YgVEVw4MPD8q;I|itZ&Lzzu zWlOi*M4_IX!zW+1?a>7{Q0$VGMx{_jNiG0;>Y>Xv7=o@!C;i=K(_M~w!qr0@X^wRj zT*L~WOusVK$=8lmcB8K1Q#UN#f?2Q8sNSe5xq(T828QZ!!Sq__wx5=)@6{cPMSw|z z*4wbX)s0V=PlogEnL0$d%J{9-C6s=9-YO0@Pd&tIzK8(R*AT8buj7Gr556Mn56OqgVo6TJWrM6^q>fw z9x!RdzwiZ7^UoSw!LnM23+A}ZaQPs0qek&Te6U+A<1?9ehDkDyM_3tE<;y&%AoJ8I z6KRfRG_>hS8|EBL7lL)F=~ZfV6FA*`k2QU~XSWO(?F-$m#1=;+HNC{(@=mTV zsXX0+;SduJw1_+p??vR{T~Zhdd;f}r>--|3qOgVR#hs<7YWL&vwvwT!^~sH(5Ly2*L?x> zrjWm%mTw87dmfik+JcX|(Ve*kgKK0rU)wI5`5d5hL5<7%1FXeU9q9<_EDwHTlJHm7$1 zX|pa#Xm3p4`1seCW9Dp9! zW%)%TvRF-(@$!hw<{cY!kx*^7+%Om~RXG~QkVeyPqcfd%9urPxjS16kZqYN7i`8u2 zMH=&YmWG326?0jDPTN~I=JWO&O!#VT5-J4`X}C622YO3GC^gO3bl$1|C@5jRV!pWX z%a;R1Y8tY%{a(goKF?#KKCL)XE4UI~hBTdbgGmb}TAXTA zHA%a~@N#899$vF~=j^ktU`?A53VGuglANz~-DKVc#cbY?h4&7nQcrN4&{UVj+CEcO zzf9&C1^*cQWVh_}h|J}kw>!3z7!hS0bq~RdsZLg7nX^3PXpT-#oy7x&%OlMTRnA4N z#mDAC;Qc}g^MxNE+nZl5H>%6&4_U%`bzvCBZ%$HYJX$e2)?8huI*YFn@vgMqARLpV z&f;ULbqDy4Vk)mEi4!C_`6WyJY*~nwgmQFM98W_QuI~RYma_VaFS$B5ah@X+c`XYG zT3OKga>YtwzV0J3ZD*7Z-h&EV)CtccYS!-T8#r#~h~PKtxX}L2ac$d&0{*g+#l1AuK>V&3BBh0bQrcdK%!tnT-@pIB znCXB1CSd#L?|&%<6k)3W`{!R*)2s3L*h$rdwf?cAQ`9>Q@vo65uWG^}^YYN#5`My@ zk#jprr?aWFI+V6QX+e>%T|RLvRD_DqqM4hE$@O7=8JQMy;>PObsJxZZN3+j@Y0~*n8RQqW1!MfY4?m` z9l; z1*L9K41d?}syCt;RYF`ldr=L@^1lAWm-H5#9g&EV~(yI@S=d9Jx)7vbim)o? zo3n3c0c(F#qwzW4{P&MRnZz5?P^%s@RnB5a^YXtubsf@>Aj+(07czT*=I}0qGKtsH zuu<|<%CehEYkQ{5;oV@;ipdtznQ!T%IJ^P#v|^KZmIea34lve7aCqt|{!p<=yaB`E zQIWbODC)~AvpKxmVlas}VCdtwoE=47Yk=nPF1jITT6RO~PUOv!CiFy%^ca*$JWE4y zRVOD1WC>-hqDtZQ5t1bJ6D^IIo?tu|g-`=V#%%M!I$uJiKc)n<+41q|+WFK|`~|Za zGYcyS2d;N6X-wuF-8$XGLeX#`YsV)!X@tMmzhOx9iUnnHJxp@+MOjrL7m`60M zS5D`wb1|u^k&wnl7&NXric2+TX_(}M`PRMUHK=lAmd0G(@w`UTEnpy{xxx~2Tu$DS znao?)#o|Vk+GH+i1VbUs8dR=%vw6pq5LwKGAr#PS?{lV#&9gLS^DZ!9!(1i$-(M=L znTA`j&VXqnzQBYH7fh1`Bp1>q3OsFv4|=IN15=#|$|GiTDSE05B*4H}1@0C#cJUVIr2 z+#f|;%a?MwWGYJC#ILJ?TQM69YK|fgE)53E<5)-O*AAnn%lWh&Cl@*dL%!gjf5*_; zF&|eb$<-ZRy3@T+!u26T&vUg@Xm1cFPJoDU?_xN3thd& zhYM0`@rN{N%!C$r#h9aVLDr2ay|Zpi>5W0DAZ+b-IFBWbDZL9!8Z)tuD~*N(YngpE zrFZtF)HrT4#VaC}O|*)O!84>8yz_>xj^km>KPXtJn(p?)YB@fqZIF1!m|c%~1rE*1 zy4=_D#LWYme?I2Qck`@d8o}hnNeGQ)IWH!UbnPw;cU`n7JSsw}IVw|m=egRbJhg;V z&$b04WAt)(ae2Do6}lm7*)MDlX~K?8=3S)O?3k`JY8Emjs8#PNH=B2c+1NZa0Mvtr z3ubvlwSc;>Dq^V|6r^z+$UlpC8qz#Mi_e|SgUh2)4$_QI<$bJT(|PAX?Q9DK3R8#YLgn$!~k*mcNPDK&eL;lvK8A+h0NB? zlh4zw=rvVPRuodks3OZs*RK-im{U>;DPXwW)kl#bjzsea2cdU%6&s^Rhiz`2#U>M5 zyNbW1onsiNPUImDX_&0NQ!DZ*&WqAhEAkEIuioZtEp^!P2%FP8C;xb#XNRFgI0vPl z4T&exppJo;nvrkPP+co)v0jVSvoy`>U8EtL+F%H1V$-eMjxEQu-Z4bh`(hgmbWbeE z=JhINKpMCW=X8gNDx-kmKam(+2ekgV2dLiC*X5vw#^d88LKII!cdADS)3&L)P(#o zs$}=LLQcz{a$Rk7{T8{k!)R+%d#a#QzPis6;!yAeDa5G8r<#7x)!_HeN@fs&!?UqJ zD(Es!F?<8Z*|*aPLaoUc3>RF;RE6nO(rUms`*wy2Lx#=a{!b;R#;406f3a$%oa5@` zwW=kJNFnauEl1inLOj4h@|~5lv3%6v(MVc2AF_nWjEQrcZc~lX{ zsTp~h&QUo;Qaj9dC7%sb{GF|6@OMX;jlSa)%oW;Lp2gpJfJE_kX*T|j3tvQ}GQf6M z9NGAJNb|B|BB>Y@U0Apnx@@-?JWFE+@2uh^@VLXqA4O$OH)^*uX7G;n5$aC9q#>qY z>el&=3hOl}Q+VfSUG2#ehs0eU@X86RLHSh9An}e(R8=CzetJ!bRHrc5xkvCrZi!QvR zuA%MPjNW;L;vE(c91K)eY*LY#(XAD%=k&C%TDxy3RCZRZWyJ=i_tli%xv}6E(Nqcp zHy&wrQjBZfn$x?%geB{RL{56kdPy+?(~_wz`PG%Gnqx`>426Z2erv6&QTc*-7_!d1 z0mBKcce)|L3VPI*{2@))F(oz>+7<1f5|)}~^(r3*pw8rXq$KtV2~uuqHp3oWt9`(P zB?Cj07nEF<0H{9i0TY%i7&5CXNbc$gtIButj>j3bDi1A_I_0L-8dR8(8atLWM=z*e zcYdc8O|E{t_sSnM!8r5!WWpv26{~?A~#m zt6h1Fi~Te64d2D?*^bQaU0~9fsZ*pzXC+Z~$sTD7S_*E`aQ8pRWtw&|C{McCy|Xk) z?x_NRr!iNKK@H1?e^z^P>G%SZmP{U*OIuR0r>d5jbz^q#biL_2xjjk%NEAf0mB~)s z%DD?eD6u9=FGJ|0K7}b(ulFu>Coj7>#VFtGDhb0WEn;Lsgr(uZ>YZWIj7c?+@(X2oZWlrxbO>%l%RK_nvod+q( zfNT>!P83m8sD@`zItSx%1f{35s5E>YQ!;u4>hyJ~$rC^$m!SV6Cv|xq% zEX-jk{8m$6g7I^C;p5dYewijr4J_9tq~IZdOt_|-zqAP-dPMNcv|-pz5~MT0=C`up zAx*pCgMvw_r3rHxkLxzlh6PwPvHa!Tg!yHfFo6q%qEu5GKfj$`n4j;oG`~y}rX>$| z`t|9MM&@iaHIsL2$^cB7Fwey@QPb6sJDlds&*g=WHz)XIh7vrOA-h=;6q9Gkn#ntM zH3uebSREkaSzmq|CS)e>lw{=((+hK-iHo)|-*uQNdnW&B8^+S9ZK9gGuG3ZTF@Bjw z3>!ne(ezpTRzF+CP2?S$2=Rw$#B`shU3g6Lx{t?SmJuI4D8Ec2Ci%y0bm_xtT|6Ft z*^c5WO@(i&7H z8$46y@lN>;U^XjeMZrj~fh-(TB?vW-u}6`ROA9fQctZ)Qv>S9h&5OhpzpV-tDDYzH`L z$K0;r)I9Tl{5IA*%GU;SO7ioEX~&xIe*eS%k9^eBv6;NHj+4owpq1j~8i_|$OrA$Y zyj0R0oq7^^+@^zNt&M7Y8ZOmD-g&C9+O_#Y0Luc`Kvq@=E~I1PQzXDI(~f_Wrd1cc zxyCEFuw-n?HK+sQpnp82fz%;~6ELw*&EuU_oID;E(N&c*gGT-lK@Mr|F)@FbW=zQ@ z^&*1tYN$Qbi;B%%gF5RbdAw?X+chWS)9}pZ@h&iF#gumIHrpCV4iH0-H0MQ?Jf4az z+19lfhBUHb>*jGi4@xV&u>uoHBqxj-mJdCtD|tzCbX>Z@x$KWCI!x$t59(Atj7Vie z!a16;8kHvuwPlrH>rtsy`4Xqi_|#B_QKcEfFR376Nl=M5Lz>4s!z7PKZCSl>3(WX* zO`95%Yfu-M3@W%>qgPHsnzd1=G5G@~%$U2209D}Fvy3-fkf!mD_NPweQ^mB7P*vhu z4Qf?B42NjqAx*M)G-lAvdQGyWsRd>|;fTs`4rh6o(s0ItQ6WtXWSOzJcfp(v4N$6K z#)6@F#)=$sWvDaxU795E)NO)5S`xHRSFiFpzz2zkG-1WRNY-hx0%nEAT;DHg&NG!H zo?uwyVJk&oSluS^&M-;h35KM(2G#D5)^1BOlXw@Huwuc`S}q2)(nGvLJMHP#KJI%cadhZ zVtL3o!~nZgY!2@XlN=s{B44)X1-4M>$rDbfakt{+@OaUI(`U|9ad-pf5gKdD4&Bf( zpdXR(>=cJ*J(0+Mc)C84FkGjqdXphdEDT~M&D0qt`8#gL({sL(pdQG|u~Nd( zR(y;F^t!;3h9YxLV6xl+qn|C=gTLe7NGqnvBa3_{rTA_5V(jU@G?TsKv`Le`m5A~^ z4%-lmw=!=%rxE^CTTnkioC|!vifHais7uW3U9zX z+%mLD4hoOaPh)#Aq@GOS9X*&TUP3pte}MFlfh@PI?&PwY<6)W;*#^U<+eogeU-|Sr z=J1Y(8C8a)G-NC4`k9wz>d7451!lA2-xTQ9(zIF^hex>IUis8ajbCn7OoCLT(}-

      sJQv+|geLLMYcucW;XpYg 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н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 diff --git a/models/MutModel_SKCM-US_ICGC.p b/models/MutModel_SKCM-US_ICGC.p index ea9c4fc9a7571264661ef164aff99d98fe263463..f05e98de1f53a2ced826cf43f4b4b34f0b0177db 100644 GIT binary patch literal 458729 zcmZskcbrp2*T=IxyTB4aVFAG)El3MZ7Nmq8h8BA0p@$xN=viu{8ITf+7355F~(Ny<3krn({$?(3?qpa#{B^#2X6DYFJ9EyNGZS0V@)Sj!g8rMfOw&ZA zZ`nfMr%mTheL6I2(Xw6Jj>~#2(`cF`_BW5Iwv6~rRZZ!wDtZP3RN+Zrn1B zIe}<>)fL41TXo1sm8v|k+UG|ldBCq%5KB-Gx%rE6KMkG!T#{=7;}yhtYdqwZer?V@ z-1btE>+fzwISFpaN2V^`K5*|wNp3WG6eKj(1NrEhiT{v=?@MxLzQYQVS>iDLdvE(Y zb4q$8c{l*MF-+wXYu(pX^aLb%W|1Qb;;4QE@~Ph{tChPwNs=2JRKA1C$BbOLsNG+m zN^;FVkb7QH`7B-AP44W@l3e}%Q3bJTk3v3v%cKwgcl(GWkBo%eJeSHx4Sv7Era7l2 zxn6x-LBds!Lq7Y}zdtlvfAXzd5mAuHClSa;G&)}b|KFDLUwj-fs1o8@G|X!JW>2xy zeP=V)dCYs%R$m!M>}{w#<~=HB-i;%U z<#!>EsW-AEHJ%s_rN*~tIOJg7Wv)(5r1FEu^TZR=pLrmUDaUnH6;CveRH9rtvS>Wf zFDeRo%=hxBwyJ$%y{(mfqLOUJztcfJ7oCNtC)%F_xHy=vn_-ju} zB<2=W9`k-fM|VShX*c9!l75QYII^nr_m-iz6G>#+ZOCKBp*gW|5>dWaI0^m0f2TPg zN0NxXc?9y9abym}Z9Qrx5FZgvDCbCJ$S2IJ7@xQ0k5awL z@0KWu`{yM}j5qTbkNU`3N$&dfYb8iF$SVk)&A@)0{Lr*}y# zD#=ZAjwwmlc?|NH@6Pb6UrB=3{E$yku8tpHwz>58!3%#WiT>VSkjIQq&BCWj;@tQY z^4Ra_VxCkIzMm&mXiu<`DwSyUD#&M7ebL_aRRyVh&s@lT+o^oiqw9<3kG?9&^$iN7 z5?8kZkY_Er@lE*|&EB?0T`-l{yB36e%9R(|E`L}hx!G0-^&Th$`RAVw=>EaCN=Y96 z^u1K#ANn5Tv$rfQf+<~+n?8C!l?3X%5Bd1u;KO&XZI9Y3hid1i~NvTv~ z?N~}IM_;51`k{Ik$SskgbVii^UboAbN(`5cRDQBT?{&pf-?o29|5W0!_own3rbeID zZY{|(4h~Eu#;XG%kC_iOy#}We=eWW2@A>sqbD7E?QhCg{GXFX7UG#ko&GudCWQ+o<2I2SeA|! z<<32jtB+H8j9p>aKPHs~&y0b5%*C-8FAaLBorcV@khdBOdCa`$*$jE+J}RG>{qyDm zYeUlCM^xieiLK0dS`I(|m^wlp9z^9a{T8?dx$(t2fA23i0q?8a1pIx>dSO34731yC zsgTFaW0t1V(f@;|Lq25cr2Gw)!=(0@M?s!5lge%U`*QZMp&v%sAfL>y143$N z@bo-+wjGqZ$SIs8tE4 zw@=?8{k{9!v1vsA(^$x3=6U~f$jxcvX!(5qN9N8+BevCZAfGg_;%|rh7Lv*_7oVF( za;nS~<&Hh`(4M37#Bu`d?PPhNc_m7~`0%R{XF_dy=B&gRtq8S+*?Lmu;7p__;E5cBiH zVmXG_ko(?00(p#G?JjyG57Abp@|f?%|5bWkV%U|QSLg?gw_0A}{Iwe7qYs{Mr?r-o z+UeOz@{-JB1oD{nnBsTjC4r(lAdh*!zK4hN5`EGU$YbiY+yBf+fmG(fs zd(z*#^#@UJ&x5ple!fy%$WAAgyV;P>t$MuQ%N1Jb?@f&lrIT>yLy*Tjuj?x0nnzR~ z^Ik%e52q9J;=_=~tP8=9j-(T7^&^nSJeR#2%M#aQM7;0 zQL+4R{bOi<`(vWqa}V;&xL+WTdB3{AFX-pLs65853)J$b6Jtw1Er);a_5+Y>&QN*G zc=IWbrxX1L$03iI{|zG{4`xw$%sBU4fjsj8mB*AHoN^+am_9!NdCd4X);@`Ll9Q0f z*s=OWkOy2;9{XO(oiIgCQ!9`FrDszv8*7{|b4`IB_{3*KDHlm~~V8 z1oA*qKrBa9Hjqx7nN%M0eqHk+*Q}%Rm~kFF54kB!-{`E(jq+5WBcy<`mhEuFZmzd;_eE*N$|9z67pJX3o6L^rGilm80$QUL5fbc`r7ofO1+QIAJiC zgnTd!xeVwo{k`Q}69gwdXbSmf3r;V3Jc>=0D1YpFlrwidJ8l*98YXd2gCUuAO}~niQh0B z!2t7c$T=q?o2cuqizn_j>mVN_f86M|-Qjo=IT?nWTdcB)t;;_MS`7UMa&D5&CSLn} z1V3E&A&+@4>OAQQ#9cC-I_2`>fc8B9GJ#|kTn9N9GI90n3;D$B-%oE<K9Nk^+fG2v8O0d?$)!_>zF27lCt~_1P#JPn8!8`|m0ae} zs>P+}4HrO=!&rd^Ik?~f#`DeEDMb0aHssu-i0}G~MkypGyAhSk&IHCSIh8^(`<;TE zGX}GX^)=**f~O(pCb?{4YWaH#3HSV6EMI>Da@P$ipIW$HvplcQOYO8D{1ff}?N7*K z<|V_Zt0^Qn^D5-rqMA)CRsK#Pkw$+*&IL;_&&<7s^1r+Wc}zd6^W>!9d(446W}GWl zJx(E-pB_U#DdowH^M`l69VZQnD2cao5d>Gb;9oW|94(EY&fU_Gk8b~b#_f45IGs&0 z&wrvMzFVI_9^204nFtPT&V)RsKLa!BD2Z-m9mr$GNw9G}C9!s>C&~lXc1mJg*befT z@5niFq>|)(HWKoIvU88`&M;O2D}WpbwSDj1$ja zh2gBn(_l=@cN$*U49@7(O z)an_7o=I|5XgB`8*&fKJ58jq~_m{WxuxI$5G@_nOg1>)N1@f46S#`H+9%4(-LLM{Tf)@;Vi0QTg@|gFfcm}z$ReQ*X&i$p#k=n(1RLG~v!TxMwd>>ABNJE|Mm~uSZAy*!!^1*}uxL$MH_fk1Ir>IjNqVkyj zR5t%H4{>+?5%QS%A=qL+{=Vye$Yc7`^rJ5i@m}yj9&h`275y$R)a9(5Q=Yr|^ zNU&@=2N+09(x#a&iO$3|K-5B&+`!SnD(0%J;&d>o=d^%BIEDz@(#=cS!VK(gyAX$1y+3kPWGw?Oi)?OQbNH*8?f{tZZeCJ9A;yoSBrbJu`I7hwPJnM%lA z7TdHL_31XP*utP>-UhO(Y5+}mI_qEcq#vS4Q?w=A zpqed#>Cd%}C*IqwfyUF#?J16^mZM3Vc%tah21smSxHph-0!88@XKn^^_$V44 zovNj}Y^rwfmddmPl4olPX~qDlzockXi?-Q~ynjcVVY~%oOEUmT-$dOgvUG0`w`@dv zAlb*33e0)G1Gc3rcL0)SJ_&jCKpGQ8gQJ-Q5(-Z5f=Axa1xOC!zir{cuGsfI(-lZI z`6U$b8PUS?Mj-j?mymDUVl-plVjy{8lu-B-knuW2V)xn?dCJzM5p!FEw(>F^9aKjImXym-ECVfzvZ#5KGG{AStSkx<5gQVGPS_y}l7 z`dQOYH~x?dv^Gy5DtmM4g-1h*Z=dUPAoE6w#P_9}(E}Uvi+kjP46A!#uYFrDph>If zztz#YA|>9S8P(nZiDSdwrC}0L4Q&V~SbUY5|Jo-Je?o^`kYdH*B;wk97-+IEHWbr; zNh0mAXat@$KHg6@QUjr2Q zjv}$6^aU>hmAwcgPRmXska{>pvOgphm@^`nM66jsAla0Vko7f?qTnSUabT-zTt*9< zUj~w+dy-ag==~&OntmTh4p6?W>%)G@#9E^tb)%!PbqV>(!L!#kpq{;KSxCq;ZbLH3 zv~Qp&YFtRjd}B*8$%$+M5>RZ1ig_yoy10)(1{`}b~#Qb44kT{F#{y7Yk?+DPC znq91`fBGx>Qgqkurx5?+`#|Er4qZ)F65IV`c*F9Rfb__=hfS44nbZtO)XJFD1~CJB z8zAwK)dPDYcf{HoNPOgA+9;%Vd^8G392>gEm*A{-z62zG4(8Xd;rADKlS_etx(c|q zL;;sntjjhq9^UHKc%ad)d^b;jBd@Tw7AeS<=#diR$V!hK?5TuLJY1Pefsyj5$fanQ zO0}Zqxuj((rh~^{O$Q_nHq*^DsYLN)4UlXUOIm?fK*j=VfyBwdn0X#~6&=q5$)O`j z%m4fdw%7|k1rk@-42=p7?x!j^n)0rOq@}6-9yVN?zXv1^oA5pCZCm1s1BnKV&h`Pe znZNn~NcNnh0`=#B0yiiUXHoUbGVqV{l+C3s@0-ThKQ7b+NPJ(~n@v#QV~WJFp{Ug+ zjo9^VfW(PN9d3n<+o!E!d`hW>o)fL%p5AN?B-)3Xnr-qBPm4BGE4m#hX$9s@%0rB6 zCQ&V6K8zGwg3aUVOMt``Ryz>LYo$nh%ihO8y40mW;v>7s);vTpXe-dzb}dI)8&<~$ z%N&cE%ZNf#T0va3OT%pE^bS(TA~1Uz{D8I7azV<5%aQQeWjWB4XoA*IrWG-M1wX*@ z6_D)aNyu_%J9bcBZwKP0BBte=b`qJiOHSrem+p(Yam4d=T^RdffsR5w;8>LJ0VEa} znKdnrIKP+%BuCApW|#{siz7K@mH~0Eg*7Ae9QLxIAhnmpx=h=!9TNVDZil?nQ9d9` zfFf?xvjWv|LtxQo3;~ie-=t>vr^ALdFQzsu_nw)SCv5|^SW0f71Os-8>K zP!*p`G3E-a(K%Ou#NKc$ESEqOo65nG8hffFyu?9t&SnKVCL&>3@wpjDd@k$bGKnOh zDvO;A*%OwuoVCj*5@oycK%9@r3e0I<0sAi9D*%a&*JV{qBpzo)AkHXeTBhceQCF|Z zw618%s8pB2Pz4(^gR1~>o+Z;#I;x?rt<`|U=dv8Dfn3T90pgZ=rWG8H9Ws-R?vQbd07Kd>^^!?oPd(Ur;&XWy zjYuY%%_D%sW_W!YlZo#9Mj$yv^>(mr{S~`MXMW8^%bpShDjo#l7E;y>>%-g0M3M9l z5NAp=r0-WGg#^YIflVZKufKUY>;UyH2PE&PNzL$HYnnoIPnrVBnGA2y;toI?Isl2! zWvwkoOmg#1A&3mK}Rto$NqzqQ2A& z%_ShuU529D!xB>Ne}%fvy`psqtAlQYPDw&jbuhBHpbqOOryVG`l_EJ=MJiDBRrIO8);zkhi@N>6}VTg;=s{G`UVf>W@z#&#?Xp zXo>TNe*uu;D~dR8k3F){d@7ZMrknzj1L#tLChJ9*f%c0)oU1Bnb-oTQ^K~F`0OZ`8 zg0#TYsW5zIM$_G;0&|u2M?gbl@0=BwQR`orf%<=e#QD%OxFog~rj(4eQ<#?9 zTo%!PTUj7+1~8FIc}TcdrChWe-o{9f^EU?K0!XYtgQ{sB5-i;mNSsAgcYr+4DU#n8 zGkj_-Bi0*B6-4oDX{<5wemo2xTivs;ZU&yED4NbWlp*^vk^4(prJYV;@DVox%zXCKf@+FQW*MoGA3R8Qn_5$QoA~ zNX`|Nkn1*(?iodL`niOxzB2J7BTxoNY@t(G4n|f+IUvp>Wz8^j7!^-^Lq-8{gOnlH ztFdT&#yB9c=e+|aq8ZkSK-@@VTBef=U_4%303;{UN-Yen-H8C`w>yDmM03w2lvDX= z0|wg$AO%o+)&O7Aa9kP zxzy#V-V-e(6xpH~+)@i|SAlXKQ^f69u)2Jcdnt)_X)mfJFC7f|k0Jb#d6kAgW<`%u zNd@{w_E92XqYuy=d0T>MWd?!V4=9>ldWL(QDJS~K;dB$yA*NBJeNmvAB5@q5Dgotmr$|b%3r4lvgMc!oQ^eUstntpDfRyKR zE6}CvkM33Xht`bfLBqELpgd5{NrvXkT)yhn#Asc<-+&Bt20+Wwdi=1;Khxtxl9u+X z!${uv?l6!zZ&>2%)*zu_28(3T*)5>`I0roq?PKDH3M@*ZV&s9lpZPK=Qo7*1b=# z?lm8YvzNU_()B^!r!&%ZPd$Gu)*}B{py{<5PQAB;W?~g!o9;nnCrq=tR)n|V$bt%6Ca%5A)1@NU7x_*iyzFj{7af<*$zOBg3)bBq4 z#LaCCX$BvRBmN0AZS$Qz{2oY=O_A91`W?PF5;)|eD4HxOH9j*b8_meb2I4$7R+pvz zkvI}D90B5@qYUXt5Y6Zn1mcDpL-y*I5uoXO8Av`oCDmnL@)zFM`oCy_(VQs>Wn8+B z^w^y1K-?ND)s=G-btT*a632$CYdDUmSA>CvYaSo^yeB=bVsYNv3!U`)&Q^dG$CI(I1A5?@jMzp>G}0=03_*Vrodps&;n)!b)s zID7C6T0^2|W+Y@iR|>|+wNhB>IcHURzzvBp*a5<5!Kxh=vv=C%|?^J=96)ss47 zyKrG=pm$!%Da52yAsUks`_OMTBgi$?48-{ltQqd%v(duYvw_4fMfGxFJaOh<1SB@Y zcKZt)_f;$d5}(VRbugZ2mmdTYo1wk-3pQ%=`E$`SPB?)e*OC)J+>FRtXnKVs!LAQ3 z0?9`}rQR@2z6kqk8%1I>Txpk4SINs%E1Gj8X$4C^g~?g_DbQTmb7OTm_ZLYZ>R*e* z?mseQU0yeVWNfYrB)%`drU|w|Gn)W$O9#_3e9|<5_}VlDntOHO`r@zX`A?}C`co|u zNcc*NTnbdKAxM1wngEH<<(}Ljf#~OV$fYh@v(7l%Z0Zaoeh#XSx+V}$wXQ&%<;z-_ z*(-p$#sz@5t$&8pbJgA+;S{=q_D6e!;rB_QW6PuNrE*huV7L~MHbY>ZtPcefjIw0YWyKYm)w_Vbcr)L8B$FiguTv1 zgMh?o*`i*HNS1aj)r#gLOLb`u9!esfbBBPY%UgJ?K+|t05#+jg5=eY5<9G2$aQ-=- z27}}+a;BAYu3IvKT-|^;ACV!Y#)N&HUmzycgd*|# zGR}`jKJTh{n9|}9wJ2a^M+#9ZTWq}H#h1tqPG3iD^Jvz#)ElnS8*%!-+`wT- zS^94{#_j(G;zm6~fueVicT@QeEiii6c_>4MrFq~O@5zH%itAv8{Ea?NAcoE#1I^hp z_McsY*V8GMq3}}dbXc~~oes_lU?}I<2o!jkUJxNRUccdF0wT;ObEzxT?G$GE5vPE} z?sfdnkVrC~8e(TeR+rP&3Fkw0cLL&UJ%+poF5zg(nM*+O=#U!knRW+S%kKcqiDp|$ z$QFM$k(jF81#(!+)!nn=FZq$10@*uJB)&?`h5Oix3Ev0etWnksZFz(Vyme`qfQ!U3 zq4?J2=sYSk!@n5Fuz@0L^zfS0!a%R`2ri5+PqpNkgB576-VC#E^JcO0C_{?j zZE#>_K^q`$9+jH$&s@yD`Q`!H)-JxaJ?m_<=m^lYqztgDd76ZX(V z9?rU91=@-}#nMslDUf`ESkiK6ULb=;_X3FXEv3dcdYwcf#@9gHYAH4TBLz<53{YTV zo}V;-Ti;z@MO&yUk43;)mo5Ta;FM`aiXKTuI>`|rE)vU-?uW9N5s#O}j3^EpTMZrN z?6x`}E+)ma42yaKxq1R|>jOi^OTAEFPA?$weOYVILF!72IY3#_qfJt8xVySjh&tO1 zG_q^m<8e2}MV~7t-yewhl>Gxp{3^Biakj+!5j|TXetPcnWf9{Dm&L>^pGB4GGG1=1 zB%a5Of#i*A2}MpIXyUv~gC^phJ&TbhJ0DgC`=8F>xZ0*g|t%D_V$) zi11v|>oVSU@9#kRn-qyNfcF)UG2bL0v4w#Nla$0Vmm;xy?NcW!iDu#CTnbcHnuaCu z(`mUB=x7L}ZATHe$;ci#=%MHoMH64S1MQa4JD{Y-hvKIziTb1Iw65qi9TLiDF+)kr zi)H|g?YbsZ#=JeMmC?wiBzB{XYRN$^R+nlxka8tOLpl_%vcL75s8(K&b(!H(Mx%V_AEtQ7_v8_ho7h6z)cm zsAXFQq;yjxS`OM>D=+}gtN;>wUjOV*ycE?{AZ~Y$HA6f3Dx#cAD0=7nYW^=me%<~B z5(j{LAdn)9qKRqsEgLVg1Y1_1vFLy3L(P9c)1sFPN$<;g9Y_(Ohzn&hEyMoD_=tXg z3?$B?nfsog=TAKW5@&4BN4RJx^Amc}kT?LmmtPW+Y6 zpv9&Cuoi0Dl}sSUF(qM}iyh^7S^=?}Jk&+t76GX@G7#2LRH9)WaU6!L0@)iV23w4EW0f}FVqZE$GXVjv{2&Z$9gN3IV7`b_pm8FF8og00D0Q-HWxiXl%c zWIW{zbpdg+FGCqKaiCtcogS#4^;6voy_!FWc5h&lHi=kvYhi%D(@_;_AcRz}29Wsa z>4SBUWPhg)kk}iU4O=G>Ux(H}+#1W8VH@x*^6$re3ncc2r_H@2lG*njkT?T)Hnc$E z`wuN((Tm+{J<|&Z=Wp}^nkSztV0C%F7>)#`t;2!D0xgfmBH|N24oGZ9C}Dguu@xGh z3kq~tfWz{G766Hpp83(|$iGi=0EuJXJj#J1`7oT`rj&PNAIncQO{q$S+IrivF zQSAbwf^Dg*t$M6UnXFM-6d;lH1TjPuuNv5o~R(B2w16sk=0 zhC;D>-P8LcYkzfrAkO|`S}NDp6yn^qHJ1Wam*B*B!qkZon~^#H0d6t;@&OR%?y~|l z#a}?H$_pSazRZw&L@W3Kb6R21o+qD}Vn`jphNk;}bVE~oDW*14VM&>$0&#vD(=s@g z!FSlTj3PO^iXqjqjWDtfZlrZ>F0*~k^t{oRV(PjHJKA$M0f}FV>)vKq97$V%#EHoL za3{>bq+LMrm%O|dSZ_onoh^D-F5?PoEh{u4{0 zUhxQM){;N|yR?8_YbZ5C@l9a_xsDaa3MSU&xq;PE{fe%Z+(7_Vp!+<|Bxc;DXA-$L z#*lHtDx{MfT?I7q(HDxkjp)_DQeEL~Pp~9rKfxlv&Dm1p?=?j_iJ}>%SZ#Br1994z_?H6O-kDOdxSYc_!7tbiSw#kW~(Hu>!STAn!?v zxKEa$u)hsbQNwM3ILDYFg?9kXF`XO$#Ld18<>VWPDYn!=ATDJ<(y9ey*Ha{RRCo`N zEk6h?tUCxu9P{?ZK$;E|iO*#o4U{vRBJsJj>u|-3_j`K93peetx-vf4 zip-#@TXWG0Z{Cl_@7WK;ttw0_bl?CkuDyK#Nc_xw#}OLS|4Bn*;$XAq9K({BNNKQaVB+_s{UCtGR}BD(Z`t4OCc<$2Zvu&9!~3!@vTs#1t%-A|SzQ)4 z(s?8MX*#c1ps!IC>~wUi0wiBNEe%oQcx3v9>@?F?KBg}r<q{VoYI1G`?w^bTf2Bxlyrt9>JXg&rK;rxIT?f)f zazlodv$39kHyc{w1Z%!p11s~Z8d&!@he>+N!y4iQ+1!Re{p4g>hRpLD!QtQB2#B*d z7|L0IGj95=O>@z*EN+YN;`X*c^5@VbsXuO**CJh~e;gLsiE&u?I7{$5y2zS)w!`WE zQSD-vONQJxJ0M->bq64Bk!8p`yAvGvWu2&&>4A1xl z^>H~Xh9T?2`KT-J0;(0gZfz(-rh{L=$36E25I1rdvRk&mX`a0Wh?~I}Qhx*FK0pyS z{W7Fn@(q%FHhq&zf%Z$|h z?4C{6M20fnzk)}ubOlI!l^I=b#1Yq!8$jHG&a~9UKSgFpl}}*?a0|LrpspUg@E-Mm zxT&5YLpfJG3D$7|aZ?9F*4-Onava$R#O)+8LZ}rj(;``(D zZq3lg(dSYZJB^c3)lLJ6!zMKP3{FPPIRhm2ye;(_u0beq4M=QZMpGc&V2ZdPoz(d6 zfdZ!}5<5zF9mx5HB5v=5X&JL$VvF?rOCWA?V@R|24UW|xdjlkXM2a`@@WKlxz{;8> zd*Mt=@hkx+?v;tLUN}Sg)~V1Ml?o(Zo+J$b`+CkqlKj?5@$Bw8z57Dn${w=&^G}$B+zRTFnyI7 z*KzT`ZK7}4H}oh9oO={V?D@=%*I;HJxCX=p_E<;hCf9-~wZ0ZisljsimLcD~4zTFf zbN~`t7$is@w{|Z=7j$8fQf%o9kNy{~~(#fDO?=)IZJ`1O|^3X7=`L+qXjb|{<` zXjBfvuIq=xpe0Uw{z4;Qk2DwoBuasTjQgx$DmLm^T@M+yelXYd)|B+C?`Y_=O{>x&jHFvq*kZc48

      &gRLRaczas@!+Pnvv5U$TWl^ZV_WhI~s^u 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�z6x@7bv02hVAPc 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 diff --git a/models/errorModel_pacbio_toy.p b/models/errorModel_pacbio_toy.p index 198877721414ac0be44e2be465e069bf9e51547f..38f61416163af0aff94b6e02174d3100ac82eeb3 100644 GIT binary patch literal 426 zcmZo*ojRY90SscNXaJEngEyl$lQ*+Bi#Mw`n>V{Rhc~A;mp8XJk2kM3pEtj^fVZHx zkhie6h_|S>n76pMgtw%(l()3EjJK?}oVUEUg14f#lDD$Ainpq_nzy>QhPP&_x1ziK z%9$WA3t|h9bcfi=z~F9wRc=S%>sEP8Mk+`hTpG6qRCTyD;82I5AvM+A{vAA2-0fdN z-0p6_6UKo0#@&8O)kF7nBGvBpeIP%`?Qpkmfr*qr7$8eg!xU)x1tim|5JY=ULWR7$=Hm+>aSZnq+`q~^NJBy*+0uZ#nm6lTzaQ51`{CV|y1JR< zQb<`ErAeBlMJke=Mx2J#@ET^rZP*RJ0T_fs_?Zpi5DwuG4&e|E;Sd245OFRCA|L`H zAOa#F0wP0X5t_@rrXh{#K2+9DgY9NMW48*DGvaPk%a$ssld_(3+Oy`LS#2Fy*V35v zt3%~PO3XTbr4~|``=KRWkE-@j)s3k7bQhGblTMb)eO%C+{ern=twIm+--D$u4-BWV KU?z{hT89_1GNcXw diff --git a/models/errorModel_toy.p b/models/errorModel_toy.p index a172db8934c9a35767beb521e35c431bd592eb8c..02304514b7fa34c9cc642e431bc23cc8c24ae18f 100644 GIT binary patch literal 3282719 zcmeFa3Ea(9*Z-eFG)jt!qFECPm6VVnN=Sy3dCWYI2^lgZGa*Bgslhyi3JGa2qzny| zW*U_={?GTU=lQ+X=XJf$eZJRm&XxQ5=XE{zbKmQ=_S$Rjvp?T8?6vpqn`K<46Ed9; z{CjZhmG(FMoVH!swC{0U<8~dJUe~5e>&`73cI?=&$JpUnJ2h_Dx?#t$W5y285@m_} z|0bP#v~LsZ#0h$iL`+R6e2e*hXcuMZ1dp z$Jjv;z7|F!&a5|q>rZ#ZZqe!YM#{R@}JLHn(tmu0wu=3 zw)>k7Pgak^bz_Y|*)k2N@43ocROjXkch>PFQ=*|Kz0m08wbz}~$dhb9O+Bf@`zOwS zuYO}s$};w;i(kK}l_%NcwDqKin|#*2M)UTbRC@Bwe?QQovnPGrV8SWc*LU)y98Wb^ z*8ioBo^)vWrmtGw-^Y_yul#QM6VLVbq-QQTb<6g`4|~#;dEeU8Zq%cmbpP+ycI-K6 zkS9G;C!h`WqyFjUb&UD4{ zS)O#+i=Th^`*#aHsoLHmGujv3=t(APpC`d0k4I`6!JfeZIM4d@iN~M$u!QfT>0>!= z|8+)LPdZYvb=jtmRrMs}k|k`*?oQ7II09LBe|_~sw_Gj&9CkG8su~q*ds%=GLt9PH zWj)sQq%-$cJ@4Yo4Lr$)eZMCGj!cObp6mWKw?@RZ^rYfjo4s8s_d}ipT-Kv-0YZZB z$vN+K@v>HRdUbP~Ap)8l_1oY3X?x*n9#P@^4ZVEBo#!1m`}vOqGYK}&UOLg~_#VcC%8|NF&yJ6E6_pf=% zlkSQ-b~8Nb`MghjecF$6Jt^v*pR>f1-oHKYK{t8Q{U0oSb>7c=Jt-a>z@7S!2r)mU zxbMRJfl8hP-i$fqve35F+bm|q0vNFl5Qmrr zln=wNuMT_o@}C7q`!1e6yJe4NevCFCi9_m^e(=sIYa|Y_Fh`(e$Q2wltCau4+O@lS z@eAf0nppLwo}M&3qSZM|CBgt3VgnK!nG+|Vu`v$x;sYz0_brJ-&iU!|u5(9gYgnYp0ictKch;@kLHy?uAVMt>}nwLfI>`=4HaS$od~ zVYvkg;)~g^d-#Ut;ff7;`uaPv<^Mwv^7Pqn)~s4f950(yu^}&RY#Om!;&>V4hx;C1 z{qnO&m^{jpq5($V(VkT7j9Nt^**H&nCz7_hthyki%VklQ&~wfHtWLy(5`;_)BBtEp zWkm)UiC0o;Lu?5b_PRla7S=0#_swgl?qxw(Zohaf&jr31IB|dwSo@HYvJbO3OJG*O zrGkclBU_vT2e2VF(EMkgu4TT%VlaXK?vlsqWOu7;(1wr?W(xv`F>(UY;q)0Z#?bJzzBN1 z&N?w$sm}dVijZ(|2$%x+?t={h_Y6P-9vk>#04?AG&_Ln}NB}L!Wx?i$^(c8<1E9nq zu=XL_3vd9E4O^lW%WR03wJ?&lI%}51^I${lcN8xx%l5|yHf zdh6&HWoC94FRS1yO@cMxSM{9{Fcj}3HYEQAcScYz2>Idjmmj@tk=T&IZ{&z%Ed(J~ zM|Yl5iV*wSUE@b!VP<7df(Qe?=wMcW1Py@%0XO(h=JUv|36LPi1_&{HOYm+=H1ji2 z@Xs0%H@b-@8FHI@5`ZQevED3^I^@M{33v3eAm})F!`v6=9Fp`FB*7pKu`!C5WjQwS zvfd50bk7xp*cPZ{d!xZhO^HLAwVXKO%0DGizog~ztb5)R8?t`P>Pg+co94$@wN}pN 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 z
      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 z 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%0DD65X#~`#7P7 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 Sc&JThI;|qDW#KJn53R7RU@cZ5 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%0AxkbzF9O|H^;e++%pt^x(_z+@MZc*XJ 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 &eABPY-fIXDP6GL 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%0D-eBa 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 ^b~Feh^O(HG(Lhe3b5T24s|I+& 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 KpxOTW>;D4~DN4`) diff --git a/models/gcBias_toy.p b/models/gcBias_toy.p index f4630a513136a66e36752f57c564846909793a5c..8a36dc60fcc4e1dbc145d180638952709f393c40 100644 GIT binary patch literal 585 zcmZo*oodI#00yyBG=RvP!JE;W$(z}m#hcZe&70ku!<*Ba%bVMq$D7xi&zs*{z+2E; z$XnQ3#9P!`%v;=B!duc?%3Io7##`1~&RgDF!CTQ=$y?c5#aq=|&0F1D!&}o^%Uj!9 z$6ME1&s*Qyz}wK3avyZwdP(ZTn>Ja)Ig8N+38*@Ma5{=R$YqRmMM-R&Q3Z`S{; z7vXOI+&ga7ZJmC1`&YAtrb#Wl;%@)u@$$nyHKFeI?{tq&j6D4k$hhAmlJ~FI-Tr<2 z0So!x-ay9WeFxenC+;nB*IzdozD+ket++TiQQ3>4uj=U#l@ z258RqLyG^3fKGkiyI^`k(i@;ueUhZr(QiPJjvuq66Od@GQ_n{;C8NlkbArxL9h`DJqM z_D?oBN$e7i0*2~K#u$TV-0t=dpX{0FxgZ@VBE@=DE_9x|{XL%CiiXLR?)JB~IsbRL ymFsSQgY$Q2TmjJWm)sU7>F!hl#@B-dTpKiiZa!uISJrGxxjQ7`FfgR1>Hz@6kofli literal 1355 zcmXw(IdWV<3`29B#F2~pasgHO7|tE|{*fR5e2=CBu?Z3c(evZaU;X;==dXSJlCR&t zlw%y{1SdJgY0hw#qfg>x>ZR)C>Lu%C>!s`E>jCr-b_jcFAHoh{hpoRFsrAlO;f&xJXj^1J88t7P?2-8HbwcrKg`|nP#6@*WD9sVU`u!uK;Xr zXvOSQkMqbQR*6p_cn#&BeNg}=yP+PD$;#hUHc-W!OmK8R(T?1)p-dYae|Nxqv4c!e zT*|w|(iEe}L~X$CQz0#r!g(J|_R7X0Kz`&;_}9KXNMGP77=!FqYV)aNgcHTEi3v76CY|p#+G-DuZbu5NEi%0QLXc|li z-3%$FKa*9ih2LTeZ?N?zx1zdOk*x>H=tsv~Igk70;;sKt`r~*AC(NyG={&MZN))DP zcoTo3Xo|Ozk*#t@-l+0wf;VO+g2O-EkmTS#+q@gx`cyC;5pL8d(TSWlT0A@WD*c01L8M(cijzVDah=Rb>89U1@t diff --git a/models/gcBias_uniform.p b/models/gcBias_uniform.p index 52c5b860179d5f35a4df049e3111779ce6b8b1d7..547084a0173b2855baddad2cbdb8c18fdb4d09de 100644 GIT binary patch literal 585 zcmeIu$8ACZ00dETGTCHfGMJnSFh>rr29CcE7Xf{`1iqjOBvy0S+eq`5y#2-^k6o_w z5D`%^aS2H&X&G5LAMy%{O3Es#KGoDUG_|yKeChhu(>E|QGBzHjHypRmJAM+k!L9X{}6aR2}S literal 569 zcmeIuyA6Xt6hzT{DBld_hNB8(>&HMlP`wg7y7anDL)Bpeg From c9eab808c254ae98da481bc98f9050e8a81c46d7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 13:25:14 -0500 Subject: [PATCH 199/323] Another attempt at repickling --- models/MutModel_BRCA_US_ICGC.p | Bin 193920 -> 193920 bytes models/MutModel_CLLE-ES_ICGC.p | Bin 950391 -> 950391 bytes models/MutModel_SKCM-US_ICGC.p | Bin 458729 -> 458729 bytes models/errorModel_pacbio_toy.p | Bin 426 -> 426 bytes models/errorModel_toy.p | Bin 3282719 -> 3282719 bytes models/fraglenModel_toy.p | Bin 8991 -> 8991 bytes models/gcBias_toy.p | Bin 585 -> 585 bytes models/gcBias_uniform.p | Bin 585 -> 585 bytes utilities/repickle.py | 2 +- 9 files changed, 1 insertion(+), 1 deletion(-) diff --git a/models/MutModel_BRCA_US_ICGC.p b/models/MutModel_BRCA_US_ICGC.p index f86c49a1ee8298ead1959c0cb7c5e5353c55c750..0f946fc869afe09b2adbb7b041ae3782af69ea69 100644 GIT binary patch delta 19 acmZp8&E4>to2h}Nk*Sr5aVry3-B$ocSq7>A delta 19 acmZp8&E4>to2h}dk*Sr5aVry3-B$ocWCp7M diff --git a/models/MutModel_CLLE-ES_ICGC.p b/models/MutModel_CLLE-ES_ICGC.p index d2cf0ec744967017b2357d1fa12aea1ddd5e5f01..b9dc37fcf0b25a41957a44606ad80cb2a13994f4 100644 GIT binary patch delta 55 zcmWN>u@QhE5CFmP1Vu#)qA&6%xRR`mR5#ceZAK%~KoyA^;S5CFmFD*iwVqA&6@*pjG?R3?}abwnl7hb%H*Ws@Yk9CFGfw`3{ublw&} Dq1_E# diff --git a/models/MutModel_SKCM-US_ICGC.p b/models/MutModel_SKCM-US_ICGC.p index f05e98de1f53a2ced826cf43f4b4b34f0b0177db..9bcac55609000d0c59526b7505a952323f3fb153 100644 GIT binary patch delta 31 lcmaF)U;5>LX{H92My6IK##SaE$=u4s(#piTm5J^7e*m}|3S|HQ delta 31 lcmaF)U;5>LX{H9&My6IK##SaE$=u4s(#piTm5J^7e*m~K3T6NR diff --git a/models/errorModel_pacbio_toy.p b/models/errorModel_pacbio_toy.p index 38f61416163af0aff94b6e02174d3100ac82eeb3..ba376c09cb542c9233b2c608682fd3f7624ef12e 100644 GIT binary patch delta 11 ScmZ3*yo#Brfn_7p3Pu1F#sfV7 delta 11 ScmZ3*yo#BrfpsI(3Pu1F%L6_D diff --git a/models/errorModel_toy.p b/models/errorModel_toy.p index 02304514b7fa34c9cc642e431bc23cc8c24ae18f..5975f30bba48356a09036cd28c5bc56a7b22d7cc 100644 GIT binary patch delta 165 zcmWN>#Sy{)006IV@VGkC0Y7@6Eb`b*KffT&@Cx5ZAlW$yB`*ajN=eF6 zk*d_BE)8i)OWM+ruJoiY1BqlPBN@v?rV`6c=90)lma>wyY-B4t*~>wWa+0%L#Sy{)0063 diff --git a/models/fraglenModel_toy.p b/models/fraglenModel_toy.p index 8db64cfe5eebef3f55defca3a4c7e3fbcaffcc95..02883c1778d29cb34fba730961d8670c5c074480 100644 GIT binary patch delta 11 ScmbR5Hs6h@fn_6;tTF%>tOG;< delta 11 ScmbR5Hs6h@fpsI3tTF%>u>(Z_ diff --git a/models/gcBias_toy.p b/models/gcBias_toy.p index 8a36dc60fcc4e1dbc145d180638952709f393c40..627497d1227f8196296d5c3871357e633cc06f64 100644 GIT binary patch delta 11 ScmX@fa*~Cqfn_6;I}-pFg99A^ delta 11 ScmX@fa*~CqfpsI3I}-pFhyxw~ diff --git a/models/gcBias_uniform.p b/models/gcBias_uniform.p index 547084a0173b2855baddad2cbdb8c18fdb4d09de..a8ad93dc97e0859272460912c57bfe82f76f97ec 100644 GIT binary patch delta 11 ScmX@fa*~Cqfn_6;I}-pFg99A^ delta 11 ScmX@fa*~CqfpsI3I}-pFhyxw~ diff --git a/utilities/repickle.py b/utilities/repickle.py index f845a50..461eb06 100644 --- a/utilities/repickle.py +++ b/utilities/repickle.py @@ -15,7 +15,7 @@ def main(): os.chdir(dir_to_repickle) for file in glob.glob("*.p"): data = pickle.load(open(file, 'rb'), encoding="bytes") - pickle.dump(data, open(file, "wb"), pickle.HIGHEST_PROTOCOL) + pickle.dump(data, open(file, "wb")) if __name__ == "__main__": From e4971dbd3ee40595610dbce825ec71649df2958f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 14:36:05 -0500 Subject: [PATCH 200/323] A few small changes to make genreads more robust --- py/__pycache__/ref_func.cpython-37.pyc | Bin 5784 -> 5796 bytes py/ref_func.py | 14 +++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc index 7b0e10c2b5542bba36174378588a14a18808e7e6..7829ca5f55ed63678835188d8d63a2996e131078 100644 GIT binary patch delta 2050 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 list: return ref_indices print('Index not found, creating one... ') - ref_file = open(absolute_reference_location, 'r') + if absolute_reference_location.suffix == ".gz": + ref_file = gzip.open(absolute_reference_location, 'rt') + else: + ref_file = open(absolute_reference_location, 'r') prev_r = None prev_p = None seq_len = 0 @@ -91,11 +95,11 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): print('reading ' + ref_inds_i[0] + '... ') absolute_reference_path = pathlib.Path(ref_path) - try: + if absolute_reference_path.suffix == '.gz': + ref_file = gzip.open(absolute_reference_path, 'rt') + else: ref_file = open(absolute_reference_path, 'r') - except IOError: - print('\nProblem reading reference file.\n') - sys.exit(1) + # TODO convert to SeqIO containers ref_file.seek(ref_inds_i[1]) From b6d9b3f9bbb3e203d63936ee31a6c3332070e36e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 15 Oct 2020 14:27:33 -0500 Subject: [PATCH 201/323] Eliminated some stray code in ref_func.py --- py/ref_func.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/py/ref_func.py b/py/ref_func.py index 7791644..546155c 100644 --- a/py/ref_func.py +++ b/py/ref_func.py @@ -10,10 +10,6 @@ ALLOWED_NUCL = ['A', 'C', 'G', 'T'] -class Dog: - pass - - def index_ref(reference_path: str) -> list: """ Index reference fasta From 713669ca794821272b77fe7b304ec33ce99028c6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 19 Oct 2020 11:31:13 -0500 Subject: [PATCH 202/323] set mutation rate to between 0 and 1 rather than 0 and 0.3 --- bacterial_genreads_wrapper.py | 2 +- gen_reads.py | 2 +- py/__pycache__/ref_func.cpython-37.pyc | Bin 5796 -> 5650 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index e251888..ea538f6 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -94,7 +94,7 @@ def sample(self, coverage_value: int, fragment_size: int, fragment_std: int): :return: None """ args = ['-r', str(self.file), '-M', '0', '-R', '101', '-o', self.name, - '-c', str(coverage_value), '--pe', str(fragment_size), str(fragment_std)] + '-c', str(coverage_value), '--pe', str(fragment_size), str(fragment_std), '--vcf', '--bam'] gen_reads.main(args) diff --git a/gen_reads.py b/gen_reads.py index 51f38c7..56223fe 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -196,7 +196,7 @@ def main(raw_args=None): mut_rate = None if mut_rate != -1 and mut_rate is not None: - is_in_range(mut_rate, 0, 0.3, 'Error: -M must be between 0 and 0.3') + is_in_range(mut_rate, 0.0, 1.0, 'Error: -M must be between 0 and 0.3') # sequencing error model if se_model is None: diff --git a/py/__pycache__/ref_func.cpython-37.pyc b/py/__pycache__/ref_func.cpython-37.pyc index 7829ca5f55ed63678835188d8d63a2996e131078..f163e2e1d0de671b75a0e4097130cb9c90dfe938 100644 GIT binary patch delta 1028 zcma))O-vI(6o5O+c7fe4{i7l%Qqd}FpfvmjC7=ZnBnF|xkTs^3&J>saGP?v22{Cfu zS|{E-7-M1#-g@_7q8^Be@wg}Tq6g0&JUMSs#Ds&p*>B&x_vX!eZ{D+xhwW-yRb>}{ zR-SGrOJ%hYZI{p9>>@HzaP4CO%UIbGbq@|=71wPcUB&g-i+xaNnoN$2&m^a2MrjKuB(iFe0;c`!mD1#EfG9@+VL*g^Q!cce z;iBGJQ<3rk|+cPt2~3APZ8(Q$D8_mrRVV9qeDbTMBVddt$j zo?2*}jaFzEd*W-HbK2yz#BEyCDA8t!0aeozfG}VP0Ii`D9JZJxYo_g9p@v0h6W3^7 zIsyh>Q6|YR)TE=#?~h1rutj5o{-}0HYIbmeSjki_2R-25f>A7(JB;}UkY0K34+uzR zpMw48_6yPkdKDrb5{pi9!)JD>{`Tg7yMN(ZOo2mk&1%&LiiE;#cP3X%S$p?il{X4> znrk($E*phExzYqz=~8|zxmcXnr2_m+77i)O4Q`-wfGeyolvVa~qMhtzs0n>w??Szs zw;-Z0JEoyA%}1TFaz^(WY;Iq^RlZ3%AxC}z^iSj0 delta 1180 zcma)5&rcLd6z=Nj8Hb*3re_9NVAUWlvhBLFWI`VNCo?W71?)Y;U&8&he_SJ#m z{9yT7&(9$*xo$UfVrV@=7eY6}CWL;3UIo$!Ij=}#KJe?(0A6IUS$sBo4{gPuIenOp zADp4nGZWBF#Nn9AEpB6pVby8S)WZlr)Bh@)1;ps&BmHOfIUgMA&i(;-< zJWRI?tmblcspkja2$ENw(E?x0k*XgyN+!XCj%|Md->{CaV)i9MA3Cx+=@nVH&5e zoru1p3f_yCxxW|xH~oW}5;bW;JLax~@3K&;jF+oHvC-^+Sk14)U&`yIJ=3qNLp$pS z^$<=fmzStrrt`rWFHy%|*x@A`L4$_=6%MCV9Oe+F#M8D)YISR1i%sp_0~7(5 m_)mL8`)D@dNX?Bd^&V`u5HCxTe19$7Ay%x_a1NWZX5YV<^8C>N From f10d6f99923859fc3e2d78fc7c192b7d16e09ebb Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 16:20:19 -0500 Subject: [PATCH 203/323] Fixed error with path to import probability --- .../SequenceContainer.cpython-37.pyc | Bin 32723 -> 32723 bytes py/__pycache__/__init__.cpython-37.pyc | Bin 146 -> 146 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 4175 -> 4175 bytes py/__pycache__/probability.cpython-37.pyc | Bin 4264 -> 4264 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 5650 -> 5650 bytes utilities/compute_fraglen.py | 2 +- utilities/genSeqErrorModel.py | 6 +++--- utilities/vcf_compare_OLD.py | 1 - 8 files changed, 4 insertions(+), 5 deletions(-) diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc index 949a42371068e9b5a4e5adf6e2026dc7a7e88722..9fccf9830e89a9af47f2e44abf2b51ca851751d1 100644 GIT binary patch delta 22 ccmccopYig4Ms6owUM>b8_^i^uk^4kF0A7Fx!2kdN delta 22 ccmccopYig4Ms6owUM>b8s4{Ec$bF(709$njQUCw| diff --git a/py/__pycache__/__init__.cpython-37.pyc b/py/__pycache__/__init__.cpython-37.pyc index 693fb8059cd93cd4ba44f2a2db43a537eccac44d..38eacc9cb4c82242ca58224d052d210dc94e6ebf 100644 GIT binary patch delta 19 ZcmbQlIEj(liI;^iSk&2LL6b1YrOG delta 19 ZcmbQlIEj(liI;^l#*L5dZ);cm)Ok delta 20 acmX@Fa9)AiiI;^l#*zD*ym8gas1- delta 20 acmZ3XxI&TJiI;^l#*z$jx|b^IUEgMnrNy;0jrN|RR=)nnn5X)!sCgB2n(l#PSwn0FZn*32*nR)R=sp*;ddBsH` zK%pqM+{*Z@{G=$hJP=hJ#Zi)95?`EIm0A=IGCLAPcuZa`a!fJ~WCBx&n%Q)d4LE#IH3<>c~9OXT!2s7M#RWA5U5gJu^SAxF{GX z6vdWX8K0G(6vdVYqKcz9O7ctMi!-ZIi^4!=M}P?T$*V<+@2t26o`nOd_mL+0BNx|hyVZp diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 1abda2d..950f6d8 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -12,7 +12,7 @@ import pickle import argparse import platform -import doctest + os = platform.system() if os !='Windows': import pysam diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 1dfe7fc..15d2d7f 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -16,13 +16,13 @@ import gzip import numpy as np import argparse +import pathlib import sys import pickle import matplotlib.pyplot as mpl -# # absolute path to this script -# sim_path = '/'.join(os.path.realpath(__file__).split('/')[:-2]) + '/py/' -# sys.path.append(sim_path) +# enables import from neighboring package +sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) from py.probability import DiscreteDistribution diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index d2d16e3..d3c4af4 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -24,7 +24,6 @@ import optparse from Bio.Seq import Seq -from Bio.Alphabet import IUPAC EV_BPRANGE = 50 # how far to either side of a particular variant location do we want to check for equivalents? From 465eb3f4b3b07ad56e2153aa617d830650c1ee0a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 17:03:01 -0500 Subject: [PATCH 204/323] Trying a different approach in genSeqErrorModel.py --- gen_reads.py | 1 - py/SequenceContainer.py | 4 ++-- .../SequenceContainer.cpython-37.pyc | Bin 32723 -> 0 bytes .../biopython_modified_bgzf.cpython-37.pyc | Bin 2668 -> 0 bytes py/__pycache__/neat_cigar.cpython-37.pyc | Bin 4175 -> 0 bytes py/__pycache__/probability.cpython-37.pyc | Bin 4264 -> 4264 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 5650 -> 0 bytes py/biopython_modified_bgzf.py | 0 utilities/genSeqErrorModel.py | 5 +++-- 9 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 py/__pycache__/SequenceContainer.cpython-37.pyc delete mode 100644 py/__pycache__/biopython_modified_bgzf.cpython-37.pyc delete mode 100644 py/__pycache__/neat_cigar.cpython-37.pyc delete mode 100644 py/__pycache__/ref_func.cpython-37.pyc mode change 100755 => 100644 py/biopython_modified_bgzf.py diff --git a/gen_reads.py b/gen_reads.py index 56223fe..9065a14 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -24,7 +24,6 @@ import numpy as np import argparse import pathlib -from Bio import SeqIO from py.input_checking import check_file_open, is_in_range from py.ref_func import index_ref, read_ref diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index aa19303..3d2b1a8 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -7,8 +7,8 @@ import numpy as np from Bio.Seq import Seq -from py.probability import DiscreteDistribution, poisson_list, quantize_list -from py.neat_cigar import CigarString +from py.probability import DiscreteDistribution, poisson_list +from py import CigarString """ Constants needed for analysis diff --git a/py/__pycache__/SequenceContainer.cpython-37.pyc b/py/__pycache__/SequenceContainer.cpython-37.pyc deleted file mode 100644 index 9fccf9830e89a9af47f2e44abf2b51ca851751d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32723 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 J@Fj%&{{hdeEd2lg diff --git a/py/__pycache__/probability.cpython-37.pyc b/py/__pycache__/probability.cpython-37.pyc index 5f0a0cc2c2f740d7786b821b63ff2bb12e2166bd..dff090d204ac2287ef5662123b1a1c2971cd1323 100644 GIT binary patch delta 184 zcmZ3XxI%G55WCDR_Tt>coSf96TWmRrMd_(UQB2v{Q7i>T`AN4n=doX4;x=MnU??&L z5tftl1jIKdaD_72+kyBJAc74@XtG4HXU7*M<^lCPfCTMr`Bp135fFns|!LCYuPDusMUoJ%QF+0RUhE BE-e56 delta 184 zcmZ3XxI%G55W7qidvR`JPEKl36kASWQ96)j%Fe#UQc#qi6ty{z{Q?uW0Rsa=kuiuc zpPVNkzBz#_l*!%(#FqdOY(PSjC5k;ez9=ydsNW7GXbU8w*vp|p93Umk5E*-rw8P{t zJZ6lJo3(l8F$qO6C1n7&-72erhlFQ|F}o47o5Db~ zFeynx9<(oQ5p-M z`I&x58|Ju$Ib>u$%5ao7*uYZxtjcFq-d1@#vLgGiHptO?TI0DD1O3lNIj+A-Qgc{9 zAGt$Xl*Mh$Xi*N2)xzAFw*Kj&7Nv&8Ee*3ZuWOi5KAAaYT3FH1)3PiL?MUavEq##p zZP=|VyYpDZ0-hqz4Xob#QGQs)`j?{8CJXtbB{q`_CuS^8<`ZEsj^37)jDdf$z@E%~krw zT)Q9ZLOx-q`h_3AJU{o{)}V4Mbeq-cRBTFb)r~VW*^ajqn^(yxGhSFHo8r_OmO{ox z_#li;x97BL3{tld5J5U@tZnb2LYt6_pxD|Drkp~`y4cQSsRvLRX3Qr$V}HR0Z? zi_v>6HhDufey@o+8204*XXkI-3|$f4x*LScty@^oFiJ4ee-*S7BX~_k zW>}GovxpHa%>YUhsFVO(1-k&TyCyeRba93N7m$_$aAW`+lqbN;L>WLS?es0&q*@F+gl7EXh}fZFu$ch5V-aTc0eha_og0x!u8}Uw)8fG^uS5Yf7n}+ zSXszbj~m!$8wOVKE!do=eSmfNPgELCa6QqWuaJCi{|LzwDRi+j@Rd|Aw7(LaO?~~Z z2sC3oK84j)yD_Qn%|#`Q_Tr!%m8oZ>^mUC*L!3rm2k^ZnqB6~7(^x-^o-)JPBph!V z;k%gc!Qr7%;7W}HmlYLSI)c}9t*?NRa9k*$H^*2mh$D#{B}5uyO%&PEgxClBXlcVKGTn)07;bWQvk!D0!ZeXOYBa=(;Phc{lL< z*d%NeU!yt-WpS#DAR*$c3|70cflwKzU~k(MN2%7na=Cu?;|2Lf|x;-n5Cpb$qPuT6A8jom~-q=un6m3Z2R?PtPX-e z+d;nTulT`zKa5lBUC))`MYN4)_K8H)kvNW8C%yWhju7EwRNU}AiYZM*Vo3aYLv|Wr z%seOUBRsVNqPuMbFlS=9vE-@gBD|3VTE2=gN%CzPSnU7`e{Z7{_K;|V{%i`!ZxjBT zMRo*{z(TB`dy-XDy@edQfL4*Sd+{j$Xhq; zguen8OAoVS#%pi{4yN^L(ng>`2vI@g)POiP!cjy)3DCyvUz)c7@L<$RMm7xcJje5o zz^HlQkaiAZz#70Y1pyUy97(e&s@dEiX1fKg+ZP9g-f3v6Hn(2^@TG?Y-8fkQIEvIW zog&6%H4l_abn*a9u=S}$O4EC1!pn-y{z);)3m_2{xNil%{Zb9AQf(ga#9d?*bf-%v ztV&}UzE%lZ6(V`ZK@dfy8LX~#6+OHgEQQpLNN}g)cI>A(al(e57Gn5tez$PPf%b^Q z#yz(lbR`BG$w#DFwFSxbebGOjkX*%?VI@4ssWUfh=~RcH0_&6#ZIX$C+ZsL2;7R=Ux_< zptK_tAj;PnP*8fJ^m30_L{=Dt;b0>+>cEVH0Y`0NR8?*c3J7`y{ zmSa5t_a?jnT!+NU6R=glnxeDHT7sqokK#E>DwLd}gfLY3Zfvf&;P9#Y!jrBz3~{w2 z$bS=Dq^~N@q3GmxeK;qF54de>thfA_wZt*%vPv!WYnS3Y&1QSQIoaA+TM=sF<}q8@ zZ<*o)`>e-D=r$z6s@cS0%Xk#h0ps%Qn}lsZs!1SO9{7|-T@m*@|A^j%z*VI8!M^qkTt2#o~< z3gNhvYjy>G_(?jSJB95+LXir>?YQ?EsH7&&?qWN93RvTV`>yd{U{FX*j4)#o$WR2w znbIebPdHH`p>s8Hr)Tvtbi_N*uj)50RM`dmbWn^@@z@&V32{|qR?884W_KTgG0 z#p|STh7v+i`p*CiCd^VetAI%LzRP<0b)aHHY@J*Uc(>!80w`%Aaa20{Z{K;c%_v{C IuiG#D4<-+INdN!< diff --git a/py/biopython_modified_bgzf.py b/py/biopython_modified_bgzf.py old mode 100755 new mode 100644 diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 15d2d7f..4c8ae12 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -16,13 +16,14 @@ import gzip import numpy as np import argparse -import pathlib import sys +import pathlib import pickle import matplotlib.pyplot as mpl # enables import from neighboring package -sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))) +print(pathlib.Path(__file__).resolve().parents[1]) +sys.path.append(pathlib.Path(__file__).resolve().parents[1]) from py.probability import DiscreteDistribution From 95cc09f7969f88cfed36e73703daf66b0c617f7a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 17:33:35 -0500 Subject: [PATCH 205/323] May have finally fixed import issue --- utilities/genSeqErrorModel.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 4c8ae12..7b37331 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -22,12 +22,14 @@ import matplotlib.pyplot as mpl # enables import from neighboring package -print(pathlib.Path(__file__).resolve().parents[1]) -sys.path.append(pathlib.Path(__file__).resolve().parents[1]) +# print(pathlib.Path(__file__).resolve().parents[1] / 'py') +sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) +print(sys.path) from py.probability import DiscreteDistribution + def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): init_smooth = 0. prob_smooth = 0. From 63e24fa8f6071dcdb3913808ac959e275cb4f93e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 17:44:43 -0500 Subject: [PATCH 206/323] May have finally fixed import issue --- utilities/genSeqErrorModel.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 7b37331..a69986d 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -17,14 +17,12 @@ import numpy as np import argparse import sys -import pathlib import pickle import matplotlib.pyplot as mpl # enables import from neighboring package # print(pathlib.Path(__file__).resolve().parents[1] / 'py') -sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) -print(sys.path) +sys.path.append("..") from py.probability import DiscreteDistribution From b4138c6100cc30af8c5ef5637e8b21171ab4e685 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 17:55:42 -0500 Subject: [PATCH 207/323] Trying yet another fix --- py/__init__.py | 0 py/__pycache__/__init__.cpython-37.pyc | Bin 146 -> 0 bytes utilities/__init__.py | 0 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 py/__init__.py delete mode 100644 py/__pycache__/__init__.cpython-37.pyc delete mode 100644 utilities/__init__.py diff --git a/py/__init__.py b/py/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/py/__pycache__/__init__.cpython-37.pyc b/py/__pycache__/__init__.cpython-37.pyc deleted file mode 100644 index 38eacc9cb4c82242ca58224d052d210dc94e6ebf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146 zcmZ?b<>g`kg3l`b@gVv!h=2h`Aj1KOi&=m~3PUi1CZpdI zla*hbkroqBnVgYWlp9c#pOu Date: Tue, 20 Oct 2020 19:21:35 -0500 Subject: [PATCH 208/323] Trying yet another fix, again --- utilities/genSeqErrorModel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index a69986d..aa8f197 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -21,10 +21,10 @@ import matplotlib.pyplot as mpl # enables import from neighboring package -# print(pathlib.Path(__file__).resolve().parents[1] / 'py') -sys.path.append("..") +sys.path.append(os.path.dirname(os.path.abspath(__file__))) from py.probability import DiscreteDistribution +print(DiscreteDistribution) From 8bac60857cb80c84d71328165d490178fd823f80 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 19:35:41 -0500 Subject: [PATCH 209/323] Trying yet another fix, again, again --- py/SequenceContainer.py | 2 +- utilities/genSeqErrorModel.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 3d2b1a8..2ae0714 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -8,7 +8,7 @@ from Bio.Seq import Seq from py.probability import DiscreteDistribution, poisson_list -from py import CigarString +from py.neat_cigar import CigarString """ Constants needed for analysis diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index aa8f197..225b8f5 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -22,6 +22,7 @@ # enables import from neighboring package sys.path.append(os.path.dirname(os.path.abspath(__file__))) +print("path {}".format(os.path.dirname(os.path.abspath(__file__)))) from py.probability import DiscreteDistribution print(DiscreteDistribution) From e633979603a4d246aa187e2b91819bcb7242e3b2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 20 Oct 2020 19:55:25 -0500 Subject: [PATCH 210/323] Another another attempt to resolve import issue --- py/__pycache__/probability.cpython-37.pyc | Bin 4264 -> 0 bytes utilities/genSeqErrorModel.py | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 py/__pycache__/probability.cpython-37.pyc diff --git a/py/__pycache__/probability.cpython-37.pyc b/py/__pycache__/probability.cpython-37.pyc deleted file mode 100644 index dff090d204ac2287ef5662123b1a1c2971cd1323..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4264 zcmai1&2Jn@6|buPoc7q6c)hWmgfI(%-C1p{B)~3M#v78&5)e2cVX-vws@0xqkJ~fT zJ+5viw$&qq927@lMLu0lq%EC?OgaamS&^=+JY-EzdU68ggyi>FqxuwUvz7Mge_Z<6?|!@e?S?3( zT0tx$8Dyc~jnb^JRhaFlxW#ECeMK$%`gma&{2aLLcH0heMRcHhZ(CaCRzf51LI zKQMCCa$}yo#|8p2?^x*)aEi>ecbPt5v1-Y%{D!u?%kD-EMC(w$ym zsUU8Lh0zV;hN%PwHSOM>-;1O!X$X)0#FUGkXUjJh*FH)^m9A|i>E_1ToxRp(pn7*y zvK6+nbS(~p>{2_7RT#*0t-rU{SIK&?9(AK^Z=t_e%+rp1oZU}0{P9`!LsYPQT1Cd3 zDmVEwuX2|wf=`PY$G>CLd=)JrBcuQ&6=_KGA#WPek~Uu7l#X;!S{emjG4nx`ws1Qk z%1lM;J6V*(D}}utrPy}M8m&HslHQ+`q@Mv1cze9Es-YAI91jN^9B|GuAyMZnH*@A2 znVDHM?tnjLhb*%@Ox?ctufm%rInPgtFI=(ivoJoaE!`fam;>onyZe+vdH}+_cSsv&6#X zg2xSBc(BHi+2}q+R`bkTBC=>Dz5eo>v?eLA+5VMRZE(Sd^+lQQFD!MFR?tnCA&h75 zUmKsj+R&7D)=rO@(naYL=M{Do zgD11bRAHuJcSD`S2Gs@H<ov4^Xs`0Kyk_iw;eX=o82)4nM6frI(k~%{ zX|pYmr{uGx3~B{QAdx}Ol39wCXT07p;jl7wa+CVzaK?AANNEmq=<>9V?_;d*-zF_& z5RC7i|C|l#fyetJB#}eV`#XeyU4R@q6;&hYp5CqG9if_;7#b4Jf6F`)0|W&_0n(!o zfNjAc%ror>*p^MQo@b-Sp&HfWw^1V^73$$=E+~G>&fKAkvXUD|h;`=lSWQmWikilL zG@EF9Qj@4QJav{@2}X!!V6sWCaHs@`)mNzNEy@Uciuj?N`Zgr^d%C-(9-Z{AjD@QO zS1(_v4Fm6Y!@C%tol(VPrC%Iv^q3Bk_UM0s zAo*i)$PNXb=0e7#XyXAWN%Ip#YSL=+$9(teIeH``j{$FaaUc%)ke(Nwp5lNbe#qh9 z;fu(dX)k$ol|5pQ_=eCSDV~qK{J?l5;P+hwscvqREr=8h@?#yY{_x-WVG4kNWaTK* ze;@$=%1H#PpIjpVz`uk89nd*O|hM~TQd4&<~_7NB+?S@bk8x_0*Z&Z!q{!Zq1gWkFfifMHF8v(h-DCp`??!+~z z)0ovq8vCSrKZ(*biS@Wwxu6$LaqK1OjrA#NrI$p6ZRXGKSgRcEQk}wRa+bYlOsOyJ zX!~SG4O;_7eHl&q&}x|^QmCCy!)!VoUx&!*8a2L;tm!-$HPJoewsg;TsQWr)ns2Mm zA2mXAX*S?f7tyVabP>!-aqcu%L^j7qr|Gn?2JIsF5}*Yj=>ao@i#pH*97lko$ae%d zKu%=%909;Au*wp#27*6hcM-q^!vf3;12Z><7T{|k95Mkow4XzGD{a(u>l~XI!}|NH z0OZh;4uKpiS&|KGBxmBjD>GxF~1qy*9;mq=+AzRkahxQQR(@oxTe1`|DBD)^=NEjH%Z}# zlxdhxj@9UyyJ$}@BV#&ps3KCJuQ?OZ#R6gllIYv6#%pjFGyIG=E9TIGFTL+!PNS;c zMNv8^dXvIJ2-e>#4U^)Q!qiv%292WUERC0}M=wy`{fkbbaF Date: Wed, 21 Oct 2020 11:02:29 -0500 Subject: [PATCH 211/323] Updated genSeqErrorModel.py to fix import --- utilities/genSeqErrorModel.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 0c3bd15..f62965a 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -23,10 +23,8 @@ # enables import from neighboring package sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) -print("path {}".format(str(pathlib.Path(__file__).resolve().parents[1]))) from py.probability import DiscreteDistribution -print(DiscreteDistribution) def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): From f5d6a02bbf191c36350ec328440ab8f8e9cf43b9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 14 Oct 2020 12:33:03 -0500 Subject: [PATCH 212/323] A couple of small changes to some files --- py/SequenceContainer.py | 2 +- py/__pycache__/__init__.cpython-37.pyc | Bin 0 -> 146 bytes py/__pycache__/ref_func.cpython-37.pyc | Bin 0 -> 4769 bytes 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 py/__pycache__/__init__.cpython-37.pyc create mode 100644 py/__pycache__/ref_func.cpython-37.pyc diff --git a/py/SequenceContainer.py b/py/SequenceContainer.py index 2ae0714..4119064 100644 --- a/py/SequenceContainer.py +++ b/py/SequenceContainer.py @@ -596,7 +596,7 @@ def random_mutations(self): sys.exit(1) else: # alter reference sequence - self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2],).tomutable() + \ + self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2]).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) diff --git a/py/__pycache__/__init__.cpython-37.pyc b/py/__pycache__/__init__.cpython-37.pyc new file mode 100644 index 0000000000000000000000000000000000000000..693fb8059cd93cd4ba44f2a2db43a537eccac44d GIT binary patch literal 146 zcmZ?b<>g`k0*62L@gVv!h=2h`Aj1KOi&=m~3PUi1CZpdI zla*hbkroqBnVgYWlp9c#pOuuO&1Wgb&?-P6_A z@CUPN1-vuj#);x066wJJ-EYksfE zsD|GJUK{Tc-uQEHr8d+Kv;hVk=#p*fLnDDXbJ_tDFG-W@i8iO|dyHvW%L8(Tl3O3k zp+1sBX`r{YfstSuoxJ#`%%NoN=>xN$B<8aAo*d+o9Hy50iGD>HHEd154V8#qAT& zGO$(IQDsM!^QxRr>?D6u8@TkH)wtU+#2*uv+utIdF?688J)tEI9(ztpT)cM6Jb?YZ z{+gDU!~B7Uxfs_p>24N=MP8sbRW4BrEY*~y1*}OCZ;87DyMHGs49i%la#G%B@w;lI zVp0Nk;y{y=NqLXWk4L(qC1tXL7d!es6TeDIvw`Iv#g*B6KnZRd=7tgu_TyROi!`rtljw2-}q?^cNNuD)-pA-O`WFoLzXa zHK;rn`^{=~IyGgm<)?ZSr{;D;ZlqQaw}P&p=C(x;%G8Xu{V>hN+ucB>263#$Hds8( zHM>#lr$&4$POVt-Xh){G_eCJlx7FQ=H&O@V^KKCO7{u>(Q=sM|yHyUE=iikG-ri|A^ zEZ_@mKctDo>)W^1$*9&&*j(7YmFCrg*THh2EB-!+#vI*blX#qrqUJCc&onEl#{qTN zDZHj$R4pc>M+e7ZPvTn!_epRZR@P^sZ1KZ)i&Xx8DQ9n8NZbQ2DcN&;iv$LJOKh+h=9Z#JCh5yhdT}}$Q4c~30@r9;5guv z;H-*I$99>LB>+W%7vM&PWTb-^<~8N2XOiM@B60B)=Cqcs zVB=HO(}a%GkG7IMy-(M)wtD#F#|9umr}f}dO5-2;A}PYc&A|j*dKzFinM{!0WP(-$ z6taL0ooXG1Q9kLPm8FcI$?WOqKQk!Fso``2prm;%YJh+{Yg!0E;>Yf51$PzPzl>~{ zfepG?MUB=u*RiP9|DCdEfF@^nfxg&(04~jXUypy!o$MU6^fm)`Zcz(A=--ef#aB{$ zIAwbV*6=M@48F4AU&-VUYoF<%J;-)DJVpGB3t5~Cteet8rz?}$*L!~k_>SfH{0Z&Q z2HM&FLNbZbo*7IfQ=}P`_SV=p#6_|YyETzak>tM7yGTK4--v&PS)LdkAAvYvegxwA zq}Wk??mb?uDyYSFWC| zT(7-dTUo1BYV}L!Ys;74ti4frXJz?N6gsDj=DW<56LQ|UCL7)&`UPfCxvT=iA3QTSL;xQ6AMk1Eqmxv|eMOA5TL_yOR zl=Gyf-w&jC97V(^6$>avckZj$#DW5> zXN3qwtq5!Fw}UA3rZyTk0yQVVKXKxeg({?E?C^3A{0E1;E>g3P@_;$2H#O($3?G`;LPjK zL7w{0=oUlxSi;CnI#BeZ)ujVP%=iW}hd>*cqf9X;wM{nElN_?iJBbnBkp|b5Bb&(m z41@)%|88QzRjwfKv4^<>$^=coKf(pi!EwxvEq>6(H>)p>OK>4ul9WYRp(?4oaRk{f z!KtiKre`A4Gq^+J_G{9Wg#;l(1&wnEGsOhqCqZrrfI=eub8}rExCji2M>Ze_REaf$ z003YaqrsZuqSpHj#-K3cNt#Vr&1Mz(C9+7&=+dCne+`nV&wDQ+C|JWX0L7fsB*6ncAl~}oOt=Opn5-d%3q!GcI!o)iK`bj#tAbM(a6gnmEAV** z?)*ZnGCEHHfeZsI?2`fpg$4=>c3<|xoh@Hv$sL^ii(Qd5Ldz(%svuX|p&SbeSF23C z3U%Y#1-U7m?`wEt@@MRv_MS6f3HycK!#>35h{W>z%?H%bA z@I5pz)mvf8TB1UtPm!p8_06<^Dd1M7*3rw?#=;7hRJO`GM=ecy?1(k^DYV7})|yK4 zC{?5cv8>X==LrGe&(rYtBD~mAEoF8VeDOW>Iogk3gCBE-yV^yGWNz#)FXPU}5}aJl z;1^c^Yw#VMTb%ZJ_^+AR9CtZTw5nT***m?a^`_S}sVAm15@U}&hAZqmC3Oy^l(%vJ zBrbUs(mU%Rjtd(Kcq!R?(2frtvZFh;_qM@F(92fMy_2R+0J zk@Fy4k(hO41tjN9jFgNSMfh1ft`(X)0@p)Hw?MCSSjob3N%&p=W&@4X#e1;YjvoT3 z^!Sl${7V=Vp9Ud6r0ZE3(RD_jMw#OAA*aY@R8)Rkr`Rp%51^{Pda=qbR^2QwQW=s$ zElOiN`}H7N09vRdNL}4j09M|sx<6pv)99c;G<6oYBEHl0&%u*3EJjdQPtkB*bl-8G F_zxXlT_*ql literal 0 HcmV?d00001 From 3ea84e66b18d655729099704d16fe766f71a7426 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 27 Oct 2020 13:16:01 -0500 Subject: [PATCH 213/323] Update README.md --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 6668a5e..891d36b 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,6 @@ NEAT-genReads is a fine-grained read simulator. GenReads simulates real-looking This is an in-progress v2.0 of the software. For a previous stable release please see: [genReads1](https://github.com/zstephens/genReads1) - -***PLEASE NOTE: The module "pysam" does not work on Windows OS. If you are using a windows system and wish to input a BAM file, you will first have to use samtools to convert the BAM to a SAM file.**** - To cite this work, please use: > Stephens, Zachary D., Matthew E. Hudson, Liudmila S. Mainzer, Morgan Taschuk, Matthew R. Weber, and Ravishankar K. Iyer. "Simulating next-generation sequencing datasets from empirical mutation and sequencing models." PloS one 11, no. 11 (2016): e0167047. From 201eb7f865691fd1910fa817e54acb8026fbc8e1 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 27 Oct 2020 13:29:54 -0500 Subject: [PATCH 214/323] Update README.md --- utilities/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilities/README.md b/utilities/README.md index d5f425c..590bfe1 100644 --- a/utilities/README.md +++ b/utilities/README.md @@ -33,7 +33,7 @@ python computeGC.py \ The main function in this file will save a pickle (.p) in the location and with the name from the path the user provides with the -o command. -**Please be aware that pysam is not usable on windows, so any BAM file will need to be turned into a SAM file using samtools beforehand. +**Please be aware that pysam is not usable on Windows, so any BAM file will need to be turned into a SAM file using samtools beforehand.** To convert a BAM file to a SAM file using samtools, use the following command: From 49e6574e4405272b6789f2b5ee7483fb2a36e789 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 9 Nov 2020 10:18:10 -0600 Subject: [PATCH 215/323] Create __init__.py --- py/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 py/__init__.py diff --git a/py/__init__.py b/py/__init__.py new file mode 100644 index 0000000..9107771 --- /dev/null +++ b/py/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Nov 9 09:52:13 2020 + +@author: membry2 +""" + From be4351c3e032ebeffe4187b69965f62077742524 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 9 Nov 2020 10:28:25 -0600 Subject: [PATCH 216/323] added init files --- py/__init__.py | 2 +- utilities/__init__.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 utilities/__init__.py diff --git a/py/__init__.py b/py/__init__.py index 9107771..af1027a 100644 --- a/py/__init__.py +++ b/py/__init__.py @@ -2,6 +2,6 @@ """ Created on Mon Nov 9 09:52:13 2020 -@author: membry2 +@author: membry """ diff --git a/utilities/__init__.py b/utilities/__init__.py new file mode 100644 index 0000000..1d51685 --- /dev/null +++ b/utilities/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Nov 9 10:27:36 2020 + +@author: membry +""" + From 6d6b0b9f9b55584c48c83dd7607610681d1bce9b Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 9 Nov 2020 10:42:17 -0600 Subject: [PATCH 217/323] Create __init__.py --- py/__init__.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 py/__init__.py diff --git a/py/__init__.py b/py/__init__.py new file mode 100644 index 0000000..69cb74e --- /dev/null +++ b/py/__init__.py @@ -0,0 +1,7 @@ +# -*- coding: utf-8 -*- +""" +Created on Mon Nov 9 10:41:07 2020 + +@author: membry2 +""" + From 6b767418dabb7ad4e97c1e98b2a7e579a94b6629 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 9 Nov 2020 10:52:00 -0600 Subject: [PATCH 218/323] renamed folder from py to python --- bacterial_genreads_wrapper.py | 2 +- gen_reads.py | 14 +++++++------- merge_jobs.py | 2 +- {py => python}/SequenceContainer.py | 4 ++-- {py => python}/__init__.py | 0 {py => python}/biopython_modified_bgzf.py | 0 {py => python}/input_checking.py | 0 {py => python}/neat_cigar.py | 0 {py => python}/output_file_writer.py | 2 +- {py => python}/probability.py | 0 {py => python}/ref_func.py | 0 {py => python}/vcf_func.py | 0 utilities/compute_fraglen.py | 8 ++++---- utilities/compute_gc.py | 8 ++++---- utilities/genSeqErrorModel.py | 10 +++++----- utilities/gen_mut_model.py | 2 +- utilities/plotMutModel.py | 4 ++-- utilities/validateFQ.py | 2 +- utilities/vcf_compare_OLD.py | 2 +- 19 files changed, 30 insertions(+), 30 deletions(-) rename {py => python}/SequenceContainer.py (99%) rename {py => python}/__init__.py (100%) rename {py => python}/biopython_modified_bgzf.py (100%) rename {py => python}/input_checking.py (100%) rename {py => python}/neat_cigar.py (100%) rename {py => python}/output_file_writer.py (99%) rename {py => python}/probability.py (100%) rename {py => python}/ref_func.py (100%) rename {py => python}/vcf_func.py (100%) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index ea538f6..e48f5b4 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -213,7 +213,7 @@ def extract_names(reference: str) -> list: def main(): - parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.py') + parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.python') parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") diff --git a/gen_reads.py b/gen_reads.py index 9065a14..44ed525 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -2,7 +2,7 @@ # encoding: utf-8 """ //////////////////////////////////////////////////////////////////////////////// /// /// - /// gen_reads.py /// + /// gen_reads.python /// /// VERSION 2.0: HARDER, BETTER, FASTER, STRONGER! /// /////// ////// /// Variant and read simulator for benchmarking NGS workflows /// @@ -25,12 +25,12 @@ import argparse import pathlib -from py.input_checking import check_file_open, is_in_range -from py.ref_func import index_ref, read_ref -from py.vcf_func import parse_vcf -from py.output_file_writer import OutputFileWriter, reverse_complement, sam_flag -from py.probability import DiscreteDistribution, mean_ind_of_weighted_list -from py.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model +from python.input_checking import check_file_open, is_in_range +from python.ref_func import index_ref, read_ref +from python.vcf_func import parse_vcf +from python.output_file_writer import OutputFileWriter, reverse_complement, sam_flag +from python.probability import DiscreteDistribution, mean_ind_of_weighted_list +from python.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model """ Some constants needed for analysis diff --git a/merge_jobs.py b/merge_jobs.py index 32d400e..1d50734 100644 --- a/merge_jobs.py +++ b/merge_jobs.py @@ -71,7 +71,7 @@ def catBams(l,outName,samtools_exe): ##################################### def main(): - parser = argparse.ArgumentParser(description='merge_jobs.py') + parser = argparse.ArgumentParser(description='merge_jobs.python') parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* input prefix: [prefix_1] [prefix_2] ...") parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") parser.add_argument('-s', type=str, required=True, metavar='', help="* /path/to/samtools") diff --git a/py/SequenceContainer.py b/python/SequenceContainer.py similarity index 99% rename from py/SequenceContainer.py rename to python/SequenceContainer.py index 4119064..1f4d044 100644 --- a/py/SequenceContainer.py +++ b/python/SequenceContainer.py @@ -7,8 +7,8 @@ import numpy as np from Bio.Seq import Seq -from py.probability import DiscreteDistribution, poisson_list -from py.neat_cigar import CigarString +from python.probability import DiscreteDistribution, poisson_list +from python.neat_cigar import CigarString """ Constants needed for analysis diff --git a/py/__init__.py b/python/__init__.py similarity index 100% rename from py/__init__.py rename to python/__init__.py diff --git a/py/biopython_modified_bgzf.py b/python/biopython_modified_bgzf.py similarity index 100% rename from py/biopython_modified_bgzf.py rename to python/biopython_modified_bgzf.py diff --git a/py/input_checking.py b/python/input_checking.py similarity index 100% rename from py/input_checking.py rename to python/input_checking.py diff --git a/py/neat_cigar.py b/python/neat_cigar.py similarity index 100% rename from py/neat_cigar.py rename to python/neat_cigar.py diff --git a/py/output_file_writer.py b/python/output_file_writer.py similarity index 99% rename from py/output_file_writer.py rename to python/output_file_writer.py index 2d34284..0c80d9d 100644 --- a/py/output_file_writer.py +++ b/python/output_file_writer.py @@ -9,7 +9,7 @@ from Bio.bgzf import * import pathlib -# from py.biopython_modified_bgzf import BgzfWriter +# from python.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 diff --git a/py/probability.py b/python/probability.py similarity index 100% rename from py/probability.py rename to python/probability.py diff --git a/py/ref_func.py b/python/ref_func.py similarity index 100% rename from py/ref_func.py rename to python/ref_func.py diff --git a/py/vcf_func.py b/python/vcf_func.py similarity index 100% rename from py/vcf_func.py rename to python/vcf_func.py diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index 950f6d8..f1807fe 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -1,10 +1,10 @@ # # -# Compute Fragment Length Model for gen_reads.py -# compute_fraglen.py +# Compute Fragment Length Model for gen_reads.python +# compute_fraglen.python # # -# Usage: samtools view normal.bam | python compute_fraglen.py +# Usage: samtools view normal.bam | python compute_fraglen.python # # # Upgraded 5/6/2020 to match Python 3 standards and refactored for easier reading @@ -149,7 +149,7 @@ def main(): :return: None """ - parser = argparse.ArgumentParser(description="compute_fraglen.py") + parser = argparse.ArgumentParser(description="compute_fraglen.python") parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 895b780..97b9210 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -1,12 +1,12 @@ # # -# compute_gc.py -# Compute GC and coverage model for gen_reads.py +# compute_gc.python +# Compute GC and coverage model for gen_reads.python # # Takes output file from bedtools genomecov to generate GC/coverage model # # Usage: bedtools genomecov -d -ibam input.bam -g reference.fa > genomeCov.dat -# python compute_gc.py -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p +# python compute_gc.python -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p # # # Updated to Python 3 standards @@ -122,7 +122,7 @@ def main(): -w is the sliding window length. The default is 50, but you can declare any reasonable integer :return: None """ - parser = argparse.ArgumentParser(description='compute_gc.py') + parser = argparse.ArgumentParser(description='compute_gc.python') parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") parser.add_argument('-o', type=str, required=True, metavar='output prefix', diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index f62965a..c1bf13f 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -2,11 +2,11 @@ # # -# genSeqErrorModel.py -# Computes sequencing error model for gen_reads.py +# genSeqErrorModel.python +# Computes sequencing error model for gen_reads.python # # -# Usage: python genSeqErrorModel.py -i input_reads.fq -o path/to/output_name.p +# Usage: python genSeqErrorModel.python -i input_reads.fq -o path/to/output_name.p # # # Python 3 ready @@ -24,7 +24,7 @@ # enables import from neighboring package sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) -from py.probability import DiscreteDistribution +from python.probability import DiscreteDistribution def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): @@ -231,7 +231,7 @@ def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): def main(): - parser = argparse.ArgumentParser(description='genSeqErrorModel.py') + parser = argparse.ArgumentParser(description='genSeqErrorModel.python') parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") parser.add_argument('-i2', type=str, required=False, metavar='', default=None, diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 948ff18..820dc4b 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -52,7 +52,7 @@ def main(): # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq VCF_DEFAULT_POP_FREQ = 0.00001 - parser = argparse.ArgumentParser(description='gen_mut_model.py') + parser = argparse.ArgumentParser(description='gen_mut_model.python') parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-m', type=str, required=True, metavar='/path/to/mutations.vcf', diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 159b532..74cce25 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -3,7 +3,7 @@ # # a quick script for comparing mutation models # -# python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix +# python plotMutModel.python -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix # # Python 3 ready @@ -20,7 +20,7 @@ # mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] parser = argparse.ArgumentParser( - description='Plot and compare mutation models from gen_mut_model.py Usage: python plotMutModel.py -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') + description='Plot and compare mutation models from gen_mut_model.python Usage: python plotMutModel.python -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', diff --git a/utilities/validateFQ.py b/utilities/validateFQ.py index 20d0a94..e813666 100644 --- a/utilities/validateFQ.py +++ b/utilities/validateFQ.py @@ -3,7 +3,7 @@ # # A quickie tool for validating the correctness of a FASTQ file # -# python validateFQ.py read1.fq [read2.fq] +# python validateFQ.python read1.fq [read2.fq] # # Python 3 ready diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index d3c4af4..4af0d69 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -5,7 +5,7 @@ """ ************************************************** -vcf_compare.py +vcf_compare.python - compare vcf file produced by workflow to golden vcf produced by simulator From 23482948042c236f57ada2c95a6b575c328bc17f Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 9 Nov 2020 14:46:50 -0600 Subject: [PATCH 219/323] Messed with files and stuff but no major changes --- bacterial_genreads_wrapper.py | 4 ++-- gen_reads.py | 16 ++++++++-------- merge_jobs.py | 4 ++-- {python => source}/SequenceContainer.py | 4 ++-- {python => source}/__init__.py | 1 + {python => source}/biopython_modified_bgzf.py | 4 ++-- {python => source}/input_checking.py | 0 {python => source}/neat_cigar.py | 0 {python => source}/output_file_writer.py | 2 +- {python => source}/probability.py | 0 {python => source}/ref_func.py | 0 {python => source}/vcf_func.py | 0 utilities/__init__.py | 7 ------- utilities/compute_fraglen.py | 8 ++++---- utilities/compute_gc.py | 8 ++++---- utilities/genSeqErrorModel.py | 12 ++++++------ utilities/gen_mut_model.py | 6 +++--- utilities/plotMutModel.py | 6 +++--- utilities/validateBam.py | 2 +- utilities/validateFQ.py | 4 ++-- utilities/vcf_compare_OLD.py | 8 ++++---- 21 files changed, 45 insertions(+), 51 deletions(-) rename {python => source}/SequenceContainer.py (99%) rename {python => source}/__init__.py (73%) rename {python => source}/biopython_modified_bgzf.py (97%) rename {python => source}/input_checking.py (100%) rename {python => source}/neat_cigar.py (100%) rename {python => source}/output_file_writer.py (99%) rename {python => source}/probability.py (100%) rename {python => source}/ref_func.py (100%) rename {python => source}/vcf_func.py (100%) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index e48f5b4..8ec1b4c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env source import gen_reads import argparse @@ -213,7 +213,7 @@ def extract_names(reference: str) -> list: def main(): - parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.python') + parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.source') parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") diff --git a/gen_reads.py b/gen_reads.py index 44ed525..a5e1002 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -1,8 +1,8 @@ -#!/usr/bin/env python +#!/usr/bin/env source # encoding: utf-8 """ //////////////////////////////////////////////////////////////////////////////// /// /// - /// gen_reads.python /// + /// gen_reads.source /// /// VERSION 2.0: HARDER, BETTER, FASTER, STRONGER! /// /////// ////// /// Variant and read simulator for benchmarking NGS workflows /// @@ -25,12 +25,12 @@ import argparse import pathlib -from python.input_checking import check_file_open, is_in_range -from python.ref_func import index_ref, read_ref -from python.vcf_func import parse_vcf -from python.output_file_writer import OutputFileWriter, reverse_complement, sam_flag -from python.probability import DiscreteDistribution, mean_ind_of_weighted_list -from python.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model +from source.input_checking import check_file_open, is_in_range +from source.ref_func import index_ref, read_ref +from source.vcf_func import parse_vcf +from source.output_file_writer import OutputFileWriter, reverse_complement, sam_flag +from source.probability import DiscreteDistribution, mean_ind_of_weighted_list +from source.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model """ Some constants needed for analysis diff --git a/merge_jobs.py b/merge_jobs.py index 1d50734..7b98acb 100644 --- a/merge_jobs.py +++ b/merge_jobs.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env source import os import argparse @@ -71,7 +71,7 @@ def catBams(l,outName,samtools_exe): ##################################### def main(): - parser = argparse.ArgumentParser(description='merge_jobs.python') + parser = argparse.ArgumentParser(description='merge_jobs.source') parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* input prefix: [prefix_1] [prefix_2] ...") parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") parser.add_argument('-s', type=str, required=True, metavar='', help="* /path/to/samtools") diff --git a/python/SequenceContainer.py b/source/SequenceContainer.py similarity index 99% rename from python/SequenceContainer.py rename to source/SequenceContainer.py index 1f4d044..e7a4ffd 100644 --- a/python/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -7,8 +7,8 @@ import numpy as np from Bio.Seq import Seq -from python.probability import DiscreteDistribution, poisson_list -from python.neat_cigar import CigarString +from source.probability import DiscreteDistribution, poisson_list +from source.neat_cigar import CigarString """ Constants needed for analysis diff --git a/python/__init__.py b/source/__init__.py similarity index 73% rename from python/__init__.py rename to source/__init__.py index 69cb74e..d42441e 100644 --- a/python/__init__.py +++ b/source/__init__.py @@ -5,3 +5,4 @@ @author: membry2 """ +from source.probability import * \ No newline at end of file diff --git a/python/biopython_modified_bgzf.py b/source/biopython_modified_bgzf.py similarity index 97% rename from python/biopython_modified_bgzf.py rename to source/biopython_modified_bgzf.py index ee701f2..d7faf90 100644 --- a/python/biopython_modified_bgzf.py +++ b/source/biopython_modified_bgzf.py @@ -1,4 +1,4 @@ -#!/user/env/bin python +#!/user/env/bin source # Copyright 2010-2013 by Peter Cock. # All rights reserved. @@ -11,7 +11,7 @@ # ####### # 06/02/2015: ####### # - I picked out the bits and pieces of code needed ####### -# to write BAM files, removed python 3.0 compatibility ####### +# to write BAM files, removed source 3.0 compatibility ####### # ####### ########################################################################## diff --git a/python/input_checking.py b/source/input_checking.py similarity index 100% rename from python/input_checking.py rename to source/input_checking.py diff --git a/python/neat_cigar.py b/source/neat_cigar.py similarity index 100% rename from python/neat_cigar.py rename to source/neat_cigar.py diff --git a/python/output_file_writer.py b/source/output_file_writer.py similarity index 99% rename from python/output_file_writer.py rename to source/output_file_writer.py index 0c80d9d..15192ee 100644 --- a/python/output_file_writer.py +++ b/source/output_file_writer.py @@ -9,7 +9,7 @@ from Bio.bgzf import * import pathlib -# from python.biopython_modified_bgzf import BgzfWriter +# from source.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 diff --git a/python/probability.py b/source/probability.py similarity index 100% rename from python/probability.py rename to source/probability.py diff --git a/python/ref_func.py b/source/ref_func.py similarity index 100% rename from python/ref_func.py rename to source/ref_func.py diff --git a/python/vcf_func.py b/source/vcf_func.py similarity index 100% rename from python/vcf_func.py rename to source/vcf_func.py diff --git a/utilities/__init__.py b/utilities/__init__.py index 1d51685..e69de29 100644 --- a/utilities/__init__.py +++ b/utilities/__init__.py @@ -1,7 +0,0 @@ -# -*- coding: utf-8 -*- -""" -Created on Mon Nov 9 10:27:36 2020 - -@author: membry -""" - diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index f1807fe..f61ab7f 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -1,10 +1,10 @@ # # -# Compute Fragment Length Model for gen_reads.python -# compute_fraglen.python +# Compute Fragment Length Model for gen_reads.source +# compute_fraglen.source # # -# Usage: samtools view normal.bam | python compute_fraglen.python +# Usage: samtools view normal.bam | source compute_fraglen.source # # # Upgraded 5/6/2020 to match Python 3 standards and refactored for easier reading @@ -149,7 +149,7 @@ def main(): :return: None """ - parser = argparse.ArgumentParser(description="compute_fraglen.python") + parser = argparse.ArgumentParser(description="compute_fraglen.source") parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 97b9210..8f086e0 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -1,12 +1,12 @@ # # -# compute_gc.python -# Compute GC and coverage model for gen_reads.python +# compute_gc.source +# Compute GC and coverage model for gen_reads.source # # Takes output file from bedtools genomecov to generate GC/coverage model # # Usage: bedtools genomecov -d -ibam input.bam -g reference.fa > genomeCov.dat -# python compute_gc.python -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p +# source compute_gc.source -r reference.fa -i genomeCov.dat -w [sliding window length] -o output_name.p # # # Updated to Python 3 standards @@ -122,7 +122,7 @@ def main(): -w is the sliding window length. The default is 50, but you can declare any reasonable integer :return: None """ - parser = argparse.ArgumentParser(description='compute_gc.python') + parser = argparse.ArgumentParser(description='compute_gc.source') parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") parser.add_argument('-o', type=str, required=True, metavar='output prefix', diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index c1bf13f..6021cf2 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -1,12 +1,12 @@ -#!/usr/bin/env python +#!/usr/bin/env source # # -# genSeqErrorModel.python -# Computes sequencing error model for gen_reads.python +# genSeqErrorModel.source +# Computes sequencing error model for gen_reads.source # # -# Usage: python genSeqErrorModel.python -i input_reads.fq -o path/to/output_name.p +# Usage: source genSeqErrorModel.source -i input_reads.fq -o path/to/output_name.p # # # Python 3 ready @@ -24,7 +24,7 @@ # enables import from neighboring package sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) -from python.probability import DiscreteDistribution +from source.probability import DiscreteDistribution def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): @@ -231,7 +231,7 @@ def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): def main(): - parser = argparse.ArgumentParser(description='genSeqErrorModel.python') + parser = argparse.ArgumentParser(description='genSeqErrorModel.source') parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") parser.add_argument('-i2', type=str, required=False, metavar='', default=None, diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 820dc4b..23d7894 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env source # Python 3 ready @@ -52,7 +52,7 @@ def main(): # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq VCF_DEFAULT_POP_FREQ = 0.00001 - parser = argparse.ArgumentParser(description='gen_mut_model.python') + parser = argparse.ArgumentParser(description='gen_mut_model.source') parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-m', type=str, required=True, metavar='/path/to/mutations.vcf', @@ -174,7 +174,7 @@ def main(): matching_variants = matching_variants.rename(columns={0: "CHROM", 1: 'chr_start', 2: 'ID', 3: 'REF', 4: 'ALT', 5: 'QUAL', 6: 'FILTER', 7: 'INFO'}) - # Change the indexing by -1 to match python format indexing (0-based) + # Change the indexing by -1 to match source format indexing (0-based) matching_variants['chr_start'] = matching_variants['chr_start'] - 1 matching_variants['chr_end'] = matching_variants['chr_start'] diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 74cce25..0053500 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -1,9 +1,9 @@ -#!/usr/bin/env python +#!/usr/bin/env source # # a quick script for comparing mutation models # -# python plotMutModel.python -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix +# source plotMutModel.source -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix # # Python 3 ready @@ -20,7 +20,7 @@ # mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] parser = argparse.ArgumentParser( - description='Plot and compare mutation models from gen_mut_model.python Usage: python plotMutModel.python -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') + description='Plot and compare mutation models from gen_mut_model.source Usage: source plotMutModel.source -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', diff --git a/utilities/validateBam.py b/utilities/validateBam.py index f4d85fb..aff1ada 100644 --- a/utilities/validateBam.py +++ b/utilities/validateBam.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env source # Python 3 ready diff --git a/utilities/validateFQ.py b/utilities/validateFQ.py index e813666..3cc00ee 100644 --- a/utilities/validateFQ.py +++ b/utilities/validateFQ.py @@ -1,9 +1,9 @@ -#!/usr/bin/env python +#!/usr/bin/env source # # A quickie tool for validating the correctness of a FASTQ file # -# python validateFQ.python read1.fq [read2.fq] +# source validateFQ.source read1.fq [read2.fq] # # Python 3 ready diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index 4af0d69..9efa24d 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -1,11 +1,11 @@ -#!/usr/bin/env python +#!/usr/bin/env source # encoding: utf-8 # Python 3 ready """ ************************************************** -vcf_compare.python +vcf_compare.source - compare vcf file produced by workflow to golden vcf produced by simulator @@ -34,7 +34,7 @@ DESC = """%prog: vcf comparison script.""" VERS = 0.1 -PARSER = optparse.OptionParser('python %prog [options] -r -g -w ', description=DESC, +PARSER = optparse.OptionParser('source %prog [options] -r -g -w ', description=DESC, version="%prog v" + str(VERS)) PARSER.add_option('-r', help='* Reference Fasta', dest='REFF', action='store', metavar='') @@ -291,7 +291,7 @@ def condense_by_pos(list_in): if c not in ind_count: ind_count[c] = 0 ind_count[c] += 1 - # non_unique_dict = {n:[] for n in sorted(ind_count.keys()) if ind_count[n] > 1} # the python 2.7 way + # non_unique_dict = {n:[] for n in sorted(ind_count.keys()) if ind_count[n] > 1} # the source 2.7 way non_unique_dict = {} for n in sorted(ind_count.keys()): if ind_count[n] > 1: From 1ffdd44046fc00692fc235169978942b24779ec3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 23 Nov 2020 15:20:42 -0600 Subject: [PATCH 220/323] working out genSeqErrorModel.py --- py/test_write.py | 97 ++++++++++++++++++++ utilities/genSeqErrorModel.py | 168 ++++++++++++++++++++++------------ 2 files changed, 205 insertions(+), 60 deletions(-) create mode 100644 py/test_write.py diff --git a/py/test_write.py b/py/test_write.py new file mode 100644 index 0000000..72a353c --- /dev/null +++ b/py/test_write.py @@ -0,0 +1,97 @@ +#!/bin/bash/python + +import pathlib +import gzip +from timeit import default_timer as timer + + +class OutputFileWriter1: + def __init__(self, out_prefix, gzipped, fasta): + start = timer() + + if gzipped: + file = pathlib.Path(out_prefix + '.fasta.gz') + else: + file = pathlib.Path(out_prefix + '.fasta') + + if gzipped: + self.file = gzip.open(file, 'wb') + else: + self.file = open(file, 'w') + + fasta_path = pathlib.Path(fasta) + + for i in range(100): + with open(fasta_path, 'r') as file: + for line in file: + self.file.write(line) + + self.file.close() + + end = timer() + + print("It took {} seconds!".format(end-start)) + + +class OutputFileWriter2: + def __init__(self, out_prefix, gzipped, fasta): + start = timer() + + if gzipped: + self.file = pathlib.Path(out_prefix + '.fasta.gz') + else: + self.file = pathlib.Path(out_prefix + '.fasta') + + lines = [] + fasta_path = pathlib.Path(fasta) + for i in range(100): + with open(fasta_path, 'r') as file: + for line in file: + lines.append(line) + if i % 10 == 0: + if gzipped: + with gzip.open(self.file, 'wb') as f: + f.write("\n".join(lines)) + lines = [] + else: + with open(self.file, 'w') as f: + f.write("\n".join(lines)) + lines = [] + + end = timer() + + print("It took {} seconds!".format(end - start)) + + +class OutputFileWriter3: + def __init__(self, out_prefix, gzipped, fasta): + start = timer() + + if gzipped: + self.file = pathlib.Path(out_prefix + '.fasta.gz') + else: + self.file = pathlib.Path(out_prefix + '.fasta') + + lines = [] + fasta_path = pathlib.Path(fasta) + for i in range(100): + with open(fasta_path, 'r') as file: + for line in file: + lines.append(line) + + if gzipped: + with gzip.open(self.file, 'wb') as f: + f.write("\n".join(lines)) + else: + with open(self.file, 'w') as f: + f.write("\n".join(lines)) + + end = timer() + + print("It took {} seconds!".format(end - start)) + + +fasta = '/home/joshfactorial/Documents/neat_data/chr21.fasta' +OutputFileWriter1('test1', False, fasta) +OutputFileWriter2('test2', False, fasta) +# OutputFileWriter3('test3', False, fasta) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index f62965a..4024d22 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -20,6 +20,7 @@ import pathlib import pickle import matplotlib.pyplot as mpl +import pysam # enables import from neighboring package sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) @@ -27,80 +28,127 @@ from py.probability import DiscreteDistribution -def parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff): +def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): init_smooth = 0. prob_smooth = 0. print_every = 10000 #Takes a gzip or sam file and returns the simulation's average error rate, - print('reading ' + inf + '...') - if inf[-3:] == '.gz': - print('detected gzip suffix...') - f = gzip.open(inf, 'r') - else: - f = open(inf, 'r') - + print('reading ' + input_file + '...') is_sam = False - if inf[-4:] == '.sam': - print('detected sam input...') - is_sam = True + is_bam = False + is_fq = False + try: + if input_file[-3:] == '.gz': + print('detected gzip suffix...') + f = gzip.open(input_file, 'r') + is_fq = True + elif input_file[-4:] == '.bam': + print('detected bam file....') + f = pysam.AlignmentFile(input_file, 'rb') + is_bam = True + elif input_file[-4:] == '.sam': + print('detected sam input....') + f = open(input_file, 'r') + is_sam = True + else: + f = open(input_file, 'r') + is_fq = True + except FileNotFoundError: + print("Something wrong with input file.") + sys.exit(1) r_read = 0 actual_readlen = 0 q_dict = {} - while True: + if is_bam: + for read in f.fetch(): + data4 = read + data4 = data4.query_alignment_sequence + if actual_readlen == 0: + actual_readlen = len(data4) - 1 + print('assuming read length is uniform...') + print('detected read length (from first read found):', actual_readlen) + prior_q = np.zeros([actual_readlen, real_q]) + total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] + + # sanity-check readlengths + if len(data4) - 1 != actual_readlen: + print('skipping read with unexpected length...') + continue - if is_sam: - data4 = f.readline() - if not len(data4): - break - try: - data4 = data4.split('\t')[10] - except IndexError: + for i in range(len(data4) - 1): + q = data4[i] - off_q + q_dict[q] = True + prev_q = q + if i == 0: + prior_q[i][q] += 1 + else: + total_q[i][prev_q, q] += 1 + prior_q[i][q] += 1 + + r_read += 1 + if r_read % print_every == 0: + print(r_read) + if max_reads > 0 and r_read >= max_reads: break - # need to add some input checking here? Yup, probably. - else: - data1 = f.readline() - data2 = f.readline() - data3 = f.readline() - data4 = f.readline() - if not all([data1, data2, data3, data4]): - break - - if actual_readlen == 0: - if inf[-3:] != '.gz' and not is_sam: - total_size = os.path.getsize(inf) - entry_size = sum([len(n) for n in [data1, data2, data3, data4]]) - print('estimated number of reads in file:', int(float(total_size) / entry_size)) - actual_readlen = len(data4) - 1 - print('assuming read length is uniform...') - print('detected read length (from first read found):', actual_readlen) - prior_q = np.zeros([actual_readlen, real_q]) - total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] - - # sanity-check readlengths - if len(data4) - 1 != actual_readlen: - print('skipping read with unexpected length...') - continue - - for i in range(len(data4) - 1): - q = data4[i] - off_q - q_dict[q] = True - prev_q = q - if i == 0: - prior_q[i][q] += 1 - else: - total_q[i][prev_q, q] += 1 - prior_q[i][q] += 1 - - - r_read += 1 - if r_read % print_every == 0: - print(r_read) - if max_reads > 0 and r_read >= max_reads: - break f.close() + # while True: + # if is_bam: + # for read in f.fetch(): + # print(read) + # elif is_sam: + # data4 = f.readline() + # if not len(data4): + # break + # try: + # data4 = data4.split('\t')[10] + # except IndexError: + # break + # # need to add some input checking here? Yup, probably. + # else: + # data1 = f.readline() + # data2 = f.readline() + # data3 = f.readline() + # data4 = f.readline() + # if not all([data1, data2, data3, data4]): + # break + # + # if actual_readlen == 0: + # if is_fq: + # total_size = os.path.getsize(input_file) + # entry_size = sum([len(n) for n in [data1, data2, data3, data4]]) + # print('estimated number of reads in file:', int(float(total_size) / entry_size)) + # actual_readlen = len(data4) - 1 + # print('assuming read length is uniform...') + # print('detected read length (from first read found):', actual_readlen) + # prior_q = np.zeros([actual_readlen, real_q]) + # total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] + # + # # sanity-check readlengths + # if len(data4) - 1 != actual_readlen: + # print('skipping read with unexpected length...') + # continue + # + # for i in range(len(data4) - 1): + # q = data4[i] - off_q + # q_dict[q] = True + # prev_q = q + # if i == 0: + # prior_q[i][q] += 1 + # else: + # total_q[i][prev_q, q] += 1 + # prior_q[i][q] += 1 + # + # + # r_read += 1 + # if r_read % print_every == 0: + # print(r_read) + # if max_reads > 0 and r_read >= max_reads: + # break + # f.close() + # some sanity checking again... q_range = [min(q_dict.keys()), max(q_dict.keys())] if q_range[0] < 0: From 0594d2ab58a6ca2ed3f334f6b5d9c3aeab44fae9 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 24 Nov 2020 09:43:16 -0600 Subject: [PATCH 221/323] Reworked genSeqErrorModel.py --- .gitignore | 3 +- utilities/genSeqErrorModel.py | 165 ++++++++++++---------------------- 2 files changed, 60 insertions(+), 108 deletions(-) diff --git a/.gitignore b/.gitignore index 1377b78..15d3cec 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ # Ignore filetypes -*.pyc \ No newline at end of file +*.pyc +/python2env/ diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 8e80af5..50f69f7 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -21,6 +21,7 @@ import pickle import matplotlib.pyplot as mpl import pysam +from functools import reduce # enables import from neighboring package sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) @@ -31,123 +32,72 @@ def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): init_smooth = 0. prob_smooth = 0. - print_every = 10000 #Takes a gzip or sam file and returns the simulation's average error rate, print('reading ' + input_file + '...') - is_sam = False - is_bam = False - is_fq = False + is_aligned = False + lines_to_read = 0 try: - if input_file[-3:] == '.gz': - print('detected gzip suffix...') - f = gzip.open(input_file, 'r') - is_fq = True - elif input_file[-4:] == '.bam': - print('detected bam file....') - f = pysam.AlignmentFile(input_file, 'rb') - is_bam = True - elif input_file[-4:] == '.sam': - print('detected sam input....') - f = open(input_file, 'r') - is_sam = True + if input_file[-4:] == '.bam' or input_file[-4:] == '.sam': + print('detected aligned file....') + stats = pysam.idxstats(input_file).strip().split('\n') + lines_to_read = reduce(lambda x, y: x + y, [eval('+'.join(l.rstrip('\n').split('\t')[2:])) for l in stats]) + f = pysam.AlignmentFile(input_file) + is_aligned = True else: - f = open(input_file, 'r') - is_fq = True + print('detected fastq file....') + with pysam.FastxFile(input_file) as f: + for _ in f: + lines_to_read += 1 + f = pysam.FastxFile(input_file) except FileNotFoundError: - print("Something wrong with input file.") + print("Check input file. Must be fastq, gzipped fastq, or bam/sam file.") sys.exit(1) - r_read = 0 actual_readlen = 0 q_dict = {} - if is_bam: - for read in f.fetch(): - data4 = read - data4 = data4.query_alignment_sequence - if actual_readlen == 0: - actual_readlen = len(data4) - 1 - print('assuming read length is uniform...') - print('detected read length (from first read found):', actual_readlen) - prior_q = np.zeros([actual_readlen, real_q]) - total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] - - # sanity-check readlengths - if len(data4) - 1 != actual_readlen: - print('skipping read with unexpected length...') - continue + current_line = 0 + quarters = lines_to_read // 4 - for i in range(len(data4) - 1): - q = data4[i] - off_q - q_dict[q] = True - prev_q = q - if i == 0: - prior_q[i][q] += 1 - else: - total_q[i][prev_q, q] += 1 - prior_q[i][q] += 1 - - r_read += 1 - if r_read % print_every == 0: - print(r_read) - if max_reads > 0 and r_read >= max_reads: - break - f.close() + if is_aligned: + g = f.fetch() + else: + g = f - # while True: - # if is_bam: - # for read in f.fetch(): - # print(read) - # elif is_sam: - # data4 = f.readline() - # if not len(data4): - # break - # try: - # data4 = data4.split('\t')[10] - # except IndexError: - # break - # # need to add some input checking here? Yup, probably. - # else: - # data1 = f.readline() - # data2 = f.readline() - # data3 = f.readline() - # data4 = f.readline() - # if not all([data1, data2, data3, data4]): - # break - # - # if actual_readlen == 0: - # if is_fq: - # total_size = os.path.getsize(input_file) - # entry_size = sum([len(n) for n in [data1, data2, data3, data4]]) - # print('estimated number of reads in file:', int(float(total_size) / entry_size)) - # actual_readlen = len(data4) - 1 - # print('assuming read length is uniform...') - # print('detected read length (from first read found):', actual_readlen) - # prior_q = np.zeros([actual_readlen, real_q]) - # total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] - # - # # sanity-check readlengths - # if len(data4) - 1 != actual_readlen: - # print('skipping read with unexpected length...') - # continue - # - # for i in range(len(data4) - 1): - # q = data4[i] - off_q - # q_dict[q] = True - # prev_q = q - # if i == 0: - # prior_q[i][q] += 1 - # else: - # total_q[i][prev_q, q] += 1 - # prior_q[i][q] += 1 - # - # - # r_read += 1 - # if r_read % print_every == 0: - # print(r_read) - # if max_reads > 0 and r_read >= max_reads: - # break - # f.close() + for read in g: + if is_aligned: + qualities_to_check = read.query_alignment_qualities + else: + qualities_to_check = read.get_quality_array() + if actual_readlen == 0: + actual_readlen = len(qualities_to_check) - 1 + print('assuming read length is uniform...') + print('detected read length (from first read found):', actual_readlen) + prior_q = np.zeros([actual_readlen, real_q]) + total_q = [None] + [np.zeros([real_q, real_q]) for n in range(actual_readlen - 1)] + + # sanity-check readlengths + if len(qualities_to_check) - 1 != actual_readlen: + print('skipping read with unexpected length...') + continue + + for i in range(actual_readlen): + q = qualities_to_check[i] + q_dict[q] = True + prev_q = q + if i == 0: + prior_q[i][q] += 1 + else: + total_q[i][prev_q, q] += 1 + prior_q[i][q] += 1 + + current_line += 1 + if current_line % quarters == 0: + print(f'{(current_line/lines_to_read)*100:.0f}%') + if max_reads > 0 and current_line >= max_reads: + break + + f.close() # some sanity checking again... q_range = [min(q_dict.keys()), max(q_dict.keys())] @@ -258,9 +208,10 @@ def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): count_dict = {} for q in q_scores: count_dict[q] = 0 + samp_quarters = len(range(1, n_samp + 1)) // 4 for samp in range(1, n_samp + 1): - if samp % print_every == 0: - print(samp) + if samp % samp_quarters == 0: + print(f'{(samp/samp_quarters)*100:.0f}%') my_q = init_dist_by_pos[0].sample() count_dict[my_q] += 1 for i in range(1, len(init_q)): From bd0bf2fca4b4dba5c67fd8a4e79943cf568314d3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 4 Dec 2020 16:23:02 -0600 Subject: [PATCH 222/323] Minor changes --- .gitignore | 1 + source/SequenceContainer.py | 1 + source/biopython_modified_bgzf.py | 1 + source/output_file_writer.py | 5 ++++- source/test_write.py | 1 + utilities/compute_gc.py | 2 +- utilities/genSeqErrorModel.py | 7 ++----- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 15d3cec..de8c783 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ # Ignore filetypes *.pyc /python2env/ +/.ipynb_checkpoints/ \ No newline at end of file diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index e7a4ffd..43eb41a 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -10,6 +10,7 @@ from source.probability import DiscreteDistribution, poisson_list from source.neat_cigar import CigarString + """ Constants needed for analysis """ diff --git a/source/biopython_modified_bgzf.py b/source/biopython_modified_bgzf.py index d7faf90..f3fc6ac 100644 --- a/source/biopython_modified_bgzf.py +++ b/source/biopython_modified_bgzf.py @@ -29,6 +29,7 @@ def __init__(self, filename=None, mode="w", file_obj=None, compress_level=6): if "w" not in mode.lower() and "a" not in mode.lower(): raise ValueError("Must use write or append mode, not %r" % mode) if "a" in mode.lower(): + raise NotImplementedError("Append mode is not implemented yet") handle = open(filename, "ab") else: handle = open(filename, "wb") diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 15192ee..de8a5c8 100644 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -85,7 +85,8 @@ def sam_flag(string_list: list) -> int: SEQ_PACKED = {'=': 0, 'A': 1, 'C': 2, 'M': 3, 'G': 4, 'R': 5, 'S': 6, 'V': 7, 'T': 8, 'W': 9, 'Y': 10, 'H': 11, 'K': 12, 'D': 13, 'B': 14, 'N': 15} -BUFFER_BATCH_SIZE = 1000 # write out to file after this many reads +# TODO figure out an optimum batch size +BUFFER_BATCH_SIZE = 8000 # write out to file after this many reads # TODO find a better way to write output files @@ -104,6 +105,8 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g bam = pathlib.Path(out_prefix + '_golden.bam') vcf = pathlib.Path(out_prefix + '_golden.vcf.gz') + print(fq1) + print(fq2) # TODO Make a fasta-specific method self.no_fastq = no_fastq if not self.no_fastq: diff --git a/source/test_write.py b/source/test_write.py index 72a353c..aaabdf7 100644 --- a/source/test_write.py +++ b/source/test_write.py @@ -8,6 +8,7 @@ class OutputFileWriter1: def __init__(self, out_prefix, gzipped, fasta): start = timer() + self.buffer = [] if gzipped: file = pathlib.Path(out_prefix + '.fasta.gz') diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index 8f086e0..d2ef0bc 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -157,4 +157,4 @@ def main(): if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 50f69f7..109b598 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -12,19 +12,16 @@ # Python 3 ready -import os -import gzip import numpy as np import argparse import sys -import pathlib import pickle import matplotlib.pyplot as mpl import pysam from functools import reduce # enables import from neighboring package -sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) +# sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) from source.probability import DiscreteDistribution @@ -94,7 +91,7 @@ def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): current_line += 1 if current_line % quarters == 0: print(f'{(current_line/lines_to_read)*100:.0f}%') - if max_reads > 0 and current_line >= max_reads: + if 0 < max_reads <= current_line: break f.close() From d217b49454d9affefbd6aef036127f53ab19b092 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 7 Dec 2020 19:48:12 -0600 Subject: [PATCH 223/323] Wrote a new script to handle cigar strings. Still need to incorporate it into the main code, but I got the functions working --- bacterial_genreads_wrapper.py | 2 +- source/SequenceContainer.py | 29 ++- source/neat_cigar_rework.py | 358 ++++++++++++++++++++++++++++++++++ 3 files changed, 381 insertions(+), 8 deletions(-) create mode 100644 source/neat_cigar_rework.py diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 8ec1b4c..24d69b1 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -44,7 +44,7 @@ def analyze(self): manipulation to unzip the file and fix genreads horribly formatted fasta file. :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1', '--rng', '1'] gen_reads.main(args) self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 43eb41a..78711cb 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -7,6 +7,7 @@ import numpy as np from Bio.Seq import Seq +from source.neat_cigar_rework import CigarString as CigarStringNew from source.probability import DiscreteDistribution, poisson_list from source.neat_cigar import CigarString @@ -105,6 +106,7 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] + self.test = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] @@ -583,13 +585,17 @@ def random_mutations(self): # MODIFY REFERENCE STRING: INDELS for i in range(len(all_indels_ins)): rolling_adj = 0 + # TODO rework this section so that we use the new method + temp_symbol_string2 = CigarStringNew(str(len(self.sequences[i])) + "M") temp_symbol_string = ['M' for _ in self.sequences[i]] - # there's an off-by-one error somewhere in the position sampling routines.. this might fix it + # Zach's comment: there's an off-by-one error somewhere in the position sampling routines.. + # this might fix it # temp_symbol_string.append('M') for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj v_pos2 = v_pos + len(all_indels_ins[i][j][1]) - rolling_adj += len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) + indel_length = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) + rolling_adj += indel_length if all_indels_ins[i][j][1] != str(self.sequences[i][v_pos:v_pos2]): print('\nError: Something went wrong!\n', all_indels_ins[i][j], [v_pos, v_pos2], @@ -597,18 +603,27 @@ def random_mutations(self): sys.exit(1) else: # alter reference sequence + # TODO need to fix this line too self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2]).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation - d = len(all_indels_ins[i][j][2]) - len(all_indels_ins[i][j][1]) - if d > 0: - temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * d + temp_symbol_string[ + if indel_length > 0: + cigar_to_insert = CigarStringNew(str(indel_length) + 'I') + print(list(temp_symbol_string2.items())) + temp_symbol_string2.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) + print(list(temp_symbol_string2.items())) + temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length + temp_symbol_string[ v_pos2 + 1:] - elif d < 0: - temp_symbol_string[v_pos + 1] = 'D' * abs(d) + 'M' + elif indel_length < 0: + cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') + print(list(temp_symbol_string2.items())) + temp_symbol_string2.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) + print(list(temp_symbol_string2.items())) + temp_symbol_string[v_pos + 1] = 'D' * abs(indel_length) + 'M' # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): + self.test[i].append(CigarStringNew(temp_symbol_string2[j:j + self.read_len].cigar)) self.all_cigar[i].append(CigarString(list_in=temp_symbol_string[j:j + self.read_len]).get_string()) # create some data structures we will need later: diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py new file mode 100644 index 0000000..d70b5df --- /dev/null +++ b/source/neat_cigar_rework.py @@ -0,0 +1,358 @@ +import sys +from itertools import groupby +from operator import itemgetter + +class Cigar(object): + """ + This code borrowed in whole from https://github.com/brentp/cigar + + cigar is a simple library for dealing with cigar strings. the most useful + feature now is soft-masking from left or right. This allows one to adjust + a SAM record only by changing the cigar string to soft-mask a number of bases + such that the rest of the SAM record (pos, tlen, etc.) remain valid, but + downstream tools will not consider the soft-masked bases in further analysis. + >>> c = Cigar('100M') + >>> len(c) + 100 + >>> str(c) + '100M' + >>> list(c.items()) + [(100, 'M')] + >>> c = Cigar('20H20M20S') + >>> len(c) + 40 + >>> str(c) + '20H20M20S' + >>> list(c.items()) + [(20, 'H'), (20, 'M'), (20, 'S')] + >>> c.mask_left(29).cigar, c.cigar + ('20H9S11M20S', '20H20M20S') + >>> c = Cigar('10M20S10M') + >>> c.mask_left(10).cigar + '30S10M' + >>> c.mask_left(9).cigar + '9S1M20S10M' + >>> Cigar('10S').mask_left(10).cigar + '10S' + >>> Cigar('10H').mask_left(10).cigar + '10H' + >>> Cigar('10H').mask_left(11).cigar + '10H' + >>> Cigar('10H').mask_left(9).cigar + '10H' + >>> Cigar('1M10H').mask_left(9).cigar + '1S10H' + >>> Cigar('5M10H').mask_left(9).cigar + '5S10H' + >>> c = Cigar('1S1H1S5H1S5M10H') + >>> c.mask_left(9).cigar == c.cigar + True + >>> c = Cigar('1S1H1S5H1S5M10H') + >>> c.mask_right(9).cigar == c.cigar + True + >>> c.mask_right(11).cigar + '1S1H1S5H1S4M1S10H' + """ + read_consuming_ops = ("M", "I", "S", "=", "X") + ref_consuming_ops = ("M", "D", "N", "=", "X") + + def __init__(self, cigar_string): + self.cigar = cigar_string + + def items(self): + if self.cigar == "*": + yield (0, None) + raise StopIteration + cig_iter = groupby(self.cigar, lambda c: c.isdigit()) + for g, n in cig_iter: + yield int("".join(n)), "".join(next(cig_iter)[1]) + + def __str__(self): + return self.cigar + + def __repr__(self): + return "Cigar('%s')" % self + + def __len__(self): + """ + sum of MIS=X ops shall equal the sequence length. + """ + return sum(l for l, op,in self.items() \ + if op in Cigar.read_consuming_ops) + + def reference_length(self): + return sum(l for l, op in self.items() \ + if op in Cigar.ref_consuming_ops) + + def mask_left(self, n_seq_bases, mask="S"): + """ + Return a new cigar with cigar string where the first `n_seq_bases` are + soft-masked unless they are already hard-masked. + """ + cigs = list(self.items()) + new_cigs = [] + + c, cum_len = self.cigar, 0 + for i, (l, op) in enumerate(cigs): + if op in Cigar.read_consuming_ops: + cum_len += l + if op == "H": + cum_len += l + new_cigs.append(cigs[i]) + elif cum_len < n_seq_bases: + new_cigs.append(cigs[i]) + else: + # the current cigar element is split by the masking. + right_extra = cum_len - n_seq_bases + new_cigs.append((l - right_extra, 'S')) + if right_extra != 0: + new_cigs.append((right_extra, cigs[i][1])) + if cum_len >= n_seq_bases: break + else: + pass + + new_cigs[:i] = [(l, op if op in "HS" else "S") for l, op in + new_cigs[:i]] + new_cigs.extend(cigs[i + 1:]) + return Cigar(Cigar.string_from_elements(new_cigs)).merge_like_ops() + + + @classmethod + def string_from_elements(self, elements): + return "".join("%i%s" % (l, op) for l, op in elements if l !=0) + + + def mask_right(self, n_seq_bases, mask="S"): + """ + Return a new cigar with cigar string where the last `n_seq_bases` are + soft-masked unless they are already hard-masked. + """ + return Cigar(Cigar(self._reverse_cigar()).mask_left(n_seq_bases, mask)._reverse_cigar()) + + + def _reverse_cigar(self): + return Cigar.string_from_elements(list(self.items())[::-1]) + + def merge_like_ops(self): + """ + >>> Cigar("1S20M").merge_like_ops() + Cigar('1S20M') + >>> Cigar("1S1S20M").merge_like_ops() + Cigar('2S20M') + >>> Cigar("1S1S1S20M").merge_like_ops() + Cigar('3S20M') + >>> Cigar("1S1S1S20M1S1S").merge_like_ops() + Cigar('3S20M2S') + """ + + cigs = [] + for op, grps in groupby(self.items(), itemgetter(1)): + cigs.append((sum(g[0] for g in grps), op)) + + return Cigar(self.string_from_elements(cigs)) + + +class CigarString(Cigar): + """ + This adds odditional functionality to the cigar module above, to make it compatible with + the rest of the NEAT codebase + """ + + def insert_cigar_element(self, pos: int, + insertion_cigar: 'CigarString', + length: int = 0) -> None: + """ + Inserts a cigar string in either string or list format to the existing cigar string at position pos. + + :param length: If consuming spaces, length of cigar to be added + :param insertion_cigar: A cigar to insert into current cigar string + :param pos: integer position where to insert the input cigar string + :return: + """ + + if insertion_cigar is None: + print('\nError: Invalid insertion operation in CigarString\n') + sys.exit(1) + + if pos < 0 or pos >= len(self): + print('\nError: Invalid insertion position in CigarString\n') + sys.exit(1) + + try: + current_pos = 0 + previous_pos = 0 + new_element = [] + found = False + for item in self.items(): + current_pos += item[0] + if current_pos > pos and not found: + current_block = item[0] + current_index = pos - previous_pos + new_element.append((current_index, item[1])) + for insert in insertion_cigar.items(): + new_element.append(insert) + if length != 0: + new_element.append((current_block-current_index-abs(length), item[1])) + else: + new_element.append((current_block-current_index, item[1])) + found = True + else: + new_element.append(item) + previous_pos = current_pos + new_string = self.string_from_elements(new_element) + self.cigar = CigarString(new_string).merge_like_ops().cigar + except ValueError: + print('\nBug: Problem with insertion.\n') + sys.exit(1) + + def get_cigar_fragment(self, start: int, end: int) -> str: + """ + Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the + first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the + first 101 characters, it would return '20M81I'. + + :param start: start point of sequence to retrieve + :param end: end point of sequence to retrieve + :return: The sequence that spans start to end + """ + # Minus 1 because python slices don't include the end coordinate + window_size = end - start + if window_size < 0: + print(f'\nError: start and end coordinates for get_cigar_fragment ' + f'are wrong: start: {start}, end: {end}') + if start is None or end is None: + print('\nError: Invalid coordinates in get_cigar_fragment\n') + sys.exit(1) + + if start < 0 or start >= len(self): + print('\nError: Invalid start point in get_cigar_fragment\n') + sys.exit(1) + + if end > len(self) or end < 0: + print('\nError: Invalid end point in get_cigar_fragment') + sys.exit(1) + + try: + # Minus 1 because of indexing + current_pos = -1 + previous_pos = -1 + current_index = 0 + start_found = False + ret = [] + for item in self.items(): + current_pos += item[0] + current_block_size = item[0] + current_symbol = item[1] + if current_pos >= start and not start_found: + start_found = True + current_index = previous_pos + 1 + # start - current index = The index where we start relative to the start of the block + # if there are not enough items in the current block, we will consume what is left + # and move to the next block + if current_block_size - (start - current_index) >= window_size: + # If from where we start to the end of the current block is sufficient for our window, + # then the return is just everything of that symbol + ret.append((window_size, current_symbol)) + break + else: + # if there are not enough items in the current block, we will consume what is left + # and move to the next block + ret.append((current_block_size - (start - current_index), current_symbol)) + # shrink the window to account for the items we've found + window_size -= current_block_size - (start - current_index) + elif start_found: + if current_block_size >= window_size: + # If this block can cover the remaining slice, then append the end and break + ret.append((window_size, current_symbol)) + break + else: + # If we still need more, then consume this entire block + ret.append((current_block_size, current_symbol)) + # shrink the window to account for the items we've found + window_size -= current_block_size + else: + pass + + previous_pos = current_pos + + except ValueError: + print('\nBug: Problem retrieving fragment.\n') + sys.exit(1) + return Cigar.string_from_elements(ret) + + +if __name__ == '__main__': + print('testing CigarString class...') + + str1 = CigarString('50M10D7I23M') + str2 = CigarString('10I25M') + iPos = 55 + + str1.insert_cigar_element(iPos, str2) + print(str1.cigar) + assert(str1.cigar == "50M5D10I25M5D7I23M") + print("passed") + + str1 = CigarString('50M10D7I23M') + iPos = 20 + str1.insert_cigar_element(iPos, str2) + print(str1.cigar) + assert(str1.cigar == "20M10I55M10D7I23M") + print("passed") + + str1 = CigarString('11100M') + str2 = CigarString('2I') + iPos = 5785 + 1 + str1.insert_cigar_element(iPos, str2, 1) + print(str1.cigar) + assert (str1.cigar == "5786M2I5313M") + print("passed") + + str1 = CigarString('11100M') + str2 = CigarString('1D1M') + iPos = 6610 + 1 + str1.insert_cigar_element(iPos, str2, -1) + print(str1.cigar) + assert (str1.cigar == "6611M1D4489M") + print("passed") + + str1 = CigarString('10M5D10M') + # [('10', 'M'), ('5', 'D'), ('10', 'M')] + start = 0 + end = 14 + frag = str1.get_cigar_fragment(start, end) + print(frag) + assert(frag == "10M4D") + + str1 = CigarString('10M2D10M') + # [(10, 'M'), (2, 'D'), (10, 'M')] + start = 10 + end = 12 + frag = str1.get_cigar_fragment(start, end) + print(frag) + assert(frag == "2D") + print("passed") + + str1 = CigarString('10M1D10M') + # [(10, 'M'), (1, 'D'), (10, 'M')] + start = 10 + end = 12 + frag = str1.get_cigar_fragment(start, end) + print(frag) + assert(frag == "1D1M") + print("passed") + + str1 = CigarString('102M2I10000M') + start1 = 1 + end1 = 102 + frag1 = str1.get_cigar_fragment(start1, end1) + start2 = 102 + end2 = 203 + frag2 = str1.get_cigar_fragment(start2, end2) + print(frag1) + print(frag2) + assert(frag1 == "101M") + assert(frag2 == "2I99M") + + + From 5a3abcba1a9cb688bfc311324da920164cb864de Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 7 Dec 2020 19:57:49 -0600 Subject: [PATCH 224/323] Ran a couple quick tests on the new cigar string function and it works, so I commented out the old function call in SequenceContainer. --- bacterial_genreads_wrapper.py | 2 +- source/SequenceContainer.py | 27 +++++++++++++-------------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 24d69b1..8ec1b4c 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -44,7 +44,7 @@ def analyze(self): manipulation to unzip the file and fix genreads horribly formatted fasta file. :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1', '--rng', '1'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] gen_reads.main(args) self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 78711cb..c887dff 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -585,9 +585,9 @@ def random_mutations(self): # MODIFY REFERENCE STRING: INDELS for i in range(len(all_indels_ins)): rolling_adj = 0 - # TODO rework this section so that we use the new method - temp_symbol_string2 = CigarStringNew(str(len(self.sequences[i])) + "M") - temp_symbol_string = ['M' for _ in self.sequences[i]] + temp_symbol_string = CigarStringNew(str(len(self.sequences[i])) + "M") + # TODO Delete commented out lines once CigarString works 100% + # temp_symbol_string = ['M' for _ in self.sequences[i]] # Zach's comment: there's an off-by-one error somewhere in the position sampling routines.. # this might fix it # temp_symbol_string.append('M') @@ -609,22 +609,21 @@ def random_mutations(self): # notate indel positions for cigar computation if indel_length > 0: cigar_to_insert = CigarStringNew(str(indel_length) + 'I') - print(list(temp_symbol_string2.items())) - temp_symbol_string2.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) - print(list(temp_symbol_string2.items())) - temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length + temp_symbol_string[ - v_pos2 + 1:] + temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) + # TODO Delete commented out lines once CigarString works 100% + # temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length + temp_symbol_string[ + # v_pos2 + 1:] elif indel_length < 0: cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') - print(list(temp_symbol_string2.items())) - temp_symbol_string2.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) - print(list(temp_symbol_string2.items())) - temp_symbol_string[v_pos + 1] = 'D' * abs(indel_length) + 'M' + temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) + # TODO Delete commented out lines once CigarString works 100% + # temp_symbol_string[v_pos + 1] = 'D' * abs(indel_length) + 'M' # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - self.test[i].append(CigarStringNew(temp_symbol_string2[j:j + self.read_len].cigar)) - self.all_cigar[i].append(CigarString(list_in=temp_symbol_string[j:j + self.read_len]).get_string()) + self.test[i].append(temp_symbol_string.get_cigar_fragment(j, j+self.read_len)) + # TODO Delete commented out lines once CigarString works 100% + # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string[j:j + self.read_len]).get_string()) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. From 2ec7604197016162e8473129530ed4455f49f036 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 8 Dec 2020 14:25:31 -0600 Subject: [PATCH 225/323] Some testing with the fm_pos feature --- bacterial_genreads_wrapper.py | 2 +- source/SequenceContainer.py | 33 +++++++++++++---------- source/fm_pos_test.py | 50 +++++++++++++++++++++++++++++++++++ source/neat_cigar_rework.py | 7 +++++ 4 files changed, 77 insertions(+), 15 deletions(-) create mode 100644 source/fm_pos_test.py diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 8ec1b4c..24d69b1 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -44,7 +44,7 @@ def analyze(self): manipulation to unzip the file and fix genreads horribly formatted fasta file. :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1', '--rng', '1'] gen_reads.main(args) self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index c887dff..d140edf 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -587,10 +587,8 @@ def random_mutations(self): rolling_adj = 0 temp_symbol_string = CigarStringNew(str(len(self.sequences[i])) + "M") # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string = ['M' for _ in self.sequences[i]] - # Zach's comment: there's an off-by-one error somewhere in the position sampling routines.. - # this might fix it - # temp_symbol_string.append('M') + temp_symbol_string2 = ['M' for _ in self.sequences[i]] + for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj v_pos2 = v_pos + len(all_indels_ins[i][j][1]) @@ -603,7 +601,6 @@ def random_mutations(self): sys.exit(1) else: # alter reference sequence - # TODO need to fix this line too self.sequences[i] = self.sequences[i][:v_pos] + Seq(all_indels_ins[i][j][2]).tomutable() + \ self.sequences[i][v_pos2:] # notate indel positions for cigar computation @@ -611,19 +608,19 @@ def random_mutations(self): cigar_to_insert = CigarStringNew(str(indel_length) + 'I') temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length + temp_symbol_string[ - # v_pos2 + 1:] + temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ + ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] elif indel_length < 0: cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string[v_pos + 1] = 'D' * abs(indel_length) + 'M' + temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): self.test[i].append(temp_symbol_string.get_cigar_fragment(j, j+self.read_len)) # TODO Delete commented out lines once CigarString works 100% - # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string[j:j + self.read_len]).get_string()) + self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -631,15 +628,22 @@ def random_mutations(self): # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate md_so_far = 0 - for j in range(len(temp_symbol_string)): + for item in temp_symbol_string.items(): + if item[1] != 'I': + for j in range(item[0]): + self.fm_pos[i].append(md_so_far) + md_so_far += 1 + else: + pass + for j in range(len(temp_symbol_string2)): self.fm_pos[i].append(md_so_far) # fix an edge case with deletions - if 'D' in temp_symbol_string[j]: - self.fm_pos[i][-1] += temp_symbol_string[j].count('D') + if temp_symbol_string2[j] == 'D': + self.fm_pos[i][-1] += temp_symbol_string2[j].count('D') # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string[j:j + self.read_len] if 'M' in n]) + span_dif = len([n for n in temp_symbol_string2[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') + md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') # tally up all the variants we handled... count_dict = {} @@ -759,6 +763,7 @@ def sample_read(self, sequencing_model, frag_len=None): if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue if not expanded_cigar: + expanded_cigar2 = CigarStringNew(my_cigar) expanded_cigar = CigarString(string_in=my_cigar).get_list() fill_to_go = total_d - total_i + 1 if fill_to_go > 0: diff --git a/source/fm_pos_test.py b/source/fm_pos_test.py new file mode 100644 index 0000000..74a36cb --- /dev/null +++ b/source/fm_pos_test.py @@ -0,0 +1,50 @@ +from source.neat_cigar_rework import CigarString as CigarStringNew +from source.neat_cigar import CigarString +from time import time + +ploidy = 2 +start_time = time() +temp_symbol_string = CigarStringNew('10777M1I322M') +cigar_string_new_time = time() - start_time +print(f'CigarStringNew time = {cigar_string_new_time}') + +start_time = time() +temp_symbol_string2 = CigarString.string_to_list('10777M1I322M') +old_method_time = time() - start_time +print(f'String-to-list time = {old_method_time}') +fm_pos1 = [[] for _ in range(ploidy)] +fm_span1 = [[] for _ in range(ploidy)] +fm_pos2 = [[] for _ in range(ploidy)] +fm_span2 = [[] for _ in range(ploidy)] +span_dif = 0 +read_len = 101 + +for i in range(ploidy): + md_so_far = 0 + start_time = time() + for item in temp_symbol_string.items(): + if item[1] in ['M', 'D']: + for j in range(item[0]): + fm_pos1[i].append(md_so_far) + span_dif = CigarStringNew(temp_symbol_string.get_cigar_fragment(j, j + read_len)).count_elements('M') + fm_span1[i].append(fm_pos1[i][-1] + span_dif) + md_so_far += 1 + else: + pass + print(f'For new method, ploid {i}, time = {time()-start_time + cigar_string_new_time}') + + start_time = time() + for j in range(len(temp_symbol_string2)): + fm_pos2[i].append(md_so_far) + # fix an edge case with deletions + if temp_symbol_string2[j] == 'D': + fm_pos2[i][-1] += temp_symbol_string2[j].count('D') + # compute number of ref matches for each read + span_dif = len([n for n in temp_symbol_string2[j:j + read_len] if n == 'M']) + fm_span2[i].append(fm_pos2[i][-1] + span_dif) + md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') + print(f'For old method, ploid {i}, time = {time() - start_time + old_method_time}') + + +assert(fm_pos1 == fm_pos2) +assert(fm_span1 == fm_span2) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index d70b5df..dbe96e1 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -280,6 +280,13 @@ def get_cigar_fragment(self, start: int, end: int) -> str: sys.exit(1) return Cigar.string_from_elements(ret) + def count_elements(self, element: str) -> int: + count = 0 + for item in self.items(): + if item[1] == element: + count += item[0] + return count + if __name__ == '__main__': print('testing CigarString class...') From b8d1449077d9897c2cf168f87a4bb381721c76b4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 9 Dec 2020 14:07:57 -0600 Subject: [PATCH 226/323] Made significant changes to the cigar handling. May implement some more. --- bacterial_genreads_wrapper.py | 3 + source/SequenceContainer.py | 90 +++++++++-------- source/fm_pos_test.py | 39 +++++-- source/neat_cigar_rework.py | 185 ++++++++++++++++++---------------- source/probability.py | 4 +- 5 files changed, 181 insertions(+), 140 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 24d69b1..864fab5 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -8,6 +8,7 @@ import shutil import sys import copy +from time import time # from Bio import SeqIO @@ -252,4 +253,6 @@ def main(): if __name__ == '__main__': + start_time = time() main() + print(f'Finished bacterial wrapper in {time() - start_time} seconds.') \ No newline at end of file diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d140edf..9340d55 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -4,6 +4,8 @@ import bisect import pickle import sys +from time import time + import numpy as np from Bio.Seq import Seq @@ -106,7 +108,6 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] - self.test = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] @@ -587,7 +588,7 @@ def random_mutations(self): rolling_adj = 0 temp_symbol_string = CigarStringNew(str(len(self.sequences[i])) + "M") # TODO Delete commented out lines once CigarString works 100% - temp_symbol_string2 = ['M' for _ in self.sequences[i]] + # temp_symbol_string2 = ['M' for _ in self.sequences[i]] for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -608,19 +609,19 @@ def random_mutations(self): cigar_to_insert = CigarStringNew(str(indel_length) + 'I') temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% - temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ - ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] + # temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ + # ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] elif indel_length < 0: cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) # TODO Delete commented out lines once CigarString works 100% - temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' + # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - self.test[i].append(temp_symbol_string.get_cigar_fragment(j, j+self.read_len)) + self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j+self.read_len)) # TODO Delete commented out lines once CigarString works 100% - self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) + # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -628,22 +629,16 @@ def random_mutations(self): # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate md_so_far = 0 - for item in temp_symbol_string.items(): - if item[1] != 'I': - for j in range(item[0]): - self.fm_pos[i].append(md_so_far) - md_so_far += 1 - else: - pass - for j in range(len(temp_symbol_string2)): + temp_symbol_string_list = temp_symbol_string.string_to_list() + for j in range(len(temp_symbol_string_list)): self.fm_pos[i].append(md_so_far) # fix an edge case with deletions - if temp_symbol_string2[j] == 'D': - self.fm_pos[i][-1] += temp_symbol_string2[j].count('D') + if temp_symbol_string_list[j] == 'D': + self.fm_pos[i][-1] += temp_symbol_string_list[j].count('D') # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string2[j:j + self.read_len] if 'M' in n]) + span_dif = len([n for n in temp_symbol_string_list[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') + md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list.count('D') # tally up all the variants we handled... count_dict = {} @@ -709,22 +704,22 @@ def sample_read(self, sequencing_model, frag_len=None): - remove deletions that don't have enough bordering sequence content to "fill in" if error is valid, make the changes to the read data """ - r_out = [] - for r in reads_to_sample: + read_out = [] + for read in reads_to_sample: try: - my_cigar = self.all_cigar[my_ploid][r[0]] + my_cigar = self.all_cigar[my_ploid][read[0]] except IndexError: print('Index error when attempting to find cigar string.') - print(my_ploid, len(self.all_cigar[my_ploid]), r[0]) + print(my_ploid, len(self.all_cigar[my_ploid]), read[0]) if frag_len is not None: print((r_pos1, r_pos2)) print(frag_len, self.fraglen_ind_map[frag_len]) sys.exit(1) - total_d = sum([error[1] for error in r[2] if error[0] == 'D']) - total_i = sum([error[1] for error in r[2] if error[0] == 'I']) - avail_b = len(self.sequences[my_ploid]) - r[0] - self.read_len - 1 + total_d = sum([error[1] for error in read[2] if error[0] == 'D']) + total_i = sum([error[1] for error in read[2] if error[0] == 'I']) + avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted - r[3] += self.sequences[my_ploid][r[0] + self.read_len:r[0] + self.read_len + total_d] + read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] extra_cigar = [] adj = 0 @@ -734,7 +729,7 @@ def sample_read(self, sequencing_model, frag_len=None): # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors # secondarily, sort by index arranged_errors = {'D': [], 'I': [], 'S': []} - for error in r[2]: + for error in read[2]: arranged_errors[error[0]].append((error[2], error)) sorted_errors = [] for k in sorted(arranged_errors.keys()): @@ -763,13 +758,18 @@ def sample_read(self, sequencing_model, frag_len=None): if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue if not expanded_cigar: - expanded_cigar2 = CigarStringNew(my_cigar) - expanded_cigar = CigarString(string_in=my_cigar).get_list() + expanded_cigar = CigarStringNew(my_cigar).string_to_list() + # TODO delete these lines using old CigarString once it is working 100% + # expanded_cigar = CigarString(string_in=my_cigar).get_list() fill_to_go = total_d - total_i + 1 if fill_to_go > 0: try: - extra_cigar_val = CigarString( - string_in=self.all_cigar[my_ploid][r[0] + fill_to_go]).get_list()[-fill_to_go:] + # TODO delete these lines using old CigarString once it is working 100% + # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] + # + fill_to_go]).get_list()[-fill_to_go:] + extra_cigar_val = CigarStringNew(self.all_cigar[my_ploid][read[0] + + fill_to_go]).string_to_list()[-fill_to_go:] + except IndexError: # Applying the deletions we want requires going beyond region boundaries. # Skip all indel errors @@ -783,8 +783,8 @@ def sample_read(self, sequencing_model, frag_len=None): my_adj = sse_adj[e_pos] pi = e_pos + my_adj pf = e_pos + my_adj + e_len + 1 - if str(r[3][pi:pf]) == str(error[3]): - r[3] = r[3][:pi + 1] + r[3][pf:] + if str(read[3][pi:pf]) == str(error[3]): + read[3] = read[3][:pi + 1] + read[3][pf:] expanded_cigar = expanded_cigar[:pi + 1] + expanded_cigar[pf:] # weird edge case with del at very end of region. Make a guess and add a "M" if pi + 1 == len(expanded_cigar): @@ -800,21 +800,21 @@ def sample_read(self, sequencing_model, frag_len=None): # insert insertion error into read and update cigar string accordingly else: my_adj = sse_adj[e_pos] - if str(r[3][e_pos + my_adj]) == error[3]: - r[3] = r[3][:e_pos + my_adj] + error[4] + r[3][e_pos + my_adj + 1:] + if str(read[3][e_pos + my_adj]) == error[3]: + read[3] = read[3][:e_pos + my_adj] + error[4] + read[3][e_pos + my_adj + 1:] expanded_cigar = expanded_cigar[:e_pos + my_adj] + ['I'] * e_len + expanded_cigar[ e_pos + my_adj:] else: print('\nError, ref does not match alt while attempting to insert insertion error!\n') - print('---', chr(r[3][e_pos + my_adj]), '!=', error[3]) + print('---', chr(read[3][e_pos + my_adj]), '!=', error[3]) sys.exit(1) adj += e_len for i in range(e_pos, len(sse_adj)): sse_adj[i] += e_len else: # substitution errors, much easier by comparison... - if str(r[3][e_pos + sse_adj[e_pos]]) == error[3]: - r[3][e_pos + sse_adj[e_pos]] = error[4] + if str(read[3][e_pos + sse_adj[e_pos]]) == error[3]: + read[3][e_pos + sse_adj[e_pos]] = error[4] else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') sys.exit(1) @@ -822,14 +822,16 @@ def sample_read(self, sequencing_model, frag_len=None): if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - my_cigar = CigarString(list_in=relevant_cigar).get_string() + my_cigar2 = CigarStringNew.list_to_string(relevant_cigar) + # TODO delete this line once new cigar is 100% working + # my_cigar = CigarString(list_in=relevant_cigar).get_string() - r[3] = r[3][:self.read_len] + read[3] = read[3][:self.read_len] - r_out.append([self.fm_pos[my_ploid][r[0]], my_cigar, str(r[3]), str(r[1])]) + read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, str(read[3]), str(read[1])]) - # r_out[i] = (pos, cigar, read_string, qual_string) - return r_out + # read_out[i] = (pos, cigar, read_string, qual_string) + return read_out class SequencingError: diff --git a/source/fm_pos_test.py b/source/fm_pos_test.py index 74a36cb..9569f6a 100644 --- a/source/fm_pos_test.py +++ b/source/fm_pos_test.py @@ -4,7 +4,8 @@ ploidy = 2 start_time = time() -temp_symbol_string = CigarStringNew('10777M1I322M') +temp_symbol_string = CigarStringNew('10777M1I322M').string_to_list() +# temp_symbol_string = CigarStringNew('10777M1I322M') cigar_string_new_time = time() - start_time print(f'CigarStringNew time = {cigar_string_new_time}') @@ -12,6 +13,14 @@ temp_symbol_string2 = CigarString.string_to_list('10777M1I322M') old_method_time = time() - start_time print(f'String-to-list time = {old_method_time}') + +print(f'temp_symbol_string = {temp_symbol_string}') +print(f'temp_symbol_string2 = {temp_symbol_string2}') +assert(len(temp_symbol_string) == len(temp_symbol_string2)) +print('passed') +# assert(temp_symbol_string == temp_symbol_string2) +# print('passed') + fm_pos1 = [[] for _ in range(ploidy)] fm_span1 = [[] for _ in range(ploidy)] fm_pos2 = [[] for _ in range(ploidy)] @@ -22,18 +31,28 @@ for i in range(ploidy): md_so_far = 0 start_time = time() - for item in temp_symbol_string.items(): - if item[1] in ['M', 'D']: - for j in range(item[0]): - fm_pos1[i].append(md_so_far) - span_dif = CigarStringNew(temp_symbol_string.get_cigar_fragment(j, j + read_len)).count_elements('M') - fm_span1[i].append(fm_pos1[i][-1] + span_dif) - md_so_far += 1 - else: - pass + # for item in temp_symbol_string.items(): + # if item[1] in ['M', 'D']: + # for j in range(item[0]): + # fm_pos1[i].append(md_so_far) + # span_dif = CigarStringNew(temp_symbol_string.get_cigar_fragment(j, j + read_len)).count_elements('M') + # fm_span1[i].append(fm_pos1[i][-1] + span_dif) + # md_so_far += 1 + # else: + # pass + for j in range(len(temp_symbol_string)): + fm_pos2[i].append(md_so_far) + # fix an edge case with deletions + if temp_symbol_string[j] == 'D': + fm_pos2[i][-1] += temp_symbol_string[j].count('D') + # compute number of ref matches for each read + span_dif = len([n for n in temp_symbol_string[j:j + read_len] if n == 'M']) + fm_span2[i].append(fm_pos2[i][-1] + span_dif) + md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') print(f'For new method, ploid {i}, time = {time()-start_time + cigar_string_new_time}') start_time = time() + md_so_far = 0 for j in range(len(temp_symbol_string2)): fm_pos2[i].append(md_so_far) # fix an edge case with deletions diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index dbe96e1..9bea656 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -2,6 +2,7 @@ from itertools import groupby from operator import itemgetter + class Cigar(object): """ This code borrowed in whole from https://github.com/brentp/cigar @@ -61,7 +62,7 @@ def __init__(self, cigar_string): def items(self): if self.cigar == "*": - yield (0, None) + yield 0, None raise StopIteration cig_iter = groupby(self.cigar, lambda c: c.isdigit()) for g, n in cig_iter: @@ -77,12 +78,10 @@ def __len__(self): """ sum of MIS=X ops shall equal the sequence length. """ - return sum(l for l, op,in self.items() \ - if op in Cigar.read_consuming_ops) + return sum(l for l, op in self.items() if op in Cigar.read_consuming_ops) def reference_length(self): - return sum(l for l, op in self.items() \ - if op in Cigar.ref_consuming_ops) + return sum(l for l, op in self.items() if op in Cigar.ref_consuming_ops) def mask_left(self, n_seq_bases, mask="S"): """ @@ -92,7 +91,7 @@ def mask_left(self, n_seq_bases, mask="S"): cigs = list(self.items()) new_cigs = [] - c, cum_len = self.cigar, 0 + c, cum_len = self.cigar, 0 for i, (l, op) in enumerate(cigs): if op in Cigar.read_consuming_ops: cum_len += l @@ -111,17 +110,14 @@ def mask_left(self, n_seq_bases, mask="S"): else: pass - new_cigs[:i] = [(l, op if op in "HS" else "S") for l, op in - new_cigs[:i]] + new_cigs[:i] = [(l, op if op in "HS" else "S") for l, op in new_cigs[:i]] new_cigs.extend(cigs[i + 1:]) return Cigar(Cigar.string_from_elements(new_cigs)).merge_like_ops() - @classmethod def string_from_elements(self, elements): return "".join("%i%s" % (l, op) for l, op in elements if l !=0) - def mask_right(self, n_seq_bases, mask="S"): """ Return a new cigar with cigar string where the last `n_seq_bases` are @@ -129,7 +125,6 @@ def mask_right(self, n_seq_bases, mask="S"): """ return Cigar(Cigar(self._reverse_cigar()).mask_left(n_seq_bases, mask)._reverse_cigar()) - def _reverse_cigar(self): return Cigar.string_from_elements(list(self.items())[::-1]) @@ -167,7 +162,29 @@ def insert_cigar_element(self, pos: int, :param length: If consuming spaces, length of cigar to be added :param insertion_cigar: A cigar to insert into current cigar string :param pos: integer position where to insert the input cigar string - :return: + :return: None + str1 = CigarString('50M10D7I23M') + >>>str2 = CigarString('10I25M') + >>>iPos = 55 + >>>str1.insert_cigar_element(iPos, str2) + >>>assert(str1.cigar == "50M5D10I25M5D7I23M") + + >>>str1 = CigarString('50M10D7I23M') + >>>iPos = 20 + >>>str1.insert_cigar_element(iPos, str2) + >>>assert(str1.cigar == "20M10I55M10D7I23M") + + >>>str1 = CigarString('11100M') + >>>str2 = CigarString('2I') + >>>iPos = 5785 + 1 + >>>str1.insert_cigar_element(iPos, str2, 1) + >>>assert (str1.cigar == "5786M2I5313M") + + >>>str1 = CigarString('11100M') + >>>str2 = CigarString('1D1M') + >>>iPos = 6610 + 1 + >>>str1.insert_cigar_element(iPos, str2, -1) + >>>assert (str1.cigar == "6611M1D4489M") """ if insertion_cigar is None: @@ -214,6 +231,33 @@ def get_cigar_fragment(self, start: int, end: int) -> str: :param start: start point of sequence to retrieve :param end: end point of sequence to retrieve :return: The sequence that spans start to end + >>>str1 = CigarString('10M5D10M') + >>>start = 0 + >>>end = 14 + >>>frag = str1.get_cigar_fragment(start, end) + >>>assert(frag == "10M4D") + + >>>str1 = CigarString('10M2D10M') + >>>start = 10 + >>>end = 12 + >>>frag = str1.get_cigar_fragment(start, end) + >>>assert(frag == "2D") + + >>>str1 = CigarString('10M1D10M') + >>>start = 10 + >>>end = 12 + >>>frag = str1.get_cigar_fragment(start, end) + >>>assert(frag == "1D1M") + + >>>str1 = CigarString('102M2I10000M') + >>>start1 = 1 + >>>end1 = 102 + >>>frag1 = str1.get_cigar_fragment(start1, end1) + >>>start2 = 102 + >>>end2 = 203 + >>>frag2 = str1.get_cigar_fragment(start2, end2) + >>>assert(frag1 == "101M") + >>>assert(frag2 == "2I99M") """ # Minus 1 because python slices don't include the end coordinate window_size = end - start @@ -236,7 +280,6 @@ def get_cigar_fragment(self, start: int, end: int) -> str: # Minus 1 because of indexing current_pos = -1 previous_pos = -1 - current_index = 0 start_found = False ret = [] for item in self.items(): @@ -280,6 +323,7 @@ def get_cigar_fragment(self, start: int, end: int) -> str: sys.exit(1) return Cigar.string_from_elements(ret) + # TODO use this method or delete it. def count_elements(self, element: str) -> int: count = 0 for item in self.items(): @@ -287,79 +331,50 @@ def count_elements(self, element: str) -> int: count += item[0] return count + def string_to_list(self) -> list: + """ + Converts the cigar string to a full list. -if __name__ == '__main__': - print('testing CigarString class...') - - str1 = CigarString('50M10D7I23M') - str2 = CigarString('10I25M') - iPos = 55 - - str1.insert_cigar_element(iPos, str2) - print(str1.cigar) - assert(str1.cigar == "50M5D10I25M5D7I23M") - print("passed") - - str1 = CigarString('50M10D7I23M') - iPos = 20 - str1.insert_cigar_element(iPos, str2) - print(str1.cigar) - assert(str1.cigar == "20M10I55M10D7I23M") - print("passed") - - str1 = CigarString('11100M') - str2 = CigarString('2I') - iPos = 5785 + 1 - str1.insert_cigar_element(iPos, str2, 1) - print(str1.cigar) - assert (str1.cigar == "5786M2I5313M") - print("passed") - - str1 = CigarString('11100M') - str2 = CigarString('1D1M') - iPos = 6610 + 1 - str1.insert_cigar_element(iPos, str2, -1) - print(str1.cigar) - assert (str1.cigar == "6611M1D4489M") - print("passed") - - str1 = CigarString('10M5D10M') - # [('10', 'M'), ('5', 'D'), ('10', 'M')] - start = 0 - end = 14 - frag = str1.get_cigar_fragment(start, end) - print(frag) - assert(frag == "10M4D") - - str1 = CigarString('10M2D10M') - # [(10, 'M'), (2, 'D'), (10, 'M')] - start = 10 - end = 12 - frag = str1.get_cigar_fragment(start, end) - print(frag) - assert(frag == "2D") - print("passed") - - str1 = CigarString('10M1D10M') - # [(10, 'M'), (1, 'D'), (10, 'M')] - start = 10 - end = 12 - frag = str1.get_cigar_fragment(start, end) - print(frag) - assert(frag == "1D1M") - print("passed") - - str1 = CigarString('102M2I10000M') - start1 = 1 - end1 = 102 - frag1 = str1.get_cigar_fragment(start1, end1) - start2 = 102 - end2 = 203 - frag2 = str1.get_cigar_fragment(start2, end2) - print(frag1) - print(frag2) - assert(frag1 == "101M") - assert(frag2 == "2I99M") + :return: cigar string in list format. + """ + cigar_dat = [] + d_reserve = 0 + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + cigar_dat += [item[1]] * item[0] + d_reserve = 0 + return cigar_dat + @staticmethod + def list_to_string(input_list: list) -> str: + """ + Convert a cigar string in list format to a standard cigar string + :param input_list: Cigar string in list format + :return: cigar string in string format + """ + symbols = '' + current_sym = input_list[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(input_list)): + next_sym = input_list[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 + else: + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + 'D' + current_sym = next_sym[-1] + else: + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + return symbols diff --git a/source/probability.py b/source/probability.py index 9dcd44d..1cb7bb4 100644 --- a/source/probability.py +++ b/source/probability.py @@ -1,6 +1,8 @@ import random import bisect import copy +import sys + import numpy as np LOW_PROB_THRESH = 1e-12 @@ -27,7 +29,7 @@ def __init__(self, weights, values, degenerate_val=None, method='bisect'): # some sanity checking if not len(weights) or not len(values): print('\nError: weight or value vector given to DiscreteDistribution() are 0-length.\n') - exit(1) + sys.exit(1) self.method = method sum_weight = float(sum(weights)) From 02442fadb2be0e9c7438e839856a750c55f509f5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 9 Dec 2020 14:33:08 -0600 Subject: [PATCH 227/323] Fixed a bug in SequenceContainer. Runs 10x faster now, --- bacterial_genreads_wrapper.py | 2 +- source/SequenceContainer.py | 2 +- source/neat_cigar.py | 18 +++++++----------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 864fab5..d428996 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -45,7 +45,7 @@ def analyze(self): manipulation to unzip the file and fix genreads horribly formatted fasta file. :return: None """ - args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1', '--rng', '1'] + args = ['-r', str(self.reference), '-R', '101', '-o', self.name, '--fa', '-c', '1'] gen_reads.main(args) self.file = pathlib.Path().absolute() / (self.name + ".fasta.gz") diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 9340d55..c150423 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -638,7 +638,7 @@ def random_mutations(self): # compute number of ref matches for each read span_dif = len([n for n in temp_symbol_string_list[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list.count('D') + md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list[j].count('D') # tally up all the variants we handled... count_dict = {} diff --git a/source/neat_cigar.py b/source/neat_cigar.py index f6202fe..3b747f2 100644 --- a/source/neat_cigar.py +++ b/source/neat_cigar.py @@ -107,6 +107,13 @@ def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: lis :param i_string_in: input cigar string in string format :param i_list_in: input cigar string in list format :return: + + >>>str1 = '50M10D7I23M' + >>>str2 = '10I25M' + >>>iPos = 20 + >>>my_cigar = CigarString(string_in=str1) + >>>my_cigar.insert_cigar_element(iPos, i_string_in=str2) + >>>assert(my_cigar.get_string() == "20M10I55M10D7I23M") """ if i_string_in is None and i_list_in is None: @@ -123,14 +130,3 @@ def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: lis if i_list_in is not None: self.cigar_data = self.cigar_data[:pos] + i_list_in + self.cigar_data[pos:] - -if __name__ == '__main__': - print('testing CigarString class...') - - str1 = '50M10D7I23M' - str2 = '10I25M' - iPos = 20 - my_cigar = CigarString(string_in=str1) - my_cigar.insert_cigar_element(iPos, i_string_in=str2) - assert(my_cigar.get_string() == "20M10I55M10D7I23M") - print("passed") From 4b35f1b8f933f89d2c08966a8ccbfb191c6c7c2a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 10 Dec 2020 09:08:52 -0600 Subject: [PATCH 228/323] A few small updates, removing some debugging statements --- source/SequenceContainer.py | 11 ++++++----- source/output_file_writer.py | 2 -- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index c150423..4fecf2c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -13,7 +13,6 @@ from source.probability import DiscreteDistribution, poisson_list from source.neat_cigar import CigarString - """ Constants needed for analysis """ @@ -607,19 +606,20 @@ def random_mutations(self): # notate indel positions for cigar computation if indel_length > 0: cigar_to_insert = CigarStringNew(str(indel_length) + 'I') - temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, len(all_indels_ins[i][j][1])) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, + len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ # ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] elif indel_length < 0: cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') - temp_symbol_string.insert_cigar_element(v_pos+1, cigar_to_insert, indel_length) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, indel_length) # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j+self.read_len)) + self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) @@ -768,7 +768,8 @@ def sample_read(self, sequencing_model, frag_len=None): # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] # + fill_to_go]).get_list()[-fill_to_go:] extra_cigar_val = CigarStringNew(self.all_cigar[my_ploid][read[0] - + fill_to_go]).string_to_list()[-fill_to_go:] + + fill_to_go]).string_to_list()[ + -fill_to_go:] except IndexError: # Applying the deletions we want requires going beyond region boundaries. diff --git a/source/output_file_writer.py b/source/output_file_writer.py index de8a5c8..cdf2985 100644 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -105,8 +105,6 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g bam = pathlib.Path(out_prefix + '_golden.bam') vcf = pathlib.Path(out_prefix + '_golden.vcf.gz') - print(fq1) - print(fq2) # TODO Make a fasta-specific method self.no_fastq = no_fastq if not self.no_fastq: From 507df7b8672ae3f2765ff5e99a1a7d056e41ea8e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 11 Dec 2020 15:46:46 -0600 Subject: [PATCH 229/323] added some debugging around problem code --- source/SequenceContainer.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 4fecf2c..8b108bb 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -790,7 +790,14 @@ def sample_read(self, sequencing_model, frag_len=None): # weird edge case with del at very end of region. Make a guess and add a "M" if pi + 1 == len(expanded_cigar): expanded_cigar.append('M') - expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] + try: + expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] + except ValueError as e: + print(f'pi = {pi}') + print(f'expanded_cigar = {expanded_cigar}') + print("Debug") + sys.exit(1) + else: print('\nError, ref does not match alt while attempting to insert deletion error!\n') sys.exit(1) From d52d1203304120e86afbb4dd7eb32ec3c085a30e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 11 Dec 2020 21:23:06 -0600 Subject: [PATCH 230/323] changed except type, trying to debug --- source/SequenceContainer.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 8b108bb..83d8f8b 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -768,8 +768,7 @@ def sample_read(self, sequencing_model, frag_len=None): # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] # + fill_to_go]).get_list()[-fill_to_go:] extra_cigar_val = CigarStringNew(self.all_cigar[my_ploid][read[0] - + fill_to_go]).string_to_list()[ - -fill_to_go:] + + fill_to_go]).string_to_list()[-fill_to_go:] except IndexError: # Applying the deletions we want requires going beyond region boundaries. @@ -792,7 +791,7 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar.append('M') try: expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] - except ValueError as e: + except IndexError: print(f'pi = {pi}') print(f'expanded_cigar = {expanded_cigar}') print("Debug") From 2ff8631c124082d0abd6a52229ecc2e16e54abae Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Sat, 12 Dec 2020 10:33:40 -0600 Subject: [PATCH 231/323] further debugging --- source/SequenceContainer.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 83d8f8b..2cc4779 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -792,8 +792,14 @@ def sample_read(self, sequencing_model, frag_len=None): try: expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: + print(f'error = {error}') + print(f'e_pos = {e_pos}') print(f'pi = {pi}') - print(f'expanded_cigar = {expanded_cigar}') + print(f'my_adj = {my_adj}') + print(f'total_d = {total_d}') + print(f'total_i = {total_i}') + print(f'expanded_cigar = {CigarStringNew.list_to_string(expanded_cigar)}') + print(f'sorted_errors = {sorted_errors}') print("Debug") sys.exit(1) From 23f67d337994cb6eda7f2164fee5638df04b8e32 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 14 Dec 2020 09:38:27 -0600 Subject: [PATCH 232/323] pulling in changes to genSeq from py3 branch --- utilities/genSeqErrorModel.py | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 109b598..941a6e2 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -17,16 +17,17 @@ import sys import pickle import matplotlib.pyplot as mpl +import pathlib import pysam from functools import reduce # enables import from neighboring package -# sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) +sys.path.append(str(pathlib.Path(__file__).resolve().parents[1])) from source.probability import DiscreteDistribution -def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): +def parse_file(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): init_smooth = 0. prob_smooth = 0. @@ -205,10 +206,11 @@ def parse_fq(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): count_dict = {} for q in q_scores: count_dict[q] = 0 - samp_quarters = len(range(1, n_samp + 1)) // 4 + lines_to_sample = len(range(1, n_samp + 1)) + samp_quarters = lines_to_sample // 4 for samp in range(1, n_samp + 1): if samp % samp_quarters == 0: - print(f'{(samp/samp_quarters)*100:.0f}%') + print(f'{(samp/lines_to_sample)*100:.0f}%') my_q = init_dist_by_pos[0].sample() count_dict[my_q] += 1 for i in range(1, len(init_q)): @@ -243,19 +245,19 @@ def main(): help='perform some optional plotting') args = parser.parse_args() - (inf, ouf, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) - (inf2, pile_up) = (args.i2, args.p) + (infile, outfile, off_q, max_q, max_reads, n_samp) = (args.i, args.o, args.q, args.Q, args.n, args.s) + (infile2, pile_up) = (args.i2, args.p) real_q = max_q + 1 plot_stuff = args.plot q_scores = range(real_q) - if inf2 == None: - (init_q, prob_q, avg_err) = parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff) + if infile2 is None: + (init_q, prob_q, avg_err) = parse_file(infile, real_q, off_q, max_reads, n_samp, plot_stuff) else: - (init_q, prob_q, avg_err1) = parse_fq(inf, real_q, off_q, max_reads, n_samp, plot_stuff) - (init_q2, prob_q2, avg_err2) = parse_fq(inf2, real_q, off_q, max_reads, n_samp, plot_stuff) + (init_q, prob_q, avg_err1) = parse_file(infile, real_q, off_q, max_reads, n_samp, plot_stuff) + (init_q2, prob_q2, avg_err2) = parse_file(infile2, real_q, off_q, max_reads, n_samp, plot_stuff) avg_err = (avg_err1 + avg_err2) / 2. # @@ -292,11 +294,12 @@ def main(): # # finally, let's save our output model # + outfile = pathlib.Path(outfile).with_suffix(".p") print('saving model...') - if inf2 == None: - pickle.dump([init_q, prob_q, q_scores, off_q, avg_err, err_params], open(ouf, 'wb')) + if infile2 is None: + pickle.dump([init_q, prob_q, q_scores, off_q, avg_err, err_params], open(outfile, 'wb')) else: - pickle.dump([init_q, prob_q, init_q2, prob_q2, q_scores, off_q, avg_err, err_params], open(ouf, 'wb')) + pickle.dump([init_q, prob_q, init_q2, prob_q2, q_scores, off_q, avg_err, err_params], open(outfile, 'wb')) if __name__ == '__main__': From 374f7367fce8b8fbbc8cc47b17a9f11208cac393 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 14 Dec 2020 12:06:31 -0600 Subject: [PATCH 233/323] Added help formatter to argparse in all programs. --- bacterial_genreads_wrapper.py | 6 ++++-- gen_reads.py | 3 ++- utilities/compute_fraglen.py | 3 ++- utilities/compute_gc.py | 3 ++- utilities/genSeqErrorModel.py | 4 ++-- utilities/gen_mut_model.py | 3 ++- utilities/plotMutModel.py | 7 +++++-- utilities/validateFQ.py | 2 +- utilities/vcf_compare_OLD.py | 3 ++- 9 files changed, 22 insertions(+), 12 deletions(-) diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index d428996..0afcdf6 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -214,7 +214,9 @@ def extract_names(reference: str) -> list: def main(): - parser = argparse.ArgumentParser(description='bacterial_genreads_wrapper.source') + parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter, + description="Wrapper for gen_reads.py that simulates multiple generations" + "of bacteria.") parser.add_argument('-r', type=str, required=True, metavar='reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-g', type=int, required=True, metavar='generations', help="Number of generations to run") @@ -226,7 +228,7 @@ def main(): parser.add_argument('-c', type=int, required=False, default=10, metavar='coverage value', help='Target coverage value for final set of sampled fastqs') parser.add_argument('--pe', nargs=2, type=int, required=False, metavar=('', ''), default=(500, 50), - help='Paired-end fragment length mean and std') + help='Paired-end fragment length mean and std.') args = parser.parse_args() (ref_fasta, init_population_size, generations) = (args.r, args.i, args.g) diff --git a/gen_reads.py b/gen_reads.py index a5e1002..49e5621 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -48,7 +48,8 @@ def main(raw_args=None): //////////// PARSE INPUT ARGUMENTS //////////// //////////////////////////////////////////////////""" - parser = argparse.ArgumentParser(description='NEAT-genReads V2.0') + parser = argparse.ArgumentParser(description='NEAT-genReads V3.0', + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) parser.add_argument('-r', type=str, required=True, metavar='reference', help="Path to reference fasta") parser.add_argument('-R', type=int, required=True, metavar='read length', help="The desired read length") parser.add_argument('-o', type=str, required=True, metavar='output_prefix', diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py index f61ab7f..5eb6b9c 100644 --- a/utilities/compute_fraglen.py +++ b/utilities/compute_fraglen.py @@ -149,7 +149,8 @@ def main(): :return: None """ - parser = argparse.ArgumentParser(description="compute_fraglen.source") + parser = argparse.ArgumentParser(description="compute_fraglen.source", + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) parser.add_argument('-i', type=str, metavar="input", required=True, default=None, help="Sam file input (samtools view name.bam > name.sam)") parser.add_argument('-o', type=str, metavar="output", required=True, default=None, help="Prefix for output") diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py index d2ef0bc..697cdec 100644 --- a/utilities/compute_gc.py +++ b/utilities/compute_gc.py @@ -122,7 +122,8 @@ def main(): -w is the sliding window length. The default is 50, but you can declare any reasonable integer :return: None """ - parser = argparse.ArgumentParser(description='compute_gc.source') + parser = argparse.ArgumentParser(description='compute_gc.source', + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) parser.add_argument('-i', type=str, required=True, metavar='input', help="input.genomecov") parser.add_argument('-r', type=str, required=True, metavar='reference', help="reference.fasta") parser.add_argument('-o', type=str, required=True, metavar='output prefix', diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py index 941a6e2..85a6a59 100644 --- a/utilities/genSeqErrorModel.py +++ b/utilities/genSeqErrorModel.py @@ -31,7 +31,7 @@ def parse_file(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): init_smooth = 0. prob_smooth = 0. - #Takes a gzip or sam file and returns the simulation's average error rate, + # Takes a gzip or sam file and returns the simulation's average error rate, print('reading ' + input_file + '...') is_aligned = False lines_to_read = 0 @@ -229,7 +229,7 @@ def parse_file(input_file, real_q, off_q, max_reads, n_samp, plot_stuff): def main(): - parser = argparse.ArgumentParser(description='genSeqErrorModel.source') + parser = argparse.ArgumentParser(description='genSeqErrorModel.py') parser.add_argument('-i', type=str, required=True, metavar='', help="* input_read1.fq (.gz) / input_read1.sam") parser.add_argument('-o', type=str, required=True, metavar='', help="* output.p") parser.add_argument('-i2', type=str, required=False, metavar='', default=None, diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py index 23d7894..905863a 100644 --- a/utilities/gen_mut_model.py +++ b/utilities/gen_mut_model.py @@ -52,7 +52,8 @@ def main(): # if parsing a dbsnp vcf, and no CAF= is found in info tag, use this as default val for population freq VCF_DEFAULT_POP_FREQ = 0.00001 - parser = argparse.ArgumentParser(description='gen_mut_model.source') + parser = argparse.ArgumentParser(description='gen_mut_model.source', + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) parser.add_argument('-r', type=str, required=True, metavar='/path/to/reference.fasta', help="Reference file for organism in fasta format") parser.add_argument('-m', type=str, required=True, metavar='/path/to/mutations.vcf', diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py index 0053500..e94207f 100644 --- a/utilities/plotMutModel.py +++ b/utilities/plotMutModel.py @@ -19,8 +19,11 @@ # mpl.rc('text',usetex=True) # mpl.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"] -parser = argparse.ArgumentParser( - description='Plot and compare mutation models from gen_mut_model.source Usage: source plotMutModel.source -i model1.p [model2.p] [model3.p]... -l legend_label1 [legend_label2] [legend_label3]... -o path/to/pdf_plot_prefix') +parser = argparse.ArgumentParser(description='Plot and compare mutation models from gen_mut_model.source Usage: ' + 'source plotMutModel.source -i model1.p [model2.p] [model3.p]... ' + '-l legend_label1 [legend_label2] [legend_label3]... ' + '-o path/to/pdf_plot_prefix', + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* mutation_model_1.p [mutation_model_2.p] [mutation_model_3] ...") parser.add_argument('-l', type=str, required=True, metavar='', nargs='+', diff --git a/utilities/validateFQ.py b/utilities/validateFQ.py index 3cc00ee..7ce02ea 100644 --- a/utilities/validateFQ.py +++ b/utilities/validateFQ.py @@ -3,7 +3,7 @@ # # A quickie tool for validating the correctness of a FASTQ file # -# source validateFQ.source read1.fq [read2.fq] +# python validateFQ.py read1.fq [read2.fq] # # Python 3 ready diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index 9efa24d..082db97 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -35,7 +35,8 @@ VERS = 0.1 PARSER = optparse.OptionParser('source %prog [options] -r -g -w ', description=DESC, - version="%prog v" + str(VERS)) + version="%prog v" + str(VERS), + formatter_class=argparse.ArgumentDefaultsHelpFormatter,) PARSER.add_option('-r', help='* Reference Fasta', dest='REFF', action='store', metavar='') PARSER.add_option('-g', help='* Golden VCF', dest='GVCF', action='store', metavar='') From c93ee565b4aaec1e9556ef3ed7647b23e3277038 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 14 Dec 2020 12:59:32 -0600 Subject: [PATCH 234/323] Made some changes to argparse across the spectrum and refactored vcf_compare somewhat --- utilities/vcf_compare_OLD.py | 367 ++++++++++++++++++----------------- 1 file changed, 187 insertions(+), 180 deletions(-) diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py index 082db97..910c5ce 100644 --- a/utilities/vcf_compare_OLD.py +++ b/utilities/vcf_compare_OLD.py @@ -21,7 +21,7 @@ import bisect import re import numpy as np -import optparse +import argparse from Bio.Seq import Seq @@ -34,82 +34,84 @@ DESC = """%prog: vcf comparison script.""" VERS = 0.1 -PARSER = optparse.OptionParser('source %prog [options] -r -g -w ', description=DESC, - version="%prog v" + str(VERS), - formatter_class=argparse.ArgumentDefaultsHelpFormatter,) - -PARSER.add_option('-r', help='* Reference Fasta', dest='REFF', action='store', metavar='') -PARSER.add_option('-g', help='* Golden VCF', dest='GVCF', action='store', metavar='') -PARSER.add_option('-w', help='* Workflow VCF', dest='WVCF', action='store', metavar='') -PARSER.add_option('-o', help='* Output Prefix', dest='OUTF', action='store', metavar='') -PARSER.add_option('-m', help='Mappability Track', dest='MTRK', action='store', metavar='') -PARSER.add_option('-M', help='Maptrack Min Len', dest='MTMM', action='store', metavar='') -PARSER.add_option('-t', help='Targetted Regions', dest='TREG', action='store', metavar='') -PARSER.add_option('-T', help='Min Region Len', dest='MTRL', action='store', metavar='') -PARSER.add_option('-c', help='Coverage Filter Threshold [%default]', dest='DP_THRESH', default=15, action='store', - metavar='') -PARSER.add_option('-a', help='Allele Freq Filter Threshold [%default]', dest='AF_THRESH', default=0.3, action='store', - metavar='') - -PARSER.add_option('--vcf-out', help="Output Match/FN/FP variants [%default]", dest='VCF_OUT', default=False, - action='store_true') -PARSER.add_option('--no-plot', help="No plotting [%default]", dest='NO_PLOT', default=False, action='store_true') -PARSER.add_option('--incl-homs', help="Include homozygous ref calls [%default]", dest='INCL_H', default=False, - action='store_true') -PARSER.add_option('--incl-fail', help="Include calls that failed filters [%default]", dest='INCL_F', default=False, - action='store_true') -PARSER.add_option('--fast', help="No equivalent variant detection [%default]", dest='FAST', default=False, - action='store_true') - -(OPTS, ARGS) = PARSER.parse_args() - -REFERENCE = OPTS.REFF -GOLDEN_VCF = OPTS.GVCF -WORKFLOW_VCF = OPTS.WVCF -OUT_PREFIX = OPTS.OUTF -MAPTRACK = OPTS.MTRK -MIN_READ_LEN = OPTS.MTMM -BEDFILE = OPTS.TREG -DP_THRESH = int(OPTS.DP_THRESH) -AF_THRESH = float(OPTS.AF_THRESH) - -VCF_OUT = OPTS.VCF_OUT -NO_PLOT = OPTS.NO_PLOT -INCLUDE_HOMS = OPTS.INCL_H -INCLUDE_FAIL = OPTS.INCL_F -FAST = OPTS.FAST +parser = argparse.ArgumentParser('source %prog [options] -r -g -w ', + description=DESC, + version="%prog v" + str(VERS), + formatter_class=argparse.ArgumentDefaultsHelpFormatter, ) + +parser.add_argument('-r', help='* Reference Fasta', dest='reff', action='store', metavar='') +parser.add_argument('-g', help='* Golden VCF', dest='golden_vcf', action='store', metavar='') +parser.add_argument('-w', help='* Workflow VCF', dest='workflow_vcf', action='store', metavar='') +parser.add_argument('-o', help='* Output Prefix', dest='outfile', action='store', metavar='') +parser.add_argument('-m', help='Mappability Track', dest='map_track', action='store', metavar='') +parser.add_argument('-M', help='Maptrack Min Len', dest='map_track_min_len', action='store', metavar='') +parser.add_argument('-t', help='Targetted Regions', dest='target_reg', action='store', metavar='') +parser.add_argument('-T', help='Min Region Len', dest='min_reg_len', action='store', metavar='') +parser.add_argument('-c', help='Coverage Filter Threshold [%default]', dest='dp_thresh', default=15, action='store', + metavar='') +parser.add_argument('-a', help='Allele Freq Filter Threshold [%default]', dest='af_thresh', default=0.3, action='store', + metavar='') + +parser.add_argument('--vcf-out', help="Output Match/FN/FP variants [%default]", dest='vcf_out', default=False, + action='store_true') +parser.add_argument('--no-plot', help="No plotting [%default]", dest='no_plot', default=False, action='store_true') +parser.add_argument('--incl-homs', help="Include homozygous ref calls [%default]", dest='include_homs', default=False, + action='store_true') +parser.add_argument('--incl-fail', help="Include calls that failed filters [%default]", dest='include_fail', + default=False, + action='store_true') +parser.add_argument('--fast', help="No equivalent variant detection [%default]", dest='fast', default=False, + action='store_true') + +(opts, args) = parser.parse_args() + +reference = opts.reff +golden_vcf = opts.golden_vcf +workflow_vcf = opts.workflow_vcf +out_prefix = opts.outfile +maptrack = opts.map_track +min_read_len = opts.map_track_min_len +bedfile = opts.target_reg +dp_thresh = int(opts.dp_thresh) +af_thresh = float(opts.af_thresh) + +vcf_out = opts.vcf_out +no_plot = opts.no_plot +include_homs = opts.include_homs +include_fail = opts.include_fail +fast = opts.fast if len(sys.argv[1:]) == 0: - PARSER.print_help() + parser.print_help() exit(1) -if OPTS.MTRL is not None: - MIN_REGION_LEN = int(OPTS.MTRL) +if opts.MTRL is not None: + min_region_len = int(opts.min_reg_len) else: - MIN_REGION_LEN = None + min_region_len = None -if MIN_READ_LEN is None: - MIN_READ_LEN = 0 +if min_read_len is None: + min_read_len = 0 else: - MIN_READ_LEN = int(MIN_READ_LEN) + min_read_len = int(min_read_len) -if REFERENCE is None: +if reference is None: print('Error: No reference provided.') - exit(1) -if GOLDEN_VCF is None: + sys.exit(1) +if golden_vcf is None: print('Error: No golden VCF provided.') - exit(1) -if WORKFLOW_VCF is None: + sys.exit(1) +if workflow_vcf is None: print('Error: No workflow VCF provided.') - exit(1) -if OUT_PREFIX is None: + sys.exit(1) +if out_prefix is None: print('Error: No output prefix provided.') - exit(1) -if (BEDFILE is not None and MIN_REGION_LEN is None) or (BEDFILE is None and MIN_REGION_LEN is not None): + sys.exit(1) +if (bedfile is not None and min_region_len is None) or (bedfile is None and min_region_len is not None): print('Error: Both -t and -T must be specified') - exit(1) + sys.exit(1) -if NO_PLOT is False: +if no_plot is False: import matplotlib matplotlib.use('Agg') @@ -132,7 +134,7 @@ def quantize_AF(af): return int(af * AF_STEPS) -VCF_HEADER = '##fileformat=VCFv4.1\n##reference=' + REFERENCE + '##INFO=\n##INFO=\n' +VCF_HEADER = '##fileformat=VCFv4.1\n##reference=' + reference + '##INFO=\n##INFO=\n' DP_TOKENS = ['DP', 'DPU', 'DPI'] # in the order that we'll look for them @@ -141,9 +143,9 @@ def parse_line(splt, col_dict, col_samp): # check if we want to proceed.. ra = splt[col_dict['REF']] aa = splt[col_dict['ALT']] - if not (INCLUDE_HOMS) and (aa == '.' or aa == '' or aa == ra): + if not (include_homs) and (aa == '.' or aa == '' or aa == ra): return None - if not (INCLUDE_FAIL) and (splt[col_dict['FILTER']] != 'PASS' and splt[col_dict['FILTER']] != '.'): + if not (include_fail) and (splt[col_dict['FILTER']] != 'PASS' and splt[col_dict['FILTER']] != '.'): return None # default vals @@ -199,25 +201,25 @@ def parse_line(splt, col_dict, col_samp): return (cov, qual, alt_alleles, alt_freqs) -def parse_vcf(VCF_FILENAME, ref_name, targ_regions_FL, out_file, out_bool): - v_Hashed = {} - v_pos_Hash = {} - v_Alts = {} - v_Cov = {} - v_AF = {} - v_Qual = {} - v_Targ_Len = {} - n_below_min_R_Len = 0 +def parse_vcf(vcf_filename, ref_name, targ_regions_FL, out_file, out_bool): + v_hashed = {} + v_pos_hash = {} + v_alts = {} + v_cov = {} + v_af = {} + v_qual = {} + v_targ_len = {} + n_below_min_r_len = 0 line_unique = 0 # number of lines in vcf file containing unique variant hash_coll = 0 # number of times we saw a hash collision ("per line" so non-unique alt alleles don't get counted multiple times) var_filtered = 0 # number of variants excluded due to filters (e.g. hom-refs, qual) var_merged = 0 # number of variants we merged into another due to having the same position specified col_dict = {} col_samp = [] - for line in open(VCF_FILENAME, 'r'): + for line in open(vcf_filename, 'r'): if line[0] != '#': if len(col_dict) == 0: - print('\n\nError: VCF has no header?\n' + VCF_FILENAME + '\n\n') + print('\n\nError: VCF has no header?\n' + vcf_filename + '\n\n') exit(1) splt = line[:-1].split('\t') if splt[0] == ref_name: @@ -227,7 +229,7 @@ def parse_vcf(VCF_FILENAME, ref_name, targ_regions_FL, out_file, out_bool): if targ_ind % 2 == 1: targ_Len = targ_regions_FL[targ_ind] - targ_regions_FL[targ_ind - 1] - if (BEDFILE is not None and targ_Len >= MIN_REGION_LEN) or BEDFILE is None: + if (bedfile is not None and targ_Len >= min_region_len) or bedfile is None: pl_out = parse_line(splt, col_dict, col_samp) if pl_out is None: @@ -235,39 +237,39 @@ def parse_vcf(VCF_FILENAME, ref_name, targ_regions_FL, out_file, out_bool): continue (cov, qual, aa, af) = pl_out - if var not in v_Hashed: + if var not in v_hashed: v_pos = var[0] - if v_pos in v_pos_Hash: + if v_pos in v_pos_hash: if len(aa) == 0: aa = [var[2]] - aa.extend([n[2] for n in v_Hashed.keys() if n[0] == v_pos]) + aa.extend([n[2] for n in v_hashed.keys() if n[0] == v_pos]) var_merged += 1 - v_pos_Hash[v_pos] = 1 + v_pos_hash[v_pos] = 1 if len(aa): all_vars = [(var[0], var[1], n) for n in aa] for i in range(len(all_vars)): - v_Hashed[all_vars[i]] = 1 - # if all_vars[i] not in v_Alts: - # v_Alts[all_vars[i]] = [] - # v_Alts[all_vars[i]].extend(all_vars) - v_Alts[all_vars[i]] = all_vars + v_hashed[all_vars[i]] = 1 + # if all_vars[i] not in v_alts: + # v_alts[all_vars[i]] = [] + # v_alts[all_vars[i]].extend(all_vars) + v_alts[all_vars[i]] = all_vars else: - v_Hashed[var] = 1 + v_hashed[var] = 1 if cov is not None: - v_Cov[var] = cov - v_AF[var] = af[0] # only use first AF, even if multiple. fix this later? - v_Qual[var] = qual - v_Targ_Len[var] = targ_Len + v_cov[var] = cov + v_af[var] = af[0] # only use first AF, even if multiple. fix this later? + v_qual[var] = qual + v_targ_len[var] = targ_Len line_unique += 1 else: hash_coll += 1 else: - n_below_min_R_Len += 1 + n_below_min_r_len += 1 else: if line[1] != '#': cols = line[1:-1].split('\t') @@ -275,12 +277,12 @@ def parse_vcf(VCF_FILENAME, ref_name, targ_regions_FL, out_file, out_bool): if 'FORMAT' in col_dict: col_samp.append(i) col_dict[cols[i]] = i - if VCF_OUT and out_bool: + if vcf_out and out_bool: out_bool = False out_file.write(line) return ( - v_Hashed, v_Alts, v_Cov, v_AF, v_Qual, v_Targ_Len, n_below_min_R_Len, line_unique, var_filtered, var_merged, + v_hashed, v_alts, v_cov, v_af, v_qual, v_targ_len, n_below_min_r_len, line_unique, var_filtered, var_merged, hash_coll) @@ -312,11 +314,12 @@ def condense_by_pos(list_in): def main(): + global bedfile ref = [] - f = open(REFERENCE, 'r') + f = open(reference, 'r') n_lines = 0 - prev_R = None - prev_P = None + prev_r = None + prev_p = None ref_inds = [] sys.stdout.write('\nindexing reference fasta... ') sys.stdout.flush() @@ -325,30 +328,30 @@ def main(): n_lines += 1 data = f.readline() if not data: - ref_inds.append((prev_R, prev_P, f.tell() - len(data))) + ref_inds.append((prev_r, prev_p, f.tell() - len(data))) break if data[0] == '>': - if prev_P is not None: - ref_inds.append((prev_R, prev_P, f.tell() - len(data))) - prev_P = f.tell() - prev_R = data[1:-1] + if prev_p is not None: + ref_inds.append((prev_r, prev_p, f.tell() - len(data))) + prev_p = f.tell() + prev_r = data[1:-1] print('{0:.3f} (sec)'.format(time.time() - tt)) # ref_inds = [('chrM', 6, 16909), ('chr1', 16915, 254252549), ('chr2', 254252555, 502315916), ('chr3', 502315922, 704298801), ('chr4', 704298807, 899276169), ('chr5', 899276175, 1083809741), ('chr6', 1083809747, 1258347116), ('chr7', 1258347122, 1420668559), ('chr8', 1420668565, 1569959868), ('chr9', 1569959874, 1713997574), ('chr10', 1713997581, 1852243023), ('chr11', 1852243030, 1989949677), ('chr12', 1989949684, 2126478617), ('chr13', 2126478624, 2243951900), ('chr14', 2243951907, 2353448438), ('chr15', 2353448445, 2458030465), ('chr16', 2458030472, 2550192321), ('chr17', 2550192328, 2633011443), ('chr18', 2633011450, 2712650243), ('chr19', 2712650250, 2772961813), ('chr20', 2772961820, 2837247851), ('chr21', 2837247858, 2886340351), ('chr22', 2886340358, 2938671016), ('chrX', 2938671022, 3097046994), ('chrY', 3097047000, 3157608038)] - ztV = 0 # total golden variants - ztW = 0 # total workflow variants - znP = 0 # total perfect matches - zfP = 0 # total false positives - znF = 0 # total false negatives - znE = 0 # total equivalent variants detected + zt_v = 0 # total golden variants + zt_w = 0 # total workflow variants + zn_p = 0 # total perfect matches + zf_p = 0 # total false positives + zn_f = 0 # total false negatives + zn_e = 0 # total equivalent variants detected zgF = 0 # total golden variants that were filtered and excluded zgR = 0 # total golden variants that were excluded for being redundant zgM = 0 # total golden variants that were merged into a single position zwF = 0 # total workflow variants that were filtered and excluded zwR = 0 # total workflow variants that were excluded for being redundant zwM = 0 # total workflow variants that were merged into a single position - if BEDFILE is not None: - zbM = 0 + if bedfile is not None: + zb_m = 0 mappability_vs_FN = {0: 0, 1: 0} # [0] = # of FNs that were in mappable regions, [1] = # of FNs that were in unmappable regions @@ -363,8 +366,8 @@ def main(): mappability_tracks = {} # indexed by chr string (e.g. 'chr1'), has boolean array prev_Ref = '' relevant_regions = [] - if MAPTRACK is not None: - mtf = open(MAPTRACK, 'r') + if maptrack is not None: + mtf = open(maptrack, 'r') for line in mtf: splt = line.strip().split('\t') if prev_Ref != '' and splt[0] != prev_Ref: @@ -377,7 +380,7 @@ def main(): mappability_tracks[prev_Ref] = [n for n in my_track] # relevant_regions = [] - if int(splt[3]) >= MIN_READ_LEN: + if int(splt[3]) >= min_read_len: relevant_regions.append((int(splt[1]), int(splt[2]))) prev_Ref = splt[0] mtf.close() @@ -399,9 +402,9 @@ def main(): global vcfo3_first_time vcfo2_first_time = False vcfo3_first_time = False - if VCF_OUT: - vcfo2 = open(OUT_PREFIX + '_FN.vcf', 'w') - vcfo3 = open(OUT_PREFIX + '_FP.vcf', 'w') + if vcf_out: + vcfo2 = open(out_prefix + '_FN.vcf', 'w') + vcfo3 = open(out_prefix + '_FP.vcf', 'w') vcfo2_first_time = True vcfo3_first_time = True @@ -421,7 +424,7 @@ def main(): for n_RI in ref_inds: ref_name = n_RI[0] - if FAST == False: + if not fast: f.seek(n_RI[1]) print('reading ' + ref_name + '...', end=' ') my_dat = f.read(n_RI[2] - n_RI[1]).split('\n') @@ -447,16 +450,16 @@ def main(): # # Parse relevant targeted regions # - targ_regions_FL = [] - if BEDFILE is not None: - bedfile = open(BEDFILE, 'r') + targ_regions_fl = [] + if bedfile is not None: + bedfile = open(bedfile, 'r') for line in bedfile: splt = line.split('\t') if splt[0] == ref_name: - targ_regions_FL.extend((int(splt[1]), int(splt[2]))) + targ_regions_fl.extend((int(splt[1]), int(splt[2]))) bedfile.close() else: - targ_regions_FL = [-1, MAX_VAL + 1] + targ_regions_fl = [-1, MAX_VAL + 1] # # Parse vcf files @@ -466,11 +469,12 @@ def main(): tt = time.time() (correct_hashed, correct_alts, correct_cov, correct_AF, correct_qual, correct_targ_len, correct_below_min_R_len, - correct_unique, g_filtered, g_merged, g_redundant) = parse_vcf(GOLDEN_VCF, ref_name, targ_regions_FL, vcfo2, - vcfo2_first_time) - (workflow_hashed, workflow_alts, workflow_COV, workflow_AF, workflow_qual, workflow_tar_len, workflow_below_min_R_len, - workflow_unique, w_filtered, w_merged, w_redundant) = parse_vcf(WORKFLOW_VCF, ref_name, targ_regions_FL, vcfo3, - vcfo3_first_time) + correct_unique, g_filtered, g_merged, g_redundant) = parse_vcf(golden_vcf, ref_name, targ_regions_fl, vcfo2, + vcfo2_first_time) + (workflow_hashed, workflow_alts, workflow_COV, workflow_AF, workflow_qual, workflow_tar_len, + workflow_below_min_R_len, + workflow_unique, w_filtered, w_merged, w_redundant) = parse_vcf(workflow_vcf, ref_name, targ_regions_fl, vcfo3, + vcfo3_first_time) zgF += g_filtered zgR += g_redundant zgM += g_merged @@ -497,44 +501,44 @@ def main(): # = 2: should be discluded because we were found # = 3: should be discluded because an alt was found not_found = [n for n in sorted(correct_hashed.keys()) if correct_hashed[n] == 1] - FP_variants = [n for n in sorted(workflow_hashed.keys()) if workflow_hashed[n] == 1] + fp_variants = [n for n in sorted(workflow_hashed.keys()) if workflow_hashed[n] == 1] # # condense all variants who have alternate alleles and were *not* found to have perfect matches # into a single variant again. These will not be included in the candidates for equivalency checking. Sorry! # not_found = condense_by_pos(not_found) - FP_variants = condense_by_pos(FP_variants) + fp_variants = condense_by_pos(fp_variants) # # tally up some values, if there are no golden variants lets save some CPU cycles and move to the next ref # tot_golden_variants = n_perfect + len(not_found) - totalWorkflowVariants = n_perfect + len(FP_variants) + total_workflow_variants = n_perfect + len(fp_variants) if tot_golden_variants == 0: - zfP += len(FP_variants) - ztW += totalWorkflowVariants + zf_p += len(fp_variants) + zt_w += total_workflow_variants print('{0:.3f} (sec)'.format(time.time() - tt)) continue # # let's check for equivalent variants # - if FAST == False: + if fast == False: del_list_i = [] del_list_j = [] regions_to_check = [] - for i in range(len(FP_variants)): - pos = FP_variants[i][0] + for i in range(len(fp_variants)): + pos = fp_variants[i][0] regions_to_check.append((max([pos - EV_BPRANGE - 1, 0]), min([pos + EV_BPRANGE, len(my_dat) - 1]))) for n in regions_to_check: ref_section = my_dat[n[0]:n[1]] FP_within = [] - for i in range(len(FP_variants)): - m = FP_variants[i] - if (m[0] > n[0] and m[0] < n[1]): + for i in range(len(fp_variants)): + m = fp_variants[i] + if n[0] < m[0] < n[1]: FP_within.append((m, i)) FP_within = sorted(FP_within) adj = 0 @@ -549,7 +553,7 @@ def main(): nf_within = [] for j in range(len(not_found)): m = not_found[j] - if (m[0] > n[0] and m[0] < n[1]): + if n[0] < m[0] < n[1]: nf_within.append((m, j)) nf_within = sorted(nf_within) adj = 0 @@ -571,7 +575,7 @@ def main(): n_equiv = 0 for i in sorted(list(set(del_list_i)), reverse=True): - del FP_variants[i] + del fp_variants[i] for j in sorted(list(set(del_list_j)), reverse=True): del not_found[j] n_equiv += 1 @@ -580,15 +584,15 @@ def main(): # # Tally up errors and whatnot # - ztV += tot_golden_variants - ztW += totalWorkflowVariants - znP += n_perfect - zfP += len(FP_variants) - znF += len(not_found) - if FAST is False: - znE += n_equiv - if BEDFILE is not None: - zbM += correct_below_min_R_len + zt_v += tot_golden_variants + zt_w += total_workflow_variants + zn_p += n_perfect + zf_p += len(fp_variants) + zn_f += len(not_found) + if fast is False: + zn_e += n_equiv + if bedfile is not None: + zb_m += correct_below_min_R_len # # try to identify a reason for FN variants: @@ -601,7 +605,7 @@ def main(): no_reason = True # mappability? - if MAPTRACK is not None: + if maptrack is not None: if ref_name in mappability_tracks and var[0] < len(mappability_tracks[ref_name]): if mappability_tracks[ref_name][var[0]]: mappability_vs_FN[1] += 1 @@ -617,7 +621,7 @@ def main(): if c not in coverage_vs_FN: coverage_vs_FN[c] = 0 coverage_vs_FN[c] += 1 - if c < DP_THRESH: + if c < dp_thresh: venn_data[i][1] = 1 no_reason = False @@ -637,30 +641,33 @@ def main(): venn_data[i][2] += 1 for i in range(len(not_found)): - if venn_data[i][0]: set1.append(i + var_adj) - if venn_data[i][1]: set2.append(i + var_adj) - if venn_data[i][2]: set3.append(i + var_adj) + if venn_data[i][0]: + set1.append(i + var_adj) + if venn_data[i][1]: + set2.append(i + var_adj) + if venn_data[i][2]: + set3.append(i + var_adj) var_adj += len(not_found) # # if desired, write out vcf files. # not_found = sorted(not_found) - FP_variants = sorted(FP_variants) - if VCF_OUT: - for line in open(GOLDEN_VCF, 'r'): + fp_variants = sorted(fp_variants) + if vcf_out: + for line in open(golden_vcf, 'r'): if line[0] != '#': splt = line.split('\t') if splt[0] == ref_name: var = (int(splt[1]), splt[3], splt[4]) if var in not_found: vcfo2.write(line) - for line in open(WORKFLOW_VCF, 'r'): + for line in open(workflow_vcf, 'r'): if line[0] != '#': splt = line.split('\t') if splt[0] == ref_name: var = (int(splt[1]), splt[3], splt[4]) - if var in FP_variants: + if var in fp_variants: vcfo3.write(line) print('{0:.3f} (sec)'.format(time.time() - tt)) @@ -669,16 +676,16 @@ def main(): # close vcf output # print('') - if VCF_OUT: - print(OUT_PREFIX + '_FN.vcf') - print(OUT_PREFIX + '_FP.vcf') + if vcf_out: + print(out_prefix + '_FN.vcf') + print(out_prefix + '_FP.vcf') vcfo2.close() vcfo3.close() # # plot some FN stuff # - if NO_PLOT == False: + if no_plot == False: n_detected = len(set(set1 + set2 + set3)) set1 = set(set1) set2 = set(set2) @@ -689,7 +696,7 @@ def main(): else: s1 = '' if len(set2): - s2 = 'DP < ' + str(DP_THRESH) + s2 = 'DP < ' + str(dp_thresh) else: s2 = '' # if len(set3): s3 = 'AF < '+str(AF_THRESH) @@ -700,16 +707,16 @@ def main(): mpl.figure(0) tstr1 = 'False Negative Variants (Missed Detections)' - # tstr2 = str(n_detected)+' / '+str(znF)+' FN variants categorized' + # tstr2 = str(n_detected)+' / '+str(zn_f)+' FN variants categorized' tstr2 = '' - if MAPTRACK is not None: + if maptrack is not None: v = venn3([set1, set2, set3], (s1, s2, s3)) else: v = venn2([set2, set3], (s2, s3)) mpl.figtext(0.5, 0.95, tstr1, fontdict={'size': 14, 'weight': 'bold'}, horizontalalignment='center') mpl.figtext(0.5, 0.03, tstr2, fontdict={'size': 14, 'weight': 'bold'}, horizontalalignment='center') - ouf = OUT_PREFIX + '_FNvenn.pdf' + ouf = out_prefix + '_FNvenn.pdf' print(ouf) mpl.savefig(ouf) @@ -717,20 +724,20 @@ def main(): # spit out results to console # print('\n**********************************\n') - if BEDFILE is not None: + if bedfile is not None: print('ONLY CONSIDERING VARIANTS FOUND WITHIN TARGETED REGIONS\n\n') - print('Total Golden Variants: ', ztV, '\t[', zgF, 'filtered,', zgM, 'merged,', zgR, 'redundant ]') - print('Total Workflow Variants:', ztW, '\t[', zwF, 'filtered,', zwM, 'merged,', zwR, 'redundant ]') + print('Total Golden Variants: ', zt_v, '\t[', zgF, 'filtered,', zgM, 'merged,', zgR, 'redundant ]') + print('Total Workflow Variants:', zt_w, '\t[', zwF, 'filtered,', zwM, 'merged,', zwR, 'redundant ]') print('') - if ztV > 0 and ztW > 0: - print('Perfect Matches:', znP, '({0:.2f}%)'.format(100. * float(znP) / ztV)) - print('FN variants: ', znF, '({0:.2f}%)'.format(100. * float(znF) / ztV)) - print('FP variants: ', zfP) # ,'({0:.2f}%)'.format(100.*float(zfP)/ztW) - if FAST == False: - print('\nNumber of equivalent variants denoted differently between the two vcfs:', znE) - if BEDFILE is not None: - print('\nNumber of golden variants located in targeted regions that were too small to be sampled from:', zbM) - if FAST: + if zt_v > 0 and zt_w > 0: + print('Perfect Matches:', zn_p, '({0:.2f}%)'.format(100. * float(zn_p) / zt_v)) + print('FN variants: ', zn_f, '({0:.2f}%)'.format(100. * float(zn_f) / zt_v)) + print('FP variants: ', zf_p) # ,'({0:.2f}%)'.format(100.*float(zf_p)/zt_w) + if not fast: + print('\nNumber of equivalent variants denoted differently between the two vcfs:', zn_e) + if bedfile is not None: + print('\nNumber of golden variants located in targeted regions that were too small to be sampled from:', zb_m) + if fast: print( "\nWarning! Running with '--fast' means that identical variants denoted differently between the two vcfs will not be detected! The values above may be lower than the true accuracy.") # if NO_PLOT: From f63a8be32e618ed0f5af0c6c242e7dba3d43ba66 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 4 Jan 2021 15:53:38 -0600 Subject: [PATCH 235/323] Minor changes to gitignore etc --- .gitignore | 3 ++- bacterial_genreads_wrapper.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index de8c783..bf24818 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ # Ignore filetypes *.pyc /python2env/ -/.ipynb_checkpoints/ \ No newline at end of file +/.ipynb_checkpoints/ +/.vscode/ \ No newline at end of file diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py index 0afcdf6..5d31aa2 100644 --- a/bacterial_genreads_wrapper.py +++ b/bacterial_genreads_wrapper.py @@ -132,7 +132,7 @@ def cull(population: list, percentage: float = 0.5) -> list: """ cull_amount = round(len(population) * percentage) print("Culling {} members from population".format(cull_amount)) - for i in range(cull_amount): + for _ in range(cull_amount): selection = random.choice(population) population.remove(selection) selection.remove() From 46aa8c4c22ccb7c7f7a2d0e3baa99a8323322725 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 16:53:17 -0600 Subject: [PATCH 236/323] Might have found the bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2cc4779..1b2865a 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -835,7 +835,7 @@ def sample_read(self, sequencing_model, frag_len=None): if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - my_cigar2 = CigarStringNew.list_to_string(relevant_cigar) + my_cigar = CigarStringNew.list_to_string(relevant_cigar) # TODO delete this line once new cigar is 100% working # my_cigar = CigarString(list_in=relevant_cigar).get_string() From 55d2a6d84bcc61dc0b0689ded88622da04d3c909 Mon Sep 17 00:00:00 2001 From: jallen17 Date: Tue, 5 Jan 2021 16:54:48 -0600 Subject: [PATCH 237/323] Debugging changes --- source/SequenceContainer.py | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2cc4779..8ddf541 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -792,15 +792,7 @@ def sample_read(self, sequencing_model, frag_len=None): try: expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: - print(f'error = {error}') - print(f'e_pos = {e_pos}') - print(f'pi = {pi}') - print(f'my_adj = {my_adj}') - print(f'total_d = {total_d}') - print(f'total_i = {total_i}') - print(f'expanded_cigar = {CigarStringNew.list_to_string(expanded_cigar)}') - print(f'sorted_errors = {sorted_errors}') - print("Debug") + pdb.set_trace() sys.exit(1) else: From f01743a59854b16cb0232a9a52d5bfd91336c16c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 20:34:28 -0600 Subject: [PATCH 238/323] Further debugging --- source/SequenceContainer.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 1b2865a..6518b44 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -5,13 +5,14 @@ import pickle import sys from time import time +import pdb import numpy as np from Bio.Seq import Seq -from source.neat_cigar_rework import CigarString as CigarStringNew +from source.neat_cigar_rework import CigarString from source.probability import DiscreteDistribution, poisson_list -from source.neat_cigar import CigarString +# from source.neat_cigar import CigarString """ Constants needed for analysis @@ -585,7 +586,7 @@ def random_mutations(self): # MODIFY REFERENCE STRING: INDELS for i in range(len(all_indels_ins)): rolling_adj = 0 - temp_symbol_string = CigarStringNew(str(len(self.sequences[i])) + "M") + temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2 = ['M' for _ in self.sequences[i]] @@ -605,14 +606,14 @@ def random_mutations(self): self.sequences[i][v_pos2:] # notate indel positions for cigar computation if indel_length > 0: - cigar_to_insert = CigarStringNew(str(indel_length) + 'I') + cigar_to_insert = CigarString(str(indel_length) + 'I') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ # ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] elif indel_length < 0: - cigar_to_insert = CigarStringNew(str(abs(indel_length)) + 'D1M') + cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, indel_length) # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' @@ -723,7 +724,7 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar = [] extra_cigar = [] adj = 0 - sse_adj = [0 for n in range(self.read_len + max(sequencing_model.err_p[3]))] + sse_adj = [0 for _ in range(self.read_len + max(sequencing_model.err_p[3]))] any_indel_err = False # sort by letter (D > I > S) such that we introduce all indel errors before substitution errors @@ -758,7 +759,7 @@ def sample_read(self, sequencing_model, frag_len=None): if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue if not expanded_cigar: - expanded_cigar = CigarStringNew(my_cigar).string_to_list() + expanded_cigar = CigarString(my_cigar).string_to_list() # TODO delete these lines using old CigarString once it is working 100% # expanded_cigar = CigarString(string_in=my_cigar).get_list() fill_to_go = total_d - total_i + 1 @@ -767,7 +768,7 @@ def sample_read(self, sequencing_model, frag_len=None): # TODO delete these lines using old CigarString once it is working 100% # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] # + fill_to_go]).get_list()[-fill_to_go:] - extra_cigar_val = CigarStringNew(self.all_cigar[my_ploid][read[0] + extra_cigar_val = CigarString(self.all_cigar[my_ploid][read[0] + fill_to_go]).string_to_list()[-fill_to_go:] except IndexError: @@ -798,7 +799,7 @@ def sample_read(self, sequencing_model, frag_len=None): print(f'my_adj = {my_adj}') print(f'total_d = {total_d}') print(f'total_i = {total_i}') - print(f'expanded_cigar = {CigarStringNew.list_to_string(expanded_cigar)}') + print(f'expanded_cigar = {CigarString.list_to_string(expanded_cigar)}') print(f'sorted_errors = {sorted_errors}') print("Debug") sys.exit(1) @@ -835,7 +836,7 @@ def sample_read(self, sequencing_model, frag_len=None): if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - my_cigar = CigarStringNew.list_to_string(relevant_cigar) + my_cigar = CigarString.list_to_string(relevant_cigar) # TODO delete this line once new cigar is 100% working # my_cigar = CigarString(list_in=relevant_cigar).get_string() From d1c11f2c0de6efd170a1769e41301f4291b8a4d5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 21:25:44 -0600 Subject: [PATCH 239/323] More debugging --- source/SequenceContainer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 5c26e7c..c966c75 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -722,7 +722,6 @@ def sample_read(self, sequencing_model, frag_len=None): # add buffer sequence to fill in positions that get deleted read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] - extra_cigar = [] adj = 0 sse_adj = [0 for _ in range(self.read_len + max(sequencing_model.err_p[3]))] any_indel_err = False From e8f3452277b390b30b3a3ff3997ea667cbe57223 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 23:52:50 -0600 Subject: [PATCH 240/323] Further debugging --- gen_reads.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gen_reads.py b/gen_reads.py index 49e5621..59e6c43 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -15,6 +15,7 @@ /////////////////////////////////////////////////////////////////////////////// """ import sys +import pdb import copy import random import re @@ -781,6 +782,7 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'proper', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'first', 'reverse']) + pdb.set_trace() output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], From f10d38f21e49e94e8c1273027d30738e591fff90 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 23:54:10 -0600 Subject: [PATCH 241/323] Further debugging --- source/SequenceContainer.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index c966c75..16c5c23 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -5,7 +5,6 @@ import pickle import sys from time import time -import pdb import numpy as np from Bio.Seq import Seq @@ -792,7 +791,6 @@ def sample_read(self, sequencing_model, frag_len=None): try: expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: - pdb.set_trace() sys.exit(1) else: From eb7b4b14cd0183b15698b62a36c230b5f1a8ef12 Mon Sep 17 00:00:00 2001 From: jallen17 Date: Tue, 5 Jan 2021 23:54:30 -0600 Subject: [PATCH 242/323] And even more debugging --- source/SequenceContainer.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index c966c75..00c738a 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -827,10 +827,12 @@ def sample_read(self, sequencing_model, frag_len=None): if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - my_cigar = CigarString.list_to_string(relevant_cigar) + my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) # TODO delete this line once new cigar is 100% working # my_cigar = CigarString(list_in=relevant_cigar).get_string() - + if len(my_cigar) < self.read_len: + pdb.set_trace() + sys.exit(1) read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, str(read[3]), str(read[1])]) From 2b63f3c504a5238f557dc2cf7668eb8d1cb5379e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 5 Jan 2021 23:56:05 -0600 Subject: [PATCH 243/323] Further debugging --- source/SequenceContainer.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index dd825ab..a6efc4c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -828,9 +828,6 @@ def sample_read(self, sequencing_model, frag_len=None): my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) # TODO delete this line once new cigar is 100% working # my_cigar = CigarString(list_in=relevant_cigar).get_string() - if len(my_cigar) < self.read_len: - pdb.set_trace() - sys.exit(1) read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, str(read[3]), str(read[1])]) From 2a4918e357748906fd9ef831b408c81658a627e2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 02:16:45 -0600 Subject: [PATCH 244/323] I think I fixed the bug --- gen_reads.py | 2 - source/neat_cigar_rework.py | 106 ++++++++++++++++++----------------- source/output_file_writer.py | 11 +++- 3 files changed, 63 insertions(+), 56 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 59e6c43..49e5621 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -15,7 +15,6 @@ /////////////////////////////////////////////////////////////////////////////// """ import sys -import pdb import copy import random import re @@ -782,7 +781,6 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'proper', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'first', 'reverse']) - pdb.set_trace() output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 9bea656..2837418 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -3,6 +3,7 @@ from operator import itemgetter + class Cigar(object): """ This code borrowed in whole from https://github.com/brentp/cigar @@ -115,8 +116,8 @@ def mask_left(self, n_seq_bases, mask="S"): return Cigar(Cigar.string_from_elements(new_cigs)).merge_like_ops() @classmethod - def string_from_elements(self, elements): - return "".join("%i%s" % (l, op) for l, op in elements if l !=0) + def string_from_elements(cls, elements): + return "".join("%i%s" % (l, op) for l, op in elements if l != 0) def mask_right(self, n_seq_bases, mask="S"): """ @@ -163,28 +164,29 @@ def insert_cigar_element(self, pos: int, :param insertion_cigar: A cigar to insert into current cigar string :param pos: integer position where to insert the input cigar string :return: None - str1 = CigarString('50M10D7I23M') - >>>str2 = CigarString('10I25M') - >>>iPos = 55 - >>>str1.insert_cigar_element(iPos, str2) - >>>assert(str1.cigar == "50M5D10I25M5D7I23M") - - >>>str1 = CigarString('50M10D7I23M') - >>>iPos = 20 - >>>str1.insert_cigar_element(iPos, str2) - >>>assert(str1.cigar == "20M10I55M10D7I23M") - - >>>str1 = CigarString('11100M') - >>>str2 = CigarString('2I') - >>>iPos = 5785 + 1 - >>>str1.insert_cigar_element(iPos, str2, 1) - >>>assert (str1.cigar == "5786M2I5313M") - - >>>str1 = CigarString('11100M') - >>>str2 = CigarString('1D1M') - >>>iPos = 6610 + 1 - >>>str1.insert_cigar_element(iPos, str2, -1) - >>>assert (str1.cigar == "6611M1D4489M") + + >>> str1 = CigarString('50M10D7I23M') + >>> str2 = CigarString('10I25M') + >>> iPos = 55 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "50M5D10I25M5D7I23M") + + >>> str1 = CigarString('50M10D7I23M') + >>> iPos = 20 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "20M10I55M10D7I23M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('2I') + >>> iPos = 5785 + 1 + >>> str1.insert_cigar_element(iPos, str2, 1) + >>> assert (str1.cigar == "5786M2I5313M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('1D1M') + >>> iPos = 6610 + 1 + >>> str1.insert_cigar_element(iPos, str2, -1) + >>> assert (str1.cigar == "6611M1D4489M") """ if insertion_cigar is None: @@ -231,33 +233,33 @@ def get_cigar_fragment(self, start: int, end: int) -> str: :param start: start point of sequence to retrieve :param end: end point of sequence to retrieve :return: The sequence that spans start to end - >>>str1 = CigarString('10M5D10M') - >>>start = 0 - >>>end = 14 - >>>frag = str1.get_cigar_fragment(start, end) - >>>assert(frag == "10M4D") - - >>>str1 = CigarString('10M2D10M') - >>>start = 10 - >>>end = 12 - >>>frag = str1.get_cigar_fragment(start, end) - >>>assert(frag == "2D") - - >>>str1 = CigarString('10M1D10M') - >>>start = 10 - >>>end = 12 - >>>frag = str1.get_cigar_fragment(start, end) - >>>assert(frag == "1D1M") - - >>>str1 = CigarString('102M2I10000M') - >>>start1 = 1 - >>>end1 = 102 - >>>frag1 = str1.get_cigar_fragment(start1, end1) - >>>start2 = 102 - >>>end2 = 203 - >>>frag2 = str1.get_cigar_fragment(start2, end2) - >>>assert(frag1 == "101M") - >>>assert(frag2 == "2I99M") + >>> str1 = CigarString('10M5D10M') + >>> start = 0 + >>> end = 14 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "10M4D") + + >>> str1 = CigarString('10M2D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "2D") + + >>> str1 = CigarString('10M1D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "1D1M") + + >>> str1 = CigarString('102M2I10000M') + >>> start1 = 1 + >>> end1 = 102 + >>> frag1 = str1.get_cigar_fragment(start1, end1) + >>> start2 = 102 + >>> end2 = 203 + >>> frag2 = str1.get_cigar_fragment(start2, end2) + >>> assert(frag1.cigar == "101M") + >>> assert(frag2.cigar == "2I99M") """ # Minus 1 because python slices don't include the end coordinate window_size = end - start @@ -321,7 +323,7 @@ def get_cigar_fragment(self, start: int, end: int) -> str: except ValueError: print('\nBug: Problem retrieving fragment.\n') sys.exit(1) - return Cigar.string_from_elements(ret) + return CigarString(Cigar.string_from_elements(ret)) # TODO use this method or delete it. def count_elements(self, element: str) -> int: diff --git a/source/output_file_writer.py b/source/output_file_writer.py index cdf2985..c3de5d5 100644 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -8,6 +8,7 @@ import gzip from Bio.bgzf import * import pathlib +from source.neat_cigar_rework import CigarString # from source.biopython_modified_bgzf import BgzfWriter @@ -214,8 +215,14 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, # my_bin = 0 # or just use a dummy value, does this actually matter? my_map_quality = aln_map_quality - cig_letters = re.split(r"\d+", cigar)[1:] - cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] + cig_letters = [] + cig_numbers = [] + for item in cigar.items(): + cig_numbers.append(item[0]) + cig_letters.append(item[1]) + # TODO delete the following two lines once the new cigar rework is 100% working + # cig_letters = re.split(r"\d+", cigar)[1:] + # cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] cig_ops = len(cig_letters) next_ref_id = ref_id if mate_pos is None: From 3da025d65fb758e85bb09ff3da64cb56566a6bab Mon Sep 17 00:00:00 2001 From: jallen17 Date: Wed, 6 Jan 2021 02:17:53 -0600 Subject: [PATCH 245/323] Not sure --- gen_reads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 59e6c43..8d07d44 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -782,7 +782,8 @@ def main(raw_args=None): else: flag1 = sam_flag(['paired', 'proper', 'second', 'mate_reverse']) flag2 = sam_flag(['paired', 'proper', 'first', 'reverse']) - pdb.set_trace() + if not isinstance(my_read_data[0][1], str): + pdb.set_trace() output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], From bba7025c870951e54051db239c096c667b2b026c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 13:17:43 -0600 Subject: [PATCH 246/323] Debugging gen_reads --- source/SequenceContainer.py | 7 ++++--- source/neat_cigar_rework.py | 28 +++++++++++++++------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index a6efc4c..8107408 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -619,6 +619,7 @@ def random_mutations(self): # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): + print(type(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) @@ -757,7 +758,7 @@ def sample_read(self, sequencing_model, frag_len=None): if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue if not expanded_cigar: - expanded_cigar = CigarString(my_cigar).string_to_list() + expanded_cigar = my_cigar.string_to_list() # TODO delete these lines using old CigarString once it is working 100% # expanded_cigar = CigarString(string_in=my_cigar).get_list() fill_to_go = total_d - total_i + 1 @@ -766,8 +767,8 @@ def sample_read(self, sequencing_model, frag_len=None): # TODO delete these lines using old CigarString once it is working 100% # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] # + fill_to_go]).get_list()[-fill_to_go:] - extra_cigar_val = CigarString(self.all_cigar[my_ploid][read[0] - + fill_to_go]).string_to_list()[-fill_to_go:] + extra_cigar_val = CigarString( + self.all_cigar[my_ploid][read[0] + fill_to_go]).string_to_list()[-fill_to_go:] except IndexError: # Applying the deletions we want requires going beyond region boundaries. diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 2837418..06fe7f0 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -3,7 +3,6 @@ from operator import itemgetter - class Cigar(object): """ This code borrowed in whole from https://github.com/brentp/cigar @@ -150,7 +149,7 @@ def merge_like_ops(self): class CigarString(Cigar): """ - This adds odditional functionality to the cigar module above, to make it compatible with + This adds additional functionality to the cigar module above, to make it compatible with the rest of the NEAT codebase """ @@ -224,7 +223,7 @@ def insert_cigar_element(self, pos: int, print('\nBug: Problem with insertion.\n') sys.exit(1) - def get_cigar_fragment(self, start: int, end: int) -> str: + def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': """ Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the @@ -341,16 +340,19 @@ def string_to_list(self) -> list: """ cigar_dat = [] d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - cigar_dat += [item[1]] * item[0] - d_reserve = 0 - return cigar_dat + try: + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + cigar_dat += [item[1]] * item[0] + d_reserve = 0 + return cigar_dat + except: + sys.exit(1) @staticmethod def list_to_string(input_list: list) -> str: From fb9dcddbe48862fa854467961389bb051c3bb2a4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 13:22:50 -0600 Subject: [PATCH 247/323] removing debug print --- source/SequenceContainer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 8107408..a32fffe 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -619,7 +619,6 @@ def random_mutations(self): # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - print(type(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) From 33e73436535356d8874759d9bf6c159f5bf30bfa Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 13:51:45 -0600 Subject: [PATCH 248/323] Further debugging --- source/SequenceContainer.py | 5 +++-- source/neat_cigar_rework.py | 23 ++++++++++------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index a32fffe..f8e985e 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -766,8 +766,8 @@ def sample_read(self, sequencing_model, frag_len=None): # TODO delete these lines using old CigarString once it is working 100% # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] # + fill_to_go]).get_list()[-fill_to_go:] - extra_cigar_val = CigarString( - self.all_cigar[my_ploid][read[0] + fill_to_go]).string_to_list()[-fill_to_go:] + extra_cigar_val = self.all_cigar[my_ploid][read[0] + + fill_to_go].string_to_list()[-fill_to_go:] except IndexError: # Applying the deletions we want requires going beyond region boundaries. @@ -791,6 +791,7 @@ def sample_read(self, sequencing_model, frag_len=None): try: expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: + print("Bug!! Index error on expanded cigar") sys.exit(1) else: diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 06fe7f0..4c87566 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -340,19 +340,16 @@ def string_to_list(self) -> list: """ cigar_dat = [] d_reserve = 0 - try: - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - cigar_dat += [item[1]] * item[0] - d_reserve = 0 - return cigar_dat - except: - sys.exit(1) + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + cigar_dat += [item[1]] * item[0] + d_reserve = 0 + return cigar_dat @staticmethod def list_to_string(input_list: list) -> str: From 7464f6444b60d948e50f1423a150858c50f827f3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 17:09:17 -0600 Subject: [PATCH 249/323] debugging still --- source/SequenceContainer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index f8e985e..ffababa 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -1,3 +1,4 @@ +import pdb import random import copy import pathlib @@ -792,6 +793,7 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: print("Bug!! Index error on expanded cigar") + pdb.set_trace() sys.exit(1) else: From 8784e88647995a47fe6ae54c5a091092dbaa1c54 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 19:05:38 -0600 Subject: [PATCH 250/323] Nope, still debugging --- source/SequenceContainer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index ffababa..b312937 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -709,6 +709,7 @@ def sample_read(self, sequencing_model, frag_len=None): for read in reads_to_sample: try: my_cigar = self.all_cigar[my_ploid][read[0]] + pdb.set_trace() except IndexError: print('Index error when attempting to find cigar string.') print(my_ploid, len(self.all_cigar[my_ploid]), read[0]) From 57139e3b49df59ad7c20774538e5884825f522c2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 19:20:16 -0600 Subject: [PATCH 251/323] Nope, still debugging --- source/SequenceContainer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index b312937..2beed8b 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -709,7 +709,9 @@ def sample_read(self, sequencing_model, frag_len=None): for read in reads_to_sample: try: my_cigar = self.all_cigar[my_ploid][read[0]] - pdb.set_trace() + if my_cigar.cigar != "100M": + print(my_cigar) + pdb.set_trace() except IndexError: print('Index error when attempting to find cigar string.') print(my_ploid, len(self.all_cigar[my_ploid]), read[0]) From 41d54a18c5b0983ffc570efa0a2694c555d70eda Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 20:00:58 -0600 Subject: [PATCH 252/323] Nope, still debugging --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2beed8b..44816bb 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -709,7 +709,7 @@ def sample_read(self, sequencing_model, frag_len=None): for read in reads_to_sample: try: my_cigar = self.all_cigar[my_ploid][read[0]] - if my_cigar.cigar != "100M": + if my_cigar.cigar != "100M" and read[2][0][0] == 'D': print(my_cigar) pdb.set_trace() except IndexError: From 242d568dc3f039c5556f6b21f2af3969fc034a7a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 20:46:31 -0600 Subject: [PATCH 253/323] Nope, still debugging --- source/SequenceContainer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 44816bb..2109f7e 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -709,9 +709,6 @@ def sample_read(self, sequencing_model, frag_len=None): for read in reads_to_sample: try: my_cigar = self.all_cigar[my_ploid][read[0]] - if my_cigar.cigar != "100M" and read[2][0][0] == 'D': - print(my_cigar) - pdb.set_trace() except IndexError: print('Index error when attempting to find cigar string.') print(my_ploid, len(self.all_cigar[my_ploid]), read[0]) @@ -719,6 +716,9 @@ def sample_read(self, sequencing_model, frag_len=None): print((r_pos1, r_pos2)) print(frag_len, self.fraglen_ind_map[frag_len]) sys.exit(1) + if my_cigar.cigar != "100M" and read[2][0][0] == 'D': + print(my_cigar) + pdb.set_trace() total_d = sum([error[1] for error in read[2] if error[0] == 'D']) total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 From c64e65b7325b0ebf1d4fe8d307ecd3526f7a9854 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 21:07:27 -0600 Subject: [PATCH 254/323] debugging --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2109f7e..d3d4361 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -716,7 +716,7 @@ def sample_read(self, sequencing_model, frag_len=None): print((r_pos1, r_pos2)) print(frag_len, self.fraglen_ind_map[frag_len]) sys.exit(1) - if my_cigar.cigar != "100M" and read[2][0][0] == 'D': + if my_cigar.cigar != "100M" and 'D' in my_cigar.cigar: print(my_cigar) pdb.set_trace() total_d = sum([error[1] for error in read[2] if error[0] == 'D']) From cb80514c27a43c9e947511f35121aed9ea400bf7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 21:13:57 -0600 Subject: [PATCH 255/323] debugging --- source/SequenceContainer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d3d4361..85c7797 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -716,13 +716,13 @@ def sample_read(self, sequencing_model, frag_len=None): print((r_pos1, r_pos2)) print(frag_len, self.fraglen_ind_map[frag_len]) sys.exit(1) - if my_cigar.cigar != "100M" and 'D' in my_cigar.cigar: - print(my_cigar) - pdb.set_trace() total_d = sum([error[1] for error in read[2] if error[0] == 'D']) total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted + if my_cigar.cigar != "100M" and read[2][0][0] == 'D': + print(my_cigar) + pdb.set_trace() read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] adj = 0 From 7791bccc067b9e762d9bd2233acb3ea4542500c3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 6 Jan 2021 21:25:54 -0600 Subject: [PATCH 256/323] Nope, still debugging --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 85c7797..592ab54 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -720,7 +720,7 @@ def sample_read(self, sequencing_model, frag_len=None): total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 # add buffer sequence to fill in positions that get deleted - if my_cigar.cigar != "100M" and read[2][0][0] == 'D': + if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: print(my_cigar) pdb.set_trace() read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] From afb57f4ab13d0a99d8c3be3adc8227e4ebe94a9b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 10:38:23 -0600 Subject: [PATCH 257/323] Debugging neat still --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 592ab54..b3173c1 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -836,7 +836,7 @@ def sample_read(self, sequencing_model, frag_len=None): # my_cigar = CigarString(list_in=relevant_cigar).get_string() read[3] = read[3][:self.read_len] - read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, str(read[3]), str(read[1])]) + read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, read[3], str(read[1])]) # read_out[i] = (pos, cigar, read_string, qual_string) return read_out From 27d41f7ef72b6f7f85929d3296e768f6815859ff Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 10:43:58 -0600 Subject: [PATCH 258/323] Debugging neat still --- source/SequenceContainer.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index b3173c1..e68f1f1 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -719,10 +719,13 @@ def sample_read(self, sequencing_model, frag_len=None): total_d = sum([error[1] for error in read[2] if error[0] == 'D']) total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 + + # debugging + # if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: + # print(my_cigar) + # pdb.set_trace() + # add buffer sequence to fill in positions that get deleted - if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: - print(my_cigar) - pdb.set_trace() read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] adj = 0 From 2faff6939a5920625130f31c756cbf3699bb1837 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 11:10:19 -0600 Subject: [PATCH 259/323] Hopefully fixing bugs, along with some refactoring --- source/output_file_writer.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/source/output_file_writer.py b/source/output_file_writer.py index c3de5d5..3123d9c 100644 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -188,21 +188,21 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # TODO add write_fasta_record def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None, orientation=None): - (r1, q1) = (read1, qual1) + (read1, quality1) = (str(read1), qual1) if read2 is not None and orientation is True: - (r2, q2) = (reverse_complement(read2), qual2[::-1]) + (read2, quality2) = (str(reverse_complement(read2)), qual2[::-1]) elif read2 is not None and orientation is False: - (r1, q1) = (reverse_complement(read2), qual2[::-1]) - (r2, q2) = (read1, qual1) + (read1, quality1) = (str(reverse_complement(read2)), qual2[::-1]) + (read2, quality2) = (str(read1), qual1) if self.fasta_instead: - self.fq1_buffer.append('>' + read_name + '/1\n' + r1 + '\n') + self.fq1_buffer.append('>' + read_name + '/1\n' + read1 + '\n') if read2 is not None: - self.fq2_buffer.append('>' + read_name + '/2\n' + r2 + '\n') + self.fq2_buffer.append('>' + read_name + '/2\n' + read2 + '\n') else: - self.fq1_buffer.append('@' + read_name + '/1\n' + r1 + '\n+\n' + q1 + '\n') + self.fq1_buffer.append('@' + read_name + '/1\n' + read1 + '\n+\n' + quality1 + '\n') if read2 is not None: - self.fq2_buffer.append('@' + read_name + '/2\n' + r2 + '\n+\n' + q2 + '\n') + self.fq2_buffer.append('@' + read_name + '/2\n' + read2 + '\n+\n' + quality2 + '\n') def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): self.vcf_file.write( From d59fdc29481a48bacd6e7fe71557c14e6decd8e6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 13:01:27 -0600 Subject: [PATCH 260/323] still tracking down this bug --- source/SequenceContainer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index e68f1f1..d53d140 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -721,9 +721,9 @@ def sample_read(self, sequencing_model, frag_len=None): avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 # debugging - # if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: - # print(my_cigar) - # pdb.set_trace() + if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: + print(my_cigar) + pdb.set_trace() # add buffer sequence to fill in positions that get deleted read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] From 4c21d8630ac44897bb3ba3b4012d9a1b9b2e6bbe Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 13:45:16 -0600 Subject: [PATCH 261/323] still tracking down this bug --- gen_reads.py | 3 +++ source/SequenceContainer.py | 8 +++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 49e5621..cd53a2c 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -660,6 +660,9 @@ def main(raw_args=None): is_unmapped = [] if paired_end: + if len(any(sequences.all_cigar)) != 100: + print("There's a cigar that's off.") + breakpoint() my_fraglen = fraglen_distribution.sample() my_read_data = sequences.sample_read(se_class, my_fraglen) # skip if we failed to find a valid position to sample read diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d53d140..edd327c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -721,7 +721,7 @@ def sample_read(self, sequencing_model, frag_len=None): avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 # debugging - if my_cigar.cigar != "100M" and [error[1] for error in read[2] if error[0] == 'D']: + if len(my_cigar) != 100: print(my_cigar) pdb.set_trace() @@ -835,6 +835,12 @@ def sample_read(self, sequencing_model, frag_len=None): if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) + + # debugging + if len(my_cigar) != 100: + print(my_cigar) + pdb.set_trace() + # TODO delete this line once new cigar is 100% working # my_cigar = CigarString(list_in=relevant_cigar).get_string() read[3] = read[3][:self.read_len] From af096b90f9c27026474a7da79d3de59c9ce2a7ab Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 13:48:11 -0600 Subject: [PATCH 262/323] still tracking down this bug --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index cd53a2c..1a6242c 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -660,7 +660,7 @@ def main(raw_args=None): is_unmapped = [] if paired_end: - if len(any(sequences.all_cigar)) != 100: + if [cigar for cigar in sequences.all_cigar if len(cigar) != 100]: print("There's a cigar that's off.") breakpoint() my_fraglen = fraglen_distribution.sample() From 3b229ea9a879e3501ff9f8b5ccb308e9fe583702 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 13:54:45 -0600 Subject: [PATCH 263/323] still tracking down this bug --- gen_reads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 1a6242c..7f243b5 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -24,6 +24,7 @@ import numpy as np import argparse import pathlib +import pdb from source.input_checking import check_file_open, is_in_range from source.ref_func import index_ref, read_ref @@ -662,7 +663,7 @@ def main(raw_args=None): if paired_end: if [cigar for cigar in sequences.all_cigar if len(cigar) != 100]: print("There's a cigar that's off.") - breakpoint() + pdb.set_trace() my_fraglen = fraglen_distribution.sample() my_read_data = sequences.sample_read(se_class, my_fraglen) # skip if we failed to find a valid position to sample read From 2d1d5de89f4718416001042d3b62151f689a0b24 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 13:56:49 -0600 Subject: [PATCH 264/323] Hopefully fixing bugs, along with some refactoring --- gen_reads.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 7f243b5..11d0695 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -661,7 +661,8 @@ def main(raw_args=None): is_unmapped = [] if paired_end: - if [cigar for cigar in sequences.all_cigar if len(cigar) != 100]: + if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ + [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: print("There's a cigar that's off.") pdb.set_trace() my_fraglen = fraglen_distribution.sample() From 75f26ca5bfc6e9b3627c513ab191b6620000405e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 7 Jan 2021 14:19:25 -0600 Subject: [PATCH 265/323] Debugging neat still --- gen_reads.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index 11d0695..c64a4a1 100644 --- a/gen_reads.py +++ b/gen_reads.py @@ -600,9 +600,17 @@ def main(raw_args=None): if sequences is None: sequences = SequenceContainer(start, ref_sequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, mut_rate, only_vcf=only_vcf) + if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ + [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: + print("There's a cigar that's off.") + pdb.set_trace() else: sequences.update(start, ref_sequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, mut_rate) + if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ + [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: + print("There's a cigar that's off.") + pdb.set_trace() # insert variants sequences.insert_mutations(vars_from_prev_overlap + vars_in_window) @@ -661,10 +669,6 @@ def main(raw_args=None): is_unmapped = [] if paired_end: - if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ - [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: - print("There's a cigar that's off.") - pdb.set_trace() my_fraglen = fraglen_distribution.sample() my_read_data = sequences.sample_read(se_class, my_fraglen) # skip if we failed to find a valid position to sample read From 86b7a55e1187077eff80889b95017b0cc2a88a8e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 11:15:56 -0600 Subject: [PATCH 266/323] Debugging neat still --- source/SequenceContainer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index edd327c..47a7158 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -831,6 +831,9 @@ def sample_read(self, sequencing_model, frag_len=None): print('\nError, ref does not match alt while attempting to insert substitution error!\n') sys.exit(1) + if len(my_cigar) != 100: + print(str(my_cigar) + "is not equal to 100.") + pdb.set_trace() if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] From a5540d3c37388c4c4119a332b234425d0a09afa2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 11:29:28 -0600 Subject: [PATCH 267/323] Debugging neat still --- source/SequenceContainer.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 47a7158..602d85e 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -720,11 +720,9 @@ def sample_read(self, sequencing_model, frag_len=None): total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 - # debugging - if len(my_cigar) != 100: - print(my_cigar) + if total_d: + print("there is a deletion error") pdb.set_trace() - # add buffer sequence to fill in positions that get deleted read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] @@ -832,7 +830,7 @@ def sample_read(self, sequencing_model, frag_len=None): sys.exit(1) if len(my_cigar) != 100: - print(str(my_cigar) + "is not equal to 100.") + print(str(my_cigar) + " is not equal to 100.") pdb.set_trace() if any_indel_err: if len(expanded_cigar): From 9ad8fb9cd5c9a2196329264bf5d9c7c3dd27f2a4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 11:46:44 -0600 Subject: [PATCH 268/323] Debugging neat still --- source/SequenceContainer.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 602d85e..ec23976 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -618,6 +618,9 @@ def random_mutations(self): # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' + if len(CigarString(temp_symbol_string)) != 100: + print("Something wrong with temp symbol string") + pdb.set_trace() # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) From 7e6a2c4780b1ac26845e8fb757bd1e87e5e811ea Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 11:52:41 -0600 Subject: [PATCH 269/323] Hopefully fixing bugs, along with some refactoring --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index ec23976..2d6920f 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -618,7 +618,7 @@ def random_mutations(self): # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - if len(CigarString(temp_symbol_string)) != 100: + if len(temp_symbol_string) != 100: print("Something wrong with temp symbol string") pdb.set_trace() # pre-compute cigar strings From 3dba28a390f32e5b146d001e3fc6f3de2d4c17f4 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 12:00:51 -0600 Subject: [PATCH 270/323] still tracking down this bug --- source/SequenceContainer.py | 6 +++--- source/neat_cigar_rework.py | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2d6920f..d767f25 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -521,6 +521,9 @@ def random_mutations(self): self.black_list[p][k] = 1 all_indels[p].append(my_indel) + if my_indel: + print("Tracing indels") + pdb.set_trace() # add random snps all_snps = [[] for _ in self.sequences] for i in range(self.ploidy): @@ -618,9 +621,6 @@ def random_mutations(self): # TODO Delete commented out lines once CigarString works 100% # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - if len(temp_symbol_string) != 100: - print("Something wrong with temp symbol string") - pdb.set_trace() # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 4c87566..1c5b67b 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -1,4 +1,5 @@ import sys +import pdb from itertools import groupby from operator import itemgetter @@ -322,6 +323,8 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': except ValueError: print('\nBug: Problem retrieving fragment.\n') sys.exit(1) + print("checking cigar string creation") + pdb.set_trace() return CigarString(Cigar.string_from_elements(ret)) # TODO use this method or delete it. From c33e8053d5c7ab4fca8a7b2f3d9893b12c73fce3 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 12:47:05 -0600 Subject: [PATCH 271/323] still tracking down this bug --- source/SequenceContainer.py | 29 +++++++++++++++++++---------- source/neat_cigar_rework.py | 3 +-- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d767f25..8ddf62c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -12,7 +12,7 @@ from source.neat_cigar_rework import CigarString from source.probability import DiscreteDistribution, poisson_list -# from source.neat_cigar import CigarString +from source.neat_cigar import CigarString as CigarStringOld """ Constants needed for analysis @@ -591,7 +591,8 @@ def random_mutations(self): rolling_adj = 0 temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string2 = ['M' for _ in self.sequences[i]] + temp_symbol_string2 = ['M' for _ in self.sequences[i]] + assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -613,19 +614,22 @@ def random_mutations(self): temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ - # ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] + temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ + ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] + assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, indel_length) # TODO Delete commented out lines once CigarString works 100% - # temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' + temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' + assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% - # self.all_cigar[i].append(CigarString(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) + self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) + assert(self.all_cigar[i] == self.all_cigar2[i]) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -767,13 +771,14 @@ def sample_read(self, sequencing_model, frag_len=None): if not expanded_cigar: expanded_cigar = my_cigar.string_to_list() # TODO delete these lines using old CigarString once it is working 100% - # expanded_cigar = CigarString(string_in=my_cigar).get_list() + expanded_cigar2 = CigarStringOld(string_in=my_cigar).get_list() + assert(expanded_cigar == expanded_cigar2) fill_to_go = total_d - total_i + 1 if fill_to_go > 0: try: # TODO delete these lines using old CigarString once it is working 100% - # extra_cigar_val = CigarString(string_in=self.all_cigar[my_ploid][read[0] - # + fill_to_go]).get_list()[-fill_to_go:] + extra_cigar_val2 = CigarStringOld(string_in=self.all_cigar2[my_ploid][read[0] + + fill_to_go]).get_list()[-fill_to_go:] extra_cigar_val = self.all_cigar[my_ploid][read[0] + fill_to_go].string_to_list()[-fill_to_go:] @@ -782,6 +787,8 @@ def sample_read(self, sequencing_model, frag_len=None): # Skip all indel errors skip_indels = True + assert(extra_cigar_val == extra_cigar_val2) + if skip_indels: continue @@ -846,7 +853,9 @@ def sample_read(self, sequencing_model, frag_len=None): pdb.set_trace() # TODO delete this line once new cigar is 100% working - # my_cigar = CigarString(list_in=relevant_cigar).get_string() + my_cigar2 = CigarStringOld(list_in=relevant_cigar).get_string() + + assert(my_cigar == my_cigar2) read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, read[3], str(read[1])]) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 1c5b67b..215c05a 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -186,6 +186,7 @@ def insert_cigar_element(self, pos: int, >>> str2 = CigarString('1D1M') >>> iPos = 6610 + 1 >>> str1.insert_cigar_element(iPos, str2, -1) + >>> assert(len(str1) == 11100) >>> assert (str1.cigar == "6611M1D4489M") """ @@ -323,8 +324,6 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': except ValueError: print('\nBug: Problem retrieving fragment.\n') sys.exit(1) - print("checking cigar string creation") - pdb.set_trace() return CigarString(Cigar.string_from_elements(ret)) # TODO use this method or delete it. From 8f9e9ba01b796a0765348eaeed0cfd79e0552527 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 12:53:01 -0600 Subject: [PATCH 272/323] still tracking down this bug --- source/SequenceContainer.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 8ddf62c..27935a6 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -521,9 +521,6 @@ def random_mutations(self): self.black_list[p][k] = 1 all_indels[p].append(my_indel) - if my_indel: - print("Tracing indels") - pdb.set_trace() # add random snps all_snps = [[] for _ in self.sequences] for i in range(self.ploidy): From c113b367c41470d1a747523699d17c83f0ffa917 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 12:57:48 -0600 Subject: [PATCH 273/323] still tracking down this bug --- source/SequenceContainer.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 27935a6..dd82a66 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -108,6 +108,7 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] + self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] @@ -200,6 +201,7 @@ def update_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] + self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] self.black_list = [np.zeros(self.seq_len, dtype=' Date: Mon, 11 Jan 2021 13:14:49 -0600 Subject: [PATCH 274/323] still tracking down this bug --- source/SequenceContainer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index dd82a66..e6ad2b6 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -628,7 +628,11 @@ def random_mutations(self): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - assert(self.all_cigar[i] == self.all_cigar2[i]) + + for j in range(len(self.all_cigar[i])): + if self.all_cigar[i][j] != self.all_cigar2[i][j]: + print("mismatch in the cigars") + pdb.set_trace() # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. From 57b1804fadef3cd594ec4edc4e1b5a8306bd9dec Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 13:19:51 -0600 Subject: [PATCH 275/323] still tracking down this bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index e6ad2b6..abebd79 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -630,7 +630,7 @@ def random_mutations(self): self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) for j in range(len(self.all_cigar[i])): - if self.all_cigar[i][j] != self.all_cigar2[i][j]: + if self.all_cigar[i][j].cigar != self.all_cigar2[i][j]: print("mismatch in the cigars") pdb.set_trace() From 51696a3f63a4ad62290674960e0917fa86e0c34c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 13:27:15 -0600 Subject: [PATCH 276/323] still tracking down this bug --- source/SequenceContainer.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index abebd79..95d419c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -628,10 +628,9 @@ def random_mutations(self): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - - for j in range(len(self.all_cigar[i])): - if self.all_cigar[i][j].cigar != self.all_cigar2[i][j]: - print("mismatch in the cigars") + if temp_symbol_string.get_cigar_fragment(j, j + self.read_len) != CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string(): + print("new " + str(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) + print("old " + CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) pdb.set_trace() # create some data structures we will need later: From 4f93a57c7c760a195bfdf92425f4782ad3a4827c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 13:32:35 -0600 Subject: [PATCH 277/323] still tracking down this bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 95d419c..bd79945 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -628,7 +628,7 @@ def random_mutations(self): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) # TODO Delete commented out lines once CigarString works 100% self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - if temp_symbol_string.get_cigar_fragment(j, j + self.read_len) != CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string(): + if temp_symbol_string.get_cigar_fragment(j, j + self.read_len).cigar != CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string(): print("new " + str(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) print("old " + CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) pdb.set_trace() From 5384c899a669781156cf39d8d735a7429bb0f44d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 15:47:19 -0600 Subject: [PATCH 278/323] May have found the bug --- source/neat_cigar_rework.py | 85 +++++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 4 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 215c05a..e8320d8 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -238,19 +238,26 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': >>> start = 0 >>> end = 14 >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "10M4D") + >>> assert(len(frag) == 14) + >>> assert(frag.cigar == "10M5D4M") + + >>> str1 = CigarString('90M1D10M') + >>> start = 0 + >>> end = 100 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "90M1D10M") >>> str1 = CigarString('10M2D10M') >>> start = 10 >>> end = 12 >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2D") + >>> assert(frag.cigar == "2M") >>> str1 = CigarString('10M1D10M') >>> start = 10 >>> end = 12 >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "1D1M") + >>> assert(frag.cigar == "2M") >>> str1 = CigarString('102M2I10000M') >>> start1 = 1 @@ -261,6 +268,12 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': >>> frag2 = str1.get_cigar_fragment(start2, end2) >>> assert(frag1.cigar == "101M") >>> assert(frag2.cigar == "2I99M") + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25080 + >>> end = 25180 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar == '99M1D1M') """ # Minus 1 because python slices don't include the end coordinate window_size = end - start @@ -286,9 +299,18 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': start_found = False ret = [] for item in self.items(): - current_pos += item[0] current_block_size = item[0] current_symbol = item[1] + if current_symbol == 'D' and not start_found: + continue + elif current_symbol == 'D' and start_found: + ret.append(item) + continue + elif current_symbol in Cigar.read_consuming_ops: + current_pos += current_block_size + else: + print("Bug: Unknown symbol!") + sys.exit(1) if current_pos >= start and not start_found: start_found = True current_index = previous_pos + 1 @@ -381,3 +403,58 @@ def list_to_string(input_list: list) -> str: current_count = 1 symbols += str(current_count) + current_sym return symbols + + +if __name__ == "__main__": + str1 = CigarString('10M5D10M') + start = 0 + end = 14 + frag = str1.get_cigar_fragment(start, end) + assert (len(frag) == 14) + assert (frag.cigar == "10M5D4M") + print(frag.cigar + " == 10M5D4M") + + str1 = CigarString('90M1D10M') + start = 0 + end = 100 + frag = str1.get_cigar_fragment(start, end) + assert (frag.cigar == "90M1D10M") + print(frag.cigar + " == 90M1D10M") + + str1 = CigarString('10M2D10M') + start = 10 + end = 12 + frag = str1.get_cigar_fragment(start, end) + assert (frag.cigar == "2M") + print(frag.cigar + " == 2M") + + str1 = CigarString('10M1D10M') + start = 10 + end = 12 + frag = str1.get_cigar_fragment(start, end) + assert (frag.cigar == "2M") + print(frag.cigar + " == 2M") + + str1 = CigarString('102M2I10000M') + start1 = 1 + end1 = 102 + frag1 = str1.get_cigar_fragment(start1, end1) + start2 = 102 + end2 = 203 + frag2 = str1.get_cigar_fragment(start2, end2) + assert (frag1.cigar == "101M") + + print(frag1.cigar + " == 101M") + assert (frag2.cigar == "2I99M") + print(frag2.cigar + " == 2I99M") + + temp_symbol_string = CigarString('25179M1D8304M') + print(temp_symbol_string.get_cigar_fragment(25080, 25180)) + + str1 = CigarString('2I101M') + start = 0 + end = 100 + frag = str1.get_cigar_fragment(start, end) + assert(len(frag) == 100) + assert(frag.cigar == "2I98M") + print(frag.cigar + " == 2I98M") From 5a820d5ca749edb8eebbda1174ebb126b0539ac8 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 15:47:42 -0600 Subject: [PATCH 279/323] May have found the bug --- source/neat_cigar_rework.py | 55 ------------------------------------- 1 file changed, 55 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index e8320d8..f987174 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -403,58 +403,3 @@ def list_to_string(input_list: list) -> str: current_count = 1 symbols += str(current_count) + current_sym return symbols - - -if __name__ == "__main__": - str1 = CigarString('10M5D10M') - start = 0 - end = 14 - frag = str1.get_cigar_fragment(start, end) - assert (len(frag) == 14) - assert (frag.cigar == "10M5D4M") - print(frag.cigar + " == 10M5D4M") - - str1 = CigarString('90M1D10M') - start = 0 - end = 100 - frag = str1.get_cigar_fragment(start, end) - assert (frag.cigar == "90M1D10M") - print(frag.cigar + " == 90M1D10M") - - str1 = CigarString('10M2D10M') - start = 10 - end = 12 - frag = str1.get_cigar_fragment(start, end) - assert (frag.cigar == "2M") - print(frag.cigar + " == 2M") - - str1 = CigarString('10M1D10M') - start = 10 - end = 12 - frag = str1.get_cigar_fragment(start, end) - assert (frag.cigar == "2M") - print(frag.cigar + " == 2M") - - str1 = CigarString('102M2I10000M') - start1 = 1 - end1 = 102 - frag1 = str1.get_cigar_fragment(start1, end1) - start2 = 102 - end2 = 203 - frag2 = str1.get_cigar_fragment(start2, end2) - assert (frag1.cigar == "101M") - - print(frag1.cigar + " == 101M") - assert (frag2.cigar == "2I99M") - print(frag2.cigar + " == 2I99M") - - temp_symbol_string = CigarString('25179M1D8304M') - print(temp_symbol_string.get_cigar_fragment(25080, 25180)) - - str1 = CigarString('2I101M') - start = 0 - end = 100 - frag = str1.get_cigar_fragment(start, end) - assert(len(frag) == 100) - assert(frag.cigar == "2I98M") - print(frag.cigar + " == 2I98M") From 7aa276e00e4ef78d4e4f52cd022df4dcd1aef1f8 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 15:56:46 -0600 Subject: [PATCH 280/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index bd79945..f9abf74 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -618,7 +618,7 @@ def random_mutations(self): assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, indel_length) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) From 3c331ae2636e55e8ff69561aa752402fd09c4d22 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 16:37:45 -0600 Subject: [PATCH 281/323] found another bug --- source/SequenceContainer.py | 1 + source/neat_cigar_rework.py | 2 ++ 2 files changed, 3 insertions(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index f9abf74..2be1ca2 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -617,6 +617,7 @@ def random_mutations(self): ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: + pdb.set_trace() cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index f987174..3ece12d 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -188,6 +188,8 @@ def insert_cigar_element(self, pos: int, >>> str1.insert_cigar_element(iPos, str2, -1) >>> assert(len(str1) == 11100) >>> assert (str1.cigar == "6611M1D4489M") + + >>> str1 = CigarString('') """ if insertion_cigar is None: From 959d1e9b09e0af71777c2008db84ae643de37725 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 16:49:26 -0600 Subject: [PATCH 282/323] found another bug --- source/SequenceContainer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 2be1ca2..f9abf74 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -617,7 +617,6 @@ def random_mutations(self): ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: - pdb.set_trace() cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% From 0615c46bd36b86151473bd977aced3ab2b289baa Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 16:53:07 -0600 Subject: [PATCH 283/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index f9abf74..d8dfa0f 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -618,7 +618,7 @@ def random_mutations(self): assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, abs(indel_length)) # TODO Delete commented out lines once CigarString works 100% temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) From 2f7e3632d4e6c9678c04ebe906f1a8fb3f059465 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 16:57:02 -0600 Subject: [PATCH 284/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d8dfa0f..3dee975 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -620,8 +620,8 @@ def random_mutations(self): cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, abs(indel_length)) # TODO Delete commented out lines once CigarString works 100% + assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): From a4cf3eb694ce880f93d3d9e6fbd3ab41ab863a16 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 18:03:10 -0600 Subject: [PATCH 285/323] found another bug --- source/SequenceContainer.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 3dee975..167a4ae 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -620,8 +620,10 @@ def random_mutations(self): cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, abs(indel_length)) # TODO Delete commented out lines once CigarString works 100% - assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) + check = temp_symbol_string2[v_pos + 1] temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' + assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) + # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): From a86dbe56f0a0bc7c7e45b39711460132e9bf5267 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 18:09:35 -0600 Subject: [PATCH 286/323] found another bug --- source/SequenceContainer.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 167a4ae..1fee3af 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -613,16 +613,20 @@ def random_mutations(self): temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% + check = temp_symbol_string2[:v_pos + 1] temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, abs(indel_length)) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% check = temp_symbol_string2[v_pos + 1] temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) + if temp_symbol_string.cigar == '28662M4D4818M': + print("check this one") + pdb.set_trace() # pre-compute cigar strings From a881cc49bf2d38bfef9cfa93eb9cd0c48b729b8a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 18:11:45 -0600 Subject: [PATCH 287/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 1fee3af..394556c 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -624,7 +624,7 @@ def random_mutations(self): check = temp_symbol_string2[v_pos + 1] temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) - if temp_symbol_string.cigar == '28662M4D4818M': + if temp_symbol_string.cigar == '28662M4D4821M': print("check this one") pdb.set_trace() From 962e3110e07e047fde06c0bec07be3d285018996 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:06:18 -0600 Subject: [PATCH 288/323] found another bug --- source/SequenceContainer.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 394556c..0892f74 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -619,9 +619,10 @@ def random_mutations(self): assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') + original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% - check = temp_symbol_string2[v_pos + 1] + original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) if temp_symbol_string.cigar == '28662M4D4821M': From 0edbd0fa93a030909879c32dee3deb43596d9589 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:12:22 -0600 Subject: [PATCH 289/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 0892f74..d48b279 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -620,7 +620,7 @@ def random_mutations(self): elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') original_string = copy.deepcopy(temp_symbol_string) - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, 1) # TODO Delete commented out lines once CigarString works 100% original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' From bb3eea6d653b2a56141b937c04e07a43bdb061d6 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:12:45 -0600 Subject: [PATCH 290/323] found another bug --- source/SequenceContainer.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index d48b279..a419c46 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -625,9 +625,7 @@ def random_mutations(self): original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) - if temp_symbol_string.cigar == '28662M4D4821M': - print("check this one") - pdb.set_trace() + pdb.set_trace() # pre-compute cigar strings From 053b833d5f01cd0e5a0e5506d19af914b5def3f2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:37:18 -0600 Subject: [PATCH 291/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index a419c46..a46a3f8 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -778,7 +778,7 @@ def sample_read(self, sequencing_model, frag_len=None): if not expanded_cigar: expanded_cigar = my_cigar.string_to_list() # TODO delete these lines using old CigarString once it is working 100% - expanded_cigar2 = CigarStringOld(string_in=my_cigar).get_list() + expanded_cigar2 = CigarStringOld(string_in=my_cigar.cigar).get_list() assert(expanded_cigar == expanded_cigar2) fill_to_go = total_d - total_i + 1 if fill_to_go > 0: From a650437a01862f1b03fde2ca996da004a990e98e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:45:05 -0600 Subject: [PATCH 292/323] found another bug --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index a46a3f8..bc7af60 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -862,7 +862,7 @@ def sample_read(self, sequencing_model, frag_len=None): # TODO delete this line once new cigar is 100% working my_cigar2 = CigarStringOld(list_in=relevant_cigar).get_string() - assert(my_cigar == my_cigar2) + assert(my_cigar.cigar == my_cigar2) read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, read[3], str(read[1])]) From 920beb1c6ff6f0411ccd72fbb2a4918bb95fd104 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 19:50:19 -0600 Subject: [PATCH 293/323] found another bug --- source/SequenceContainer.py | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index bc7af60..a09d833 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -734,9 +734,6 @@ def sample_read(self, sequencing_model, frag_len=None): total_i = sum([error[1] for error in read[2] if error[0] == 'I']) avail_b = len(self.sequences[my_ploid]) - read[0] - self.read_len - 1 - if total_d: - print("there is a deletion error") - pdb.set_trace() # add buffer sequence to fill in positions that get deleted read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] expanded_cigar = [] @@ -846,19 +843,10 @@ def sample_read(self, sequencing_model, frag_len=None): print('\nError, ref does not match alt while attempting to insert substitution error!\n') sys.exit(1) - if len(my_cigar) != 100: - print(str(my_cigar) + " is not equal to 100.") - pdb.set_trace() if any_indel_err: if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) - - # debugging - if len(my_cigar) != 100: - print(my_cigar) - pdb.set_trace() - # TODO delete this line once new cigar is 100% working my_cigar2 = CigarStringOld(list_in=relevant_cigar).get_string() From 40bda9eb88c8feb5ce19f926d08132ab530e1497 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 20:09:27 -0600 Subject: [PATCH 294/323] found another bug --- source/SequenceContainer.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index a09d833..75a8371 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -610,13 +610,16 @@ def random_mutations(self): # notate indel positions for cigar computation if indel_length > 0: cigar_to_insert = CigarString(str(indel_length) + 'I') + original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, len(all_indels_ins[i][j][1])) # TODO Delete commented out lines once CigarString works 100% - check = temp_symbol_string2[:v_pos + 1] + original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] - assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) + if temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): + print('something wrong with inserting') + pdb.set_trace() elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') original_string = copy.deepcopy(temp_symbol_string) @@ -624,9 +627,9 @@ def random_mutations(self): # TODO Delete commented out lines once CigarString works 100% original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - assert (temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) - pdb.set_trace() - + if temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): + print('something wrong with deletion') + pdb.set_trace() # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): From 9b4f154593309fb490d8677770edac79b911e38d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 11 Jan 2021 20:13:54 -0600 Subject: [PATCH 295/323] found another bug --- source/SequenceContainer.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 75a8371..5091fe2 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -591,7 +591,9 @@ def random_mutations(self): temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") # TODO Delete commented out lines once CigarString works 100% temp_symbol_string2 = ['M' for _ in self.sequences[i]] - assert(temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string()) + if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): + print('something wrong with temp symbol creation') + pdb.set_trace() for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -617,7 +619,7 @@ def random_mutations(self): original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] - if temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): + if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): print('something wrong with inserting') pdb.set_trace() elif indel_length < 0: @@ -627,7 +629,7 @@ def random_mutations(self): # TODO Delete commented out lines once CigarString works 100% original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - if temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): + if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): print('something wrong with deletion') pdb.set_trace() From 10cf69f15c776f23860bd73bc0612ce2396750fb Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 12 Jan 2021 01:30:13 -0600 Subject: [PATCH 296/323] found another bug --- source/neat_cigar_rework.py | 210 +++++++++++++++++++++++------------- 1 file changed, 134 insertions(+), 76 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 3ece12d..4a4b872 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -2,6 +2,7 @@ import pdb from itertools import groupby from operator import itemgetter +from source.neat_cigar import CigarString as CigarStringOld class Cigar(object): @@ -154,13 +155,44 @@ class CigarString(Cigar): the rest of the NEAT codebase """ - def insert_cigar_element(self, pos: int, - insertion_cigar: 'CigarString', - length: int = 0) -> None: + def __str__(self): + return self.cigar + + def __repr__(self): + return "CigarString('%s')" % self + + def find_position(self, position: int) -> int: + """ + This finds the index of the element of list(self.items()) that contains the starting position given. + + :param position: The position to find of the CigarString + :return: the index of that in terms of the elements of list(self.items()) + >>> cigar = CigarString('2064M1I12979M3D18439M') + >>> position = 15414 + >>> index, bases = cigar.find_position(position) + >>> assert(index == 4) + >>> assert(bases == 370) + """ + consumed_bases = 0 + bases_left = position + index = 0 + for item in self.items(): + if item[1] == 'D': + index += 1 + continue + consumed_bases += item[0] + if consumed_bases > position: + return index, bases_left + else: + bases_left -= item[0] + index += 1 + return index, bases_left + + def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: int = 0) -> None: """ Inserts a cigar string in either string or list format to the existing cigar string at position pos. - :param length: If consuming spaces, length of cigar to be added + :param length: Length of the items to be consumed by the insertion :param insertion_cigar: A cigar to insert into current cigar string :param pos: integer position where to insert the input cigar string :return: None @@ -169,7 +201,7 @@ def insert_cigar_element(self, pos: int, >>> str2 = CigarString('10I25M') >>> iPos = 55 >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "50M5D10I25M5D7I23M") + >>> assert(str1.cigar == "50M10D15I25M2I23M") >>> str1 = CigarString('50M10D7I23M') >>> iPos = 20 @@ -179,13 +211,13 @@ def insert_cigar_element(self, pos: int, >>> str1 = CigarString('11100M') >>> str2 = CigarString('2I') >>> iPos = 5785 + 1 - >>> str1.insert_cigar_element(iPos, str2, 1) - >>> assert (str1.cigar == "5786M2I5313M") + >>> str1.insert_cigar_element(iPos, str2) + >>> assert (str1.cigar == "5786M2I5314M") >>> str1 = CigarString('11100M') - >>> str2 = CigarString('1D1M') + >>> str2 = CigarString('1D') >>> iPos = 6610 + 1 - >>> str1.insert_cigar_element(iPos, str2, -1) + >>> str1.insert_cigar_element(iPos, str2) >>> assert(len(str1) == 11100) >>> assert (str1.cigar == "6611M1D4489M") @@ -200,27 +232,37 @@ def insert_cigar_element(self, pos: int, print('\nError: Invalid insertion position in CigarString\n') sys.exit(1) + if length < 0: + print('\nError: Did not understand the indel length to be inserted\n') + sys.exit(1) + try: - current_pos = 0 - previous_pos = 0 - new_element = [] found = False - for item in self.items(): - current_pos += item[0] - if current_pos > pos and not found: - current_block = item[0] - current_index = pos - previous_pos - new_element.append((current_index, item[1])) - for insert in insertion_cigar.items(): - new_element.append(insert) - if length != 0: - new_element.append((current_block-current_index-abs(length), item[1])) - else: - new_element.append((current_block-current_index, item[1])) - found = True - else: - new_element.append(item) - previous_pos = current_pos + index, bases_remain = self.find_position(pos) + new_element = list(self.items())[:index] + list_of_items = list(self.items())[index:] + if len(list_of_items) == 1: + new_element.append((bases_remain, list_of_items[0][1])) + new_element += list(insertion_cigar.items()) + new_element.append((list_of_items[0][0] - bases_remain - length, list_of_items[0][1])) + else: + for item in list_of_items: + if item[1] == 'D': + new_element.append(item) + elif found: + new_element.append(item) + elif bases_remain > item[0]: + new_element.append(item) + bases_remain -= item[0] + elif bases_remain == item[0]: + new_element.append(item) + new_element += list(insertion_cigar.items()) + found = True + elif bases_remain < item[0]: + new_element.append((bases_remain, item[1])) + new_element += list(insertion_cigar.items()) + new_element.append((item[0]-bases_remain-length, item[1])) + found = True new_string = self.string_from_elements(new_element) self.cigar = CigarString(new_string).merge_like_ops().cigar except ValueError: @@ -295,60 +337,38 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': sys.exit(1) try: - # Minus 1 because of indexing - current_pos = -1 - previous_pos = -1 - start_found = False - ret = [] - for item in self.items(): - current_block_size = item[0] - current_symbol = item[1] - if current_symbol == 'D' and not start_found: - continue - elif current_symbol == 'D' and start_found: - ret.append(item) - continue - elif current_symbol in Cigar.read_consuming_ops: - current_pos += current_block_size - else: - print("Bug: Unknown symbol!") - sys.exit(1) - if current_pos >= start and not start_found: - start_found = True - current_index = previous_pos + 1 - # start - current index = The index where we start relative to the start of the block - # if there are not enough items in the current block, we will consume what is left - # and move to the next block - if current_block_size - (start - current_index) >= window_size: - # If from where we start to the end of the current block is sufficient for our window, - # then the return is just everything of that symbol - ret.append((window_size, current_symbol)) - break - else: - # if there are not enough items in the current block, we will consume what is left - # and move to the next block - ret.append((current_block_size - (start - current_index), current_symbol)) - # shrink the window to account for the items we've found - window_size -= current_block_size - (start - current_index) - elif start_found: - if current_block_size >= window_size: - # If this block can cover the remaining slice, then append the end and break - ret.append((window_size, current_symbol)) + start_index, bases_remain = self.find_position(start) + end_index = self.find_position(end)[0] + new_element = [] + # +1 here to make it inclusive + list_of_items = list(self.items())[start_index:end_index+1] + if len(list_of_items) == 1: + new_element.append((window_size, list_of_items[0][1])) + else: + for item in list_of_items: + if item[1] == 'D': + new_element.append(item) + elif bases_remain > 0: + bases = item[0] - bases_remain + if bases <= 0: + print("Something went wrong retrieving fragment") + sys.exit(1) + bases_remain = 0 + window_size -= bases + new_element.append((bases, item[1])) + elif window_size > item[0]: + new_element.append(item) + window_size -= item[0] + elif window_size <= item[0]: + new_element.append((window_size, item[1])) break - else: - # If we still need more, then consume this entire block - ret.append((current_block_size, current_symbol)) - # shrink the window to account for the items we've found - window_size -= current_block_size - else: - pass - previous_pos = current_pos + new_string = self.string_from_elements(new_element) + return CigarString(new_string).merge_like_ops() except ValueError: print('\nBug: Problem retrieving fragment.\n') sys.exit(1) - return CigarString(Cigar.string_from_elements(ret)) # TODO use this method or delete it. def count_elements(self, element: str) -> int: @@ -405,3 +425,41 @@ def list_to_string(input_list: list) -> str: current_count = 1 symbols += str(current_count) + current_sym return symbols + + +if __name__ == "__main__": + original_string = '2064M1I12979M3D18439M' + original_cigar = CigarString(original_string) + v_pos = 15414 + cigar_to_insert = CigarString('6I') + original_cigar.insert_cigar_element(v_pos, cigar_to_insert, 1) + if original_cigar.cigar == '2064M1I12979M3D370M6I18068M': + print("OKAY") + else: + print("NOT OKKKAAAAAY") + + str1 = CigarString('50M10D7I23M') + str2 = CigarString('10I25M') + iPos = 55 + str1.insert_cigar_element(iPos, str2) + assert (str1.cigar == "50M10D15I25M2I23M") + + str1 = CigarString('50M10D7I23M') + iPos = 20 + str1.insert_cigar_element(iPos, str2) + assert (str1.cigar == "20M10I55M10D7I23M") + + str1 = CigarString('11100M') + str2 = CigarString('2I') + iPos = 5785 + 1 + str1.insert_cigar_element(iPos, str2) + assert (str1.cigar == "5786M2I5314M") + + str1 = CigarString('11100M') + str2 = CigarString('1D') + iPos = 6610 + 1 + str1.insert_cigar_element(iPos, str2) + assert (len(str1) == 11100) + assert (str1.cigar == "6611M1D4489M") + + str1 = CigarString('') \ No newline at end of file From 42f8dce92217d5bf96243150f9cafb555be13500 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 12 Jan 2021 01:38:43 -0600 Subject: [PATCH 297/323] found another bug --- source/neat_cigar_rework.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 4a4b872..8803eed 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -220,8 +220,6 @@ def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: >>> str1.insert_cigar_element(iPos, str2) >>> assert(len(str1) == 11100) >>> assert (str1.cigar == "6611M1D4489M") - - >>> str1 = CigarString('') """ if insertion_cigar is None: @@ -244,7 +242,10 @@ def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: if len(list_of_items) == 1: new_element.append((bases_remain, list_of_items[0][1])) new_element += list(insertion_cigar.items()) - new_element.append((list_of_items[0][0] - bases_remain - length, list_of_items[0][1])) + if list_of_items[0][0] - bases_remain >= length: + new_element.append((list_of_items[0][0] - bases_remain - length, list_of_items[0][1])) + else: + new_element.append((list_of_items[0][0] - bases_remain, list_of_items[0][1])) else: for item in list_of_items: if item[1] == 'D': @@ -261,7 +262,10 @@ def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: elif bases_remain < item[0]: new_element.append((bases_remain, item[1])) new_element += list(insertion_cigar.items()) - new_element.append((item[0]-bases_remain-length, item[1])) + if item[0] - bases_remain >= length: + new_element.append((item[0] - bases_remain - length, item[1])) + else: + new_element.append((list_of_items[0][0] - bases_remain, item[1])) found = True new_string = self.string_from_elements(new_element) self.cigar = CigarString(new_string).merge_like_ops().cigar From a3dd14a0959ee8ceb6f68181c4935a45833325ee Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 19 Jan 2021 15:58:27 -0600 Subject: [PATCH 298/323] Rewrote how the insert element function works in cigars. --- source/SequenceContainer.py | 4 +- source/neat_cigar_rework.py | 128 ++++++++++++++++++++++-------------- 2 files changed, 81 insertions(+), 51 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 5091fe2..372fc0d 100644 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -614,7 +614,7 @@ def random_mutations(self): cigar_to_insert = CigarString(str(indel_length) + 'I') original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, - len(all_indels_ins[i][j][1])) + v_pos2 + 1) # TODO Delete commented out lines once CigarString works 100% original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ @@ -625,7 +625,7 @@ def random_mutations(self): elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') original_string = copy.deepcopy(temp_symbol_string) - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, 1) + temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% original_list = copy.deepcopy(temp_symbol_string2) temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 8803eed..435d46a 100644 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -188,13 +188,13 @@ def find_position(self, position: int) -> int: index += 1 return index, bases_left - def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: int = 0) -> None: + def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: """ Inserts a cigar string in either string or list format to the existing cigar string at position pos. - :param length: Length of the items to be consumed by the insertion :param insertion_cigar: A cigar to insert into current cigar string - :param pos: integer position where to insert the input cigar string + :param pos1: integer position where to insert the input cigar string + :param pos2: integer position where to pick up the remainder :return: None >>> str1 = CigarString('50M10D7I23M') @@ -220,54 +220,71 @@ def insert_cigar_element(self, pos: int, insertion_cigar: 'CigarString', length: >>> str1.insert_cigar_element(iPos, str2) >>> assert(len(str1) == 11100) >>> assert (str1.cigar == "6611M1D4489M") + + >>> str1 = CigarString('10M1I2D10M') + >>> str2 = CigarString('1D') + >>> pos1 = 10 + >>> pos2 = pos1 + 2 + >>> str1.insert_cigar_element(pos1, str2, pos2) + >>> cigar_to_insert = '1D1M' + >>> str1_list[pos1] = cigar_to_insert + >>> test_string = CigarStringOld.list_to_string(str1_list) + >>> assert(str1.cigar == test_string) + + >>> original_string = '100M1I10M' + >>> original_cigar = CigarString(original_string) + >>> v_pos = 9 + >>> v_pos2 = 9 + 6 + >>> cigar_to_insert = CigarString('6I') + >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) + >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') + >>> indel_length = 6 + >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] + >>> test_string = CigarStringOld.list_to_string(test_string) + >>> assert (original_cigar.cigar == test_string) """ if insertion_cigar is None: print('\nError: Invalid insertion operation in CigarString\n') sys.exit(1) - if pos < 0 or pos >= len(self): + if pos1 < 0 or pos1 >= len(self): print('\nError: Invalid insertion position in CigarString\n') sys.exit(1) - if length < 0: - print('\nError: Did not understand the indel length to be inserted\n') + if pos2 and (pos2 < pos1 or pos2 >= len(self)): + print('\nError: Invalid second position\n') sys.exit(1) try: found = False - index, bases_remain = self.find_position(pos) - new_element = list(self.items())[:index] - list_of_items = list(self.items())[index:] - if len(list_of_items) == 1: - new_element.append((bases_remain, list_of_items[0][1])) - new_element += list(insertion_cigar.items()) - if list_of_items[0][0] - bases_remain >= length: - new_element.append((list_of_items[0][0] - bases_remain - length, list_of_items[0][1])) - else: - new_element.append((list_of_items[0][0] - bases_remain, list_of_items[0][1])) - else: - for item in list_of_items: - if item[1] == 'D': - new_element.append(item) - elif found: - new_element.append(item) - elif bases_remain > item[0]: - new_element.append(item) - bases_remain -= item[0] - elif bases_remain == item[0]: - new_element.append(item) - new_element += list(insertion_cigar.items()) - found = True - elif bases_remain < item[0]: - new_element.append((bases_remain, item[1])) - new_element += list(insertion_cigar.items()) - if item[0] - bases_remain >= length: - new_element.append((item[0] - bases_remain - length, item[1])) - else: - new_element.append((list_of_items[0][0] - bases_remain, item[1])) - found = True - new_string = self.string_from_elements(new_element) + start_index, bases_remain = self.find_position(pos1) + extra_bases_to_discard = 0 + if pos2: + extra_bases_to_discard = pos2 - pos1 + # TODO search for all instances of insert and get fragment and make sure they all work + ret = list(self.items())[:start_index] + items_to_iterate = list(self.items())[start_index:] + new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] + - bases_remain, items_to_iterate[0][1])) + ret.append(new_item[0]) + items_to_iterate[0:1] = new_item[1:] + ret += [item for item in insertion_cigar.items()] + for item in items_to_iterate: + if item[1] == 'D': + ret.append(item) + elif found: + ret.append(item) + elif extra_bases_to_discard > item[0]: + extra_bases_to_discard -= item[0] + elif extra_bases_to_discard == item[0]: + extra_bases_to_discard = 0 + found = True + elif extra_bases_to_discard < item[0]: + ret.append((item[0] - extra_bases_to_discard, item[1])) + extra_bases_to_discard = 0 + found = True + new_string = self.string_from_elements(ret) self.cigar = CigarString(new_string).merge_like_ops().cigar except ValueError: print('\nBug: Problem with insertion.\n') @@ -432,16 +449,6 @@ def list_to_string(input_list: list) -> str: if __name__ == "__main__": - original_string = '2064M1I12979M3D18439M' - original_cigar = CigarString(original_string) - v_pos = 15414 - cigar_to_insert = CigarString('6I') - original_cigar.insert_cigar_element(v_pos, cigar_to_insert, 1) - if original_cigar.cigar == '2064M1I12979M3D370M6I18068M': - print("OKAY") - else: - print("NOT OKKKAAAAAY") - str1 = CigarString('50M10D7I23M') str2 = CigarString('10I25M') iPos = 55 @@ -466,4 +473,27 @@ def list_to_string(input_list: list) -> str: assert (len(str1) == 11100) assert (str1.cigar == "6611M1D4489M") - str1 = CigarString('') \ No newline at end of file + str1 = CigarString('10M1I2D10M') + str2 = CigarString('1D1M') + pos1 = 10 + pos2 = pos1 + 2 + str1_list = str1.string_to_list() + cigar_to_insert = '1D1M' + str1_list[pos1] = cigar_to_insert + test_string = CigarStringOld.list_to_string(str1_list) + str1.insert_cigar_element(pos1, str2, pos1+1) + assert (str1.cigar == test_string) + + original_string = '100M1I10M' + cig2 = CigarStringOld(string_in=original_string).get_list() + original_cigar = CigarString(original_string) + v_pos = 9 + v_pos2 = 9 + 6 + cigar_to_insert = CigarString('6I') + original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) + cigar_list = CigarStringOld.string_to_list('100M1I10M') + indel_length = 6 + test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] + test_string = CigarStringOld.list_to_string(test_string) + assert (original_cigar.cigar == test_string) + From d87bb198a4fc6c785ce886baa2c2e1958f2d42e0 Mon Sep 17 00:00:00 2001 From: jallen17 Date: Tue, 19 Jan 2021 16:55:31 -0600 Subject: [PATCH 299/323] minor bug fixes --- .gitattributes | 0 .github/ISSUE_TEMPLATE/bug_report.md | 0 .github/ISSUE_TEMPLATE/feature_request.md | 0 .gitignore | 0 CODE_OF_CONDUCT.md | 0 CONTRIBUTING.md | 0 LICENSE.md | 0 README.md | 0 bacterial_genreads_wrapper.py | 0 docs/PE_SE_reads.png | Bin docs/flow_new.png | Bin gen_reads.py | 0 merge_jobs.py | 0 models/MutModel_BRCA_US_ICGC.p | Bin models/MutModel_CLLE-ES_ICGC.p | Bin models/MutModel_NA12878.p.gz | Bin models/MutModel_SKCM-US_ICGC.p | Bin models/README.md | 0 models/errorModel_pacbio_toy.p | Bin models/errorModel_toy.p | Bin models/fraglenModel_toy.p | Bin models/gcBias_toy.p | Bin models/gcBias_uniform.p | Bin models/genReadsTumorTutorial.zip | Bin source/SequenceContainer.py | 0 source/__init__.py | 0 source/biopython_modified_bgzf.py | 0 source/fm_pos_test.py | 0 source/input_checking.py | 0 source/neat_cigar.py | 0 source/neat_cigar_rework.py | 0 source/output_file_writer.py | 0 source/probability.py | 0 source/ref_func.py | 0 source/test_write.py | 0 source/vcf_func.py | 0 utilities/README.md | 0 utilities/__init__.py | 0 utilities/compute_fraglen.py | 0 utilities/compute_gc.py | 0 utilities/genSeqErrorModel.py | 0 utilities/gen_mut_model.py | 0 utilities/plotMutModel.py | 0 utilities/repickle.py | 0 utilities/validateBam.py | 0 utilities/validateFQ.py | 0 utilities/vcf_compare_OLD.py | 0 47 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 .gitattributes mode change 100644 => 100755 .github/ISSUE_TEMPLATE/bug_report.md mode change 100644 => 100755 .github/ISSUE_TEMPLATE/feature_request.md mode change 100644 => 100755 .gitignore mode change 100644 => 100755 CODE_OF_CONDUCT.md mode change 100644 => 100755 CONTRIBUTING.md mode change 100644 => 100755 LICENSE.md mode change 100644 => 100755 README.md mode change 100644 => 100755 bacterial_genreads_wrapper.py mode change 100644 => 100755 docs/PE_SE_reads.png mode change 100644 => 100755 docs/flow_new.png mode change 100644 => 100755 gen_reads.py mode change 100644 => 100755 merge_jobs.py mode change 100644 => 100755 models/MutModel_BRCA_US_ICGC.p mode change 100644 => 100755 models/MutModel_CLLE-ES_ICGC.p mode change 100644 => 100755 models/MutModel_NA12878.p.gz mode change 100644 => 100755 models/MutModel_SKCM-US_ICGC.p mode change 100644 => 100755 models/README.md mode change 100644 => 100755 models/errorModel_pacbio_toy.p mode change 100644 => 100755 models/errorModel_toy.p mode change 100644 => 100755 models/fraglenModel_toy.p mode change 100644 => 100755 models/gcBias_toy.p mode change 100644 => 100755 models/gcBias_uniform.p mode change 100644 => 100755 models/genReadsTumorTutorial.zip mode change 100644 => 100755 source/SequenceContainer.py mode change 100644 => 100755 source/__init__.py mode change 100644 => 100755 source/biopython_modified_bgzf.py mode change 100644 => 100755 source/fm_pos_test.py mode change 100644 => 100755 source/input_checking.py mode change 100644 => 100755 source/neat_cigar.py mode change 100644 => 100755 source/neat_cigar_rework.py mode change 100644 => 100755 source/output_file_writer.py mode change 100644 => 100755 source/probability.py mode change 100644 => 100755 source/ref_func.py mode change 100644 => 100755 source/test_write.py mode change 100644 => 100755 source/vcf_func.py mode change 100644 => 100755 utilities/README.md mode change 100644 => 100755 utilities/__init__.py mode change 100644 => 100755 utilities/compute_fraglen.py mode change 100644 => 100755 utilities/compute_gc.py mode change 100644 => 100755 utilities/genSeqErrorModel.py mode change 100644 => 100755 utilities/gen_mut_model.py mode change 100644 => 100755 utilities/plotMutModel.py mode change 100644 => 100755 utilities/repickle.py mode change 100644 => 100755 utilities/validateBam.py mode change 100644 => 100755 utilities/validateFQ.py mode change 100644 => 100755 utilities/vcf_compare_OLD.py diff --git a/.gitattributes b/.gitattributes old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md old mode 100644 new mode 100755 diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md old mode 100644 new mode 100755 diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md old mode 100644 new mode 100755 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md old mode 100644 new mode 100755 diff --git a/LICENSE.md b/LICENSE.md old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/bacterial_genreads_wrapper.py b/bacterial_genreads_wrapper.py old mode 100644 new mode 100755 diff --git a/docs/PE_SE_reads.png b/docs/PE_SE_reads.png old mode 100644 new mode 100755 diff --git a/docs/flow_new.png b/docs/flow_new.png old mode 100644 new mode 100755 diff --git a/gen_reads.py b/gen_reads.py old mode 100644 new mode 100755 diff --git a/merge_jobs.py b/merge_jobs.py old mode 100644 new mode 100755 diff --git a/models/MutModel_BRCA_US_ICGC.p b/models/MutModel_BRCA_US_ICGC.p old mode 100644 new mode 100755 diff --git a/models/MutModel_CLLE-ES_ICGC.p b/models/MutModel_CLLE-ES_ICGC.p old mode 100644 new mode 100755 diff --git a/models/MutModel_NA12878.p.gz b/models/MutModel_NA12878.p.gz old mode 100644 new mode 100755 diff --git a/models/MutModel_SKCM-US_ICGC.p b/models/MutModel_SKCM-US_ICGC.p old mode 100644 new mode 100755 diff --git a/models/README.md b/models/README.md old mode 100644 new mode 100755 diff --git a/models/errorModel_pacbio_toy.p b/models/errorModel_pacbio_toy.p old mode 100644 new mode 100755 diff --git a/models/errorModel_toy.p b/models/errorModel_toy.p old mode 100644 new mode 100755 diff --git a/models/fraglenModel_toy.p b/models/fraglenModel_toy.p old mode 100644 new mode 100755 diff --git a/models/gcBias_toy.p b/models/gcBias_toy.p old mode 100644 new mode 100755 diff --git a/models/gcBias_uniform.p b/models/gcBias_uniform.p old mode 100644 new mode 100755 diff --git a/models/genReadsTumorTutorial.zip b/models/genReadsTumorTutorial.zip old mode 100644 new mode 100755 diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py old mode 100644 new mode 100755 diff --git a/source/__init__.py b/source/__init__.py old mode 100644 new mode 100755 diff --git a/source/biopython_modified_bgzf.py b/source/biopython_modified_bgzf.py old mode 100644 new mode 100755 diff --git a/source/fm_pos_test.py b/source/fm_pos_test.py old mode 100644 new mode 100755 diff --git a/source/input_checking.py b/source/input_checking.py old mode 100644 new mode 100755 diff --git a/source/neat_cigar.py b/source/neat_cigar.py old mode 100644 new mode 100755 diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py old mode 100644 new mode 100755 diff --git a/source/output_file_writer.py b/source/output_file_writer.py old mode 100644 new mode 100755 diff --git a/source/probability.py b/source/probability.py old mode 100644 new mode 100755 diff --git a/source/ref_func.py b/source/ref_func.py old mode 100644 new mode 100755 diff --git a/source/test_write.py b/source/test_write.py old mode 100644 new mode 100755 diff --git a/source/vcf_func.py b/source/vcf_func.py old mode 100644 new mode 100755 diff --git a/utilities/README.md b/utilities/README.md old mode 100644 new mode 100755 diff --git a/utilities/__init__.py b/utilities/__init__.py old mode 100644 new mode 100755 diff --git a/utilities/compute_fraglen.py b/utilities/compute_fraglen.py old mode 100644 new mode 100755 diff --git a/utilities/compute_gc.py b/utilities/compute_gc.py old mode 100644 new mode 100755 diff --git a/utilities/genSeqErrorModel.py b/utilities/genSeqErrorModel.py old mode 100644 new mode 100755 diff --git a/utilities/gen_mut_model.py b/utilities/gen_mut_model.py old mode 100644 new mode 100755 diff --git a/utilities/plotMutModel.py b/utilities/plotMutModel.py old mode 100644 new mode 100755 diff --git a/utilities/repickle.py b/utilities/repickle.py old mode 100644 new mode 100755 diff --git a/utilities/validateBam.py b/utilities/validateBam.py old mode 100644 new mode 100755 diff --git a/utilities/validateFQ.py b/utilities/validateFQ.py old mode 100644 new mode 100755 diff --git a/utilities/vcf_compare_OLD.py b/utilities/vcf_compare_OLD.py old mode 100644 new mode 100755 From 21b89654a863927ba362944decb2ba7e3975e9c5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 19 Jan 2021 17:20:48 -0600 Subject: [PATCH 300/323] Bug fixin' --- source/SequenceContainer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 372fc0d..cc96d17 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -623,7 +623,7 @@ def random_mutations(self): print('something wrong with inserting') pdb.set_trace() elif indel_length < 0: - cigar_to_insert = CigarString(str(abs(indel_length)) + 'D1M') + cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) # TODO Delete commented out lines once CigarString works 100% From 55fd67b0f306a2b7b9fbcffe6d2ff241e0722ee5 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 19 Jan 2021 17:32:38 -0600 Subject: [PATCH 301/323] Still trying to fix this bug --- source/neat_cigar_rework.py | 60 ++++++++----------------------------- 1 file changed, 12 insertions(+), 48 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 435d46a..f5971f0 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -181,7 +181,7 @@ def find_position(self, position: int) -> int: index += 1 continue consumed_bases += item[0] - if consumed_bases > position: + if consumed_bases >= position: return index, bases_left else: bases_left -= item[0] @@ -339,6 +339,12 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': >>> end = 25180 >>> frag = temp_symbol_string.get_cigar_fragment(start, end) >>> assert(frag.cigar == '99M1D1M') + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25079 + >>> end = start + 100 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar = "100M") """ # Minus 1 because python slices don't include the end coordinate window_size = end - start @@ -449,51 +455,9 @@ def list_to_string(input_list: list) -> str: if __name__ == "__main__": - str1 = CigarString('50M10D7I23M') - str2 = CigarString('10I25M') - iPos = 55 - str1.insert_cigar_element(iPos, str2) - assert (str1.cigar == "50M10D15I25M2I23M") - - str1 = CigarString('50M10D7I23M') - iPos = 20 - str1.insert_cigar_element(iPos, str2) - assert (str1.cigar == "20M10I55M10D7I23M") - - str1 = CigarString('11100M') - str2 = CigarString('2I') - iPos = 5785 + 1 - str1.insert_cigar_element(iPos, str2) - assert (str1.cigar == "5786M2I5314M") - - str1 = CigarString('11100M') - str2 = CigarString('1D') - iPos = 6610 + 1 - str1.insert_cigar_element(iPos, str2) - assert (len(str1) == 11100) - assert (str1.cigar == "6611M1D4489M") - - str1 = CigarString('10M1I2D10M') - str2 = CigarString('1D1M') - pos1 = 10 - pos2 = pos1 + 2 - str1_list = str1.string_to_list() - cigar_to_insert = '1D1M' - str1_list[pos1] = cigar_to_insert - test_string = CigarStringOld.list_to_string(str1_list) - str1.insert_cigar_element(pos1, str2, pos1+1) - assert (str1.cigar == test_string) - - original_string = '100M1I10M' - cig2 = CigarStringOld(string_in=original_string).get_list() - original_cigar = CigarString(original_string) - v_pos = 9 - v_pos2 = 9 + 6 - cigar_to_insert = CigarString('6I') - original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) - cigar_list = CigarStringOld.string_to_list('100M1I10M') - indel_length = 6 - test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] - test_string = CigarStringOld.list_to_string(test_string) - assert (original_cigar.cigar == test_string) + temp_symbol_string = CigarString('25179M1D8304M') + start = 25079 + end = start + 100 + frag = temp_symbol_string.get_cigar_fragment(start, end) + assert (frag.cigar == "100M") From ce67b8088f8c8f8bc3836fe75138fd6f8a0f34a2 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 20 Jan 2021 19:37:11 -0600 Subject: [PATCH 302/323] added some set_traces --- source/neat_cigar_rework.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index f5971f0..b20fc01 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -379,6 +379,7 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': bases = item[0] - bases_remain if bases <= 0: print("Something went wrong retrieving fragment") + pdb.set_trace() sys.exit(1) bases_remain = 0 window_size -= bases @@ -395,6 +396,7 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': except ValueError: print('\nBug: Problem retrieving fragment.\n') + pdb.set_trace() sys.exit(1) # TODO use this method or delete it. @@ -459,5 +461,6 @@ def list_to_string(input_list: list) -> str: start = 25079 end = start + 100 frag = temp_symbol_string.get_cigar_fragment(start, end) + print(frag) assert (frag.cigar == "100M") From ccd372cf4c6838627516a59d5506e9fd62707bbd Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 21 Jan 2021 12:21:10 -0600 Subject: [PATCH 303/323] cleaning up insert cigar and get cigar fragment --- source/neat_cigar_rework.py | 81 ++++++++++++++++++++++++++----------- 1 file changed, 57 insertions(+), 24 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index b20fc01..000eb0e 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -161,7 +161,7 @@ def __str__(self): def __repr__(self): return "CigarString('%s')" % self - def find_position(self, position: int) -> int: + def find_position(self, position: int) -> (int,int): """ This finds the index of the element of list(self.items()) that contains the starting position given. @@ -227,6 +227,7 @@ def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: >>> pos2 = pos1 + 2 >>> str1.insert_cigar_element(pos1, str2, pos2) >>> cigar_to_insert = '1D1M' + >>> str1_list = str1.string_to_list() >>> str1_list[pos1] = cigar_to_insert >>> test_string = CigarStringOld.list_to_string(str1_list) >>> assert(str1.cigar == test_string) @@ -263,27 +264,40 @@ def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: if pos2: extra_bases_to_discard = pos2 - pos1 # TODO search for all instances of insert and get fragment and make sure they all work - ret = list(self.items())[:start_index] + new_element = list(self.items())[:start_index] items_to_iterate = list(self.items())[start_index:] new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] - bases_remain, items_to_iterate[0][1])) - ret.append(new_item[0]) + new_element.append(new_item[0]) items_to_iterate[0:1] = new_item[1:] - ret += [item for item in insertion_cigar.items()] + new_element += [item for item in insertion_cigar.items()] for item in items_to_iterate: - if item[1] == 'D': - ret.append(item) + if item[0] == 0: + continue + if extra_bases_to_discard <= 0 and item[1] == 'D': + new_element.append(item) + elif extra_bases_to_discard > 0 and item[1] == 'D': + continue elif found: - ret.append(item) + new_element.append(item) elif extra_bases_to_discard > item[0]: extra_bases_to_discard -= item[0] elif extra_bases_to_discard == item[0]: extra_bases_to_discard = 0 found = True elif extra_bases_to_discard < item[0]: - ret.append((item[0] - extra_bases_to_discard, item[1])) + new_element.append((item[0] - extra_bases_to_discard, item[1])) extra_bases_to_discard = 0 found = True + + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] new_string = self.string_from_elements(ret) self.cigar = CigarString(new_string).merge_like_ops().cigar except ValueError: @@ -344,10 +358,11 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': >>> start = 25079 >>> end = start + 100 >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar = "100M") + >>> assert(frag.cigar == "100M") """ # Minus 1 because python slices don't include the end coordinate window_size = end - start + remaining_window = window_size if window_size < 0: print(f'\nError: start and end coordinates for get_cigar_fragment ' f'are wrong: start: {start}, end: {end}') @@ -373,25 +388,37 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': new_element.append((window_size, list_of_items[0][1])) else: for item in list_of_items: + if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: + break if item[1] == 'D': new_element.append(item) elif bases_remain > 0: - bases = item[0] - bases_remain - if bases <= 0: + bases_remain = item[0] - bases_remain + if bases_remain < 0: print("Something went wrong retrieving fragment") pdb.set_trace() sys.exit(1) + elif bases_remain == 0: + continue + new_element.append((bases_remain, item[1])) + remaining_window -= bases_remain bases_remain = 0 - window_size -= bases - new_element.append((bases, item[1])) - elif window_size > item[0]: + elif remaining_window > item[0]: new_element.append(item) - window_size -= item[0] - elif window_size <= item[0]: - new_element.append((window_size, item[1])) + remaining_window -= item[0] + elif remaining_window <= item[0]: + new_element.append((remaining_window, item[1])) break - new_string = self.string_from_elements(new_element) + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] + new_string = self.string_from_elements(ret) return CigarString(new_string).merge_like_ops() except ValueError: @@ -457,10 +484,16 @@ def list_to_string(input_list: list) -> str: if __name__ == "__main__": - temp_symbol_string = CigarString('25179M1D8304M') - start = 25079 - end = start + 100 - frag = temp_symbol_string.get_cigar_fragment(start, end) - print(frag) - assert (frag.cigar == "100M") + str1 = CigarString('10M1I2D10M') + str2 = CigarString('1D') + pos1 = 10 + pos2 = pos1 + 2 + str1.insert_cigar_element(pos1, str2, pos2) + cigar_to_insert = '1D1M' + str1_list = str1.string_to_list() + str1_list[pos1] = cigar_to_insert + test_string = CigarStringOld.list_to_string(str1_list) + assert (str1.cigar == test_string) + + From 17d6fe0d829c4b12d15d49411871057e6e381579 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 21 Jan 2021 13:03:30 -0600 Subject: [PATCH 304/323] ran into some problems with the mixture of Cigar and CigarString so I got rid of the Cigar class and moved relevant methods into CigarString --- source/neat_cigar_rework.py | 127 +++++------------------------------- 1 file changed, 17 insertions(+), 110 deletions(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 000eb0e..4119b90 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -5,7 +5,7 @@ from source.neat_cigar import CigarString as CigarStringOld -class Cigar(object): +class CigarString(): """ This code borrowed in whole from https://github.com/brentp/cigar @@ -14,48 +14,11 @@ class Cigar(object): a SAM record only by changing the cigar string to soft-mask a number of bases such that the rest of the SAM record (pos, tlen, etc.) remain valid, but downstream tools will not consider the soft-masked bases in further analysis. - >>> c = Cigar('100M') - >>> len(c) - 100 - >>> str(c) - '100M' - >>> list(c.items()) - [(100, 'M')] - >>> c = Cigar('20H20M20S') - >>> len(c) - 40 - >>> str(c) - '20H20M20S' - >>> list(c.items()) - [(20, 'H'), (20, 'M'), (20, 'S')] - >>> c.mask_left(29).cigar, c.cigar - ('20H9S11M20S', '20H20M20S') - >>> c = Cigar('10M20S10M') - >>> c.mask_left(10).cigar - '30S10M' - >>> c.mask_left(9).cigar - '9S1M20S10M' - >>> Cigar('10S').mask_left(10).cigar - '10S' - >>> Cigar('10H').mask_left(10).cigar - '10H' - >>> Cigar('10H').mask_left(11).cigar - '10H' - >>> Cigar('10H').mask_left(9).cigar - '10H' - >>> Cigar('1M10H').mask_left(9).cigar - '1S10H' - >>> Cigar('5M10H').mask_left(9).cigar - '5S10H' - >>> c = Cigar('1S1H1S5H1S5M10H') - >>> c.mask_left(9).cigar == c.cigar - True - >>> c = Cigar('1S1H1S5H1S5M10H') - >>> c.mask_right(9).cigar == c.cigar - True - >>> c.mask_right(11).cigar - '1S1H1S5H1S4M1S10H' + + CigarString adds additional functionality to the cigar module, to make it compatible with + the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo """ + read_consuming_ops = ("M", "I", "S", "=", "X") ref_consuming_ops = ("M", "D", "N", "=", "X") @@ -74,92 +37,36 @@ def __str__(self): return self.cigar def __repr__(self): - return "Cigar('%s')" % self + return "CigarString('%s')" % self def __len__(self): """ sum of MIS=X ops shall equal the sequence length. """ - return sum(l for l, op in self.items() if op in Cigar.read_consuming_ops) - - def reference_length(self): - return sum(l for l, op in self.items() if op in Cigar.ref_consuming_ops) - - def mask_left(self, n_seq_bases, mask="S"): - """ - Return a new cigar with cigar string where the first `n_seq_bases` are - soft-masked unless they are already hard-masked. - """ - cigs = list(self.items()) - new_cigs = [] - - c, cum_len = self.cigar, 0 - for i, (l, op) in enumerate(cigs): - if op in Cigar.read_consuming_ops: - cum_len += l - if op == "H": - cum_len += l - new_cigs.append(cigs[i]) - elif cum_len < n_seq_bases: - new_cigs.append(cigs[i]) - else: - # the current cigar element is split by the masking. - right_extra = cum_len - n_seq_bases - new_cigs.append((l - right_extra, 'S')) - if right_extra != 0: - new_cigs.append((right_extra, cigs[i][1])) - if cum_len >= n_seq_bases: break - else: - pass - - new_cigs[:i] = [(l, op if op in "HS" else "S") for l, op in new_cigs[:i]] - new_cigs.extend(cigs[i + 1:]) - return Cigar(Cigar.string_from_elements(new_cigs)).merge_like_ops() + return sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) @classmethod def string_from_elements(cls, elements): return "".join("%i%s" % (l, op) for l, op in elements if l != 0) - def mask_right(self, n_seq_bases, mask="S"): - """ - Return a new cigar with cigar string where the last `n_seq_bases` are - soft-masked unless they are already hard-masked. - """ - return Cigar(Cigar(self._reverse_cigar()).mask_left(n_seq_bases, mask)._reverse_cigar()) - - def _reverse_cigar(self): - return Cigar.string_from_elements(list(self.items())[::-1]) - + # I moved this from the main Cigar class in order to make the code more consistent def merge_like_ops(self): """ - >>> Cigar("1S20M").merge_like_ops() - Cigar('1S20M') - >>> Cigar("1S1S20M").merge_like_ops() - Cigar('2S20M') - >>> Cigar("1S1S1S20M").merge_like_ops() - Cigar('3S20M') - >>> Cigar("1S1S1S20M1S1S").merge_like_ops() - Cigar('3S20M2S') + >>> CigarString("1S20M").merge_like_ops() + CigarString('1S20M') + >>> CigarString("1S1S20M").merge_like_ops() + CigarString('2S20M') + >>> CigarString("1S1S1S20M").merge_like_ops() + CigarString('3S20M') + >>> CigarString("1S1S1S20M1S1S").merge_like_ops() + CigarString('3S20M2S') """ cigs = [] for op, grps in groupby(self.items(), itemgetter(1)): cigs.append((sum(g[0] for g in grps), op)) - return Cigar(self.string_from_elements(cigs)) - - -class CigarString(Cigar): - """ - This adds additional functionality to the cigar module above, to make it compatible with - the rest of the NEAT codebase - """ - - def __str__(self): - return self.cigar - - def __repr__(self): - return "CigarString('%s')" % self + return CigarString(self.string_from_elements(cigs)) def find_position(self, position: int) -> (int,int): """ From 80d330c91ad5a89b9defed7730baceb5d092b816 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 21 Jan 2021 18:14:55 -0600 Subject: [PATCH 305/323] eliminated some extraneous characters --- source/neat_cigar_rework.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 4119b90..7b4aa46 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -5,7 +5,7 @@ from source.neat_cigar import CigarString as CigarStringOld -class CigarString(): +class CigarString: """ This code borrowed in whole from https://github.com/brentp/cigar From 3c6ed5701d5b5ff7f42ef80d6427c2f0f50b1def Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 21 Jan 2021 21:36:22 -0600 Subject: [PATCH 306/323] Removed debugging commands for a full run on iforge --- gen_reads.py | 6 ++++-- source/SequenceContainer.py | 14 +++++++++----- source/neat_cigar_rework.py | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index c64a4a1..c949501 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -603,14 +603,16 @@ def main(raw_args=None): if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: print("There's a cigar that's off.") - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) else: sequences.update(start, ref_sequence[start:end], ploids, overlap, read_len, [mut_model] * ploids, mut_rate) if [cigar for cigar in sequences.all_cigar[0] if len(cigar) != 100] or \ [cig for cig in sequences.all_cigar[1] if len(cig) != 100]: print("There's a cigar that's off.") - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) # insert variants sequences.insert_mutations(vars_from_prev_overlap + vars_in_window) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index cc96d17..90854b9 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -593,7 +593,8 @@ def random_mutations(self): temp_symbol_string2 = ['M' for _ in self.sequences[i]] if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): print('something wrong with temp symbol creation') - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -621,7 +622,8 @@ def random_mutations(self): ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): print('something wrong with inserting') - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') original_string = copy.deepcopy(temp_symbol_string) @@ -631,7 +633,8 @@ def random_mutations(self): temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): print('something wrong with deletion') - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): @@ -641,7 +644,8 @@ def random_mutations(self): if temp_symbol_string.get_cigar_fragment(j, j + self.read_len).cigar != CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string(): print("new " + str(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) print("old " + CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - pdb.set_trace() + # pdb.set_trace() + sys.exit(1) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -816,7 +820,7 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: print("Bug!! Index error on expanded cigar") - pdb.set_trace() + # pdb.set_trace() sys.exit(1) else: diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py index 7b4aa46..bf6daa7 100755 --- a/source/neat_cigar_rework.py +++ b/source/neat_cigar_rework.py @@ -303,7 +303,7 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': bases_remain = item[0] - bases_remain if bases_remain < 0: print("Something went wrong retrieving fragment") - pdb.set_trace() + # pdb.set_trace() sys.exit(1) elif bases_remain == 0: continue @@ -330,7 +330,7 @@ def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': except ValueError: print('\nBug: Problem retrieving fragment.\n') - pdb.set_trace() + # pdb.set_trace() sys.exit(1) # TODO use this method or delete it. From f1cd19fcda44f89470be322016f752a195a2deb7 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 25 Jan 2021 12:58:03 -0600 Subject: [PATCH 307/323] Code now working. Removed some checks and will now run speedtest. --- gen_reads.py | 3 +- source/SequenceContainer.py | 48 +--- source/fm_pos_test.py | 4 +- source/neat_cigar.py | 436 ++++++++++++++++++++++++++++------- source/neat_cigar_old.py | 132 +++++++++++ source/neat_cigar_rework.py | 406 -------------------------------- source/output_file_writer.py | 11 +- source/ref_func.py | 1 - 8 files changed, 490 insertions(+), 551 deletions(-) mode change 100755 => 100644 source/neat_cigar.py create mode 100644 source/neat_cigar_old.py delete mode 100755 source/neat_cigar_rework.py diff --git a/gen_reads.py b/gen_reads.py index c949501..2694ef5 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -24,7 +24,6 @@ import numpy as np import argparse import pathlib -import pdb from source.input_checking import check_file_open, is_in_range from source.ref_func import index_ref, read_ref @@ -94,7 +93,7 @@ def main(raw_args=None): 'things like read locations, variant positions, error positions, etc, ' 'should all be the same.') # TODO check if this argument does anything at all. Near as I can tell the results are ALWAYS gzipped. - parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') + # parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') parser.add_argument('--discard-offtarget', required=False, action='store_true', default=False, diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 90854b9..ee0f01d 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -1,18 +1,15 @@ -import pdb import random import copy import pathlib import bisect import pickle import sys -from time import time import numpy as np from Bio.Seq import Seq -from source.neat_cigar_rework import CigarString +from source.neat_cigar import CigarString from source.probability import DiscreteDistribution, poisson_list -from source.neat_cigar import CigarString as CigarStringOld """ Constants needed for analysis @@ -589,12 +586,6 @@ def random_mutations(self): for i in range(len(all_indels_ins)): rolling_adj = 0 temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") - # TODO Delete commented out lines once CigarString works 100% - temp_symbol_string2 = ['M' for _ in self.sequences[i]] - if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): - print('something wrong with temp symbol creation') - # pdb.set_trace() - sys.exit(1) for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -613,39 +604,15 @@ def random_mutations(self): # notate indel positions for cigar computation if indel_length > 0: cigar_to_insert = CigarString(str(indel_length) + 'I') - original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, v_pos2 + 1) - # TODO Delete commented out lines once CigarString works 100% - original_list = copy.deepcopy(temp_symbol_string2) - temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ - ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] - if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): - print('something wrong with inserting') - # pdb.set_trace() - sys.exit(1) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') - original_string = copy.deepcopy(temp_symbol_string) temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) - # TODO Delete commented out lines once CigarString works 100% - original_list = copy.deepcopy(temp_symbol_string2) - temp_symbol_string2[v_pos + 1] = 'D' * abs(indel_length) + 'M' - if not temp_symbol_string.cigar == CigarStringOld(list_in=temp_symbol_string2).get_string(): - print('something wrong with deletion') - # pdb.set_trace() - sys.exit(1) # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) - # TODO Delete commented out lines once CigarString works 100% - self.all_cigar2[i].append(CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - if temp_symbol_string.get_cigar_fragment(j, j + self.read_len).cigar != CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string(): - print("new " + str(temp_symbol_string.get_cigar_fragment(j, j + self.read_len))) - print("old " + CigarStringOld(list_in=temp_symbol_string2[j:j + self.read_len]).get_string()) - # pdb.set_trace() - sys.exit(1) # create some data structures we will need later: # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -783,15 +750,9 @@ def sample_read(self, sequencing_model, frag_len=None): continue if not expanded_cigar: expanded_cigar = my_cigar.string_to_list() - # TODO delete these lines using old CigarString once it is working 100% - expanded_cigar2 = CigarStringOld(string_in=my_cigar.cigar).get_list() - assert(expanded_cigar == expanded_cigar2) fill_to_go = total_d - total_i + 1 if fill_to_go > 0: try: - # TODO delete these lines using old CigarString once it is working 100% - extra_cigar_val2 = CigarStringOld(string_in=self.all_cigar2[my_ploid][read[0] - + fill_to_go]).get_list()[-fill_to_go:] extra_cigar_val = self.all_cigar[my_ploid][read[0] + fill_to_go].string_to_list()[-fill_to_go:] @@ -800,8 +761,6 @@ def sample_read(self, sequencing_model, frag_len=None): # Skip all indel errors skip_indels = True - assert(extra_cigar_val == extra_cigar_val2) - if skip_indels: continue @@ -820,7 +779,6 @@ def sample_read(self, sequencing_model, frag_len=None): expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] except IndexError: print("Bug!! Index error on expanded cigar") - # pdb.set_trace() sys.exit(1) else: @@ -856,10 +814,6 @@ def sample_read(self, sequencing_model, frag_len=None): if len(expanded_cigar): relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) - # TODO delete this line once new cigar is 100% working - my_cigar2 = CigarStringOld(list_in=relevant_cigar).get_string() - - assert(my_cigar.cigar == my_cigar2) read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, read[3], str(read[1])]) diff --git a/source/fm_pos_test.py b/source/fm_pos_test.py index 9569f6a..67ff4da 100755 --- a/source/fm_pos_test.py +++ b/source/fm_pos_test.py @@ -1,5 +1,5 @@ -from source.neat_cigar_rework import CigarString as CigarStringNew -from source.neat_cigar import CigarString +from source.neat_cigar import CigarString as CigarStringNew +from source.neat_cigar_old import CigarString from time import time ploidy = 2 diff --git a/source/neat_cigar.py b/source/neat_cigar.py old mode 100755 new mode 100644 index 3b747f2..134161a --- a/source/neat_cigar.py +++ b/source/neat_cigar.py @@ -1,64 +1,377 @@ -import re +import sys +from itertools import groupby +from operator import itemgetter +from source.neat_cigar_old import CigarString as CigarStringOld class CigarString: """ - Creates and modifies CigarString for output + This code borrowed in whole from https://github.com/brentp/cigar + + cigar is a simple library for dealing with cigar strings. the most useful + feature now is soft-masking from left or right. This allows one to adjust + a SAM record only by changing the cigar string to soft-mask a number of bases + such that the rest of the SAM record (pos, tlen, etc.) remain valid, but + downstream tools will not consider the soft-masked bases in further analysis. + + CigarString adds additional functionality to the cigar module, to make it compatible with + the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo """ - def __init__(self, string_in=None, list_in=None): - if string_in is None and list_in is None: - print('\nError: CigarString object not initialized.\n') - exit(1) + read_consuming_ops = ("M", "I", "S", "=", "X") + ref_consuming_ops = ("M", "D", "N", "=", "X") - self.cigar_data = [] + def __init__(self, cigar_string): + self.cigar = cigar_string - if string_in is not None: - self.join_cigar(j_string_in=string_in) + def items(self): + if self.cigar == "*": + yield 0, None + raise StopIteration + cig_iter = groupby(self.cigar, lambda c: c.isdigit()) + for g, n in cig_iter: + yield int("".join(n)), "".join(next(cig_iter)[1]) - if list_in is not None: - self.join_cigar(j_list_in=list_in) + def __str__(self): + return self.cigar - @staticmethod - def string_to_list(string_to_covert: str) -> list: + def __repr__(self): + return "CigarString('%s')" % self + + def __len__(self): + """ + sum of MIS=X ops shall equal the sequence length. + """ + return sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) + + @classmethod + def string_from_elements(cls, elements): + return "".join("%i%s" % (l, op) for l, op in elements if l != 0) + + # I moved this from the main Cigar class in order to make the code more consistent + def merge_like_ops(self): + """ + >>> CigarString("1S20M").merge_like_ops() + CigarString('1S20M') + >>> CigarString("1S1S20M").merge_like_ops() + CigarString('2S20M') + >>> CigarString("1S1S1S20M").merge_like_ops() + CigarString('3S20M') + >>> CigarString("1S1S1S20M1S1S").merge_like_ops() + CigarString('3S20M2S') + """ + + cigs = [] + for op, grps in groupby(self.items(), itemgetter(1)): + cigs.append((sum(g[0] for g in grps), op)) + + return CigarString(self.string_from_elements(cigs)) + + def find_position(self, position: int) -> (int,int): + """ + This finds the index of the element of list(self.items()) that contains the starting position given. + + :param position: The position to find of the CigarString + :return: the index of that in terms of the elements of list(self.items()) + >>> cigar = CigarString('2064M1I12979M3D18439M') + >>> position = 15414 + >>> index, bases = cigar.find_position(position) + >>> assert(index == 4) + >>> assert(bases == 370) + """ + consumed_bases = 0 + bases_left = position + index = 0 + for item in self.items(): + if item[1] == 'D': + index += 1 + continue + consumed_bases += item[0] + if consumed_bases >= position: + return index, bases_left + else: + bases_left -= item[0] + index += 1 + return index, bases_left + + def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: + """ + Inserts a cigar string in either string or list format to the existing cigar string at position pos. + + :param insertion_cigar: A cigar to insert into current cigar string + :param pos1: integer position where to insert the input cigar string + :param pos2: integer position where to pick up the remainder + :return: None + + >>> str1 = CigarString('50M10D7I23M') + >>> str2 = CigarString('10I25M') + >>> iPos = 55 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "50M10D15I25M2I23M") + + >>> str1 = CigarString('50M10D7I23M') + >>> iPos = 20 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "20M10I55M10D7I23M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('2I') + >>> iPos = 5785 + 1 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert (str1.cigar == "5786M2I5314M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('1D') + >>> iPos = 6610 + 1 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(len(str1) == 11100) + >>> assert (str1.cigar == "6611M1D4489M") + + >>> str1 = CigarString('10M1I2D10M') + >>> str2 = CigarString('1D') + >>> pos1 = 10 + >>> pos2 = pos1 + 2 + >>> str1.insert_cigar_element(pos1, str2, pos2) + >>> cigar_to_insert = '1D1M' + >>> str1_list = str1.string_to_list() + >>> str1_list[pos1] = cigar_to_insert + >>> test_string = CigarStringOld.list_to_string(str1_list) + >>> assert(str1.cigar == test_string) + + >>> original_string = '100M1I10M' + >>> original_cigar = CigarString(original_string) + >>> v_pos = 9 + >>> v_pos2 = 9 + 6 + >>> cigar_to_insert = CigarString('6I') + >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) + >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') + >>> indel_length = 6 + >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] + >>> test_string = CigarStringOld.list_to_string(test_string) + >>> assert (original_cigar.cigar == test_string) + """ + + if insertion_cigar is None: + print('\nError: Invalid insertion operation in CigarString\n') + sys.exit(1) + + if pos1 < 0 or pos1 >= len(self): + print('\nError: Invalid insertion position in CigarString\n') + sys.exit(1) + + if pos2 and (pos2 < pos1 or pos2 >= len(self)): + print('\nError: Invalid second position\n') + sys.exit(1) + + try: + found = False + start_index, bases_remain = self.find_position(pos1) + extra_bases_to_discard = 0 + if pos2: + extra_bases_to_discard = pos2 - pos1 + new_element = list(self.items())[:start_index] + items_to_iterate = list(self.items())[start_index:] + new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] + - bases_remain, items_to_iterate[0][1])) + new_element.append(new_item[0]) + items_to_iterate[0:1] = new_item[1:] + new_element += [item for item in insertion_cigar.items()] + for item in items_to_iterate: + if item[0] == 0: + continue + if extra_bases_to_discard <= 0 and item[1] == 'D': + new_element.append(item) + elif extra_bases_to_discard > 0 and item[1] == 'D': + continue + elif found: + new_element.append(item) + elif extra_bases_to_discard > item[0]: + extra_bases_to_discard -= item[0] + elif extra_bases_to_discard == item[0]: + extra_bases_to_discard = 0 + found = True + elif extra_bases_to_discard < item[0]: + new_element.append((item[0] - extra_bases_to_discard, item[1])) + extra_bases_to_discard = 0 + found = True + + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] + new_string = self.string_from_elements(ret) + self.cigar = CigarString(new_string).merge_like_ops().cigar + except ValueError: + print('\nBug: Problem with insertion.\n') + sys.exit(1) + + def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': + """ + Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the + first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the + first 101 characters, it would return '20M81I'. + + :param start: start point of sequence to retrieve + :param end: end point of sequence to retrieve + :return: The sequence that spans start to end + >>> str1 = CigarString('10M5D10M') + >>> start = 0 + >>> end = 14 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(len(frag) == 14) + >>> assert(frag.cigar == "10M5D4M") + + >>> str1 = CigarString('90M1D10M') + >>> start = 0 + >>> end = 100 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "90M1D10M") + + >>> str1 = CigarString('10M2D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "2M") + + >>> str1 = CigarString('10M1D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "2M") + + >>> str1 = CigarString('102M2I10000M') + >>> start1 = 1 + >>> end1 = 102 + >>> frag1 = str1.get_cigar_fragment(start1, end1) + >>> start2 = 102 + >>> end2 = 203 + >>> frag2 = str1.get_cigar_fragment(start2, end2) + >>> assert(frag1.cigar == "101M") + >>> assert(frag2.cigar == "2I99M") + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25080 + >>> end = 25180 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar == '99M1D1M') + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25079 + >>> end = start + 100 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "100M") """ - Converts cigar string to a full list + # Minus 1 because python slices don't include the end coordinate + window_size = end - start + remaining_window = window_size + if window_size < 0: + print(f'\nError: start and end coordinates for get_cigar_fragment ' + f'are wrong: start: {start}, end: {end}') + if start is None or end is None: + print('\nError: Invalid coordinates in get_cigar_fragment\n') + sys.exit(1) - :param string_to_covert: Cigar string to convert to list - :return: cigar string in list format + if start < 0 or start >= len(self): + print('\nError: Invalid start point in get_cigar_fragment\n') + sys.exit(1) + + if end > len(self) or end < 0: + print('\nError: Invalid end point in get_cigar_fragment') + sys.exit(1) + + try: + start_index, bases_remain = self.find_position(start) + end_index = self.find_position(end)[0] + new_element = [] + # +1 here to make it inclusive + list_of_items = list(self.items())[start_index:end_index+1] + if len(list_of_items) == 1: + new_element.append((window_size, list_of_items[0][1])) + else: + for item in list_of_items: + if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: + break + if item[1] == 'D': + new_element.append(item) + elif bases_remain > 0: + bases_remain = item[0] - bases_remain + if bases_remain < 0: + print("Something went wrong retrieving fragment") + sys.exit(1) + elif bases_remain == 0: + continue + new_element.append((bases_remain, item[1])) + remaining_window -= bases_remain + bases_remain = 0 + elif remaining_window > item[0]: + new_element.append(item) + remaining_window -= item[0] + elif remaining_window <= item[0]: + new_element.append((remaining_window, item[1])) + break + + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] + new_string = self.string_from_elements(ret) + return CigarString(new_string).merge_like_ops() + + except ValueError: + print('\nBug: Problem retrieving fragment.\n') + sys.exit(1) + + # TODO use this method or delete it. + def count_elements(self, element: str) -> int: + count = 0 + for item in self.items(): + if item[1] == element: + count += item[0] + return count + + def string_to_list(self) -> list: """ + Converts the cigar string to a full list. + :return: cigar string in list format. + """ cigar_dat = [] - letters = re.split(r"\d+", string_to_covert)[1:] - numbers = [int(n) for n in re.findall(r"\d+", string_to_covert)] d_reserve = 0 - for i in range(len(letters)): - if letters[i] == 'D': - d_reserve = numbers[i] - if letters[i] == 'M' or letters[i] == 'I': + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: if d_reserve: - cigar_dat += ['D' * d_reserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) else: - cigar_dat += [letters[i]] * int(numbers[i]) + cigar_dat += [item[1]] * item[0] d_reserve = 0 return cigar_dat @staticmethod - def list_to_string(list_to_convert: list) -> str: + def list_to_string(input_list: list) -> str: """ Convert a cigar string in list format to a standard cigar string - :param list_to_convert: Cigar string in list format + :param input_list: Cigar string in list format :return: cigar string in string format """ symbols = '' - current_sym = list_to_convert[0] + current_sym = input_list[0] current_count = 1 if 'D' in current_sym: current_sym = current_sym[-1] - for k in range(1, len(list_to_convert)): - next_sym = list_to_convert[k] + for k in range(1, len(input_list)): + next_sym = input_list[k] if len(next_sym) == 1 and next_sym == current_sym: current_count += 1 else: @@ -72,61 +385,18 @@ def list_to_string(list_to_convert: list) -> str: symbols += str(current_count) + current_sym return symbols - def get_list(self): - - return self.cigar_data - def get_string(self): - - return self.list_to_string(self.cigar_data) - - def join_cigar(self, j_string_in: str = None, j_list_in: list = None): - """ - Adds an inputted cigar string in string or list format to the existing cigar string - - :param j_string_in: cigar string in string format - :param j_list_in: cigar string in list format - :return: None - """ - - if j_string_in is None and j_list_in is None: - print('\nError: Invalid join operation in CigarString\n') - exit(1) - - if j_string_in is not None: - self.cigar_data += self.string_to_list(j_string_in) - - if j_list_in is not None: - self.cigar_data += j_list_in - - def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: list = None): - """ - Inserts a cigar string in either string or list format to the existing cigar string at position pos. - - :param pos: integer position where to insert the input cigar string - :param i_string_in: input cigar string in string format - :param i_list_in: input cigar string in list format - :return: - - >>>str1 = '50M10D7I23M' - >>>str2 = '10I25M' - >>>iPos = 20 - >>>my_cigar = CigarString(string_in=str1) - >>>my_cigar.insert_cigar_element(iPos, i_string_in=str2) - >>>assert(my_cigar.get_string() == "20M10I55M10D7I23M") - """ - - if i_string_in is None and i_list_in is None: - print('\nError: Invalid insertion operation in CigarString\n') - exit(1) - - if pos < 0 or pos >= len(self.cigar_data): - print('\nError: Invalid insertion position in CigarString\n') - exit(1) +if __name__ == "__main__": + str1 = CigarString('10M1I2D10M') + str2 = CigarString('1D') + pos1 = 10 + pos2 = pos1 + 2 + str1.insert_cigar_element(pos1, str2, pos2) + cigar_to_insert = '1D1M' + str1_list = str1.string_to_list() + str1_list[pos1] = cigar_to_insert + test_string = CigarStringOld.list_to_string(str1_list) + assert (str1.cigar == test_string) - if i_string_in is not None: - self.cigar_data = self.cigar_data[:pos] + self.string_to_list(i_string_in) + self.cigar_data[pos:] - if i_list_in is not None: - self.cigar_data = self.cigar_data[:pos] + i_list_in + self.cigar_data[pos:] diff --git a/source/neat_cigar_old.py b/source/neat_cigar_old.py new file mode 100644 index 0000000..3b747f2 --- /dev/null +++ b/source/neat_cigar_old.py @@ -0,0 +1,132 @@ +import re + + +class CigarString: + """ + Creates and modifies CigarString for output + """ + def __init__(self, string_in=None, list_in=None): + + if string_in is None and list_in is None: + print('\nError: CigarString object not initialized.\n') + exit(1) + + self.cigar_data = [] + + if string_in is not None: + self.join_cigar(j_string_in=string_in) + + if list_in is not None: + self.join_cigar(j_list_in=list_in) + + @staticmethod + def string_to_list(string_to_covert: str) -> list: + """ + Converts cigar string to a full list + + :param string_to_covert: Cigar string to convert to list + :return: cigar string in list format + """ + + cigar_dat = [] + letters = re.split(r"\d+", string_to_covert)[1:] + numbers = [int(n) for n in re.findall(r"\d+", string_to_covert)] + d_reserve = 0 + for i in range(len(letters)): + if letters[i] == 'D': + d_reserve = numbers[i] + if letters[i] == 'M' or letters[i] == 'I': + if d_reserve: + cigar_dat += ['D' * d_reserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) + else: + cigar_dat += [letters[i]] * int(numbers[i]) + d_reserve = 0 + return cigar_dat + + @staticmethod + def list_to_string(list_to_convert: list) -> str: + """ + Convert a cigar string in list format to a standard cigar string + + :param list_to_convert: Cigar string in list format + :return: cigar string in string format + """ + + symbols = '' + current_sym = list_to_convert[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(list_to_convert)): + next_sym = list_to_convert[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 + else: + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + 'D' + current_sym = next_sym[-1] + else: + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + return symbols + + def get_list(self): + + return self.cigar_data + + def get_string(self): + + return self.list_to_string(self.cigar_data) + + def join_cigar(self, j_string_in: str = None, j_list_in: list = None): + """ + Adds an inputted cigar string in string or list format to the existing cigar string + + :param j_string_in: cigar string in string format + :param j_list_in: cigar string in list format + :return: None + """ + + if j_string_in is None and j_list_in is None: + print('\nError: Invalid join operation in CigarString\n') + exit(1) + + if j_string_in is not None: + self.cigar_data += self.string_to_list(j_string_in) + + if j_list_in is not None: + self.cigar_data += j_list_in + + def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: list = None): + """ + Inserts a cigar string in either string or list format to the existing cigar string at position pos. + + :param pos: integer position where to insert the input cigar string + :param i_string_in: input cigar string in string format + :param i_list_in: input cigar string in list format + :return: + + >>>str1 = '50M10D7I23M' + >>>str2 = '10I25M' + >>>iPos = 20 + >>>my_cigar = CigarString(string_in=str1) + >>>my_cigar.insert_cigar_element(iPos, i_string_in=str2) + >>>assert(my_cigar.get_string() == "20M10I55M10D7I23M") + """ + + if i_string_in is None and i_list_in is None: + print('\nError: Invalid insertion operation in CigarString\n') + exit(1) + + if pos < 0 or pos >= len(self.cigar_data): + print('\nError: Invalid insertion position in CigarString\n') + exit(1) + + if i_string_in is not None: + self.cigar_data = self.cigar_data[:pos] + self.string_to_list(i_string_in) + self.cigar_data[pos:] + + if i_list_in is not None: + self.cigar_data = self.cigar_data[:pos] + i_list_in + self.cigar_data[pos:] + diff --git a/source/neat_cigar_rework.py b/source/neat_cigar_rework.py deleted file mode 100755 index bf6daa7..0000000 --- a/source/neat_cigar_rework.py +++ /dev/null @@ -1,406 +0,0 @@ -import sys -import pdb -from itertools import groupby -from operator import itemgetter -from source.neat_cigar import CigarString as CigarStringOld - - -class CigarString: - """ - This code borrowed in whole from https://github.com/brentp/cigar - - cigar is a simple library for dealing with cigar strings. the most useful - feature now is soft-masking from left or right. This allows one to adjust - a SAM record only by changing the cigar string to soft-mask a number of bases - such that the rest of the SAM record (pos, tlen, etc.) remain valid, but - downstream tools will not consider the soft-masked bases in further analysis. - - CigarString adds additional functionality to the cigar module, to make it compatible with - the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo - """ - - read_consuming_ops = ("M", "I", "S", "=", "X") - ref_consuming_ops = ("M", "D", "N", "=", "X") - - def __init__(self, cigar_string): - self.cigar = cigar_string - - def items(self): - if self.cigar == "*": - yield 0, None - raise StopIteration - cig_iter = groupby(self.cigar, lambda c: c.isdigit()) - for g, n in cig_iter: - yield int("".join(n)), "".join(next(cig_iter)[1]) - - def __str__(self): - return self.cigar - - def __repr__(self): - return "CigarString('%s')" % self - - def __len__(self): - """ - sum of MIS=X ops shall equal the sequence length. - """ - return sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) - - @classmethod - def string_from_elements(cls, elements): - return "".join("%i%s" % (l, op) for l, op in elements if l != 0) - - # I moved this from the main Cigar class in order to make the code more consistent - def merge_like_ops(self): - """ - >>> CigarString("1S20M").merge_like_ops() - CigarString('1S20M') - >>> CigarString("1S1S20M").merge_like_ops() - CigarString('2S20M') - >>> CigarString("1S1S1S20M").merge_like_ops() - CigarString('3S20M') - >>> CigarString("1S1S1S20M1S1S").merge_like_ops() - CigarString('3S20M2S') - """ - - cigs = [] - for op, grps in groupby(self.items(), itemgetter(1)): - cigs.append((sum(g[0] for g in grps), op)) - - return CigarString(self.string_from_elements(cigs)) - - def find_position(self, position: int) -> (int,int): - """ - This finds the index of the element of list(self.items()) that contains the starting position given. - - :param position: The position to find of the CigarString - :return: the index of that in terms of the elements of list(self.items()) - >>> cigar = CigarString('2064M1I12979M3D18439M') - >>> position = 15414 - >>> index, bases = cigar.find_position(position) - >>> assert(index == 4) - >>> assert(bases == 370) - """ - consumed_bases = 0 - bases_left = position - index = 0 - for item in self.items(): - if item[1] == 'D': - index += 1 - continue - consumed_bases += item[0] - if consumed_bases >= position: - return index, bases_left - else: - bases_left -= item[0] - index += 1 - return index, bases_left - - def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: - """ - Inserts a cigar string in either string or list format to the existing cigar string at position pos. - - :param insertion_cigar: A cigar to insert into current cigar string - :param pos1: integer position where to insert the input cigar string - :param pos2: integer position where to pick up the remainder - :return: None - - >>> str1 = CigarString('50M10D7I23M') - >>> str2 = CigarString('10I25M') - >>> iPos = 55 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "50M10D15I25M2I23M") - - >>> str1 = CigarString('50M10D7I23M') - >>> iPos = 20 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "20M10I55M10D7I23M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('2I') - >>> iPos = 5785 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert (str1.cigar == "5786M2I5314M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('1D') - >>> iPos = 6610 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(len(str1) == 11100) - >>> assert (str1.cigar == "6611M1D4489M") - - >>> str1 = CigarString('10M1I2D10M') - >>> str2 = CigarString('1D') - >>> pos1 = 10 - >>> pos2 = pos1 + 2 - >>> str1.insert_cigar_element(pos1, str2, pos2) - >>> cigar_to_insert = '1D1M' - >>> str1_list = str1.string_to_list() - >>> str1_list[pos1] = cigar_to_insert - >>> test_string = CigarStringOld.list_to_string(str1_list) - >>> assert(str1.cigar == test_string) - - >>> original_string = '100M1I10M' - >>> original_cigar = CigarString(original_string) - >>> v_pos = 9 - >>> v_pos2 = 9 + 6 - >>> cigar_to_insert = CigarString('6I') - >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) - >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') - >>> indel_length = 6 - >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] - >>> test_string = CigarStringOld.list_to_string(test_string) - >>> assert (original_cigar.cigar == test_string) - """ - - if insertion_cigar is None: - print('\nError: Invalid insertion operation in CigarString\n') - sys.exit(1) - - if pos1 < 0 or pos1 >= len(self): - print('\nError: Invalid insertion position in CigarString\n') - sys.exit(1) - - if pos2 and (pos2 < pos1 or pos2 >= len(self)): - print('\nError: Invalid second position\n') - sys.exit(1) - - try: - found = False - start_index, bases_remain = self.find_position(pos1) - extra_bases_to_discard = 0 - if pos2: - extra_bases_to_discard = pos2 - pos1 - # TODO search for all instances of insert and get fragment and make sure they all work - new_element = list(self.items())[:start_index] - items_to_iterate = list(self.items())[start_index:] - new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] - - bases_remain, items_to_iterate[0][1])) - new_element.append(new_item[0]) - items_to_iterate[0:1] = new_item[1:] - new_element += [item for item in insertion_cigar.items()] - for item in items_to_iterate: - if item[0] == 0: - continue - if extra_bases_to_discard <= 0 and item[1] == 'D': - new_element.append(item) - elif extra_bases_to_discard > 0 and item[1] == 'D': - continue - elif found: - new_element.append(item) - elif extra_bases_to_discard > item[0]: - extra_bases_to_discard -= item[0] - elif extra_bases_to_discard == item[0]: - extra_bases_to_discard = 0 - found = True - elif extra_bases_to_discard < item[0]: - new_element.append((item[0] - extra_bases_to_discard, item[1])) - extra_bases_to_discard = 0 - found = True - - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - self.cigar = CigarString(new_string).merge_like_ops().cigar - except ValueError: - print('\nBug: Problem with insertion.\n') - sys.exit(1) - - def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': - """ - Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the - first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the - first 101 characters, it would return '20M81I'. - - :param start: start point of sequence to retrieve - :param end: end point of sequence to retrieve - :return: The sequence that spans start to end - >>> str1 = CigarString('10M5D10M') - >>> start = 0 - >>> end = 14 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(len(frag) == 14) - >>> assert(frag.cigar == "10M5D4M") - - >>> str1 = CigarString('90M1D10M') - >>> start = 0 - >>> end = 100 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "90M1D10M") - - >>> str1 = CigarString('10M2D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('10M1D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('102M2I10000M') - >>> start1 = 1 - >>> end1 = 102 - >>> frag1 = str1.get_cigar_fragment(start1, end1) - >>> start2 = 102 - >>> end2 = 203 - >>> frag2 = str1.get_cigar_fragment(start2, end2) - >>> assert(frag1.cigar == "101M") - >>> assert(frag2.cigar == "2I99M") - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25080 - >>> end = 25180 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == '99M1D1M') - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25079 - >>> end = start + 100 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "100M") - """ - # Minus 1 because python slices don't include the end coordinate - window_size = end - start - remaining_window = window_size - if window_size < 0: - print(f'\nError: start and end coordinates for get_cigar_fragment ' - f'are wrong: start: {start}, end: {end}') - if start is None or end is None: - print('\nError: Invalid coordinates in get_cigar_fragment\n') - sys.exit(1) - - if start < 0 or start >= len(self): - print('\nError: Invalid start point in get_cigar_fragment\n') - sys.exit(1) - - if end > len(self) or end < 0: - print('\nError: Invalid end point in get_cigar_fragment') - sys.exit(1) - - try: - start_index, bases_remain = self.find_position(start) - end_index = self.find_position(end)[0] - new_element = [] - # +1 here to make it inclusive - list_of_items = list(self.items())[start_index:end_index+1] - if len(list_of_items) == 1: - new_element.append((window_size, list_of_items[0][1])) - else: - for item in list_of_items: - if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: - break - if item[1] == 'D': - new_element.append(item) - elif bases_remain > 0: - bases_remain = item[0] - bases_remain - if bases_remain < 0: - print("Something went wrong retrieving fragment") - # pdb.set_trace() - sys.exit(1) - elif bases_remain == 0: - continue - new_element.append((bases_remain, item[1])) - remaining_window -= bases_remain - bases_remain = 0 - elif remaining_window > item[0]: - new_element.append(item) - remaining_window -= item[0] - elif remaining_window <= item[0]: - new_element.append((remaining_window, item[1])) - break - - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - return CigarString(new_string).merge_like_ops() - - except ValueError: - print('\nBug: Problem retrieving fragment.\n') - # pdb.set_trace() - sys.exit(1) - - # TODO use this method or delete it. - def count_elements(self, element: str) -> int: - count = 0 - for item in self.items(): - if item[1] == element: - count += item[0] - return count - - def string_to_list(self) -> list: - """ - Converts the cigar string to a full list. - - :return: cigar string in list format. - """ - cigar_dat = [] - d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - cigar_dat += [item[1]] * item[0] - d_reserve = 0 - return cigar_dat - - @staticmethod - def list_to_string(input_list: list) -> str: - """ - Convert a cigar string in list format to a standard cigar string - - :param input_list: Cigar string in list format - :return: cigar string in string format - """ - - symbols = '' - current_sym = input_list[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(input_list)): - next_sym = input_list[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 - else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + 'D' - current_sym = next_sym[-1] - else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - return symbols - - -if __name__ == "__main__": - str1 = CigarString('10M1I2D10M') - str2 = CigarString('1D') - pos1 = 10 - pos2 = pos1 + 2 - str1.insert_cigar_element(pos1, str2, pos2) - cigar_to_insert = '1D1M' - str1_list = str1.string_to_list() - str1_list[pos1] = cigar_to_insert - test_string = CigarStringOld.list_to_string(str1_list) - assert (str1.cigar == test_string) - - - diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 3123d9c..713ce4d 100755 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -1,14 +1,8 @@ -import sys -import os -import re -import gzip from struct import pack -from Bio.Seq import Seq -from Bio import SeqIO import gzip from Bio.bgzf import * import pathlib -from source.neat_cigar_rework import CigarString +from source.neat_cigar import CigarString # from source.biopython_modified_bgzf import BgzfWriter @@ -220,9 +214,6 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, for item in cigar.items(): cig_numbers.append(item[0]) cig_letters.append(item[1]) - # TODO delete the following two lines once the new cigar rework is 100% working - # cig_letters = re.split(r"\d+", cigar)[1:] - # cig_numbers = [int(n) for n in re.findall(r"\d+", cigar)] cig_ops = len(cig_letters) next_ref_id = ref_id if mate_pos is None: diff --git a/source/ref_func.py b/source/ref_func.py index 546155c..239ef40 100755 --- a/source/ref_func.py +++ b/source/ref_func.py @@ -96,7 +96,6 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): else: ref_file = open(absolute_reference_path, 'r') - # TODO convert to SeqIO containers ref_file.seek(ref_inds_i[1]) my_dat = ''.join(ref_file.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) From bf78644e1ad1c91bed0d5f6198b9cd629118937a Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 25 Jan 2021 13:06:05 -0600 Subject: [PATCH 308/323] Got a little too aggressive with eliminating lines --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 2694ef5..ba08b94 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -93,7 +93,7 @@ def main(raw_args=None): 'things like read locations, variant positions, error positions, etc, ' 'should all be the same.') # TODO check if this argument does anything at all. Near as I can tell the results are ALWAYS gzipped. - # parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') + parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') parser.add_argument('--discard-offtarget', required=False, action='store_true', default=False, From 5d3be4e09dd80677e8ecee767c4e96a9cfb007f0 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Mon, 1 Feb 2021 10:09:22 -0600 Subject: [PATCH 309/323] notes --- source/SequenceContainer.py | 1 + 1 file changed, 1 insertion(+) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index ee0f01d..aed7e13 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -303,6 +303,7 @@ def init_coverage(self, coverage_data, frag_dist=None): coverage_vector = np.cumsum([tr_cov_vals[i][nnn] * gc_cov_vals[i][nnn] for nnn in range(len(tr_cov_vals[i]))]) coverage_vals = [] + # TODO if max_coord is <=0, this is a problem for j in range(0, max_coord): coverage_vals.append(coverage_vector[j + self.read_len] - coverage_vector[j]) avg_out.append(np.mean(coverage_vals) / float(self.read_len)) From b93ee0f331a19c0957686b458754d04a36886ffa Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 1 Feb 2021 10:42:06 -0600 Subject: [PATCH 310/323] Update README.md --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 891d36b..c8aee7e 100755 --- a/README.md +++ b/README.md @@ -62,12 +62,14 @@ Option | Description -c | Average coverage across the entire dataset. Default: 10 -e | Sequencing error model pickle file -E | Average sequencing error rate. The sequencing error rate model is rescaled to make this the average value. --p | ploidy [2] --t | bed file containing targeted regions; default coverage for targeted regions is 98% of -c option; default coverage outside targeted regions is 2% of -c option +-p | Sample Ploidy, default 2 +-t | Bed file containing targeted regions; default coverage for targeted regions is 98% of -c option; default coverage outside targeted regions is 2% of -c option +-d | Bed file with sample regions to discard. -to | off-target coverage scalar [0.02] -m | mutation model pickle file -M | Average mutation rate. The mutation rate model is rescaled to make this the average value. Must be between 0 and 0.3. These random mutations are inserted in addition to the once specified in the -v option. --s | input sample model +-Mb | Bed file containing positional mutation rates +-N | Below this quality score, base-call's will be replaced with N's -v | Input VCF file. Variants from this VCF will be inserted into the simulated sequence with 100% certainty. --pe | Paired-end fragment length mean and standard deviation. To produce paired end data, one of --pe or --pe-model must be specified. --pe-model | Empirical fragment length distribution. Can be generated using [computeFraglen.py](#computefraglenpy). To produce paired end data, one of --pe or --pe-model must be specified. @@ -76,9 +78,12 @@ Option | Description --nnr | save non-N ref regions (for parallel jobs) --bam | Output golden BAM file --vcf | Output golden VCF file +--fa | Output FASTA instead of FASTQ --rng | rng seed value; identical RNG value should produce identical runs of the program, so things like read locations, variant positions, error positions, etc, should all be the same. --gz | Gzip output FQ and VCF --no-fastq | Bypass generation of FASTQ read files +--discard-offtarget | Discard reads outside of targeted regions +--rescale-qual | Rescale Quality scores to match -E input ## Functionality From 9d5594719fa721580a568486b8ca4d095b2345a6 Mon Sep 17 00:00:00 2001 From: meridith-e <66380709+meridith-e@users.noreply.github.com> Date: Mon, 1 Feb 2021 11:02:18 -0600 Subject: [PATCH 311/323] Update README.md --- README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c8aee7e..04a68d2 100755 --- a/README.md +++ b/README.md @@ -200,7 +200,7 @@ To simulate human WGS 50X, try 50 chunks or less. # Utilities Several scripts are distributed with genReads that are used to generate the models used for simulation. -## computeGC.py +## compute_gc.py Computes GC% coverage bias distribution from sample (bedrolls genomecov) data. Takes .genomecov files produced by BEDtools genomeCov (with -d option). @@ -220,7 +220,7 @@ python computeGC.py \ -o /path/to/model.p ``` -## computeFraglen.py +## compute_fraglen.py Computes empirical fragment length distribution from sample data. Takes SAM file via stdin: @@ -229,7 +229,7 @@ Takes SAM file via stdin: and creates fraglen.p model in working directory. -## genMutModel.py +## gen_mut_model.py Takes references genome and TSV file to generate mutation models: @@ -242,6 +242,17 @@ python genMutModel.py \ Trinucleotides are identified in the reference genome and the variant file. Frequencies of each trinucleotide transition are calculated and output as a pickle (.p) file. +Option | Description +------ |:---------- +-r | Reference file for organism in FASTA format. Required +-m | Mutation file for organism in VCF format. Required +-o | Path to output file and prefix. Required. +-b | BED file of regions to include +--save-trinuc | Save trinucleotide counts for reference +--human-sample | Use to skip unnumbered scaffolds in human references +--skip-common | Do not save common snps or high mutation areas + + ## genSeqErrorModel.py Generates sequence error model for genReads.py -e option. @@ -259,6 +270,7 @@ python genSeqErrorModel.py \ -s number of simulation iterations [1000000] \ --plot perform some optional plotting ``` + ## plotMutModel.py Performs plotting and comparison of mutation models generated from genMutModel.py. @@ -276,8 +288,6 @@ Tool for comparing VCF files. ``` python vcf_compare_OLD.py - --version show program's version number and exit \ - -h, --help show this help message and exit \ -r * Reference Fasta \ -g * Golden VCF \ -w * Workflow VCF \ From 6ca633549d74b6f6cb7f2e5508338dfd05f6be56 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 2 Feb 2021 01:39:20 -0600 Subject: [PATCH 312/323] Still debugging. Compare two loops above line 664 in SequenceContainer --- gen_reads.py | 8 +- source/SequenceContainer.py | 45 ++++++-- source/biopython_modified_bgzf.py | 104 ------------------ source/fm_pos_test.py | 69 ------------ source/neat_cigar.py | 36 +++++-- source/neat_cigar_new.py | 170 ++++++++++++++++++++++++++++++ source/output_file_writer.py | 48 ++++++--- source/ref_func.py | 17 ++- utilities/generate_random_dna.py | 25 +++++ 9 files changed, 311 insertions(+), 211 deletions(-) delete mode 100755 source/biopython_modified_bgzf.py delete mode 100755 source/fm_pos_test.py create mode 100644 source/neat_cigar_new.py create mode 100644 utilities/generate_random_dna.py diff --git a/gen_reads.py b/gen_reads.py index ba08b94..fea4ff3 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -24,6 +24,7 @@ import numpy as np import argparse import pathlib +# from Bio import SeqIO from source.input_checking import check_file_open, is_in_range from source.ref_func import index_ref, read_ref @@ -272,14 +273,18 @@ def main(raw_args=None): # index reference: [(0: chromosome name, 1: byte index where the contig seq begins, # 2: byte index where the next contig begins, 3: contig seq length), # (repeat for every chrom)] - # TODO check to see if this might work better as a dataframe + # TODO check to see if this might work better as a dataframe or biopython object ref_index = index_ref(reference) + # TODO check if this index can work, maybe it's faster + # ref_index2 = SeqIO.index(reference, 'fasta') + if paired_end: n_handling = ('random', fragment_size) else: n_handling = ('ignore', read_len) + indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} ref_list = [n[0] for n in ref_index] @@ -375,6 +380,7 @@ def main(raw_args=None): # initialize output files (part I) bam_header = None if save_bam: + # TODO wondering if this is actually needed in the bam_header bam_header = [copy.deepcopy(ref_index)] vcf_header = None if save_vcf: diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index ee0f01d..cfa850a 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -9,6 +9,7 @@ from Bio.Seq import Seq from source.neat_cigar import CigarString +from source.neat_cigar_new import CigarString as CigarStringNew from source.probability import DiscreteDistribution, poisson_list """ @@ -100,13 +101,14 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.x = x_offset self.ploidy = ploidy self.read_len = read_len - self.sequences = [Seq(str(sequence)).tomutable() for _ in range(self.ploidy)] + self.sequences = [Seq(str(sequence)) for _ in range(self.ploidy)] self.seq_len = len(sequence) self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] + self.fm_pos2 = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] # Blacklist explanation: @@ -193,14 +195,16 @@ def update_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len self.x = x_offset self.ploidy = ploidy self.read_len = read_len - self.sequences = [Seq(str(sequence)).tomutable() for _ in range(self.ploidy)] + self.sequences = [Seq(str(sequence)) for _ in range(self.ploidy)] self.seq_len = len(sequence) self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] + self.fm_pos2 = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] + self.fm_span2 = [[] for _ in range(self.ploidy)] self.black_list = [np.zeros(self.seq_len, dtype=' 0: cigar_to_insert = CigarString(str(indel_length) + 'I') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, v_pos2 + 1) + temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ + ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) + temp_symbol_string2[v_pos + 1] = "D" * abs(indel_length) + "M" # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): + # TODO see if there is a way to do this more efficiently self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) + self.all_cigar2[i].append(temp_symbol_string2[j:j + self.read_len]) # create some data structures we will need later: - # --- self.FM_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. + # --- self.fm_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. # corresponding to the unmodified reference genome) - # --- self.FM_span[ploid][pos]: number of reference positions spanned by a read originating from + # --- self.fm_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate md_so_far = 0 + # TODO the following will replace the block below if everything goes well + for j in range(len(temp_symbol_string2)): + self.fm_pos2[i].append(md_so_far) + # fix an edge case with deletions + if 'D' in temp_symbol_string2[j]: + self.fm_pos2[i][-1] += temp_symbol_string2[j].count('D') + # compute number of ref matches for each read + span_dif = len([n for n in temp_symbol_string2[j: j+self.read_len] if 'M' in n]) + self.fm_span2[i].append(self.fm_pos2[i][-1] + span_dif) + md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') + # TODO can this be done with new cigar string method? temp_symbol_string_list = temp_symbol_string.string_to_list() + md_so_far = 0 for j in range(len(temp_symbol_string_list)): self.fm_pos[i].append(md_so_far) # fix an edge case with deletions if temp_symbol_string_list[j] == 'D': self.fm_pos[i][-1] += temp_symbol_string_list[j].count('D') # compute number of ref matches for each read + # TODO convert to cigar string span_dif = len([n for n in temp_symbol_string_list[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list[j].count('D') + # TODO compare the above two methods # tally up all the variants we handled... count_dict = {} all_variants = [sorted(all_snps[i] + all_indels[i]) for i in range(self.ploidy)] diff --git a/source/biopython_modified_bgzf.py b/source/biopython_modified_bgzf.py deleted file mode 100755 index f3fc6ac..0000000 --- a/source/biopython_modified_bgzf.py +++ /dev/null @@ -1,104 +0,0 @@ -#!/user/env/bin source - -# Copyright 2010-2013 by Peter Cock. -# All rights reserved. -# This code is part of the Biopython distribution and governed by its -# license. Please see the LICENSE file that should have been included -# as part of this package. - - -########################################################################## -# ####### -# 06/02/2015: ####### -# - I picked out the bits and pieces of code needed ####### -# to write BAM files, removed source 3.0 compatibility ####### -# ####### -########################################################################## - -import zlib -import struct - - -class BgzfWriter: - - def __init__(self, filename=None, mode="w", file_obj=None, compress_level=6): - if file_obj: - assert filename is None - handle = file_obj - else: - if "w" not in mode.lower() and "a" not in mode.lower(): - raise ValueError("Must use write or append mode, not %r" % mode) - if "a" in mode.lower(): - raise NotImplementedError("Append mode is not implemented yet") - handle = open(filename, "ab") - else: - handle = open(filename, "wb") - self._text = "b" not in mode.lower() - self._handle = handle - self._buffer = b"" - self.compress_level = compress_level - - def _write_block(self, block): - _bgzf_header = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00" - start_offset = self._handle.tell() - assert len(block) <= 65536 - # Giving a negative window bits means no gzip/zlib headers, -15 used in samtools - c = zlib.compressobj(self.compress_level, - zlib.DEFLATED, - -15, - zlib.DEF_MEM_LEVEL, - 0) - compressed = c.compress(block) + c.flush() - del c - assert len(compressed) < 65536, "TODO - Didn't compress enough, try less data in this block" - crc = zlib.crc32(block) - # Should cope with a mix of Python platforms... - if crc < 0: - crc = struct.pack("= 65536: - self._write_block(self._buffer[:65536]) - self._buffer = self._buffer[65536:] - - def flush(self): - while len(self._buffer) >= 65536: - self._write_block(self._buffer[:65535]) - self._buffer = self._buffer[65535:] - self._write_block(self._buffer) - self._buffer = b"" - self._handle.flush() - - def close(self): - """Flush data, write 28 bytes empty BGZF EOF marker, and close the BGZF file.""" - _bgzf_eof = b"\x1f\x8b\x08\x04\x00\x00\x00\x00\x00\xff\x06\x00\x42\x43\x02\x00\x1b\x00\x03\x00\x00\x00\x00\x00" \ - b"\x00\x00\x00\x00" - if self._buffer: - self.flush() - # samtools will look for a magic EOF marker, just a 28 byte empty BGZF block, - # and if it is missing warns the BAM file may be truncated. In addition to - # samtools writing this block, so too does bgzip - so we should too. - self._handle.write(_bgzf_eof) - self._handle.flush() - self._handle.close() - - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - self.close() diff --git a/source/fm_pos_test.py b/source/fm_pos_test.py deleted file mode 100755 index 67ff4da..0000000 --- a/source/fm_pos_test.py +++ /dev/null @@ -1,69 +0,0 @@ -from source.neat_cigar import CigarString as CigarStringNew -from source.neat_cigar_old import CigarString -from time import time - -ploidy = 2 -start_time = time() -temp_symbol_string = CigarStringNew('10777M1I322M').string_to_list() -# temp_symbol_string = CigarStringNew('10777M1I322M') -cigar_string_new_time = time() - start_time -print(f'CigarStringNew time = {cigar_string_new_time}') - -start_time = time() -temp_symbol_string2 = CigarString.string_to_list('10777M1I322M') -old_method_time = time() - start_time -print(f'String-to-list time = {old_method_time}') - -print(f'temp_symbol_string = {temp_symbol_string}') -print(f'temp_symbol_string2 = {temp_symbol_string2}') -assert(len(temp_symbol_string) == len(temp_symbol_string2)) -print('passed') -# assert(temp_symbol_string == temp_symbol_string2) -# print('passed') - -fm_pos1 = [[] for _ in range(ploidy)] -fm_span1 = [[] for _ in range(ploidy)] -fm_pos2 = [[] for _ in range(ploidy)] -fm_span2 = [[] for _ in range(ploidy)] -span_dif = 0 -read_len = 101 - -for i in range(ploidy): - md_so_far = 0 - start_time = time() - # for item in temp_symbol_string.items(): - # if item[1] in ['M', 'D']: - # for j in range(item[0]): - # fm_pos1[i].append(md_so_far) - # span_dif = CigarStringNew(temp_symbol_string.get_cigar_fragment(j, j + read_len)).count_elements('M') - # fm_span1[i].append(fm_pos1[i][-1] + span_dif) - # md_so_far += 1 - # else: - # pass - for j in range(len(temp_symbol_string)): - fm_pos2[i].append(md_so_far) - # fix an edge case with deletions - if temp_symbol_string[j] == 'D': - fm_pos2[i][-1] += temp_symbol_string[j].count('D') - # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string[j:j + read_len] if n == 'M']) - fm_span2[i].append(fm_pos2[i][-1] + span_dif) - md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') - print(f'For new method, ploid {i}, time = {time()-start_time + cigar_string_new_time}') - - start_time = time() - md_so_far = 0 - for j in range(len(temp_symbol_string2)): - fm_pos2[i].append(md_so_far) - # fix an edge case with deletions - if temp_symbol_string2[j] == 'D': - fm_pos2[i][-1] += temp_symbol_string2[j].count('D') - # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string2[j:j + read_len] if n == 'M']) - fm_span2[i].append(fm_pos2[i][-1] + span_dif) - md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') - print(f'For old method, ploid {i}, time = {time() - start_time + old_method_time}') - - -assert(fm_pos1 == fm_pos2) -assert(fm_span1 == fm_span2) diff --git a/source/neat_cigar.py b/source/neat_cigar.py index 134161a..5b1f033 100644 --- a/source/neat_cigar.py +++ b/source/neat_cigar.py @@ -2,6 +2,7 @@ from itertools import groupby from operator import itemgetter from source.neat_cigar_old import CigarString as CigarStringOld +import timeit class CigarString: @@ -23,6 +24,8 @@ class CigarString: def __init__(self, cigar_string): self.cigar = cigar_string + # storing length as an attribute to see if that speeds anything up. + self.length = sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) def items(self): if self.cigar == "*": @@ -42,7 +45,7 @@ def __len__(self): """ sum of MIS=X ops shall equal the sequence length. """ - return sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) + return self.length @classmethod def string_from_elements(cls, elements): @@ -387,16 +390,27 @@ def list_to_string(input_list: list) -> str: if __name__ == "__main__": - str1 = CigarString('10M1I2D10M') - str2 = CigarString('1D') - pos1 = 10 - pos2 = pos1 + 2 - str1.insert_cigar_element(pos1, str2, pos2) - cigar_to_insert = '1D1M' - str1_list = str1.string_to_list() - str1_list[pos1] = cigar_to_insert - test_string = CigarStringOld.list_to_string(str1_list) - assert (str1.cigar == test_string) + string = '25179M1D8304M' + start = 25079 + end = start + 100 + + temp_symbol_string = CigarString('25179M1D8304M') + eval_list = temp_symbol_string.string_to_list() + frag = temp_symbol_string.get_cigar_fragment(start, end) + + def eval1(): + temp_symbol_string = CigarString('25179M1D8304M') + temp_symbol_string.get_cigar_fragment(start, end) + + def eval2(): + temp_symbol_string2 = CigarStringOld(string_in='25179M1D8304M').get_list() + temp_symbol_string2[start:end] + + print("new method: " + str(timeit.timeit('eval1()', number=10000, globals=globals()))) + print("original method: " + str(timeit.timeit('eval2()', number=10000, globals=globals()))) + print(timeit.timeit('eval_list[start:end]', number=10000, globals=globals())) + + diff --git a/source/neat_cigar_new.py b/source/neat_cigar_new.py new file mode 100644 index 0000000..c6e4cdd --- /dev/null +++ b/source/neat_cigar_new.py @@ -0,0 +1,170 @@ +import sys +from itertools import groupby +from operator import itemgetter +from source.neat_cigar_old import CigarString as CigarStringOld +from source.neat_cigar import CigarString as CigarStringIntermediate +import timeit + + +class CigarString: + """" + Now we're testing out a list method of CigarString that we're hoping is faster + """ + _read_consuming_ops = ("M", "I", "S", "=", "X") + _ref_consuming_ops = ("M", "D", "N", "=", "X") + + def __init__(self, cigar_string: str = None, list_in: list = None): + """ + Converting the cigar string to a list type method thingy as a test + :param cigar_string: An actual string version of the cigar + """ + self._needs_update = False + self._cigar_string = "*" + if cigar_string: + self._cigar_string = cigar_string + self._cigar = [] + if list_in: + self._cigar = list_in + self._needs_update = True + else: + d_reserve = 0 + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + self._cigar += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + self._cigar += [item[1]] * item[0] + d_reserve = 0 + self.update_cig_string() + + def __str__(self): + if self._needs_update: + return "Needs Update, old string: " + self._cigar_string + else: + return self._cigar_string + + def __repr__(self): + if self._needs_update: + return "Needs update, old: CigarString('%s')" % self._cigar_string + else: + return "CigarString('%s')" % self._cigar_string + + def __len__(self): + return self._cigar.__len__() + + def __getitem__(self, item): + if type(item) == slice: + ret = self._cigar.__getitem__(item) + return CigarString(list_in=ret) + return self._cigar.__getitem__(item) + + def __setitem__(self, key, value): + self._needs_update = True + self._cigar[key] = value + + def __getslice__(self, i, j): + ret = self._cigar.__getslice__(i, j) + print(type(ret)) + ret2 = CigarString(list_in=ret) + return ret2 + + def append(self, item): + self._needs_update = True + self._cigar.append(item) + + def __add__(self, other): + self._needs_update = True + result = self._cigar.__add__(other) + try: + return CigarString(list_in=result) + except TypeError: + return result + + def __mul__(self, other): + return CigarString(list_in=self._cigar.__mul__(self, other)) + + def items(self): + """ + iterator for cigar string items + :return: Creates an iterator object + """ + if self._cigar_string == "*" or self._needs_update: + yield 0, None + raise StopIteration + cig_iter = groupby(self._cigar_string, lambda c: c.isdigit()) + for g, n in cig_iter: + yield int("".join(n)), "".join(next(cig_iter)[1]) + + @property + def cigar(self): + """ + getter for cigar item + :return: None + """ + return self._cigar + + # setter for cigar item + @cigar.setter + def cigar(self, new): + """ + Setter that updates cigar list to new list + :param new: new cigar list + :return: None + """ + # TODO this validation isn't correct and may not be needed + # if type(input) is not list or [l for l in input if l not in self._read_consuming_ops]: + # raise ValueError("Invalid input string to cigar") + # sys.exit(1) + self._cigar = new + self._needs_update = True + + def update_cig_string(self): + """ + If the list has changed, this will update the corresponding string. + Due to speed problems with converting list to string, we won't do this unless + instructed, so note that that cigar_string is only valid if needs_update is also false + :return: None + + >>> test_cig = CigarString("100M") + >>> test_cig[10] = "I" + >>> test_cig.update_cig_string() + >>> assert(test_cig._cigar_string == "10M1I89M") + """ + if self._needs_update: + symbols = '' + current_sym = self._cigar[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(self._cigar)): + next_sym = self._cigar[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 + else: + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + "D" + current_sym = next_sym[-1] + else: + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + self._cigar_string = symbols + self._needs_update = False + else: + pass + + +if __name__ == '__main__': + cigar = CigarString('20M') + new_thing = cigar[1:11] + assert(type(cigar[1:11]) == CigarString) + print(cigar.cigar) + cigar.append("I") + print(cigar.cigar) + cigar[3] = "I" + cigar.update_cig_string() + print(cigar.cigar) + print(cigar) diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 713ce4d..4ec8b4a 100755 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -2,22 +2,40 @@ import gzip from Bio.bgzf import * import pathlib -from source.neat_cigar import CigarString +import timeit +from utilities.generate_random_dna import generate_random_dna +from Bio.Seq import Seq # from source.biopython_modified_bgzf import BgzfWriter BAM_COMPRESSION_LEVEL = 6 -# TODO figure out why these functions are in this file in the first place +# def reverse_complement(dna_string: str) -> str: +# """ +# Return the reverse complement of a string from a DNA strand +# :param dna_string: string of DNA +# :return: the reverse compliment of the above string +# """ +# rc_dict = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} +# return ''.join(rc_dict[n] for n in dna_string[::-1]) + + def reverse_complement(dna_string: str) -> str: """ - Return the reverse complement of a string from a DNA strand - :param dna_string: string of DNA - :return: the reverse compliment of the above string + Return the reverse complement of a string from a DNA strand. Found this method that is slightly faster than + biopython. Thanks to this stack exchange post: + https://bioinformatics.stackexchange.com/questions/3583/what-is-the-fastest-way-to-get-the-reverse-complement-of-a-dna-sequence-in-pytho #noqa + :param dna_string: string of DNA, either in string or MutableSeq format + :return: the reverse complement of the above string in either string or MutableSeq format """ - rc_dict = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} - return ''.join(rc_dict[n] for n in dna_string[::-1]) + if type(dna_string) != str: + dna_string.reverse_complement() + return dna_string + else: + tab = str.maketrans("ACTGN", "TGACN") + + return dna_string.translate(tab)[::-1] # SAMtools reg2bin function @@ -182,21 +200,21 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # TODO add write_fasta_record def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None, orientation=None): - (read1, quality1) = (str(read1), qual1) + (read1, quality1) = (read1, qual1) if read2 is not None and orientation is True: - (read2, quality2) = (str(reverse_complement(read2)), qual2[::-1]) + (read2, quality2) = (read2.reverse_complement(), qual2[::-1]) elif read2 is not None and orientation is False: - (read1, quality1) = (str(reverse_complement(read2)), qual2[::-1]) - (read2, quality2) = (str(read1), qual1) + (read1, quality1) = (read2.reverse_complement(), qual2[::-1]) + (read2, quality2) = (read1, qual1) if self.fasta_instead: - self.fq1_buffer.append('>' + read_name + '/1\n' + read1 + '\n') + self.fq1_buffer.append('>' + read_name + '/1\n' + read1.seq + '\n') if read2 is not None: - self.fq2_buffer.append('>' + read_name + '/2\n' + read2 + '\n') + self.fq2_buffer.append('>' + read_name + '/2\n' + read2.seq + '\n') else: - self.fq1_buffer.append('@' + read_name + '/1\n' + read1 + '\n+\n' + quality1 + '\n') + self.fq1_buffer.append('@' + read_name + '/1\n' + read1.seq + '\n+\n' + quality1 + '\n') if read2 is not None: - self.fq2_buffer.append('@' + read_name + '/2\n' + read2 + '\n+\n' + quality2 + '\n') + self.fq2_buffer.append('@' + read_name + '/2\n' + read2.sq + '\n+\n' + quality2 + '\n') def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): self.vcf_file.write( diff --git a/source/ref_func.py b/source/ref_func.py index 239ef40..1c817d2 100755 --- a/source/ref_func.py +++ b/source/ref_func.py @@ -5,6 +5,7 @@ import pathlib import random from Bio.Seq import Seq +from Bio import SeqIO OK_CHR_ORD = {'A': True, 'C': True, 'G': True, 'T': True, 'U': True} ALLOWED_NUCL = ['A', 'C', 'G', 'T'] @@ -97,10 +98,15 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): ref_file = open(absolute_reference_path, 'r') # TODO convert to SeqIO containers + # for seq_record in SeqIO.parse(ref_file, "fasta"): + # pass + + ref_file.seek(ref_inds_i[1]) my_dat = ''.join(ref_file.read(ref_inds_i[2] - ref_inds_i[1]).split('\n')) my_dat = Seq(my_dat.upper()) - my_dat = my_dat.tomutable() + # Mutable seqs have a number of disadvantages. I'm going to try making them immutable and see if that helps + # my_dat = my_dat.tomutable() # find N regions # data explanation: my_dat[n_atlas[0][0]:n_atlas[0][1]] = solid block of Ns @@ -120,13 +126,16 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): n_count = 0 # handle N base-calls as desired + # TODO this seems to randomly replace an N with a base. Is this necessary? How to do this in an immutable seq? n_info = {'all': [], 'big': [], 'non_N': []} if n_handling[0] == 'random': for region in n_atlas: n_info['all'].extend(region) if region[1] - region[0] <= n_handling[1]: for i in range(region[0], region[1]): - my_dat[i] = random.choice(ALLOWED_NUCL) + temp = my_dat.tomutable() + temp[i] = random.choice(ALLOWED_NUCL) + my_dat = temp.toseq() else: n_info['big'].extend(region) elif n_handling[0] == 'allChr' and n_handling[2] in OK_CHR_ORD: @@ -134,7 +143,9 @@ def read_ref(ref_path, ref_inds_i, n_handling, n_unknowns=True, quiet=False): n_info['all'].extend(region) if region[1] - region[0] <= n_handling[1]: for i in range(region[0], region[1]): - my_dat[i] = n_handling[2] + temp = my_dat.tomutable() + temp[i] = n_handling[2] + my_dat = temp.toseq() else: n_info['big'].extend(region) elif n_handling[0] == 'ignore': diff --git a/utilities/generate_random_dna.py b/utilities/generate_random_dna.py new file mode 100644 index 0000000..39e176a --- /dev/null +++ b/utilities/generate_random_dna.py @@ -0,0 +1,25 @@ +import random + + +def generate_random_dna(lnth: int, seed: int = None) -> str: + """ + Takes a parameter length and returns a randomly generated DNA string of that length + :param lnth: how long of a string to generate + :param seed: Optional seed to produce reproducibly random results + :return: randomly generated string + """ + set = ["A", "G", "C", "T"] + if seed: + random.seed(seed) + else: + random.seed() + ret = "" + for i in range(lnth): + ret += random.choice(set) + return ret + + +if __name__ == '__main__': + print(generate_random_dna(10)) + print(generate_random_dna(10, 1)) + print(generate_random_dna(10, 1)) From dd1d4d77b7d632ca0cc0ef6275fb783bc1658616 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 2 Feb 2021 02:09:11 -0600 Subject: [PATCH 313/323] Working on converting cigar strings to all list methods still. SC line 628 to start --- source/SequenceContainer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index cb64a75..6370cca 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -655,7 +655,6 @@ def random_mutations(self): if temp_symbol_string_list[j] == 'D': self.fm_pos[i][-1] += temp_symbol_string_list[j].count('D') # compute number of ref matches for each read - # TODO convert to cigar string span_dif = len([n for n in temp_symbol_string_list[j:j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list[j].count('D') From 541d7637efa6c6500a3b3d7a4f4964d84d3ee302 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Tue, 2 Feb 2021 12:24:02 -0600 Subject: [PATCH 314/323] Currently broken but working on it --- source/SequenceContainer.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 6370cca..b2d8305 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -110,6 +110,7 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.fm_pos = [[] for _ in range(self.ploidy)] self.fm_pos2 = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] + self.fm_span2 = [[] for _ in range(self.ploidy)] # Blacklist explanation: # black_list[ploid][pos] = 0 safe to insert variant here @@ -592,7 +593,7 @@ def random_mutations(self): # MODIFY REFERENCE STRING: INDELS for i in range(len(all_indels_ins)): rolling_adj = 0 - # TODO CigarString might be too slow. Convert these to lists + # TODO Check that converting to list-based cigar string solves the problems, then remove temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") temp_symbol_string2 = CigarStringNew(str(len(self.sequences[i])) + "M") @@ -619,10 +620,13 @@ def random_mutations(self): v_pos2 + 1) temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] + assert(temp_symbol_string.string_to_list() == temp_symbol_string2.cigar) elif indel_length < 0: cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) temp_symbol_string2[v_pos + 1] = "D" * abs(indel_length) + "M" + assert(temp_symbol_string.string_to_list() == temp_symbol_string2.cigar) + # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): @@ -635,17 +639,17 @@ def random_mutations(self): # corresponding to the unmodified reference genome) # --- self.fm_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate - md_so_far = 0 + md_so_far2 = 0 # TODO the following will replace the block below if everything goes well for j in range(len(temp_symbol_string2)): - self.fm_pos2[i].append(md_so_far) + self.fm_pos2[i].append(md_so_far2) # fix an edge case with deletions if 'D' in temp_symbol_string2[j]: self.fm_pos2[i][-1] += temp_symbol_string2[j].count('D') # compute number of ref matches for each read span_dif = len([n for n in temp_symbol_string2[j: j+self.read_len] if 'M' in n]) self.fm_span2[i].append(self.fm_pos2[i][-1] + span_dif) - md_so_far += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') + md_so_far2 += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') # TODO can this be done with new cigar string method? temp_symbol_string_list = temp_symbol_string.string_to_list() md_so_far = 0 @@ -659,6 +663,7 @@ def random_mutations(self): self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list[j].count('D') + assert(md_so_far2 == md_so_far) # TODO compare the above two methods # tally up all the variants we handled... count_dict = {} From bef2b0fd5b2ba6d90a059d8414c783baa60c0c23 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 3 Feb 2021 13:57:16 -0600 Subject: [PATCH 315/323] Changed cigar string to a primarily list based method. All three versions of neat_cigar are present in this commit, in case I need to walk back --- source/SequenceContainer.py | 91 ++--- source/neat_cigar.py | 529 +++++++++--------------------- source/neat_cigar_intermediate.py | 416 +++++++++++++++++++++++ source/neat_cigar_new.py | 170 ---------- source/output_file_writer.py | 18 +- 5 files changed, 601 insertions(+), 623 deletions(-) create mode 100644 source/neat_cigar_intermediate.py delete mode 100644 source/neat_cigar_new.py diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index b2d8305..b2b48d1 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -9,7 +9,6 @@ from Bio.Seq import Seq from source.neat_cigar import CigarString -from source.neat_cigar_new import CigarString as CigarStringNew from source.probability import DiscreteDistribution, poisson_list """ @@ -106,11 +105,8 @@ def __init__(self, x_offset, sequence, ploidy, window_overlap, read_len, mut_mod self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] - self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] - self.fm_pos2 = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] - self.fm_span2 = [[] for _ in range(self.ploidy)] # Blacklist explanation: # black_list[ploid][pos] = 0 safe to insert variant here @@ -201,11 +197,8 @@ def update_basic_vars(self, x_offset, sequence, ploidy, window_overlap, read_len self.indel_list = [[] for _ in range(self.ploidy)] self.snp_list = [[] for _ in range(self.ploidy)] self.all_cigar = [[] for _ in range(self.ploidy)] - self.all_cigar2 = [[] for _ in range(self.ploidy)] self.fm_pos = [[] for _ in range(self.ploidy)] - self.fm_pos2 = [[] for _ in range(self.ploidy)] self.fm_span = [[] for _ in range(self.ploidy)] - self.fm_span2 = [[] for _ in range(self.ploidy)] self.black_list = [np.zeros(self.seq_len, dtype=' 0: - cigar_to_insert = CigarString(str(indel_length) + 'I') - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert, - v_pos2 + 1) - temp_symbol_string2 = temp_symbol_string2[:v_pos + 1] + \ - ['I'] * indel_length + temp_symbol_string2[v_pos2 + 1:] - assert(temp_symbol_string.string_to_list() == temp_symbol_string2.cigar) + temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length \ + + temp_symbol_string[v_pos2 + 1:] elif indel_length < 0: - cigar_to_insert = CigarString(str(abs(indel_length)) + 'D') - temp_symbol_string.insert_cigar_element(v_pos + 1, cigar_to_insert) - temp_symbol_string2[v_pos + 1] = "D" * abs(indel_length) + "M" - assert(temp_symbol_string.string_to_list() == temp_symbol_string2.cigar) - + temp_symbol_string[v_pos + 1] = "D" * abs(indel_length) + "M" # pre-compute cigar strings for j in range(len(temp_symbol_string) - self.read_len): - # TODO see if there is a way to do this more efficiently - self.all_cigar[i].append(temp_symbol_string.get_cigar_fragment(j, j + self.read_len)) - self.all_cigar2[i].append(temp_symbol_string2[j:j + self.read_len]) + self.all_cigar[i].append(temp_symbol_string[j:j + self.read_len]) # create some data structures we will need later: # --- self.fm_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. # corresponding to the unmodified reference genome) # --- self.fm_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate - md_so_far2 = 0 - # TODO the following will replace the block below if everything goes well - for j in range(len(temp_symbol_string2)): - self.fm_pos2[i].append(md_so_far2) - # fix an edge case with deletions - if 'D' in temp_symbol_string2[j]: - self.fm_pos2[i][-1] += temp_symbol_string2[j].count('D') - # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string2[j: j+self.read_len] if 'M' in n]) - self.fm_span2[i].append(self.fm_pos2[i][-1] + span_dif) - md_so_far2 += temp_symbol_string2[j].count('M') + temp_symbol_string2[j].count('D') - # TODO can this be done with new cigar string method? - temp_symbol_string_list = temp_symbol_string.string_to_list() md_so_far = 0 - for j in range(len(temp_symbol_string_list)): + for j in range(len(temp_symbol_string)): self.fm_pos[i].append(md_so_far) # fix an edge case with deletions - if temp_symbol_string_list[j] == 'D': - self.fm_pos[i][-1] += temp_symbol_string_list[j].count('D') + if 'D' in temp_symbol_string[j]: + self.fm_pos[i][-1] += temp_symbol_string[j].count('D') # compute number of ref matches for each read - span_dif = len([n for n in temp_symbol_string_list[j:j + self.read_len] if 'M' in n]) + # This line gets hit a lot and is relatively slow. Might look for an improvement + span_dif = len([n for n in temp_symbol_string[j: j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - md_so_far += temp_symbol_string_list[j].count('M') + temp_symbol_string_list[j].count('D') + md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') - assert(md_so_far2 == md_so_far) - # TODO compare the above two methods # tally up all the variants we handled... count_dict = {} all_variants = [sorted(all_snps[i] + all_indels[i]) for i in range(self.ploidy)] @@ -746,7 +711,9 @@ def sample_read(self, sequencing_model, frag_len=None): # add buffer sequence to fill in positions that get deleted read[3] += self.sequences[my_ploid][read[0] + self.read_len:read[0] + self.read_len + total_d] - expanded_cigar = [] + # this is leftover code and a patch for a method that isn't used. There is probably a better + # way to structure this than with a boolean + first_time = True adj = 0 sse_adj = [0 for _ in range(self.read_len + max(sequencing_model.err_p[3]))] any_indel_err = False @@ -782,14 +749,14 @@ def sample_read(self, sequencing_model, frag_len=None): if total_d > avail_b: # if not enough bases to fill-in deletions, skip all indel erors continue - if not expanded_cigar: - expanded_cigar = my_cigar.string_to_list() + if first_time: + # Again, this whole first time thing is a workaround for the previous + # code, which is simplified. May need to fix this all at some point + first_time = False fill_to_go = total_d - total_i + 1 if fill_to_go > 0: try: - extra_cigar_val = self.all_cigar[my_ploid][read[0] - + fill_to_go].string_to_list()[-fill_to_go:] - + extra_cigar_val = self.all_cigar[my_ploid][read[0] + fill_to_go][-fill_to_go:] except IndexError: # Applying the deletions we want requires going beyond region boundaries. # Skip all indel errors @@ -805,12 +772,13 @@ def sample_read(self, sequencing_model, frag_len=None): pf = e_pos + my_adj + e_len + 1 if str(read[3][pi:pf]) == str(error[3]): read[3] = read[3][:pi + 1] + read[3][pf:] - expanded_cigar = expanded_cigar[:pi + 1] + expanded_cigar[pf:] + my_cigar = my_cigar[:pi + 1] + my_cigar[pf:] # weird edge case with del at very end of region. Make a guess and add a "M" - if pi + 1 == len(expanded_cigar): - expanded_cigar.append('M') + if pi + 1 == len(my_cigar): + my_cigar.append('M') + try: - expanded_cigar[pi + 1] = 'D' * e_len + expanded_cigar[pi + 1] + my_cigar[pi + 1] = 'D' * e_len + my_cigar[pi + 1] except IndexError: print("Bug!! Index error on expanded cigar") sys.exit(1) @@ -827,8 +795,7 @@ def sample_read(self, sequencing_model, frag_len=None): my_adj = sse_adj[e_pos] if str(read[3][e_pos + my_adj]) == error[3]: read[3] = read[3][:e_pos + my_adj] + error[4] + read[3][e_pos + my_adj + 1:] - expanded_cigar = expanded_cigar[:e_pos + my_adj] + ['I'] * e_len + expanded_cigar[ - e_pos + my_adj:] + my_cigar = my_cigar[:e_pos + my_adj] + ['I'] * e_len + my_cigar[e_pos + my_adj:] else: print('\nError, ref does not match alt while attempting to insert insertion error!\n') print('---', chr(read[3][e_pos + my_adj]), '!=', error[3]) @@ -839,15 +806,17 @@ def sample_read(self, sequencing_model, frag_len=None): else: # substitution errors, much easier by comparison... if str(read[3][e_pos + sse_adj[e_pos]]) == error[3]: - read[3][e_pos + sse_adj[e_pos]] = error[4] + temp = read[3].tomutable() + temp[e_pos + sse_adj[e_pos]] = error[4] + read[3] = temp.toseq() else: print('\nError, ref does not match alt while attempting to insert substitution error!\n') sys.exit(1) if any_indel_err: - if len(expanded_cigar): - relevant_cigar = (expanded_cigar + extra_cigar_val)[:self.read_len] - my_cigar = CigarString(CigarString.list_to_string(relevant_cigar)) + if len(my_cigar): + my_cigar = (my_cigar + extra_cigar_val)[:self.read_len] + read[3] = read[3][:self.read_len] read_out.append([self.fm_pos[my_ploid][read[0]], my_cigar, read[3], str(read[1])]) diff --git a/source/neat_cigar.py b/source/neat_cigar.py index 5b1f033..a88b3ab 100644 --- a/source/neat_cigar.py +++ b/source/neat_cigar.py @@ -1,416 +1,179 @@ -import sys from itertools import groupby -from operator import itemgetter -from source.neat_cigar_old import CigarString as CigarStringOld -import timeit class CigarString: + """" + Now we're testing out a list method of CigarString that we're hoping is faster """ - This code borrowed in whole from https://github.com/brentp/cigar + _read_consuming_ops = ("M", "I", "S", "=", "X") + _ref_consuming_ops = ("M", "D", "N", "=", "X") - cigar is a simple library for dealing with cigar strings. the most useful - feature now is soft-masking from left or right. This allows one to adjust - a SAM record only by changing the cigar string to soft-mask a number of bases - such that the rest of the SAM record (pos, tlen, etc.) remain valid, but - downstream tools will not consider the soft-masked bases in further analysis. - - CigarString adds additional functionality to the cigar module, to make it compatible with - the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo - """ - - read_consuming_ops = ("M", "I", "S", "=", "X") - ref_consuming_ops = ("M", "D", "N", "=", "X") - - def __init__(self, cigar_string): - self.cigar = cigar_string - # storing length as an attribute to see if that speeds anything up. - self.length = sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) - - def items(self): - if self.cigar == "*": - yield 0, None - raise StopIteration - cig_iter = groupby(self.cigar, lambda c: c.isdigit()) - for g, n in cig_iter: - yield int("".join(n)), "".join(next(cig_iter)[1]) + def __init__(self, cigar_string: str = None, list_in: list = None): + """ + Converting the cigar string to a list type method thingy as a test + :param cigar_string: An actual string version of the cigar + """ + self._needs_update = False + self._cigar_string = "*" + if cigar_string: + self._cigar_string = cigar_string + self._cigar = [] + if list_in: + self._cigar = list_in + self._needs_update = True + else: + d_reserve = 0 + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + self._cigar += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + self._cigar += [item[1]] * item[0] + d_reserve = 0 + self.update_cig_string() def __str__(self): - return self.cigar + if self._needs_update: + return "Needs Update, old string: " + self._cigar_string + else: + return self._cigar_string def __repr__(self): - return "CigarString('%s')" % self + if self._needs_update: + return "Needs update, old: CigarString('%s')" % self._cigar_string + else: + return "CigarString('%s')" % self._cigar_string def __len__(self): - """ - sum of MIS=X ops shall equal the sequence length. - """ - return self.length + return self._cigar.__len__() - @classmethod - def string_from_elements(cls, elements): - return "".join("%i%s" % (l, op) for l, op in elements if l != 0) + def __getitem__(self, item): - # I moved this from the main Cigar class in order to make the code more consistent - def merge_like_ops(self): - """ - >>> CigarString("1S20M").merge_like_ops() - CigarString('1S20M') - >>> CigarString("1S1S20M").merge_like_ops() - CigarString('2S20M') - >>> CigarString("1S1S1S20M").merge_like_ops() - CigarString('3S20M') - >>> CigarString("1S1S1S20M1S1S").merge_like_ops() - CigarString('3S20M2S') - """ + if type(item) == slice: + ret = self._cigar.__getitem__(item) + return CigarString(list_in=ret) + return self._cigar.__getitem__(item) - cigs = [] - for op, grps in groupby(self.items(), itemgetter(1)): - cigs.append((sum(g[0] for g in grps), op)) + def __setitem__(self, key, value): + self._needs_update = True + self._cigar[key] = value - return CigarString(self.string_from_elements(cigs)) + def __getslice__(self, i, j): + ret = self._cigar.__getslice__(i, j) + print(type(ret)) + ret2 = CigarString(list_in=ret) + return ret2 - def find_position(self, position: int) -> (int,int): - """ - This finds the index of the element of list(self.items()) that contains the starting position given. + def append(self, item): + self._needs_update = True + self._cigar.append(item) - :param position: The position to find of the CigarString - :return: the index of that in terms of the elements of list(self.items()) - >>> cigar = CigarString('2064M1I12979M3D18439M') - >>> position = 15414 - >>> index, bases = cigar.find_position(position) - >>> assert(index == 4) - >>> assert(bases == 370) + def __add__(self, other): """ - consumed_bases = 0 - bases_left = position - index = 0 - for item in self.items(): - if item[1] == 'D': - index += 1 - continue - consumed_bases += item[0] - if consumed_bases >= position: - return index, bases_left - else: - bases_left -= item[0] - index += 1 - return index, bases_left - - def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: + This adds functionality to the "+" operation that makes sure it returns a CigarString object. + Now you can add two CigarStrings together and get a CigarString back in return. + :param other: Another object + :return: CigarString or a list + + >>>my_cigar = CigarString('100M') + >>>pi = 30 + >>>pf = 32 + >>>new_cig = my_cigar[:pi + 1] + my_cigar[pf:] + >>>assert(len(new_cig) == 99) """ - Inserts a cigar string in either string or list format to the existing cigar string at position pos. - - :param insertion_cigar: A cigar to insert into current cigar string - :param pos1: integer position where to insert the input cigar string - :param pos2: integer position where to pick up the remainder - :return: None - - >>> str1 = CigarString('50M10D7I23M') - >>> str2 = CigarString('10I25M') - >>> iPos = 55 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "50M10D15I25M2I23M") - - >>> str1 = CigarString('50M10D7I23M') - >>> iPos = 20 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "20M10I55M10D7I23M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('2I') - >>> iPos = 5785 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert (str1.cigar == "5786M2I5314M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('1D') - >>> iPos = 6610 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(len(str1) == 11100) - >>> assert (str1.cigar == "6611M1D4489M") - - >>> str1 = CigarString('10M1I2D10M') - >>> str2 = CigarString('1D') - >>> pos1 = 10 - >>> pos2 = pos1 + 2 - >>> str1.insert_cigar_element(pos1, str2, pos2) - >>> cigar_to_insert = '1D1M' - >>> str1_list = str1.string_to_list() - >>> str1_list[pos1] = cigar_to_insert - >>> test_string = CigarStringOld.list_to_string(str1_list) - >>> assert(str1.cigar == test_string) - - >>> original_string = '100M1I10M' - >>> original_cigar = CigarString(original_string) - >>> v_pos = 9 - >>> v_pos2 = 9 + 6 - >>> cigar_to_insert = CigarString('6I') - >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) - >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') - >>> indel_length = 6 - >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] - >>> test_string = CigarStringOld.list_to_string(test_string) - >>> assert (original_cigar.cigar == test_string) - """ - - if insertion_cigar is None: - print('\nError: Invalid insertion operation in CigarString\n') - sys.exit(1) - - if pos1 < 0 or pos1 >= len(self): - print('\nError: Invalid insertion position in CigarString\n') - sys.exit(1) - - if pos2 and (pos2 < pos1 or pos2 >= len(self)): - print('\nError: Invalid second position\n') - sys.exit(1) - + self._needs_update = True + if isinstance(other, CigarString): + result = self._cigar.__add__(other.cigar) + else: + result = self._cigar.__add__(other) try: - found = False - start_index, bases_remain = self.find_position(pos1) - extra_bases_to_discard = 0 - if pos2: - extra_bases_to_discard = pos2 - pos1 - new_element = list(self.items())[:start_index] - items_to_iterate = list(self.items())[start_index:] - new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] - - bases_remain, items_to_iterate[0][1])) - new_element.append(new_item[0]) - items_to_iterate[0:1] = new_item[1:] - new_element += [item for item in insertion_cigar.items()] - for item in items_to_iterate: - if item[0] == 0: - continue - if extra_bases_to_discard <= 0 and item[1] == 'D': - new_element.append(item) - elif extra_bases_to_discard > 0 and item[1] == 'D': - continue - elif found: - new_element.append(item) - elif extra_bases_to_discard > item[0]: - extra_bases_to_discard -= item[0] - elif extra_bases_to_discard == item[0]: - extra_bases_to_discard = 0 - found = True - elif extra_bases_to_discard < item[0]: - new_element.append((item[0] - extra_bases_to_discard, item[1])) - extra_bases_to_discard = 0 - found = True + return CigarString(list_in=result) + except TypeError: + return result - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - self.cigar = CigarString(new_string).merge_like_ops().cigar - except ValueError: - print('\nBug: Problem with insertion.\n') - sys.exit(1) + def __mul__(self, other): + return CigarString(list_in=self._cigar.__mul__(self, other)) - def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': + def items(self): """ - Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the - first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the - first 101 characters, it would return '20M81I'. - - :param start: start point of sequence to retrieve - :param end: end point of sequence to retrieve - :return: The sequence that spans start to end - >>> str1 = CigarString('10M5D10M') - >>> start = 0 - >>> end = 14 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(len(frag) == 14) - >>> assert(frag.cigar == "10M5D4M") - - >>> str1 = CigarString('90M1D10M') - >>> start = 0 - >>> end = 100 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "90M1D10M") - - >>> str1 = CigarString('10M2D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('10M1D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('102M2I10000M') - >>> start1 = 1 - >>> end1 = 102 - >>> frag1 = str1.get_cigar_fragment(start1, end1) - >>> start2 = 102 - >>> end2 = 203 - >>> frag2 = str1.get_cigar_fragment(start2, end2) - >>> assert(frag1.cigar == "101M") - >>> assert(frag2.cigar == "2I99M") - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25080 - >>> end = 25180 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == '99M1D1M') - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25079 - >>> end = start + 100 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "100M") + iterator for cigar string items + :return: Creates an iterator object """ - # Minus 1 because python slices don't include the end coordinate - window_size = end - start - remaining_window = window_size - if window_size < 0: - print(f'\nError: start and end coordinates for get_cigar_fragment ' - f'are wrong: start: {start}, end: {end}') - if start is None or end is None: - print('\nError: Invalid coordinates in get_cigar_fragment\n') - sys.exit(1) - - if start < 0 or start >= len(self): - print('\nError: Invalid start point in get_cigar_fragment\n') - sys.exit(1) - - if end > len(self) or end < 0: - print('\nError: Invalid end point in get_cigar_fragment') - sys.exit(1) - - try: - start_index, bases_remain = self.find_position(start) - end_index = self.find_position(end)[0] - new_element = [] - # +1 here to make it inclusive - list_of_items = list(self.items())[start_index:end_index+1] - if len(list_of_items) == 1: - new_element.append((window_size, list_of_items[0][1])) - else: - for item in list_of_items: - if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: - break - if item[1] == 'D': - new_element.append(item) - elif bases_remain > 0: - bases_remain = item[0] - bases_remain - if bases_remain < 0: - print("Something went wrong retrieving fragment") - sys.exit(1) - elif bases_remain == 0: - continue - new_element.append((bases_remain, item[1])) - remaining_window -= bases_remain - bases_remain = 0 - elif remaining_window > item[0]: - new_element.append(item) - remaining_window -= item[0] - elif remaining_window <= item[0]: - new_element.append((remaining_window, item[1])) - break - - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - return CigarString(new_string).merge_like_ops() - - except ValueError: - print('\nBug: Problem retrieving fragment.\n') - sys.exit(1) - - # TODO use this method or delete it. - def count_elements(self, element: str) -> int: - count = 0 - for item in self.items(): - if item[1] == element: - count += item[0] - return count + if self._cigar_string == "*" or self._needs_update: + yield 0, None + raise StopIteration + cig_iter = groupby(self._cigar_string, lambda c: c.isdigit()) + for g, n in cig_iter: + yield int("".join(n)), "".join(next(cig_iter)[1]) - def string_to_list(self) -> list: + @property + def cigar(self): """ - Converts the cigar string to a full list. - - :return: cigar string in list format. + getter for cigar item + :return: None """ - cigar_dat = [] - d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - cigar_dat += [item[1]] * item[0] - d_reserve = 0 - return cigar_dat + return self._cigar - @staticmethod - def list_to_string(input_list: list) -> str: + # setter for cigar item + @cigar.setter + def cigar(self, new): """ - Convert a cigar string in list format to a standard cigar string - - :param input_list: Cigar string in list format - :return: cigar string in string format + Setter that updates cigar list to new list + :param new: new cigar list + :return: None """ + # TODO this validation isn't correct and may not be needed + # if type(input) is not list or [l for l in input if l not in self._read_consuming_ops]: + # raise ValueError("Invalid input string to cigar") + # sys.exit(1) + self._cigar = new + self._needs_update = True + + def update_cig_string(self): + """ + If the list has changed, this will update the corresponding string. + Due to speed problems with converting list to string, we won't do this unless + instructed, so note that that cigar_string is only valid if needs_update is also false + :return: None - symbols = '' - current_sym = input_list[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(input_list)): - next_sym = input_list[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 - else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + 'D' - current_sym = next_sym[-1] + >>> test_cig = CigarString("100M") + >>> test_cig[10] = "I" + >>> test_cig.update_cig_string() + >>> assert(test_cig._cigar_string == "10M1I89M") + """ + if self._needs_update: + symbols = '' + current_sym = self._cigar[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(self._cigar)): + next_sym = self._cigar[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - return symbols - - -if __name__ == "__main__": - string = '25179M1D8304M' - start = 25079 - end = start + 100 - - temp_symbol_string = CigarString('25179M1D8304M') - eval_list = temp_symbol_string.string_to_list() - frag = temp_symbol_string.get_cigar_fragment(start, end) - - def eval1(): - temp_symbol_string = CigarString('25179M1D8304M') - temp_symbol_string.get_cigar_fragment(start, end) - - def eval2(): - temp_symbol_string2 = CigarStringOld(string_in='25179M1D8304M').get_list() - temp_symbol_string2[start:end] - - print("new method: " + str(timeit.timeit('eval1()', number=10000, globals=globals()))) - print("original method: " + str(timeit.timeit('eval2()', number=10000, globals=globals()))) - print(timeit.timeit('eval_list[start:end]', number=10000, globals=globals())) - - - - - + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + "D" + current_sym = next_sym[-1] + else: + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + self._cigar_string = symbols + self._needs_update = False + else: + pass + + +if __name__ == '__main__': + my_cigar = CigarString('100M') + pi = 30 + pf = 32 + new_cig = my_cigar[:pi + 1] + my_cigar[pf:] + assert(len(new_cig) == 99) + + new_cig = my_cigar[:5] + ["I"] * 5 + my_cigar[5:] + print(new_cig.cigar) diff --git a/source/neat_cigar_intermediate.py b/source/neat_cigar_intermediate.py new file mode 100644 index 0000000..5b1f033 --- /dev/null +++ b/source/neat_cigar_intermediate.py @@ -0,0 +1,416 @@ +import sys +from itertools import groupby +from operator import itemgetter +from source.neat_cigar_old import CigarString as CigarStringOld +import timeit + + +class CigarString: + """ + This code borrowed in whole from https://github.com/brentp/cigar + + cigar is a simple library for dealing with cigar strings. the most useful + feature now is soft-masking from left or right. This allows one to adjust + a SAM record only by changing the cigar string to soft-mask a number of bases + such that the rest of the SAM record (pos, tlen, etc.) remain valid, but + downstream tools will not consider the soft-masked bases in further analysis. + + CigarString adds additional functionality to the cigar module, to make it compatible with + the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo + """ + + read_consuming_ops = ("M", "I", "S", "=", "X") + ref_consuming_ops = ("M", "D", "N", "=", "X") + + def __init__(self, cigar_string): + self.cigar = cigar_string + # storing length as an attribute to see if that speeds anything up. + self.length = sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) + + def items(self): + if self.cigar == "*": + yield 0, None + raise StopIteration + cig_iter = groupby(self.cigar, lambda c: c.isdigit()) + for g, n in cig_iter: + yield int("".join(n)), "".join(next(cig_iter)[1]) + + def __str__(self): + return self.cigar + + def __repr__(self): + return "CigarString('%s')" % self + + def __len__(self): + """ + sum of MIS=X ops shall equal the sequence length. + """ + return self.length + + @classmethod + def string_from_elements(cls, elements): + return "".join("%i%s" % (l, op) for l, op in elements if l != 0) + + # I moved this from the main Cigar class in order to make the code more consistent + def merge_like_ops(self): + """ + >>> CigarString("1S20M").merge_like_ops() + CigarString('1S20M') + >>> CigarString("1S1S20M").merge_like_ops() + CigarString('2S20M') + >>> CigarString("1S1S1S20M").merge_like_ops() + CigarString('3S20M') + >>> CigarString("1S1S1S20M1S1S").merge_like_ops() + CigarString('3S20M2S') + """ + + cigs = [] + for op, grps in groupby(self.items(), itemgetter(1)): + cigs.append((sum(g[0] for g in grps), op)) + + return CigarString(self.string_from_elements(cigs)) + + def find_position(self, position: int) -> (int,int): + """ + This finds the index of the element of list(self.items()) that contains the starting position given. + + :param position: The position to find of the CigarString + :return: the index of that in terms of the elements of list(self.items()) + >>> cigar = CigarString('2064M1I12979M3D18439M') + >>> position = 15414 + >>> index, bases = cigar.find_position(position) + >>> assert(index == 4) + >>> assert(bases == 370) + """ + consumed_bases = 0 + bases_left = position + index = 0 + for item in self.items(): + if item[1] == 'D': + index += 1 + continue + consumed_bases += item[0] + if consumed_bases >= position: + return index, bases_left + else: + bases_left -= item[0] + index += 1 + return index, bases_left + + def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: + """ + Inserts a cigar string in either string or list format to the existing cigar string at position pos. + + :param insertion_cigar: A cigar to insert into current cigar string + :param pos1: integer position where to insert the input cigar string + :param pos2: integer position where to pick up the remainder + :return: None + + >>> str1 = CigarString('50M10D7I23M') + >>> str2 = CigarString('10I25M') + >>> iPos = 55 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "50M10D15I25M2I23M") + + >>> str1 = CigarString('50M10D7I23M') + >>> iPos = 20 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(str1.cigar == "20M10I55M10D7I23M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('2I') + >>> iPos = 5785 + 1 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert (str1.cigar == "5786M2I5314M") + + >>> str1 = CigarString('11100M') + >>> str2 = CigarString('1D') + >>> iPos = 6610 + 1 + >>> str1.insert_cigar_element(iPos, str2) + >>> assert(len(str1) == 11100) + >>> assert (str1.cigar == "6611M1D4489M") + + >>> str1 = CigarString('10M1I2D10M') + >>> str2 = CigarString('1D') + >>> pos1 = 10 + >>> pos2 = pos1 + 2 + >>> str1.insert_cigar_element(pos1, str2, pos2) + >>> cigar_to_insert = '1D1M' + >>> str1_list = str1.string_to_list() + >>> str1_list[pos1] = cigar_to_insert + >>> test_string = CigarStringOld.list_to_string(str1_list) + >>> assert(str1.cigar == test_string) + + >>> original_string = '100M1I10M' + >>> original_cigar = CigarString(original_string) + >>> v_pos = 9 + >>> v_pos2 = 9 + 6 + >>> cigar_to_insert = CigarString('6I') + >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) + >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') + >>> indel_length = 6 + >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] + >>> test_string = CigarStringOld.list_to_string(test_string) + >>> assert (original_cigar.cigar == test_string) + """ + + if insertion_cigar is None: + print('\nError: Invalid insertion operation in CigarString\n') + sys.exit(1) + + if pos1 < 0 or pos1 >= len(self): + print('\nError: Invalid insertion position in CigarString\n') + sys.exit(1) + + if pos2 and (pos2 < pos1 or pos2 >= len(self)): + print('\nError: Invalid second position\n') + sys.exit(1) + + try: + found = False + start_index, bases_remain = self.find_position(pos1) + extra_bases_to_discard = 0 + if pos2: + extra_bases_to_discard = pos2 - pos1 + new_element = list(self.items())[:start_index] + items_to_iterate = list(self.items())[start_index:] + new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] + - bases_remain, items_to_iterate[0][1])) + new_element.append(new_item[0]) + items_to_iterate[0:1] = new_item[1:] + new_element += [item for item in insertion_cigar.items()] + for item in items_to_iterate: + if item[0] == 0: + continue + if extra_bases_to_discard <= 0 and item[1] == 'D': + new_element.append(item) + elif extra_bases_to_discard > 0 and item[1] == 'D': + continue + elif found: + new_element.append(item) + elif extra_bases_to_discard > item[0]: + extra_bases_to_discard -= item[0] + elif extra_bases_to_discard == item[0]: + extra_bases_to_discard = 0 + found = True + elif extra_bases_to_discard < item[0]: + new_element.append((item[0] - extra_bases_to_discard, item[1])) + extra_bases_to_discard = 0 + found = True + + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] + new_string = self.string_from_elements(ret) + self.cigar = CigarString(new_string).merge_like_ops().cigar + except ValueError: + print('\nBug: Problem with insertion.\n') + sys.exit(1) + + def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': + """ + Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the + first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the + first 101 characters, it would return '20M81I'. + + :param start: start point of sequence to retrieve + :param end: end point of sequence to retrieve + :return: The sequence that spans start to end + >>> str1 = CigarString('10M5D10M') + >>> start = 0 + >>> end = 14 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(len(frag) == 14) + >>> assert(frag.cigar == "10M5D4M") + + >>> str1 = CigarString('90M1D10M') + >>> start = 0 + >>> end = 100 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "90M1D10M") + + >>> str1 = CigarString('10M2D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "2M") + + >>> str1 = CigarString('10M1D10M') + >>> start = 10 + >>> end = 12 + >>> frag = str1.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "2M") + + >>> str1 = CigarString('102M2I10000M') + >>> start1 = 1 + >>> end1 = 102 + >>> frag1 = str1.get_cigar_fragment(start1, end1) + >>> start2 = 102 + >>> end2 = 203 + >>> frag2 = str1.get_cigar_fragment(start2, end2) + >>> assert(frag1.cigar == "101M") + >>> assert(frag2.cigar == "2I99M") + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25080 + >>> end = 25180 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar == '99M1D1M') + + >>> temp_symbol_string = CigarString('25179M1D8304M') + >>> start = 25079 + >>> end = start + 100 + >>> frag = temp_symbol_string.get_cigar_fragment(start, end) + >>> assert(frag.cigar == "100M") + """ + # Minus 1 because python slices don't include the end coordinate + window_size = end - start + remaining_window = window_size + if window_size < 0: + print(f'\nError: start and end coordinates for get_cigar_fragment ' + f'are wrong: start: {start}, end: {end}') + if start is None or end is None: + print('\nError: Invalid coordinates in get_cigar_fragment\n') + sys.exit(1) + + if start < 0 or start >= len(self): + print('\nError: Invalid start point in get_cigar_fragment\n') + sys.exit(1) + + if end > len(self) or end < 0: + print('\nError: Invalid end point in get_cigar_fragment') + sys.exit(1) + + try: + start_index, bases_remain = self.find_position(start) + end_index = self.find_position(end)[0] + new_element = [] + # +1 here to make it inclusive + list_of_items = list(self.items())[start_index:end_index+1] + if len(list_of_items) == 1: + new_element.append((window_size, list_of_items[0][1])) + else: + for item in list_of_items: + if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: + break + if item[1] == 'D': + new_element.append(item) + elif bases_remain > 0: + bases_remain = item[0] - bases_remain + if bases_remain < 0: + print("Something went wrong retrieving fragment") + sys.exit(1) + elif bases_remain == 0: + continue + new_element.append((bases_remain, item[1])) + remaining_window -= bases_remain + bases_remain = 0 + elif remaining_window > item[0]: + new_element.append(item) + remaining_window -= item[0] + elif remaining_window <= item[0]: + new_element.append((remaining_window, item[1])) + break + + # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have + # something like "100M1D" as the return. + ret = new_element + for i in range(len(new_element)): + if new_element[0][1] == 'D': + ret = new_element[1:] + if new_element[-1][1] == 'D': + ret = new_element[:-1] + new_string = self.string_from_elements(ret) + return CigarString(new_string).merge_like_ops() + + except ValueError: + print('\nBug: Problem retrieving fragment.\n') + sys.exit(1) + + # TODO use this method or delete it. + def count_elements(self, element: str) -> int: + count = 0 + for item in self.items(): + if item[1] == element: + count += item[0] + return count + + def string_to_list(self) -> list: + """ + Converts the cigar string to a full list. + + :return: cigar string in list format. + """ + cigar_dat = [] + d_reserve = 0 + for item in self.items(): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + cigar_dat += [item[1]] * item[0] + d_reserve = 0 + return cigar_dat + + @staticmethod + def list_to_string(input_list: list) -> str: + """ + Convert a cigar string in list format to a standard cigar string + + :param input_list: Cigar string in list format + :return: cigar string in string format + """ + + symbols = '' + current_sym = input_list[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(input_list)): + next_sym = input_list[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 + else: + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + 'D' + current_sym = next_sym[-1] + else: + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + return symbols + + +if __name__ == "__main__": + string = '25179M1D8304M' + start = 25079 + end = start + 100 + + temp_symbol_string = CigarString('25179M1D8304M') + eval_list = temp_symbol_string.string_to_list() + frag = temp_symbol_string.get_cigar_fragment(start, end) + + def eval1(): + temp_symbol_string = CigarString('25179M1D8304M') + temp_symbol_string.get_cigar_fragment(start, end) + + def eval2(): + temp_symbol_string2 = CigarStringOld(string_in='25179M1D8304M').get_list() + temp_symbol_string2[start:end] + + print("new method: " + str(timeit.timeit('eval1()', number=10000, globals=globals()))) + print("original method: " + str(timeit.timeit('eval2()', number=10000, globals=globals()))) + print(timeit.timeit('eval_list[start:end]', number=10000, globals=globals())) + + + + + diff --git a/source/neat_cigar_new.py b/source/neat_cigar_new.py deleted file mode 100644 index c6e4cdd..0000000 --- a/source/neat_cigar_new.py +++ /dev/null @@ -1,170 +0,0 @@ -import sys -from itertools import groupby -from operator import itemgetter -from source.neat_cigar_old import CigarString as CigarStringOld -from source.neat_cigar import CigarString as CigarStringIntermediate -import timeit - - -class CigarString: - """" - Now we're testing out a list method of CigarString that we're hoping is faster - """ - _read_consuming_ops = ("M", "I", "S", "=", "X") - _ref_consuming_ops = ("M", "D", "N", "=", "X") - - def __init__(self, cigar_string: str = None, list_in: list = None): - """ - Converting the cigar string to a list type method thingy as a test - :param cigar_string: An actual string version of the cigar - """ - self._needs_update = False - self._cigar_string = "*" - if cigar_string: - self._cigar_string = cigar_string - self._cigar = [] - if list_in: - self._cigar = list_in - self._needs_update = True - else: - d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - self._cigar += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - self._cigar += [item[1]] * item[0] - d_reserve = 0 - self.update_cig_string() - - def __str__(self): - if self._needs_update: - return "Needs Update, old string: " + self._cigar_string - else: - return self._cigar_string - - def __repr__(self): - if self._needs_update: - return "Needs update, old: CigarString('%s')" % self._cigar_string - else: - return "CigarString('%s')" % self._cigar_string - - def __len__(self): - return self._cigar.__len__() - - def __getitem__(self, item): - if type(item) == slice: - ret = self._cigar.__getitem__(item) - return CigarString(list_in=ret) - return self._cigar.__getitem__(item) - - def __setitem__(self, key, value): - self._needs_update = True - self._cigar[key] = value - - def __getslice__(self, i, j): - ret = self._cigar.__getslice__(i, j) - print(type(ret)) - ret2 = CigarString(list_in=ret) - return ret2 - - def append(self, item): - self._needs_update = True - self._cigar.append(item) - - def __add__(self, other): - self._needs_update = True - result = self._cigar.__add__(other) - try: - return CigarString(list_in=result) - except TypeError: - return result - - def __mul__(self, other): - return CigarString(list_in=self._cigar.__mul__(self, other)) - - def items(self): - """ - iterator for cigar string items - :return: Creates an iterator object - """ - if self._cigar_string == "*" or self._needs_update: - yield 0, None - raise StopIteration - cig_iter = groupby(self._cigar_string, lambda c: c.isdigit()) - for g, n in cig_iter: - yield int("".join(n)), "".join(next(cig_iter)[1]) - - @property - def cigar(self): - """ - getter for cigar item - :return: None - """ - return self._cigar - - # setter for cigar item - @cigar.setter - def cigar(self, new): - """ - Setter that updates cigar list to new list - :param new: new cigar list - :return: None - """ - # TODO this validation isn't correct and may not be needed - # if type(input) is not list or [l for l in input if l not in self._read_consuming_ops]: - # raise ValueError("Invalid input string to cigar") - # sys.exit(1) - self._cigar = new - self._needs_update = True - - def update_cig_string(self): - """ - If the list has changed, this will update the corresponding string. - Due to speed problems with converting list to string, we won't do this unless - instructed, so note that that cigar_string is only valid if needs_update is also false - :return: None - - >>> test_cig = CigarString("100M") - >>> test_cig[10] = "I" - >>> test_cig.update_cig_string() - >>> assert(test_cig._cigar_string == "10M1I89M") - """ - if self._needs_update: - symbols = '' - current_sym = self._cigar[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(self._cigar)): - next_sym = self._cigar[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 - else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + "D" - current_sym = next_sym[-1] - else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - self._cigar_string = symbols - self._needs_update = False - else: - pass - - -if __name__ == '__main__': - cigar = CigarString('20M') - new_thing = cigar[1:11] - assert(type(cigar[1:11]) == CigarString) - print(cigar.cigar) - cigar.append("I") - print(cigar.cigar) - cigar[3] = "I" - cigar.update_cig_string() - print(cigar.cigar) - print(cigar) diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 4ec8b4a..789ea8f 100755 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -2,6 +2,7 @@ import gzip from Bio.bgzf import * import pathlib +import re import timeit from utilities.generate_random_dna import generate_random_dna from Bio.Seq import Seq @@ -208,13 +209,13 @@ def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None, or (read2, quality2) = (read1, qual1) if self.fasta_instead: - self.fq1_buffer.append('>' + read_name + '/1\n' + read1.seq + '\n') + self.fq1_buffer.append('>' + read_name + '/1\n' + str(read1) + '\n') if read2 is not None: - self.fq2_buffer.append('>' + read_name + '/2\n' + read2.seq + '\n') + self.fq2_buffer.append('>' + read_name + '/2\n' + str(read2) + '\n') else: - self.fq1_buffer.append('@' + read_name + '/1\n' + read1.seq + '\n+\n' + quality1 + '\n') + self.fq1_buffer.append('@' + read_name + '/1\n' + str(read1) + '\n+\n' + quality1 + '\n') if read2 is not None: - self.fq2_buffer.append('@' + read_name + '/2\n' + read2.sq + '\n+\n' + quality2 + '\n') + self.fq2_buffer.append('@' + read_name + '/2\n' + str(read2) + '\n+\n' + quality2 + '\n') def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): self.vcf_file.write( @@ -227,11 +228,10 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, # my_bin = 0 # or just use a dummy value, does this actually matter? my_map_quality = aln_map_quality - cig_letters = [] - cig_numbers = [] - for item in cigar.items(): - cig_numbers.append(item[0]) - cig_letters.append(item[1]) + cigar.update_cig_string() + cigar_string = str(cigar) + cig_letters = re.split(r"\d+", cigar_string)[1:] + cig_numbers = [int(n) for n in re.findall(r"\d+", cigar_string)] cig_ops = len(cig_letters) next_ref_id = ref_id if mate_pos is None: From b44eb8bf65bb7254ff5314cb5051949db9324b0b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Wed, 3 Feb 2021 13:57:57 -0600 Subject: [PATCH 316/323] Deleted the two extraneous neat_cigar files to clean up repo --- source/neat_cigar_intermediate.py | 416 ------------------------------ source/neat_cigar_old.py | 132 ---------- 2 files changed, 548 deletions(-) delete mode 100644 source/neat_cigar_intermediate.py delete mode 100644 source/neat_cigar_old.py diff --git a/source/neat_cigar_intermediate.py b/source/neat_cigar_intermediate.py deleted file mode 100644 index 5b1f033..0000000 --- a/source/neat_cigar_intermediate.py +++ /dev/null @@ -1,416 +0,0 @@ -import sys -from itertools import groupby -from operator import itemgetter -from source.neat_cigar_old import CigarString as CigarStringOld -import timeit - - -class CigarString: - """ - This code borrowed in whole from https://github.com/brentp/cigar - - cigar is a simple library for dealing with cigar strings. the most useful - feature now is soft-masking from left or right. This allows one to adjust - a SAM record only by changing the cigar string to soft-mask a number of bases - such that the rest of the SAM record (pos, tlen, etc.) remain valid, but - downstream tools will not consider the soft-masked bases in further analysis. - - CigarString adds additional functionality to the cigar module, to make it compatible with - the rest of the NEAT codebase. Many functions are lifted directly from brentp's repo - """ - - read_consuming_ops = ("M", "I", "S", "=", "X") - ref_consuming_ops = ("M", "D", "N", "=", "X") - - def __init__(self, cigar_string): - self.cigar = cigar_string - # storing length as an attribute to see if that speeds anything up. - self.length = sum(l for l, op in self.items() if op in CigarString.read_consuming_ops) - - def items(self): - if self.cigar == "*": - yield 0, None - raise StopIteration - cig_iter = groupby(self.cigar, lambda c: c.isdigit()) - for g, n in cig_iter: - yield int("".join(n)), "".join(next(cig_iter)[1]) - - def __str__(self): - return self.cigar - - def __repr__(self): - return "CigarString('%s')" % self - - def __len__(self): - """ - sum of MIS=X ops shall equal the sequence length. - """ - return self.length - - @classmethod - def string_from_elements(cls, elements): - return "".join("%i%s" % (l, op) for l, op in elements if l != 0) - - # I moved this from the main Cigar class in order to make the code more consistent - def merge_like_ops(self): - """ - >>> CigarString("1S20M").merge_like_ops() - CigarString('1S20M') - >>> CigarString("1S1S20M").merge_like_ops() - CigarString('2S20M') - >>> CigarString("1S1S1S20M").merge_like_ops() - CigarString('3S20M') - >>> CigarString("1S1S1S20M1S1S").merge_like_ops() - CigarString('3S20M2S') - """ - - cigs = [] - for op, grps in groupby(self.items(), itemgetter(1)): - cigs.append((sum(g[0] for g in grps), op)) - - return CigarString(self.string_from_elements(cigs)) - - def find_position(self, position: int) -> (int,int): - """ - This finds the index of the element of list(self.items()) that contains the starting position given. - - :param position: The position to find of the CigarString - :return: the index of that in terms of the elements of list(self.items()) - >>> cigar = CigarString('2064M1I12979M3D18439M') - >>> position = 15414 - >>> index, bases = cigar.find_position(position) - >>> assert(index == 4) - >>> assert(bases == 370) - """ - consumed_bases = 0 - bases_left = position - index = 0 - for item in self.items(): - if item[1] == 'D': - index += 1 - continue - consumed_bases += item[0] - if consumed_bases >= position: - return index, bases_left - else: - bases_left -= item[0] - index += 1 - return index, bases_left - - def insert_cigar_element(self, pos1: int, insertion_cigar: 'CigarString', pos2: int = None) -> None: - """ - Inserts a cigar string in either string or list format to the existing cigar string at position pos. - - :param insertion_cigar: A cigar to insert into current cigar string - :param pos1: integer position where to insert the input cigar string - :param pos2: integer position where to pick up the remainder - :return: None - - >>> str1 = CigarString('50M10D7I23M') - >>> str2 = CigarString('10I25M') - >>> iPos = 55 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "50M10D15I25M2I23M") - - >>> str1 = CigarString('50M10D7I23M') - >>> iPos = 20 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(str1.cigar == "20M10I55M10D7I23M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('2I') - >>> iPos = 5785 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert (str1.cigar == "5786M2I5314M") - - >>> str1 = CigarString('11100M') - >>> str2 = CigarString('1D') - >>> iPos = 6610 + 1 - >>> str1.insert_cigar_element(iPos, str2) - >>> assert(len(str1) == 11100) - >>> assert (str1.cigar == "6611M1D4489M") - - >>> str1 = CigarString('10M1I2D10M') - >>> str2 = CigarString('1D') - >>> pos1 = 10 - >>> pos2 = pos1 + 2 - >>> str1.insert_cigar_element(pos1, str2, pos2) - >>> cigar_to_insert = '1D1M' - >>> str1_list = str1.string_to_list() - >>> str1_list[pos1] = cigar_to_insert - >>> test_string = CigarStringOld.list_to_string(str1_list) - >>> assert(str1.cigar == test_string) - - >>> original_string = '100M1I10M' - >>> original_cigar = CigarString(original_string) - >>> v_pos = 9 - >>> v_pos2 = 9 + 6 - >>> cigar_to_insert = CigarString('6I') - >>> original_cigar.insert_cigar_element(v_pos, cigar_to_insert, v_pos2) - >>> cigar_list = CigarStringOld.string_to_list('100M1I10M') - >>> indel_length = 6 - >>> test_string = cigar_list[:v_pos] + ['I'] * indel_length + cigar_list[v_pos2:] - >>> test_string = CigarStringOld.list_to_string(test_string) - >>> assert (original_cigar.cigar == test_string) - """ - - if insertion_cigar is None: - print('\nError: Invalid insertion operation in CigarString\n') - sys.exit(1) - - if pos1 < 0 or pos1 >= len(self): - print('\nError: Invalid insertion position in CigarString\n') - sys.exit(1) - - if pos2 and (pos2 < pos1 or pos2 >= len(self)): - print('\nError: Invalid second position\n') - sys.exit(1) - - try: - found = False - start_index, bases_remain = self.find_position(pos1) - extra_bases_to_discard = 0 - if pos2: - extra_bases_to_discard = pos2 - pos1 - new_element = list(self.items())[:start_index] - items_to_iterate = list(self.items())[start_index:] - new_item = ((bases_remain, items_to_iterate[0][1]), (items_to_iterate[0][0] - - bases_remain, items_to_iterate[0][1])) - new_element.append(new_item[0]) - items_to_iterate[0:1] = new_item[1:] - new_element += [item for item in insertion_cigar.items()] - for item in items_to_iterate: - if item[0] == 0: - continue - if extra_bases_to_discard <= 0 and item[1] == 'D': - new_element.append(item) - elif extra_bases_to_discard > 0 and item[1] == 'D': - continue - elif found: - new_element.append(item) - elif extra_bases_to_discard > item[0]: - extra_bases_to_discard -= item[0] - elif extra_bases_to_discard == item[0]: - extra_bases_to_discard = 0 - found = True - elif extra_bases_to_discard < item[0]: - new_element.append((item[0] - extra_bases_to_discard, item[1])) - extra_bases_to_discard = 0 - found = True - - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - self.cigar = CigarString(new_string).merge_like_ops().cigar - except ValueError: - print('\nBug: Problem with insertion.\n') - sys.exit(1) - - def get_cigar_fragment(self, start: int, end: int) -> 'CigarString': - """ - Take a slice of a cigar string. E.g., if we have a cigar string that is "1000M" and we want a slice of the - first 101 characters, then the return should be '101M'. If we had "20M100I20M" and want the - first 101 characters, it would return '20M81I'. - - :param start: start point of sequence to retrieve - :param end: end point of sequence to retrieve - :return: The sequence that spans start to end - >>> str1 = CigarString('10M5D10M') - >>> start = 0 - >>> end = 14 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(len(frag) == 14) - >>> assert(frag.cigar == "10M5D4M") - - >>> str1 = CigarString('90M1D10M') - >>> start = 0 - >>> end = 100 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "90M1D10M") - - >>> str1 = CigarString('10M2D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('10M1D10M') - >>> start = 10 - >>> end = 12 - >>> frag = str1.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "2M") - - >>> str1 = CigarString('102M2I10000M') - >>> start1 = 1 - >>> end1 = 102 - >>> frag1 = str1.get_cigar_fragment(start1, end1) - >>> start2 = 102 - >>> end2 = 203 - >>> frag2 = str1.get_cigar_fragment(start2, end2) - >>> assert(frag1.cigar == "101M") - >>> assert(frag2.cigar == "2I99M") - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25080 - >>> end = 25180 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == '99M1D1M') - - >>> temp_symbol_string = CigarString('25179M1D8304M') - >>> start = 25079 - >>> end = start + 100 - >>> frag = temp_symbol_string.get_cigar_fragment(start, end) - >>> assert(frag.cigar == "100M") - """ - # Minus 1 because python slices don't include the end coordinate - window_size = end - start - remaining_window = window_size - if window_size < 0: - print(f'\nError: start and end coordinates for get_cigar_fragment ' - f'are wrong: start: {start}, end: {end}') - if start is None or end is None: - print('\nError: Invalid coordinates in get_cigar_fragment\n') - sys.exit(1) - - if start < 0 or start >= len(self): - print('\nError: Invalid start point in get_cigar_fragment\n') - sys.exit(1) - - if end > len(self) or end < 0: - print('\nError: Invalid end point in get_cigar_fragment') - sys.exit(1) - - try: - start_index, bases_remain = self.find_position(start) - end_index = self.find_position(end)[0] - new_element = [] - # +1 here to make it inclusive - list_of_items = list(self.items())[start_index:end_index+1] - if len(list_of_items) == 1: - new_element.append((window_size, list_of_items[0][1])) - else: - for item in list_of_items: - if sum([item[0] for item in new_element if item[1] != 'D']) == window_size: - break - if item[1] == 'D': - new_element.append(item) - elif bases_remain > 0: - bases_remain = item[0] - bases_remain - if bases_remain < 0: - print("Something went wrong retrieving fragment") - sys.exit(1) - elif bases_remain == 0: - continue - new_element.append((bases_remain, item[1])) - remaining_window -= bases_remain - bases_remain = 0 - elif remaining_window > item[0]: - new_element.append(item) - remaining_window -= item[0] - elif remaining_window <= item[0]: - new_element.append((remaining_window, item[1])) - break - - # The point of this block of code is just to trim off any starting or ending "D"s, so we don't have - # something like "100M1D" as the return. - ret = new_element - for i in range(len(new_element)): - if new_element[0][1] == 'D': - ret = new_element[1:] - if new_element[-1][1] == 'D': - ret = new_element[:-1] - new_string = self.string_from_elements(ret) - return CigarString(new_string).merge_like_ops() - - except ValueError: - print('\nBug: Problem retrieving fragment.\n') - sys.exit(1) - - # TODO use this method or delete it. - def count_elements(self, element: str) -> int: - count = 0 - for item in self.items(): - if item[1] == element: - count += item[0] - return count - - def string_to_list(self) -> list: - """ - Converts the cigar string to a full list. - - :return: cigar string in list format. - """ - cigar_dat = [] - d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - cigar_dat += [item[1]] * item[0] - d_reserve = 0 - return cigar_dat - - @staticmethod - def list_to_string(input_list: list) -> str: - """ - Convert a cigar string in list format to a standard cigar string - - :param input_list: Cigar string in list format - :return: cigar string in string format - """ - - symbols = '' - current_sym = input_list[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(input_list)): - next_sym = input_list[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 - else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + 'D' - current_sym = next_sym[-1] - else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - return symbols - - -if __name__ == "__main__": - string = '25179M1D8304M' - start = 25079 - end = start + 100 - - temp_symbol_string = CigarString('25179M1D8304M') - eval_list = temp_symbol_string.string_to_list() - frag = temp_symbol_string.get_cigar_fragment(start, end) - - def eval1(): - temp_symbol_string = CigarString('25179M1D8304M') - temp_symbol_string.get_cigar_fragment(start, end) - - def eval2(): - temp_symbol_string2 = CigarStringOld(string_in='25179M1D8304M').get_list() - temp_symbol_string2[start:end] - - print("new method: " + str(timeit.timeit('eval1()', number=10000, globals=globals()))) - print("original method: " + str(timeit.timeit('eval2()', number=10000, globals=globals()))) - print(timeit.timeit('eval_list[start:end]', number=10000, globals=globals())) - - - - - diff --git a/source/neat_cigar_old.py b/source/neat_cigar_old.py deleted file mode 100644 index 3b747f2..0000000 --- a/source/neat_cigar_old.py +++ /dev/null @@ -1,132 +0,0 @@ -import re - - -class CigarString: - """ - Creates and modifies CigarString for output - """ - def __init__(self, string_in=None, list_in=None): - - if string_in is None and list_in is None: - print('\nError: CigarString object not initialized.\n') - exit(1) - - self.cigar_data = [] - - if string_in is not None: - self.join_cigar(j_string_in=string_in) - - if list_in is not None: - self.join_cigar(j_list_in=list_in) - - @staticmethod - def string_to_list(string_to_covert: str) -> list: - """ - Converts cigar string to a full list - - :param string_to_covert: Cigar string to convert to list - :return: cigar string in list format - """ - - cigar_dat = [] - letters = re.split(r"\d+", string_to_covert)[1:] - numbers = [int(n) for n in re.findall(r"\d+", string_to_covert)] - d_reserve = 0 - for i in range(len(letters)): - if letters[i] == 'D': - d_reserve = numbers[i] - if letters[i] == 'M' or letters[i] == 'I': - if d_reserve: - cigar_dat += ['D' * d_reserve + letters[i]] + [letters[i]] * (int(numbers[i]) - 1) - else: - cigar_dat += [letters[i]] * int(numbers[i]) - d_reserve = 0 - return cigar_dat - - @staticmethod - def list_to_string(list_to_convert: list) -> str: - """ - Convert a cigar string in list format to a standard cigar string - - :param list_to_convert: Cigar string in list format - :return: cigar string in string format - """ - - symbols = '' - current_sym = list_to_convert[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(list_to_convert)): - next_sym = list_to_convert[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 - else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + 'D' - current_sym = next_sym[-1] - else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - return symbols - - def get_list(self): - - return self.cigar_data - - def get_string(self): - - return self.list_to_string(self.cigar_data) - - def join_cigar(self, j_string_in: str = None, j_list_in: list = None): - """ - Adds an inputted cigar string in string or list format to the existing cigar string - - :param j_string_in: cigar string in string format - :param j_list_in: cigar string in list format - :return: None - """ - - if j_string_in is None and j_list_in is None: - print('\nError: Invalid join operation in CigarString\n') - exit(1) - - if j_string_in is not None: - self.cigar_data += self.string_to_list(j_string_in) - - if j_list_in is not None: - self.cigar_data += j_list_in - - def insert_cigar_element(self, pos: int, i_string_in: str = None, i_list_in: list = None): - """ - Inserts a cigar string in either string or list format to the existing cigar string at position pos. - - :param pos: integer position where to insert the input cigar string - :param i_string_in: input cigar string in string format - :param i_list_in: input cigar string in list format - :return: - - >>>str1 = '50M10D7I23M' - >>>str2 = '10I25M' - >>>iPos = 20 - >>>my_cigar = CigarString(string_in=str1) - >>>my_cigar.insert_cigar_element(iPos, i_string_in=str2) - >>>assert(my_cigar.get_string() == "20M10I55M10D7I23M") - """ - - if i_string_in is None and i_list_in is None: - print('\nError: Invalid insertion operation in CigarString\n') - exit(1) - - if pos < 0 or pos >= len(self.cigar_data): - print('\nError: Invalid insertion position in CigarString\n') - exit(1) - - if i_string_in is not None: - self.cigar_data = self.cigar_data[:pos] + self.string_to_list(i_string_in) + self.cigar_data[pos:] - - if i_list_in is not None: - self.cigar_data = self.cigar_data[:pos] + i_list_in + self.cigar_data[pos:] - From b5dd05f5829e2fdad44ac40f901343ffebf0e1a1 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Thu, 4 Feb 2021 16:27:15 -0600 Subject: [PATCH 317/323] Fix to CigarString. Stripped it down to its base elements to speed up the code. --- gen_reads.py | 13 +-- source/SequenceContainer.py | 22 ++-- source/neat_cigar.py | 200 +++++++++-------------------------- source/output_file_writer.py | 24 +---- 4 files changed, 73 insertions(+), 186 deletions(-) diff --git a/gen_reads.py b/gen_reads.py index fea4ff3..33be104 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -123,8 +123,9 @@ def main(raw_args=None): # cancer params (disabled currently) # (cancer, cancer_model, cancer_purity) = (args.cancer, args.cm, args.cp) (cancer, cancer_model, cancer_purity) = (False, None, 0.8) - (off_target_scalar, off_target_discard, force_coverage, rescale_qual) = (args.to, args.discard_offtarget, - args.force_coverage, args.rescale_qual) + (off_target_scalar, off_target_discard, force_coverage, rescale_qual) = (args.to, + args.discard_offtarget, + args.force_coverage, args.rescale_qual) # important flags (save_bam, save_vcf, fasta_instead, gzipped_out, no_fastq) = \ (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) @@ -284,7 +285,6 @@ def main(raw_args=None): else: n_handling = ('ignore', read_len) - indices_by_ref_name = {ref_index[n][0]: n for n in range(len(ref_index))} ref_list = [n[0] for n in ref_index] @@ -449,7 +449,8 @@ def main(raw_args=None): # If it passes the above tests, append to valid variants list valid_variants_from_vcf.append(n) - print('found', len(valid_variants_from_vcf), 'valid variants for ' + ref_index[chrom][0] + ' in input VCF...') + print('found', len(valid_variants_from_vcf), 'valid variants for ' + + ref_index[chrom][0] + ' in input VCF...') if any(n_skipped): print(sum(n_skipped), 'variants skipped...') print(' - [' + str(n_skipped[0]) + '] ref allele does not match reference') @@ -460,8 +461,8 @@ def main(raw_args=None): # determine sampling windows based on read length, large N regions, and structural mutations. # in order to obtain uniform coverage, windows should overlap by: - # - read_len, if single-end reads - # - fragment_size (mean), if paired-end reads + # - read_len, if single-end reads + # - fragment_size (mean), if paired-end reads # ploidy is fixed per large sampling window, # coverage distributions due to GC% and targeted regions are specified within these windows all_variants_out = {} diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index b2b48d1..280051b 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -586,7 +586,7 @@ def random_mutations(self): # MODIFY REFERENCE STRING: INDELS for i in range(len(all_indels_ins)): rolling_adj = 0 - temp_symbol_string = CigarString(str(len(self.sequences[i])) + "M") + temp_symbol_list = CigarString.string_to_list(str(len(self.sequences[i])) + "M") for j in range(len(all_indels_ins[i])): v_pos = all_indels_ins[i][j][0] + rolling_adj @@ -604,14 +604,14 @@ def random_mutations(self): self.sequences[i][v_pos2:] # notate indel positions for cigar computation if indel_length > 0: - temp_symbol_string = temp_symbol_string[:v_pos + 1] + ['I'] * indel_length \ - + temp_symbol_string[v_pos2 + 1:] + temp_symbol_list = temp_symbol_list[:v_pos + 1] + ['I'] * indel_length \ + + temp_symbol_list[v_pos2 + 1:] elif indel_length < 0: - temp_symbol_string[v_pos + 1] = "D" * abs(indel_length) + "M" + temp_symbol_list[v_pos + 1] = "D" * abs(indel_length) + "M" # pre-compute cigar strings - for j in range(len(temp_symbol_string) - self.read_len): - self.all_cigar[i].append(temp_symbol_string[j:j + self.read_len]) + for j in range(len(temp_symbol_list) - self.read_len): + self.all_cigar[i].append(temp_symbol_list[j:j + self.read_len]) # create some data structures we will need later: # --- self.fm_pos[ploid][pos]: position of the left-most matching base (IN REFERENCE COORDINATES, i.e. @@ -619,16 +619,16 @@ def random_mutations(self): # --- self.fm_span[ploid][pos]: number of reference positions spanned by a read originating from # this coordinate md_so_far = 0 - for j in range(len(temp_symbol_string)): + for j in range(len(temp_symbol_list)): self.fm_pos[i].append(md_so_far) # fix an edge case with deletions - if 'D' in temp_symbol_string[j]: - self.fm_pos[i][-1] += temp_symbol_string[j].count('D') + if 'D' in temp_symbol_list[j]: + self.fm_pos[i][-1] += temp_symbol_list[j].count('D') # compute number of ref matches for each read # This line gets hit a lot and is relatively slow. Might look for an improvement - span_dif = len([n for n in temp_symbol_string[j: j + self.read_len] if 'M' in n]) + span_dif = len([n for n in temp_symbol_list[j: j + self.read_len] if 'M' in n]) self.fm_span[i].append(self.fm_pos[i][-1] + span_dif) - md_so_far += temp_symbol_string[j].count('M') + temp_symbol_string[j].count('D') + md_so_far += temp_symbol_list[j].count('M') + temp_symbol_list[j].count('D') # tally up all the variants we handled... count_dict = {} diff --git a/source/neat_cigar.py b/source/neat_cigar.py index a88b3ab..e1d1ef2 100644 --- a/source/neat_cigar.py +++ b/source/neat_cigar.py @@ -8,172 +8,72 @@ class CigarString: _read_consuming_ops = ("M", "I", "S", "=", "X") _ref_consuming_ops = ("M", "D", "N", "=", "X") - def __init__(self, cigar_string: str = None, list_in: list = None): - """ - Converting the cigar string to a list type method thingy as a test - :param cigar_string: An actual string version of the cigar - """ - self._needs_update = False - self._cigar_string = "*" - if cigar_string: - self._cigar_string = cigar_string - self._cigar = [] - if list_in: - self._cigar = list_in - self._needs_update = True - else: - d_reserve = 0 - for item in self.items(): - if item[1] == 'D': - d_reserve = item[0] - if item[1] in ['M', 'I']: - if d_reserve: - self._cigar += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) - else: - self._cigar += [item[1]] * item[0] - d_reserve = 0 - self.update_cig_string() - - def __str__(self): - if self._needs_update: - return "Needs Update, old string: " + self._cigar_string - else: - return self._cigar_string - - def __repr__(self): - if self._needs_update: - return "Needs update, old: CigarString('%s')" % self._cigar_string - else: - return "CigarString('%s')" % self._cigar_string - - def __len__(self): - return self._cigar.__len__() - - def __getitem__(self, item): - - if type(item) == slice: - ret = self._cigar.__getitem__(item) - return CigarString(list_in=ret) - return self._cigar.__getitem__(item) - - def __setitem__(self, key, value): - self._needs_update = True - self._cigar[key] = value - - def __getslice__(self, i, j): - ret = self._cigar.__getslice__(i, j) - print(type(ret)) - ret2 = CigarString(list_in=ret) - return ret2 - - def append(self, item): - self._needs_update = True - self._cigar.append(item) - - def __add__(self, other): - """ - This adds functionality to the "+" operation that makes sure it returns a CigarString object. - Now you can add two CigarStrings together and get a CigarString back in return. - :param other: Another object - :return: CigarString or a list - - >>>my_cigar = CigarString('100M') - >>>pi = 30 - >>>pf = 32 - >>>new_cig = my_cigar[:pi + 1] + my_cigar[pf:] - >>>assert(len(new_cig) == 99) - """ - self._needs_update = True - if isinstance(other, CigarString): - result = self._cigar.__add__(other.cigar) - else: - result = self._cigar.__add__(other) - try: - return CigarString(list_in=result) - except TypeError: - return result - - def __mul__(self, other): - return CigarString(list_in=self._cigar.__mul__(self, other)) - - def items(self): + @staticmethod + def items(string_in: str) -> iter: """ iterator for cigar string items :return: Creates an iterator object """ - if self._cigar_string == "*" or self._needs_update: + if string_in == "*": yield 0, None raise StopIteration - cig_iter = groupby(self._cigar_string, lambda c: c.isdigit()) + cig_iter = groupby(string_in, lambda c: c.isdigit()) for g, n in cig_iter: yield int("".join(n)), "".join(next(cig_iter)[1]) - @property - def cigar(self): + @staticmethod + def string_to_list(string_in: str) -> list: """ - getter for cigar item - :return: None + This will convert a cigar string into a list of elements + :param string_in: a valid cigar string. + :return: a list version of that string. """ - return self._cigar + cigar_dat = [] + d_reserve = 0 + for item in CigarString.items(string_in): + if item[1] == 'D': + d_reserve = item[0] + if item[1] in ['M', 'I']: + if d_reserve: + cigar_dat += ['D' * d_reserve + item[1]] + [item[1]] * (item[0] - 1) + else: + cigar_dat += [item[1]] * item[0] + d_reserve = 0 + return cigar_dat - # setter for cigar item - @cigar.setter - def cigar(self, new): - """ - Setter that updates cigar list to new list - :param new: new cigar list - :return: None + @staticmethod + def list_to_string(input_list: list) -> str: """ - # TODO this validation isn't correct and may not be needed - # if type(input) is not list or [l for l in input if l not in self._read_consuming_ops]: - # raise ValueError("Invalid input string to cigar") - # sys.exit(1) - self._cigar = new - self._needs_update = True - - def update_cig_string(self): + Convert a cigar string in list format to a standard cigar string + :param input_list: Cigar string in list format + :return: cigar string in string format """ - If the list has changed, this will update the corresponding string. - Due to speed problems with converting list to string, we won't do this unless - instructed, so note that that cigar_string is only valid if needs_update is also false - :return: None - >>> test_cig = CigarString("100M") - >>> test_cig[10] = "I" - >>> test_cig.update_cig_string() - >>> assert(test_cig._cigar_string == "10M1I89M") - """ - if self._needs_update: - symbols = '' - current_sym = self._cigar[0] - current_count = 1 - if 'D' in current_sym: - current_sym = current_sym[-1] - for k in range(1, len(self._cigar)): - next_sym = self._cigar[k] - if len(next_sym) == 1 and next_sym == current_sym: - current_count += 1 + symbols = '' + current_sym = input_list[0] + current_count = 1 + if 'D' in current_sym: + current_sym = current_sym[-1] + for k in range(1, len(input_list)): + next_sym = input_list[k] + if len(next_sym) == 1 and next_sym == current_sym: + current_count += 1 + else: + symbols += str(current_count) + current_sym + if 'D' in next_sym: + symbols += str(next_sym.count('D')) + 'D' + current_sym = next_sym[-1] else: - symbols += str(current_count) + current_sym - if 'D' in next_sym: - symbols += str(next_sym.count('D')) + "D" - current_sym = next_sym[-1] - else: - current_sym = next_sym - current_count = 1 - symbols += str(current_count) + current_sym - self._cigar_string = symbols - self._needs_update = False - else: - pass + current_sym = next_sym + current_count = 1 + symbols += str(current_count) + current_sym + return symbols if __name__ == '__main__': - my_cigar = CigarString('100M') - pi = 30 - pf = 32 - new_cig = my_cigar[:pi + 1] + my_cigar[pf:] - assert(len(new_cig) == 99) - - new_cig = my_cigar[:5] + ["I"] * 5 + my_cigar[5:] - print(new_cig.cigar) + cigar = "10M1I3D1M" + lst = CigarString.string_to_list(cigar) + print(lst) + st = CigarString.list_to_string(lst) + print(st) + \ No newline at end of file diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 789ea8f..69c6c04 100755 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -3,31 +3,18 @@ from Bio.bgzf import * import pathlib import re -import timeit -from utilities.generate_random_dna import generate_random_dna -from Bio.Seq import Seq -# from source.biopython_modified_bgzf import BgzfWriter +from source.neat_cigar import CigarString BAM_COMPRESSION_LEVEL = 6 -# def reverse_complement(dna_string: str) -> str: -# """ -# Return the reverse complement of a string from a DNA strand -# :param dna_string: string of DNA -# :return: the reverse compliment of the above string -# """ -# rc_dict = {'A': 'T', 'C': 'G', 'G': 'C', 'T': 'A', 'N': 'N'} -# return ''.join(rc_dict[n] for n in dna_string[::-1]) - - -def reverse_complement(dna_string: str) -> str: +def reverse_complement(dna_string) -> str: """ Return the reverse complement of a string from a DNA strand. Found this method that is slightly faster than biopython. Thanks to this stack exchange post: - https://bioinformatics.stackexchange.com/questions/3583/what-is-the-fastest-way-to-get-the-reverse-complement-of-a-dna-sequence-in-pytho #noqa - :param dna_string: string of DNA, either in string or MutableSeq format + https://bioinformatics.stackexchange.com/questions/3583/what-is-the-fastest-way-to-get-the-reverse-complement-of-a-dna-sequence-in-pytho + :param dna_string: string of DNA, either in string or Seq format :return: the reverse complement of the above string in either string or MutableSeq format """ if type(dna_string) != str: @@ -228,8 +215,7 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, # my_bin = 0 # or just use a dummy value, does this actually matter? my_map_quality = aln_map_quality - cigar.update_cig_string() - cigar_string = str(cigar) + cigar_string = CigarString.list_to_string(cigar) cig_letters = re.split(r"\d+", cigar_string)[1:] cig_numbers = [int(n) for n in re.findall(r"\d+", cigar_string)] cig_ops = len(cig_letters) From 62a6746ea6dc98accc04be68f9637b82be378dce Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 12:23:02 -0600 Subject: [PATCH 318/323] Tested and ready to pull to master. Made some notes for future improvements. --- source/SequenceContainer.py | 7 +++++++ source/probability.py | 12 +++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 280051b..4690c40 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -256,6 +256,7 @@ def init_coverage(self, coverage_data, frag_dist=None): :return: Mean coverage value """ + # TODO this section is also quite slow and will need further investigation # If we're only creating a vcf, skip some expensive initialization related to coverage depth if not self.only_vcf: (self.window_size, gc_scalars, target_cov_vals) = coverage_data @@ -374,6 +375,7 @@ def init_poisson(self): range(len(self.models))] k_range = range(int(self.seq_len * MAX_MUTFRAC)) # return (indel_poisson, snp_poisson) + # TODO These next two lines are really slow. Maybe there's a better way return [poisson_list(k_range, ind_l_list[n]) for n in range(len(self.models))], \ [poisson_list(k_range, snp_l_list[n]) for n in range(len(self.models))] @@ -935,6 +937,7 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): :return: modified sequence and associate quality scores """ + # TODO this is one of the slowest methods in the code. Need to investigate how to speed this up. q_out = [0] * self.read_len s_err = [] @@ -951,6 +954,8 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): my_q = self.init_dist_by_pos_1[0].sample() q_out[0] = my_q + # Every time this is hit, we loop the entire read length twice. I feel like these two loops + # Could be combined into one fairly easily. The culprit seems to bee too many hits to the sample() method. for i in range(1, self.read_len): if self.pe_models and is_reverse_strand: my_q = self.prob_dist_by_pos_by_prev_q2[self.q_ind_remap[i]][my_q].sample() @@ -977,6 +982,8 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): # don't allow other sequencing errors to occur on bases removed by deletion errors del_blacklist = [] + # Need to check into this loop, to make sure it isn't slowing us down. + # The culprit seems to bee too many hits to the sample() method. This has a few of those calls. for ind in s_err[::-1]: # for each error that we're going to insert... # determine error type diff --git a/source/probability.py b/source/probability.py index 1cb7bb4..12cc076 100755 --- a/source/probability.py +++ b/source/probability.py @@ -2,6 +2,7 @@ import bisect import copy import sys +from typing import Union import numpy as np @@ -39,6 +40,8 @@ def __init__(self, weights, values, degenerate_val=None, method='bisect'): self.degenerate = values[0] else: self.weights = [n / sum_weight for n in weights] + # TODO This line is slowing things down and seems unnecessary. Are these "values + # possibly some thing from another class? self.values = copy.deepcopy(values) if len(self.values) != len(self.weights): print('\nError: length and weights and values vectors must be the same.\n') @@ -81,7 +84,14 @@ def __init__(self, weights, values, degenerate_val=None, method='bisect'): def __str__(self): return str(self.weights) + ' ' + str(self.values) + ' ' + self.method - def sample(self): + def sample(self) -> Union[int, float]: + """ + This is one of the slowest parts of the code. Or it just gets hit the most times. Will need + to investigate at some point. + :return: Since this function is selecting an item from a list, and the list could theoretically be anything, + then in a broad sense this function returns a list item or a generic object. But I'm fairly confident that most + of these uses will be lists of ints or floats, but will investigate further + """ if self.degenerate is not None: return self.degenerate From 8b45613c60ef659329ef1c538b40240f2c2bf175 Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 12:43:03 -0600 Subject: [PATCH 319/323] Changed gen_reads to match master --- gen_reads.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gen_reads.py b/gen_reads.py index 33be104..d69cc36 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -72,7 +72,7 @@ def main(raw_args=None): parser.add_argument('-m', type=str, required=False, metavar='model.p', default=None, help="Mutation model pickle file") parser.add_argument('-M', type=float, required=False, metavar='avg mut rate', default=-1, - help="Rescale avg mutation rate to this, must be between 0 and 0.3") + help="Rescale avg mutation rate to this (1/bp), must be between 0 and 0.3") parser.add_argument('-Mb', type=str, required=False, metavar='mut_rates.bed', default=None, help="Bed file containing positional mut rates") parser.add_argument('-N', type=int, required=False, metavar='min qual score', default=-1, From 80a7b63c408aa03a0242f15b3c3c7768a3bc876d Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 12:48:59 -0600 Subject: [PATCH 320/323] Pulled in the no indel model and repickled to python 3 format --- models/MutModel_BRCA_US_ICGC.p | Bin models/MutModel_CLLE-ES_ICGC.p | Bin models/MutModel_NA12878.p.gz | Bin models/MutModel_NA12878_noIndel.p | Bin 0 -> 7487 bytes models/MutModel_SKCM-US_ICGC.p | Bin models/README.md | 0 models/errorModel_pacbio_toy.p | Bin models/errorModel_toy.p | Bin 3282719 -> 3282717 bytes models/fraglenModel_toy.p | Bin models/gcBias_toy.p | Bin models/gcBias_uniform.p | Bin models/genReadsTumorTutorial.zip | Bin 12 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 models/MutModel_BRCA_US_ICGC.p mode change 100755 => 100644 models/MutModel_CLLE-ES_ICGC.p mode change 100755 => 100644 models/MutModel_NA12878.p.gz create mode 100644 models/MutModel_NA12878_noIndel.p mode change 100755 => 100644 models/MutModel_SKCM-US_ICGC.p mode change 100755 => 100644 models/README.md mode change 100755 => 100644 models/errorModel_pacbio_toy.p mode change 100755 => 100644 models/errorModel_toy.p mode change 100755 => 100644 models/fraglenModel_toy.p mode change 100755 => 100644 models/gcBias_toy.p mode change 100755 => 100644 models/gcBias_uniform.p mode change 100755 => 100644 models/genReadsTumorTutorial.zip diff --git a/models/MutModel_BRCA_US_ICGC.p b/models/MutModel_BRCA_US_ICGC.p old mode 100755 new mode 100644 diff --git a/models/MutModel_CLLE-ES_ICGC.p b/models/MutModel_CLLE-ES_ICGC.p old mode 100755 new mode 100644 diff --git a/models/MutModel_NA12878.p.gz b/models/MutModel_NA12878.p.gz old mode 100755 new mode 100644 diff --git a/models/MutModel_NA12878_noIndel.p b/models/MutModel_NA12878_noIndel.p new file mode 100644 index 0000000000000000000000000000000000000000..4e9d75ab099b016afe4e5ea63a44e27b08a459a7 GIT binary patch literal 7487 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 bp^EiN8)+NLJ%%fGo!kG|R*7!qp6mR7;EjvI delta 2197 zcmZ9O4QyN0702`5v!CtQ&vts_IxmTxmk*wk)N!146*EQDqic%jm(^9EBpWe|jxrUN zq$@4j0v2UsP1Vg)YyX9+5*M~r6ahx9xf5-u2c0xFLYz&b8zYqg2{cWm7O=5txZZL6 z5(ZX$b+6C8=bn$>IX5Ss`<*aNUsJ-A5`J#F)wH>8v+zRfrHU;j*9mpi&(XNYbM*WI z%dHbGS6~s`E*ufOI^5GMVhB$OTadip#E{tPR}uY*q*a&t@~{KfY~4!wWEVqWx=Tg; z`(DO1QLMkVs7mop-9dk+)*t)vu^q>9gVH~ZD*~UG8C)&hGTZ|;B{ybzyOJ6;d*D0Y z$#93G*NI-GcLnaNgjgy_TW?f)S#H*xtQ}8_ei`N4yA)imm}Mk4Io2Tmbt}VMhnFG0 zN!BrYK+v&%(j)V*Am3CwmP%T5XubxP+Gb%;Y7-gv2o@!G)ne#|WshA?3syN*wCcH{ zHEW!0u&Jp-HkP_f=KjU@8bwetBA7Z^&vG;MrHYuU%l*dg5qR>pzzf3BqC>{mL+w$X zH95X1AajGajInbfs}2Vdw%Jv<11&?G1WyXcf7tmWgy$PijEZ?oCspW0HQaR&y@ z^c_O+W^yXKy>Uw|F*F;6c2(7pf4ccnRjtCmCpmVM@rJl+F^w8BdxZ_i?sZ*6_5t@0 zkBQ17*OtX9l3f&uxpicecCPCnvgP&(6km}>G1gW;0ry2|7qVXaFL_CFe*9UDj>n!i zM^Km-DC09UTwU-md`op4f~GoEgirSmB5{*^02#UA*N6p_t%&^~(1iFi{TfP^2D)=d z)NtW-i_D`Y*V)f%*6e>zqHuiF5J6%`6IpXbP%tU2WO(_%ZW;ME1%)3M+~2J%+s@MN z4vNEBn~Kt`NW7l4MUdRktf6w8$vExoRJdPk_;(G&D$``Ju!5-DY92-A530^-dAp(T z(k-i0WI`ILNOi11IM^9Pw2xTKPXyLr?2?)BsK`j!Vq^n@bZcxxR*<-{Uq<5FtB9*% zS*xanA-*hCKB=lXY1a@PmKmnIJaTPGTOvFwHa>1By#6Ko0W!xkMGTpd5WHlGeMRO2*|=EL2LR|M~aHPGdQA6OgjTZ{3C^JygRZq=(!>Hjy&?rJ53A6yxPCN)v9 zOHKD0G0v4uI)7PE->zxGPN7-luL#Y5H`e#OLso{$0U7ai-3l)XEwpn^Xm#PDhiW_~ zw8|)qxRunNR>nubijjr)8I3;TR3Ht+K()fq$EKA+CFiN2+(#aRm1p$uQN{z z=_h2yPnfh_Wps<}9f+T68m$f!7+Wt+RA*aiONve;eZ@(RttAxVN7@w3z18@`7tQUg zjFQ;57TLd=DD8(k75o&`qY@jbB8m-_hFj!Jr6#R}L@(%Yy9zkYA z(oq-{$kur?LAbqqH)cs1(BN6q*+1cPi@sake=)f0};4`E}3BN*>7xw zl?cj;y$VWJQASp#5Y067vo8-BYtQ07dWK}L^0|~xNxgnU*9Rkh9S=QEew4&j)u+R> zRExr^^(vkVk)g5o3GF_K5?|;eluJ8_m#9RjTo8j4U|RCH6#UNT4Ujyb-ku(EsJPnR zqaZv??@h9utf3`^WZ0qL{*E4cVZSirr=`9=!>$D}q+z$}zZWGF`FLCkX*?x`zF~+z z6#F&qmHOYUpiK&QVCH?Daw~=z|C$tDD$Y}9>`Zxfd-179pG+I26p;qrB`5#G7XQJh SLyNRpM@U*N6LYI)+5Z4+BKUg% diff --git a/models/fraglenModel_toy.p b/models/fraglenModel_toy.p old mode 100755 new mode 100644 diff --git a/models/gcBias_toy.p b/models/gcBias_toy.p old mode 100755 new mode 100644 diff --git a/models/gcBias_uniform.p b/models/gcBias_uniform.p old mode 100755 new mode 100644 diff --git a/models/genReadsTumorTutorial.zip b/models/genReadsTumorTutorial.zip old mode 100755 new mode 100644 From bf74db0dbeacbb5c4278b20fe02225938ab6724c Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 18:25:28 -0600 Subject: [PATCH 321/323] Added in some features from main branch. --- ChangeLog.md | 24 +++++++ README.md | 50 +++++++------ gen_reads.py | 72 +++++++++---------- merge_jobs.py | 133 ----------------------------------- requirements.txt | 6 ++ source/SequenceContainer.py | 85 +++++++++++++++------- source/output_file_writer.py | 95 ++++++++++++------------- source/vcf_func.py | 40 +++++++---- 8 files changed, 226 insertions(+), 279 deletions(-) create mode 100644 ChangeLog.md delete mode 100755 merge_jobs.py create mode 100644 requirements.txt diff --git a/ChangeLog.md b/ChangeLog.md new file mode 100644 index 0000000..bc48ba7 --- /dev/null +++ b/ChangeLog.md @@ -0,0 +1,24 @@ +#NEAT v3.0 +- NEAT gen_reads now runs in Python 3 exclusively. The previous, Python 2 version is stored in the repo as v2.0, but will not be undergoing active development. +- Converted sequence objects to Biopython Sequence objects to take advantage of the Biopython library +- Converted cigar strings to lists. Now there are simply a functions that convert a generic cigar string to a list and vice versa. +- Tried to take better advantage of some Biopython libraries, such as for parsing fastas. +- For now, we've eliminated the "Jobs" option and the merge jobs function. We plan to implement multi-threading instead as a way to speed up NEAT's simulation process. +- Added a basic bacterial wrapper that will simulate multiple generations of bacteria based on an input fasta, mutate them and then produce the fastqs, bams, and vcfs for the resultant bacterial population. + + +##TODOs for v3.1 +NEAT is still undergoing active development with many exciting upgrades planned. We also plan to bring the code up to full production scale and will continue to improve the following features (if you would like to [Contribute](CONTRIBUTING.md)) +- Using Python's multithreading libraries, speed up NEAT's gen_reads tool significantly. +- Take advantage of pandas library for reading in bed files and other files. +- Code optimization for all gen_reads files (in source folder) +- Further cleanup to PEP8 standards +- Refactor the code to integrate NEAT's utilities into the package +- Improvements and standardization for the utilities, across the board +- VCF compare has some nice features and output, but is very slow to use. Can we improve this utility? + +For improvements, we have a lot of great ideas for general improvements aimed at better simulating bacteria, but we believe this same improvements will have applications in other species as well. +- Multiploidy - all right this has nothing to do with bacteria specifically, but it is a feature we would like to implement into gen_reads. +- Structural Variants - model large scale structural variants with an eye toward intergenic SVs. +- Transposable Elements - model transposons within the sequence +- Repeat regions - will bring a variety of interesting applications diff --git a/README.md b/README.md index 04a68d2..535e5f3 100755 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -# neat-genreads +# The NEAT Project v3.0 +Welcome to the NEAT project, the NExt-generation sequencing Analysis Toolkit, version 3.0. Neat has now been updated with Python 3, and is moving toward PEP8 standards. There is still lots of work to be done. See the [ChangeLog](ChangeLog.md) for notes. + +Stay tuned over the coming weeks for exciting updates to NEAT, and learn how to [contribute](CONTRIBUTING.md) yourself. If you'd like to use some of our code, no problem! Just review the [license](LICENSE.md), first. + NEAT-genReads is a fine-grained read simulator. GenReads simulates real-looking data using models learned from specific datasets. There are several supporting utilities for generating models used for simulation. This is an in-progress v2.0 of the software. For a previous stable release please see: [genReads1](https://github.com/zstephens/genReads1) @@ -37,17 +41,20 @@ Table of Contents ## Requirements -* Python 3.6+ -* Biopython 1.77+ -* Matplotlib 3.2.2+ -* Numpy 1.19.0+ +* Python >= 3.6 +* biopython >= 1.78 +* matplotlib >= 3.3.4 (optional, for plotting utilities) +* matplotlib_venn >= 0.11.6 (optional, for plotting utilities) +* pandas >= 1.2.1 +* numpy >= 1.19.5 +* pysam >= 0.16.0.1 ## Usage Here's the simplest invocation of genReads using default parameters. This command produces a single ended fastq file with reads of length 101, ploidy 2, coverage 10X, using the default sequencing substitution, GC% bias, and mutation rate models. ``` -python genReads.py -r ref.fa -R 101 -o simulated_data +python gen_reads.py -r ref.fa -R 101 -o simulated_data ``` The most commonly added options are --pe, --bam, --vcf, and -c. @@ -63,8 +70,8 @@ Option | Description -e | Sequencing error model pickle file -E | Average sequencing error rate. The sequencing error rate model is rescaled to make this the average value. -p | Sample Ploidy, default 2 --t | Bed file containing targeted regions; default coverage for targeted regions is 98% of -c option; default coverage outside targeted regions is 2% of -c option --d | Bed file with sample regions to discard. +-tr | Bed file containing targeted regions; default coverage for targeted regions is 98% of -c option; default coverage outside targeted regions is 2% of -c option +-dr | Bed file with sample regions to discard. -to | off-target coverage scalar [0.02] -m | mutation model pickle file -M | Average mutation rate. The mutation rate model is rescaled to make this the average value. Must be between 0 and 0.3. These random mutations are inserted in addition to the once specified in the -v option. @@ -74,8 +81,6 @@ Option | Description --pe | Paired-end fragment length mean and standard deviation. To produce paired end data, one of --pe or --pe-model must be specified. --pe-model | Empirical fragment length distribution. Can be generated using [computeFraglen.py](#computefraglenpy). To produce paired end data, one of --pe or --pe-model must be specified. --gc-model | Empirical GC coverage bias distribution. Can be generated using [computeGC.py](#computegcpy) ---job | Jobs IDs for generating reads in parallel ---nnr | save non-N ref regions (for parallel jobs) --bam | Output golden BAM file --vcf | Output golden VCF file --fa | Output FASTA instead of FASTQ @@ -84,13 +89,14 @@ Option | Description --no-fastq | Bypass generation of FASTQ read files --discard-offtarget | Discard reads outside of targeted regions --rescale-qual | Rescale Quality scores to match -E input +-d | Turn on debugging mode (useful for development) ## Functionality ![Diagram describing the way that genReads simulates datasets](docs/flow_new.png "Diagram describing the way that genReads simulates datasets") -NEAT genReads produces simulated sequencing datasets. It creates FASTQ files with reads sampled from a provided reference genome, using sequencing error rates and mutation rates learned from real sequencing data. The strength of genReads lies in the ability for the user to customize many sequencing parameters, produce 'golden', true positive datasets, and produce types of data that other simulators cannot (e.g. tumour/normal data). +NEAT gen_reads produces simulated sequencing datasets. It creates FASTQ files with reads sampled from a provided reference genome, using sequencing error rates and mutation rates learned from real sequencing data. The strength of genReads lies in the ability for the user to customize many sequencing parameters, produce 'golden', true positive datasets, and produce types of data that other simulators cannot (e.g. tumour/normal data). Features: @@ -119,7 +125,7 @@ The following commands are examples for common types of data to be generated. Th Simulate whole genome dataset with random variants inserted according to the default model. ``` -python genReads.py \ +python gen_reads.py \ -r hg19.fa \ -R 126 \ -o /home/me/simulated_reads \ @@ -132,7 +138,7 @@ python genReads.py \ Simulate a targeted region of a genome, e.g. exome, with -t. ``` -python genReads.py \ +python gen_reads.py \ -r hg19.fa \ -R 126 \ -o /home/me/simulated_reads \ @@ -146,7 +152,7 @@ python genReads.py \ Simulate a whole genome dataset with only the variants in the provided VCF file using -v and -M. ``` -python genReads.py \ +python gen_reads.py \ -r hg19.fa \ -R 126 \ -o /home/me/simulated_reads \ @@ -161,7 +167,7 @@ python genReads.py \ Simulate single-end reads by omitting the --pe option. ``` -python genReads.py \ +python gen_reads.py \ -r hg19.fa \ -R 126 \ -o /home/me/simulated_reads \ @@ -173,7 +179,7 @@ python genReads.py \ Simulate PacBio-like reads by providing an error model. ``` -python genReads.py \ +python gen_reads.py \ -r hg19.fa \ -R 5000 \ -e models/errorModel_pacbio_toy.p \ @@ -185,10 +191,10 @@ python genReads.py \ When possible, simulation can be done in parallel via multiple executions with different --job options. The resultant files will then need to be merged using utilities/mergeJobs.py. The following example shows splitting a simulation into 4 separate jobs (which can be run independently): ``` -python genReads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 1 4 -python genReads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 2 4 -python genReads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 3 4 -python genReads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 4 4 +python gen_reads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 1 4 +python gen_reads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 2 4 +python gen_reads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 3 4 +python gen_reads.py -r hg19.fa -R 126 -o /home/me/simulated_reads --bam --vcf --job 4 4 python mergeJobs.py -i /home/me/simulated_reads -o /home/me/simulated_reads_merged -s /path/to/samtools ``` @@ -198,7 +204,7 @@ In future revisions the dependence on SAMtools will be removed. To simulate human WGS 50X, try 50 chunks or less. # Utilities -Several scripts are distributed with genReads that are used to generate the models used for simulation. +Several scripts are distributed with gen_reads that are used to generate the models used for simulation. ## compute_gc.py @@ -255,7 +261,7 @@ Option | Description ## genSeqErrorModel.py -Generates sequence error model for genReads.py -e option. +Generates sequence error model for gen_reads.py -e option. This script needs revision, to improve the quality-score model eventually, and to include code to learn sequencing errors from pileup data. ``` diff --git a/gen_reads.py b/gen_reads.py index d69cc36..1fb5649 100755 --- a/gen_reads.py +++ b/gen_reads.py @@ -31,7 +31,7 @@ from source.vcf_func import parse_vcf from source.output_file_writer import OutputFileWriter, reverse_complement, sam_flag from source.probability import DiscreteDistribution, mean_ind_of_weighted_list -from source.SequenceContainer import SequenceContainer, SequencingError, parse_input_mutation_model +from source.SequenceContainer import SequenceContainer, ReadContainer, parse_input_mutation_model """ Some constants needed for analysis @@ -63,9 +63,9 @@ def main(raw_args=None): help="Rescale avg sequencing error rate to this, must be between 0.0 and 0.3") parser.add_argument('-p', type=int, required=False, metavar='ploidy', default=2, help="Desired ploidy, default = 2") - parser.add_argument('-t', type=str, required=False, metavar='target.bed', default=None, + parser.add_argument('-tr', type=str, required=False, metavar='target.bed', default=None, help="Bed file containing targeted regions") - parser.add_argument('-d', type=str, required=False, metavar='discard_regions.bed', default=None, + parser.add_argument('-dr', type=str, required=False, metavar='discard_regions.bed', default=None, help="Bed file with regions to discard") parser.add_argument('-to', type=float, required=False, metavar='off-target coverage scalar', default=0.00, help="off-target coverage scalar") @@ -93,8 +93,6 @@ def main(raw_args=None): help='rng seed value; identical RNG value should produce identical runs of the program, so ' 'things like read locations, variant positions, error positions, etc, ' 'should all be the same.') - # TODO check if this argument does anything at all. Near as I can tell the results are ALWAYS gzipped. - parser.add_argument('--gz', required=False, action='store_true', default=False, help='gzip output FQ and VCF') parser.add_argument('--no-fastq', required=False, action='store_true', default=False, help='bypass fastq generation') parser.add_argument('--discard-offtarget', required=False, action='store_true', default=False, @@ -102,7 +100,9 @@ def main(raw_args=None): parser.add_argument('--force-coverage', required=False, action='store_true', default=False, help='[debug] ignore fancy models, force coverage to be constant') parser.add_argument('--rescale-qual', required=False, action='store_true', default=False, - help='rescale quality scores to match -E input') + help='Rescale quality scores to match -E input') + # TODO implement a broader debugging scheme for subclasses. + parser.add_argument('-d', required=False, action='store_true', default=False, help='Activate Debug Mode') args = parser.parse_args(raw_args) """ @@ -119,7 +119,7 @@ def main(raw_args=None): (reference, read_len, out_prefix) = (args.r, args.R, args.o) # various dataset parameters (coverage, ploids, input_bed, discard_bed, se_model, se_rate, mut_model, mut_rate, mut_bed, input_vcf) = \ - (args.c, args.p, args.t, args.d, args.e, args.E, args.m, args.M, args.Mb, args.v) + (args.c, args.p, args.tr, args.dr, args.e, args.E, args.m, args.M, args.Mb, args.v) # cancer params (disabled currently) # (cancer, cancer_model, cancer_purity) = (args.cancer, args.cm, args.cp) (cancer, cancer_model, cancer_purity) = (False, None, 0.8) @@ -127,8 +127,8 @@ def main(raw_args=None): args.discard_offtarget, args.force_coverage, args.rescale_qual) # important flags - (save_bam, save_vcf, fasta_instead, gzipped_out, no_fastq) = \ - (args.bam, args.vcf, args.fa, args.gz, args.no_fastq) + (save_bam, save_vcf, fasta_instead, no_fastq) = \ + (args.bam, args.vcf, args.fa, args.no_fastq) # sequencing model parameters (fragment_size, fragment_std) = args.pe @@ -137,6 +137,8 @@ def main(raw_args=None): rng_seed = args.rng + debug = args.d + """ INPUT ERROR CHECKING """ @@ -204,10 +206,10 @@ def main(raw_args=None): if se_model is None: print('Using default sequencing error model.') se_model = sim_path / 'models/errorModel_toy.p' - se_class = SequencingError(read_len, se_model, se_rate) + se_class = ReadContainer(read_len, se_model, se_rate, rescale_qual) else: # probably need to do some sanity checking - se_class = SequencingError(read_len, se_model, se_rate) + se_class = ReadContainer(read_len, se_model, se_rate, rescale_qual) # GC-bias model if gc_bias_model is None: @@ -316,8 +318,6 @@ def main(raw_args=None): except IOError: print("\nProblem reading input target BED file.\n") sys.exit(1) - finally: - f.close() # some validation n_in_bed_only = 0 @@ -340,16 +340,15 @@ def main(raw_args=None): discard_regions = {} if discard_bed is not None: try: - f = open(discard_bed, 'r') - for line in f: - [my_chr, pos1, pos2] = line.strip().split('\t')[:3] - if my_chr not in discard_regions: - discard_regions[my_chr] = [-1] - discard_regions[my_chr].extend([int(pos1), int(pos2)]) + with open(discard_bed, 'r') as f: + for line in f: + [my_chr, pos1, pos2] = line.strip().split('\t')[:3] + if my_chr not in discard_regions: + discard_regions[my_chr] = [-1] + discard_regions[my_chr].extend([int(pos1), int(pos2)]) except IOError: print("\nProblem reading discard BED file.\n") - finally: - f.close() + sys.exit(1) # parse input mutation rate rescaling regions, if present # TODO convert to pandas dataframe @@ -374,8 +373,6 @@ def main(raw_args=None): except IOError: print("\nProblem reading mutational BED file.\n") sys.exit(1) - finally: - f.close() # initialize output files (part I) bam_header = None @@ -391,14 +388,14 @@ def main(raw_args=None): if cancer: output_file_writer = OutputFileWriter(out_prefix + '_normal', paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, - gzipped=gzipped_out, no_fastq=no_fastq, fasta_instead=fasta_instead) + no_fastq=no_fastq, fasta_instead=fasta_instead) output_file_writer_cancer = OutputFileWriter(out_prefix + '_tumor', paired=paired_end, bam_header=bam_header, - vcf_header=vcf_header, gzipped=gzipped_out, + vcf_header=vcf_header, no_fastq=no_fastq, fasta_instead=fasta_instead) else: output_file_writer = OutputFileWriter(out_prefix, paired=paired_end, bam_header=bam_header, vcf_header=vcf_header, - gzipped=gzipped_out, no_fastq=no_fastq, + no_fastq=no_fastq, fasta_instead=fasta_instead) # Using pathlib to make this more machine agnostic out_prefix_name = pathlib.Path(out_prefix).name @@ -548,6 +545,9 @@ def main(raw_args=None): is_last_time = True # print progress indicator + if debug: + print(f'PROCESSING WINDOW: {(start, end), [buffer_added]}, ' + f'next: {(next_start, next_end)}, isLastTime: {is_last_time}') current_progress += end - start new_percent = int((current_progress * 100) / float(total_bp_span)) if new_percent > current_percent: @@ -774,14 +774,14 @@ def main(raw_args=None): my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1) + output_sam_flag=flag1) else: flag1 = sam_flag(['reverse']) output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1) + output_sam_flag=flag1) # write PE output elif len(my_read_data) == 2: if no_fastq is not True: @@ -801,12 +801,12 @@ def main(raw_args=None): output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, + output_sam_flag=flag1, mate_pos=my_read_data[1][0]) output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[0][0]) + output_sam_flag=flag2, mate_pos=my_read_data[0][0]) elif is_unmapped[0] is False and is_unmapped[1] is True: if is_forward: flag1 = sam_flag(['paired', 'first', 'mate_unmapped', 'mate_reverse']) @@ -817,11 +817,11 @@ def main(raw_args=None): output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, mate_pos=my_read_data[0][0]) + output_sam_flag=flag1, mate_pos=my_read_data[0][0]) output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[0][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[0][0], + output_sam_flag=flag2, mate_pos=my_read_data[0][0], aln_map_quality=0) elif is_unmapped[0] is True and is_unmapped[1] is False: if is_forward: @@ -833,12 +833,12 @@ def main(raw_args=None): output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[0][1], my_read_data[0][2], my_read_data[0][3], - sam_flag=flag1, mate_pos=my_read_data[1][0], + output_sam_flag=flag1, mate_pos=my_read_data[1][0], aln_map_quality=0) output_file_writer.write_bam_record(my_ref_index, my_read_name, my_read_data[1][0], my_read_data[1][1], my_read_data[1][2], my_read_data[1][3], - sam_flag=flag2, mate_pos=my_read_data[1][0]) + output_sam_flag=flag2, mate_pos=my_read_data[1][0]) else: print('\nError: Unexpected number of reads generated...\n') sys.exit(1) @@ -885,11 +885,11 @@ def main(raw_args=None): print('writing unmapped reads to bam file...') for umr in unmapped_records: if paired_end: - output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], + output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], output_sam_flag=umr[2], mate_pos=0, aln_map_quality=0) else: - output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], sam_flag=umr[2], + output_file_writer.write_bam_record(-1, umr[0], 0, umr[1][1], umr[1][2], umr[1][3], output_sam_flag=umr[2], aln_map_quality=0) # close output files diff --git a/merge_jobs.py b/merge_jobs.py deleted file mode 100755 index 7b98acb..0000000 --- a/merge_jobs.py +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env source -import os -import argparse - - -def getListOfFiles(inDir, pattern): - return [inDir + n for n in os.listdir(inDir) if (pattern in n and os.path.getsize(inDir + n))] - - -TEMP_IND = 0 - - -def stripVCF_header(fn): - - global TEMP_IND - f = open(fn,'r') - ftn = fn+'_temp'+str(TEMP_IND) - f_t = open(ftn,'w') - hasHeader = False - for line in f: - if line[0] == '#': - if not hasHeader: - TEMP_IND += 1 - hasHeader = True - elif hasHeader: - f_t.write(line) - else: - break - f_t.close() - f.close() - if hasHeader: - return ftn - else: - os.system('rm '+ftn) - return fn - -def catListOfFiles(l,outName,gzipped=False): - for n in l: - if n[-3:] == '.gz' or n[-5:] == '.gzip': - gzipped = True - if gzipped: - for n in l: - if not n[-3:] == '.gz' and not n[-5:] == '.gzip': - print( - '\nError: Found a mixture of compressed and decompressed files with the specified prefix. Abandoning ship...\n') - for m in l: - print(m) - print('') - exit(1) - cmd = 'cat '+' '.join(sorted(l))+' > '+outName+'.gz' - else: - cmd = 'cat '+' '.join(sorted(l))+' > '+outName - print(cmd) - os.system(cmd) - -def catBams(l,outName,samtools_exe): - l_sort = sorted(l) - tmp = outName+'.tempHeader.sam' - os.system(samtools_exe+' view -H '+l_sort[0]+' > '+tmp) - cmd = samtools_exe+' cat -h '+tmp+' '+' '.join(l_sort)+' | '+samtools_exe+' sort - > '+outName - print(cmd) - os.system(cmd) - cmd = samtools_exe+' index '+outName - print(cmd) - os.system(cmd) - os.system('rm '+tmp) - - -##################################### -# main() # -##################################### - -def main(): - parser = argparse.ArgumentParser(description='merge_jobs.source') - parser.add_argument('-i', type=str, required=True, metavar='', nargs='+', help="* input prefix: [prefix_1] [prefix_2] ...") - parser.add_argument('-o', type=str, required=True, metavar='', help="* output prefix") - parser.add_argument('-s', type=str, required=True, metavar='', help="* /path/to/samtools") - parser.add_argument('--no-job', required=False, action='store_true', help='files do not have .job suffix', default=False) - - args = parser.parse_args() - (INP, OUP, SAMTOOLS, NO_JOB) = (args.i, args.o, args.s, args.no_job) - - inDir = '/'.join(INP[0].split('/')[:-1])+'/' - if inDir == '/': - inDir = './' - #print inDir - - INP_LIST = [] - for n in INP: - if n[-1] == '/': - n = n[:-1] - INP_LIST.append(n.split('/')[-1]) - listing_r1 = [] - listing_r2 = [] - listing_b = [] - listing_v = [] - pat_r1 = '_read1.fq' + (NO_JOB == False)*'.job' - pat_r2 = '_read2.fq' + (NO_JOB == False)*'.job' - pat_gb = '_golden.bam' + (NO_JOB == False)*'.job' - pat_gv = '_golden.vcf' + (NO_JOB == False)*'.job' - for n in INP_LIST: - listing_r1 += getListOfFiles(inDir,n+pat_r1) - listing_r2 += getListOfFiles(inDir,n+pat_r2) - listing_b += getListOfFiles(inDir,n+pat_gb) - if len(listing_v): # remove headers from vcf files that aren't the first being processed - initList = getListOfFiles(inDir,n+pat_gv) - listing_v += [stripVCF_header(n) for n in initList] - else: - listing_v += getListOfFiles(inDir,n+pat_gv) - - # - # merge fq files - # - if len(listing_r1): - catListOfFiles(listing_r1,OUP+'_read1.fq') - if len(listing_r2): - catListOfFiles(listing_r2,OUP+'_read2.fq') - - # - # merge golden alignments, if present - # - if len(listing_b): - catBams(listing_b,OUP+'_golden.bam',SAMTOOLS) - - # - # merge golden vcfs, if present - # - if len(listing_v): - catListOfFiles(listing_v,OUP+'_golden.vcf') - - -if __name__ == "__main__": - main() diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..0836577 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +numpy==1.19.5 +biopython==1.78 +matplotlib==3.3.4 +matplotlib_venn==0.11.6 +pandas==1.2.1 +pysam==0.16.0.1 \ No newline at end of file diff --git a/source/SequenceContainer.py b/source/SequenceContainer.py index 4690c40..fe9fc0d 100755 --- a/source/SequenceContainer.py +++ b/source/SequenceContainer.py @@ -11,6 +11,8 @@ from source.neat_cigar import CigarString from source.probability import DiscreteDistribution, poisson_list +# TODO This whole file is in desperate need of refactoring + """ Constants needed for analysis """ @@ -265,10 +267,15 @@ def init_coverage(self, coverage_data, frag_dist=None): avg_out = [] self.coverage_distribution = [] for i in range(len(self.sequences)): - max_coord = min([len(self.sequences[i]) - self.read_len, len(self.all_cigar[i]) - self.read_len]) + # Zach implemented a change here but I can't remember if I changed it back for some reason. + # If second line below doesn't work, reactivate the first line. + # max_coord = min([len(self.sequences[i]) - self.read_len, len(self.all_cigar[i]) - self.read_len]) + max_coord = min([len(self.sequences[i]) - self.read_len, len(self.all_cigar[i]) - 1]) + # Trying to fix a problem wherein the above line gives a negative answer if max_coord <= 0: max_coord = min([len(self.sequences[i]), len(self.all_cigar[i])]) + # compute gc-bias j = 0 while j + self.window_size < len(self.sequences[i]): @@ -279,7 +286,8 @@ def init_coverage(self, coverage_data, frag_dist=None): gc_c = self.sequences[i][-self.window_size:].count('G') + \ self.sequences[i][-self.window_size:].count('C') gc_cov_vals[i].extend([gc_scalars[gc_c]] * (len(self.sequences[i]) - len(gc_cov_vals[i]))) - # + + # Targeted values tr_cov_vals[i].append(target_cov_vals[0]) prev_val = self.fm_pos[i][0] for j in range(1, max_coord): @@ -291,6 +299,8 @@ def init_coverage(self, coverage_data, frag_dist=None): tr_cov_vals[i].append(sum(target_cov_vals[self.fm_pos[i][j]:self.fm_span[i][j]]) / float( self.fm_span[i][j] - self.fm_pos[i][j])) prev_val = self.fm_pos[i][j] + # Debug statement + # print(f'({i, j}), {self.all_cigar[i][j]}, {self.fm_pos[i][j]}, {self.fm_span[i][j]}') # shift by half of read length if len(tr_cov_vals[i]) > int(self.read_len / 2.): @@ -305,9 +315,16 @@ def init_coverage(self, coverage_data, frag_dist=None): # TODO if max_coord is <=0, this is a problem for j in range(0, max_coord): coverage_vals.append(coverage_vector[j + self.read_len] - coverage_vector[j]) - avg_out.append(np.mean(coverage_vals) / float(self.read_len)) + # Below is Zach's attempt to fix this. The commented out line is the original + # avg_out.append(np.mean(coverage_vals) / float(self.read_len)) + avg_out.append(np.mean(coverage_vals)/float(min([self.read_len, max_coord]))) + # Debug statement + # print(f'{avg_out}, {np.mean(avg_out)}') if frag_dist is None: + # Debug statement + # print(f'++++, {max_coord}, {len(self.sequences[i])}, ' + # f'{len(self.all_cigar[i])}, {len(coverage_vals)}') self.coverage_distribution.append(DiscreteDistribution(coverage_vals, range(len(coverage_vals)))) # fragment length nightmare @@ -350,16 +367,18 @@ def init_coverage(self, coverage_data, frag_dist=None): j + flv - self.read_len]) # EXPERIMENTAL - # quantized_covVals = quantize_list(coverage_vals) - # self.coverage_distribution[i][flv] = DiscreteDistribution([n[2] for n in quantized_covVals],[(n[0],n[1]) for n in quantized_covVals]) + # quantized_cov_vals = quantize_list(coverage_vals) + # self.coverage_distribution[i][flv] = \ + # DiscreteDistribution([n[2] for n in quantized_cov_vals], + # [(n[0], n[1]) for n in quantized_cov_vals]) # TESTING # import matplotlib.pyplot as mpl - # print len(coverage_vals),'-->',len(quantized_covVals) + # print len(coverage_vals),'-->',len(quantized_cov_vals) # mpl.figure(0) # mpl.plot(range(len(coverage_vals)), coverage_vals) - # for qcv in quantized_covVals: - # mpl.plot([qcv[0], qcv[1]+1], [qcv[2],qcv[2]], 'r') + # for qcv in quantized_cov_vals: + # mpl.plot([qcv[0], qcv[1]+1], [qcv[2],qcv[2]], 'r') # mpl.show() # sys.exit(1) @@ -432,7 +451,9 @@ def insert_mutations(self, input_list): p = which_ploid[i] my_alt = input_variable[2][which_alt[i]] my_var = (input_variable[0] - self.x, input_variable[1], my_alt) - in_len = max([len(input_variable[1]), len(my_alt)]) + # This is a potential fix implemented by Zach in a previous commit. He left the next line in. + # in_len = max([len(input_variable[1]), len(my_alt)]) + in_len = len(input_variable[1]) if my_var[0] < 0 or my_var[0] >= len(self.black_list[p]): print('\nError: Attempting to insert variant out of window bounds:') @@ -445,7 +466,7 @@ def insert_mutations(self, input_list): self.black_list[p][my_var[0]] = 2 else: indel_failed = False - for k in range(my_var[0], my_var[0] + in_len + 1): + for k in range(my_var[0], my_var[0] + in_len): if k >= len(self.black_list[p]): indel_failed = True continue @@ -454,7 +475,7 @@ def insert_mutations(self, input_list): continue if indel_failed: continue - for k in range(my_var[0], my_var[0] + in_len + 1): + for k in range(my_var[0], my_var[0] + in_len): self.black_list[p][k] = 1 self.indel_list[p].append(my_var) @@ -827,14 +848,15 @@ def sample_read(self, sequencing_model, frag_len=None): return read_out -class SequencingError: +class ReadContainer: """ - Container to model sequencing errors: computes quality scores and positions to insert errors + Container for read data: computes quality scores and positions to insert errors """ - def __init__(self, read_len, error_model, rescaled_error): + def __init__(self, read_len, error_model, rescaled_error, rescale_qual=False): self.read_len = read_len + self.rescale_qual = rescale_qual model_path = pathlib.Path(error_model) try: @@ -849,8 +871,8 @@ def __init__(self, read_len, error_model, rescaled_error): if len(error_dat) == 4: self.uniform = True [q_scores, off_q, avg_error, error_params] = error_dat - self.uniform_q_score = int(-10. * np.log10(avg_error) + 0.5) - print('Using uniform sequencing error model. (q=' + str(self.uniform_q_score) + '+' + str( + self.uniform_q_score = min([max(q_scores), int(-10. * np.log10(avg_error) + 0.5)]) + print('Reading in uniform sequencing error model... (q=' + str(self.uniform_q_score) + '+' + str( off_q) + ', p(err)={0:0.2f}%)'.format(100. * avg_error)) # only 1 q-score model present, use same model for both strands @@ -888,8 +910,16 @@ def __init__(self, read_len, error_model, rescaled_error): self.error_scale = 1.0 else: self.error_scale = rescaled_error / avg_error - print('Warning: Quality scores no longer exactly representative of error probability. ' - 'Error model scaled by {0:.3f} to match desired rate...'.format(self.error_scale)) + if not self.rescale_qual: + print('Warning: Quality scores no longer exactly representative of error probability. ' + 'Error model scaled by {0:.3f} to match desired rate...'.format(self.error_scale)) + if self.uniform: + if rescaled_error <= 0.: + self.uniform_q_score = max(q_scores) + else: + self.uniform_q_score = min([max(q_scores), int(-10. * np.log10(rescaled_error) + 0.5)]) + print(' - Uniform quality score scaled to match specified error rate (q=' + str( + self.uniform_qscore) + '+' + str(self.off_q) + ', p(err)={0:0.2f}%)'.format(100. * rescaled_error)) if not self.uniform: # adjust length to match desired read length @@ -970,7 +1000,12 @@ def get_sequencing_errors(self, read_data, is_reverse_strand=False): if random.random() < self.error_scale * self.q_err_rate[q_out[i]]: s_err.append(i) - q_out = ''.join([chr(n + self.off_q) for n in q_out]) + if self.rescale_qual: # do we want to rescale qual scores to match rescaled error? + q_out = [max([0, int(-10. * np.log10(self.error_scale * self.q_err_rate[n]) + 0.5)]) for n in q_out] + q_out = [min([int(self.q_err_rate[-1]), n]) for n in q_out] + q_out = ''.join([chr(n + self.off_q) for n in q_out]) + else: + q_out = ''.join([chr(n + self.off_q) for n in q_out]) if self.error_scale == 0.0: return q_out, [] @@ -1046,21 +1081,21 @@ def parse_input_mutation_model(model=None, which_default=1): ins_count = sum([ins_list[k] for k in ins_list.keys() if k >= 1]) del_count = sum([ins_list[k] for k in ins_list.keys() if k <= -1]) ins_vals = [k for k in sorted(ins_list.keys()) if k >= 1] - ins_wght = [ins_list[k] / float(ins_count) for k in ins_vals] + ins_weight = [ins_list[k] / float(ins_count) for k in ins_vals] del_vals = [k for k in sorted([abs(k) for k in ins_list.keys() if k <= -1])] - del_wght = [ins_list[-k] / float(del_count) for k in del_vals] + del_weight = [ins_list[-k] / float(del_count) for k in del_vals] else: # degenerate case where no indel stats are provided ins_count = 1 del_count = 1 ins_vals = [1] - ins_wght = [1.0] + ins_weight = [1.0] del_vals = [1] - del_wght = [1.0] + del_weight = [1.0] out_model[3] = ins_count / float(ins_count + del_count) out_model[4] = ins_vals - out_model[5] = ins_wght + out_model[5] = ins_weight out_model[6] = del_vals - out_model[7] = del_wght + out_model[7] = del_weight trinuc_trans_prob = pickle_dict['TRINUC_TRANS_PROBS'] for k in sorted(trinuc_trans_prob.keys()): diff --git a/source/output_file_writer.py b/source/output_file_writer.py index 69c6c04..87e1347 100755 --- a/source/output_file_writer.py +++ b/source/output_file_writer.py @@ -1,6 +1,5 @@ from struct import pack -import gzip -from Bio.bgzf import * +import Bio.bgzf as bgzf import pathlib import re @@ -92,11 +91,11 @@ def sam_flag(string_list: list) -> int: # TODO find a better way to write output files class OutputFileWriter: - def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, gzipped=False, + def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, no_fastq=False, fasta_instead=False): self.fasta_instead = fasta_instead - # TODO Eliminate paired end as an option for fastas + # TODO Eliminate paired end as an option for fastas. Plan is to create a write fasta method. if self.fasta_instead: fq1 = pathlib.Path(out_prefix + '.fasta.gz') fq2 = None @@ -109,25 +108,16 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # TODO Make a fasta-specific method self.no_fastq = no_fastq if not self.no_fastq: - if gzipped: - self.fq1_file = gzip.open(fq1.with_suffix(fq1.suffix + '.gz'), 'wb') - else: - self.fq1_file = open(fq1, 'w') + self.fq1_file = bgzf.open(fq1, 'w') self.fq2_file = None if paired: - if gzipped: - self.fq2_file = gzip.open(fq2.with_suffix(fq2.suffix + '.gz'), 'wb') - else: - self.fq2_file = open(fq2, 'w') + self.fq2_file = bgzf.open(fq2, 'w') # VCF OUTPUT self.vcf_file = None if vcf_header is not None: - if gzipped: - self.vcf_file = gzip.open(vcf.with_suffix(vcf.suffix + '.gz'), 'wb') - else: - self.vcf_file = open(vcf, 'wb') + self.vcf_file = bgzf.open(vcf, 'wb') # WRITE VCF HEADER self.vcf_file.write('##fileformat=VCFv4.1\n'.encode('utf-8')) @@ -160,7 +150,7 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # BAM OUTPUT self.bam_file = None if bam_header is not None: - self.bam_file = BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) + self.bam_file = bgzf.BgzfWriter(bam, 'w', compresslevel=BAM_COMPRESSION_LEVEL) # WRITE BAM HEADER self.bam_file.write("BAM\1") @@ -188,6 +178,7 @@ def __init__(self, out_prefix, paired=False, bam_header=None, vcf_header=None, g # TODO add write_fasta_record def write_fastq_record(self, read_name, read1, qual1, read2=None, qual2=None, orientation=None): + # Since read1 and read2 are Seq objects from Biopython, they have reverse_complement methods built-in (read1, quality1) = (read1, qual1) if read2 is not None and orientation is True: (read2, quality2) = (read2.reverse_complement(), qual2[::-1]) @@ -209,7 +200,8 @@ def write_vcf_record(self, chrom, pos, id_str, ref, alt, qual, filt, info): str(chrom) + '\t' + str(pos) + '\t' + str(id_str) + '\t' + str(ref) + '\t' + str(alt) + '\t' + str( qual) + '\t' + str(filt) + '\t' + str(info) + '\n') - def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, mate_pos=None, aln_map_quality=70): + def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, output_sam_flag, + mate_pos=None, aln_map_quality=70): my_bin = reg2bin(pos_0, pos_0 + len(seq)) # my_bin = 0 # or just use a dummy value, does this actually matter? @@ -225,10 +217,10 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, my_t_len = 0 else: next_pos = mate_pos - if pos_0 < next_pos: - my_t_len = next_pos + len(seq) - pos_0 + if next_pos > pos_0: + my_t_len = next_pos - pos_0 + len(seq) else: - my_t_len = -pos_0 - len(seq) + next_pos + my_t_len = next_pos - pos_0 - len(seq) encoded_cig = bytearray() for i in range(cig_ops): @@ -246,41 +238,45 @@ def write_bam_record(self, ref_id, read_name, pos_0, cigar, seq, qual, sam_flag, # apparently samtools automatically adds 33 to the quality score string... encoded_qual = ''.join([chr(ord(n) - 33) for n in qual]) - # block_size = 4 + # refID int32 - # 4 + # pos int32 - # 4 + # bin_mq_nl uint32 - # 4 + # flag_nc uint32 - # 4 + # l_seq int32 - # 4 + # next_ref_id int32 - # 4 + # next_pos int32 - # 4 + # tlen int32 - # len(readName)+1 + - # 4*cig_ops + - # encoded_len + - # len(seq) - + """ + block_size = 4 + # refID int32 + 4 + # pos int32 + 4 + # bin_mq_nl uint32 + 4 + # flag_nc uint32 + 4 + # l_seq int32 + 4 + # next_ref_id int32 + 4 + # next_pos int32 + 4 + # tlen int32 + len(readName)+1 + + 4*cig_ops + + encoded_len + + len(seq) + """ # block_size = 32 + len(readName)+1 + 4*cig_ops + encoded_len + len(seq) block_size = 32 + len(read_name) + 1 + len(encoded_cig) + len(encoded_seq) + len(encoded_qual) - ####self.bam_file.write(pack('= len(bam_data): self.bam_buffer = [] else: diff --git a/source/vcf_func.py b/source/vcf_func.py index 2a173d3..ba233b2 100755 --- a/source/vcf_func.py +++ b/source/vcf_func.py @@ -4,19 +4,21 @@ import re import random - def parse_line(vcf_line, col_dict, col_samp): - # check if we want to proceed.. + # these were in the original. Not sure the point other than debugging. + include_homs = False + include_fail = False + + # check if we want to proceed... reference_allele = vcf_line[col_dict['REF']] alternate_allele = vcf_line[col_dict['ALT']] # enough columns? if len(vcf_line) != len(col_dict): return None # exclude homs / filtered? - # There was an attempt I think to make these optional that was never implemented. - if alternate_allele == '.' or alternate_allele == '' or alternate_allele == reference_allele: + if not include_homs and alternate_allele == '.' or alternate_allele == '' or alternate_allele == reference_allele: return None - if vcf_line[col_dict['FILTER']] != 'PASS' and vcf_line[col_dict['FILTER']] != '.': + if not include_fail and vcf_line[col_dict['FILTER']] != 'PASS' and vcf_line[col_dict['FILTER']] != '.': return None # default vals @@ -68,6 +70,10 @@ def parse_line(vcf_line, col_dict, col_samp): def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): + # this var was in the orig. May have just been a debugging thing. + # I think this is trying to implement a check on GT + choose_random_ploid_if_no_gt_found = True + tt = time.time() print('--------------------------------') print('reading input VCF...\n', flush=True) @@ -87,7 +93,7 @@ def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): print('\n\nERROR: VCF has no header?\n' + vcf_path + '\n\n') f.close() exit(1) - splt = line[:-1].split('\t') + splt = line.strip().split('\t') pl_out = parse_line(splt, col_dict, col_samp) if pl_out is None: n_skipped += 1 @@ -102,13 +108,18 @@ def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): # For some reason this had an additional "if True" inserted. I guess it was supposed to be an option # the user could set but was never implemented. if None in gt_eval: - if not printed_warning: - print('Warning: Found variants without a GT field, assuming heterozygous...') - printed_warning = True - for i in range(len(gt_eval)): - tmp = ['0'] * ploidy - tmp[random.randint(0, ploidy - 1)] = '1' - gt_eval[i] = '/'.join(tmp) + if choose_random_ploid_if_no_gt_found: + if not printed_warning: + print('Warning: Found variants without a GT field, assuming heterozygous...') + printed_warning = True + for i in range(len(gt_eval)): + tmp = ['0'] * ploidy + tmp[random.randint(0, ploidy - 1)] = '1' + gt_eval[i] = '/'.join(tmp) + else: + # skip because no GT field was found + n_skipped += 1 + continue non_reference = False for gtVal in gt_eval: if gtVal is not None: @@ -166,7 +177,8 @@ def parse_vcf(vcf_path, tumor_normal=False, ploidy=2): vars_out[r] = [list(all_vars[r][k]) for k in sorted(all_vars[r].keys())] # prune unnecessary sequence from ref/alt alleles for i in range(len(vars_out[r])): - while len(vars_out[r][i][1]) > 1 and all([n[-1] == vars_out[r][i][1][-1] for n in vars_out[r][i][2]]): + while len(vars_out[r][i][1]) > 1 and all([n[-1] == vars_out[r][i][1][-1] for n in vars_out[r][i][2]]) \ + and all([len(n) > 1 for n in vars_out[r][i][2]]): vars_out[r][i][1] = vars_out[r][i][1][:-1] vars_out[r][i][2] = [n[:-1] for n in vars_out[r][i][2]] vars_out[r][i] = tuple(vars_out[r][i]) From d11363d4c8f3708bdaff1e6d072474ad1940988b Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 19:34:54 -0600 Subject: [PATCH 322/323] Update .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index bf24818..fa00a23 100755 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,4 @@ *.pyc /python2env/ /.ipynb_checkpoints/ -/.vscode/ \ No newline at end of file +/.vscode/ From 231f78992cfdbe97cb6b4f385bac5309ebfe5a5e Mon Sep 17 00:00:00 2001 From: Joshua Allen Date: Fri, 5 Feb 2021 20:00:28 -0600 Subject: [PATCH 323/323] Update ChangeLog.md --- ChangeLog.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ChangeLog.md b/ChangeLog.md index bc48ba7..6caaed0 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -1,4 +1,4 @@ -#NEAT v3.0 +# NEAT v3.0 - NEAT gen_reads now runs in Python 3 exclusively. The previous, Python 2 version is stored in the repo as v2.0, but will not be undergoing active development. - Converted sequence objects to Biopython Sequence objects to take advantage of the Biopython library - Converted cigar strings to lists. Now there are simply a functions that convert a generic cigar string to a list and vice versa. @@ -7,7 +7,7 @@ - Added a basic bacterial wrapper that will simulate multiple generations of bacteria based on an input fasta, mutate them and then produce the fastqs, bams, and vcfs for the resultant bacterial population. -##TODOs for v3.1 +## TODOs for v3.1 NEAT is still undergoing active development with many exciting upgrades planned. We also plan to bring the code up to full production scale and will continue to improve the following features (if you would like to [Contribute](CONTRIBUTING.md)) - Using Python's multithreading libraries, speed up NEAT's gen_reads tool significantly. - Take advantage of pandas library for reading in bed files and other files.

      rPb?bsP(S1?kfk>(9r0`i=U_3T~9;vrjIGr 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≠WUC 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

    2. ugjvm^55&l0x`MngKHnmmFxp?00MR01t6g{9MU? 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

    rPb?bsP(S1?kfk>(9r0`i=U_3T~9;vrjIGr zxLzX-5%)7@Kkm06Z9~oKx+%e#^p9cFB@Kd-Z&a*dyfN#c0L26pO^wKI`HM_}X+<)^ zQ;jYEdNi(gE~q1q?hSX&_y#JZMPauaCmK{py8?@sL`e*bxQLP7g!^j^l!IHe>iG-zg2Un2iFVx%=L^p(E*o9@mqr~X zYhRyEO;5FUB1|hXCgulc!PX>JpCe78Hs7dOTfzq{8DGOHYshiGeBPOFXqJ-|@W1R{fpKt%q8kuQ?*U+6z~*yO^=I~d_`!IA|h36?A~Enu0MAQ@c= znVBFg0uf(?MIaJLAQC9=e)YB)J!XM~WoZJ&1PK%fSn^#nIB*iydhI?}(7*i}N*VO; ztcHj$JIK)rA$mWacMtfRqm2jzM|p&0sYL?qAfiQ}c#U4hZS-=9kyXe@w9FvOp0JZA zfo2(9$r2N*ZTgG!DuIYEvhX6qg!F{e_jc_|G9J{B1fJ9oF<}R}phE0YII@V7&kML| zMC6491D&u4WF}7n31nu1WF!!gCy-g7nJ*%5203B^t|JMwv*E4fN$fo3csZw8sk3u}?%mxRc>UTc!}MKY3?#*)q3@Uizcr#gPUx`mzkDX z8wtx2Iu?8shUn8Gr0E1AvmjwP4TZkESw>;OQqPenvG1IaP1Yd+jAj<}U7V%{n z2yG-Rr%gy8oSun1*>nJlWVC}^FozVpva7P^(eb)^?Xt>*K>|Ybq#u*@K{o)E41HX}z^ur(2@uv0%8W7VRQ9}j4)w8htr&GY=6hKMga z$ORQ*m%{byC-RzLV#1XyBJVUrd=bb@UIJl3PP8l`yTuYQLA0D^kwEeyXVOLzxIT8^ z3!i;;IXpQ~Dd6v#hDe|t6fza!^sDCW>{?bEd9S?FS|rd+o-~_4mh$j`o+E+qlTk#T zK#s^0UyzY#Swd@U#;XJpd4T43{x#~}L{Q&jM!YI|@5v!8Up9J;Qyp)G=r^B8&xTcK zPqVg-pHGKJMTu3y`b-E8C`1b&V!{j}zRUuhW}P}#dHBXZU_K&Rq>aRC&3?sZPnicR zBVobOgIOSXFK6y`-79?mWVbE{aSvx%!XjG}>l^6g6F6k%kfcHX;IoH7r2h#df$$MR zSY{A0K_H?vZEE1ZrTUT(mKo&A204-uE(ZxT>j@G_I)}88KtxMeFw>C0b7uqp!82Yx zg8so%>*DL;XI?Z%D}aA3FdnnfC92RT|Hc6yfMl?48jd0UMw-Ql+aELmf8JIw+uwIE}<6eIT@ zNeHWNktZ1eBJyU?{KS90I@8u}HYIJeguoYJ5nqiv$vRawJFs z%^*v8y9Nz)_ts{ee2~BYTE{eF(Xh{sY<<&66B{e#wkw7D%+rAdwIFF$))b0hVYH z_XKjpDs&;yTGY7ey7aZ-hd&4;fwOFyEiC99Gc94k`iZoWxF^0u3w9U;dKIHrq(Xz? zO!)Y=7T0oigbJCrrt+m_zlZi5LYiK*zuRBmzUr>~Um!R}B7p=VTAh;l_KolszGFxN zT?v`FCoJOLk_DYZSfoKj-i+l)AowDEPplG%1PX))SHUl>y!sICE5`WEy-&oKuso|> zxk;fRuc3~zF4{i&e$Hch6c!luDD%>dmo-HC%MJ>)eTXCPT_`xmQcp5Zx1wScO0{dGbmp@-8URBJN2>U|DLxqr>ElQI_r@P~JWTbBMfG z%HO67Nv{IrXoc*Jk*VCBR9zg;Y8FUXme3$=LRbJnJ1vXGQXbm)neyN(*^Hvk&u@m` z<0O!!FVG@wBvu8QWYb^71cA(aUFzIvW250Pgo&?ZYwq1_xfgaTk`eA03JbR7qP0;s z$m@o8yZqarLM9(7oz}151_@t&Rk{ zMIuiEiM$y^G7^YnwDd(T2egrBk&FZ~3nZ*s5duMYR7hB`TK4Ny?d`qwP)A|{4gv^E zwASnE7?dz6+z%NxDe&5cfmN2A#&ytk%}yN2fFfG1WSPm!i6cA%LQD{d$eU@I1qzFt zRohu5CWw}t(85hu0!bk33W(O~w1J1{aD#`KkV9LTLxcr~@14BcKQAzUW$^K}TSLQd zXX`xl+rt`?1K==FA!MkSK^Mlm#j5;$8{H@pNLT{(bT-f~qooPRNK9BlkkPV1z?z@g ztK!F_FkYj)_PV&R$~fI@(Hda{fjlumGQQa7{_0&;_)&GzMoSh{$ZhWw;Zx6rJ-9Ro z-c3lL9Swc6E%_a0nuN(;o*(Z9PcF_|9lQsL4|xw({b;Cr!a>kfAeYo-2P#64q0;h$^KTCTj-_>)Gat<$0CD(Xj!sAp0Eg1 zIq}0yUX|d+fFl`)=r(@xetEWH(*YW?>>RLa83^*kmjsU283|Oil*jS9Kf>mnG@C%g z7h#Dns3T!P9rcd0ru3~|a3dvkMelqcUwCWxJs+jb5or}{-o*qIP53!^{Mv*+sRO?~ zvip9qvti(=lR7t(d`fu`c8g@#39E^2!Dq5yGfL!#RLRt9(=xbiOstZ?&}YpWo-_Yn z31IzXX@WExAZa!nJy=4}InDdbuXp$_D4Ow4*7(=H39Bse1siVC(WF5E*CJ625166| zB!RH-s`H5TP`L5`jl?^($rhvsgr`w<~5!KBup6;WDF7xT6%R!*V8X^@! zSOl^RBpC?=Cd{m6xb0W=V{+JsI30L0X4ckcUJTYfArRae7y0p;HDp7VOlhjZ14_gM zkr(%{TOq7k8uhzuq>$k923=#Be!#=1m3Drh4D)ejB< zEAxTQ5#rQ^6C4SI!D-0?`Cf|}t%-3Qjte9ZPS4C(B#<=d#@!)x<3EB?O<0y%Fwi9s zAQDKR6tQcD9~T~~P1*>X_dMMK6Ts$O+(Q8pXh@AdYp0}uhZ)5x)DeMdkACZaz7Ukd z!zl~v%`O7B+0W%_Q)l8tD2H9Amp)sc9H5FkS*2&r{PZCP%pqG7dh|a( zFhu8&sr5(ZxzN0THqzzk`M1l$- zQ2*4AuV#1#(@Mg!bspav3wI1h6)iBLzxOKLg^`mrX?gGUW(`emc4NVcb5J1*vwfHO zQt{B6FR(GG_e`jeEE$X4y0z=7&PWy{cF=#WvJPeTZjiiYDxD%r z#8*}8|6VjWR7FE?yT|UfJX0ABHLTXK&0QZD=)MngPJh*|vSy8+b7VmKsZd9f5#%%7 z%jZ$*O-&s*aqpmJ14q@+khq8GPJGqYtk=KPo;Wd2Lk)>9C{w}`UohQ?d~2=s=KkhE zKjvtsq1eN7UOOBKrUGd;l|F}FAr&AUjREpw&q zrUNt9xY~E;M_6Tv7EC_X>SbQ`TLmbGRfS9X$Lk0Sud2sRZLU!b7G4c}!}X|h2%xmZ zGxvz|6D+Bg_Uil3sV$SVujWIJR9(;)ibi@BDnxp9xegq*egCw|2RCY{!_0W;zL|PN zLsixv8+m){4Gr0q1No9fV1;~$uf6|8dq1%Izkd42CHP|F zpG*k?UER_l@J~-K@>0cp8v1tth1A=uzsmpLdt16|#+QuMv!6Lu13#iHE2MR{1-l2o zS!k0&SQ~6uWT2Bkl950}EA*kT>dTcqVb(^cSrTYBatMoLOmf&W;BS{6g~AHa3Nh>K zu4hWdZ_stU_9j0>4_haqWyT_bVHI+^K_t)&a=IsoJkb)?GRH5ir520{V!|@xR&63+ zyaf!p-5Sca<0RI@@V25=bE8i$G?9gk=Vij07TDvUGu)Y$T9CM2oP9e6ik< zpQhOa69!>fLa@r}97H=4$`#T)MbtV+iot_21R@jAks!2;X@yGeKAcA|{+>nFU&Agj?F81(3WuYLCs3BY|J$-BF~S`M=G!?B+cv z8Um3(0y!OcaoC{`ezn)?ZY1&ql8i7C3Cj#Jb5All5*T6~O?;7Nla40thX-DbWIOcb zAo7-wT^mWpTleDZnmzEa&L~@^eHtPSvV$C*L+tcq!mxaWDg5S!nN|q1%&dMU3mzFV zYtUzAgpRh<0$+sXh*i)cfka*)2+SCS`RY+EZ>NQ&9$^va<;olrk}f}?wTLe}$ORQb z-l#$#J0ntBB=9pKcr?dp6OIJBCL?LKBPPb{aY3}g1VmngW9bWeRamfFiMeXg$&Ybh z4jI^OQ_p#~VQXU6g}`z_g@B&rri1*7w^?B5vxrslgX6@P8H)ru4TXM2VwIQ>Xo4R|wN5(7X~^;&E+ch235#Tu*QdaD%0f7hm>`gu2@+`8 zpqVzE<8(#|B=Q8ZyF!j=tNLOSNi(7qo+`YfzM zEBB|9a%Kekd11kxCc@j8 z*GhMSd%A>0 znr#O;I)`*fzFXoV0x%NJbt*4_xqOpCAxMC8pNqUAJXnQ@fv2_jG4H%?fV^6)$B!h(!M z-Vv6ayl6SW5?}C49C^d}o)-;!WZMNrBN^d4FgNdd{E_$laoy2VrkAUbW@%X1hj>M; zfAgE}+8epN1d?MsyFkJs5RoU41dagfLJv%A*^Y-S1loMZz*r5MNVkV z8f3TzrByg`CK&|+*7mp~>n+%}M7t*^UYX)-E#{f&fM#{7{c-4K zkINb&m%|Qnv_j$(TpzpO`YtwE35!5>-lQBPaF9(#GcCd*zAPayL3~+4&|gHJ_#%)5 z!p?_i&AmKg&gBvCMh{EY9NnuVkU*jZJ>egia1PW_;2?=z5YDnhi)6Heer=jA;13Ry z#l%MK{>gz#0e?^-Vj@I;ZCRI@X91DdD-SC$D?$ZisI+sJFW2 z$_s77z&>Qct%l!jT---rUNWGB)!v5XbRdz>k|AP=p}pbvV+o67BoGM{2%1e;W+ohA zP0?LQ0xcm36ss_i$#Ni-@1!*~ey}@jm%y$%kc>pnV&&$xDAC`BMFI&# zteTlH3na}plP7Jo)EcaNLgWD=&30Og1nyfJu5`gduznI2+-{KujSFrSrYOrmI6?U9 zPOPX~pTmt5X*NtgF`gg&a5&8tozb_^!N?hULWMjEzoMB(htS@skNMmE;ESK&cu}BM z+Ae{}wR9SK-0$V2O|9Sw7N>nlARO8{El(O`=?l70GQu&jSs-B%_u2bRe3SVb*bz%0 zxoF^P=bjm>s#Su4E)a}YOL^E~oSj>8e)y{k^)P8z`0@3ziQ$_cZhHzuKmHJkhR9d1 z6sLKf3p=#dx>Ngeeu#KbLz@q+@kqNewC4~q2uj7ixvFO=IIa<>nYK#;2}A-3L;?x) zI7yX3TOPqO$kM8vdrK`i)FCDaWN8BW%aR2dN#_UzEHn3ObvjsAXBDWehUCYKVADZZcHZPHD`v}`Fi;PSB7T6Qekx21BxosKJg z;-)-N944Q}aVELHeg>?+F5MaQ>Mq<5iJJK7fD=bx4mo{)WsD|CuV@qGqS--?R>=G+ zS=^#rfN9+lf>oBVs@d4J)Plel@AkWmD*`9SM4muL7WeR~FcJo*rIww0k+)-6%ES7J z_!_-5qHpV7Fm)2GYnA5uKD|3a_o}eq99OJDMgmD7?AwGjQOmDLQ*=SyZ(t7DbGpT? zkM&`BMgs4rTHmB_EO@?=d_haJVBuBk?qtuBm7qe-_8gUB&Q{omq$~GphlR}#Ypc?$ zmo#Ko4&ZI;aA%wNFpNIF%D?PPUk^fagghk{@pk&0!C#Z9VYI(xCzv^(RGjpK;-wu1=d)W={ zQ4&bB;Gvd|GcWy7qY5lR>kL}CIsY@biTHj=hY3yH7HVHV_R2Nq;~|)7{HDyhzZvhT zNAVhyt!;Ctkg0*BxSO=rn;xmJ#Qp}J?Tx`Xa8nrQ3`52>N5l2|1_MP`0I1Yv|fk=ZytDnwDSmDle zi}ZRTY~G3db&o)^FoZ>`tCp7r!77Vr5ol4_H2wu+!sH|JFwhAUb#}+oBY%OLA7T|2 zUOx2$FA>Z%9p{H@80R@0l~o;cvQvU;P$B2b2l5u{Huh@wKJ|+AP$41@6_V*)Yp-)p zkLtjygD+qIlp(ZNS&8Pm1^m_3M&ji2ik;7^nTBE|y%jU*Ef|Tys;*fCBJwdJxCi_- z)`7w*ry=>~GE6JPmnHPCuPKqjxdm0X%(ldhD8S+HkLTS3{$PF~o{2#Tgb9Gi6DY}! z1&MbofEtU}=w;kSFW~_KBA=k=g!nxtz=kAlwG;t=5E!Rq)qp=Jm4uUW1pGlkk&I#$ zPH#mEN`-vMeCEG67t4s0{#V(T#%;Q_6n?n)e@rE)cL z!VMG4r_n}^j!hG_{>vg764oyon*Z=Zz2pn4X^61KcDTLiQE6BriF_l+1Bn)ah>7@_ z>PPzabuFEdm=G51yuYcvDSNAm@Nw|sn$L*rf40+Fng0%dbKz{5_X_uXJJkOTR2vBt ztKGDgu%JRlXR24_T1A+0uIKJjuGAk;fX~;peA%Z0+$#y+@zy7w`A{K+$EB{Gs~jx1 z%%C3c-()PA3MP|`r6)Bhb^?kf{+7sD5d4iPT5nUdfpjRr1e_23z*MkLyot zwqdpIiN6!~^(o;6lgYGBt$JUL43o+8fwLp_o*JSRGNWYE#8Y<_)!q*NzVL6K!6h~H za>AWkzgK{d_S7CZ&(D8WRkI@A8&utGeSHm8iQ8rC@hvqqbhU8tP8T1R){vPz(K?^~ z!=CY}U=|X2C{cL<)dI%zU!)?IVZk*m2VzE($TQ)OM672OWjy-iF{ds_< zb;vRxr8}G#A1~LZ^QGJKbsPU_JO8{}R&NarD?VdZsrpbM|9l&Z~1R{Y%oO!PZ0| z*hZ6#c2LO7A?_8{Bu`t5%z`jG)QT}F)9|D4Ab~(j^td1_yGBVJIUPvkLs-j9p0Ef+ z+!Kfd5{Lv6hy*$U!PO@6WH1pZXvD>U3K1x5RtRaQZ;wnLlT@3e$G#;CZiNz-(-1LX z29b;;kgy0u0$mB2Wi(?EUycOAbrdatEVY1@GIwC;E^yj(n(|{{ue_ zk&Jdw$jl*jSshs{5iQc$0+|(Hh_TE}ST+cJSq=hV5iM6jq@#&EX||brB5xT8Me|3^ zH~AN*g~!*U1XjcNW4as&MBLj!E~t>!*%s^`{04S-c3GuDoDMXTC#?VNjN%@4u_4?b zr{&3OZOq&g7SSR{yTy7(ewt>}VO=4jbyh=UOxQs#s1TBZ{JOnB<8ADku`Dy%$&)}c z$jp~3S;Uvf!+9ymXa-rzLl+V)`Ef#W01R7966grDP7f0aBoLfsO{rEc!;;DSf(QC( zh&0;{3YiKaS>=-ep1&ll(1*kqe5cNpCWt(N%rcq<3JW^=Ga=|4`S`ZmT@w~@Z|Ms% z3JW$J`N!VLH}(#!vIIJ!%i(SSC*Rm}8Zzr>V1-PD`0enG^M2JR?TtWSL>69VED}f{ zS8BOZK1qcMr+4_mw|tzoN&*Ffud7Y9^uTam{h=&cU*@S3SaXt|HG|}Ziz9WT zoDL*f1S0anf-mF{R_H_Wf=ZZah*i=?0ulFwMdV#+!V!76QEC>LXY!>g4U5A!pTzxn z$Hy1+mkU-|@?@EpHbNlCDoZM1!EJW4Kuaw<6GWasMBWS{S_E=hiv)_i6J02QaBG}s zk?n*$Gzi~TB7v3=Tp`hd?=%tlTtWXf>hX2sdf-3!y5NZ6f&XBYRU+tL7^o0(;d*>b z;k7lH69>Q&I8gTnkvD^g2{U=8S)UmQ{blCZO|+NMGK0Ad+Jw`xE4U91tepru)r5FK_K$X5@8X@tU(e;d;w&sWyc~9PMKvS%_b1h3L0Js z;kg0wsMh+dh3-G!yk3tS34|NyC8M?~ntprOykkf%$^IudBc)sozj_Zy)2?U7T_#-TVUg%d#d9y)7LjZI@2E z8_7r{kOU5}33P-7CWtShCA(PIgKvB7Kl=GNm@r5nfk+^cm%#D5*#g0?z$}pL!O4D} zXo=Ou+JtQ0VZvDW$0olYcka+Ek>95wkq_;iIvG#|l6Oh8*LIy|nFTtXkpvRR^(Nrq zuuUJTxv$JNME4hg#Ft$lVUe$h6P9FzFGZV~Ao2uCvolZC4eb``HWEkzVLs}g@8-*4 z;h{q0tLso9eZA*jm=*=TLG@+6r@lC)e~$8z;rC<7=pm3R1BsSE@N3OxtdIUpTf8d; zi)iAWu!uYfbi^0*DhVVe1cGU0>E?9*oVo{7!I{z}H#D0H$FYPZ8R7ms$yoXCImc5h zhut+XLA1;=iahN43AC%cLw|dgOlXOprRVXdu{_yA?}cz}i&&=AoSF;eMxRE!Dm(p)H!V zpvLqbMLNSA(s%XTAHT_aQL{*|+CeVZsTXKh<>#lKEo_VktD9yKh}bogCxJn>;zF4^ zosk4a8rpnR>r*3jg9v2iURbcoA{i|q5(t+=dIHA2r53ERJSIKMxwH?Q&`KNOS!e>0 z1`$@WT5i7M+ryGdtisMGsGk$T)?`7CD|a#`-=_P1Oom3o(j+;kAz_7qeaP5IEzhMK z(@c9agUF~RfrMoSIjuzk3ABD>k>Tw+!B(31lE5xTodc{3(GnKgR2|+#K(vSn0uik~ zrQi4Hml%$>2t)$K1WZ08BVnb_7`fhzys&+(ECBsfKLLgxghy)Udm>>`d zyw&kZ?-G?@sV6MxFXGEG5ZX8)_TZiCpTkr@0vEUiULqLP0>P*jUn6zj3)D+PBqM>O zb6_f{w)FP)mffI2nojoav8E0z;#LFzKbG>=8SDO7YR1S1D>Nipu*!;iI`_)`>Gx|^ zoWQ<`>8~Nu(RPrd`;fzt_TC)Ov!>2EwbZ!f$**?O5MfzDEo}mcJb^6b!K$zz;6q+muv@wL=;Eh! zW#H*85=dC@k3CCpD?Ut7HG(iW1nY3+c9gQ~U{6yp!N#)>V=mFXDuJ*(JDV!wkvtJL zX;!`ZDI(V#bWB4HwypG-_%=lEsYl4saMZSY)pS;J#f8;Wvq+#LEXY`LckVT5=XE!d zhd@gcgwlet%|iZMeZB@(@U%J8l2y={5q&fv`lrk2XPA1R{aNDrpe$C4q2M zwlsRr+vPWp)xJav209582rA^4`M>8GcoOCi!fIE)V&QDbVQbQ2(1N|!Kf<)qxZms@ zm)}5z{Mxcsnfw{y8&uiaExVJf{$=f+3|~9Q(K&?Z^^EsuQIcHswUMiS&wBlm7S2$vTj|fW-uuhYnr9xutzW-k-(TkR`@^mfK`_Gf<;`q;isqUDgk$3$gS}= zD=K76ejMuP=CX7hE4_gwRfC^Ly{bAEPL3rbREYS3RhDFgRaPRed2_erKdO78@ZAkf z=MN6iIfRVFP1T+)JCLh{HX=|BXCct~q0haKODn=A*$is(;L(}QMcZf-5(wLJvD#d- zEFrT7fmW0spZr{C2Q0kA1Z;mvMseR$`*Io*`N3LCd_jc}sKM|Tu_~;FaySxq{nOP^ z0m|Q`d8s?&;f3g871m<0Pge=ow>}K?q&L?LOgj+{!6XnWq|J;sXa8BIAK>z*3!neK4!n9I< z)ukKX#e@oxjH9)C&w=;a5c$lvgB)FD?d{j7^Zf%QbykmtZ+}Rh zr@V%Ql}1C+=N-PVs(KX-Nnkx2NVI;@tZ5xr79G^LwuUUVz!wP=UyZevWP~;1pq6Kr zo$-g7lt4J3C{?NW^Rn2Pgt!J!qez0_TRIORpa!o60R-Y2_{!VkDvWAGfn1Ctj-J4Xi(-g0z z14X`ph6rn)$6t*n^?_;=6EOMY@ypmQ%?CJ*=uoTb(ycyCwEWA(#UpL2)>cCz-&#YX zA6`u3wgsv!!Eo=y9{HeXB6NQB{^&|5EdohKIF3Cu{b|Nyub_?+ub**m$vUW`3qP-^ zw&VhwAV`B?Gc<4Wu=uf~Lmd^Z_wA?dMMvlc4W9aD!lZ*Rhr~`=pkSYmuso9iFj)si zT-4_JrHNBDw5G|)+6NoL@+@8Ew#CaOgbMkiZiDohhHun?!waT9-Eim;4Yete`DmJS!zoDL*fPD5eBgqeF+S`D~j0hevP9zACAgk=ViHd+S4qalPP?tQg; z0_}LXa8%YEmoHHND#WVOkkg$L!Wl`gl8nSX2@LwQ zjlWxuYO_Fc9Ulc2$iuT*i}n-h5S6r;?MNv$m-9P8Oe{!kT#NEk}(S;S_C2u zBJu>X)Pe(2Ggb(ju>q6gpZVq@YP>n?Xd2e5#mf5tgOAYZip$ zL(9y)WuToe(jc>D6BdEY7IZwA@Uo7y9aqo775&^wWM?4L3Yv;c2LMvNSuP}V;5XMN!ukxgauERnX$~| zi57uesbwZlGCB>Bj06&S=xDQymRfLWiPqf9Bj#Kl0ngDAEdp6ug-1gO>({2~0{#x^ zAs09XV;4N5A(GJ!3YiMA%WAm?Cm&j7T22SLQl6MFgPb-&83t(4f7D%+r zAXmy0EdrVOA}pe13C+`^hiDOqXj!sAUIGEK3?yU1ED%^pwogdBeF9X-!~h`icG#&) zh4?$(6X4zj6%r{~pBKInq3Mvqa>5`i*K0w~l8k1M9K=B7l0Y-}ghe1Tc?oo)jb<5% z38x{+xK@u>;-2_QH>>@IqiLZWNT6Jy!&+XTOB!;*y$dSDEUP>f0N=JZ3v`+#8As|4 za@vH`foAT_teUYL$q1K&$dk7`o5>Rvkr&7b6XZAB+XsokPF>`$=m9`{*+C&wA>>yp z2xR9?CLgoFu+5tBnODiOC#2c%od>gCB`nbbtK>}Bk&ZUgvSSew1X>*J=j$_*!A^Zb z&KF(V^$P<}osiBZP`$m?=3iWEcVCwTnn5BzSdT;k5iPH{Y+J{!5Ck zZj>Rk?--H}3So%6KbvF}){HtDPVB*DS$W2?gL!FhFSKk^=OL9m0?#fkJ1K3&9op)rcQ5Z89tZbU zB=DeS1-goxF$}D-iZ*rY{vj3oK9WH2OETp0nnCL#yZe8f2_J1{fy9I*1nxgm-cF13 z7s+VWY|940f>5;P>(N6@kckrfA53GLw%P^bhu@W?DpEAiHuP^2CH_ z!B8QAB%`G-=x7pXDNh0cBJSlWbC`SxL`)E9a^Xjl3O|B}EF~k%rXs&fmjihSEC1L# z`NrM}?fW5#8YbI3Av-KXNoNbIlWu_-WTs`tA{j}b8AP-Mf}Rivrn_|CuN`-#%<$kn zK?0qINJoR#g50fAZuuGRPOQ26=F{IbU{s4$*fNm@kw7yR32dGsYMmp+V8Rfquv;O4 zzrU+?=t(75cn!+5z0lqwu*yofv0$4Xq5d9p@(KyF7fqOrM8YESghe2ytvVg(hzS_g zq>Yv)NT3-6MI-OmfW3oc9IuO++-A271bK4j{Rg*$4=QAVN85(({E)V1e|Sco+$|@p z+Cg{FVIQ(8@D(4vuv3@Y>=$)|$Q81K9NnoWs`qJ8=5+9rvX&71d}WOifAwl|eaL6p zb!3Y#zQ*W`0)a2$p7fbnpjjIo$w)eyxF?VkfiJi9z27?@+#cL|x=-}d1L3g{!YcA- zp(K%8&JW(v(Dy`(1h$#7%YS0?31TnFrp>MV&zr##JpcnhxU%kr;D>h3L@EG!u z?zfWn>I2h?1bPQ=HbBuLp1HHL(>l#6dfPii_|#A#Wq!`xe87Rwt`ON=wbb6sAlYwu z1rLOMAkiWh&Qi;6-%R8MfVggtMA}>%kgNT+R5G+B-yUU3Q^5%8I5);tTj>yl{ zy((HTt(nt#dmBH#~> zcFFe@11#c7J%U8fej3SNP`HAK$gA+=w6jGBbZhQB=WH75P8s&(;(P46Bdy-3ltNuh$E0>grhQn z<_B*!ltbW4ZR0kF&HHzAJD!X_3ZCta+dT0%BTpaITJp<6p?$~je&b8O?Tk}T8(BU4 z)`QWNyK0EA1Zt;QW&@oBT0-E9m~h%E2_%rEFKG7BuGgBS-Y`t}gar21(D>Q++r54Q z16^1!tq>N0h*e@jScA0*f#61p1WpUig20`B-&k@v+*HjHUr-Lxpjn#r|JZx$D5;LF zdpLt@G6Z*r5CR1E;1CD|3-0dj&fpN--QAtRX9%u?LlWEqfgm9`d44@}o^P$Q*X-g} zH;p{s3z>hi*FO8~s#~W^?(N$Pj$Dm&t20b1Q6e4B^Smq^?XE9!d2g1lHt4`edlTJ# z(F5iXvHHF%gpBIMWviD@eYJ|V>kiaJ2NHQZsPfjZuczH^=b$CNAmjC`s~4>N70ydV z3%0Dr26fRHjauM~SS5kE!)ID_`34L-JBYaVnKJNYvy1S3WIHWsHWYKiIDakb)&iyi z(SkY>6L4H0ZG?rFXhG447Thr$aG>_B;``u1-oPyLdmc*zbBI`l3TYa1*qEPxdEcw7 zmoZlt@OfELj|&2kQEkUE1~$+cU&Na}D)4z%4H0>PAkYYr20`HS#6vFmJ%c(TCWHmI zB1p#WaTYeI*B$mD!s@RZM0$dlAP~_Kt8imq0%74LfpAJitlB}{5{})Jyc^68TjI{? z5n~HXKARJbICR_}j)_Hnq3(%%zB|J{%nL`mfBv-m$31tTLW1)p919iF?^*Cwd*4r; z$d9|1)-52{Qdlh=SdYsr4pVCre7;IxO&w^bmFnq%>1_%(3LOYmiM(B)(JHi&utXk? zkqE2O>_2n#I|3z70tt&i#z3eLF#+?WXaQ?@ip^zj_JpFD6Q$#Y;;UiP5jjVL(cAC9 z*cTIU;zhL14KMU$X&sm_+SaR3BwK2zkiW*|zBJ%#sE}gqXB~cybI6v~DP3}V^#FL0 z<|n_EzrF7YX*~5@l;O>P(nbjMpMa6kGYxDOn$=K4Q*IUYJu$1c`w+=Uw2UT*d+;Ul z1nQ`*5?1`dy@uww03|Oh2qY{5l|FTQWZy4)>Wn*m)0euI5@wpUE3yv1@U*jLb$ESj z|Couefgyp?Un6y3@m*=s-OLRuqXO+71$Dm(w;H8a;cOsxolGq*M~8Bdj8Iw&OXWLy z_7I#LpBQ+fRsXL568Et18v3$D(moMaXsfZNJ}OeX*G3K1TTy1uswl8iUwSc7*`Ss0 zyFxlHYxvoPuS;rglluM;koq#52@@89B(Q?k5>_=0l|R#~;P_5;G!!9D)w+J+8*7LJ zl8o01wws-+9DME@O+bAM3(kZIbUAym2VKfQg^-MdC2ee@8$<%7*-#GYpEM5|w!OO! z6kqTRf@ndtZLeGV+f0*T7bPa39D;(H{E_uBl!FAq)@0=V;tf--h0=Oet75o5XUA(_ z;(nrr#22ixZr>|ex_b|}MIsp&>A)ohnzYm0hQ}kU3_{mFr7sC`tKq1;a!r=RWjff$9|W!wl~iq1D+O4>4Ofc5Q}8x8A60BBg7bn%Ns8l*GI z)rKwp%Z8^aJg+lcv%~~c$jj6F7tF{qL9?RQICJ227O0Tk<@~~~9|je&;!dvhi++PS zWI)>A8m7CvTx-SJU1V~%6YDkfdS|;QVeqs!b%RKOVb=btSx)6Zp8I=ag?zR9+Wf`M zW9k(77FK%tDrp%9=t0+`MHYWvMYHDpP-1k&*HA~BGHkxOXf0G5fm(c)B~!&YKWQzH zpYYjdJ|PX4*7eJf?1z8r)z$PB`TA~teHQA1h>Af7EOj-?o!8-^?4g{F@UtAH^X(31~sIi|;7Kyp|GVEj;)<3(U zLPof)BktkAq0hzkpZ8u2Q;uXDpxYR($`>h5#vZ64$q3t)aRJxso~Q-Yvu0H7W{V2I z#8k2TvTEZZ!wT#~`g@OWg@xtTi$-Ujf0Y+XrG34JJ06``tW5+a2%P-YrF9x=6?yBq z`j=qKUf=(xp0kEt)GQB6<%9eh@28}$s}=k~^{FFV9q~ar;ZyJb_XFd@^nP≠WUC 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

  2. ugjvm^55&l0x`MngKHnmmFxp?00MR01t6g{9MU? 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