#!/usr/bin/env python import phylip import sys # Create an infile for fastDNAml #Version 11/25/06 #Synopsis: fastDNAml.csh infile qadd global\ # jmble jseed bstrap tratio spout outgrp usertree ufn #Convert arguments to variables INFILE = sys.argv[1] QADD = sys.argv[2] GLOBAL = sys.argv[3] JMBLE = sys.argv[4] JSEED = sys.argv[5] BSTRAP = sys.argv[6] TRATIO = sys.argv[7] SPOUT = sys.argv[8] OUTGRP = sys.argv[9] USERTREE = sys.argv[10] UFN = sys.argv[11] # Bootstrapping will automatically jumble the sequence. # If fastDNAml_boot finds a Jumble auxiliary line, it # will generate an error message and quit. if BSTRAP == "y": JMBLE = "N" ################################################ # Set up $INFILE for fastDNAml ################################################ #----------------- generate first line ----------------- infile_h = open(INFILE, "r") infile_lines = infile_h.readlines() FIRSTLINE = infile_lines[0] infile_h.close() FIRSTLINE = FIRSTLINE + " Y F T" if QADD == "Y": FIRSTLINE = FIRSTLINE + " Q" if GLOBAL == "Y": FIRSTLINE = FIRSTLINE + " G" if JMBLE == "Y": FIRSTLINE = FIRSTLINE + " J" if SPOUT == "Y": FIRSTLINE = FIRSTLINE + " O" if USERTREE == "Y": FIRSTLINE = FIRSTLINE + " U" #---------------- Write first line and optional command lines------ print FIRSTLINE print "T " + TRATIO if JMBLE == "Y": print "J " + JSEED if SPOUT == "Y": print "O " + OUTGRP #--------------- Write sequence part of file ---------------------- #tail +2 $INFILE # We can no longer use tail +n because the syntax is no longer consistent # between Unix and Linux @ NUMLINES = (`wc -l $INFILE | sed -e "s/^[ ]*//" | cut -f1 -d" "`) - 1 tail -$NUMLINES $INFILE for infile_lines[1:] #--------------- Write user treefile, if supplied ---------------------- if USERTREE == "Y": phylip.ufn(UFN, "", False)