오케이. 먼저 내가 먼저 설명해 줄게. 이 코드에서 Biopython
이라는 특정 모듈을 사용했습니다. 모듈에 익숙하지 않은 경우 문제를 해결하는 데 필요한 세부 정보를 설명하고 있습니다.Biopython 배열 추가 오류 (모두 열림)
코드는 다음과 같습니다
#!/usr/bin/python
from Bio.PDB.PDBParser import PDBParser
import numpy as np
parser=PDBParser(PERMISSIVE=1)
structure_id="mode_7"
filename="mode_7.pdb"
structure=parser.get_structure(structure_id, filename)
model1=structure[0]
s=(124,3)
newc=np.zeros(s,dtype=np.float32)
coord=[]
#for chain1 in model1.get_list():
# for residue1 in chain1.get_list():
# ca1=residue1["CA"]
# coord1=ca1.get_coord()
# newc.append(coord1)
for i in range(0,29):
model=structure[i]
for chain in model.get_list():
for residue in chain.get_list():
ca=residue["CA"]
coord.append(ca.get_coord())
newc=np.add(newc,coord)
print newc
print "END"
PDB 파일 단백질 데이터 뱅크 파일입니다. 당신은 루프에 대한 첫 번째에서 해시를 제거하면 내가 함께 일하고 있어요 파일이 https://drive.google.com/open?id=0B8oUhqYoEX6YVFJBTGlNZGNBdlk
에서 다운로드 할 수 있습니다, 당신은 get_coord()
이 DTYPE float32
와 (124,3)
배열을 반환하도록 찾을 수 있습니다. 마찬가지로 다음 for 루프도 같은 루프를 반환합니다.
그것은 이상한 오류를 준다 :
Traceback (most recent call last):
File "./average.py", line 27, in <module>
newc=np.add(newc,coord)
ValueError: operands could not be broadcast together with shapes (124,3) (248,3)
나는 그것이 248,3
배열을 만들어 관리하는 방법을 절대적으로 우둔입니다. 배열 coord를 추가하고 싶습니다. 나는 코드의 또 다른 수정을 시도했다.
#!/usr/bin/python
from Bio.PDB.PDBParser import PDBParser
import numpy as np
parser=PDBParser(PERMISSIVE=1)
structure_id="mode_7"
filename="mode_7.pdb"
structure=parser.get_structure(structure_id, filename)
model1=structure[0]
s=(124,3)
newc=np.zeros(s,dtype=np.float32)
coord=[]
newc2=[]
#for chain1 in model1.get_list():
# for residue1 in chain1.get_list():
# ca1=residue1["CA"]
# coord1=ca1.get_coord()
# newc.append(coord1)
for i in range(0,29):
model=structure[i]
for chain in model.get_list():
for residue in chain.get_list():
ca=residue["CA"]
coord.append(ca.get_coord())
newc2=np.add(newc,coord)
print newc
print "END"
같은 오류가 나온다. 도울 수 있니???
매번 배열을 초기화해야합니까? –
나는 내 대답에 해당 줄을 넣어. 'for' 루프의 시작 부분에'coords = []'를 추가하십시오. – themiurge
감사 ... 문제가 해결되었습니다 ... –