next up previous contents
Nächste Seite: Berechnung der Bindungen Aufwärts: Implementierung Vorherige Seite: Die Klasse PDBHandler   Inhalt


Speicherung der Atome zur Bindungsberechnung

Bevor man die Bindungen eines Proteins berechnen kann, müssen zuvor die Daten jedes Atoms bekannt sein. Die Daten eines Atoms wurden in der Methode atom() in einem Atom-Objekt gespeichert. Diese Objekte wurden anschließend mit der Methode storeAtom() in einem Objekt der Klasse ResidueContainer abgelegt. Die einzelnen Atom-Objekte werden jedoch nicht direkt in dem Objekt verwaltet. Es enthält Residue-Objekte, die dann die Atom-Objekte enthalten. Jedes Residue-Objekt beinhaltet dabei die Atome einer Aminosäure. Sowohl die Klasse Residue als auch die Klasse ResidueContainer stammen von der Klasse Vector ab. Die Methode storeAtom() ist im Quellcode 6.8 abgebildet. Wird das erste Atom eines Proteins gespeichert, wird ein neues Residue-Objekt erzeugt, in dem es dann abgelegt wird. Sind bereits Residue-Objekte im Container vorhanden, wird die ResId des letzten Atoms des letzten Residue-Objektes mit der des aktuellen Atoms verglichen. Sind beide identisch, wird das Atom im selben Residue-Objekt gespeichert. Andernfalls wird ein neues Objekt erzeugt, in dem es dann abgelegt wird. Dieses Objekt wird anschließend in den Container eingefügt.

Speichern eines Atom-Objekts
public void storeAtom(Atom atom) {
    // leeres Objekt
    if (isEmpty()) {
        // neues Residue wird angelegt, in Container
        // eingefuegt und Atom darin gespeichert
        Residue residue = new Residue();
        residue.add(atom);
        add(residue);
    }
    // mindestens ein Residue im Container
    else {
        // letztes Residue des Containers
        Residue residue = (Residue) lastElement();
        // letztes Atom des Residue
        Atom temp = (Atom) residue.lastElement();
        // wenn gleiche ResId, Atom im selben Residue ablegen
        // sonst neues Residue-Objekt anlegen
        if (atom.getResId().equals(temp.getResId())) 
            residue.add(atom);
        else {
            residue = new Residue();
            residue.add(atom);
            add(residue);
        }
    }
}


next up previous contents
Nächste Seite: Berechnung der Bindungen Aufwärts: Implementierung Vorherige Seite: Die Klasse PDBHandler   Inhalt
Oliver Krone 2003-04-28