*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] /IF LET X = /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