From: Jason V. <jas...@sc...> - 2012-05-01 12:27:56
|
Hi Anasuya, As you choose your zones just check for overlaps in selections. It might look something like this: # good zones good_zones = set() # some sampler you choose, just returns an array of atom selections zones = get_zones() for x in range(len(zones)): for y in range(x+1,len(zones)): if cmd.count_atoms("%s and %s" % y, x) != 0: print "Msg: Ignoring zone %s as it overlaps with zone %s" % (y,z) else: good_zones.add(y) print "Good zones for this protein: " print good_zones Cheers, -- Jason P.S. I bet Tsjerk has a few cool ideas on this. On Tue, May 1, 2012 at 4:29 AM, Anasuya Dighe <an...@mb...> wrote: > Hi, > I have around 18000 ligand-bound PDB's. I have as of now, extracted zones of > amino acid residues (say ZONE-1) which are within a radius of 4.5A from the > ligand, for each of the (18000) ligand-bound PDBs with me. > How do I now go about generating, similar RANDOM zones of amino acid residues > occurring over a radius 4.5A, across the protein structure, such that they don't > overlap with each other and ALSO the original ZONE-1 corresponding to that > PDBID? > Lets say, for each of the 18000 PDBIDs that I have, I want to create 5 such > distinct 'dummy' zones of radius 4.5A, with the condition that they dont overlap > with each other and also with my earlier ZONE1. > > In simpler terms: > (Original PDB ID)1abc.pdb, > (Zone1 corresponding to 1abc.pdb) 1abc_ZONE1.pdb, > (Five dummy zone1's extracted for the same pdb such that they are not > overlapping with my earlier Zone1 AND WITH EACH OTHER) 1abc_z1_dummy1.pdb, > 1abc_z1_dummy2.pdb, 1abc_z1_dummy3.pdb, 1abc_z1_dummy4.pdb, 1abc_z1_dummy5.pdb > > How do I modify this existing python script, so that I can generate these dummy > zone1 pdb's? > { Given I have file_1.txt containing a list of PDBid's, LIgand name, its chain > ID and resi number. } > > from pymol import cmd > def process_line(x): > pdbid,res,chain,num = x.split() > cmd.load(pdbid) > cmd.select("zone1","byres all within 4.5 of (chain %s and resn %s and resi %s > and not resn HOH)"%(chain,res,num)) > cmd.save("%s-%s-%s-%s-zone1.pdb"%(pdbid,res,chain,num),"zone1") > cmd.delete(pdbid) > > def process_all(filename): > for line in open(filename): > process_line(line) > > process_all("file_1.txt") > > Thanks. > > > -- > This message has been scanned for viruses and > dangerous content by MailScanner, and is > believed to be clean. > > > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... -- Jason Vertrees, PhD PyMOL Product Manager Schrödinger, LLC (e) Jas...@sc... (o) +1 (603) 374-7120 |