This have been quite here because I have been focusing my energy on work and family. To simplify things, I’m going to focus nearly all of my blogging on the Panda’s Thumb for the time being.
I’ve had the good fortune of having some papers published recently. The first one is a methodology paper concerning a way of extracting phylogenetic information from regions of multiple sequence alignments that are full of indels and difficult to align:
PICS-Ord: unlimited coding of ambiguous regions by pairwise identity and cost scores ordination. (link)
Robert Lücking, Brendan P Hodkinson, Alexandros Stamatakis and Reed A Cartwright
BMC Bioinformatics 2011, 12:10 doi:10.1186/1471-2105-12-10
My co-author, Brendan Hodkinson, has already covered it on his blog.
In molecular biology, an alignment is a partial reconstruction of the evolutionary history of a group of sequences. In an alignment, all residues found in the same column are considered to be descended from a single residue in the ancestral sequence. (Of course, insertions violate this description, but I won’t get into that.) Alignments are not direct observations. They are actually inferences based on the patterns of sequences found in the dataset. Often times there are particular areas in which the alignment is difficult to resolve. Take this example:

A typical problem in multiple sequence alignments where a section is full of gaps and contains a complicated phylogenetic signal. Dark red: high certainty that alignment is accurate; Dark blue: low certainty that alignment is accurate..
It was constructed via the GUIDANCE webserver. (A great resource that everyone should use.) In this example, we have a region defined by a lot of sequence variation created by many insertions and deletions. The alignment is not well defined here, and in most applications it will just be removed, and the data “thrown away”.
But is this the only solution? In our paper we develop a methodology, dubbed PICS-Ord (download), that provides an easy solution for extracting phylogenetic information from problematic regions chosen by its user. PICS-Ord works through a three-step process:
- Realign the segments in pairs using Ngila, and calculate the likelihood of the alignment from an evolutionary model. This produces a distance matrix of the segments.
- Ordinate the distance matrix using principal coordinate analysis (PCoA). This assigns each segment to a point in n-1-dimensional space.
- Quantize each dimension into a set of characters
This might seem a bit odd at first. “Why not just use the distance matrix directly?” That would be great if we could, but there aren’t any phylogenetic programs that we know off that allow the mixing of distance matrices and sequence data. With our method, we get discrete, ordered characters that can be used in popular programs like, RAxML.
There are three example files in the PICS-Ord distribution, and I’ll illustrate its usage with example1.fas. The alignment of these sequence fragments is messy:
100 114 sequence_001 ----------------------------------------------------------------------------tatactatcta--------------------------- sequence_002 -------------------------------------------------------------------aattgtatttatactatata--------------------------- sequence_003 -------------------------------------------------------------------tttaagatttattctatatt--------------------------- sequence_004 tttaggattaattttata--------------------------------------------------------taatactaatata--------------------------- sequence_005 -------------gatgg--------------------------------------------------------ttttacctatata--------------------------- sequence_006 ---------------------------------------------------------------------------tatcattatgca--------------------------- sequence_007 ---------------------------------------------------------------------------tatcattatgca--------------------------- sequence_008 -------------------------------------------------------------------------atatgtttaagata--------------------------- sequence_009 -------------------------------------------------------------------------atatgtttaagata--------------------------- sequence_010 -------------------------------------------------------------------------atatgtttaagata--------------------------- sequence_011 -------------gtac----------------------------------------------------------aattataatata--------------------------- sequence_012 -------------gtac----------------------------------------------------------aattataatata--------------------------- sequence_013 -------------gtac----------------------------------------------------------taatttaatata--------------------------- sequence_014 -------------ctac-----------------------------------------------------------aatataatata--------------------------- sequence_015 -------------ctac-----------------------------------------------------------aatataatata--------------------------- sequence_016 -------------ctac-----------------------------------------------------------attaaaatata--------------------------- sequence_017 -------------ctac-----------------------------------------------------------attaaaatata--------------------------- sequence_018 -------------gtat-----------------------------------------------------------aatttaatcta--------------------------- sequence_019 -------------gtat-----------------------------------------------------------attttaatcta--------------------------- sequence_020 -------------------------------------------------------------------------------ataagata--------------------------- sequence_021 -------------------------------------------------------------------------------ataagata--------------------------- sequence_022 --------------------------------------------------------------------------attataattaata--------------------------- sequence_023 --------------------------------------------------------------------------attataattaata--------------------------- sequence_024 -------------------------------------------------------------------------------ataagata--------------------------- sequence_025 -------------------------------------------------------------------------------ataagata--------------------------- sequence_026 ----------------------------------------------------------------------------aaaaaaaaata--------------------------- sequence_027 -----------------------------------------------------------------------------aaaaaaaata--------------------------- sequence_028 -------------------------------------------------------------------------------acaaaata--------------------------- sequence_029 -------------------------------------------------------------------------------acaagata--------------------------- sequence_030 --------------------------------------------------------------------------------acaaata--------------------------- sequence_031 -------------------------------------------------------------------------------acaaaata--------------------------- sequence_032 -------------gaat-----------------------------------------------------------aatattaaata--------------------------- sequence_033 -------------gaat-----------------------------------------------------------aatattaaata--------------------------- sequence_034 -------------gaaa-----------------------------------------------------------aatattaaata--------------------------- sequence_035 -------------gtat-----------------------------------------------------------tctttaatata--------------------------- sequence_036 -------------gtat-----------------------------------------------------------tatttaatcta--------------------------- sequence_037 -------------gtat-----------------------------------------------------------tatttaatata--------------------------- sequence_038 -------------gtat-----------------------------------------------------------tatttaatcta--------------------------- sequence_039 -----------------------------------------------------------------------------gttttatata--------------------------- sequence_040 -----------------------------------------------------------------------------gtttaatata--------------------------- sequence_041 -------------------------------------------------------------------------atcagtttaatacg------------------ctgagtgat sequence_042 -------------------------------------------------------------------------accagtttaattta------------------ctgggtgat sequence_043 ----------------------------------------------------------------------------------------------ctcagtttctgctgagtggt sequence_044 ----------------------------------------------------------------------------agtttaatatg------------------ctgattgat sequence_045 --------------------------------------------------------------------------------atatgta--------------------------- sequence_046 --------------------------------------------------------------------------------atatgta--------------------------- sequence_047 --------------------------------------------------------------------------------ataagta--------------------------- sequence_048 --------------------------------------------------------------------------------ataagta--------------------------- sequence_049 --------------------------------------------------------------------------------ataagta--------------------------- sequence_050 --------------------------------------------------------------------------------atatgta--------------------------- sequence_051 -----------------------------------------------------------------------------gttttctaat--------------------------- sequence_052 -----------------------------------------------------------------------------gtttactaaa--------------------------- sequence_053 -----------------------------------------------------------------------------gtttactaat--------------------------- sequence_054 -----------------------------------------------------------------------------gtttactaat--------------------------- sequence_055 -------------------------------------------------------------------------------gcta-aaa--------------------------- sequence_056 -------------------------------------------------------------------------------gcta-aaa--------------------------- sequence_057 -------------------------------------------------------------------------------gcta-aaa--------------------------- sequence_058 -----------------------------------------------------------------------------gtttactgaa--------------------------- sequence_059 -----------------------------------------------------------------------------gtttactgaa--------------------------- sequence_060 -----------------------------------------------------------------------------gtttactgaa--------------------------- sequence_061 -----------------------------------------------------------------------------gttagctgaa--------------------------- sequence_062 -----------------------------------------------------------------------------gttagctgaa--------------------------- sequence_063 -----------------------------------------------------------------------------gttagctgaa--------------------------- sequence_064 -------------------------------------------------------------------------------gttt-aaa--------------------------- sequence_065 -------------------------------------------------------------------------------gttt-aaa--------------------------- sequence_066 -------------------------------------------------------------------------------gttt-aaa--------------------------- sequence_067 -------------------------------------------------------------------------------gcta-aaa--------------------------- sequence_068 -------------------------------------------------------------------------------gcta-aaa--------------------------- sequence_069 -----------------------------------------------------------------------------atttacttaa--------------------------- sequence_070 -----------------------------------------------------------------------------atttacttaa--------------------------- sequence_071 -----------------------------------------------------------------------------atttacttaa--------------------------- sequence_072 ---------------------------------------------------------------------------------gttaaa--------------------------- sequence_073 ---------------------------------------------------------------------------------gttaaa--------------------------- sequence_074 aattttattaattactttagtaattaataaggttattttaagtaacagcaaaatattagttaaaagcgttgct-tgcaattagtaaagt--------------agca-ttatta sequence_075 aattatattaattactttagtaattaaatttgttatttttagtaacagcaaaatattagttacaagcgttgct-tgtaattagtaaagt--------------agca-ttatta sequence_076 ---------------------------------------------------------------------------------ttttta--------------------------- sequence_077 ---------------------------------------------------------------------------------ttttta--------------------------- sequence_078 ---------------------------------------------------------------------------------ttttta--------------------------- sequence_079 ---------------------------------------------------------------------------------ttttta--------------------------- sequence_080 -------------gaag-----------------------------------------------------------attaataacta--------------------------- sequence_081 -----------------------------------------------------------------------------atttatatta--------------------------- sequence_082 -----------------------------------------------------------------------------atttatatta--------------------------- sequence_083 actcctact------ttaaacatttagtagtgtcgaacctactgatagcatctggttttctattgg--------tacttataacataaccactaaatatttagagtattaatta sequence_084 actcctact------ttaaacatttagtagtgtcgaacctactgatagcatctggttttctattgg--------tacttataacataaccactaaatatttagagtattaatta sequence_085 -------------gaaa----------------------------------------------------------taacagtaacta--------------------------- sequence_086 -------------aaag-----------------------------------------------------------attagtaacta--------------------------- sequence_087 aattttaca------tttagtttttaatctttatgtttaaaa----acatgtatgctatttatatg--------tatatataatatagt--------------agaacttacaa sequence_088 aattttact-------------------ttgggt-tttaaaa----actagtatgctatgtttatatattaatttatatatcatatagt--------------agaacttacaa sequence_089 aattttact------ctt--tttttaagttttat-atttaaa----atctgtatgctatgtttatatattaatttatatataatatagt--------------agaacttacaa sequence_090 aattttact------ctt--tttttaagttttat-atttaaa----atctgtatgctatgtttatatattaatttatatataatatagt--------------agaacttacaa sequence_091 -------------gtac-----------------------------------------------------------ataataatata--------------------------- sequence_092 -------------gtaca--------------------------------------------------------taataataatata--------------------------- sequence_093 -------------gtaca--------------------------------------------------------taataataatata--------------------------- sequence_094 -------------gtac-----------------------------------------------------------ataataatata--------------------------- sequence_095 ---------------------------------------------------------------ttttttataccaataaataatata--------------------------- sequence_096 ---------------------------------------------------------------ttttttataccaataaataatata--------------------------- sequence_097 ---------------------------------------------------------------ctatttata-taataaataatata--------------------------- sequence_098 -------------ctat-----------------------------------------------------------ataaaaatata--------------------------- sequence_099 -------------ctat-----------------------------------------------------------ataaaaatata--------------------------- sequence_100 -------------ctat-----------------------------------------------------------ataaaaatata---------------------------
But instead of throwing it away, you can process it with PICS-Ord and get a clean set of ordered characters that contain approximately the same phylogenetic information as the sequences above.
100 20 sequence_001 53221002101000000010 sequence_002 44121113101010000000 sequence_003 53211103102011000100 sequence_004 53321103111000010100 sequence_005 53211003101000001000 sequence_006 53221002001000000000 sequence_007 53221002001000000000 sequence_008 43220112011000000000 sequence_009 43220112011000000000 sequence_010 43220112011000000000 sequence_011 53221012011000000000 sequence_012 53221012011000000000 sequence_013 53221012011000100000 sequence_014 53321012001010100000 sequence_015 53321012001010100000 sequence_016 53221013001000000000 sequence_017 53221013001000000000 sequence_018 53221012001000100000 sequence_019 53221012001000001000 sequence_020 53220102011000000000 sequence_021 53220102011000000000 sequence_022 53121012011010000000 sequence_023 53121012011010000000 sequence_024 53220102011000000000 sequence_025 53220102011000000000 sequence_026 53220002001000000000 sequence_027 53220002001000000000 sequence_028 53120102011000000000 sequence_029 53220102011000000000 sequence_030 53120002011000000000 sequence_031 53120102011000000000 sequence_032 53220002111100000000 sequence_033 53220002111100000000 sequence_034 53220002111000000000 sequence_035 53221012011000001000 sequence_036 53221012001000000000 sequence_037 53221012011000000000 sequence_038 53221012001000000000 sequence_039 53221102111000000000 sequence_040 53211002011000000000 sequence_041 53300112011000000000 sequence_042 53200112011010001010 sequence_043 53300103001100001001 sequence_044 53200112001110000000 sequence_045 53120112001000000000 sequence_046 53120112001000000000 sequence_047 53120102001000000000 sequence_048 53120102001000000000 sequence_049 53120102001000000000 sequence_050 53120112001000000000 sequence_051 53211002011000000000 sequence_052 53111002011000000000 sequence_053 53211002011000000000 sequence_054 53211002011000000000 sequence_055 53110002001010000000 sequence_056 53110002001010000000 sequence_057 53110002001010000000 sequence_058 43111002011000000000 sequence_059 43111002011000000000 sequence_060 43111002011000000000 sequence_061 53201002011000000000 sequence_062 53201002011000000000 sequence_063 53201002011000000000 sequence_064 43111002011000000000 sequence_065 43111002011000000000 sequence_066 43111002011000000000 sequence_067 53110002001010000000 sequence_068 53110002001010000000 sequence_069 43111002011000000000 sequence_070 43111002011000000000 sequence_071 43111002011000000000 sequence_072 53111002001000000000 sequence_073 53111002001000000000 sequence_074 59021102011001100000 sequence_075 59020012001110001000 sequence_076 53121102001100000000 sequence_077 53121102001100000000 sequence_078 53121102001100000000 sequence_079 53121102001100000000 sequence_080 53220002001100000000 sequence_081 53121102001000000000 sequence_082 53121102001000000000 sequence_083 90021002001000000000 sequence_084 90021002001000000000 sequence_085 53220002000100000000 sequence_086 53120002000101000000 sequence_087 02121100001000000000 sequence_088 02020003000010100000 sequence_089 02021013011100000000 sequence_090 02021013011100000000 sequence_091 53321002001000000000 sequence_092 53321002011000000000 sequence_093 53321002011000000000 sequence_094 53321002001000000000 sequence_095 53321202010100001000 sequence_096 53321202010100001000 sequence_097 43321102011000001000 sequence_098 53321003001000000000 sequence_099 53321003001000000000 sequence_100 53321003001000000000
I haven’t been keeping up with my Calix Cari polls this year for collage football. But now that the regular season has ended, I have found time to produce one. The events of this season have been rather unpredictable. Of course by the end of the season there were few surprises. Auburn appeared out of nowhere to become #1 on the strength of a once-in-a-decade player who fit perfectly into their offensive system. (Yay, for the booster who had cash to spare in this economy. We will see if their season stands the test of time.) But in my calculation Auburn is only #3, behind Oregon and ¡Stanford! (I still think Harbaugh would make a smooth transition into the coach’s chair at UGA but wouldn’t be there long. It’s good that Richt was retained.)
It appears my algorithm likes the Pac-10 over the SEC, and Auburn lost ground because of its tight victories, early in the season.
Rank | Team | Record | Quality |
---|---|---|---|
1 | Oregon | 12-0 | 7.3937 |
2 | Stanford | 11-1 | 7.2491 |
3 | Auburn | 13-0 | 7.1707 |
4 | Oklahoma | 11-2 | 7.0580 |
5 | TCU | 12-0 | 6.9927 |
6 | Boise St | 11-1 | 6.8977 |
7 | Missouri | 10-2 | 6.7980 |
8 | Ohio State | 11-1 | 6.5913 |
9 | Texas A&M | 9-3 | 6.5043 |
10 | Oklahoma St | 10-2 | 6.4876 |
It has been a long time coming, but I have finally released Ngila 1.3. This version fixes a few bugs and includes many new features.
- Use CMake for compilation and installation
- New scaling option enabled by default (identical sequences default to cost of 0)
- Protein evolutionary models: aazeta and aageo
- Fasta and Phylip format output support
- Clustal and Phylip format input support
- Report sequence identity measure
- Matrix output formats for distance measures
- Look for “ngilarc” file in the home directory.
- New separator option
- New const-align option
- Replace arg-file option with ngilarc option.
- Use custom zeta function if GSL not found.
- Optimize size of travel table.
- Ordering of –pairs-all fixed
- bug fix for output of large alignments >10kb
- minor bug fix for geo model
I apologize for things being slow on this blog. I’ve been knee deep in programming, manuscripts, grant proposals, and teaching. I’m hoping to have results to share in the near future. In the mean time, you can follow some of my activities on the Panda’s Thumb.
I will say that the development version of Dawg now supports codon models, and Ngila has some new features as well.
This machine got partially hacked over the weekend. From what I can tell, Ziproxy was compromised and used to submit spam email through my system. Because my mail sever accepts local email, it was going out. It looks like only yahoo emails were being hit. Of course, the spam was coming from China.
Since I turned off Ziproxy, I haven’t seen any odd email originating from my machine.
The announcement is a bit late, but after beating Texas, Bama has won the 2009 Calix Cari.
Rank | Team | Record | Quality |
---|---|---|---|
1 | Alabama | 14-0 | 7.8239 |
2 | Florida | 13-1 | 7.4268 |
3 | Texas | 13-1 | 7.1820 |
4 | TCU | 12-1 | 6.8893 |
5 | Oregon | 10-3 | 6.7193 |
6 | Virginia Tech | 10-3 | 6.7187 |
7 | Ohio State | 11-2 | 6.7114 |
8 | Boise St | 14-0 | 6.6326 |
9 | Cincinnati | 12-1 | 6.5913 |
10 | Iowa | 11-2 | 6.4511 |
11 | Georgia Tech | 11-3 | 6.4444 |
12 | Penn State | 11-2 | 6.3350 |
13 | Brigham Young | 11-2 | 6.1872 |
14 | LSU | 9-4 | 6.1531 |
15 | Pittsburgh | 10-3 | 6.0738 |
16 | Southern Cal | 9-4 | 6.0535 |
17 | Miami FL | 9-4 | 6.0213 |
18 | Nebraska | 10-4 | 6.0208 |
19 | Oklahoma | 8-5 | 5.8503 |
20 | Wisconsin | 10-3 | 5.8343 |
21 | Arkansas | 8-5 | 5.7899 |
22 | Utah | 10-3 | 5.7644 |
23 | Clemson | 9-5 | 5.7595 |
24 | Mississippi | 9-4 | 5.7330 |
25 | Arizona | 8-5 | 5.6809 |
26 | Stanford | 8-5 | 5.6637 |
27 | West Virginia | 9-4 | 5.6543 |
28 | Georgia | 8-5 | 5.6270 |
29 | Texas Tech | 9-4 | 5.6112 |
30 | Oregon St | 8-5 | 5.6002 |
See below for the complete results of 2009.
We’ve been having network issues for the last week. (The network setup in general is not reliable.) Nothing is wrong with what I have control over, but I’m kind of stuck with the connection that I’ve been given.
My apologies to everyone this affects.
With the conference championship games complete my Calix Cari rankings once again agree with the pollsters: its Texas versus Alabama for the title.
Surprisingly, despite Tebow crying after visiting the wood-shed in Atlanta Florida still ranks #3, ahead of undefeated teams TCU, Cincinnati, and Boise State. Two loss Oregon comes in at #4, based on its strong showings against Cal, USC, Arizona, and Oregon State. Boise State produced the second best victory of the year (against Oregon) but couldn’t overcome a week conference schedule to rise higher than #9.
The Pac-10 placed 6 teams in the top 25, followed by Big 12 at 4, SEC, Big East, ACC, and Big 10 at 3, MWC at 2, and WAC at 1. Clearly the Pac-10’s 8-4 logjam was seen more highly than the SEC’s 7-5 logjam.
Rank | Team | Record | Quality |
---|---|---|---|
1 | Alabama | 13-0 | 7.6798 |
2 | Texas | 13-0 | 7.3390 |
3 | Florida | 12-1 | 7.2858 |
4 | Oregon | 10-2 | 7.0857 |
5 | TCU | 12-0 | 6.9550 |
6 | Cincinnati | 12-0 | 6.7700 |
7 | Virginia Tech | 9-3 | 6.6491 |
8 | Georgia Tech | 11-2 | 6.6343 |
9 | Boise St | 13-0 | 6.5395 |
10 | Ohio State | 10-2 | 6.4794 |
11 | LSU | 9-3 | 6.2673 |
12 | Iowa | 10-2 | 6.2457 |
13 | Miami FL | 9-3 | 6.2368 |
14 | Penn State | 10-2 | 6.1839 |
15 | Southern Cal | 8-4 | 6.1387 |
16 | Arizona | 8-4 | 6.1116 |
17 | Stanford | 8-4 | 6.0294 |
18 | Oregon St | 8-4 | 5.9837 |
19 | Pittsburgh | 9-3 | 5.9276 |
20 | Brigham Young | 10-2 | 5.8856 |
21 | West Virginia | 9-3 | 5.8317 |
22 | Oklahoma St | 9-3 | 5.8001 |
23 | Nebraska | 9-4 | 5.7685 |
24 | California | 8-4 | 5.7510 |
25 | Oklahoma | 7-5 | 5.7005 |
It’s snowing right now in Houston. I’m not sure if it will stick.
It’s be a few weeks since I’ve calculated my rankings for collage football, but with Uga VII passing away, I figure I’d post something in honor of him.
Rank | Team | Record | Quality |
---|---|---|---|
1 | Alabama | 10-0 | 7.5935 |
2 | Florida | 10-0 | 7.4398 |
3 | Texas | 10-0 | 7.3265 |
4 | TCU | 10-0 | 7.2566 |
5 | Oregon | 8-2 | 6.9875 |
6 | Georgia Tech | 10-1 | 6.9202 |
7 | Cincinnati | 10-0 | 6.7603 |
8 | Ohio State | 9-2 | 6.6532 |
9 | Virginia Tech | 7-3 | 6.6306 |
10 | Boise St | 10-0 | 6.6197 |
Today sucks. Uga VII has died.
This is my first poll of the season, and Alabama is ranked #1, followed by Iowa and Florida. What’s interesting is that a quick look through the results reveals that Boise State’s victory of Oregon is considered the best win of any team of the year.
Rank | Team | Record | Quality |
---|---|---|---|
1 | Alabama | 8-0 | 7.8141 |
2 | Iowa | 8-0 | 7.7549 |
3 | Florida | 7-0 | 7.6983 |
4 | Oregon | 6-1 | 7.5908 |
5 | Southern Cal | 6-1 | 7.5221 |
6 | Texas | 7-0 | 7.4951 |
7 | TCU | 7-0 | 7.3465 |
8 | Virginia Tech | 5-2 | 7.2887 |
9 | Georgia Tech | 7-1 | 7.1787 |
10 | Boise St | 7-0 | 7.0502 |
I need to head home early today to clean up my otaku pad.
I have a girl coming over for a sleep over.
We’ve hired a master’s student to be my minion in the lab. Bwahaha…
We’re having network issues which explains why this machine has been off the net since yesterday. It’s working now. Hopefully it will stay that way.
Well I’ve moved to Houston and my server is back online.
I’m moving to Houston this weekend. Expect this website and other I administer to have limited functionality for about a week.
I’m moving to Houston next month, and I’m working furiously to finish up about 4 papers before I leave. Yesterday was a good day because two things worked absolutely perfectly.
I’m calculating the likelihoods of some of our observations and I wrote a specific routine to do it for a first-order model. I then wrote a generic routine to calculated likelihoods for higher-order models. When I used the generic routine to calculate the likelihood for a first-order model, I got the same result as my specialized routine. Yatah!
From previous analysis using partial autocorrelations, we determined that a third-order model should explain our data the best. When I compared our models to see which one was most parsimonious (using AIC), the third-order model again came out on top. Yatah2!
Recent Comments