TO DO: - max parsimony ratchet needs to be multi-threaded Directory Structure of logos: - PAUP Paup working directory - PAUPRat Pauprat working directory -Perl Old and unused perl scripts -Simulator Simulator working directory -logs Log directory - not sure who uses it -r8s R8s working directory Public Perl scripts to use simulator. - makeExperiment.pl - generate_r8s.pl - r8s2logos.pl - logos2PAUP.pl Public Perl scripts to analyze the results. - makeDistances.pl - makeDupTrees.pl - makeScores.pl - makeTrueTree.pl Private Perl scripts necessary for the simulation - comp_distf.pl computes distance matrices for NJ and UPGMA - generate_PAUP.pl generates the PAUP files - generate_PAUPRat.pl generates the PAUPRat file - generate_logos.pl takes a r8s file and generates a logos file - wrap_tds.pl Chain of calls to perl scripts: makeExperiment with parameters: suffix param dir n, u, ht, k, h, i copies all result files into the same directory generate_r8s.pl n, 1.0, "ultra" produces "r8s_$suffix_$param_out.tree" calls r8s/bin/r8s -b -f reads "r8s_$suffix_$param_in.tree" produces "r8s_$suffix_$param_out.tree" r8s2logos.pl k, u, ht, h reads "r8s_$suffix_$param_out.tree" produces "logos_$suffix_$param_out.nex" calls generate_logos.pl k, u, ht, h #primary function is to convert #k, u, ht, h into #logos rates parameters reads "r8s_$suffix_$param_out.tree" produces "logos_$suffix_$param_in.nex" java Simulator reads "logos_$suffix_$param_in.nex" produces "logos_$suffix_$param_out.nex" logos2PAUP.pl k $method reads "logos_$suffix_$param_out.nex" produces "PAUP_$suffix_$param_$method_out.$type" where $type = [trees | scores | cons] calls generate_PAUP.pl k $method reads "logos_$suffix_$param_out.nex" produces "PAUP_$suffix_$param_$method_in.nex" PAUP/paup -n reads "PAUP_$suffix_$param_$method_in.nex" produces "PAUP_$suffix_$param_$method_out.$type" where $type = [trees | scores | cons] generate_PAUPRat nchar nreps pct produces "PAUPRat_$suffix_$param_mpr_in.nex" PAUPRat/pauprat reads "PAUPRat_$suffix_$param_mpr_in.nex" produces "PAUPRat_$suffix_$param_mpr_out.trees" "PAUPRat_$suffix_$param_mpr_out.scores" #makeTrueTree is #NO LONGER NECESSARY since TDS does not work! makeTrueTree $suffix $param $dir reads "$dir/logos_$suffix_$param_out.nex" produces "$dir/result_$suffix_$param_truetree" A file with the true tree in it (not a nexus file) Optional (not implemented): "$dir/result_$suffix_$param_truetree.nex" A file with the true tree in it (nexus format) makeScores $suffix $param $dir reads "$dir/result_$suffix_$param_$method_trees.nex" produces "$dir/result_$suffix_$param_$method_scores" reports for each tree in the result tree file for each tree HI and RC if applicable as well as fp, fn, symdiff score results. makeDistances $suffix $param $dir produces "$dir/result_$suffix_$param_$method_distances.nex" report with for each tree in result tree file distance to tree #1: fp - fn - # interior edges - fp rate - fn rate - symdiff rate makeDupTrees $suffix $param $dir $method produces "$dir/result_$suffix_$param_$method_trees.nex" A file with all the result trees for all methods ? ModelTree 1 tree for all methods MutationTree 1 tree for all methods TrueTree 1 tree for all methods NJ 1 tree for NJ UPGMA 1 tree for UPGMA MP 100 or optimal scored trees for MP MPR nreps or optimal trees for MPR MPU nreps or optimal trees for MPU makeTrees same as makeDupTrees but eliminates duplicates produced by parsimony method. Tree #1, 2, 3 may still be duplicates. Duplicates are identified by symdiff from the scores file. Duplicates are eliminated by PAUP already - which makes this script un-necessary.