From: Teemu I. <tpi...@us...> - 2004-10-15 13:34:48
|
Update of /cvsroot/octave/octave-forge/extra/pdb In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21812 Modified Files: README Added Files: plotpdb.m.in Removed Files: plotpdb.m write_pdb_quick.m Log Message: Made plotpdb.m use the rasmol script installed at XPATH. --- write_pdb_quick.m DELETED --- --- NEW FILE: plotpdb.m.in --- function plotpdb(pdb) #function plotpdb(pdb) # # Visualizes a pdb-file or a pdb-struct with rasmol. ## Created: 3.8.2001 ## Author: Teemu Ikonen <tpi...@pc...> # FIXME: redirecting input for rasmol works by opening a free pseudo-tty # which isn't (hopefully) attached to anything. Is there a better way? RASMOL = "@OFORGEXPATH@/rasmol.sh"; ptybase = "/dev/ptyz"; startno = toascii("0"); # This is a hack to get a static -like variable in the function #global plotpdb_static_ptynum; #if (! exist ("plotpdb_static_ptynum")) # plotpdb_static_ptynum = startno - 1; #endif # FIXME: this allows only ten rasmol windows open at one moment plotpdb_static_ptynum = startno - 1; do ++plotpdb_static_ptynum; ptyname = sprintf("%s%c", ptybase, plotpdb_static_ptynum); ptyfid = fopen(ptyname, "r"); until(ptyfid > 0) fclose(ptyfid); #++plotpdb_static_ptynum; #ptyname = sprintf("%s%c", ptybase, plotpdb_static_ptynum) if(isstr(pdb)) fname = pdb; [forkstat, fmsg] = fork(); if(forkstat == 0), exec_args = [fname; ptyname]; exec(RASMOL, exec_args); exit; elseif(forkstat < 0) error(fmsg); endif elseif(is_struct(pdb)) fname = tmpnam; write_pdb(pdb, fname, true); [forkstat, fmsg] = fork(); if(forkstat == 0), exec_args = [fname; ptyname]; exec(RASMOL, exec_args); exit; elseif(forkstat < 0) error(fmsg); endif else error("pdb must be a valid pdb-struct or a file name"); endif endfunction --- plotpdb.m DELETED --- Index: README =================================================================== RCS file: /cvsroot/octave/octave-forge/extra/pdb/README,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- README 18 Nov 2001 22:54:51 -0000 1.1 +++ README 15 Oct 2004 13:34:24 -0000 1.2 @@ -19,6 +19,9 @@ read_pdb.m reads a structure from a pdb-file to an Octave structure. See the function file for more details +creadpdb.oct is the underlying c++ implementation of read_pdb.m. Use this if +you do not need the conversion of element names to atomic numbers. + write_pdb.m tries to write as complete pdb-file as possible given an Octave pdb-structure as an argument @@ -28,9 +31,38 @@ plotpdb.m displays a protein structrure with Rasmol. The input can be either a pdb-file or an Octave pdb-structure. +strtoz.m converts strings of chemical stoichiometries of the type "H2O" to +the atomic numbers of the elements, and their amounts in the compound. You +can generate a test dataset for this function with the script appended below. + References: [1] http://www.rcsb.org/pdb/ [2] http://www.octave.org/ [3] http://www.openrasmol.org/ [4] http://www.gnu.org/copyleft/gpl.html +mktestset.m: + +function testset = mktestset(N, M) +#function testset = mktestset(N, M) +# +# Return a N rows long array of stoichiometries, each M elements long. +# For testing strtoz.m + +# Teemu Ikonen 22.4.2004 + + tabfile = file_in_loadpath("elements.mat"); + load("-force", tabfile); + + testset = char(toascii(" ").*ones(N, 4.*M)); + + for i = 1:N, + s = ""; + for j = 1:M, + s = strcat(s, deblank(elements((floor(length(elements)*rand())+1),:)), \ + sprintf("%d", 99.9.*rand())); + endfor; + testset(i,1:length(s)) = s; + endfor + +endfunction |