コード例 #1
0
def timings(settings):

    output = ResultsHybridization()

    for i in range(NUM_OF_REPEATS):

        startTime = time.time()

        myBuilder = Builder(settings.function, settings.arguments)

        if DO_CONVERGENCE:
            myBuilder.genUntilConvergence(CONVERGENCE_CRIT)
        else:
            myBuilder.genAndSavePathsFile()

        builderRate = BuilderRate(myBuilder)

        output.buildTime.append(time.time() - startTime)

        startTime = time.time()

        output.rates.append(
            np.log10(1.0 /
                     builderRate.averageTimeFromInitial(bimolecular=True)))
        output.matrixTime.append(time.time() - startTime)

        output.nStates.append(builderRate.n_states)
        output.nTransitions.append(builderRate.n_transitions)

    return output
    """Produce the required plots here"""
コード例 #2
0
def genAndPrint(numOfPaths, toggle):
  
    simulation_temperature = 50.0
    
    print "Building the statespace from traces for reaction: " + toggle + " at T = %.1f C " % simulation_temperature
    
    myBuilder = Builder(doReaction, [numOfPaths, test8mer, simulation_temperature, toggle])
    myBuilder.genAndSavePathsFile()
    myBuilder.genAndSavePathsFile()
    print myBuilder
    
    builderRate = BuilderRate(myBuilder) 
     
    if not (toggle == str_dissociation or toggle == str_threeway_strand_displacement):
        time = builderRate.averageTimeFromInitial(bimolecular=False)
        print "\nRate = %.2f /s  \n" % (1.0 / time)
    else:
        time = builderRate.averageTimeFromInitial(bimolecular=True)
        print "\nRate = %.2f /M/s  \n" % (1.0 / time)
     
    """ Fields you could look at: """
    if False:
        print builderRate.stateIndex
        print builderRate.rate_matrix_csr.toarray()
       
        print "Initial States"
        print builderRate.initial_states
       
        print "Final States"
        print builderRate.final_states
       
        print str(builderRate)
       
        times = builderRate.averageTime()
        print str(times)
コード例 #3
0
def main():

    b = Builder(test0, [])
    b.genAndSavePathsFile(inspecting=True)

    print b

    b = Builder(test1, [])
    b.genAndSavePathsFile(inspecting=True)

    print b
コード例 #4
0
    def call_Builder(self, num_simulations):
        myBuilder = Builder(doReaction, [
            num_simulations, self.simulation_time, self.reaction_type,
            self.dataset_type, self.strands_list, self.sodium, self.magnesium,
            self.kinetic_parameters_simulation, self.bimolecular_reaction,
            self.temperature, self.temperature_change,
            self.join_concentration_change, self.join_concentration,
            rate_method, self.use_initialfinalfrompathway, self.startStates
        ])
        start_time = timeit.default_timer()
        if self.num_simulations > 0:
            myBuilder.genAndSavePathsFile(
                supplyInitialState=self.startStates[0])
            builderpath = self.dataset_path + "/" + myenums.Permanent_Folder.MYBUILDER.value + "/" + myenums.Permanent_Folder.MYBUILDER.value + str(
                self.docID)
            lenp = len(myBuilder.protoSpace)
            start = 0
            myBuilder.protoSpacebackup = copy.deepcopy(myBuilder.protoSpace)
            pathuniqueid = builderpath + myenums.EDITIONAL.UNIQUEID.value
            with open(pathuniqueid, "wb") as p:
                pickle.dump(myBuilder.uniqueID_number, p)
            pathspace = builderpath + myenums.EDITIONAL.PROTOSPACEBACKUP.value
            with open(pathspace, "wb") as p:
                pickle.dump(myBuilder.protoSpacebackup, p)
            pathsequences = builderpath + myenums.EDITIONAL.PROTOSEQUENCES.value
            with open(pathsequences, "wb") as p:
                pickle.dump(myBuilder.protoSequences, p)
            pathoptions = builderpath + myenums.EDITIONAL.PATHOPTIONS.value
            with open(pathoptions, "wb") as p:
                pickle.dump(myBuilder.optionsArgs, p)
            batchsize = 2000
            while start < lenp:
                st = timeit.default_timer()
                end = min(lenp, start + batchsize)
                print "progress ", str(end), " / ", str(lenp), self.docID

                # There was some memory leak issues when I used the fattenStateSpace function in builder.py, so  I added fatten helper to avoid the memory issues by saving intermediate results, restarting Multistrand, and restoring the intermediate results
                command = [
                    "python", "fattenhelper.py",
                    str(start),
                    str(end), builderpath, pathspace, pathsequences,
                    pathoptions, pathuniqueid
                ]
                shell = call(command)
                ft = timeit.default_timer()
                #print "making fatten state space time" , ft-st
                del shell
                with open(
                        builderpath + myenums.EDITIONAL.TEMPSTATESPACE.value +
                        str(start) + "-" + str(end), "rb") as p:
                    tempstatespace = pickle.load(p)
                with open(
                        builderpath + myenums.EDITIONAL.TEMPTRANSITIONS.value +
                        str(start) + "-" + str(end), "rb") as p:
                    temptransitions = pickle.load(p)
                os.remove(builderpath +
                          myenums.EDITIONAL.TEMPSTATESPACE.value + str(start) +
                          "-" + str(end))
                os.remove(builderpath +
                          myenums.EDITIONAL.TEMPTRANSITIONS.value +
                          str(start) + "-" + str(end))
                myBuilder.mergeSet(myBuilder.protoSpace, tempstatespace)
                myBuilder.mergeSet(myBuilder.protoTransitions_FPEI,
                                   temptransitions)
                start = end
                with open(pathuniqueid, "rb") as p:
                    myBuilder.uniqueID_number = pickle.load(p)
            os.remove(pathuniqueid)
            os.remove(pathspace)
            os.remove(pathsequences)
            os.remove(pathoptions)
            del myBuilder.protoSpacebackup
            del myBuilder.uniqueID_number
            print "Statistics: ", "statespace: ", len(
                myBuilder.protoSpace), "finalstates: ", len(
                    myBuilder.protoFinalStates), "initialstates: ", len(
                        myBuilder.protoInitialStates)

        return myBuilder