def exercicio5A():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio5()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha]
            IndiceL = list()
            Nuc = list()

            for ind, val in enumerate(Interface.List.ListaSeq[escolha]):
                IndiceL.append(ind)
                Nuc.append(val)

            plt.scatter(IndiceL, Nuc)
            plt.xticks(IndiceL)
            plt.title(f'Sequência {Interface.List.ListaSeq[escolha]}')
            plt.xlabel('Indice da sequencia')
            plt.ylabel('Nucleotido')
            plt.show()

            return exercicio5()

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
def exercicio3A():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio3()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha]
            while True:
                try:
                    Eliminar = int(
                        input(
                            f'{Interface.List.ListaSeq[escolha]} - Escolha a posição do elemento que quer remover'
                        ))
                    assert Eliminar > 0, 'Indice invalido'
                    erase = list(Interface.List.ListaSeq[escolha])
                    erase[Eliminar - 1] = '-'
                    erase = ''.join(erase)
                    Interface.List.ListaSeq[escolha] = erase
                    return exercicio3()
                except (ValueError, IndexError, AssertionError):
                    print('Escolha uma posição válida')

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
def exercicio3B():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio3()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha]
            while True:
                try:
                    Adicionar = int(
                        input(
                            f'{Interface.List.ListaSeq[escolha]} - Escolha a posição do elemento que para adicionar'
                        ))
                    assert Adicionar > 0, 'Indice invalido'
                    add = list(Interface.List.ListaSeq[escolha])
                    add.insert(Adicionar - 1, '-')
                    add = ''.join(add)
                    Interface.List.ListaSeq[escolha] = add
                    return exercicio3()
                except (ValueError, IndexError, AssertionError):
                    print('Escolha uma posição válida')

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
def exercicio3D():
    ver = Modulos.Verlista()
    if ver == False or len(Interface.List.ListaSeq) <= 1:
        return exercicio3()

    Modulos.Contagem()

    while True:
        try:
            escolha1 = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha1]
            escolha2 = int(
                input(
                    'Escolha outro indice valido da lista que seja diferente do primeiro:'
                ))
            Interface.List.ListaSeq[escolha2]

            alignment = pairwise2.align.globalxx(
                Interface.List.ListaSeq[escolha1],
                Interface.List.ListaSeq[escolha2])
            for a in alignment:
                print(format_alignment(*a))
            return exercicio3()

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
def exercicio3E():
    ver = Modulos.Verlista()
    if ver == False or len(Interface.List.ListaSeq) <= 1:
        return exercicio3()

    Modulos.Contagem()

    while True:
        try:
            escolha1 = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha1]
            escolha2 = int(
                input(
                    'Escolha outro indice valido da lista que seja diferente do primeiro:'
                ))
            Interface.List.ListaSeq[escolha2]

            alignment = pairwise2.align.globalxx(
                Interface.List.ListaSeq[escolha1],
                Interface.List.ListaSeq[escolha2])

            for ali in alignment:
                Interface.List.ListaAlinha.append(ali[0:2])

            print(
                f'Para este caso temos {len(Interface.List.ListaAlinha)} combinações para as sequências {Interface.List.ListaSeq[escolha1]} e {Interface.List.ListaSeq[escolha2]} que são'
            )
            for i, v in enumerate(Interface.List.ListaAlinha):
                print(f'Combinação {i+1}: {v}')
            return exercicio3()

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
Exemple #6
0
def exercicio2A():
    escolha = str(
        input('''Quer introduzir uma sequência
    1 - Manual
    2 - Aleatória
    '''))

    if escolha == '1':
        seq = Modulos.CriarSeq(1)
    elif escolha == '2':
        seq = Modulos.CriarSeq(2)
    else:
        print('Escolheu uma opção inválida')
        return exercicio2()

    if len(Interface.List.ListaSeq) > 0:
        Modulos.Contagem()
        while True:
            try:
                opcao = int(input('Escolha um indice válido:'))
                Interface.List.ListaSeq.insert(opcao, seq)
                return exercicio2()

            except ValueError:
                print('Indice inválido, escolha um indice valido')

    else:
        print('A lista ainda não tem elementos.')
        Interface.List.ListaSeq.insert(0, seq)
        return exercicio2()
