Phylogenetics On Rick's Network

PORN*: A hierarchical likelihood ratio calculator for LINUX written in PYTHON.

an on-going project to manipulated PAUP* and automate data analysis of DNA sequences.

By Charles D. Bell.

[Background] [Features] [Requirements] [License] [Download] [Online Version]

Background

PornStar is a group of command-line executables developed for Linux that allow you to; 1) create Paup* maximum likelihood search and bootstrap blocks and 2) perform a series of likelihood ratio tests to determine a "best" fitting model for your data. This part of Pornstar is a complete RIPOFF-HACK (Although all of the code was written from scratch, the idea was stolen) of David Posada's ModelTest; it even uses the same executable PAUP block file. I have, however, left out any AIC calculations. For further information about the use of models/ model fitting in phylogenetic analysis, see:

documentation for PORN*, for starters.... more to come!!!!

The reason for writing PornStar was to make a quick-and-dirty program that could go through a series of likelihood ratio tests and spit out a "best" fitting model. The model found is then $(cat)'d back in a shell script to start the search for that given model. All developement if for the LINUX operating system. Hopefully people are already using this operating system!!!! I have no intensions of developing for Windows(boo-boo) or Mac. With the coming of OSX, I might look into developement on Macs.

Features

1. pornstar executable: The pornstar executable runs exactly like ModelTest. You use PAUP*, along with the model.paup.block to create a model.score file. The p ornstar executable takes two arguements, the input and output file names:

example: ./pornstar model.scores out

or

./Gnome (you can then execute this program with the LRT1 or LRT2 in the file pull down-- NOTE model.scores file has to be in the users current directory for it to find and execute it!!! sorry)

The out file create is solely the model determined to be the "best fitting"!!

2. model.paup.block: nexus command paup block that is executed in PAUP* along with your data file to create a file called "model.score", that pornstar uses to determine the best fitting model.

3. paup_block_maker.py(online version): executable that takes a single arguement in the form of a model name (e.g. HKY) and produces a file that can later be executed in PAUP* to perform a ML search under that model.

4. paup_bootstrap_maker.py: executable that takes a single arguement in the form of a model name (e.g. HKY) and produces a file that can later be executed in PAUP* to perform a ML bootstrap search under that model.

5. ExampleSeqData.nex: example nexus file.

6. As of Pornstar2.0-- GUI versions in both, Gnome (GnomePorn) and tk (pornstar_tk.py)

Running Porn* scripts

all modules in Porn* can be made executable by typing: chmod +x (filename)

Once the progams are made executable, both the paup_block_maker.py and paup_bootstrap_maker.py take a single arguement as one of 56 different models:

'JC','JCI','JCG','JCIG','F81','F81I','F81G','F81IG','K80','K80I','K80G','K80IG','HKY','HKYI','HKYG','HKYIG','TrNef','TrNefI','TrNefG','TrNefIG','TrN','TrNI','TrNG','TrNIG','K81','K81I','K81G','K81IG','K81uf','K81ufI','K81ufG','K81ufIG','TIMef','TIMefI','TIMefG','TIMefIG','TIM','TIMI','TIMG','TIMIG','TVMef','TVMefI','TVMefG','TVMefIG','TVM','TVMI','TVMG','TVMIG','SYM','SYMI','SYMG','SYMIG','GTR','GTRI','GTRG','GTRIG'

example: ./paup_block_maker.py JCIG > out

the resulting out file should look like:

begin paup;set criterion=like autoclose=yes;set increase=auto;Lset nst=1 base=equal rates=gamma shape=est pinv=est;hsearch start=stepwise addseq=random nreps=10 swap=tbr;Savetrees file=ML.trees format=altnexus brlens=yes;

all files create a search block that consists of an heuristic search 10 random-stepwise additons and tbr branch-swapping. Changing these search parameters in fairly trivial in the source code (feel free to do so!!!!). The optimal trees from the search will be saved to a file called "ML.trees" and the trees will be saved in the alternative nexus format (i.e. they won't have a translation table). See the PAUP* web site and pdf documentation for information on the .

The paup_bootstrap_make.py module is run in the same fashion:

./paup_bootstarp_maker.py JCIG >out

the out file should look like this:

#nexus begin paup;set criterion=like autoclose=yes;set increase=auto;Lset nst=1 base=equal rates=gamma shape=est pinv=est;bootstrap nreps=300 search=heuristic / start=nj swap=tbr;Savetrees file=bootstrap.trees format=altnexus brlens=yes;

License

  • PORN* is free software, and is distributed under the terms of the GNU General Public License (GPL).

    Download

    if you would like a copy of PORN* , download a tar file here.

    Requirements

    Included in tar file:

  • GnomePorn
  • (GUI for Gnome: performs top-down[starting with GTRIG parameter rich] and bottom-up [starting with JC parameter poor])
  • paup_block_maker.py (program that makes PAUP* search blocks on the fly by typing which model you want to use
  • ratio_test.py (PYTHON module. Make sure it is installed somewhere in your PYTHON PATH)
  • lrt.py (PYTHON module. Make sure it is installed somewhere in your PYTHON PATH)
  • paup_bootstrap_maker.py
  • pornstar
  • stats.py(PYTHON module. Make sure it is installed somewhere in your PYTHON PATH)
  • model.paup.block
  • pornstar_tk.py
  • model.scores
  • pornstar_top_down.py
  • my_gui_tools.py (PYTHON module. Make sure it is installed somewhere in your PYTHON PATH)
  • pstat.py(PYTHON module. Make sure it is installed somewhere in your PYTHON PATH)
  • In addition to these files, you will need PYTHON

    If you have troubles installing it feel free to email me (remember to remove the dot and at).