def test_convert(self): """Basic conversion test. """ for i in range(len(self.handles)): gp_rec = GenePop.parse(self.handles[i]) fd_rec = convert_genepop_to_fdist(gp_rec) assert(fd_rec.num_loci == 3) assert(fd_rec.num_pops == 3)
def test_convert(self): """Basic conversion test. """ for i in range(len(self.handles)): gp_rec = GenePop.parse(self.handles[i]) fd_rec = convert_genepop_to_fdist(gp_rec) assert (fd_rec.num_loci == 3) assert (fd_rec.num_pops == 3)
def test_wrong_file_parser(self): """Testing the ability to deal with wrongly formatted files """ f = open(os.path.join("PopGen", "fdist1")) try: rec = GenePop.parse(f) raise Error("Should have raised exception") except ValueError: pass f.close()
def test_record_parser(self): """Basic operation of the Record Parser. """ for index in range(len(self.handles)): handle = self.handles[index] rec = GenePop.parse(handle) assert isinstance(rec, GenePop.Record) assert len(rec.loci_list) == self.num_loci[index] assert rec.marker_len == self.marker_len[index] assert len(rec.populations) == self.pops_indivs[index][0] for i in range(self.pops_indivs[index][0]): assert len(rec.populations[i]) == \ self.pops_indivs[index][1][i]
def getRefs(expr, gen, numReps): refs = [] for rep in range(numReps): fname = eval(expr) fi = open(fname) rec = GenePop.parse(fi) fi.close() csld = GenePop.Record() csld.loci_list = deepcopy(rec.loci_list) csld.populations=[[]] for pop in rec.populations: csld.populations[0].extend(pop) refs.append(csld) return refs
def test_utils(self): """Basic operation of GenePop Utils. """ for index in range(len(self.handles)): handle = self.handles[index] rec = GenePop.parse(handle) initial_pops = len(rec.populations) initial_loci = len(rec.loci_list) first_loci = rec.loci_list[0] rec.remove_population(0) assert len(rec.populations) == initial_pops - 1 rec.remove_locus_by_name(first_loci) assert len(rec.loci_list) == initial_loci - 1 assert rec.loci_list[0] != first_loci rec.remove_locus_by_position(0) assert len(rec.loci_list) == initial_loci - 2
def calcFs(expr, numReps, gpRefs, gen, refGen): for rep in range(numReps): fname = eval(expr) gpRef = gpRefs[rep] fi = open(fname) rec = GenePop.parse(fi) fi.close() Nes = [] NesP = [] for pop in rec.populations: F = calcF(gpRef.populations[0], pop, len(gpRef.loci_list)) Mes = calcNe(F, gen-refGen, len(gpRef.populations[0]), len(pop)) Ne = Mes[0] NeP = Mes[1:] #print Ne #print "F", F, 100.0*F/129.0, 100*F/74.0 #Ne = (1.0*(gen-refGen))/ (2*F) NesP.append(str(min(NeP))+"#"+str(max(NeP))) Nes.append(Ne) print gen, rep, "NeF", " ".join(map(lambda x: str(x), Nes)) print gen, rep, "NeFPow", " ".join(map(lambda x: str(x), NesP))
def get_basic_info(self): f = open(self._fname) rec = GenePop.parse(f) f.close() return rec.pop_list, rec.loci_list