About: This is a tutoial that shows how to recreate the results of the tRNA benchmark dataset.


I Training models

1. Training HMMER model
> ./infernal-1.1.3/hmmer/src/hmmbuild --hand data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/TrainAlignments/tRNA_train.sto

2. Training Infernal Model
> ./infernal-1.1.3/src/cmbuild --hand data/tRNA/Infernal/tRNA_train_Infernal.cm data/tRNA/TrainAlignments/tRNA_train.sto

3. Calibrating Infernal model
>  ./infernal-1.1.3/src/cmcalibrate data/tRNA/Infernal/tRNA_train_Infernal.cm

4. Training HMMER4 model (needed for importance sampling).
> ./hmmer4/nwo/hmmer build --hand data/tRNA/TrainAlignments/tRNA_train.sto  data/tRNA/HMMER/tRNA_train_HMMER4.hmm

5. Training Gremlin Potts model and producing contact predictions
> ./HPMHomology/src/gremlin_h2_henikoff -i data/tRNA/TrainAlignments/tRNA_train_consensus.afa -o data/tRNA/Gremlin/tRNA_train_Gremlin_contacts.out -mrf_o data/tRNA/Gremlin/tRNA_train_Gremlin.potts -only_v 0 -alphabet rna

6. Training Gremlin HPM
> ./HPMHomology/src/hpmbuild --rna data/tRNA/Gremlin/tRNA_train_Gremlin.hpm data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/Gremlin/tRNA_train_Gremlin.potts

7. Training Gremlin No ekl potts model
> ./HPMHomology/src/gremlin_h2_henikoff -i data/tRNA/TrainAlignments/tRNA_train_consensus.afa -o foo.out -mrf_o data/tRNA/Gremlin/tRNA_train_Gremlin_Noekl.potts -only_v 1 -alphabet rna

8. Training Gremlin Noekl HPM
> ./HPMHomology/src/hpmbuild --rna data/tRNA/Gremlin/tRNA_train_Gremlin_Noekl.hpm data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/Gremlin/tRNA_train_Gremlin_Noekl.potts

9. Training masked nested-only HPM
> ./HPMHomology/src/hpmbuild_masked --rna --weight data/tRNA/MLMasked/tRNA_train_MLMasked_nested.hpm data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/TrainAlignments/tRNA_train.sto

10. Training masked nested+pseudoknotted (pknot) HPM
> ./HPMHomology/src/hpmbuild_masked --rna --weight --pknot data/tRNA/MLMasked/tRNA_train_MLMasked_pknot.hpm data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/TrainAlignments/tRNA_train.sto

II Scoring and aligning sequences w/ models

Here are the scores we use for each method and their corresponding column in the output files.

- HMMER: Forward algorithm log odds scores, in bits ("logodds_forward")
- Infernal: Inside algorithm log odds scores, in bits ("score")
- All HPMs: Importance sampling unnormalized log-odds score, in nats ("HPM_IS_logodds")

1. HMMER

A. Aligning test sequences with HMMER
>  ./HPMHomology/src/hmmalign_uniglocal --rna data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/HMMER/tRNA_train_test_HMMER.sto

B. Calculating HMMER alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/HMMER/tRNA_train_test_HMMER.sto

C. Scoring test sequences with HMMER
> HPMHomology/src/hmmscore_uniglocal --rna data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/HMMER/tRNA_train_test_HMMER.csv

D. Scoring decoy sequences with HMMER
> HPMHomology/src/hmmscore_uniglocal --rna data/tRNA/HMMER/tRNA_train_HMMER.hmm data/tRNA/DecoySequences/tRNA_decoy.fa data/tRNA/HMMER/tRNA_train_decoy_HMMER.csv

2. Infernal

A. Aligning test sequences with Infernal
> ./infernal-1.1.3/src/cmalign -g --notrunc -o data/tRNA/Infernal/tRNA_train_test_Infernal.sto data/tRNA/Infernal/tRNA_train_Infernal.cm data/tRNA/TestSequences/tRNA_test.fa


B. Calculating Infernal alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/Infernal/tRNA_train_test_Infernal.sto

