So Berechnen Sie den Schwerpunkt in python
Ich bin Anfänger in python Programmieren. Ich arbeite über strukturelle Koordinaten. Ich habe die pdb-Struktur, die xyz-Koordinaten (die letzten drei col)
ATOM 1 N SER A 1 27.130 7.770 34.390
ATOM 2 1H SER A 1 27.990 7.760 34.930
ATOM 3 2H SER A 1 27.160 6.960 33.790
ATOM 4 3H SER A 1 27.170 8.580 33.790
ATOM 5 CA SER A 1 25.940 7.780 35.250
ATOM 6 CB SER A 1 25.980 9.090 36.020
ATOM 7 OG SER A 1 26.740 10.100 35.320
ATOM 8 HG SER A 1 26.750 10.940 35.860
ATOM 9 C SER A 1 24.640 7.790 34.460
ATOM 10 O SER A 1 24.530 8.510 33.500
ATOM 11 N CYS A 2 23.590 7.070 34.760
ATOM 12 H CYS A 2 23.590 6.550 35.610
ATOM 13 CA CYS A 2 22.420 7.010 33.900
ATOM 14 CB CYS A 2 21.620 5.760 34.270
ATOM 15 SG CYS A 2 22.480 4.210 33.970
ATOM 16 C CYS A 2 21.590 8.220 34.040
ATOM 17 O CYS A 2 21.370 8.690 35.160
- Ich habe 1000 Atomen in meiner Struktur.
- Ich habe zwei Abfragen.
Wie kann ich berechnen Sie den Schwerpunkt von der Struktur von xyz-Koordinaten.
Vom Schwerpunkt möchte ich zum zeichnen einer Kugel mit radius 20cm.
I try this
from __future__ import division
import math as mean
import numpy as nx
from string import*
infile = open('file.pdb', 'r') #open my file
text1 = infile.read().split('\n')
infile.close()
text = []
for i in text1:
if i != '':
text.append(i)
for j in text:
x1 = eval(replace(j[30:38], ' ', '')) #extract x-coordinate
y1 = eval(replace(j[38:46], ' ', '')) #extract y-coordinate
z1 = eval(replace(j[46:54], ' ', '')) #extract z-coordinate
idcord = []
idcord.append(x1); idcord.append(y1); idcord.append(z1)
centroid = nx.mean(idcord)
print centroid
gibt es den Schwerpunkt jedes atom (xyz)
ich brauche ein zentraler Punkt
wie??????
Bitte zeigen, was du versucht hast und dass Sie mindestens blickte Schwerpunkt auf wikipedia.
Sagen Sie, dass die Berechnung der "Schwerpunkt" ist nur der Durchschnitt der X -, Y-und Z-Koordinaten? Oder tun die Punkte haben in der Masse als auch?
ja, Sie haben Masse sowie
Sagen Sie, dass die Berechnung der "Schwerpunkt" ist nur der Durchschnitt der X -, Y-und Z-Koordinaten? Oder tun die Punkte haben in der Masse als auch?
ja, Sie haben Masse sowie
InformationsquelleAutor awanit | 2013-09-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst ein einfacher Weg, um Lesen Sie Ihre Datei mit numpy ist
genfromtxt
Funktion. Sie brauchen nicht zu importieren string, und Sie brauchen nicht, um eine Schleife durch alle Zeilen und anfügen von text-oder zählen Sie die Zeichen.Dann, in den letzten drei Spalten kann auch Sie zugegriffen werden wie:
Wo die ersten
:
bedeutet "alle Zeilen", und-3:
Mittel aus der Dritten-der letzten Spalte der letzten Spalte.So, Sie im Durchschnitt können Sie als solche:
wo die
axis=0
argument sagtnx.mean
auf den Durchschnitt entlang der ersten (0th
- Achse). Es sieht wie folgt aus:Einige andere Dinge:
1) entfernen Sie diese Zeile:
import math as mean
, denen die Einfuhr der gesamtenmath
Modul und benennt esmean
. Was Sie gedacht warfrom math import mean
die Einfuhren dermean
Funktion aus dermath
Modul. Aber in Ihrem code, den Sie am Ende mit dermath
Funktion aus dernumpy
(nx
) Modul sowieso, so dass Sie nie diemath
version.2) dein loop ist nicht eingerückt, was bedeutet, dass Sie entweder falsch eingefügt in StackOverflow, oder deine Schleife ist falsch eingerückt. Möglicherweise, das ist, was dein code tatsächlich aussieht:
Aber das problem ist, dass
idcord
wird eine leere Liste jeder, wenn die Schleife durchläuft, und ein neuer Schwerpunkt berechnet wird, für jedes Partikel. Sie brauchen noch nicht einmal den loop, wenn Sie die Daten importieren-Datei alle auf einmal, wie oben. In der Tat, Ihre gesamten code:Sie sind herzlich willkommen! Das beste, was zu tun ist weiterhin auf der Suche/Fragen auf Stack-Overflow, um sicherzustellen, dass Sie die Dinge auf die beste Art und Weise. Für die numerische Dinge, Lesen Sie diese numpy tutorial.
InformationsquelleAutor askewchan
versuchen, diese
dies zu tun, jedes atom einzeln, wenn du diese in einer Schleife. Wenn Sie es tun, auf alle Atome zusammen, es wird Ihnen die Summe zu bedeuten, was da eine single-float (einschließlich den Mittelwert der x -, y-und z-Werte).
InformationsquelleAutor lsb123