#include #include #include #include // nCr*r! subroutine long double combination(int num, int rum) { int temp; long double fact=1; temp = num-rum; while (num > temp) fact *= num--; return(fact); } // factorial subroutine long double factorial(int num) { if (num == 1) return(1); else return(num * factorial(num - 1)); } void main() { long double resn; long double muts; long double libsiz; long double combins; long double facto; long double maxlib; float coverage; cout<<"copyright 2003 by Paul A Dalby, University College London"<>resn; cout<<"enter maximum number of mutations per gene"<>muts; //calculate n fac/n-r fac facto = (combination(resn, muts)); //calculate combinations combins = facto/factorial(muts); //input choice float choice; cout<<"enter allowed number of possible variants at each position"< 1 base mutation/gene)"< 1 base mutation/gene)"<1 residue mutation/gene)"<>choice; // calculate library size maxlib = combins*pow(choice,muts); cout<<"maximum library size is "<>coverage; libsiz = -1*maxlib*log(1-(coverage/100)); cout<<"required number of clones for "<