Salve a tutti, ho un problema con il mio programma. Premetto che sono una principiante, quindi il mio problema potrebbe risultare semplice.

Sto scrivendo un programma in python3 che ha come scopo quello di simulare un allineamento multiplo. Quello che ho fatto è stato creare due colonne di aminoacidi in maniera random e allinearli in modo da formare delle coppie. Ora, il mio esercizio richiede di sostituire ogni aminoacido della seconda colonna con un altro preso randomicamente tra quelli che hanno, con l'aminoacido precedente, la stessa distanza che compare tra i corrispondenti due aminoacidi della prima colonna.

Ho pensato di usare un dizionario, ma non so esattamente come fare.

 aminoacidi = ['A', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'Y']
    lenghtPairs = 5
    coppie = list(list())
    differenze = list()
    choice = list()

    for i in range(lenghtPairs):
        r1 = randrange(20)
        r2 = randrange(20)
        coppie.append([aminoacidi[r1], aminoacidi[r2]])

    for i in range(lenghtPairs + 1):
#definisci un dizionario che abbia come chiave esterna qualcosa che punti agli aa
        groupy = dict()
        if i == 1:
            a = randrange(20)
            b = randrange(20)
            coppie[0] = [aminoacidi[a], aminoacidi[b]]
        else:
#usa il dizionario per raggruppare in una variabile tutti gli aa che soddisfano la relazione disty=distx

            c = randrange(20)

        for left in range(lenghtPairs - 1):
                differenze = []

                for right in range(lenghtPairs - 1):
                    distx = ""
                    distxtot = ""
                    distaax = ""
                    disty = ""
                    distytot = ""
                    distaay = ""

#calcolo distanze per formula delle differenze
                    if left == right:
                       print (str(coppie[left])+ ',  '+str(coppie[right])+ ',  ' +str(0)+ ',  '+str(0))
                    else:

                        distx = distance(coppie[left][0], coppie[right][0])
                        disty = distx

                        distleftx = distance(coppie[left][0],coppie[left][0])
                        distrightx = distance(coppie[right][0],coppie[right][0])

                        distxtot = distx - 1/2*(distleftx + distrightx)

#prove uso dizionario
                    for i in (coppie[1]):
                        if disty == distx:
                            choice = groupy[str(i)]
                            d = randrange(choice)
                            coppie[i - 1] = [aminoacidi[c], aminoacidi[d]]
                            for coppia in coppie:
                                print(str(coppia))

                                print(i)

chiesto 09 Feb '15, 15:27

laura88's gravatar image

laura88
2023

modificato 09 Feb '15, 16:30

dadexix86's gravatar image

dadexix86 ♦♦
16.9k816161

La domanda è stata chiusa con il seguente motivo «Domanda già posta http://chiedi.ubuntu-it.org/questions/34595/come-usare-un-dizionario-per-scegliere-un-aminoacido-dopo-aver-impostato-determinate-condizioni» da dadexix86 09 Feb '15, 16:30

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×103

domanda posta: 09 Feb '15, 15:27

domanda visualizzata: 385 volte

ultimo aggiornamento: 09 Feb '15, 16:30

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.