A leopard almost ate my iMac Things you can only learn from Science (the journal, not science itself)
Jan 30

As promised I’m writing about the free version of TNT. So far I was able to test the Linux version which does not have a graphical interface. I am planning to download a Windows version and test it, but not until next week. So far here are my impressions.

When you start TNT you are greeted by its own prompt, in identical fashion to PAUP and MrBayes. As a regular user (or most of the regular users) I fired up TNT without reading the manual, so my first attempt was to write help at the prompt and the prompt answered by changing itself from “>tnt*” to “>help”. One point against TNT, as either PAUP of MrBayes at least display a list of possible commands. Feeling helpless I decided to access the manual.

The Manual

Oh, my eyes!!! Whoever chose the background colour for the html manual might have an agreement with some optometrist. I cannot read a paragraph without averting my eyes for a “refresh” (if you are interested search for bgcolor=aqua). Anyway, the introductory part of the manual tells you to do exactly what I did, by entering “help” at the prompt. Second thing it tells you is that if you don’t have a Windows version it is not possible to convert your files (i.e. fasta, phylip, nexus) to TNT’s own format. Usual, it follows the rule, one application - one format, they just forgot to include one converter. Just adding insult to injure they suggest that you use a text editor, anyone, and check their example files. Yeah, right. Basically TNT read Hennig86 matrices. Just get them from your 5 1/4″ floppies.

update: there is a way to display the commands at the prompt. “help” alone does not work, it has to be followed by a “;”, but the manual says “help

update II: according to the manual TNT is able to read NEXUS files and can even include TNT commands in a block. Good.

Using TNT

Apparently TNT has a good selection of commands, from what can be seen from its help. It covers most of the things you want to study by using parsimony. It is mentioned in the manual that TNT does not do maximum likelihood (don’t say!) or bayesian analysis (geez!), but they will incorporate some ML algorithms, even though rudimentary (I bet!).

So, from my shell I started TNT and as I would do in the PAUP CLI version just put the filename as a parameter

./tnt primate-mtDNA.nex (if you really noticed I was using one of PAUP’s example files)

No dice. So I dig deeper in the manual and find a section dedicated to us poor Linux and OS X users

Linux and Mac OS X versions of TNT have a couple differences with the standard versions. First, those versions can take a comma ( , ) instead of a semicolon ( ; ). This is because the shells there use semicolons to separate commands, and giving arguments to TNT from the command line becomes difficult. Second difference is that those versions can run in the background. If you want to start TNT in the background, use bground as first argument, then give the normal arguments you would give the program (do not activate reports and do not change the silent status, but you can set report+ to report every certain number of trees, replications, or seconds, so that you can monitor progress by inspecting the output file; make sure you do have output files, otherwise the program would run and exit without doing anything!), and end with the usual ‘&’. TNT will not write to the console, or expect console input (at least if no errors occur). It will write its results to a file and exit smoothly (exit code is 0; if the program runs out of commands while in the background it exits with code 1). Should some error occur during the search, the program writes a message to the ouptut file, and exits with code 255. Try

./tnt bground p zilla.tnt, echo=, log peep, rep+1, mu10=ho3, le, ne, quit, &

and do “tail –f peep” to monitor search progress.

Very simple and straightforward. But at least I got a clue on how to open a file or use it as a parameter. So I repeat my first command line with the parameter p and then the filename

./tnt p primate-mtDNA.nex

Success … no not so fast. An error is reported:

PISH (Phylogenetic Inference SHell)

Reading from primate-mtDNA.nex
Reading file primate-mtDNA.nex as NEXUS

Data from:
Hayasaka, K., T. Gojobori, and S. Horai. 1988. Molecular phylogeny
and evolution of primate mitochondrial DNA. Mol. Biol. Evol.
5:626-644.

