コード例 #1
0
 def command_Eat(self):  # command 30
     eatCoord = self.getAdjCoordByDirection(self.faceDirection)
     eatCoord = (Helpers.loopValue(eatCoord[0], 0,
                                   Logic.gameWorld.worldSizeInCells[0] - 1),
                 eatCoord[1])
     if Logic.gameWorld.whatIsOnTile(eatCoord) == World.WorldObject.Bot:
         attackForce = int(self.getNextGenomeByte() / 2)
         totalFood = Logic.attackBot(eatCoord,
                                     attackForce)  # атакуем то, что впереди
         foodToHealth = int(totalFood * Config.FOOD_TO_HEALTH)
         self.health += foodToHealth
         foodToEnergy = int(totalFood * Config.FOOD_TO_ENERGY)
         self.energy += foodToEnergy
         self.writeToLog("Eat bot at {0}! Gained H/E: {1}/{2}".format(
             eatCoord, foodToHealth, foodToEnergy))
         self.commandPointer += 2
         self.executeNextCommand = False
         self.adjustColor("Red")
     elif Logic.gameWorld.whatIsOnTile(
             eatCoord) == World.WorldObject.Organic:
         totalFood = Logic.removeOrganic(
             Logic.gameWorld.getObjectFromTile(eatCoord))
         foodToHealth = int(totalFood * Config.ORGANIC_TO_HEALTH)
         self.health += foodToHealth
         foodToEnergy = int(totalFood * Config.ORGANIC_TO_ENERGY)
         self.energy += foodToEnergy
         self.writeToLog("Eat organic at {0}! Gained H/E: {1}/{2}".format(
             eatCoord, foodToHealth, foodToEnergy))
         self.commandPointer += 3
         self.adjustColor("Red")
     else:
         self.writeToLog("Nothing to be eated!")
         self.commandPointer += 1
         self.executeNextCommand = False
コード例 #2
0
 def command_Multiply(self):  # command 15
     multiplyIsDone = False
     for direction in range(1, 8):
         coord = self.getAdjCoordByDirection(
             self.getLoopedValue(8, self.faceDirection + direction))
         coord = (Helpers.loopValue(coord[0], 0,
                                    Logic.gameWorld.worldSizeInCells[0] -
                                    1), coord[1])
         nearbyObject = Logic.gameWorld.whatIsOnTile(coord)
         if nearbyObject == World.WorldObject.Empty:
             self.writeToLog("Making child bot at {0}".format(coord))
             Logic.newBot(coord, botParent=self)
             self.commandPointer += 1
             multiplyIsDone = True
             self.executeNextCommand = False
             self.health = int(self.health / 2.25)
             self.energy = int(self.energy / 2.25)
             break
     if multiplyIsDone is False:
         self.writeToLog("Tryed to make a child bot but there's no room!")
         if Config.DIE_IF_NO_ROOM is True:
             self.health = 0
         else:
             self.commandPointer += 2
             self.executeNextCommand = False
コード例 #3
0
def SendTablesToLogic(initial_table, goal_table):
    print()
    print("Tablas recibidas")
    initial_table.PrintTorreDetallada()
    goal_table.PrintTorreDetallada()
    Logic.RecibirInformacionDesdeInterfaz(initial_table, goal_table)
    return Logic.GetSolution()
コード例 #4
0
def game_over_check(board):
    global winner

    #Check for pieces vertically for 4 in a row
    vertical = Logic.vertical_check(board)
    if vertical != 'None':
        winner = vertical
        return True

    #Check for pieces horizontally
    horizontal = Logic.horizontal_check(board)
    if horizontal != 'None':
        winner = horizontal
        return True

    #Check for pieces diagonally
    diagonal = Logic.diagonal_check(board)

    if diagonal != 'None':
        winner = diagonal
        return True
    #Checks if its a draw
    draw = Logic.draw_check(board)

    if draw != 'None':
        winner = 'Nobody'
        return True
コード例 #5
0
def ativabotoes(botoes_jogo, errados, alterados, jogo, mat, strart_time, times,
                n_select, linha, coluna, ecra, tempo, best_results,
                dificuldade):
    result = False

    if botoes_jogo[0]:
        errados = Logic.constroi_errados(alterados, jogo, mat)
        strart_time = time.time()
        botoes_jogo[0] = False
    else:
        actual_time = time.time() - strart_time
        if actual_time >= times:
            errados = []

    if botoes_jogo[1]:
        jogo = Logic.copia_matriz(mat)
        botoes_jogo[1] = False

    if botoes_jogo[2] and n_select:
        jogo[linha][coluna] = mat[linha][coluna]
        botoes_jogo[2] = False

    if botoes_jogo[3]:
        ecra = 5
        tempo = time.time() - tempo
        result = Print.correto(jogo)
        if result:
            Results.adiciona_lista(tempo, dificuldade, best_results)
        Results.gravar_resultados(best_results)
        botoes_jogo[3] = False

    return errados, strart_time, jogo, ecra, tempo, best_results, result
コード例 #6
0
ファイル: processors.py プロジェクト: jalexcole/LogicCad
    def __init__(self):
        self.data = 0x00
        self.address = 0x0000
        self.dataspace = 2 ** 8
        self.address_space = 2 ** 16

        # Registers
        self.accumulator = Logic.register(8)
        self.bc = [Logic.register(8),Logic.register(8)]
コード例 #7
0
 def fileChoice(self):
     fileName, filetype = QFileDialog.getOpenFileName(
         self, "选取文件", None,
         "JPEG Files (*.jpg);;PixMap Files (*.png)")  # 设置文件扩展名过滤,注意用双分号间隔
     print(fileName)
     try:
         self.static = Logic(fileName)
         self.fileFlag = 1
     except Exception:
         print('未选择')
