Ejemplo n.º 1
0
        i = n.parent.children.index(n)
        j = i+1
        for c in n.children:
            ## if length:
            ##     c.length += length
            c.parent = n.parent
            n.parent.children.insert(j, c)
            j += 1
        n.parent.children.remove(n)
    return marked
        
if __name__ == "__main__":
    import newick, ascii, os, sys

    s = "(Pteridophyta,((Cycadaceae,((Pinaceae,Gnetaceae),((Araucaria,Agathis)Araucariaceae,(Dacrydium,Podocarpus)Podocarpaceae))),(Amborella,(Nymphaea,((Austrobaileya,(Trimenia,(Schizandra,Illicium)))Austrobaileyales,(((Araceae,Zosteraceae)Alismatales,((Orchidaceae,(Iridaceae,(Amaryllidaceae,Agavaceae)))Asparagales,(Burmanniaceae,(Taccaceae,Dioscoreaceae))Dioscoreales,(Liliaceae,Smilacaeae)Liliales,(Pandanaceae,Cyclanthaceae)Pandanales,((((Calamus,Eugeissona),Mauritia),(Nypa,((Arenga,Borassodendron),(Chelyocarpus,(Licuala,Livistona),(Phytelephas,((Wettinia,Iriartea),(Reinhardtia,(Synechanthus,Chamaedorea),(Aiphanes,Elaeis),Attalea,(Orania,((Geonoma,(Hyospathe,Euterpe)),(Iguanura,Areca))))))))))Arecaceae,(((Poaceae,(Cyperaceae,Juncaceae)),Bromeliaceae)Poales,((Haemodoraceae,Commelinaceae)Commelinales,(Zingiberaceae,Costaceae,Musaceae,Marantaceae,Cannaceae,Heliconiaceae)Zingiberales)))Commelinids))Monocots,(Chloranthus,(((Myristicaceae,((Annona,Powpowia)Annonaceae,(Liriodendron,(Kmeria,Manglietia,(Pachylarnax,(Elmerrillia,Michelia))))Magnoliaceae))Magnoliales,(Calycanthus,(Hernandia,((Litsea,Cryptocaria)Lauraceae,(Kibara,Siparuna)Monimiaceae)))Laurales),((Canellaceae,(Takhtajania,Drimys)Winteraceae)Canellales,(Aristolochia,(Peperomia,Piper)Piperaceae)Piperales))ranalean,((Sabia,Meliosma)Sabiaceae,(Papaveraceae,((Boquila,Akebia)Lardizabalaceae,(Menispermaceae,Ranunculaceae)))Ranunculales,((Buxus,Pachysandra)Buxaceae,(Platanus,(Protea,Helicia)Proteaceae)Proteales,(Gunnera,(((Tetracera,Dillenia)Dilleniaceae,(((Amaranthaceae,Caryophyllaceae),((Nyctaginaceae,Phytolaccaceae),(Portulacaceae,Cactaceae))),(Polygonaceae,Ancistrocladaceae,Nepenthaceae))Caryophyllales),(Balanophoraceae3,Olacaceae,(Opiliaceae,(Santalaceae,Loranthaceae)))Santalales,(((Altingia,Liquidambar)Altingiaceae,(Fothergilla,Hammamelis)Hamamelidaceae,Saxifragaceae,Daphniphyllaceae)Saxifragales,((Vitis,Leea)Vitaceae,((Turpinia,Staphylea)Staphyleaceae,(Geraniales-gen2,(Monsonia,Geranium)Geraniaceae)Geraniales,((Combretaceae,(Onagraceae,(Lythrum,Lagerstroemia)Lythraceae)),((Vochysiaceae,((Eugenia,Syzygium),Rhodamnia)Myrtaceae,(Axinandra,Crypteronia)Crypteroniaceae),((Memecylon,Mouriri),(Pternandra,(Astronia,((((Maieta,Tococa),(Leandra,Clidemia)),(Adelobotrys,Graffenrieda)),(Triolena,(Tropobea,((Macrolenes,Dissochaeta),(Medinilla,Blastus))),(Arthrostemma,(Centradenia,(Tibouchina,Melastoma))))))))Melastomataceae))Myrtales,(Zygophyllaceae,(((Perrottetia,(Quetzalia,((Hippocratea,Salacia),((Gymnosporia,Maytenus),((Crossopetalum,Wimmeria),(Siphonodon,(Euonymus,Celastrus)))))))Celastraceae,(((Lepidobotrys,Oxalis)Oxalidaceae,Connaraceae),(Sloanea,(Elaeocarpus,(Cunonia,Weinmannia)Cunoniaceae)))Oxalidales),(Ctenolophon,((Drypetes,Humiria),(Quiinaceae,Ochnaceae),(Chrysobalanaceae,((Tripura,Dichapetalum)Dichapetalaceae,(Trigoniastrum,Trigonia)Trigoniaceae)),((Caryocaraceae,Irvingia),(Malpighiaceae,(Hypericaceae,Clusiaceae))),(Phyllanthus,(Erythroxylum,(Cassipourea,((Bruguiera,(Rhizophora,(Ceriops,Kandelia))),(Carallia,(Gynotroches,Pellacalyx))))Rhizophoraceae)),(((Hydnocarpus,Ixonanthes),Pangium),(((Viola,Hymenanthera)Violaceae,(Turneraceae,Passifloraceae)),((Casearia,Flacourtia)Flacourtiaceae,(Lacistemataceae,(Salix,Populus)Salicaceae)))),(Neoscortechinia,((Pimelodendron,(Euphorbia,Hura)),((Croton,Hevea),(Trigonostemon,(Acalypha,Ricinus)))))Euphorbiaceae))Malpighiales),(((Polygala,Xanthophyllum)Polygalaceae,((Cercis,Bauhinia)Cercideae,((Prioria,((Copaifera,Sindora),Hymenaea)DetarieaeSS,((Endertia,Saraca),(Intsia,Tamarindus,(Brownea,Macrolobium),Crudia,Cynometra,(Macrolobieae-gen2,Gilbertiodendron)Macrolobieae))Amherstieae)DetarieaeSL,((Dialium,Koompassia)Dialiinae,(((Gleditsia,Gymnocladus),((Senna,Cassia),Caesalpinia,((Delonix,(Peltophorum,Schizolobium)),Tachigalia,(((Mimosa,Adenanthera),(Calliandra,Inga,Archidendron,Albizia,Pithecelobium,Enterolobium)),Acacia,(Parkia,Pentaclethra))Mimosoideae))),(Swartzia,((Dipteryx,(Myrospermum,Aldina)),(Andira,(Ormosia,(Sophora,(Crotolaria,(Ulex,Lupinus))))genistoid,((Aeschynomene,Dalbergia),(Pterocarpus,(Centrolobium,Inocarpus)),Platypodium,Platymiscium)dalbergioid,(Wisteria,(Robinia,Lotus)),(Indigofera,(Fordia,(Canavalia,(Millettia,(Lonchocarpus,Derris)))millettioid,(Clitoria,(Desmodium,(Erythrina,(Spatholobus,(Phaseolus,Vigna)))))phaseoloid)))))Papilionideae))))Fabaceae)Fabales,((Rosaceae,(Rhamnaceae,Elaeagnus,(Ulmaceae,(Urticaceae,(Cecropiaceae,(Moraceae,(Trema,Celtis,Humulus)))))))Rosales,(((Datiscaceae,Begoniaceae),((Cucurbitaceae,Anisophyllea),Octomeles))Cucurbitales,(Nothofagus,((Fagus,(Trigonobalanus,(Castanea,Castanopsis,(Lithocarpus,Quercus))))Fagaceae,((Carya,Juglans)Juglandaceae,(Myrica,(Casuarinaceae,(Betula,Alnus,Carpinus,Corylus,Ostrya)Betulaceae)))))Fagales))))Eurosid1,((Caricaceae,((Arabidopsis,Brassica)Brassicaceae,(Cadaba,Capparis)Capparidaceae)),(((Muntingia,((Dipterocarpus,(Dryobalanops,(Hopea,Shorea,Parashorea))),(Vatica,Cotylelobium),(Upuna,Vateria),Anisoptera)Dipterocarpaceae),((Gonystylus,(Aquilaria,(Daphne,(Phaleria,Dirca))))Thymelaeaceae,(Bixaceae,Cochlospermaceae),((((Grewia,Luehea),Apeiba),(Kleinhovia,Byttneria)),((Neesia,Durio),(Pentace,(Heretiera,Sterculia,Scaphium),(Tilia,Pterospermum),Ceiba)))Malvaceae))Malvales,((((Ailanthus,(Simarouba,Quassia))Simaroubaceae,((Zanthoxylum,Acronychia),(Ruta,Murraya))Rutaceae),(Aglaia,Dysoxylum)Meliaceae),(((Spondias,Mangifera)Anacardiaceae,(Santiria,Bursera)Burseraceae),((Koelreueria,Dodonaea)Sapindaceae,(Acer,Aesculus))))Sapindales))Eurosid2)Rosids))sub-rosids,(((Cornus,Mastixia)Cornaceae,Alangium)Cornales,((((Tetramerista,Pellicieraceae),Marcgraviaceae),Balsaminaceae),((Fouquieriaceae,Polemoniaceae),((Sladeniaceae,Ternstroemia),(Schima,Gordonia)Theaceae,Diospyros,Symplocaceae,(Maesaceae,(Theophrastaceae,(Primulaceae,(Myrsine,Ardisia)Myrsinaceae))),(Diapensiaceae,Styrax),(Sapotaceae,(Barringtonia,Gustavia)Lecythidaceae),(((Ericaceae,Cyrillaceae),Clethra),(Sarraceniaceae,(Actinidia,Saurauia)Actinidiaceae)))))Ericales,(((Platea,Icacina)Icacinaceae,(Boraginaceae,(Rubiaceae,((Gentiana,Fragraea)Gentianaceae,((Logania,Strychnos)Loganiaceae,(Alstonia,(Kopsia,((Rauvolfia,Tabernaemontana),((Thevetia,(Allamanda,Plumeria)),(Apocynum,(Hoya,Asclepias,Dischidia)Asclepiadaceae)))))Apocynaceae)))Gentianales,(((Fraxinus,Chionanthus)Oleaceae,((Bignonia,Catalpa)Bignoniaceae,Gesneriaceae,(Lamiaceae,((Vitex,Teijsmanniodendron)Verbenaceae,(Acanthaceae,Scrophulariaceae)))))Lamiales,(Solanaceae,Convolvulaceae)Solanales)))Euasterid1,((((Stemonurus,Gomphandra)Stemonuraceae,Cardiopteridaceae),(Phyllonomaceae,(Helwingiaceae,(Nemopanthus,Ilex)Aquifoliaceae)))Aquifoliales,(Polyosma,(Pennantiaceae,((Torricelliaceae,Griseliniaceae),(Pittosporaceae,(Apiaceae,(Osmoxylon,((Gastonia,(Aralia,Panax,Sciadodendron)),(Schefflera,(Kalopanax,(Dendropanax,(Oreopanax,(Trevesia,Hedera)))))))Araliaceae))))Apiales,(Adoxaceae,(Diervillaceae,(Caprifoliaceae,(Linnaeaceae,(Morinaceae,(Dipsacaceae,Valerianaceae))))))Dipsacales,(Rousseaceae,Pentaphragmataceae,Campanulaceae,(((Argophyllaceae,Phelliniaceae),Stylidiaceae),Alseuosmiaceae,(Menyanthaceae,((Goodenia,Scaveola)Goodeniaceae,(Calyceraceae,Asteraceae)))))Asterales))Euasterid2))Asterids))Core-eudicots))Eudicots)))))));"
    n = newick.parse(s)
    marked = reduce_unlabeled(n)
    print newick.tostring(n)
    sys.exit()
    
    from numpy import array
    #tree = newick.parse("(a,(b,(c,(d,e))));")
    f = os.path.expanduser("~/Projects/pedic-sympatry/matrices/")
    tree = eval(file(f+"garli-ml.tree").read())
    treespp = tree["species"]
    root = newick.parse(tree["newick"])
    spp = ['alaschanica', 'cheilanthifolia', 'dichotoma', 'kansuensis',
           'oederi', 'plicata', 'przewalskii', 'remotiloba',
           'rhinanthoides', 'roylei', 'rupicola', 'scolopax']
    print root.subtree_mapping(spp, clean=1)
