options nofmterr nocenter ps=75 ls=250 formdlim='*'; libname in 'C:\Documents and Settings\pkraft\Desktop\Current PC Database'; %include 'C:\Documents and Settings\pkraft\Desktop\CoCo development\29jul05\BPC3_CaP_Utils.sas'; %let snps=ACTHR_001 ACTHR_002 ACTHR_003 ACTHR_004 ACTHR_005 ACTHR_006 CYP17_001 CYP17_002 CYP17_003 CYP17_011 CYP17_017 CYP17_019 CYP17_020 CYP17_023 CYP17_024 CYP19_001 CYP19_002 CYP19_003 CYP19_004 CYP19_005 CYP19_006 CYP19_007 CYP19_010 CYP19_011 CYP19_013 CYP19_014 CYP19_018 CYP19_023 CYP19_025 CYP19_027 CYP19_028 CYP19_031 CYP19_032 CYP19_033 CYP19_034 CYP19_036 CYP1B1_007 CYP1B1_018 CYP1B1_027 CYP1B1_031 CYP1B1_042 CYP1B1_059 CYP1B1_FLJ32954_01 CYP1B1_FLJ32954_02 DOCK5_001 ESR2_001 ESR2_003 ESR2_004 ESR2_006 ESR2_013 ESR2_014 GNRH1_101 GNRHR_101 GNRHR_102 GNRHR_103 GNRHR_104 GNRHR_105 GNRHR_106 GNRHR_107 HSD17B1_001 HSD17B1_005 HSD17B1_006 HSD17B1_009 IGF1_001 IGF1_002 IGF1_004 IGF1_006 IGF1_007 IGF1_010 IGF1_011 IGF1_014 IGF1_016 IGF1_019 IGF1_022 IGF1_027 IGF1_028 IGF1_030 IGFBP1_001 IGFBP1_003 IGFBP1_004 IGFBP1_009 IGFBP1_010 IGFBP1_011 IGFBP1_012 IGFBP1_015 IGFBP3_003 IGFBP3_004 IGFBP3_005 IGFBP3_007 IGFBP3_010 IGFBP3_011 IGFBP3_013 IGFBP3_014 PGR_004 PGR_009 PGR_010 PGR_011 PGR_012 PGR_013 PGR_016 PGR_017 PGR_018 PGR_019 PGR_020 PGR_024 PGR_025 PGR_026 PGR_028 PGR_029 PGR_030 PGR_031 POMC_001 POMC_002 POMC_003 POMC_004 POMC_005 POMC_006; /* Create summary dataset - controls */ data temp; set in.cohort0306; array snps {%numargs(&snps)} &snps; where caco=0; do i=1 to %numargs(&snps); if snps{i} eq '0 0' then snps{i}=' '; if snps{i} eq '9 9' then snps{i}=' '; end; run; proc sort data=temp; by subcoh; run; ods output MarkerSumm=a AlleleFreq=b; proc allele data=temp genocol delimiter=' '; by subcoh; var &snps; run; ods output close; proc sort data=b; by subcoh locus; proc transpose data=b out=c prefix=freq; by subcoh locus; var freq; data c; set c; drop _name_ _label_; proc transpose data=b out=d prefix=allele; by subcoh locus; var allele; data d; set d; drop _name_; proc freq data=temp; tables subcoh / out=e; run; proc sort data=a; by subcoh; data AlleleSummary; merge a(keep=subcoh locus nindiv) e(drop=percent); by subcoh; completion=nindiv/COUNT; drop count; proc sort data=AlleleSummary; by subcoh locus; proc sort data=a; by subcoh locus; data AlleleSummary; merge allelesummary a(keep=subcoh locus nallele) d c; by subcoh locus; data AlleleSummary; merge allelesummary a(drop=nindiv nallele); by subcoh locus; delta=(het-2*freq1*freq2)/(2*freq1*freq2); run; proc datasets; delete a b c d e temp; quit; PROC EXPORT DATA= WORK.ALLELESUMMARY OUTFILE= "C:\Documents and Settings\pkraft\Desktop\Current PC Database\AlleleSummary_Controls.csv" DBMS=CSV REPLACE; RUN; quit;