コード例 #8
0
def endStateCheck(node, nextMove):
    whiteCheckmate = Logic.is_checkmate(node.state, P.WHITE)
    blackCheckmate = Logic.is_checkmate(node.state, P.BLACK)
    if (whiteCheckmate or blackCheckmate):
        node.setWeight()
        if ((whiteCheckmate and node.color == P.BLACK) or (blackCheckmate and node.color == P.WHITE)):
            return (100000 * (node.depthLim+1)) / (node.depth + 1), nextMove
        return (-100000 * (node.depthLim+1)) / (node.depth + 1), nextMove
    elif (whiteCheckmate == None or blackCheckmate == None):
        return 0, nextMove
    raise AI_Exception(node.state, "Node has no next moves despite not being in an ending state", node.color)
コード例 #9
0
def main(_args):
    tt = _create_truthtable(_args.n_vars[0], _args.truth_table[0])
    initial_state = Logic.State(GATES, tt, _args.n_vars[0], gate_limit=_args.u_gate_lim[0],
                                gate_l_limit=_args.l_gate_lim[0], height_limit=_args.height_lim[0])
    problem = Logic.Problem(initial_state)
    solution = Search.simulated_annealing(problem, Search.exp_schedule(_args.k[0], _args.lam[0], _args.limit[0]))
    print("\nSolution found with simulated annealing:", solution.state)

    X = exprvars('x', _args.n_vars[0])
    f = truthtable(X, _args.truth_table[0])
    print("Product of sums form", truthtable2expr(f).to_cnf())
    print("Sum of products form", truthtable2expr(f).to_dnf())
コード例 #10
0
ファイル: Print.py プロジェクト: LCMJ21/MyOwnShit
def correto(jogo):
    if Logic.jogo_acabou(jogo):
        lista = ["Victory",
                 "easy peasy lemon squeezy",
                 "Easy win"]
        return Logic.chose_one(lista)
    else:
        lista = ["Defeat",
                 "Noob ...",
                 "Wtf, are you on drugs ?",
                 "Wtf, you dumb ?"]
        return Logic.chose_one(lista)
コード例 #11
0
ファイル: Game.py プロジェクト: VDFaller/Pirates
 def __init__(self, window):
     """The Obvious"""
     super(Game, self).__init__()
     self.window = window
     self.makeshitgo = True
     self.turn = 1
     self.num_players = 1
     """Makes ports and players"""
     self.ports = Logic.instance_ports(Config.list_ports)
     self.players = Logic.initiate_players(self.num_players,
         self.ports, window)
     self.npc = [Logic.Player("Galleon",
         Logic.Port("Bermuda"), "Blackbeard")]
     window.InfoBar.show()
コード例 #12
0
    def keydownevent(self, c, x, y):
        #print ("*******************************************************************************")
        try:
            self.keys[c] = True
            if self.joystick.callback_down is not None:
                self.joystick.callback_down(c)
            #print(self.keys)
            if self.joystick.isFire(self.keys):
                Logic.event(self.keys, c, self.solomon)
        except Exception as e:
            print(e)
            pass

        glutPostRedisplay()
コード例 #13
0
    def group_by_chromosome(self, data_dict, deli_str, ignore_chrm_list):
        logic = Logic.Logics()

        result_dict = {}
        aqia_dict = {}
        for trnscrpt_id, vals_arr in data_dict.items():
            dscript = vals_arr[0]
            chrsm = dscript[dscript.index(deli_str) + len(deli_str):].split(":")[0]

            if logic.filter_out_by_chrm(chrsm, ignore_chrm_list):
                continue

            if 'AQIA' in chrsm:
                if chrsm in aqia_dict:
                    if trnscrpt_id not in aqia_dict[chrsm]:
                        aqia_dict[chrsm].update({trnscrpt_id: vals_arr})
                else:
                    aqia_dict.update({chrsm: {trnscrpt_id: vals_arr}})
                continue

            if chrsm in result_dict:
                if trnscrpt_id not in result_dict[chrsm]:
                    result_dict[chrsm].update({trnscrpt_id: vals_arr})
            else:
                result_dict.update({chrsm: {trnscrpt_id: vals_arr}})

        return result_dict, aqia_dict
コード例 #14
0
    def get_target_seq(self, path, init_arr):
        logic = Logic.Logics()
        tmp_dict = {}

        pam_seq = init_arr[0]
        add_seq1_len = init_arr[1]
        spacer_len = init_arr[2]
        add_seq2_len = init_arr[3]
        pam_len = len(pam_seq)

        std_tot_len = add_seq1_len + spacer_len + pam_len + add_seq2_len
        for seq_record in SeqIO.parse(path, "fasta"):

            trncrpt_id = seq_record.id
            if trncrpt_id not in tmp_dict:
                tmp_dict.update({trncrpt_id: [seq_record.description]})

            tmp_p_str = ""
            for c in seq_record.seq:
                tmp_p_str = tmp_p_str + c.upper()

                if len(tmp_p_str) > std_tot_len:
                    tmp_p_str = tmp_p_str[-std_tot_len:]

                if len(tmp_p_str) == std_tot_len:
                    if 'N' not in tmp_p_str:
                        if logic.match(0, tmp_p_str[-(add_seq2_len + pam_len):-add_seq2_len], pam_seq):
                            tmp_dict[trncrpt_id].append(tmp_p_str)

        return tmp_dict
