Topic Options
#37191 - 11/20/18 02:33 PM Setting up Disulfide Bonds Automatically
Antoniel Gomes Offline
Forum Member

Registered: 09/13/18
Posts: 3

To define the disulfide bonds sometimes is upsetting, so I wrote a loop to set it up automatically:

set count = 0

label cysloop
incr count by 1
define residue sele ires @count end

if ?selresn .eq. CYS then
coor mind sele ires @count .and. type SG end sele type SG end
  if ?mind .lt. 2.5 then
    define CYS1 sele bynu ?minda1 end
    set CYS1 = ?selsegi ?selresi
    define CYS2 sele bynu ?minda2 end
    set CYS2 = ?selsegi ?selresi
    patch disu @CYS1 @CYS2 setup warn

if count .lt. ?nres goto cysloop

I put the loop right after reading the coordinates/sequence of all chains.

If you all have any thoughts to improve this loop, it would be great.



#37194 - 11/21/18 04:04 PM Re: Setting up Disulfide Bonds Automatically [Re: Antoniel Gomes]
lennart Offline

Forum Member

Registered: 09/25/03
Posts: 4688
Loc: ~ 59N, 15E
Seems fine for automatic processing, but perhaps it will create each disulfide twice? This may not be a problem though, but you should check with a system where you also define the disulfides yourself.

A semi-automatic way of doing this for systems that you are not familiar with is to first get all the CYS SG-SG distances shorter than 2.5:

coor dist sele atom * cys sg end sele atom * cys sg end cut 2.5

and then use the resulting output to setup patches for the handful of real disulfides.

Edited by lennart (11/21/18 04:05 PM)
Lennart Nilsson
Karolinska Institutet
Stockholm, Sweden


Moderator:  John Legato, lennart