proc iml; create icdat var{r map dis r1 r2 mu var ic}; do dis=10 to 30 by 10; do rec=0 to 120 by dis; do m1=0 to dis by .1; map=rec+m1; r=(1-exp(-2*dis/100))/2; r1=(1-exp(-2*m1/100))/2; r2=(r-r1)/(1-2*r1); x11=r1*r2/(1-r); p11=.5*(1-r); x22=1-r1*r2/(1-r);p22=.5*(1-r); x12=r1*(1-r2)/r; p12=.5*r; x21=r2*(1-r1)/r; p21=.5*r; mu=x11*p11+x12*p12+p21*x21+p22*x22; Exsq=x11*x11*p11+x12*x12*p12+p21*x21*x21+p22*x22*x22; var=Exsq-mu*mu; ic=var/.25; append; end; end; end; quit; run; /* proc print data=icdat; run; */ symbol1 i=join line=1 value=none color=black ; symbol2 i=join line=2 value=none color=blue ; symbol3 i=join line=3 value=none color=red ; axis1 label=(angle=90 'Information Content' ) order=(0 to 1 by .1); axis2 label=('Location (cM)') order=(0 to 120 by 10); legend1 label=('Distance between markers (cM)'); /* goption target=pslepsfc device=pslepsfc hsize=7in vsize=4in gsfmode=replace; filename grafic 'icplot.eps'; goption gsfname=grafic; */ proc gplot data=icdat; plot ic*map=dis/ haxis=axis2 vaxis=axis1 legend=legend1; run;