コード例 #15
0
ファイル: Main.py プロジェクト: abychutkin/Python
def create_game(sprite_size, is_new):
    # Здесь создаются глобальные переменные
    global hero, engine, drawer, iteration
    # Если создается новая игра
    if is_new:
        # Герой игры
        hero = Objects.Hero(base_stats, Service.create_sprite(
            os.path.join("texture", "Hero.png"), sprite_size))
        # Движок игры
        engine = Logic.GameEngine()
        # Инициализация игры
        Service.service_init(sprite_size)
        # Перезагрузка игры, происходит при запуске и смене уровня
        Service.reload_game(engine, hero)
        drawer = SE.GameSurface((640, 480), pygame.SRCALPHA, (0, 480),
            SE.ProgressBar((640, 120), (640, 0),
                SE.InfoWindow((160, 600), (50, 50),
                    SE.HelpWindow((700, 500), pygame.SRCALPHA, (0, 0),
                        SE.ScreenHandle((0, 0))))))

    else:
        engine.sprite_size = sprite_size
        hero.sprite = Service.create_sprite(
            os.path.join("texture", "Hero.png"), sprite_size)
        Service.service_init(sprite_size, False)

    engine.sprite_size = sprite_size

    # В метод передается игровой движок
    drawer.connect_engine(engine)

    iteration = 0
コード例 #16
0
    def command_GrowOrgan(self):  # command 35
        organGrowIsDone = False

        organGenome = [0] * self.organGenomeSize
        for i in range(self.organGenomeSize):
            organGenome[i] = self.genome[self.getLoopedValue(
                self.genomeSize, self.commandPointer + 1 + i)]

        for direction in range(1, 7):
            coord = self.getAdjCoordByDirection(
                self.getLoopedValue(8, self.faceDirection + direction))
            coord = (Helpers.loopValue(coord[0], 0,
                                       Logic.gameWorld.worldSizeInCells[0] -
                                       1), coord[1])
            nearbyObject = Logic.gameWorld.whatIsOnTile(coord)
            if nearbyObject == World.WorldObject.Empty:
                self.writeToLog("Making organ at {0}".format(coord))
                self.organs.append(Logic.newOrgan(coord, self, organGenome))
                self.commandPointer += 1
                organGrowIsDone = True
                self.executeNextCommand = False
                self.health = int(self.health / 2.25)
                self.energy = int(self.energy / 2.25)
                break
        if organGrowIsDone is False:
            self.writeToLog("Tryed to grow organ but there's no room!")
            if Config.DIE_IF_NO_ROOM is True:
                self.health = 0
            else:
                self.commandPointer += 2
                self.executeNextCommand = False
コード例 #17
0
    def command_CheckIfRelative(self):  # command 16
        nextByte = self.getNextGenomeByte(
        )  # смотрим, какой байт следующий в геноме

        # вычисляем значение относительного поворота
        lookValue = nextByte % 8
        # вычисляем направление в зависимости от того, куда повёрнут бот
        directionToCheck = self.getLoopedValue(8,
                                               self.faceDirection + lookValue)

        # смотрим, что там находится
        coord = self.getAdjCoordByDirection(directionToCheck)
        coord = (Helpers.loopValue(coord[0], 0,
                                   Logic.gameWorld.worldSizeInCells[0] - 1),
                 coord[1])
        nearbyObject = Logic.gameWorld.whatIsOnTile(coord)
        if nearbyObject == World.WorldObject.Bot:
            anotherBot = Logic.gameWorld.getObjectFromTile(coord)
            if Logic.compareGenome(self, anotherBot) is True:
                self.writeToLog("There is a relative at {0}!".format(coord))
                self.commandPointer += self.genome[self.getLoopedValue(
                    self.genomeSize, self.commandPointer + 2)]
                self.executeNextCommand = True
            else:
                self.writeToLog("There is a stranger at {0}!".format(coord))
                self.commandPointer += self.genome[self.getLoopedValue(
                    self.genomeSize, self.commandPointer + 3)]
                self.executeNextCommand = True
コード例 #18
0
def anlyze_indel_by_MAIN_to_SUB():
    util = Util.Utils()
    logic_prep = LogicPrep.LogicPreps()
    logic = Logic.Logics()

    brcd_list = util.csv_to_list_ignr_header(WORK_DIR + INPUT + BRCD_FILE)
    brcd_arr = logic_prep.make_arr_list_to_list(brcd_list)

    trgt_list = []
    trgt_err_list = []
    for path in [MAIN_DIR, SUB_DIR]:
        csv_list = util.csv_to_list_ignr_header(
            WORK_DIR + INPUT + path + F_TABLE_FILE, "\t")
        result_list, err_list = logic_prep.get_data_by_cell_id(
            csv_list, brcd_arr, CONST_INIT)
        trgt_list.append(result_list)
        trgt_err_list.append(err_list)

    # result_dict = logic.count_len_arr_mut_non_mut_by_main_list(trgt_list[0], trgt_list[1], brcd_arr)
    result_dict = logic.count_cell_mut_non_mut_by_main_list(
        trgt_list[0], trgt_list[1])
    util.make_excel_indel_frequency_by_cell_id(
        WORK_DIR + "output/result_indel_" + MAIN_SUB_NAME[0] + "_" +
        MAIN_SUB_NAME[1], result_dict, MAIN_SUB_NAME)

    for idx in range(len(trgt_err_list)):
        sorted_err_list = logic_prep.sort_list_by_ele(trgt_err_list[idx], -1)
        logic.count_num_by_err(sorted_err_list)
        util.make_excel_err_list(
            WORK_DIR + "output/" + MAIN_SUB_NAME[idx] + "_error_list",
            sorted_err_list)
