#include #include #include main() { FILE *inp,*out,*pfile; int ip,init2[2],*pfreq[2],byall; int Subs,nloc,**freq_arr,i,j,k,l,noall[1000],init[1000],ic,*ss,ig,smed; float fsum,hsum,h0,h1,fst,*pf,*ph; char c; inp = fopen("infile","r"); out = fopen("data_fst_outfile","w"); pfile = fopen("pdist.dat","w"); if(inp == 0){ printf("no infile\n"); exit(1); } fscanf(inp,"%d",&byall); /* 1 is by allele 0 is by population */ while(!((c=getc(inp)) == '\n' || c == '\f' || c == '\r')); fscanf(inp,"%d",&Subs); while(!((c=getc(inp)) == '\n' || c == '\f' || c == '\r')); fscanf(inp,"%d",&nloc); while(!((c=getc(inp)) == '\n' || c == '\f' || c == '\r')); freq_arr = (int **)malloc(Subs*sizeof(int *)); pf = (float *)malloc(Subs*(Subs-1)/2*sizeof(float *)); ph = (float *)malloc(Subs*(Subs-1)/2*sizeof(float *)); ss = (int *)malloc(Subs*nloc*sizeof(int)); fsum = hsum = 0.0; ig = 0; for(j=0;j -10.0){ fsum += fst*h1; hsum += h1; } ip = 0; for(i=0;i -10.0){ pf[ip] += fst*h1; ph[ip] += h1; } } } for(k=0;k 0) xx += ((double)gen[j][i]*gen[j][i])/(double)sample_size[j]; } } nc = 1.0/(no_of_samples - 1.0)*(nbar - nbar2/nbar); nbar /= no_of_samples; for(i=0,yy=0.0,ptot = 0;i1){ --l; rra = ra[l-1]; } else{ rra = ra[ir-1]; ra[ir-1] = ra[0]; --ir; if(ir == 0){ ra[0] = rra; return; } } i = l; j = l+l; while(j<=ir){ if(j < ir){ if(ra[j-1] < ra[j])++j; } if(rra < ra[j-1]){ ra[i-1] = ra[j-1]; i = j; j += j; } else j = ir+1; } ra[i-1] = rra; } }