예제 #1
0
    def evolvability(self, repertoire):
        # Get the dominant genotype network for the repertoire
        giant = self.caller.dominant_network(repertoire)

        # Construct a EvolvabilityAnalyzer object
        evoAnalyzer = EvolvabilityAnalyzer(giant,
                                           self.inDataDict,
                                           self.seqToRepDict_evo,
                                           self.repToGiantDict,
                                           self.rcToSeqDict,
                                           self.bitsToSeqDict,
                                           self.netBuilder,
                                           self.isDoubleStranded)

        # Compute repertoire evolvability and set it as a network
        # attribute
        repertoireEvo, targetRepertoires = evoAnalyzer.getReportoireEvo()
        giant["Evolvability"] = repertoireEvo

        # Stringify the list, since pythons lists cannot be written to GML.
        giant["Evolvability_targets"] = json.dumps(targetRepertoires)

        # Set evolvability values for all vertices, i.e., sequences
        evoTuples = evoAnalyzer.getEvoAll()

        evoScores = [evoTuples[i][0] for i in range(len(evoTuples))]
        evoTargets = [evoTuples[i][1] for i in range(len(evoTuples))]

        giant.vs["Evolvability"] = evoScores
        giant.vs["Evolves_to_genotypes_in"] = [
            evoTargets[i].keys()
            for i in range(len(evoTargets))
        ]
        giant.vs["Evolvability_targets"] = evoTargets
예제 #2
0
    def init_evolvability(self):
        self.seqToRepDict_evo = EvolvabilityAnalyzer.updateSeqToRepDict(
            self.seqToRepDict, self.repToGiantDict)

        if self.isDoubleStranded:
            self.rcToSeqDict = EvolvabilityAnalyzer.buildRcToSeqDict(
                self.seqToRepDict_evo, self.bitManip)

        self.bitsToSeqDict = EvolvabilityAnalyzer.buildBitsToSeqDict(
            self.seqToRepDict_evo, self.rcToSeqDict, self.bitManip,
            self.isDoubleStranded)