コード例 #19
0
    def get_pairwise2_needle_dict_by_ref_seq(self, ngs_list):
        logic = Logic.Logics()
        result_dict = {}
        print("get_pairwise2_needle_dict_by_ref_seq starts ")
        for val_arr in self.ref_list:
            ref_seq = val_arr[0]
            for ngs_read_arr in ngs_list:
                ngs_read = ngs_read_arr[0]
                ngs_read_needle, needle_result, ref_seq_needle = logic.get_pairwise2_needle_result(
                    ngs_read, ref_seq)
                needle_cnt = needle_result.count('|')
                ins_cnt = ref_seq_needle.count("-")
                del_cnt = ngs_read_needle.count("-")
                needle_tot = len(needle_result)
                sub_cnt = needle_tot - (needle_cnt + del_cnt + ins_cnt)
                if ref_seq in result_dict:
                    result_dict[ref_seq].append(
                        [needle_cnt, ins_cnt, del_cnt, sub_cnt, ngs_read])
                    # TODO val_arr 이 너무 많은 경우 TOP_N 갯수 만큼 필터링 추가
                    sorted_list = logic.get_sorted_list_by_idx_ele(
                        result_dict[ref_seq], self.idx)
                    result_dict[ref_seq] = sorted_list[:self.top_n]
                else:
                    result_dict.update({
                        ref_seq:
                        [[needle_cnt, ins_cnt, del_cnt, sub_cnt, ngs_read]]
                    })

        return result_dict
コード例 #20
0
def get_PAM_within_N_bp_of_POS(mut_list):
    print("multi_processing ::: get_PAM_within_N_bp_of_PAM >>> ")
    result_list = []
    logic = Logic.Logics()

    for mut_arr in mut_list:
        chr_num = mut_arr[0]
        pos = int(mut_arr[1]) - 1
        ref_p_seq = mut_arr[3]
        alt_p_seq = mut_arr[4]

        ref_m_seq = ""
        alt_m_seq = ""
        try:
            ref_m_seq += logic.make_complement_string(ref_p_seq)
            if alt_p_seq == '.':
                alt_p_seq = ""
            else:
                alt_m_seq += logic.make_complement_string(alt_p_seq)
        except Exception as err:
            print("make_complement_string ::: ", err)
            print(ref_p_seq, " : ref_p_seq")
            print(alt_p_seq, " : alt_p_seq")
            print(str(mut_arr))

        seq_record = SeqIO.read(REF_DIR + "chr" + chr_num + ".fa", "fasta")
        p_seq = str(seq_record.seq).upper()
        m_seq = str(seq_record.seq.complement()).upper()

        logic.get_matched_pam_p_seq_list(result_list, p_seq, pos, PAM, WIN_PAM, SEQ_WIN_SIZE, "chr" + chr_num)
        logic.get_matched_pam_m_seq_list(result_list, m_seq, pos, PAM, WIN_PAM, SEQ_WIN_SIZE, "chr" + chr_num)

    print("DONE multi_processing ::: get_PAM_within_N_bp_of_PAM >>>")
    return result_list
コード例 #21
0
    def get_pairwise2_needle_dict_simple(self, ngs_read_list):
        print("get_pairwise2_needle_dict_ starts ")
        logic = Logic.Logics()

        result_dict = {}
        alignments_result_dict = {}

        fn_name = self.ref_list[0]
        ref_seq = self.ref_list[1]
        for np_arr in ngs_read_list:
            ngs_read = np_arr[0]
            ngs_id = np_arr[1]
            ngs_read_needle, needle_result, ref_seq_needle, alignments_result = logic.get_pairwise2_needle_result(
                ngs_read, ref_seq)
            if fn_name in result_dict:
                result_dict[fn_name].append(
                    [ngs_read_needle, needle_result, ref_seq_needle, ngs_id])
            else:
                result_dict.update({
                    fn_name:
                    [[ngs_read_needle, needle_result, ref_seq_needle, ngs_id]]
                })

            if fn_name in alignments_result_dict:
                alignments_result_dict[fn_name].append([alignments_result])
            else:
                alignments_result_dict.update({fn_name: [[alignments_result]]})

        return result_dict, alignments_result_dict
コード例 #22
0
def get_guide_set_from_ref(p_sq, m_sq_no_rvrsed, gene_list, cds_dict,
                           init_arr):
    logic = Logic.Logics()

    result_set = set()

    # len_f_guide = init_arr[1]
    len_guide = init_arr[2]
    pam_rule_arr = init_arr[3]
    # len_b_pam = init_arr[4]

    for gen_nm in gene_list:
        cds_idx_list_arr = cds_dict[gen_nm]
        for cds_idx_list in cds_idx_list_arr:
            for clv_idx in cds_idx_list:

                for pam_rule in pam_rule_arr:
                    len_pam = len(pam_rule)

                    pam_fr_p_sq = p_sq[clv_idx + 3:clv_idx + 3 + len_pam]
                    pam_fr_m_sq = m_sq_no_rvrsed[clv_idx - 3 -
                                                 len_pam:clv_idx - 3]

                    if logic.match_SY(0, pam_fr_p_sq, pam_rule):
                        guide_seq = p_sq[clv_idx + 3 - len_guide:clv_idx + 3]
                        result_set.add(guide_seq)

                    if logic.match_SY(0, pam_fr_m_sq, pam_rule[::-1]):
                        guide_seq = m_sq_no_rvrsed[clv_idx - 3:clv_idx - 3 +
                                                   len_guide]
                        result_set.add(guide_seq[::-1])

    return result_set
