From: Takeru KAMEDA (kamedapon_at_hiroshima-u.ac.jp)
Date: Mon May 27 2019 - 03:19:13 CDT

Dear VMD Users

Somehow my previous mail was not sent to the end (Sorry).
I have a question about how to apply psfgen to a complex with many segments.
We tried to use the structure (PDB: 3J81) with many segments (chains) as follows.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m 1 2 3
(https://www.rcsb.org/structure/3j81)
However, we could not finish the psfgen script.
It seems that chain ID is case insensitive and hence e.g. chains A and a are regarded as duplicated chain IDs.
Could you tell me how to solve the problem?
We employed VMD 1.9.3 (psfgen version1.6.4), and CHARMM36 parameter. (http://mackerell.umaryland.edu/charmm_ff.shtml)
Thank you in advance.
Best wishes,

Takeru Kameda
PhD Student, Hiroshima University, Japan
The PSFgen script we used is as follows:

"""""""""""""""""""""""""""""""""""""""""""""""""
package require psfgen
resetpsf
topology ./../toppar/top_all36_na.rtf
topology ./../toppar/top_all36_prot.rtf
topology ./../toppar/top_all36_carb.rtf
topology ./../toppar/top_all36_cgenff.rtf
topology ./../toppar/top_all36_lipid.rtf
pdbalias residue A ADE
pdbalias residue G GUA
pdbalias residue C CYT
pdbalias residue T THY
pdbalias residue U URA
pdbalias residue HIS HSE
pdbalias atom ILE CD1 CD
## protein
set sel [atomselect top protein]
set chains [lsort -unique [$sel get chain]] ;# return A B C D
foreach chain $chains {
    puts "Adding protein chain $chain to psfgen"
    set seg ${chain}PRO
    set sel [atomselect top "protein and chain $chain"]
    $sel set segid $seg
    $sel writepdb tmp.pdb
    segment $seg {
        #first NTER
        #last CTER
        pdb tmp.pdb
    }
    coordpdb tmp.pdb
}
## RNA
set sel [atomselect top nucleic]
set chains [lsort -unique [$sel get chain]];# return A B C D
foreach chain $chains {
    puts "Adding RNA chain $chain to psfgen"
    set seg ${chain}RNA
    set sel [atomselect top "nucleic and chain $chain"]
    $sel set segid $seg
    $sel writepdb tmp.pdb

    segment $seg { pdb tmp.pdb }

    set resids [lsort -unique [$sel get resid]]
    #foreach r $resids {
    #patch DEOX $seg:$r
    #}
    regenerate angles dihedrals
    coordpdb tmp.pdb
}
guesscoord
writepsf psfgen.psf
writepdb psfgen.pdb
"""""""""""""""""""""""""""""""""""""""""""""""""

--
________________________________________
$B:9=P?M(B: Takeru KAMEDA
$BAw?.F|;~(B: 2019$BG/(B5$B7n(B25$BF|(B 0:14
$B08_at_h(B: vmd-l_at_ks.uiuc.edu
$B7oL>(B: Re: psfgen problems of many segment complex
Dear VMD Users
Somehow my previous mail was not sent to the end (Sorry).
I have a question about how to apply psfgen to a complex with many segments.
We tried to use the structure (PDB: 3J81) with many segments (chains) as follows.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m 1 2 3
(https://www.rcsb.org/structure/3j81)
However, we could not finish the psfgen script.
It seems that chain ID is case insensitive and hence e.g. chains A and a are regarded as duplicated chain IDs.
Could you tell me how to solve the problem?
We employed VMD 1.9.3 (psfgen version1.6.4), and CHARMM36 parameter. (http://mackerell.umaryland.edu/charmm_ff.shtml)
Thank you in advance.
Best wishes,
Takeru Kameda
PhD Student, Hiroshima University, Japan
The PSFgen script we used is as follows:
"""""""""""""""""""""""""""""""""""""""""""""""""
package require psfgen
resetpsf
topology ./../toppar/top_all36_na.rtf
topology ./../toppar/top_all36_prot.rtf
topology ./../toppar/top_all36_carb.rtf
topology ./../toppar/top_all36_cgenff.rtf
topology ./../toppar/top_all36_lipid.rtf
pdbalias residue A ADE
pdbalias residue G GUA
pdbalias residue C CYT
pdbalias residue T THY
pdbalias residue U URA
pdbalias residue HIS HSE
pdbalias atom ILE CD1 CD
## protein
set sel [atomselect top protein]
set chains [lsort -unique [$sel get chain]] ;# return A B C D
foreach chain $chains {
    puts "Adding protein chain $chain to psfgen"
    set seg ${chain}PRO
    set sel [atomselect top "protein and chain $chain"]
    $sel set segid $seg
    $sel writepdb tmp.pdb
    segment $seg {
        #first NTER
        #last CTER
        pdb tmp.pdb
    }
    coordpdb tmp.pdb
}
## RNA
set sel [atomselect top nucleic]
set chains [lsort -unique [$sel get chain]];# return A B C D
foreach chain $chains {
    puts "Adding RNA chain $chain to psfgen"
    set seg ${chain}RNA
    set sel [atomselect top "nucleic and chain $chain"]
    $sel set segid $seg
    $sel writepdb tmp.pdb
    segment $seg { pdb tmp.pdb }
    set resids [lsort -unique [$sel get resid]]
    #foreach r $resids {
    #patch DEOX $seg:$r
    #}
    regenerate angles dihedrals
    coordpdb tmp.pdb
}
guesscoord
writepsf psfgen.psf
writepdb psfgen.pdb
"""""""""""""""""""""""""""""""""""""""""""""""""
--
________________________________
$B:9=P?M(B: Vermaas, Joshua <Joshua.Vermaas_at_nrel.gov>
$BAw?.F|;~(B: 2019$BG/(B5$B7n(B24$BF|(B 21:52
$B08_at_h(B: vmd-l_at_ks.uiuc.edu; Takeru KAMEDA
$B7oL>(B: RE: psfgen problems of many segment complex
One segment at a time would be my advice. That's how the psfgen user guide does it (see page 4, where the protein BPTI is in a different segment than the water).
-Josh
On 2019-05-24 00:56:17-06:00 owner-vmd-l_at_ks.uiuc.edu wrote:
Dear VMD Users
I have a question about how to apply psfgen to a complex with many segments