Topic: [wxPython]Aminoacid Sequence Analyzer  (Letto 1024 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Beppe

  • python sapiens
  • *****
  • Post: 672
  • Punti reputazione: 0
    • Mostra profilo
[wxPython]Aminoacid Sequence Analyzer
« il: Agosto 09, 2007, 22:18 »
Ciao raga...
ho inserito nella sezione Progetti Software un mio nuovo ordigno  :thinking:
COme al solito graditi commenti e suggerimenti. ;)

EDIT: Il progetto si trova qui : http://www.python-it.org/node/74 ;)
« Ultima modifica: Agosto 09, 2007, 23:25 da Markon »

Offline Markon

  • python sapiens sapiens
  • *
  • moderatore
  • Post: 4.104
  • Punti reputazione: 5
    • Mostra profilo
    • Neolithic
Re: [wxPython]Aminoacid Sequence Analyzer
« Risposta #1 il: Agosto 09, 2007, 23:26 »
Davvero interessante.
Sai tempo fa pensai a un programmino che calcola le formule chimiche, però lo lasciai da parte non so perchè.. Dici che sarebbe difficile?
:-)

Offline manzo

  • python neanderthalensis
  • *
  • moderatore
  • Post: 478
  • Punti reputazione: 1
    • Mostra profilo
Re: [wxPython]Aminoacid Sequence Analyzer
« Risposta #2 il: Agosto 10, 2007, 08:50 »
poco tempo fa ho visto un esempietto di pyparsing da cui potresti prendere spunto:

http://www.onlamp.com/pub/a/python/2006/01/26/pyparsing.html?page=3

in pratica inserisci una formula chimica (tipo C6H5OH) e lui ti calcola il peso atomico (94.11124)

from pyparsing import Word, Optional, OneOrMore, Group, ParseException

atomicWeight = {
    "O"  : 15.9994,
    "H"  : 1.00794,
    "Na" : 22.9897,
    "Cl" : 35.4527,
    "C"  : 12.0107
    }
   
caps = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
lowers = caps.lower()
digits = "0123456789"

element = Word( caps, lowers )
elementRef = Group( element + Optional( Word( digits ), default="1" ) )
formula = OneOrMore( elementRef )

tests = [ "H2O", "C6H5OH", "NaCl" ]
for t in tests:
    try:
        results = formula.parseString( t )
        print t,"->", results,
    except ParseException, pe:
        print pe
    else:
        wt = sum( [atomicWeight[elem]*int(qty) for elem,qty in results] )
        print "(%.3f)" % wt

========================
H2O -> [['H', '2'], ['O', '1']] (18.015)
C6H5OH -> [['C', '6'], ['H', '5'], ['O', '1'], ['H', '1']] (94.111)
NaCl -> [['Na', '1'], ['Cl', '1']] (58.442)
« Ultima modifica: Agosto 10, 2007, 09:32 da manzo »

Offline Beppe

  • python sapiens
  • *****
  • Post: 672
  • Punti reputazione: 0
    • Mostra profilo
Re: [wxPython]Aminoacid Sequence Analyzer
« Risposta #3 il: Agosto 10, 2007, 20:02 »
Ho aggiornato il programma.
Adesso nella frame principale (asa.py) trovate un pulsante chiamato Aminoacidi.
Alla pressione di questo viene aperta una frame che mostra i dati principali dei 20 aminoacidi in una wx.ListControl (presa para para da wxPython in action).Se selezionate una riga e premete il pulsante edit  vengono mostrati ulteriori dati chimici degli aminoacidi in un'altra frame.
Ho usato per i dati un database in SQLite 3 ed in generale il programma può essere utile per mostrare come si 'portano a video' i dati di un database su wxPython.
Vorrei continuare a sviluppare questo mostro aggiungendo una frame  che mostri delle immagini delle formule degli aminoacidi.Infatti nel database c'è già un campo con il nome dell'immagine del relativo  aminoacido.Le immagini sono .gif, vedremo...
Vorrei anche aggiungere la decodifica di una stringa che rappresenti una sequenza di aminoacidi in lettere in codoni cioè triplette di DNA...quanto è fico sto Python! ;)

Offline Beppe

  • python sapiens
  • *****
  • Post: 672
  • Punti reputazione: 0
    • Mostra profilo
Re: [wxPython]Aminoacid Sequence Analyzer
« Risposta #4 il: Agosto 10, 2007, 20:07 »
Sai tempo fa pensai a un programmino che calcola le formule chimiche, però lo lasciai da parte non so perchè.. Dici che sarebbe difficile?
:-)

Beh non è uno scherzo...ancora tremo al ricordo dell'eame di Chimica Organica :embarrassed:
Però ho visto qualcosa di simile sul web, quindi è possibile  ;)
Potremmo partire con gli alcani,alcheni,alchini...ma mi devo andare a rivedere la nomenclatura.