/*script to generate a list of randomly-selected compartments*/ function make_random_complists(seed, complist, ncomps, newfilebase, listlength, numfiles) float seed // for random number generator str complist // list of all eligible compartments (file). int ncomps // # compts in complist str newfilebase // base name of new file to be created int listlength // approx. # compartments to include in the list. // since it's random, can't guarantee actual #. int numfiles //number of random compartment lists to generate. randseed {seed} int n, fnum float rnum str compname str newfile for (fnum = 1; fnum <= {numfiles}; fnum = fnum + 1) newfile = newfilebase @ "_" @ {fnum} @ ".asc" openfile {newfile} w openfile {newfile} a //cycle through list of possibilities openfile {complist} r for (n = 1; n <= {ncomps}; n = n + 1) compname = {readfile {complist}} // echo {compname} //select a certain percentage of compartments for output rnum = {rand 0 {ncomps}} // echo {rnum} if ({rnum} <= {listlength}) //Include compt writefile {newfile} {compname} echo {compname} " added" end end closefile {newfile} closefile {complist} end end