コード例 #23
0
def create_game(sprite_size, is_new):
    global hero, engine, drawer, iteration
    if is_new:
        hero = Objects.Hero(base_stats, Service.create_sprite(
            os.path.join("texture", "Hero.png"), sprite_size))
        engine = Logic.GameEngine()
        Service.service_init(sprite_size)
        Service.reload_game(engine, hero)
        drawer = SE.GameSurface((640, 480), pygame.SRCALPHA, (0, 480),
                                SE.ProgressBar((640, 120), (640, 0),SE.GameMiniMap((640, 150), (640, 150),
                                                SE.InfoWindow((160, 600), (50, 50),
                                                                SE.HelpWindow((700, 500), pygame.SRCALPHA, (0, 0),
                                                                              SE.ScreenHandle(
                                                                                  (0, 0))
                                                                              )))))
    else:
        engine.sprite_size = sprite_size
        hero.sprite = Service.create_sprite(
            os.path.join("texture", "Hero.png"), sprite_size)
        Service.service_init(sprite_size, False)

    Logic.GameEngine.sprite_size = sprite_size

    drawer.connect_engine(engine)

    iteration = 0
コード例 #24
0
def main1():
    util = Util.Utils()
    logic_prep = LogicPrep.LogicPreps()
    logic = Logic.Logics()

    seq_record = util.get_seq_record_from_genbank(WORK_DIR + NCBI +
                                                  genbank_file_name + ".gb")
    cds_idx_list = logic_prep.get_cds_idx_arr_to_list(seq_record)

    init_rule = INIT
    pam_seq = init_rule[2]
    plus_strand_list, minus_strand_list = logic.get_idx_of_matching_seq(
        seq_record.seq, pam_seq)

    plus_idx_list = logic.get_idx_in_list(plus_strand_list, cds_idx_list)
    minus_idx_list = logic.get_idx_in_list(minus_strand_list, cds_idx_list,
                                           False)

    filtered_plus_idx_list = logic_prep.filter_out_dupl(plus_idx_list)
    filtered_minus_idx_list = logic_prep.filter_out_dupl(minus_idx_list)

    plus_seq_list = logic.get_trgt_seq_in_idx_list(seq_record.seq,
                                                   filtered_plus_idx_list,
                                                   init_rule)
    minus_seq_list = logic.get_trgt_seq_in_idx_list(seq_record.seq,
                                                    filtered_minus_idx_list,
                                                    init_rule, False)

    merge_list = logic_prep.merge_list([plus_seq_list, minus_seq_list])
    tot_list = logic_prep.sort_list_by_ele(merge_list, 0)

    header = ["sequence", "strand"]
コード例 #25
0
    def get_target_seq_with_clvg_site(self, path, init_arr):
        logic = Logic.Logics()
        tmp_dict = {}

        pam_seq = init_arr[0]
        add_seq1_len = init_arr[1]
        spacer_len = init_arr[2]
        add_seq2_len = init_arr[3]
        clvg_site = init_arr[4]
        pam_len = len(pam_seq)

        std_tot_len = add_seq1_len + spacer_len + pam_len + add_seq2_len

        for seq_record in SeqIO.parse(path, "fasta"):
            tot_cds_len = len(seq_record.seq)

            trncrpt_id = seq_record.id
            if trncrpt_id not in tmp_dict:
                tmp_dict.update({trncrpt_id: [seq_record.description]})

            tmp_p_str = ""
            idx = 0
            for c in seq_record.seq:
                idx += 1
                tmp_p_str = tmp_p_str + c.upper()

                if len(tmp_p_str) > std_tot_len:
                    tmp_p_str = tmp_p_str[-std_tot_len:]

                if len(tmp_p_str) == std_tot_len:
                    if 'N' not in tmp_p_str:
                        if logic.match(0, tmp_p_str[-(add_seq2_len + pam_len):-add_seq2_len], pam_seq):
                            tmp_dict[trncrpt_id].append([tmp_p_str, ((idx - clvg_site - pam_len - add_seq2_len) / tot_cds_len) * 100])

        return tmp_dict
コード例 #26
0
def test():
    util = Util.Utils()
    logic = Logic.Logics([WORK_DIR + FASTQ_DIR])

    brcd_list = util.read_tb_txt(WORK_DIR + BARCD_SEQ_FILE)
    for brcd_arr in brcd_list:
        print(brcd_arr)
コード例 #27
0
    def isEating(self, spot, oldSpot):
        '''returns True if this spot will eat someone else which can also say that the player cant put there a new pawn (in a placement phase)'''
        if len(self.naturalPawns) == 15:  # cannot eat more
            return (False, (-2, -2))

        howManyIate = []  # only 1 allowed

        otherTurn = (self.getTurn() + 1) % 2
        eaten = (-1, -1)
        triangles = Logic.vertexPartOfTriangle(spot)

        for tri in triangles:
            countA = 0
            countB = 0

            for vertex in tri:

                if vertex == spot or vertex == oldSpot:
                    continue

                if vertex in self.playersPawns[otherTurn]:
                    eaten = vertex
                    countA += 1
                if vertex in self.playersPawns[self.getTurn()]:
                    countB += 1
            if countA == 1 and countB == 1:
                howManyIate.append(eaten)

        if len(Set(howManyIate)
               ) == 1:  # if i ate only one (or more but ate the same)
            return (True, howManyIate[0])

        return (False, (-1, -1))
