Dr. Rasmus Nielsen Laboratory/Notes
Overview of research
- BLAST (ignore E-value; remove redundancy)
- FASTA format
- Formatdb: formatdb -i databasefile -p F -o -n basename
- Blastall: blastall -p blastn -d database_to_be_searched -i name_of_input_file -o name_of_output_file
- Taxonomy (from GenBank files)
- Clustal (align top 50 from BLAST output)
- MrBayes
- Bayesian inference
- Phylogenetics
- Bayesian Phylogenetic Analysis
- Markov chain Monte Carlo
- NEXUS file format
- MrBayes batch execution example:
set autoclose=yes nowarn=yes execute TB554_3C.nex lset nst=6 rates=invgamma mcmc ngen=1000000 samplefreq=100 sump burnin=2500 sumt burnin=2500 quit
- Find probability of each group
Test runs
- Nucleotide model: General Time Reversible (GTR) (option: +gamma): lset nst=2 rates=gamma
- (Do not do the following!) Constrain all phylogenetic groups to be monophyletic.
- Make option: strict clock trees (uniform) (prset brlenspr=clock:uniform)
- 1,000,000 updates (e.g. cycles)
- discard first 50,000 as burn-in
- sample a total of 10,000 trees (say)
- Then process output to get probabilities of each possible phylogenetic assignment of query sequence.
In MrBayes, if you run the program with the constraints of monophyletic groups, you are forcing the query sequence not to be part of these groups. So that won't work.
Instead, run it without the constraints and simply check how often the query sequence is member of a partition that only contains one particular phylogenetic group as members (at any phylognetic level, e.g. species, genus, family, order, etc).
Remember, MrBayes will output the probabililities of specific groups (or partitions) directly. So you don't have to do anything with trees yourself.
1Maybe we should use nst=6. Maybe also in the initila analyses we should not assume a molecular clock, i.e. we should not use the prset brlenspr=clock:uniform option.l
OK, so plateauing around 100,000 means that we should not use the first 100,000 iterations (1000 samples with samplefreq=100). We then want to know often the query sequence is part of a bipartition which, in addition to the the query sequence itself, only contain members of a particular taxonomic group. We want to do that at all taxonomic levels. You use the sumt burnin=1000 command to get output that specifies all the most supported partitions. For each taxonomic assignment in you database data, you then check how many times the query sequence is a member of at least one partition (one of the two sets defined by an edge in the tree) which except for the query sequence only counts sequences belonging to that taxonomix assignment as its members.
For example, if you have 8 database sequences and sequence 1, 2, 3 and 5 belong to group 'waggadoodles', and you have the following output:
...*.***. *.......* .*......* ******..* ..**....*
where the last sequence is the query sequence, then the probability of the query sequence belonging to the waggadoodles is 60% because it formed a unqiue (monophyletic) group with at least some waggadoodles in 3 out of 5 cases (case 1, 2 and 3).