def addReferences(self, mindil=1, nsteps=6, dstep=4, nreplicates=1, ref=None, primers=None): """Add all needed references""" # print "addReferences(mindil=",mindil,", nsteps=",nsteps,", dstep=",dstep,", nrep=", nreplicates, ", ref=",ref,")" # Make sure the ref reagent is loaded if ref is None: ref = reagents.getsample("QPCRREF") if primers is None: primers = self.allprimers() dils = [1.0] for i in range(nsteps): needDil = mindil * math.pow(dstep, i) srcDil = 1 src = [ref] for j in range(len(dils)): if needDil / dils[j] <= self.MAXDIL: srcDil = dils[j] if srcDil == 1: src = [ref] else: srcname = "%s.D%d" % (ref.name, srcDil) src = [Sample.lookup(srcname)] if src[0] is None: src = [Sample(srcname, decklayout.DILPLATE)] break tmp = self.MINDILVOL self.MINDILVOL = 75 # Make sure there's enough for resuing dilutions self.addSamples(src=src, needDil=needDil / srcDil, primers=primers, nreplicates=nreplicates, save=needDil / srcDil > self.MAXDIL, saveVol=75) self.MINDILVOL = tmp dils.append(needDil) self.addSamples(src=[self.dilutant], needDil=1, primers=primers, nreplicates=nreplicates, save=False)
def addReferences(self,mindil=1,nsteps=6,dstep=4,nreplicates=1,ref=None,primers=None): 'Add all needed references' #print "addReferences(mindil=",mindil,", nsteps=",nsteps,", dstep=",dstep,", nrep=", nreplicates, ", ref=",ref,")" # Make sure the ref reagent is loaded if ref is None: ref=reagents.getsample("QPCRREF") if primers is None: primers=self.allprimers() dils=[1] for i in range(nsteps): needDil=mindil*math.pow(dstep,i) srcDil=1 src=[ref] for j in range(len(dils)): if needDil/dils[j] <= self.MAXDIL: srcDil=dils[j] if srcDil==1: src=[ref] else: srcname="%s.D%d"%(ref.name,srcDil) src=[Sample.lookup(srcname)] if src[0] is None: src=[Sample(srcname,decklayout.DILPLATE)] break tmp=self.MINDILVOL self.MINDILVOL=75 # Make sure there's enough for resuing dilutions self.addSamples(src=src,needDil=needDil/srcDil,primers=primers,nreplicates=nreplicates,save=needDil/srcDil>self.MAXDIL,saveVol=75) self.MINDILVOL=tmp dils.append(needDil) self.addSamples(src=[self.dilutant],needDil=1,primers=primers,nreplicates=nreplicates,save=False)
tmplqpcr=tmplqpcr+[srcprefix[i]+srcsuffix[i]] ligmaster1=ligmaster1+["MLig"+ligprefix1[i]+stem1[i]] pcr1=pcr1+[(srcprefix[i]+srcsuffix[i],ligprefix1[i]+srcsuffix[i])] ligmaster2=ligmaster2+["MLig"+ligprefix2[i]+stem1[i]] pcr2=pcr2+[(srcprefix[i]+srcsuffix[i],ligprefix2[i]+srcsuffix[i])] print "srcs=",srcs print "tmplqpcr=",tmplqpcr print "ligmaster1=",ligmaster1 print "pcr1=",pcr1 print "ligmaster2=",ligmaster2 print "pcr2=",pcr2 # Create ligation master mix samples for lm in set(ligmaster1+ligmaster2): if Sample.lookup(lm)==None: Sample(lm,Experiment.REAGENTPLATE,None,3) for st in set(stop): if Sample.lookup(st)==None: Sample(st,Experiment.REAGENTPLATE,None,2) for p in pcr1+pcr2: for pm in p: if Sample.lookup("MQ"+pm)==None: Sample("MQ"+pm,Experiment.REAGENTPLATE,None,10.0/6) for pm in tmplqpcr: if Sample.lookup("MQ"+pm)==None: Sample("MQ"+pm,Experiment.REAGENTPLATE,None,10.0/6)
srcs = srcs + [input[i]] tmplqpcr = tmplqpcr + [srcprefix[i] + srcsuffix[i]] ligmaster = ligmaster + ["MLig" + ligprefix[i] + stem1[i]] pcr = pcr + [ (srcprefix[i] + srcsuffix[i], ligprefix[i] + srcsuffix[i]) ] stop = stop + ["MStp" + srcsuffix[i]] #print srcs #print tmplqpcr #print ligmaster #print pcr # Create ligation master mix samples for lm in set(ligmaster): if Sample.lookup(lm) == None: Sample(lm, Experiment.REAGENTPLATE, None, 3) for st in set(stop): if Sample.lookup(st) == None: Sample(st, Experiment.REAGENTPLATE, None, 2) for p in pcr: for pm in p: if Sample.lookup("MQ" + pm) == None: Sample("MQ" + pm, Experiment.REAGENTPLATE, None, 10.0 / 6) for pm in tmplqpcr: if Sample.lookup("MQ" + pm) == None: Sample("MQ" + pm, Experiment.REAGENTPLATE, None, 10.0 / 6)
srcs = [] for k in range(max(nreplicates)): for i in range(len(input)): if nreplicates[i] > k: srcs = srcs + [input[i]] tmplqpcr = [srcprefix + srcsuffix] pcr = [srcprefix + srcsuffix, ligprefix + srcsuffix] print "srcs=", srcs print "tmplqpcr=", tmplqpcr print "ligmaster=", ligmaster print "pcr=", pcr print "stop=", stop # Create ligation master mix samples if Sample.lookup(ligmaster) == None: Sample(ligmaster, Experiment.REAGENTPLATE, None, 3) if Sample.lookup(stop) == None: Sample(stop, Experiment.REAGENTPLATE, None, 2) for pm in pcr: if Sample.lookup("MQ" + pm) == None: Sample("MQ" + pm, Experiment.REAGENTPLATE, None, 10.0 / 6) for pm in tmplqpcr: if Sample.lookup("MQ" + pm) == None: Sample("MQ" + pm, Experiment.REAGENTPLATE, None, 10.0 / 6) reagents = None
srcs=[] for k in range(max(nreplicates)): for i in range(len(input)): if nreplicates[i]>k: srcs=srcs+[input[i]] tmplqpcr=[srcprefix+srcsuffix] pcr=[srcprefix+srcsuffix,ligprefix+srcsuffix] print "srcs=",srcs print "tmplqpcr=",tmplqpcr print "ligmaster=",ligmaster print "pcr=",pcr print "stop=",stop # Create ligation master mix samples if Sample.lookup(ligmaster)==None: Sample(ligmaster,Experiment.REAGENTPLATE,None,3) if Sample.lookup(stop)==None: Sample(stop,Experiment.REAGENTPLATE,None,2) for pm in pcr: if Sample.lookup("MQ"+pm)==None: Sample("MQ"+pm,Experiment.REAGENTPLATE,None,10.0/6) for pm in tmplqpcr: if Sample.lookup("MQ"+pm)==None: Sample("MQ"+pm,Experiment.REAGENTPLATE,None,10.0/6) reagents=None