Hi Kevin,
Those arguments are “surface pieces”.  Each molecular surface has only one “piece” (despite possibly looking like multiple disjoint pieces).  Once you run the “surface” command (generating two molecular surfaces) you can get the p1/p2 arguments with this code fragment:

p1, p2 = [s.surface_piece for s in openModels.list(modelTypes=[MSMSModel])]

Both openModels and MSMSModel are in the “chimera” module, but since your code does a “from chimera import *” you can get away with just the above.

—Eric

Eric Pettersen
UCSF Computer Graphics Lab

On Aug 27, 2019, at 1:03 PM, Kevin Wang <kevinkw.wang@mail.utoronto.ca> wrote:

Hi,

I am writing a python script to find the area between 2 proteins using the contact_area python command below.

def contact_area(p1, p2, d, color = None, offset = None, slab = None,
                 smooth = False, optimize = True):

Is there a specific object for p1 and p2 and if so how do I get it?

My current code is as follows:

import os
import chimera
from Measure import contactarea
from chimera import *

Path = "/Users/kevinwang/desktop/VEGFR_NO_LIGAND/results/clustering/pdbfit/split"

filelist = os.listdir(Path)
for x in filelist:
    #if x.startswith("trp.pdb."):
    if (x == "trp.pdb.00001"):
        print x
        opened = chimera.openModels.open(x, type ="PDB")
        runCommand('surface')
        y = contactarea.contact_area('0.1', '0.2', 2.5)
        text_file = open("buriedArea.txt", "w")
        text_file.write(y)
        text_file.close()

The error message I am getting is as follows:

AttributeError: 'str' object has no attribute 'geometry'

  File "/Applications/Chimera.app/Contents/Resources/share/Measure/contactarea.py", line 8, in contact_area
    v1, t1 = p1.geometry

How should I be passing in my arguments?

Best,
Kevin
_______________________________________________
Chimera-users mailing list: Chimera-users@cgl.ucsf.edu
Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users