def exercicio1F():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio1()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(
                input(
                    'Escolha um indice valido para mostrar o número de nucleotidos na sequencia:'
                ))
            analise = Interface.List.ListaSeq[escolha]

            complementar = ''
            for letra in analise:
                if letra == "A":
                    complementar += "T"
                elif letra == "T":
                    complementar += "A"
                elif letra == "G":
                    complementar += "C"
                elif letra == "C":
                    complementar += "G"
                else:
                    complementar += '-'
            print(complementar)
            return exercicio1()

        except (ValueError, IndexError):
            print('Escolhe um indice invalido, escolha um válido')
def exercicio1E():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio1()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(
                input(
                    'Escolha um indice valido para mostrar o número de nucleotidos na sequencia:'
                ))
            analise = Interface.List.ListaSeq[escolha]

            localizar = str(
                input(
                    'Escolha uma base ou sub-sequencia para mostrar a sua frequencia relativa:'
                )).upper()
            ocorrencias = analise.count(localizar)
            print(f'Numero total {ocorrencias}')
            print(
                f'A sua percentagem relativa é {((len(localizar)*ocorrencias) / len(analise)) * 100:.2f}%'
            )
            return exercicio1()

        except (ValueError, IndexError):
            print('Indice invalido, escolha um válido')
Exemple #9
0
def exercicio2B():
    if len(Interface.List.ListaSeq) < 0:
        print('Não existem sequências')
        return exercicio2()

    Modulos.Contagem()

    while True:
        try:
            opcao = int(
                input('Escolha um indice válido para remover uma sequencia:'))
            del (Interface.List.ListaSeq[opcao])
            return exercicio2()

        except (ValueError, IndexError):
            print('Indice inválido, escolha um indice valido')
def exercicio1D():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio1()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(
                input(
                    'Escolha um indice valido para mostrar o número de nucleotidos na sequencia:'
                ))
            analise = Interface.List.ListaSeq[escolha]

            listaIndice = list()
            ocorrencias = 0
            localizar = str(
                input('Digite uma base ou uma subsequencia que seja procurada:'
                      )).upper()
            for i, v in enumerate(analise):
                a = i
                trace = ""
                try:
                    while len(trace) - 1 < len(localizar) - 1:
                        trace += analise[a]
                        a += 1
                    if localizar == trace:
                        listaIndice.append(i)
                        ocorrencias += 1

                except IndexError:
                    print("pelo except")

            if ocorrencias == 0:
                print('Não foram encontradas ocorrencias')
            else:
                print(listaIndice)
                print(ocorrencias)
                print("pelo normal")
            return exercicio1()

        except (ValueError, IndexError):
            print('Indice invalido, escolha um válido')
def exercicio1C():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio1()

    Modulos.Contagem()

    while True:
        try:
            escolha = int(
                input(
                    'Escolha um indice valido para mostrar o número de nucleotidos na sequencia:'
                ))

            print(
                f'A sequencia {Interface.List.ListaSeq[escolha]} tem {len(Interface.List.ListaSeq[escolha])} nucleotidos'
            )
            return exercicio1()
        except (ValueError, IndexError):
            print('Indice Invalido, escolha  um válido')
def exercicio3C():
    ver = Modulos.Verlista()
    if ver == False:
        return exercicio3()

    comparar = 0
    for ind, v1 in enumerate(Interface.List.ListaSeq):
        listaComp = Interface.List.ListaSeq.copy()
        del (listaComp[ind])
        for v2 in listaComp:
            if len(v1) == len(v2):
                comparar += 1

    if comparar <= 0:
        print('Não é possivel fazer a distância usando a lista atual')
        return exercicio3()

    Modulos.Contagem()

    while True:
        try:
            escolha1 = int(input('Escolha um indice valido da lista:'))
            Interface.List.ListaSeq[escolha1]
            escolha2 = int(
                input(
                    'Escolha outro indice valido da lista que seja diferente do primeiro:'
                ))
            Interface.List.ListaSeq[escolha2]
            assert escolha1 != escolha2, 'Não podem ser indices iguais'
            assert len(Interface.List.ListaSeq[escolha1]) == len(
                Interface.List.ListaSeq[escolha2]
            ), 'Não podem ter tamanhos diferentes'

            dif = Modulos.hamdist(Interface.List.ListaSeq[escolha1],
                                  Interface.List.ListaSeq[escolha2])
            print(f'Existem {dif} diferenças')
            return exercicio3()

        except (ValueError, IndexError, AssertionError):
            print('Escolhe um indice invalido, escolha um válido')