Ejemplo n.º 2
0
        i += 1
    return root


def ultrametricize(node):
    import layout
    n2c = layout.calc_node_positions(node, 1.0, 1.0, scaled=False)
    for n in node.descendants():
        c = n2c[n]
        n.length = c.x - n2c[n.parent].x


if __name__ == "__main__":
    import newick, ascii, os
    ## from numpy import array
    ## #tree = newick.parse("(a,(b,(c,(d,e))));")
    ## f = os.path.expanduser("~/Projects/pedic-sympatry/matrices/")
    ## tree = eval(file(f+"garli-ml.tree").read())
    ## treespp = tree["species"]
    ## root = newick.parse(tree["newick"])
    ## spp = ['alaschanica', 'cheilanthifolia', 'dichotoma', 'kansuensis',
    ##        'oederi', 'plicata', 'przewalskii', 'remotiloba',
    ##        'rhinanthoides', 'roylei', 'rupicola', 'scolopax']
    ## print root.subtree_mapping(spp, clean=1)
    root = bifid_tree(5)
    ultrametricize(root)
    print newick.tostring(root)
    print ascii.render(root)
    #print node2tipsets(root)
    print root.mrca(("SP6", "SP10", "SP18")).label
Ejemplo n.º 3
0
        else:
            n.label = "IN%s" % i
        i += 1
    return root

def ultrametricize(node):
    import layout
    n2c = layout.calc_node_positions(node, 1.0, 1.0, scaled=False)
    for n in node.descendants():
        c = n2c[n]
        n.length = c.x - n2c[n.parent].x

if __name__ == "__main__":
    import newick, ascii, os
    ## from numpy import array
    ## #tree = newick.parse("(a,(b,(c,(d,e))));")
    ## f = os.path.expanduser("~/Projects/pedic-sympatry/matrices/")
    ## tree = eval(file(f+"garli-ml.tree").read())
    ## treespp = tree["species"]
    ## root = newick.parse(tree["newick"])
    ## spp = ['alaschanica', 'cheilanthifolia', 'dichotoma', 'kansuensis',
    ##        'oederi', 'plicata', 'przewalskii', 'remotiloba',
    ##        'rhinanthoides', 'roylei', 'rupicola', 'scolopax']
    ## print root.subtree_mapping(spp, clean=1)
    root = bifid_tree(5)
    ultrametricize(root)
    print newick.tostring(root)
    print ascii.render(root)
    #print node2tipsets(root)
    print root.mrca(("SP6","SP10", "SP18")).label