Thank you, Charles. I will try that and get back if any other
questions will arise.

Vitaly

On Sat, Mar 3, 2012 at 09:39, Charles Schwieters <char...@schwieters.org> wrote:
>
> Hello Vitaly--
>
>>
>> I am assembling a structure of a homopentamer using XPLOR-NIH. There
>> are several ambiguous distance restraints that I would like to
>> implement, but I am not sure if it is possible to group the
>> restraints using "and" and "or" logic. As an example, suppose there
>> is a residue "B" in one monomer that has an NOE contact with either
>> residue "A" or residue "C" of an adjacent monomer. I would like a
>> statement something among the lines of:
>>
>> assign [((MON1 B) (MON2 A)) AND ((MON2 B) (MON3 A)) AND ... ] OR
>> [((MON1 B) (MON2 C)) AND ((MON2 B) (MON3 C)) AND ... ]
>>
>> Is this something that can be done? Or do I have to specify this for
>> only one protomer and the symmetry restraints will take care of the
>> rest?
>
> You could write a separate table for each subunit, or you can use a
> single segid-less table and specify the nMono parameter using the
> pot.setNMono(5)
> accessor.
>
> Of course symmetry restraints should be used as well. In your case
> these are ``ncs'' and distance symmetry. These should look something
> like:
>
> from selectTools import getSegsResidues
> segsResidues=getSegsResidues("name CA")
> segids=sorted(segidsResidues.keys())
> resids=segidsResidues[segids[0]]
>
> from posDiffPotTools import create_PosDiffPot
> ncs = PotList('ncs')
> for (i,a) in enumerate(AtomSel("(not segid A) and resid %d" % resids[0])):
>    segid=a.segmentName()
>    ncs.append( create_PosDiffPot('ncs%d'%i,
>                                  "segid A",
>                                  "segid %s" % segid) )
>    pass
> ncs.setScale(50)
> potList.append(ncs)
>
>
> from distSymmTools import create_DistSymmPot, genPolyRestraints
> dSymm = create_DistSymmPot('dSymm)
> for (i,a) in enumerate(segids):
>    j= (i+1) % len(segids)
>    K= (i+2) % len(segids)
>    dSymm.addRestraints(
>      genPolyRestraints(resids=range(resids[0],resids[:-1]+1,5),
>                        segids=(segids[i],segids[j],segids[k])))
>    pass
> dSymm.setScale(50)
> potList.append(dSymm)
>
> best regards--
> Charles
>
>
>
> --
> Charles Schwieters     email:   char...@schwieters.org
>                       www:     http://schwieters.org/cds
> phone: (301) 402-4914  PGP key: http://schwieters.org/cds/pgp.txt
>
>

_______________________________________________
Xplor-nih mailing list
Xplor-nih@nmr.cit.nih.gov
http://dcb.cit.nih.gov/mailman/listinfo/xplor-nih

Reply via email to