コード例 #28
0
def make_filtered_out_ClinVar_pos_in_cds_or_not():
    logic = Logic.Logics()
    logic_prep = LogicPrep.LogicPreps()
    util = Util.Utils()

    cds_info = util.read_csv_ignore_N_line(WORK_DIR + "input/" + ALL_CDS_INFO, "\t")
    cds_dict_by_chr = {}
    for cds_arr in cds_info:
        chrom = cds_arr[2]
        start_idx_arr, end_idx_arr = logic_prep.get_orf_strt_end_idx_arr(cds_arr)
        idx_list = logic_prep.get_idx_num_frm_strt_to_end_list(start_idx_arr, end_idx_arr)
        if chrom in cds_dict_by_chr:
            cds_dict_by_chr[chrom].append(idx_list)
        else:
            cds_dict_by_chr.update({chrom: [idx_list]})

    mut_dict = logic_prep.get_dict_from_list_by_ele_key(
        util.read_csv_ignore_N_line(WORK_DIR + "input/" + MUT_INFO, "\t"), 0)

    not_in_cds_list = []
    in_cds_list = []
    for chr_num, mut_list in mut_dict.items():
        cds_idx_list = cds_dict_by_chr['chr' + chr_num]
        for mut_arr in mut_list:
            pos = int(mut_arr[1]) + ADJ_REF_IDX
            tmp_id = int(mut_arr[2])
            if not logic.check_seq_in_cds(cds_idx_list, pos):
                not_in_cds_list.append(mut_arr)
            else:
                in_cds_list.append(mut_arr)
    print(len(not_in_cds_list))
    header = ['#CHROM',	'POS', 'ID', 'REF', 'ALT', 'QUAL', 'FILTER', 'INFO']
    util.make_csv(WORK_DIR + '/input/ClinVar_dominant_mutation_on_CDS.txt', header, in_cds_list, deli='\t')
    util.make_csv(WORK_DIR + '/input/ClinVar_dominant_mutation_not_on_CDS.txt', header, not_in_cds_list, deli='\t')
コード例 #29
0
def multi_processing():
    util = Util.Utils()

    print("read FASTQ files path")
    sources = util.get_files_from_dir(WORK_DIR + "FASTQ/" + '*.fastq')
    print("read barcode list")
    brcd_list = util.read_tb_txt(WORK_DIR + BARCD_SEQ_FILE)

    logic = Logic.Logics(brcd_list)

    print("get_FASTQ_seq_dict")
    fastq_list = []
    for sources_list in util.get_FASTQ_seq_dict(sources).values():
        fastq_list.extend(sources_list)

    # divide data_list by MULTI_CNT
    splited_fastq_list = np.array_split(fastq_list, MULTI_CNT)
    print("platform.system() : ", SYSTEM_NM)
    print("total cpu_count : ", str(TOTAL_CPU))
    print("will use : ", str(MULTI_CNT))
    pool = mp.Pool(processes=MULTI_CNT)
    ## analyze FASTQ seq after barcode seq
    pool_list = pool.map(logic.get_dict_multi_p_seq_from_FASTQ,
                         splited_fastq_list)
    ## analyze whole FASTQ seq
    # pool_list = pool.map(logic.get_dict_multi_p_seq_from_whole_FASTQ, splited_fastq_list)

    merge_dict = logic.merge_pool_list(pool_list)

    util.make_dict_to_excel(
        WORK_DIR + "output/result_count_" +
        BARCD_SEQ_FILE.replace("barcode_seq/", "").replace(".txt", ""),
        merge_dict)
コード例 #30
0
def multi_processing_test():
    util = Util.Utils()

    sources = util.get_files_from_dir(WORK_DIR + "FASTQ/" + '*.fastq')
    brcd_list = util.read_tb_txt(WORK_DIR + BARCD_SEQ_FILE)

    logic = Logic.Logics(brcd_list)

    # key : D:/000_WORK/JangHyeWon_ShinJeongHong/20200604/WORK_DIR/FASTQ\\18.fastq
    fastq_list = util.get_FASTQ_seq_dict(
        sources
    )['D:/000_WORK/JangHyeWon_ShinJeongHong/20200604/WORK_DIR/FASTQ\\18.fastq']

    # divide data_list by MULTI_CNT
    splited_fastq_list = np.array_split(fastq_list, MULTI_CNT)
    print("platform.system() : ", SYSTEM_NM)
    print("total cpu_count : ", str(TOTAL_CPU))
    print("will use : ", str(MULTI_CNT))
    pool = mp.Pool(processes=MULTI_CNT)
    # result_list = pd.concat(pool.map(logic.get_multi_p_seq_from_FASTQ, splited_fastq_list))
    pool_list = pool.map(logic.get_list_multi_p_seq_from_FASTQ,
                         splited_fastq_list)
    result_list = []
    for tmp_list in pool_list:
        result_list.extend(tmp_list)

    util.make_list_to_excel(WORK_DIR + "result_multi_processing", result_list)
コード例 #31
0
ファイル: GUI.py プロジェクト: ashmoreinc/Othello-Game
    def Start_Game(self):  # Begin the game, run the updates needed.
        self.Game = lgc.Game(**self.GameParams)
        self.Game.Start_Game()

        # Update Game page
        self.Update_Game()
        self.Window.Pages["Game"].Update_Game_Type()
コード例 #32
0
ファイル: blitzkrieg.py プロジェクト: udiboy1209/Blitzkrieg
 def confirm_move(self):
     num = askinteger("Troops:", "Enter number of troops :", parent=self)
     if num == 0:
         showerror("Error", "Kuch to hila")
     else:
         result = None
         if self.selected.cannon:
             if askyesno("Move cannon?", parent=self):
                 result = Logic.move(self.selected, self.selected_2, num, True, 0, 0)
             else:
                 result = Logic.move(self.selected, self.selected_2, num, False, 0, 0)
         else:
             result = Logic.move(self.selected, self.selected_2, num, False, 0, 0)
         if result[0]:
             self.next_move()
         else:
             showerror("Error", result[1])
             self.selected_2 = None
             self.state = SELECT
     self.update_ui()
     self.update_menu()
