簡體   English   中英

Vpython訪問object從pdb蛋白文件加載

[英]Vpython accessing object loaded from pdb protein file

使用 this.cif 文件:

https://files.rcsb.org/download/1MSC.cif並解析為https://pypi.org/project/pdbx-mmcif/

使用在 python3 中使用 Vpython 7.6.1 的代碼 (main.py):

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Nov  11 17:40:03 2020

@author: Pietro

"""
import sys
from pdbx.reader.PdbxReader import PdbxReader

import time

from vpython import *


scene = canvas(title='Examples of Tetrahedrons',
     width=800, height=800,
     center=vector(0,0,0), background=color.black)

openz = open('./1msc.cif')

pRd = PdbxReader(openz)

data = []

pRd.read(data)

block = data[0]

atomsite = block.getObj("atom_site")

i=0
while True:
        atom =  atomsite.getValue("group_PDB",i)
        atomid = atomsite.getValue('label_atom_id',i)
        if atom =='ATOM':
            if atomid == 'CA':
                    aa = sphere(pos=vector(float(atomsite.getValue('Cartn_x',i)),float(atomsite.getValue('Cartn_y',i)),
                                           float(atomsite.getValue('Cartn_z',i))),radius=0.5)  
    
            i +=1
    
        else:
        
            break
      
print('fine')          

我可以將空間中的 CA 原子顯示為球體。 我缺少的是如何訪問由 vpython 創建的單球體(我理解的對象),以便能夠應用類似的東西

sphere-object-number-1.color = color.red

sphere-object-number-1.color = color.blue

顯然不在我為顯示所有球體而創建的同一個循環中? 請善待我不是 Python 專家。

一個標准的方法是創建一個列表 atoms = [] 並在創建球體時將其添加到列表中,如 atoms.append(sphere(.....))。 然后用 atoms[n] 訪問第 n 個球體,其中 n 從 0 到 atoms.length-1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM