Directory of image this file is from
This file as a plain text file
*20 ///RIASSAY /PROGRAM TO DO CALCULATIONS FOR CYCLIC NUCLIOTIDE RADIO-IMMUNO ASSAYS SEGMNT 5 *20 //MAIN CONTROLLER BEG, JMP GETSAM /ENTER SAMPLES\PT JMP GETBL /ENTER BLANK COUNT JMP GETTR /ENTER TRACE BINDING COUNT JMP GETSTD /ENTER STANDARD CURVE COUNTS JMP GETUNK /GET UNKNOWN COUNTS JMP DOPROB /CONVERT % TRACE BINDING TO PROBITS JMP DOLOG /CONVERT STANDARD DOSES TO LOG JMP DOREG /DO LINEAR REGRESSION ANALYSIS OF STANDARD CURVE JMP DOUNK /CALCULATE UNKNOWN VALUES IN PMOLES JMP BEG //SUBROUTINES /ROUTINE TO GET NO. OF DUPLICATE SAMPLES FOR EACH PT IN ASSAY GETSAM, SET 17 0 LIF 4 INTRACT CJSAM MSAM /PROGRAM RIASSAY / SAMPLES\PT: CJSAM, TNUM JSAM TNUM, 0 JSAM, JMP BEG /CR JMP .+1 /NUMBER COM STC PTCNTR /COUNTER STORE SAMPT JMP 17 /ROUTINE TO GET MEAN COUNT VALUE OF BLANK TUBES IN ASSAY GETBL, SET 17 0 JMP SETCNT /SAMPLES\PT CNTR (BETA3) FZER STORE BLANK JMP CRLF LIF 4 MESOUT MBLANK /ENTER BLANKS MORBL, JMP GETNUM /GET NUMBER JMP GETBL+2 /CR - ERROR FADD /NUMBER RETURN BLANK STORE BLANK XSK I 3 /SAMPLES DONE? JMP MORBL /NO /GET MEAN BLANK COUNT FDIV SAMPT /NO. OF SAMPLES STORE BLANK JMP 17 /SUBROUTINE TO INPUT NUMBER FROM TTY GETNUM, LDA 0 STA JNUM ADD KP1 STC NUMRTN LIF 4 INTRACT CJNUM MCOLON /: CJNUM, TNUM JNUM JNUM, 0 /RETURN FOR CR NUMRTN, 0 /NUMBER RETURN /SET COUNTER FOR NUMBER OF SAMPLES PER PT SETCNT, SET I 3 PTCNTR, 0 JMP 0 SAMPT, 0 0 0 /ROUTINE TO GET MEAN TRACE BINDING GETTR, SET 17 0 JMP SETCNT /SAMPLES\PT CNTR FZER STORE TRACE JMP CRLF LIF 4 MESOUT MTRACE /ENTER TRACE MORTR, JMP GETNUM /GET NUMBER JMP GETTR+2 /CR - ERROR FSUB /NUMBER RETURN BLANK FADD TRACE STORE TRACE XSK I 3 /SAMPLES DONE? JMP MORTR /NO /GET MEAN TRACE BINDING FDIV SAMPT /NO. OF SAMPLES STORE TRACE JMP 17 /GET INPUT ENTRIES FOR STANDARD CURVE /FIRST ASK FOR PMOLE VALUE OF STANDARD - STORE IN Q4 DF6 /THEN GET COUNTS FOR EACH STANDARD & CONVERT COUNTS TO % TRACE BINDING AS FOLLOWS: / % TRACE = [(COUNT - BLANK)\TRACE][100] /FINALLY GET MEAN % TRACE BINDING FOR EACH PMOLE STANDARD - STORE IN Q5 DF6 GETSTD, SET 17 0 LDF 6 SET I 1 2000 /PMOLE STORAGE SET I 2 2400 /MEAN % TRACE STORAGE CLR STC STDCNT /NO. OF STANDARD VALUES JMP CRLF LIF 4 MESOUT MSTDS /ENTER STANDARDS NXTSTD, JMP SETCNT /SAMPLES\PT CNTR (BETA3) FZER STORE TEM /GET PMOLE STANDARD VALUE LIF 4 INTRACT CJPM MPM /PM: CJPM, TNUM JPM JPM, JMP ENDSTD /CR - END OF STANDARD ENTRIES JMP .+1 /NUMBER STORE 4\1 /GET MEAN % TRACE BINDING FOR CURRENT PMOLE STANDARD VALUE MORSTD, JMP GETNUM /GET INPUT NUMBER JMP .-1 /CR - ERROR JMP .+1 /NUMBER JMP NORM /NORMALIZE COUNT TO % TRACE FADD TEM STORE TEM XSK I 3 /SAMPLES DONE? JMP MORSTD /NO /GET MEAN JMP MEANPC ISTOR1 4\2 /INCREMENT COUNTER FOR NO. OF PTS IN STANDARD CURVE ADD STDCNT ADD KP1 STC STDCNT JMP NXTSTD ENDSTD, LDA I STDCNT, 0 COM STC SCNTR JMP 17 /SUBROUTINE TO NORMALIZE COUNT TO % TRACE BINDING NORM, FSUB BLANK FDIV TRACE FMUL FHUN /100 JMP 0 TRACE, 0 0 0 BLANK, 0 0 0 /SUBROUTINE TO CALCULATE MEAN % TRACE VALUE AND FIX AS INTEGER MEANPC, FDIV SAMPT /SAMPLES\PT FIXIT, FADD FHALF /ROUND UP FIX FAC JMP 0 /ROUTINE TO GET INPUT UNKNOWNS /INPUT COUNTS FOR EACH UNKNOWN ARE CONVERTED TO MEAN % TRACE BINDING /VALUES ARE STORED IN Q4 DF7 GETUNK, SET 17 0 LDF 7 SET I 1 2000 /UNKNOWN STORAGE CLR STC UNKCNT /NO. OF UNKNOWNS STC CURPT /CURRENT UNKOWN PTR JMP CRLF LIF 4 MESOUT MUNK /ENTER UNKNOWNS NXTUNK, JMP SETCNT /SAMPLE\PT CNTR (BETA3) FZER STORE TEM /INCREMENT CURRENT UNKOWN PTR ADD CURPT ADD KP1 STC CURPT SFLOAT CURPT SETWRD 0400 OUTPUT MNUM /GET UNKNOWN COUNTS LIF 4 INTRACT CJUNK MNUM /(CURRENT UNKNOWN NO.): CJUNK, TNUM JUNK MORUNK, LIF 4 INTRACT CJUNK MCOLON /: JUNK, JMP ENDUNK /CR - END OF UNKNOWN ENTRIES JMP .+1 /NUMBER JMP NORM /NORMALIZE COUNT TO % TRACE FADD TEM STORE TEM XSK I 3 /SAMPLES DONE? JMP MORUNK /NO /GET MEAN UNKNOWN JMP MEANPC ISTOR1 4\1 /INCREMENT NO. OF UNKNOWN ENTRIES COUNTER ADD UNKCNT ADD KP1 STC UNKCNT JMP NXTUNK ENDUNK, LDA I UNKCNT, 0 COM STC UCNTR JMP 17 /ROUTINE TO CONVERT STANDARD & UNKNOWN ENTRIES FROM % TRACE BINDING TO PROBITS /STANDARDS STORED IN Q6-7 DF6 /UNKNOWNS STORED IN Q5- DF7 /STANDARD ENTRIES DOPROB, SET 17 0 LDF 6 SET I 1 2377 /% TRACE PTR SET I 2 3000 /PROBIT STORAGE PTR SET I 3 SCNTR, 0 /NO. OF STANDARD ENTRIES CNTR NXTS, LDA I 1 /% TRACE VALUE JMP PROBIT /CONVERT TO PROBIT LDF 6 STORE 4\2 /STORE PROBIT XSK I 3 JMP NXTS /UNKNOWN ENTRIES LDF 7 SET I 1 3777 /% TRACE PTR SET I 2 2400 /PROBIT STORAGE PTR SET I 3 UCNTR, 0 /NO. OF UNKNOWN ENTRIES CNTR NXTU, LDA I 1 /% TRACE VALUE JMP PROBIT /CONVERT TO PROBIT STORE 4\2 /STORE PROBIT XSK I 3 JMP NXTU JMP 17 /SUBROUTINE TO GET PROBIT VALUE FROM TABLE WHICH CONVERTS PERCENTS TO PROBITS PROBIT, STC TEM ADD 0 STC PROBX ADD TEM ADD DM50 /-50 (10) AZE I JMP PRO5 /50% = PROBIT 5.00 APO JMP LT50 /< 50 % /CURRENT ENTRY > 50 % ADD DM50 COM JMP GETPRO /GET PROBIT VALUE FROM TABLE FCOMP FADD FP10 JMP PROBX /CURRENT ENTRY < 50 % LT50, LDA TEM /GET ENTRY AGAIN JMP GETPRO /GET PROBIT FROM TABLE PROBX, JMP /EXIT GETPRO, MUL I 3 ADA I 3400 /START OF DF7 TABLE STC 10 LDF 7 LOAD 10 JMP 0 PRO5, LOAD FP5 JMP PROBX DM50, -62 /-50 (10) /ROUTINE TO CONVERT RAW VALUES OF STANDARD ENTRIES (PMOLES) TO LOG BASE 10 /STORE LOG BACK IN SAME LOCATION DOLOG, SET 17 0 LDF 6 SET I 1 2000 /STANDARD ENTRIES PTR SET 4 SCNTR /NO. OF STANDARDS CNTR MORLOG, LOAD KP1, 1 JMP LOG /CONVERT TO LOG HLT /ERROR STORE 4\1 XSK I 4 JMP MORLOG JMP 17 /SUBROUTINE TO CALCULATE COMMON LOG (BASE 10) /USES POLYNOMIAL APPROXIMATION / LOG, STORE TEM /X SET 3 0 /CHECK IF X=0 FAZE SKP JMP 3 /ERROR RETURN / ADD TEM /EXPONENT ADA I KM1, -1 /DIV BY 2 STC EXP STC TEM /CLR EXPONENT LOAD TEM FMUL FP2 /1<X<10 / /CALCULATE X DEPENDENT FACTOR IN /POLYNOMIAL APPROXIMATION / STORE TEM FADD SQRT10 STORE XFAC LOAD TEM FSUB SQRT10 FDIV XFAC STORE XFAC / /DO POLYNOMIAL APPROXIMATION / LOAD C5 JMP MULT FADD C3 JMP MULT FADD C1 JMP MULT+2 FADD FHALF STORE TEM / /ADD IN EXPONENT AS MULTIPLE OF LOG 2 SFLOAT EXP FMUL LOG2 /LOG(10) 2 FADD TEM XSK I 3 JMP 3 / MULT, FMUL XFAC FMUL XFAC JMP 0 / / TEM, 0 0 0 XFAC, 0 0 0 LOGE, 7776 /.4342945 3362 6756 LOG2, 7776 /.3010 2320 7126 FP2, 2 /2 2000 0 FP10, 4 /10 2400 0 FHALF, 0 2000 0 C5, 7776 /.2543275 2021 5633 C3, 7776 /.2773839 2160 1242 C1, 0 /.8690286 3363 6125 SQRT10, 2 /SQUARE ROOT 10 3123 /3.16227766 0540 EXP, 0 / /END SUBROUTINE LOG /ROUTINE TO DO LINEAR REGRESSION ANALYSIS ON STANDARD CURVE /X AXIS = LOG STANDARD VALUE (PMOLE) /Y AXIS = PROBIT OF % TRACE BINDING /ZERO OUT THE HOLDING BUFFERS DOREG, SET 17 0 SET I 4 SUMX-1 SET I 5 -17 CLR STA I 4 XSK I 5 JMP .-2 SFLOAT STDCNT /NO. OF STANDARDS STORE N SET I 1 2000 /LOG DOSE PTR SET I 2 3000 /PROBIT STANDARDS PTR SET 3 SCNTR /NO. OF STANDARDS CNTR X, LDF 6 LOAD 4\1 STORE XTEM FADD SUMX STORE SUMX LOAD XTEM FMUL FAC FADD SUMX2 STORE SUMX2 Y, LOAD 4\2 STORE YTEM FADD SUMY STORE SUMY LOAD YTEM FMUL FAC FADD SUMY2 STORE SUMY2 LOAD XTEM FMUL YTEM FADD SUMXY STORE SUMXY /CHECK IF REACHED END OF LINE POINTS XSK I 3 JMP X /NO /DO EX2 = EX2 - (EX)2/N LOAD SUMX FMUL FAC FDIV N FCOMP FADD SUMX2 STORE SIGMA1 /DO EY2 LOAD SUMY FMUL FAC FDIV N FCOMP FADD SUMY2 STORE SIGMA2 /DO EXY LOAD SUMX FMUL SUMY FDIV N FCOMP FADD SUMXY STORE SIGMA3 /CALCULATE THE LINE FORMULA /FIRST GET MEANS LOAD SUMX FDIV N STORE MEANX LOAD SUMY FDIV N STORE MEANY /CALCULATE B LOAD SIGMA3 FDIV SIGMA1 STORE BB /SLOPE /DERIVE VALUES FOR THE EQUATION FMUL MEANX FCOMP FADD MEANY STORE AA /Y-INTERCEPT /WORK OUT ANOV FOR THE LINE /REGRESSION SS LOAD SIGMA3 FMUL FAC FDIV SIGMA1 STORE REGSS /DEVIATION SS LOAD SIGMA2 FSUB REGSS STORE DEVSS /COMPUTE F LOAD N FSUB FP2 STORE DEVDF LOAD DEVSS FDIV DEVDF STORE DEVMS LOAD REGSS FDIV DEVMS STORE FF /COMPUTE R LOAD REGSS FDIV SIGMA2 SQRT FAC STORE R /OUTPUT THIS MESS JMP CRLF JMP CRLF SETWRD 1244 LOAD BB OUTPUT MSLOPE+3 LOAD AA OUTPUT MINTR+6 LOAD R OUTPUT MR+1 LOAD FF OUTPUT MF+1 LIF 4 MESOUT MSLOPE LIF 4 MESOUT MINTR LIF 4 MESOUT MR LIF 4 MESOUT MF JMP 17 N, 0 0 0 YTEM, 0 0 0 XTEM, 0 0 0 SUMX, 0 0 0 SUMY, 0 0 0 SUMX2, 0 0 0 SUMY2, 0 0 0 SUMXY, 0 0 0 SIGMA1, 0 0 0 SIGMA2, 0 0 0 SIGMA3, 0 0 0 BB, 0 0 0 AA, 0 0 0 MEANX, 0 0 0 MEANY, 0 0 0 REGSS, 0 0 0 DEVSS, 0 0 0 DEVDF, 0 0 0 DEVMS, 0 0 0 FF, 0 0 0 R, 0 0 0 /ROUTINE TO CALCULATE PMOLE VALUES OF UNKNOWNS USING LINE EQUATION OF /STANDARD CURVE /BB = SLOPE /AA = Y INTERCEPT DOUNK, SET 17 0 LDF 7 SET I 1 2400 /PROBIT VALUE OF UNKNOWNS PTR SET 4 UCNTR /NO. OF UNKNOWNS CNTR /SET UP TTY OUTPUT JMP CRLF JMP CRLF LIF 4 MESOUT OUTUNK /UNKNOWN VALUES (PMOLE) LDA KP1 STC CURPT /CURRENT UNKNOWN MOROUT, LOAD 4\1 /SOLVE FOR X IN LINE EQUATION /X = (Y-AA)\BB /UNITS OF X = LOG PMOLE FSUB AA /INTERCEPT FDIV BB /SLOPE /GET ANTILOG OF X JMP ALOG /OUTPUT X SETWRD 1044 OUTPUT UNKVAL LOAD CURPT /CURRENT UNKNOWN NO. SETWRD 0400 OUTPUT MOUT LIF 4 MESOUT MOUT /INCREMENT CURRENT UNKNOWN PTR LDA CURPT ADD KP1 STC CURPT XSK I 4 /DONE ALL UNKNOWNS? JMP MOROUT /NO JMP 17 CRLF, SET 16 0 LIF 4 MESOUT MCRLF JMP 16 MOUT, 4040 4040 7240 UNKVAL, 4040 4040 4040 4040 MCRLF, 4543 //SUBROUTINE ANTILOG /CALCULATES ANTILOG OF BASE 10 LOGARITHM HELD IN FLOATING POINT FORMAT /COMPUTED BY POLYNOMIAL APPROXIMATION OF FUNCTION E*X /IF LOG(A) = B /THEN A = 10*B = E*[<B><LN(10)>] /IF LET X = <B><LN(10)> /THEN E*X IS APPROXIMATED BY THE FOLLOWING POLYNOMIAL: / [1+A1(X)+A2(X*2)+A3(X*3)+A4(X*4)]*4 /WHERE A1,A2,A3&A4 ARE CONSTANTS ALOG, SET 3 0 FMUL LN10 STORE TEM /TEST FOR NEGATIVE EXPONENT FAPO JMP INVERT /POSITIVE - CONTINUE WITH POLYNOMIAL APPROXIMATION FOR E*X JMP DOALOG JMP 3 /EXPONENT IS NEGATIVE /USE SAME POLYNOMIAL APPROXIMATION, BUT INVERT RESULT /E*-X = 1\E*X INVERT, FMUL FM1 /MAKE EXPONENT POSITIVE STORE TEM JMP DOALOG RECIP FAC JMP 3 /ROUTINE TO DO POLYNOMIAL APPROXIATION DOALOG, FMUL A4 FADD A3 FMUL TEM FADD A2 FMUL TEM FADD A1 FMUL TEM FADD FP1 FMUL FAC FMUL FAC JMP 0 A1, 7775 /.24991035 3777 2100 A2, 7773 /.03158565 2012 7772 A3, 7767 /.00227723 2251 7313 A4, 7764 /.00026695 2137 5266 LN10, 2 /2.3026 2232 7346 FP1, 1 /1 2000 0 FM1, 1 /-1 5777 7777 FHUN, 7 /100 3100 0 FP5, 3 /5 2400 0 CURPT, 0 MSLOPE, TEXT &SLOPE= & 4543 MINTR, TEXT &Y INTERCEPT= & 4543 MR, TEXT &R= & 4543 MF, TEXT &F= & 4543 MSAM, 4543 4543 4543 4543 TEXT &PROGRAM RIASSAY & 4543 4543 TEXT &SAMPLES\PT: & MBLANK, TEXT &ENTER BLANKS& 4543 MTRACE, TEXT &ENTER TRACES& 4543 MSTDS, TEXT &ENTER STANDARDS & 4543 MUNK, TEXT &ENTER UNKNOWNS& 4543 OUTUNK, TEXT &UNKNOWN VALUES (PMOLE)& 4543 MNUM, 4040 4040 7240 MCOLON, 4040 4040 7240 MPM, 4020 /-P 1540 /M- 7200 AAEND5, 0 SEGMNT 7 *3400 /TABLE OF PROBITS PROTAB, 0 /0% 0 0 2 /1% (2.67) 2527 0244 2 /2% (2.95) 2746 3146 2 /3% (3.12) 3075 3412 2 /4% (3.25) 3200 0000 2 /5% (3.36) 3270 2436 2 /6% (3.45) 3346 3146 2 /7% (3.52) 3412 1726 2 /8% (3.59) 3456 0510 2 /9% (3.66) 3521 7270 2 /10% (3.72) 3560 5075 2 /11% (3.77) 3612 1726 2 /12% (3.82) 3643 6560 2 /13% (3.87) 3675 3412 2 /14% (3.92) 3727 0243 2 /15% (3.96) 3753 4122 3 /16& (4.01) 2002 4366 3 /17% (4.05) 2014 6315 3 /18% (4.08) 2024 3656 3 /19% (4.12) 2036 5605 3 /20% (4.16) 2050 7534 3 /21% (4.19) 2060 5076 3 /22% (4.23) 2072 7025 3 /23% (4.26) 2102 4366 3 /24% (4.29) 2112 1727 3 /25% (4.33) 2124 3656 3 /26% (4.36) 2134 1217 3 /27% (4.39) 2143 6561 3 /28% (4.42) 2153 4122 3 /29% (4.45) 2163 1463 3 /30% (4.48) 2172 7025 3 /31% (4.50) 2200 0000 3 /32% (4.53) 2207 5342 3 /33% (4.56) 2217 2702 3 /34% (4.59) 2227 0244 3 /35% (4.61) 2234 1217 3 /36% (4.64) 2243 6561 3 /37% (4.67) 2253 4122 3 /38% (4.69) 2260 5076 3 /39% (4.72) 2270 2436 3 /40% (4.75) 2300 0000 3 /41% (4.77) 2305 0753 3 /42% (4.80) 2314 6315 3 /43% (4.82) 2321 7270 3 /44% (4.85) 2331 4632 3 /45% (4.87) 2336 5605 3 /46% (4.90) 2346 3146 3 /47% (4.92) 2353 4122 3 /48% (4.95) 2363 1463 3 /49% (4.97) 2370 2436 3 /50% (5.00) 2400 0 //PBLOCK FOLLOWS NOLIST INTRACT=JMP 42 MESOUT=JMP 43 /FLOATING POINT DEFINITIONS. / FAC=0 FSUB=741 FMUL=742 FDIV=743 LOAD=744 STORE=745 SETWRD=746 INPUT=747 OUTPUT=750 ISTOR1=751 SQRT=752 DFLOAT=753 SFLOAT=754 FIX=755 FADD=756 ISTOR2=757 FCOMP=761 FZER=762 FAPO=763 FAZE=764 RECIP=765 / /PBLOCK /FEB 74. LIST //END RIASSAY //JLB //17 FEB 77