コード例 #33
0
ファイル: blitzkrieg.py プロジェクト: udiboy1209/Blitzkrieg
    def update_ui(self):
        self.canvas.create_image(0, 0, anchor=tk.NW, image=self.BG)

        for n in Logic.network:
            self.canvas.create_image(n.x, n.y, anchor=tk.CENTER, image=self.NODE_IMG[n.rank])
            if n.occupant == PLAYER_AXIS:
                self.canvas.create_image(n.x, n.y - NODE_R[n.rank] - 5, anchor=tk.S, image=self.FLAG_AXIS)
            if n.occupant == PLAYER_ALLY:
                self.canvas.create_image(n.x, n.y - NODE_R[n.rank] - 5, anchor=tk.S, image=self.FLAG_ALLY)

            if n.cannon or n.cannon_time > -1:
                self.canvas.create_image(n.x - NODE_R[n.rank] - 5, n.y, anchor=tk.E, image=self.CANNON)
            if n.cannon_time > -1:
                self.canvas.create_text(
                    n.x - NODE_R[n.rank] - 5, n.y + NODE_R[n.rank] + 5, anchor=tk.NE, text=str(Logic.cannon_makers)
                )
            if n.fortress or n.fortress_time > -1:
                self.canvas.create_image(n.x + NODE_R[n.rank] + 5, n.y, anchor=tk.W, image=self.FORTRESS)
            if n.fortress_time > -1:
                self.canvas.create_text(
                    n.x + NODE_R[n.rank] + 5, n.y + NODE_R[n.rank] + 5, anchor=tk.NW, text=str(Logic.fortress_makers)
                )

            self.canvas.create_text(n.x, n.y + NODE_R[n.rank] + 5, anchor=tk.N, text=str(n.allowed))

            if self.selected is not None:
                self.canvas.create_oval(
                    self.selected.x - NODE_R[self.selected.rank] - 5,
                    self.selected.y - NODE_R[self.selected.rank] - 5,
                    self.selected.x + NODE_R[self.selected.rank] + 5,
                    self.selected.y + NODE_R[self.selected.rank] + 5,
                    width=3,
                    outline="#0000FF",
                )

                for n in Logic.adjacent_levels(self.selected):
                    self.canvas.create_line(self.selected.x, self.selected.y, n.x, n.y, arrow=tk.LAST, dash=(3, 3))

            if self.selected_2 is not None:
                self.canvas.create_oval(
                    self.selected_2.x - NODE_R[self.selected_2.rank] - 5,
                    self.selected_2.y - NODE_R[self.selected_2.rank] - 5,
                    self.selected_2.x + NODE_R[self.selected_2.rank] + 5,
                    self.selected_2.y + NODE_R[self.selected_2.rank] + 5,
                    width=3,
                    outline="#FF0000",
                )
コード例 #34
0
def eval(formula, v):
    '''
    Evaluate the formula with the given valuation
    '''
    if (hasattr(formula, "type")):  # houston we have a leaf
        if formula.type is Parse.typeConstBool:
            return formula.value
        elif formula.type is Parse.typeVar:
            return valuation(formula.value, v)
    else:  # operator
        token = formula[0]
        op_fun = Logic.get_op(token.value)

        if token.type is Parse.typeDual:
            left = formula[1]
            right = formula[2]
            return op_fun(eval(left, v), eval(right, v))
        elif token.type is Parse.typeSingle:
            return op_fun(eval(formula[1], v))
コード例 #35
0
ファイル: PixieMath2.py プロジェクト: TyOverby/PixelMath-Shim
for round in range(6*2):
    t0s, t1s = BattleFrame.getResults(round%2==0, game_master.team_arrays[0], game_master.team_arrays[1])

    game_master.team0[t0s].select(game_master)
    game_master.team1[t1s].select(game_master)

    game_master.battlepixie0[0].tween()
    game_master.battlepixie1[0].tween()

    game_master.animate_combat(abs(round%2-1))

    color0 = game_master.battlepixie0[0].get_color()
    color1 = game_master.battlepixie1[0].get_color()
    if(round%2==0):
        pts0 -= math.floor(Logic.getPoints(color0,color1)*50)
    else:
        pts1 -= math.floor(Logic.getPoints(color1,color0)*50)

    if pts0<=0 or pts1<=0:
        break

    game_master.apply_damage(1,pts1)
    game_master.apply_damage(0,pts0)
    game_master.draw_health()
    game_master.return_pixies()

    print "===Points==="
    print "Team 0 points: ", int(pts0)
    print "Team 1 points: ", int(pts1)
    print ""
コード例 #36
0
ファイル: blitzkrieg.py プロジェクト: udiboy1209/Blitzkrieg
 def mk_fortress(self):
     result = Logic.move(self.selected, None, 0, False, 0, 1)
     if result[0]:
         self.next_move()
     else:
         showerror("Error", result[1])
コード例 #37
0
ファイル: blitzkrieg.py プロジェクト: udiboy1209/Blitzkrieg
 def mk_cannon(self):
     result = Logic.move(self.selected, None, 0, False, 1, 0)
     if result[0]:
         self.next_move()
     else:
         showerror("Error", result[1])
コード例 #38
0
ファイル: PixieMath.py プロジェクト: TyOverby/PixelMath-Shim
game_master.draw_pixies(game_master.team1)

pts0 = 0
pts1 = 0

