From: Xueqing Zou (xqzou_at_ks.uiuc.edu)
Date: Thu Sep 17 2009 - 09:52:19 CDT
Hi, Yuhui
You can use "patch" to make deoxyribose. The following script is
used to make psf file for double-stranded DNA. You can easily modify
it for your single-stranded DNA.
Best, Xueqing
-------------------------
resetpsf
mol load pdb DNA.pdb
set newfile DNA_psfgen
set TOPOFILE ./top_all27_prot_na.inp
proc psfalias {} {
# Define common aliases
# Here's for nucleics
pdbalias residue G GUA
pdbalias residue C CYT
pdbalias residue A ADE
pdbalias residue T THY
foreach bp { GUA CYT ADE THY URA } {
pdbalias atom $bp "O5\*" O5'
pdbalias atom $bp "C5\*" C5'
pdbalias atom $bp "O4\*" O4'
pdbalias atom $bp "C4\*" C4'
pdbalias atom $bp "C3\*" C3'
pdbalias atom $bp "O3\*" O3'
pdbalias atom $bp "C2\*" C2'
pdbalias atom $bp "O2\*" O2'
pdbalias atom $bp "C1\*" C1'
}
}
package require psfgen
topology $TOPOFILE
psfalias
set sel [atomselect top "chain A"]
set listA [lsort -unique [$sel get {resid resname}] ]
foreach selatom $sel {
$selatom set segid ADNA
}
$sel writepdb ADNA.pdb
set sel [atomselect top "chain B"]
set listB [lsort -unique [$sel get {resid resname}] ]
foreach selatom $sel {
$selatom set segid BDNA
}
$sel writepdb BDNA.pdb
# splitting the input pdb
set segidList {ADNA BDNA}
set patchList [list $listA $listB]
segment ADNA {
first 5TER
last 3TER
pdb ADNA.pdb
}
segment BDNA {
first 5TER
last 3TER
pdb BDNA.pdb
}
puts "Begin to patch to make DEOXYribose"
# patch to make DEOXYribose
# purine use patch DEO2
# pyrimidine use patch DEO1
foreach segid $segidList tmpList $patchList {
puts "segid: $segid tmpList:$tmpList"
foreach record $tmpList {
foreach {resid resname} $record { break }
if {$resname == "THY" || $resname == "CYT" } {
patch DEO1 ${segid}:$resid
puts "patch DEO1 ${segid}:$resid"
}
if {$resname == "ADE" || $resname == "GUA" } {
puts "patch DEO2 ${segid}:$resid"
patch DEO2 ${segid}:$resid
}
}
coordpdb ${segid}.pdb
}
puts "End of DEOXYribose "
guesscoord
writepsf $newfile.psf
writepdb $newfile.pdb
On Sep 17, 2009, at 6:25 AM, ºÎع»Ô wrote:
> Dear all,
>
> I construct a single-strand DNA with random sequence within
> NAMOT, and then try to generate PSF file of DNA with following VMD
> script:
>
> set ssDNA ssDna
>
> mol load pdb ${ssDNA}.pdb
>
> set sel [atomselect top noh]
> $sel writepdb DNA-no-hydrogens.pdb
>
> package require psfgen
> topology top_all27_na.rtf
>
> segment S {pdb DNA-no-hydrogens.pdb}
> coordpdb DNA-no-hydrogens.pdb S
> guesscoord
> writepdb ${ssDNA}_1.pdb
> writepsf ${ssDNA}_1.psf
>
> However, I find that there are two serious questions:
> 1) for the head residue, there is no P atom in original PDB
> file. However, there exists P atom on the head residue in the final
> PDB file.
>
> 2) After checking the final PDB file, I think that the resulting
> molecule is Ribose but not Deoxy.
>
> I guess that not only does the "guesscoord" command add missing H
> atoms to the molecule, but it also adds O and P atoms, according to
> the topology file.
>
> What I hope to get is DNA PSF file. I think one approach is to
> modify description of residues in the topology file. However, this
> can not deal with question 1).
>
> Can anyone give me some suggestions?
>
> By the way, I am a researcher with background of
> Microelectronics. So I am not familiar with biology. I greatly
> appreciate some easy-understood suggestions.
>
> Thanks and best wishes!
>
> --
> Yuhui He (ºÎع»Ô)
> Ph. D
> Inst. Microelectronics, Chinese Academy of Sciences,
> Beijing 100871, China.
This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:53:17 CST