2014-10-07 50 views
0

我試圖從泛素蛋白中提取氮配位。我有來自http://rcsb.org/pdb/home/home.do網站的1UBQ.pdb文件。我做了以下。Matlab:查詢pdb文件中的所有氮座標?

pdb1 ='/home/devanandt/Documents/VMD/1UBQ.pdb'; 
x=pdbread(pdb1) 
y=x.Model.Atom 

'y'變量給出1x602結構數組,其中包含許多字段,包括座標X,Y,Z。該蛋白質中有76個殘基,因此有76個氮。如何將(X,Y,Z)數據分別提取到數組中?

+0

「有很多領域」 - 可能這些領域之一是哪些座標是哪些原子的指標? – nkjt 2014-10-07 14:12:06

+0

是的,但我一直在尋找如何將X,Y,Z提取到數組。 – dexterdev 2014-10-07 15:10:06

回答

2

如果每個x.Model.Atom.X是單數(假定這是一個給定的原子X座標),則:

X = [x.Model.Atom.X]; 
%etc for each field 

應該返回你X的1x602矢量座標

在某些情況下,你可能想要返回所有字段值的單元陣列:

out = {x.Model.Atom.somefield} 
0

這就是我如何實現它的。

pdb1 ='/home/devanandt/Documents/VMD/1UBQ.pdb'; 
x=pdbread(pdb1); 

atom={x.Model.Atom.AtomName}; 
n_i=find(strcmp(atom,'N')); % Find indices of atoms 

X = [x.Model.Atom.X]; 
Y = [x.Model.Atom.Y]; 
Z = [x.Model.Atom.Z]; 

X_n = X(n_i); % X Y Z coordinates of N atoms 
Y_n = Y(n_i); 
Z_n = Z(n_i);