for round in range(6*2):
    t0s, t1s = BattleFrame.getResults(round%2==0, game_master.team_arrays[0], game_master.team_arrays[1])
    
    game_master.team0[t0s].select(game_master)
    game_master.team1[t1s].select(game_master)

    if round-1>=0:
        for i in range(0,round):
            game_master.battlepixie0[i].go_home()
            game_master.battlepixie1[i].go_home()

    game_master.battlepixie0[round].tween()
    game_master.battlepixie1[round].tween()

    color0 = game_master.battlepixie0[round].get_color()
    color1 = game_master.battlepixie1[round].get_color() 
    if(round%2==0):
        pts0 += math.floor(Logic.getPoints(color0,color1)*100)
    else:
        pts1 += math.floor(Logic.getPoints(color1,color0)*100)

    print "===Points==="
    print "Team 0 points: ", int(pts0)
    print "Team 1 points: ", int(pts1)
    print ""
コード例 #39
0
ファイル: MainLowLogic.py プロジェクト: Rovbau/Robina
count=1
speed=0
steer=0
timer=0
deltaL=0
deltaR=0
encoder=Encoder()
navigation=Navigation()
scanner=Scanner()
karte=Karte(encoder)
plan=Plan()
kreis=0
motor=Motor()
grid=Grid(50,50)
logic=Logic()
manuell=Manuell()
json=Json()
weggeber=Weggeber()

grid.setZielInGrid(35,20)
grid.setStartInGrid(1,1)
karte.setRoboPosZero(0,0)
plan.setGlobalZiel(150,0)

def cleaning():
    """Do cleanup at end, command are visVersa"""
    motor.setCommand(0,0)
atexit.register(cleaning)

#SCAN OFF 
コード例 #40
0
ファイル: Main.py プロジェクト: Ginko-san/Progra-Interprete
def menu():
    print("     SGL Simulator in Pyhton.\nMenu:")
    print(" 1. New File. \n 2. Compile. \n 3. Exit")
    opt = input("   Select: # ")

    while opt != "3":

        lista1 = []
        trad_list = []

        if opt == "1":
            file_name = input("File name: ")  # Lectura del nombre por asignar al archivo
            print("Type your code in SGL. Enter 'END' for finish")
            Logic.read_lines(lista1)  # Lextura de Lineas
            trad_list = Logic.loop_lines(lista1, Logic.var_type)  # comparacion con matrizes
            trad_list = Logic.loop_lines(trad_list, Logic.loop)
            trad_list = Logic.loop_lines(trad_list, Logic.function)
            trad_list = Logic.loop_lines(trad_list, Logic.conditional)
            Logic.new_file_py(file_name)  # Creacion de ARCHIVO
            Logic.save_data_file(trad_list, file_name)  # Ingreso de lineas de codigo en python al archivo

            # en prueba "Error de codigo"
            #if not Logic.compare_lists(trad_list, lista1):
            #    print("\n Error code online, incorrect or missing command syntax or operands!")

            opt = input("Finish...\nRequires to perform another operation? y/n:")  # Verifica si necesita realizar mas operaciones.
            if opt == "n":
                opt = "3"
            elif opt == "N":
                opt = "3"
            else:
                opt = "4"

        elif opt == "2":
            print("Put your file into ' generate_files ' folder and enter the name of the file to compile . ")
            try:
                file_name = input("File name: ")
                trad_list = Logic.open_compile(file_name)  # Lectura del nombre por asignar al archivo
                trad_list = Logic.loop_lines(trad_list, Logic.var_type)  # comparacion con matrizes
                trad_list = Logic.loop_lines(trad_list, Logic.loop)
                trad_list = Logic.loop_lines(trad_list, Logic.function)
                trad_list = Logic.loop_lines(trad_list, Logic.conditional)
                Logic.new_file_py(file_name)  # Creacion de ARCHIVO
                Logic.save_data_file(trad_list, file_name)  # Ingreso de lineas de codigo en python al archivo
                print("Successfully compiled file")
            except:
                print("\n", FileNotFoundError, "Check File's Name")
            opt = input("Finish...\nRequires to perform another operation? y/n:")  # Verifica si necesita realizar mas operaciones.
            if opt == "n":
                opt = "3"
            elif opt == "N":
                opt = "3"
            else:
                opt = "4"

        elif opt == "4":  # si la opcion fue 4 significa que desean seguir trabajando
            print("\n\n")
            print("     SGL Simulator in Pyhton.\nMenu:")
            print(" 1. New File. \n 2. Compile. \n 3. Exit")
            opt = input("   Select: # ")


        else:  # si digitan un digito fuera de las opciones lanza de nuevo el menu.
            print("Invalid option. Choose again.\n\n")
            print("     SGL Simulator in Pyhton.\nMenu:")
            print(" 1. New File. \n 2. Compile. \n 3. Exit")
            opt = input("   Select: # ")
コード例 #41
0
ファイル: Space.py プロジェクト: anst/space
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Space Invaders")

background = pygame.Surface((800, 600))
background.fill(background_color)

clock = pygame.time.Clock()

menu = Menu()

END_MUSIC_EVENT = pygame.USEREVENT + 0
pygame.mixer.music.set_endevent(END_MUSIC_EVENT)
sound = pygame.mixer.Sound("background.wav")
sound.play()

logic = Logic(pygame, screen)

ship = Ship(pygame, screen)
particle = Particle(pygame, screen,logic,0,0)

handler = EventHandler()

while clear():
  for event in pygame.event.get():
    if event.type == QUIT:
      sys.exit()
    elif event.type == pygame.KEYDOWN or event.type == pygame.KEYUP:
      handler.handle(event, pygame, screen, ship)
    elif event.type == END_MUSIC_EVENT and event.code == 0:
      sound.play()
  logic.hit_ship()