PRC, the Profile Comparer
PRC is a stand-alone program for aligning and scoring two profile
hidden Markov models. This can be used to detect remote relationships
between profiles more effectively than by doing simple
profile-sequence comparisons. PRC takes into account all transition
and emission probabilities in both hidden Markov models. The
fundamental algorithm is symmetric, so
PRC can read SAM, HMMER, PSI-BLAST and FASTA files. If you have a
multiple sequence alignment and want to estimate a profile HMM from
it, I recommend the
package, in particular the script
PRC is available under the GNU General Public Lincence.
If you would like to receive a short email every time there is a release of PRC, please send me an email to email@example.com and I will include you on my list.
Starting with release 1.5.0, there is a short README file that describes the command line options. If you are interested in the internals of PRC, have a look at the draft of my thesis chapter that deals with PRC.
Version 1.5.6 - 7th July 2009This release fixes an important memory leak bug in handling of SAM binary models that was spotted by Alejandro Ochoa.
Ability to handle SAM binary models was added in version 1.5.5. The bug does not affect correctness of output, but may cause PRC to crash without generating a scores file for runs on large libraries of SAM binary models.
Version 1.5.5 - 27th August 2008Added
PRC can now read binary SAM models. If you have a library of binary SAM models, there is no need to convert to the PRC format.
Version 1.5.3 - 16th September 2005Tweaked the HMMER parser to fix problems with TIGRFAM models.
Version 1.5.2 - 28th February 2005A number of minor bugfixes and improvements. I also added a draft of a chapter from my PhD thesis that describes the internals of PRC.
Bugfixes: the two main bugs fixed in this release were in the E-value estimation procedure (which occasionally resulted in a near-infinite loop and nonsensical results) and in the FASTA parser.
On the improvement side, I changed the default scoring function for
aligning two match states to
Version 1.5.0 - 19th October 2004This release fixes a number of bugs and adds E-values and multiple hits.
The two most important bugs were in the HMMER parser and in the backward routine. The HMMER bug was silly -- I wasn't parsing the header correctly -- and should now be fixed.
The backward bug was more serious: some of the forward/backward alignments (also known as EM, Holmes/Durbin or Maximum Accuracy alignments) generated by PRC 1.4.0 are likely to be wrong. Please upgrade to 1.5.0 at the earliest opportunity.
On a more pleasant note, I have finally implemented E-values for local-local comparisons and added code for reporting multiple hits between a pair of models. There is even some rudimentary documentation in the form of the README file.
Version 1.4.0 - 28th July 2004Added HMMER and PSI-BLAST parsers. Please note that the PSI-BLAST "checkpoint files" are generally platform-dependent, as are PRC binary models.
Following Bob Edgar's suggestions, I have expanded the set of allowed transitions to basically all transitions, so DI->ID etc. are now all allowed. I still don't allow insert-insert alignments, because they're nasty, but that's now the only exception.
Fixed a considerable number of bugs in the handling of global and local alignments (basically rewrote the code), and changed the format in which alignments are reported to a more sensible one (credits: pointed out by Julian Gough).
Added a logspace implementation of all algorithms. The idea is that algorithm works in linear space (which is quicker) until it sees an under/overflow, in which case it redoes the calculation in logspace. It seems to work but there could still be some glitches.
Version 1.3.1 - 13th January 2003Added EM/forward-backward scoring and implemented the Holmes/Durbin optimal alignment accuracy algorithm. Added an option that prints out alignments. Can now do global-global, global-local and local-global scoring as well as local-local, but in all cases still only reports the top hit. Switches from floats to doubles internally when it is about to overflow.
Version 1.3.0 - 7th December 2002The first public release. Can read profile HMMs in the SAM format and assign them a log-odds score. The score is calculated using the Viterbi algorithm with local-local scoring. No alignments are provided.
Click here for a directory that includes the source tarballs as well as Linux i686, x86_64 and Mac OS X binaries. PRC is distributed under the GNU General Public Licence.
The current version is 1.5.5. If you are using 1.4.0, you should upgrade because of two quite serious bugs. If you are still using 1.3.x, you should DEFINITELY upgrade. If you are using 1.5.x and are happy with it, no need to upgrade.
This page is maintained by Martin Madera. If you have any questions or suggestions, please feel free to email me.