mirror of
https://github.com/PDP-10/stacken.git
synced 2026-03-01 09:21:15 +00:00
149 lines
4.9 KiB
QBasic
149 lines
4.9 KiB
QBasic
|
||
100 REM HARDY -- PROGRAM ON THE HARDY-WEINBERG GENETICS PRINCIPLE
|
||
110 REM COPYRIGHT 1973 - STATE UNIVERSITY OF NEW YORK
|
||
120 REM P=FREQUENCY OF T ALLELE (DOMINANT),
|
||
130 REM Q=FREQUENCY OF T1 ALLELE (RECESSIVE)
|
||
140 REM S1=SAMPLE SIZE, R1=NUMBER RECESSIVE
|
||
150 REM DEVELOPED BY K. MOY, R. COOPERMAN, AND A. FRISHMAN
|
||
160 REM PROGRAMMED BY C. LOSIK, JANUARY 1972
|
||
170 REM LATEST REVISION: 11-28-73
|
||
180 REM LET Q=RND(1)
|
||
190 RANDOMIZE
|
||
200 PRINT "POPULATION GENETICS STUDY - THE HARDY-WEINBERG PRINCIPLE"
|
||
205 LETN=6
|
||
210 PRINT
|
||
220 PRINT "HAVE YOU TRIED THIS PROGRAM BEFORE (1=YES, 0=NO)";
|
||
230 INPUT B
|
||
240 IF B=1 THEN 390
|
||
250 IF B<>0 THEN 210
|
||
260 PRINT
|
||
270 PRINT" THE HARDY-WEINBERG PRINCIPLE PROVIDES A SIMPLE WAY"
|
||
280 PRINT"TO CALCULATE THE PROPORTION OF ORGANISMS IN A POPULATION"
|
||
290 PRINT"THAT ARE HOMOZYGOUS DOMINANT, HETEROZYGOUS DOMINANT, OR"
|
||
300 PRINT"HOMOZYGOUS RECESSIVE WITH REGARD TO A SPECIFIC TRAIT. ALL"
|
||
310 PRINT"WE NEED TO DETERMINE THESE PROPORTIONS ARE THE PROPORTION OF"
|
||
320 PRINT"ALLELES IN THE GENE POOL WHICH ARE DOMINANT FOR THIS TRAIT"
|
||
330 PRINT"(P) AND THE PROPORTION WHICH ARE RECESSIVE (Q)."
|
||
340 PRINT
|
||
350 PRINT"WE WILL GIVE YOU A POPULATION OF RATS TO WORK WITH. SOME"
|
||
360 PRINT"HAVE SHORT HAIR, SOME HAVE LONG HAIR. SHORT HAIR IS"
|
||
370 PRINT"DOMINANT, LONG HAIR RECESSIVE. THERE ARE 1000 SPECIMENS."
|
||
380 GO TO 510
|
||
390 PRINT"DO YOU WISH TO COMPILE YOUR OWN INFORMATION ON A SPECIFIC"
|
||
400 PRINT"TRAIT (1=YES, 0=NO)";
|
||
410 INPUT C
|
||
420 IF C=1 THEN 740
|
||
430 IF C<>0 THEN 390
|
||
440 PRINT "DO YOU WANT: 1=THE ORIGINAL RAT POPULATION, OR"
|
||
450 PRINT "2=A NEW RAT POPULATION. WHICH";
|
||
460 INPUT N
|
||
470 IF N=1 THEN 510
|
||
480 IF N<>2 THEN 440
|
||
490 LET N=RND(1)
|
||
500 GO TO 520
|
||
510 LET N=.19
|
||
520 PRINT "HOW MANY RATS DO YOU WANT TO SAMPLE";
|
||
530 INPUT S1
|
||
540 IF S1<>INT(S1) THEN 520
|
||
550 IF ABS(S1-501)>500 THEN 520
|
||
560 PRINT
|
||
570 IF S1>25 THEN 600
|
||
580 PRINT "RAT PHENOTYPE"
|
||
590 PRINT "--- ---------"
|
||
600 LET R1=0
|
||
610 FOR I=1 TO S1
|
||
620 LET Q=RND(I)
|
||
630 IF Q<N THEN 670
|
||
640 IF S1>25 THEN 700
|
||
650 PRINT I;" SHORT HAIR"
|
||
660 GO TO 700
|
||
670 LET R1=R1+1
|
||
680 IF S1>25 THEN 700
|
||
690 PRINT I;" LONG HAIR"
|
||
700 NEXT I
|
||
710 PRINT "TOTAL NUMBER RECESSIVE =";R1
|
||
720 PRINT "TOTAL NUMBER DOMINANT =";S1-R1
|
||
730 GO TO 840
|
||
740 PRINT
|
||
750 PRINT "NUMBER OF ORGANISMS EXAMINED";
|
||
760 INPUT S1
|
||
770 IF S1<1 THEN 750
|
||
780 IF S1<>INT(S1) THEN 750
|
||
790 PRINT "NUMBER OF ORGANISMS SHOWING RECESSIVE TRAIT";
|
||
800 INPUT R1
|
||
810 IF R1<>INT(R1) THEN 790
|
||
820 IF R1<1 THEN 790
|
||
830 IF R1>S1 THEN 750
|
||
840 PRINT
|
||
850 PRINT"WHAT PROPORTION OF THOSE EXAMINED SHOWED THE RECESSIVE TRAIT"
|
||
852 PRINT"THIS IS Q*Q";
|
||
880 INPUT N
|
||
890 IF ABS(N-.5)<=.5 THEN900
|
||
891 PRINT"PLEASE INPUT THE PROPOPORTION IN THE FORM OF A"
|
||
892 PRINT"DECIMAL NUMBER BETWEEN 0.00 AND 1.00"
|
||
894 GOTO850
|
||
900 IF ABS(N-R1/S1)<.01 THEN 930
|
||
910 PRINT "PLEASE CHECK YOUR CALCULATIONS."
|
||
920 GO TO 850
|
||
930 LET Q=SQR(R1/S1)
|
||
940 LET P=1-Q
|
||
950 PRINT
|
||
960 PRINT
|
||
970 IF B=1 THEN 1270
|
||
971 PRINT
|
||
975 PRINT"------------------------------------------------------------"
|
||
976 PRINT
|
||
980 PRINT "TO DETERMINE THE VALUE OF P AND Q AND THE GENOTYPIC"
|
||
990 PRINT "RATIOS, RECALL THAT:"
|
||
1000 PRINT
|
||
1010 PRINT "1. P + Q = 1 SINCE THE PROPORTION OF ALLELES IN THE GENE"
|
||
1020 PRINT " POOL WHICH ARE DOMINANT FOR A TRAIT PLUS THE"
|
||
1030 PRINT " PROPORTION WHICH ARE RECESSIVE REPRESENT ALL ALLELES"
|
||
1040 PRINT " IN THE GENE POOL,"
|
||
1050 PRINT
|
||
1060 PRINT "2. P*P REPRESENTS THE PROPORTION OF THE POPULATION THAT"
|
||
1070 PRINT " ARE HOMOZYGOUS DOMINANT,"
|
||
1080 PRINT
|
||
1090 PRINT "3. 2*P*Q REPRESENTS THE PROPORTION THAT ARE HETEROZYGOUS"
|
||
1100 PRINT " DOMINANT,"
|
||
1110 PRINT
|
||
1120 PRINT "4. Q*Q REPRESENTS THE PROPORTION OF THE POPULATION THAT"
|
||
1130 PRINT " SHOW THE RECESSIVE TRAIT, I.E. THAT ARE HOMOZYGOUS"
|
||
1140 PRINT " RECESSIVE,"
|
||
1180 PRINT
|
||
1190 PRINT "5. P*P + 2*P*Q + Q*Q = 1 SINCE THE PROPORTION OF THE"
|
||
1200 PRINT " POPULATION THAT ARE HOMOZYGOUS DOMINANT, PLUS THE"
|
||
1210 PRINT " PROPORTION THAT ARE HETEROZYGOUS, PLUS THE"
|
||
1220 PRINT " PROPORTION THAT ARE HOMOZYGOUS RECESSIVE REPRESENT"
|
||
1230 PRINT " THE TOTAL POPULATION."
|
||
1240 PRINT
|
||
1241 PRINT"-----------------------------------------------------------"
|
||
1250 PRINT
|
||
1260 PRINT "IN THE ABOVE EXAMPLE, ";
|
||
1270 PRINT "Q =";Q
|
||
1280 PRINT
|
||
1290 PRINT "GENOTYPE"," ","PROPORTION","NUMBER"
|
||
1300 PRINT "--------"," ","----------","------"
|
||
1310 PRINT "HOMOZYGOUS DOMINANT",INT(100*P*P+.5)/100,
|
||
1313 LETZ9=INT(P*P*S1+.5)
|
||
1314 GOSUB 1400
|
||
1320 PRINT "HETEROZYGOUS DOMINANT",INT(200*P*Q+.5)/100,
|
||
1323 LETZ9=INT(2*P*Q*S1+.5)
|
||
1324 GOSUB 1400
|
||
1330 PRINT "HOMOZYGOUS RECESSIVE",INT(100*Q*Q+.5)/100,
|
||
1333 LETZ9=INT(Q*Q*S1+.5)
|
||
1334 GOSUB 1400
|
||
1340 PRINT
|
||
1350 PRINT
|
||
1360 PRINT "DO YOU WISH TO REPEAT THIS PROGRAM (1=YES, 0=NO)";
|
||
1370 INPUT B
|
||
1380 IF B=1 THEN 390
|
||
1390 IF B<>0 THEN 1360
|
||
1399 STOP
|
||
1400 IFZ9=0 THEN 1415
|
||
1405 PRINTTAB(44-INT(LOG(Z9+.005)/LOG(10)));Z9
|
||
1410 RETURN
|
||
1415 PRINTTAB(44);0
|
||
1420 RETURN
|
||
2000 END
|
||
x*U*,1B$$BB$$BB$$BLS |