From: Diego Gomes (diego.enry_at_gmail.com)
Date: Thu Nov 02 2023 - 13:57:33 CDT

Apparently the attachments are not going through vmd-list.

Here is a pasted version of the script.

#############################################################################
RCS INFORMATION:## $RCSfile: stride_by_pfrag.tcl,v $#
$Author: dgomes $ $Locker: $ $State: Exp $#
$Revision: 0.1 $ $Date: 2023/08/28 09:15:56
$###############################################################################
VMD stride by pfrag $Revision: 0.1 $### Script to compute the
secondary structure using STRIDE, by splitting the # structureby
pfrag. It also translates the fragments to avoid .PDB format
limitations.## Usage:# source stride_by_pfrag.tcl ### CHANGE stride
PATH###display update off# For very large systems, coordinates need to
be translated to fit the PDB format.proc moveby {sel offset} {
foreach coord [$sel get {x y z}] { lappend newcoords [vecadd
$coord $offset] } $sel set {x y z} $newcoords}# Select
continuous protein fragmentsset ptn [atomselect top "noh protein and
backbone and pfrag >= 0" ]set pfrag_list [lsort -unique -integer [$ptn
get pfrag]]set npfrag [ llength $pfrag_list ]# Compute SS for each
pfragforeach pf $pfrag_list { # Select current pfrag set ref
[atomselect 0 "noh backbone and pfrag $pf"] set n [$ref num] if { [
llength [lsort -unique [$ref get resid]]] > 5 } { # Create a
temporary molecule and fill it with dummy atoms set tmpmolid [
mol new atoms $n] set atomslist [list] for {set i 1}
{$i<=$n} {incr i} { ## list format {radius resname resid chain
x y z occupancy element segname} lappend atomslist [list 0 DUM
9999 X 0.00 0.00 0.00 0 DUM MOLF] } # Initialize the dummy
atoms pool set sel [atomselect $tmpmolid "all"] animate dup
[molinfo top] # Replace dummy atoms by current pfrag $sel
set {name type radius resname resid chain x y z occupancy element
segname } [$ref get {name type radius resname resid chain x y z
occupancy element segname}] # Translate coordinates to fit the
PDB format. set vec [ vecscale -1 [measure center $sel]]
moveby $sel $vec # Write temporary .PDB file for STRIDE $sel
writepdb /tmp/pfrag_${pf}.pdb # Delete temporary molecule
   mol delete top # Compute SS using STRIDE set ssByRes
[list] # Run Stride # set output [exec -ignorestderr
$env(STRIDE_BIN) /tmp/pfrag_${pf}.pdb | grep ASG ] set output
[exec -ignorestderr ~/software/vmd-requirements/stride/stride
/tmp/pfrag_${pf}.pdb | grep "^ASG" ] # Post-Process STRIDE output
     foreach line [split $output "\n"] { set wordList [regexp
-inline -all -- {\S+} $line] lappend ssByRes [lindex $wordList
5] } # puts "$pf : $ssByRes" # Select CA from current
pfrag and assign SS set sel [atomselect 0 "pfrag $pf and name
CA"] puts "$pf of $npfrag; natoms [$sel num] ; ; ssres [llength
$ssByRes]" $sel set structure $ssByRes # Delete temporary
file. file delete /tmp/pfrag_${pf}.pdb }}

On Thu, Nov 2, 2023 at 12:58 PM Diego Gomes <diego.enry_at_gmail.com> wrote:

> Hi Vasista,
> try this stride_by_pfrag.tcl script attached to this email.
> Please bug me if this doesn't work for you. I'm also working on a
> definitive solution for STRIDE.
>
> Computing the Secondary Structure by fragment comes with a caveat. It may
> result in less B-strands.
> That is because the way they are defined depends on neighboring residues,
> which may come from a different protein chain (fragment).
>
> The scripts also solve a PDB format limitation due to fixed format. It
> creates a tmp molecule for each fragment centers it prior to running STRIDE.
>
>
>
>
> On Wed, Nov 1, 2023 at 7:15 AM Vasista <adupavasista_at_gmail.com> wrote:
>
>> Hi, I am working on a condensate consisting of 220,000 protein atoms. For
>> visualization purposes, I am looking at various secondary structures formed
>> inside the condensate. However, STRIDE breaks by giving the following
>> error.
>>
>> File /usr/tmp/filegkb3LC has no coordinates
>> Error reading PDB file /usr/tmp/filegkb3LC
>> ERROR) Unable to find Stride output file: /usr/tmp/fileLa9x91
>> ERROR) Stride::read_stride_record: unable to read output file from Stride
>> ERROR) Call to Stride program failed.
>>
>> I have read that VMD's implementation currently supports up to 100K
>> atoms. I have tried a workaround by chopping the condensate by fragment
>> into multiple PDBs and loading them, and the STRIDE works perfectly fine--00000000000083c38a06092ff6d7--