def my_tree_loader(tree):
    """ This function is used to load trees within the WebTreeApplication object. """

    t = PhyloTree(tree, sp_naming_function=None)

    #Check one leaf to see if species information is included
    if t.get_leaves()[0].species == "Unknown":
        t.set_species_naming_function(extract_species_code)

    return t
Exemple #2
0
def main():
  fn=sys.argv[1]
  nw=open(fn).readline()
  
  species={}
  t=PhyloTree(nw)
  
  #set species naming function
  t.set_species_naming_function(_get_spcode)
  
  for l in t.get_leaves():
    spCode=l.species
    try:    species[spCode]+=1
    except: species[spCode] =1
    
  for spCode in sorted( species, key=lambda x: species[x], reverse=True ):
    print '%s\t%s' % ( spCode,species[spCode] )
Exemple #3
0
def main():
    fn = sys.argv[1]
    nw = open(fn).readline()

    species = {}
    t = PhyloTree(nw)

    #set species naming function
    t.set_species_naming_function(_get_spcode)

    for l in t.get_leaves():
        spCode = l.species
        try:
            species[spCode] += 1
        except:
            species[spCode] = 1

    for spCode in sorted(species, key=lambda x: species[x], reverse=True):
        print '%s\t%s' % (spCode, species[spCode])
t = PhyloTree("(((Hsa_001,Ptr_001),(Cfa_001,Mms_001)),(Dme_001,Dme_002));")
#                              /-Hsa_001
#                    /--------|
#                   |          \-Ptr_001
#          /--------|
#         |         |          /-Cfa_001
#         |          \--------|
#---------|                    \-Mms_001
#         |
#         |          /-Dme_001
#          \--------|
#                    \-Dme_002
#
# Prints current leaf names and species codes
print "Deafult mode:"
for n in t.get_leaves():
    print "node:", n.name, "Species name:", n.species
# node: Dme_001 Species name: Dme
# node: Dme_002 Species name: Dme
# node: Hsa_001 Species name: Hsa
# node: Ptr_001 Species name: Ptr
# node: Cfa_001 Species name: Cfa
# node: Mms_001 Species name: Mms
#
# We can also use our own leaf name parsing function to obtain species
# names. All we need to do is create a python function that takes
# node's name as argument and return its corresponding species name.
def get_species_name(node_name_string):
    # Species code is the first part of leaf name (separated by an
    #  underscore character)
    spcode = node_name_string.split("_")[0]