Previous Page | Next Page

The FAMILY Procedure

Example 6.3 Using Allelic Transmission Scores for Association Tests

Abecasis, Cookson, and Cardon (2000) show how the allelic transmission scores, which are included in the OUTQ= data set, can be used to form various family-based tests for both discrete and quantitative traits. For example, the statistic for the Rabinowitz TDT for quantitative traits (1997) can be calculated using the deviates and weights based on the quantitative trait of interest. The following data set and SAS code demonstrate how this test statistic can be computed from these quantities.

   data fam_q;
      input ped ind father mother qtrt a1-a10;
      datalines; 
    1  1  0  0  30.79   1  1  1  1  2  2  2  2  1  2
    2  1  0  0  15.80   1  1  1  1  2  2  2  2  2  2
    2  2  0  0  23.98   1  1  1  1  2  2  1  2  2  2
    2  3  1  2  22.73   1  1  1  1  2  2  2  2  2  2
    3  1  0  0  18.60   1  2  1  2  2  2  1  2  1  2
    3  2  0  0  18.80   1  1  1  1  2  2  2  2  1  2
    3  3  1  2  25.63   1  2  1  1  2  2  1  2  1  2
    4  1  0  0  17.40   1  1  1  1  2  2  1  2  2  2
    4  2  0  0  28.35   1  2  1  2  2  2  1  2  1  2
    4  3  1  2  18.61   1  2  1  2  2  2  2  2  1  2
    5  1  0  0  19.83   1  1  1  1  2  2  2  2  2  2
    5  2  0  0  24.09   1  1  1  1  1  1  2  1  2  2
    5  3  1  2  22.40   1  1  1  1  1  2  2  2  2  2
    6  1  0  0  28.46   1  1  1  1  2  2  2  2  2  2
    6  2  0  0  27.72   1  2  1  2  1  2  2  2  1  2
    6  3  1  2  13.76   1  1  1  1  2  2  2  2  2  2
    7  1  0  0  16.08   1  2  1  2  2  2  1  2  1  2
    7  2  0  0  30.79   1  1  1  2  2  2  1  2  1  2
    7  3  1  2  16.23   1  2  2  2  2  2  1  2  1  2
    8  1  0  0  25.03   1  2  1  2  2  2  1  2  1  2
    9  1  0  0  28.74   1  1  1  1  2  1  2  2  2  2
   10  1  0  0  23.02   1  2  1  2  2  2  1  2  1  2
   10  2  0  0  26.35   1  2  1  2  2  2  1  2  1  2
   10  3  1  2  19.01   1  1  1  2  2  2  2  2  2  2
   11  1  0  0  21.52   1  1  1  1  2  2  2  1  2  1
   11  2  0  0  22.14   1  1  1  1  2  2  2  1  1  2
   12  1  0  0  12.33   1  1  1  1  2  2  2  2  2  2
   12  2  0  0   8.66   1  1  1  1  2  2  2  2  2  2
   12  3  1  2  11.88   1  1  1  1  2  2  2  2  2  2
   13  1  0  0  15.65   2  2  1  1  2  2  1  2  1  1
   13  2  0  0  15.14   1  2  1  2  2  2  1  2  1  2
   14  1  0  0  25.32   1  1  1  1  2  2  2  2  2  1
   14  2  0  0  23.38   1  2  1  2  2  2  1  2  2  2
   15  1  0  0  24.31   1  1  1  1  2  2  2  2  2  2
   15  2  0  0  29.97   2  1  1  1  2  2  2  2  2  2
   15  3  1  2  22.76   1  1  1  1  2  2  2  2  2  2
   ;

This data set contains five biallelic markers and a quantitative trait along with the pedigree identifiers for trios consisting of genotyped parents and a single offspring. Note in the following code for PROC FAMILY that there is no TRAIT statement since there is no dichotomous trait, but that the OUTQ= option is used in the PROC FAMILY statement to identify a data set containing the allelic transmission scores. The deviates that are used for creating the Rabinowitz test statistic are contained in the variables that begin with "W_ ". PROC MEANS is used to obtain the sample mean of the quantitative trait qtrt among the offspring. A test statistic for each of the five markers is then calculated using the formulas given in Rabinowitz (1997); a general form of these formulas that uses the deviates is shown in Abecasis, Cookson, and Cardon (2000).

   proc family data=fam_q outq=w(drop=a1-a2 b:);
      var a1-a10;
      id ped ind father mother;
   run;
   
   proc means data=w noprint;
      var qtrt;
      output out=stats(keep=qbar) mean=qbar;
      where ind > 2;
   run;
      
   data _null_;
      set stats;
      call symput('qbar',trim(left(qbar)));
   run;
      
   data rab_test;
      set w end=last;
      where ind > 2;
      array w{10} w:;
      array num{5};
      array var{5};
      array t{5};
      array pvalt{5};
      a = qtrt - %sysevalf(&qbar);
      do i=1 to 5;
       aw = w{2*i-1} * a;
       num{i} + aw;
       var{i} + (aw*aw);
       if last then do;
        t{i}=num{i}/sqrt(var{i});
        pvalt{i}=2*(1-probnorm(abs(t{i})));
        if i=5 then output;
       end;
      end;
      keep t1-t5 pvalt1-pvalt5;
   run;
    
   proc print data=rab_test noobs;
      title 'Test Statistics and P-Values for 5 Markers';
   run;

The data set containing the test statistic and corresponding -value for each marker is displayed in Output 6.3.1. From this output, you can conclude that there are no markers significantly linked and associated with the QTL for this quantitative trait.

Output 6.3.1 Rabinowitz Test Statistics
Test Statistics and P-Values for 5 Markers

t1 t2 t3 t4 t5 pvalt1 pvalt2 pvalt3 pvalt4 pvalt5
-0.53461 0.72887 1 0.17060 0.95693 0.59292 0.46608 0.31731 0.86454 0.33860

Previous Page | Next Page | Top of Page