… Skipping taxa block …
… Skipping characters block …
Error reading NEXUS file: expected cost
Error reading primate-mtDNA.nex
g = coding; usertype 2_1 = 4 [weights transversions 2 times transitions

OK, fine. But what’s PISH? No clue. I edited the file and removed the assumptions block, as TNT seems buggy to read square-bracket enclosed comments on PAUP blocks. I tried again and it worked but skipped both the characters and taxa blocks. Time to use one TNT’s example files. So I chose the more evident example.tnt. I repeated the above command now using the tnt file as input. Everything works fine, data is read, stored and ready to go. Basically you have a number of commands that you can use to obtain your trees. I used only mult which does multiple random addition sequences plus TBR (RAS+TBR) to find the most parsimonious tree(s). The program is fast for a morphology matrix of 84 characters and 112 taxa. In less than a second the tree is calculated.

But there is a major problem visualizing the tree(s): the so called PISH (Phylogenetic Inference SHell) does not allow scroll. So after obtaining the tree and using the ne command to visualize it you are left with a “tail” of the tree only. After some fidgeting I found a way to export trees to NEXUS format and could check the trees obtained. By using the command export with a dash and filenames as parameters.

tnt*>export -

Conclusions

TNT seems to be a powerful software and should be able to please anyone intending to employ parsimony as their phylogenetic method of choice. It is fast and, according to the documentation, is loaded.

On the other hand it is still (and probably will be for some time) limited and the CLI version for Linux is not the poster version of a user friendly application. There are many drawbacks and it is very difficult to learn the program without a deep study of the manual. Also the documentation is more focused to the GUI Windows version and the commands that can be used in Linux/OS X are not clear at first. In my opinion the worst feature of PISH is the lack of scroll (if there is scroll I wasn’t able to turn it on) especially when the tree visualization is selected.

Overall is TNT is a fair application, geared to its already known audience. Even being free, I don’t see it occupying the place of PAUP, Phylip and MrBayes in the phyloege. Not without major changes.

Update: another review, of the GUI version is available here.

15 Responses to “TNT: a(n) (almost) comprehensive review”

  1. Matt Says:

    Maybe not quite a comprehensive review ;). I’m not sure if TNT needs major changes (yet), it just needs major documentation, like a wiki. Doing an ‘export format=nexus;’ from PAUP should give you a nexus file that is readable by TNT, that seems to trim out all the things TNT can’t handle.

  2. nuin Says:

    Yep, I admit it could be better, but I am willing to test the graphical version too.

    Documentation is a must, because in some cases (as in Hennig86) some command names are not clear.

    I will try re-exporting the file with PAUP and see how it goes. Stay tuned for a longer review next time.

  3. Matt Says:

    Good that your doing this. The graphical version is pretty good, but still fairly cryptic. IMO the real power of TNT will come when people get a feel for what can be done with the built in scripting engine, again, that’s going to take more than the couple of examples that come with the program.

  4. nuin Says:

    I remember the older GUI versions of TNT were pretty good, and also a little bit cryptic. I haven’t checked the scripting capabilities yet but I am planning to do so.

    The only “problem” that I see to make TNT more popular is the lack of ML and other methods.

  5. Matt Says:

    To play the devils advocate- does MrBayes fail because it doesn’t include parsimony based approaches? Beast? RaxML? TNT is geared towards looking at very large problems, its not even recommend for small (< 100 or so IIRC, see the oh-so-brief manual) problems, as no advantage is gained vs. PAUP etc. in those cases. RaxML, arguably one of the fastest programs for doing ML on large datasets (which are becoming the norm) actually does best when fed a parsimony based tree from a fast swapping program (like TNT) as a starting point. The point is- large analyses are not going away, and TNT has a major role to play in them, even if it only does parsimony. To my knowledge nothing swaps faster. But wait you say, parsimony methods fail in certain situations. So does ML. I would argue neither point is relevant or very exciting given that larger and larger datasets are going becoming the norm. With enough signal its not going to matter what method one uses to find the tree, and in those cases TNT then starts to become very popular.

  6. Paulo Nuin Says:

    I agree with you. In part. I also believe the large problem will be the most sought in the coming years, but I still think the bulk of the phylogenetic analysis will be done with small sets.

    Is TNT having only parsimony a “problem” for its popularity? I think so. Of course the fact that MrBayes only has bayesian is also a “problem”. Eclectic packages are the way to go for users, because most of the time you are not analysing the big problem, but rather a small one and if you have all methods in one place things get easier. I am writing an interface for a phylogenetic application that uses four command line programs and requires a couple of other applications to allow the user to complete the analysis.

    TNT always had its niche and it is the best in it. It comes from a good heritage of programs and algorithms. Hennig86 was one of the best algorithms taking advantage of the limited (comparing to the present time) computer resources.

    PAUP, in its eternal beta mode, also has drawbacks, and people that were very confortable using the GUI on a Mac now cannot use it anymore on the new Mac Intels. Phylip is also cryptic to use, the interface lacking user-friendliness.

    I am reviewing TNT’s interface, you will read more in the coming days.

    As anything in life, except for socks and some ball caps, there is no one-size-fits-all solution.

  7. Matt Says:

    Meh- hard to argue with that! ;) Looking forward to the review.

  8. Paulo Nuin Says:

    It is coming most probably Sunday or early Monday. I have a draft ready, including screen captures.

  9. Francisco Collantes Says:

    Could somebody explain how install in linux, please?

  10. Paulo Nuin Says:

    Hi Francisco

    There is no installation procedure for Linux. The program is pre-compiled, so after you download it (http://www.zmuc.dk/public/phylogeny/tnt/tnt.tar.gz), unzip the package into a new directory and just run

    ./tnt

    You should see TNT’s prompt then and you are ready to go.
    Paulo

  11. Francisco Collantes Says:

    Thanks Paulo. I was so easy. I think I’d be a good idea to add your words in the includel html file in the package:

    “unzip the package into a new directory and just run: ./tnt”

    Now I’m going to start to “play” with the software.

    Thanks again,
    Paco

  12. Paulo Nuin Says:

    Hi Francisco

    I just did a review, I am not a developer of TNT so I can’t change it. It would be good to improve TNT’s help but there is little I can do.

    Paulo

  13. Francisco Collantes Says:

    Hi
    I know you cannot do it. I’m agree you that improving help is very necessary, at least for linux’s ursers. Also it’d be better if there were a manual (any kind of doc) with all commands.

  14. Paulo Nuin Says:

    Hi
    Indeed the Linux help is pretty poor, maybe because they devoted more effort to the Windows version with the GUI. It is quite difficult to understand what exactly can be done in Linux.

  15. TNT: review of the graphical interface Says:

    […] Update: another review is available here. […]

Leave a Reply