PROCESS source listing

NOTE: see granulesdoc.html for instructions
###################################################################################
10  ID$="PROCESS 1.0 mod B2C 7/19/89 Copyright (C) 1989 D.K. Hartline and R.W. Newcomb"
20 PRINT ID$
100 'B2B - Addition of variable 1/R and 1/K options
101 'B2B - Corrections in B2A
102 'B2A - Amalgamation of former B01 - B07
110 '
112 ' Main program is based on equations 1 and 2 of Newcomb, Hartline &
114 ' Cooke (1988):
116 ' 
117 ' (Eq 1): dP(i,j)/dt   = S1 + S2 - S3 * P(i,j)
118 '         dP(1,N+1)/dt =   S - S3 * P(1,N+1)        where
119 '
120 '       i-1
122 ' S1 = SIGMA K(m,j,i-1) P(m,j)    cleavage site i-1 on chains ending at j
123 '       m=1
125 '
126 '       N+1
127 ' S2 = SIGMA K(i,m,j) P(i,m)      cleavage site j on chains beginning at i
128 '      m=j+1
130 '
131 '           j-1
132 ' S3 = R + SIGMA K(i,j,m)         internal cleavage of P(i,j) & rlse 
133 '           m=1
134 '
140 ' For steady state situations, dP(i,j)/dt = 0, so
142 '
144 ' (Eq 2):     P(i,j)[ss]   = (S1 + S2)/S3      ([i,j] <> [1,N+1])
145 '             P(1,N+1)[ss] =     S/S3
146 '
148 ' Providing the calculations are made for larger chains before shorter
150 ' ones, steady-state values can be calculated sequentially.
152 '
154 'Segment:1     2      I-1     I             J     J+1      N    N+1
156 '     ._____._____..._____||_____._____..._____||_____..._____._____.
158 'Site:      1     2       I-1    I       J-1    J             N
160 '
162 '   / ._____._____..._____||_____._____..._____.
164 'S1<        ._____..._____||_____._____..._____.
166 '   \               ._____||_____._____..._____.
167 '        1 ---------> I-1
168 '
170 '   /                      ._____._____..._____||_____..._____._____.
172 'S2<                       ._____._____..._____||_____..._____.      
174 '   \                      ._____._____..._____||_____.              
175 '                                                J+1 ----------> N+1
176 '
178 '   /                      ._____||____..._____.
180 'S3<                       ._____._____||._____.
182 '   \                      ._____._____.||_____.
184 '
290 '                      *******************
291 '*********************** INITIALIZATIONS *******************************
292 '                      *******************
293 '
299 '+++++++++++++++++++++ SPECIAL CONSTANTS ++++++++++++++++++++++++++++++++
300 FORM$="PROCESSB2A"       'Parameter file format ID                      +
305 PROCPRE=230              'Processed precursor normalization(=230 for SG)+
319 '++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
320 PFM$="#.#### ": EF%=0 : PRM%=1: PROC%=2
325 INPUT "INPUT/OUTPUT DATA DISK (A:, B:, C:) =";DDSK$
330 INPUT "OUTPUT MODE: 0=SCREEN, 1=PRINTER, 2=DISK";PF%
340 IF PF%>0 THEN INPUT "DATE";DA$: INPUT "RUN #";RU$: LPRINT ID$;":   RUN ";RU$;" OF ";DA$
350 INPUT "PARAMETER FILE ( for default: PROCTST.PRM)";PFILE$
355 IF PFILE$="" THEN PFILE$="PROCTST.PRM"
357 IF PF%>0 THEN LPRINT "PARAMETER FILE=";PFILE$
360 OPEN "I",#PRM%,PFILE$: INPUT #PRM%, PID$,FMT$,N%  'Open Param file & check
370 IF FMT$<>FORM$ THEN INPUT "PARAMETER FILE FORMAT INCOMPATIBILITY (Press any key)";A$: CLOSE #PRM%: GOTO 350
380 PRINT "FILE ID=";PID$: IF PF%>0 THEN LPRINT "FILE ID=";PID$
390 IF PF%<2 THEN GOTO 440
400 INPUT "OUTPUT-FILE NAME (8 characters; no ext.)";NA$: NA$=LEFT$(NA$,8)
410 OUTFILE$=DDSK$+NA$+".PRN"
420 PRINT "FULL NAME GIVEN TO FILE WILL BE ";OUTFILE$: LPRINT "OUTPUT FILE=";OUTFILE$
430 OPEN "O",#PROC%,OUTFILE$
440 PRINT "NUMBER OF CLEAVAGE SITES=";N%: IF PF%>0 THEN LPRINT "NUMBER OF CLEAVAGE SITES=";N%
450 FOR J%=2 TO N%+1
460  FOR I%=1 TO J%-1
470   FOR M%=I% TO J%-1
480    INPUT #PRM%, K(I%,J%,M%)
490    PRINT "K(";: PRINT USING "#";I%;J%;M%;: PRINT ")=";K(I%,J%,M%);
500    IF PF%>0 THEN LPRINT "K(";:LPRINT USING "#";I%;J%;M%;:LPRINT ")=";K(I%,J%,M%);
510 NEXT M%: PRINT: IF PF%>0 THEN LPRINT
520 NEXT I%,J%
530 PRINT "KE'S=";: IF PF%>0 THEN LPRINT "KE'S=";
540 FOR M%=1 TO N%                               'Initial enzyme conc's & decay
550  E(M%)=1                                     '(ff line 170 B07)
560  INPUT #PRM%,KE(M%)
570  PRINT KE(M%);: IF PF%>0 THEN LPRINT KE(M%);
580  NEXT M%
590 PRINT: IF PF%>0 THEN LPRINT
595 GOTO 605
597 '
598 '*********************** MAIN MENU ***************************************
599 '
600 CLS
605 PRINT "MAIN MENU:"
610 PRINT "   0 = RETURN TO BASIC           1 = KINETIC: PULSE-CHASE (S=R=0)"
615 PRINT "   2 = KINETIC: CONSTANT S,R     3 = SS: VARIABLE R"
620 PRINT "   4 = SS: VARIABLE K            "
625 PRINT "   5 = CHANGE NORMALIZATION      6 = CHANGE OPTION FLAGS"
630 PRINT "   7 = SS: VARIABLE 1/R          8 = SS: VARIABLE 1/K
650 INPUT MM%: IF MM%=0 THEN CLOSE: END
655 FOR I%=1 TO N%+1: FOR J%=I% TO N%+1: P(I%,J%)=0: NEXT J%,I%
660 ON MM% GOTO 800,900,1000,1100,1200,1300,1400,1500
670 GOTO 600
797 '
798 '************ 1: PULSE-CHASE (=B01,5,6) **********************************
800 P(1,N%+1)=1: S=0: R=0
805 INPUT "MAX T=";TMAX
810 INPUT "TIME INCREMENT";DT: IF PF%>0 THEN LPRINT "MODEL TIME INCREMENT=";DT
815 T=DT
820 IF PF%>1 THEN PRINT #PROC%,CHR$(34);FORM$+"1";CHR$(34);" ";N%;TMAX;DT
825 IF PF%=2 THEN PRINT #PROC%,CHR$(34);"T";CHR$(34);",";: GOSUB 870
830 PRINT "T=";T:IF PF%>0 THEN LPRINT "T=";T 
835 IF PF%>1 THEN PRINT #PROC%, USING "###.## ";T;
840 GOSUB 2000: GOSUB 2200
850 T=T+DT
860 IF T0 THEN LPRINT "VARIABLE R FROM ";R;" TO ";RMAX;" INC=";DR
1015 IF PF%=2 THEN PRINT #PROC%, CHR$(34);FORM$+"3";CHR$(34);",";N%;R;RMAX;DR: GOSUB 870
1020 PRINT "R=";R:IF PF%=1 THEN LPRINT "R=";R ELSE IF PF%=2 THEN PRINT #1,R;
1025 S=R                                         'former line 200, B03
1030 GOSUB 2000: GOSUB 2200
1040 R=R+DR
1050 IF R0 THEN LPRINT "VARIABLE ENZYME ACTIVITY AT SITE ";NK%;", FROM ";K;"x TO ";KMAX; "x BY INCS OF ";DK; "; R=";R
1112 E0=E(NK%)                                   'Save original enzyme conc
1115 IF PF%=2 THEN PRINT #PROC%,CHR$(34);FORM$+"4";CHR$(34);",";NK%;K;KMAX;DK;R: GOSUB 870
1120 PRINT "K-MULTIPLIER=";K:IF PF%=1 THEN LPRINT "K-MULTIPLIER=";K ELSE IF PF%=2 THEN PRINT #PROC%,K;
1125 E(NK%)=K
1130 GOSUB 2000: GOSUB 2200
1140 K=K+DK
1150 IF KNONE P(1,N+1)=1; 1=>PROCESSED PRECURSOR=";PROCPRE
1205 INPUT SF%
1210 IF SF%=1 AND PROCPRE>10 THEN PFM$="####.# " ELSE PFM$="#.#### "
1220 IF PF%>0 THEN LPRINT "STEADY-STATE NORMALIZATION FLAG=";SF%
1290 GOTO 600
1297 '
1298 '********************** 6: CHANGE OPTION FLAGS **************************
1300 INPUT "ENZYME-DEGRADATION: 0=NO; 1=YES";EF%
1310 IF PF%>0 THEN LPRINT "ENZYME-DEGRADATION FLAG=";EF%
1390 GOTO 600
1397 '
1398 '************* 7: STEADY STATE, VARIABLE RELEASE  (1/R) ***************
1400 INPUT "INITIAL, FINAL RELEASE TIME CONSTANTS, INCREMENT";TAU,TAUMAX,DTAU
1410 IF PF%>0 THEN LPRINT "VARIABLE 1/R FROM ";TAU;" TO ";TAUMAX;" INC=";DTAU
1415 IF PF%=2 THEN PRINT #PROC%, CHR$(34);FORM$+"3";CHR$(34);",";N%;1/TAU;1/TAUMAX;DTAU: GOSUB 870
1420 R=1/TAU
1422 PRINT "R=";R:IF PF%=1 THEN LPRINT "R=";R ELSE IF PF%=2 THEN PRINT #1,R;
1425 S=R                                         'former line 200, B03
1430 GOSUB 2000: GOSUB 2200
1440 TAU=TAU+DTAU
1450 IF TAU0 THEN LPRINT "VARIABLE ENZYME ACTIVITY AT SITE ";NK%;", FROM 1/";K;" TO 1/";KMAX; " BY INCS OF ";DK; "; R=";R
1512 E0=E(NK%)                                   'Save original enzyme conc
1515 IF PF%=2 THEN PRINT #PROC%,CHR$(34);FORM$+"4";CHR$(34);",";NK%;K;KMAX;DK;R: GOSUB 870
1520 PRINT "K-DIVISOR=";K:IF PF%=1 THEN LPRINT "K-DIVISOR=";K ELSE IF PF%=2 THEN PRINT #PROC%,K;
1525 E(NK%)=1/K
1530 GOSUB 2000: GOSUB 2200
1540 K=K+DK
1550 IF K2 THEN P(I%,J%)=(S1+S2)/S3         'Steady state P(i,j)'S
2145   IF MM%>2 AND SF%=1 THEN P(I%,J%)=P(I%,J%)*PROCPRE/(1-P(1,N%+1))
2150   NEXT J%,I%
2155 IF MM%>2 THEN GOTO 2197           'Steady state done
2160 FOR I%=1 TO N%+1                  'Time-dependent final P(i,j)'s
2165  FOR J%=I% TO N%+1
2170   P(I%,J%)=P(I%,J%)+(S1(I%,J%)+S2(I%,J%)-S3(I%,J%)*P(I%,J%))*DT
2175   NEXT J%,I%
2180 IF EF%=0 OR MM%>2 THEN GOTO 2197 'Degradation of processing enzymes
2185 FOR M%=1 TO N%
2190  E(M%)=E(M%)-KE(M%)*E(M%)*DT
2195  NEXT M%
2197 RETURN
2199 '*************** PRINT OUT subroutine *************
2200 PRINT "P:   ";: FOR I%=1 TO N%+1: PRINT USING "   #   ";I%;: NEXT I%: PRINT
2220 IF PF%>0 THEN LPRINT "P:   ";:FOR I%=1 TO N%+1: LPRINT USING"   #   ";I%;:NEXT I%:LPRINT
2230 FOR I%=1 TO N%+1
2240 PRINT I%;:IF PF%>0 THEN LPRINT I%;
2250 FOR J%=1 TO N%+1
2260 IF J%0 THEN LPRINT SPACE$(7);:GOTO 2290 ELSE GOTO 2290
2280 PRINT USING PFM$;P(I%,J%);    :IF PF%>0 THEN LPRINT USING PFM$;P(I%,J%);: IF PF%=2 THEN PRINT #PROC%, USING PFM$;P(I%,J%);
2290 NEXT J% :PRINT: IF PF%>0 THEN LPRINT
2300 NEXT I%:IF PF%=2 THEN PRINT #PROC%,""
2310 RETURN
2999 'PROCTST.PRM FILE
3000 '"2 - 5 SITE PROCESS.B2B TEST DATA" = PID$ (Parameter file ID)
3005 '"PROCESSB2A"= FMT$ (File-compatibility code)
3010 ' 1          = K(1,2,1)
3020 ' .3,1       = K(1,3,1), K(1,3,2)
3030 ' .1         =           K(2,3,2)
3035 ' 1,1,1,1    =E(M%)'s - decay of processing enzymes, sites 1 - 4
3040 ' 1,.3,1     = K(1,4,1), K(1,4,2), K(1,4,3)
3050 ' .1,1       =           K(2,4,2), K(2,4,3)
3060 ' .3         =                     K(3,4,3)
3070 ' 1,.1,1,.3  = K(1,5,1), K(1,5,2), K(1,5,3), K(1,5,4)
3080 ' 1,.1,1     =           K(2,5,2), K(2,5,3), K(2,5,4) 
3090 ' .3,1       =                     K(3,5,3), K(3,5,4)
3100 ' .1         =                               K(4,5,4)
3200 ' 1,1,1,1    =E(M%)'s - decay of processing enzymes, sites 1 - 4

PROCTST.PRM #######################################################################

"2 - 5 SITE PROCESS.B2B TEST DATA"
"PROCESSB2A"
2
1          
.3,1       
.1         
1,1,1,1    
1,.3,1     
.1,1       
.3         
1,.1,1,.3  
1,.1,1     
.3,1       
.1         
1,1,1,1


###################################################################################