Am Dienstag, 3. Mai 2005 22:42 schrieb Konrad Rosenbaum:
On Tuesday 03 May 2005 20:37, Uwe Beger wrote:
Am 03.05.2005 um 19:25 schrieb Konrad Rosenbaum:
Aber was sind eigentlich die Regeln hinter Deiner Ergebnisliste?
Irgendwo auf Wikipedia habe ich was von einer "Sprache" gelesen, die solche Formeln eindeutig abbildet - es gibt damit nur noch wenige Möglichkeiten Duplikate zu erzeugen (die Regeln der Sprache legen z.B. fest wo man an einem Ring anfängt zu zählen).
http://en.wikipedia.org/wiki/Simplified_molecular_input_line_entry_specific ation
Ich würde also als erstes mal alle Formeln in diese Form giessen und dann entweder ein vorhandenes Produkt darauf ansetzen oder in Perl/whatever die verbliebenen Regeln abbilden (der aufwändigste Teil wird wohl sein alle Permutationen einer Formel zu generieren). Du brauchst auf jeden Fall sehr fortgeschrittenes String-Parsing, also ist Perl nicht die falscheste Wahl.
Zum Glück sind meine ID's "nur" wirklich einfache Strings und keine SMILES-Daten. Die Strukturgleichheit ermittle ich mit einer proprietären Chemiedatenbank. Die Listen stellen also schon das Ergebnis dar. x=z, x=y sind bereits bekannt und dann, nach Import weiterer x-tausend Strukturen in die große Chemiedatenbank, x=a. a wurde neu importiert und hat sich als Duplikat zu x und damit logischerweise auch zu y und z erwiesen. x, y, z und a verkörpern keine Summenformeln, sondern unique ID's.
...den Rest überlasse dem Diplomanten als Beschäftigung für den Rest des Semesters... ;-)
Das waren noch Zeiten, als ich Diplomand war *g*. Aber jetzt is' auch schön.