C. Scoring test sequences with Infernal
> ./infernal-1.1.3/src/cmsearch -g --notrunc --max -E 1E12 --tblout data/tRNA/Infernal/tRNA_train_test_Infernal.tbl data/tRNA/Infernal/tRNA_train_Infernal.cm  data/tRNA/TestSequences/tRNA_test.fa

D. Scoring decoy sequences with Infernal
> ./infernal-1.1.3/src/cmsearch -g --notrunc --max -E 1E12 --tblout data/tRNA/Infernal/tRNA_train_decoy_Infernal.tbl data/tRNA/Infernal/tRNA_train_Infernal.cm  data/tRNA/DecoySequences/tRNA_decoy.fa

3. Gremlin HPM

A. Scoring and aligning test sequences with the Gremlin HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 -A data/tRNA/Gremlin/tRNA_train_test_Gremlin.sto data/tRNA/Gremlin/tRNA_train_Gremlin.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/Gremlin/tRNA_train_test_Gremlin.csv

B. Scoring decoy sequences with the Gremlin HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 data/tRNA/Gremlin/tRNA_train_Gremlin.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/DecoySequences/tRNA_decoy.fa data/tRNA/Gremlin/tRNA_train_decoy_Gremlin.csv

C. Calculating Gremlin HPM alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/Gremlin/tRNA_train_test_Gremlin.sto

4. Gremlin  No ekl HPM

A. Scoring and aligning test sequences with the Gremlin No ekl HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 -A data/tRNA/Gremlin/tRNA_train_test_Gremlin_Noekl.sto data/tRNA/Gremlin/tRNA_train_Gremlin_Noekl.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/Gremlin/tRNA_train_test_Gremlin_Noekl.csv

B. Scoring decoy sequences with the Gremlin No ekl HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 data/tRNA/Gremlin/tRNA_train_Gremlin_Noekl.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/DecoySequences/tRNA_decoy.fa data/tRNA/Gremlin/tRNA_train_decoy_Gremlin_Noekl.csv

C. Calculating Gremlin No ekl HPM alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/Gremlin/tRNA_train_test_Gremlin_Noekl.sto

5. Masked nested-only HPM

A. Scoring and aligning test sequences with the nested-only HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 -A data/tRNA/MLMasked/tRNA_train_test_MLMasked_nested.sto data/tRNA/MLMasked/tRNA_train_MLMasked_nested.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/MLMasked/tRNA_train_test_MLMasked_nested.csv

B. Scoring and aligning decoy sequences with the nested-only HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 data/tRNA/MLMasked/tRNA_train_MLMasked_nested.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/DecoySequences/tRNA_decoy.fa data/tRNA/MLMasked/tRNA_train_decoy_MLMasked_nested.csv

C. Calculating nested-only HPM alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/MLMasked/tRNA_train_test_MLMasked_nested.sto

6. Masked nested+pseudoknotted HPM

A. Scoring and aligning test sequences with the nested+pseudoknotted HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 -A data/tRNA/MLMasked/tRNA_train_test_MLMasked_pknot.sto data/tRNA/MLMasked/tRNA_train_MLMasked_pknot.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/TestSequences/tRNA_test.fa data/tRNA/MLMasked/tRNA_train_test_MLMasked_pknot.csv

B. Scoring and aligning decoy sequences with the nested+pseudoknotted HPM
> ./HPMHomology/src/hpmscoreIS --rna -R 1000000 data/tRNA/MLMasked/tRNA_train_MLMasked_pknot.hpm data/tRNA/HMMER/tRNA_train_HMMER4.hmm data/tRNA/DecoySequences/tRNA_decoy.fa data/tRNA/MLMasked/tRNA_train_decoy_MLMasked_pknot.csv

C. Calculating nested+pseudoknotted HPM alignment accuracy
> ./infernal-1.1.3/easel/miniapps/esl-compalign  data/tRNA/TestAlignments/tRNA_test.sto data/tRNA/MLMasked/tRNA_train_test_MLMasked_pknot.sto

III Generating synthetic sequences

1. Emit 10,000 aligned sequences from the Gremlin HPM
./HPMHomology/src/hpmemit --rna -N 10000 --Niter 5000 data/tRNA/Gremlin/tRNA_train_Gremlin.hpm data/tRNA/SyntheticAlignments/tRNA_train_Gremlin_hpmemit_10000.sto
