[med-svn] [Git][med-team/suitename][upstream] New upstream version 0.3.070919+git20180613.ebb1325
Andreas Tille
gitlab at salsa.debian.org
Fri Nov 6 13:43:43 GMT 2020
Andreas Tille pushed to branch upstream at Debian Med / suitename
Commits:
dd932622 by Andreas Tille at 2020-11-06T14:40:04+01:00
New upstream version 0.3.070919+git20180613.ebb1325
- - - - -
11 changed files:
- − 0.3.070525
- Makefile.macOSX
- + SConscript
- + command_line/suitename.py
- suitename.c
- suitename.h
- suiteninit.c
- suiteninit.h
- suiteninpt.c
- suitenout.c
- suitenutil.c
Changes:
=====================================
0.3.070525 deleted
=====================================
@@ -1 +0,0 @@
-suitename.0.2.070524
=====================================
Makefile.macOSX
=====================================
@@ -1,12 +1,12 @@
# suitename
ifeq ($(MAKECMDGOALS),debug)
- CFLAGS = -g -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
+ CFLAGS = -g -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -arch x86_64
else
- CFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
+ CFLAGS = -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -arch x86_64
endif
-LIBS = -lm -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch i386 -arch ppc
+LIBS = -lm -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -arch x86_64
# ---------------------------------------------------------------------
PROG_FLGS =
=====================================
SConscript
=====================================
@@ -0,0 +1,20 @@
+import libtbx.load_env
+
+Import("env_base", "env_etc")
+
+env = env_base.Clone(LIBS=env_etc.libm)
+if (libtbx.manual_date_stamp < 20090819):
+ # XXX backward compatibility 2009-08-19
+ env.Replace(CCFLAGS=env_etc.ccflags_base)
+if (env_etc.compiler != "win32_cl"):
+ env.Replace(LINK=env_base["CC"])
+
+exe = env.Program(
+ target=["#suitename/exe/suitename"],
+ source=[
+ "suitename.c",
+ "suiteninit.c",
+ "suiteninpt.c",
+ "suitenout.c",
+ "suitenscrt.c",
+ "suitenutil.c"])
=====================================
command_line/suitename.py
=====================================
@@ -0,0 +1,19 @@
+# LIBTBX_SET_DISPATCHER_NAME phenix.suitename
+# LIBTBX_SET_DISPATCHER_NAME molprobity.suitename
+
+import libtbx.load_env
+from libtbx.utils import Usage
+import os, sys, subprocess
+
+def run(args):
+ exe = libtbx.env.under_build("suitename/exe/suitename")
+ if (os.name == "nt"):
+ exe += ".exe"
+ if (not os.path.isfile(exe)):
+ from libtbx.str_utils import show_string
+ from libtbx.utils import Sorry
+ raise Sorry("Missing phenix.suitename executable: %s" % show_string(exe))
+ subprocess.call([exe] + args)
+
+if (__name__ == "__main__"):
+ run(sys.argv[1:])
=====================================
suitename.c
=====================================
@@ -21,11 +21,17 @@
#include "suitenout.h"
/*0.2.070524 preserve chi-1 and chi, so could preserve eta, theta */
-/*0.2.070525 general read dangle record for, e.g., eta, theta */
-/*0.2.070628 triage reports zeta-1, epsilon-1, delta-1,... Ltriage codes */
-
+/*0.3.070525 general read dangle record for, e.g., eta, theta */
+/*0.3.070628 triage reports zeta-1, epsilon-1, delta-1,... Ltriage codes */
+/*0.3.070803 notes: rearranged suitenhead.h/janesviews ... */
+/* put something in to say what veiws mean */
+/* what are masters e and d ???? */
+/*0.3.070919 3g wannabe (tRNA TpseudoUC loop) */
+/*0.3.110606 range of delta updated by S.J. */
+/* 01/07/2014 S.J. updated so that it can take input with alternate conformations, *nd by default will calculate the suite for altA*/
+/* 09/18/2014 S.J. updated so that suitename will ignore DNA residues*/
/****main()*******************************************************************/
-main(int argc, char** argv)
+int main(int argc, char** argv)
{
int LOK=1,ibin=0,jclst=0;
char sour[32];
@@ -39,11 +45,11 @@ main(int argc, char** argv)
ptmaster[0] = '\0'; /*default is no point master*/
- sprintf(version,"suitename.0.3.070628 "); /* VERSION */
+ sprintf(version,"suitename.0.4.130509 "); /* VERSION */
/* default values before parsecommandline */
Ltest = 0; /*compile in... */
- Ltestout = 0; /*commandline -test */
+ Ltestout = 0; /*commandline -test */
fpin = stdin;
fpout = stdout;
@@ -58,14 +64,20 @@ main(int argc, char** argv)
Lsuitesin=0;
Lresiduesin=1;
NptIDfields=6; /*for dangle residue input*/
+ altIDfield=0; /* by default, no altID field - S.J. 01/07/2014*/
+ altID[0]='\0'; altID[1]='\0';
Nanglefields=9; /*for 9D kinemage edited suite input*/
Lnewfile=0;
Lhelpout=0;
+ LNptIDfields=0; /* initializing the four variables to check correct usage of altIDfield - S.J. 01/07/2014*/
+ LaltIDfield=0;
+ Luseincorrect=0;
+ LaltID=0;
Lchangesout=0;
NameStr[0] = '\0';
Lgeneralsatw = 0; /*flag for special general case satellite widths 070328*/
Lwannabe = 1;/* -wannabe input flag 070429, default 070525, else -nowannabe*/
-
+
Lsequence = 1; /*output 1 letter Base code sequence part of string 070409*/
Loverlap = 0; /*overlap string lines, e.g. 1-20, 11-30, 21-40, ... 070409*/
Loneline = 0; /*string output all as oneline 070409*/
@@ -74,8 +86,10 @@ main(int argc, char** argv)
{
LOK = parsecommandline(&argc, argv);
}
+
if(LOK)
- {/*command OK*/
+ {
+ /*command OK*/
inittextblock(&mainscratch); /*__open scratch "tapes" */
/*--rewind scratch "tapes", inplicit with inittextblock() */
/*--allocation of space automatic when attempting write*/
@@ -83,7 +97,7 @@ main(int argc, char** argv)
newresidueptr = (residuestruct*)malloc(sizeof(struct residuestruct));
oldresidueptr = (residuestruct*)malloc(sizeof(struct residuestruct));
suiteptr = (suitestruct*)malloc(sizeof(struct suitestruct));
- if( newresidueptr != NULL
+ if( newresidueptr != NULL
&& oldresidueptr != NULL
&& suiteptr != NULL
) {LOK=1;}
@@ -92,11 +106,11 @@ main(int argc, char** argv)
if(LOK)
{/*storage allocated*/
LOK = initializations(); /*070325*/
- if(LOK)
+ if(LOK)
{/*LOK to work*/
clearnewresidue(); /*only at beginning so first-1 handled correctly*/
-/*sudo pre-Algorithm: accummulate suites or suites from residues */
+/*sudo pre-Algorithm: accummulate suites or suites from residues */
while(!LatEOF) /*allow EOF on end of last line, see Lhitend */
{/*loop over all residues in the file*/
/*
@@ -117,12 +131,12 @@ fprintf(stderr,"\n");
if(Lsuitesin) {LOK = getsuite();}
else {LOK = getresidue(); Lresiduesin = 1;}
if(LOK)
- {
- if(Lresiduesin) {LOK = loadsuite();}
+ {
+ if(Lresiduesin) {LOK = loadsuite();}
if(LOK)
{
LOK = confirmsuite();
- if(!LOK)
+ if(!LOK)
{
ibin = 13; /*angles not fully specified*/
jclst = 0; /*cluster not assigned in dummy bin*/
@@ -140,9 +154,9 @@ fprintf(stderr,"\n");
if(ibin > 0){membership(ibin);}
- }
+ }
}/*loaded suite*/
- }/*got a residue (or a suite from a kinemage)*/
+ }/*got a residue (or a suite from a kinemage)*/
}/*loop over all residues in the file*/
writeoutput(); /*has logicals for what output possible*/
@@ -157,7 +171,7 @@ fprintf(stderr,"\n");
initializations();
L33out = L32out = L23out = L22out = 1;
for(i=1; i<=12; i++)
- {
+ {
binout[i]=1;
/*for(j=1; j<ddgmax; j++)*/
j=0; /*zeroth cluster of a bin holds its outliers*/
@@ -207,7 +221,7 @@ fprintf(stderr,"\n");
fprintf(stderr,"alphamin %.0f, alphamax %.0f\n",alphamin,alphamax);
fprintf(stderr,"betamin %.0f, betamax %.0f\n",betamin,betamax);
fprintf(stderr,"zetamin %.0f, zetamax %.0f\n",zetamin,zetamax);
- fprintf(stderr,"cluster half-widths, & special satellite widths");
+ fprintf(stderr,"cluster half-widths, & special satellite widths");
fprintf(stderr," version: %s\n",clusterhalfwidthsversion);
fprintf(stderr,"deltamw %.0f\n",deltamw);
fprintf(stderr,"epsilonw %.0f, epsilonsatw %.0f\n",epsilonw,epsilonsatw);
@@ -235,12 +249,17 @@ fprintf(stderr,"\n");
}
}
}
+ else if (Luseincorrect) /* if both the point field and alt field are not specified, then exit - S.J. 01/07/2014*/
+ {
+ fprintf(stderr,"Please specify both -altIDfield and -pointIDfields\n");
+ usageout();
+ }
else /*Lhelpout*/
{
usageout();
}
}
- exit(0);
+ return(0);
}
/*___main()__________________________________________________________________*/
@@ -274,7 +293,7 @@ int evaluatesuite(void)
/*sudo THEN s_bini = e_triage AND !OK */
if(suiteptr->epsilon < epsilonmin || suiteptr->epsilon > epsilonmax)
- { sprintf(sour," e out "); LOK = 0;
+ { sprintf(sour," e out "); LOK = 0;
Ltriage = EPSILONM; sprintf(ptmaster,"'E'");}
}
if(LOK) /*------ filter on delta minus 1 -----------------------*/
@@ -290,7 +309,7 @@ int evaluatesuite(void)
else if(suiteptr->deltam >= delta2min && suiteptr->deltam <= delta2max)
{ puckerdm = 2; LOK = 1; }
else
- { puckerdm = 0; sprintf(sour," bad deltam "); LOK = 0;
+ { puckerdm = 0; sprintf(sour," bad deltam "); LOK = 0;
Ltriage = DELTAM; sprintf(ptmaster,"'D'");}
}
if(LOK) /*------ filter on delta -----------------------*/
@@ -306,7 +325,7 @@ int evaluatesuite(void)
else if(suiteptr->delta >= delta2min && suiteptr->delta <= delta2max)
{ puckerd = 2; LOK = 1; }
else
- { puckerd = 0; sprintf(sour," bad delta "); LOK = 0;
+ { puckerd = 0; sprintf(sour," bad delta "); LOK = 0;
Ltriage = DELTA; sprintf(ptmaster,"'D'");}
if(LOK)
{/*both deltas in range*/
@@ -441,7 +460,7 @@ int evaluatesuite(void)
{/*culled by single angle triage*/
/*sudo ELSE {s_bini already set to be some kind of triage} */
-
+
Ltriageout = 1;
binout[0] = 1;
ibin = 0;
@@ -464,7 +483,7 @@ void membership(int ibin)
float penmindist = 999;
float pi = 3.14159;
float suiteness=0;
- char sour[96],sourness[32]; /*070311 accum report*/
+ char sour[96],sourness[64]; /*070311 accum report*/
int Ldominant=0;
int LOK = 0;
float sattodom[8], domtosat[8],sattopt[8],domtopt[8];
@@ -482,7 +501,7 @@ void membership(int ibin)
clearmatches();
matchcnt = 0;
- i = ibin;
+ i = ibin;
/*sudo */
/*sudo program body: cluster membership in assigned s_bini */
@@ -505,8 +524,8 @@ void membership(int ibin)
while(bin[i].clst[j].LOK) /*070428*/
{/*loop over all observed clusters in this ith bin*/
- if( !Lwannabe
- && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}/*match*/
+ if( !Lwannabe
+ && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}/*match*/
/*empty bin dummy cluster at 0,0,0,0,0,0,0 is out of angle range*/
/*but safer to explicity skip*/
/*if(i==3 || i==9){continue;} not needed 070428*/
@@ -521,13 +540,13 @@ void membership(int ibin)
{
closestd = distance;
closestj = j;
- }
+ }
if(distance >= 0) /* store all distances, needed for diagnostics */
{
- matches[i][j] = distance;
+ matches[i][j] = distance;
/*sudo IF 0 <= d < 1 THEN */
- if(distance < 1) /* suite could be a member of this cluster */
+ if(distance < 1) /* suite could be a member of this cluster */
{ /*APPEND to list of clusters of which suite could be a member*/
/*sudo APPEND cj to s_list_ci */
/*sudo FLAG when possible_cluster is a dominant_cluster */
@@ -554,12 +573,12 @@ void membership(int ibin)
/*now find the next closest cluster (for debugging purposes)*/
nextclosed = 999; /*next closest cluster*/
-
+
j = 1; /*start with index 1 for first observed clst in this bin 070428*/
while(bin[i].clst[j].LOK) /*070428*/
{/*loop over all clusters in this ith bin*/
if( !Lwannabe
- && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}/*match*/
+ && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}/*match*/
if(matches[i][j] < nextclosed && j != closestj)
{
nextclosed = matches[i][j];
@@ -571,7 +590,7 @@ void membership(int ibin)
/*end logic: find all clusters that match this conformation_______________*/
/*now assign suite to a particular cluster*/
- Lassigned = 0;
+ Lassigned = 0;
/*sudo */
/*sudo IF |s_list_ci| == 1 THEN */
@@ -606,15 +625,15 @@ void membership(int ibin)
/*sudo ASSIGN domj = dominant cj in s_list_ci */
/*sudo ASSIGN thej = cj in s_list_ci minimizing d for all non-dominant cj in s_list_ci */
-
+
penmindist = 999;
-
+
j = 1;/*start with index 1 for first observed clst in this bin 070428*/
while(bin[i].clst[j].LOK) /*070428*/
{/*loop over all clusters in this ith bin*/
if( !Lwannabe
- && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}
-
+ && strcmp(bin[i].clst[j].status,"wannabe")==0) {j++;continue;}
+
if( ( strcmp(bin[i].clst[j].domsatness,"dom")!=0 )/*i.e. NOT dom*/
&& (matches[i][j] < penmindist))
{/*find shortest distance to non-dominant and satellite clusters*/
@@ -648,7 +667,7 @@ void membership(int ibin)
vector7ab(sattodom, bin[i].clst[thej].ang, bin[i].clst[domj].ang);
/*sudo IF si is located between the means of thej and domj THEN */
- if( (dotproduct(domtopt,domtosat,4) > 0)
+ if( (dotproduct(domtopt,domtosat,4) > 0)
&&(dotproduct(sattopt,sattodom,4) > 0) )
{/*pt between dom and sat*/
@@ -658,7 +677,7 @@ void membership(int ibin)
/*recalc distances to dominant cluster and to satellite cluster*/
/*considering different weights between special cluster pairs */
resetcoordw(dominantw, i,domj,0); /*set to dominant widths*/
- resetcoordw(satellitew,i,thej,Lgeneralsatw);
+ resetcoordw(satellitew,i,thej,Lgeneralsatw);
/*set to satellite widths, using Lgeneralsatw 070414*/
assignweights(i,thej,dominantw,satellitew);
/*special widths for this satellite: weight dom--sat pair*/
@@ -726,7 +745,7 @@ fprintf(stderr,"\n");
/*thej = closestj; NOT viable to have outlier named by closest cluster*/
/* some are very far from any cluster, */
/* and even a singleton defines an extant cluster and makes a ring*/
- }
+ }
/*sudo END IF ( |s_list_ci| == ? ) */
sprintf(sour," %s:%s, %7.3f:%s, %7.3f: "
@@ -735,7 +754,7 @@ fprintf(stderr,"\n");
,bin[i].clst[nextclosej].clustername,matches[i][nextclosej]);
clusterout[i][thej] = 1; /*this specific cluster has an entry*/
-
+
if(Lwannabe && strcmp(bin[i].clst[thej].status,"wannabe")==0)
{
Lwannabeout = 1; /*once set, stays set*/
@@ -772,7 +791,7 @@ fprintf(stderr,"\n");
sprintf(commentstr," by 7Ddist"); /*070628*/
Lcomment=1;
}
- }
+ }
}
/*sudo ELSE "suiteness" suiti = 0 */
/*sudo ASSIGN s_clusteri = outlier */
=====================================
suitename.h
=====================================
@@ -3,6 +3,7 @@
#include <stdio.h>
#include <math.h>
#include <string.h>
+#include <ctype.h>
#define MAXBINS 14 /*1--12 named bins, bin 0 triaged, bin 13 incomplete*/
#define MAXCLST 16 /*practical, <observed, limit of clusters in a bin*/
@@ -50,7 +51,7 @@ typedef struct suitestruct {
}suitestruct;
EXTERN struct suitestruct* suiteptr;
-typedef struct residuestruct {
+typedef struct residuestruct {
char ptID[10][32];
char basechr[2]; /*070412*/
float alpha;
@@ -64,7 +65,7 @@ EXTERN residuestruct* residueptr;
EXTERN residuestruct* newresidueptr;
EXTERN residuestruct* oldresidueptr;
-EXTERN float matches[MAXBINS][MAXCLST];
+EXTERN float matches[MAXBINS][MAXCLST];
/*incl 1--12 named bins, # defined clsters070429*/
EXTERN float coordw[8]; /*general weightings*/
=====================================
suiteninit.c
=====================================
@@ -182,6 +182,7 @@ int parsecommandline(int *argc, char** argv)
else if( CompArgStr(p+1,"pointIDfields", 5)
|| CompArgStr(p+1,"ptID", 2) )
{
+ LNptIDfields=1; /* flag to see if this is specified or not - S.J. 01/07/2014*/
i = i+1; /*number of pointID fields is in the next string*/
p = argv[i];
j=0;
@@ -198,6 +199,32 @@ int parsecommandline(int *argc, char** argv)
}
}/*strobe out number*/
}
+ else if(CompArgStr(p+1,"altIDfield", 10)) /* to check for altIDfield and storing it S.J. 01/07/2014*/
+ {
+ LaltIDfield=1;
+ i = i+1; /*altID field is in the next string*/
+ p = argv[i];
+ j=0;
+ k=0;
+ while(j<256)
+ {/*strobe out number*/
+ if( isdigit(p[j]) ) { numstr[k] = p[j]; k++; j++; }
+ else if(k==0) {/*no char yet*/ j++; }
+ else
+ {/*presume whole number is in*/
+ numstr[k]='\0'; /*end number string*/
+ sscanf(numstr,"%d",&altIDfield);
+ j=999; /*end the while loop*/
+ }
+ }/*strobe out number*/
+ }
+ else if(CompArgStr(p+1,"altIDval",8)) /* to get the value of the altID - S.J. 01/07/2014*/
+ {
+ LaltID=1;
+ i = i+1;
+ p=argv[i];
+ altID[0]=p[0];
+ }
else if( CompArgStr(p+1,"angles", 5)
|| CompArgStr(p+1,"anglefields", 5)
|| CompArgStr(p+1,"nangles", 6) )
@@ -247,7 +274,8 @@ int parsecommandline(int *argc, char** argv)
}/*presume an input file name*/
}/*loop over arguments*/
/*070222 much of this not yet implemented*/
- if( Lhelpout || Ltestout || Lchangesout || Lnewfile) {LOK = 0;}
+ if(LaltIDfield == 1 && LNptIDfields == 0) {Luseincorrect=1;} /* added to check is both altID and pointID are specified - S.J. 01/07/2014*/
+ if( Lhelpout || Ltestout || Lchangesout || Lnewfile || Luseincorrect) {LOK = 0;} /* added Luseincorrect check S.J. 01/07/2014*/
else {LOK = 1;}
return(LOK);
}
=====================================
suiteninit.h
=====================================
@@ -1,7 +1,7 @@
/* suiteninit.h */
/* suitename.h MAXBINS 14 1--12 named bins, bin 0 triaged, bin 13 incomplete*/
/* suitename.h MAXCLST 16 practical, <observed, limit of clusters in a bin*/
- /*clst indexed from 1: bin 33p had 10, index to 11, as of 070428 */
+ /*clst indexed from 1: bin 33p had 10, index to 11, 070428, +1 070919*/
#define MAXSAT 12 /*maximun number of all satellite clusters, 9 as of 070429*/
#ifdef SUITENINIT
@@ -117,6 +117,8 @@ struct bindefinition bin[MAXBINS] =
180, 085.295, 244.085, 203.815, 065.880, 181.130, 054.680, 086.035 ,180},
{/* 11 */ "5d", 1, "certain", "yellow ", "ord", NULL,
180, 079.671, 202.471, 063.064, 068.164, 143.450, 049.664, 082.757 ,180},
+ {/* 12 */ "3g", 1, "wannabe", "gray ", "ord", NULL,
+ 180, 084.000, 195.000, 146.000, 170.000, 170.000, 052.000, 084.000 ,180},
{/* N */ "!!", 0, "nothing", "white ", "out", NULL,
0,0,0,0,0,0,0,0,0 } /*trailing cluster with LOK==0*/
}
@@ -358,8 +360,8 @@ extern float zetamin , zetamax ;
#ifdef DEFINITIONS
char axeslimitsversion[] = "070326";
float epsilonmin = 155, epsilonmax = 310; /*070130*/
- float delta3min = 55, delta3max = 110;
- float delta2min = 120, delta2max = 175;
+ float delta3min = 60, delta3max = 105; /* changed by S.J. on 06/06/2011 */
+ float delta2min = 125, delta2max = 165;
float gammapmin = 20, gammapmax = 95; /*max 070326*/
float gammatmin = 140, gammatmax = 215; /*max 070326*/
float gammammin = 260, gammammax = 335; /*max 070326*/
@@ -381,11 +383,11 @@ SUITENINIT int dominate[13], satellites[13][4];
SUITENINIT float clusterav[13][MAXCLST][8];
/*flags*/
-SUITENINIT int Lsuitesin,Lresiduesin,NptIDfields,Nanglefields,Lnewfile;
-SUITENINIT int Lstringout,Lhelpout,Lchangesout,Lkinemageout;
+SUITENINIT int Lsuitesin,Lresiduesin,NptIDfields,Nanglefields,Lnewfile,altIDfield; /* added altIDfield and altID variable - S.J. 01/07/2014*/
+SUITENINIT int Lstringout,Lhelpout,Lchangesout,Lkinemageout,LNptIDfields,LaltIDfield,Luseincorrect,LaltID; /* added last four variables as flags to check for correct usage of altIDfield - S.J. 01/07/2014*/
SUITENINIT int Lreportout,Ltestout;
SUITENINIT int Lchart,Lsourout,Letatheta,Ldangle; /*070521,070524,070525*/
-SUITENINIT char NameStr[256];
+SUITENINIT char NameStr[256],altID[2]; /* last variable added by S.J. 01/07/2014*/
SUITENINIT int Lsequence, Loverlap, Loneline; /*070409*/
SUITENINIT int Lwannabe; /*070429*/
=====================================
suiteninpt.c
=====================================
@@ -7,8 +7,9 @@
#include "suiteninit.h"
#include "suitenscrt.h"
+#include "suitenutil.h"
-/****getresidue()*************************************************************/
+/****getresidue()*************************************************************/
int getresidue(void)
{
int LOK=0;
@@ -24,7 +25,7 @@ int getresidue(void)
{
LOK = interpretresiduerecord();
/* ptID: : :alpha:beta:gamma:delta:epsilon:zeta */
- /*loads ptID[NptIDfields], angle[6] */
+ /*loads ptID[NptIDfields], angle[6] */
if(LOK)
{
movenewtooldresidue();
@@ -63,7 +64,7 @@ int loadsuite(void)
int j=0,k=0,n=0;
n=0;
- for(j=1; j<=NptIDfields; j++)
+ for(j=1; j<=NptIDfields; j++)
{
for(k=0; k<32; k++)
{
@@ -95,7 +96,7 @@ int movenewtooldresidue(void)
{
strcpy(oldresidueptr->ptID[j],newresidueptr->ptID[j]);
}
- oldresidueptr->basechr[0],newresidueptr->basechr[0]; /*070412*/
+ //oldresidueptr->basechr[0],newresidueptr->basechr[0]; /*070412*/
oldresidueptr->basechr[0] = '\0';
oldresidueptr->alpha = newresidueptr->alpha;
oldresidueptr->beta = newresidueptr->beta;
@@ -114,7 +115,7 @@ void printresidue(char* type)
struct residuestruct* theresidueptr;
if(strcmp(type,"old")==0) {theresidueptr = oldresidueptr;}
- else {theresidueptr = newresidueptr;}
+ else {theresidueptr = newresidueptr;}
fprintf(stderr,"%s ",type);
for(j=1; j<=NptIDfields; j++)
{
@@ -180,7 +181,7 @@ int loadnewresidue(void)
/*___loadnewresidue()________________________________________________________*/
/****interpretdanglerecord()**************************************************/
-int interpretdanglerecord(void)
+int interpretdanglerecord(void)
{
int i=0,j=0,k=0,n=0,ns=0,nan=0;
char numstr[256];
@@ -204,12 +205,12 @@ int interpretdanglerecord(void)
{
ptID[n][i] = texts[ns+i];
}
- if(n == NptIDfields)
+ if(n == NptIDfields)
{
ptID[n][k] = '\0'; /*overwrite last : character*/
/*so last char of last field is a Base name char*/
/*and this last field is the full 3char Base name*/
- if(strlen(ptID[n]) == 3)
+ if(strlen(ptID[n]) == 3)
{ /*interpret as Base name --> 1char 070412 */
if (strstr(NAListA, ptID[n])) {basechr[0] = 'A';}
else if(strstr(NAListG, ptID[n])) {basechr[0] = 'G';}
@@ -220,7 +221,7 @@ int interpretdanglerecord(void)
}
else {basechr[0] = 'Z';}
basechr[1] = '\0';
- }
+ }
else {ptID[n][k+1] = '\0';} /* not overwrite : character*/
}
/*reset for another field*/
@@ -278,12 +279,16 @@ int interpretresiduerecord(void)
{
ptID[n][i] = texts[ns+i];
}
- if(n == NptIDfields)
+ if(n == NptIDfields)
{
ptID[n][k] = '\0'; /*overwrite last : character*/
/*so last char of last field is a Base name char*/
/*and this last field is the full 3char Base name*/
- if(strlen(ptID[n]) == 3)
+ if(!strcmp(ptID[n]," DA") || !strcmp(ptID[n]," DG") || !strcmp(ptID[n]," DC") || !strcmp(ptID[n]," DT")) // SJ - 09/17/2014 to ignore DNA residues
+ {
+ return(0);
+ }
+ if(strlen(ptID[n]) == 3)
{ /*interpret as Base name --> 1char 070412 */
if (strstr(NAListA, ptID[n])) {basechr[0] = 'A';}
else if(strstr(NAListG, ptID[n])) {basechr[0] = 'G';}
@@ -294,7 +299,7 @@ int interpretresiduerecord(void)
}
else {basechr[0] = 'Z';}
basechr[1] = '\0';
- }
+ }
else {ptID[n][k+1] = '\0';} /* not overwrite : character*/
}
/*reset for another field*/
@@ -323,6 +328,13 @@ int interpretresiduerecord(void)
if(texts[j] == '?') {nan = 1;} /*NOT a number*/
}
}/*loop through inputed line*/
+ if(LaltIDfield) /* if the altIDfield specified - S.J. 01/07/2014*/
+ {
+ if(!LaltID) /* if the user has not specified which alt to calculate for, calculate for altA*/
+ altID[0]='A';
+ if(!CompArgStr(ptID[altIDfield],altID,1) && !CompArgStr(ptID[altIDfield]," ",1))
+ return(0);
+ }
return(1);
}
/*___interpretresiduerecord()________________________________________________*/
@@ -377,7 +389,7 @@ int interpretsuiterecord(void)
{/* input character */
if(texts[j] != ' ') /*ignore leading blanks*/
if(texts[j] == '_' || texts[j] == '?' ){nan = 1;} /*070525*/
- {numstr[k++] = texts[j];}
+ {numstr[k++] = texts[j];}
}
}/*loop through inputed line*/
/*presume suite kinemage record was intact and good...*/
@@ -390,7 +402,7 @@ int interpretsuiterecord(void)
suiteptr->ang[0] = suiteptr->chim = angle[0];
suiteptr->ang[8] = suiteptr->chi = angle[7+i];
}
- else
+ else
{
i=0;
suiteptr->ang[0] = suiteptr->chim = 180.0;
@@ -404,6 +416,7 @@ int interpretsuiterecord(void)
suiteptr->ang[6] = suiteptr->gamma = angle[5+i];
suiteptr->ang[7] = suiteptr->delta = angle[6+i];
/*now DO NOT need to loadsuite() */
+ return(1);
}
/*___interpretsuiterecord()________________________________________________*/
@@ -482,9 +495,9 @@ float floatfromstr(char ins[256])
freturn = 0.0;
Lstart = 1;
- n = 0;
+ n = 0;
m = 0;
- OK = 1;
+ OK = 1;
if(ins[0] != '\0')
{/* not zero length C string */
while(OK)
@@ -495,7 +508,7 @@ float floatfromstr(char ins[256])
ins[n] == '3' || ins[n] == '4' || ins[n] == '5' ||
ins[n] == '6' || ins[n] == '7' || ins[n] == '8' ||
ins[n] == '9' || ins[n] == '.' || ins[n] == '-' )
- {
+ {
s[m] = ins[n];
m++;
Lstart = 0;
=====================================
suitenout.c
=====================================
@@ -559,6 +559,8 @@ void usageout(void) /* -h -help */
"dangle \"alpha, beta, gamma, delta, epsilon, zeta\" in.pdb >out.dngl\n");
fprintf(stderr,
"label:model:chain:number:ins:type:alpha:beta:gamma:delta:epsilon:zeta\n");
+ fprintf(stderr,"if the file has alternate conformations, then use both -pointIDfields # -altIDfield # to specify the number of pointID fields and which field contains the altID\n"); /* S.J. 01/07/2014*/
+ fprintf(stderr,"use -altIDval <altID> to specify which alternate conformation to calculate suite for. By default calculated for alt A\n");
fprintf(stderr,"-suitein presumes point records from a kinemage\n");
fprintf(stderr,"{pointID} 7 or 9 anglefields \n");
fprintf(stderr,
=====================================
suitenutil.c
=====================================
@@ -66,7 +66,8 @@ float dotproduct(float* first, float* secnd, int nang)
int k=0,kmin=0,kmax=0;
float answer=0;
- if(nang = 4){kmin=2; kmax=5;}
+ //if(nang = 4){kmin=2; kmax=5;}
+ if(nang == 4){kmin=2; kmax=5;}
else {kmin=1; kmax=7;}
answer = 0;
@@ -76,7 +77,7 @@ float dotproduct(float* first, float* secnd, int nang)
/* deltam epsilon zeta alpha beta gamma delta */
/* X X X */
/* X not used in 4 angle calc*/
-
+
answer = answer + (first[k] * secnd[k]);
}
return(answer);
View it on GitLab: https://salsa.debian.org/med-team/suitename/-/commit/dd932622929d6adfd716acbd5f4e6ddaaad75683
--
View it on GitLab: https://salsa.debian.org/med-team/suitename/-/commit/dd932622929d6adfd716acbd5f4e6ddaaad75683
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20201106/3839d3cf/attachment-0001.html>
More information about the debian-med-commit
mailing list