Repository: cogent3/cogent3 (language: python)

Issue:
ENH: new_moltype.MolType.make_seq handles Sequence instances
[NEW] if the input data is already a Sequence, returns seq if bound
    moltype is self or returns Sequence.to_moltype(self)

## Summary by Sourcery

Enhance MolType.make_seq to handle Sequence instances by checking if the sequence's moltype matches the current moltype, returning the sequence if it matches, or converting it to the specified moltype if it does not. Add tests to ensure correct functionality for both valid and invalid moltype conversions.

New Features:
- Enhance MolType.make_seq to handle Sequence instances by returning the sequence if the moltype matches or converting it to the specified moltype.

Tests:
- Add tests for MolType.make_seq to verify behavior when handling Sequence instances with matching and non-matching moltypes.


Discussion / hints:

Fix patch:
diff --git a/README.md b/README.md
index 0d81f3b33..3a99654fb 100644
--- a/README.md
+++ b/README.md
@@ -19,6 +19,13 @@
 
 ## 📣 Feature Announcements 📣
 
+<details>
+    <summary> Faster sequence coevolution measures 🚀 </summary>
+
+We have completely rewritten all the Mutual Information based coevolution statistic calculators. Single CPU performance is orders of magnitude faster than the old implementation and we now also support parallel execution. The existing `Alignment.coevolution()` method uses these so you don't need to do anything different to use the new algorithms.
+
+</details>
+
 <details>
     <summary> Faster sequence format parsers 💨 </summary>
 
diff --git a/changelog.d/20240919_105311_Gavin.Huttley.md b/changelog.d/20241025_082035_Gavin.Huttley.md
similarity index 66%
rename from changelog.d/20240919_105311_Gavin.Huttley.md
rename to changelog.d/20241025_082035_Gavin.Huttley.md
index 2cfe0f0be..55794d8f1 100644
--- a/changelog.d/20240919_105311_Gavin.Huttley.md
+++ b/changelog.d/20241025_082035_Gavin.Huttley.md
@@ -10,18 +10,17 @@ Uncomment the section that is right (remove the HTML comment wrapper).
 - A bullet item for the Contributors category.
 
 -->
-<!--
+
 ### ENH
 
-- A bullet item for the ENH category.
+- `cogent3.open_()` now automatically handles .xz and .lzma compressed files.
 
--->
+<!--
 ### BUG
 
-- Dotplots of sequences that gaps in common is now correctly handled. Previously,
-  the displayed aligned path was very funky because aligned segments could be
-  interrupted.
+- A bullet item for the BUG category.
 
+-->
 <!--
 ### DOC
 
diff --git a/changelog.d/20241001_094946_Gavin.Huttley.md b/changelog.d/20241026_143333_Gavin.Huttley.md
similarity index 66%
rename from changelog.d/20241001_094946_Gavin.Huttley.md
rename to changelog.d/20241026_143333_Gavin.Huttley.md
index fa03a2cd7..ef0f390a5 100644
--- a/changelog.d/20241001_094946_Gavin.Huttley.md
+++ b/changelog.d/20241026_143333_Gavin.Huttley.md
@@ -10,11 +10,11 @@ Uncomment the section that is right (remove the HTML comment wrapper).
 - A bullet item for the Contributors category.
 
 -->
+
 ### ENH
 
-- Provide convenience class methods on both DictArray and DistanceMatrix to simplify
-  creation when you have a numpy array and the names corresponding to the dimension
-  element labels. These methods are mainly of use for developers.
+- Formatting of fasta records is now much quicker.
+
 
 <!--
 ### BUG
diff --git a/changelog.md b/changelog.md
index 5f6c01976..d7b4a96fd 100755
--- a/changelog.md
+++ b/changelog.md
@@ -1,4 +1,66 @@
 
+<a id='changelog-2024.7.19a8'></a>
+# Changes in release "2024.7.19a8"
+
+A single bugfix release.
+
+## Contributors
+
+- Bug identified and fixed by @YapengLang 🚀🤩
+
+## BUG
+
+- Fixed a regression in Trees arising from new name / support split functionality.
+
+<a id='changelog-2024.7.19a7'></a>
+# Changes in release "2024.7.19a7"
+
+## Contributors
+
+- @GavinHuttley multiple commits and maintenance
+- A first time contribution from @petergoodman 🚀🎉!
+- @YapengLang added the key function for parsing support from newick format
+  to tree object 💪
+
+## ENH
+
+- Provide convenience class methods on both DictArray and DistanceMatrix to simplify
+  creation when you have a numpy array and the names corresponding to the dimension
+  element labels. These methods are mainly of use for developers.
+- Major rewrite of the mutual information based coevolution statistics. These are
+  most easily accessed from the `Alignment.coevolution()` method. The rewrite delivers
+  several orders of magnitude performance improvement by using `numba.jit` compiled
+  functions based on numpy arrays, plus caching of intermediate calculations.
+  The speed of the resampled Mutual Information calculation is now near identical to
+  that for the simpler MI and NMI statistics.
+- The coevolution statistics can now be run in parallel on a single machine.
+  This is most easily accessed by setting `<alignment>.coevolution(parallel=True)`.
+  The parallelisation is at the level of chunks of position pairs.
+- cogent3 now supports parsing from newick format with node support
+  statistics. The support measure is stored in `<node>.params["support"]`.
+
+## BUG
+
+- Dotplots of sequences that had gaps in common is now correctly handled. Previously,
+  the displayed aligned path was very funky because aligned segments could be
+  interrupted.
+
+## DOC
+
+- A new tutorial on using a nonstationary amino-acid model from @petergoodman.
+  This will appear in the examples documentation in the next release. Nice
+  showcase of cogent3's ability to disentangle clade specific substitution
+  processes. Plus a first time contribution!
+
+## Deprecations
+
+- All the old coevolution functions and statistics are marked for removal
+  by the last major release of 2024. Their implementations were pre-2010!,
+  and so not well suited to current data sizes. The mutual information based
+  statistics are retained, but rewritten to be much faster (see the Enhancement
+  section).
+- The old coevolution example document is removed as its out-of-date.
+
 <a id='changelog-2024.7.19a6'></a>
 # Changes in release "2024.7.19a6"
 
diff --git a/doc/app/app_overview/available-apps.rst b/doc/app/app_overview/available-apps.rst
index c61bcc76b..1271d308a 100644
--- a/doc/app/app_overview/available-apps.rst
+++ b/doc/app/app_overview/available-apps.rst
@@ -16,3 +16,6 @@ The ``name_filter`` argument can be used to display only the apps that match a s
 .. jupyter-execute::
 
     available_apps(name_filter="load")
+
+
+.. note:: The first column lists the package providing the app.
\ No newline at end of file
diff --git a/doc/data/Q.mammal b/doc/data/Q.mammal
new file mode 100644
index 000000000..29b566f64
--- /dev/null
+++ b/doc/data/Q.mammal
@@ -0,0 +1,20 @@
+ 0.124202
+ 0.101000 0.227804
+ 0.504114 0.077510 3.524965
+ 0.283524 1.418183 0.164958 0.100287
+ 0.130145 2.732111 0.189005 0.094255 0.072371
+ 0.589752 0.157296 0.152757 4.060935 0.043000 1.318749
+ 1.567497 1.356914 0.512973 1.503607 0.890206 0.127483 1.097321
+ 0.122015 3.556023 2.974647 0.721837 1.356171 4.227848 0.124395 0.172114
+ 0.153637 0.164517 0.393021 0.053622 0.176506 0.048324 0.041234 0.065501 0.071448
+ 0.135077 0.304282 0.036441 0.032024 0.224566 0.440200 0.053314 0.065275 0.473562 1.799288
+ 0.113255 4.425528 1.518879 0.082930 0.037430 1.287724 1.131944 0.139586 0.081752 0.145289 0.056113
+ 0.322322 0.556760 0.094313 0.043926 0.145581 0.206342 0.107883 0.130198 0.090334 5.603435 3.111729 0.573826
+ 0.117805 0.074337 0.055878 0.057365 1.244916 0.046417 0.045232 0.074122 0.207907 0.893405 2.232623 0.045729 0.255345
+ 1.433639 0.397013 0.051343 0.093368 0.151070 1.200439 0.104059 0.103236 1.091004 0.081407 1.042609 0.098099 0.103475 0.110230
+ 1.781114 0.637099 4.097315 0.198768 1.892810 0.142855 0.105046 1.832281 0.283997 0.249782 0.376051 0.145811 0.113476 0.624815 2.103591
+ 5.680520 0.407578 1.476471 0.100184 0.175928 0.125118 0.117670 0.149570 0.109939 2.663899 0.115582 0.671218 3.707712 0.090387 1.155039 2.321926
+ 0.076278 1.609136 0.044065 0.033146 1.619086 0.393637 0.067072 0.437241 0.101295 0.066951 0.516216 0.048383 0.208547 0.455825 0.075499 0.199637 0.060116
+ 0.069223 0.105554 0.494594 0.317662 4.292011 0.095207 0.053293 0.062889 5.501264 0.129932 0.133086 0.060777 0.124997 4.437406 0.084940 0.346423 0.077223 0.486934
+ 3.246549 0.080912 0.061975 0.172489 0.210325 0.071144 0.245838 0.655954 0.061537 9.776576 1.419011 0.073524 5.404188 0.553456 0.109938 0.114787 0.432825 0.085627 0.094369
+ 0.067997 0.055503 0.036288 0.046867 0.021435 0.050281 0.068935 0.055323 0.026410 0.041953 0.101191 0.060037 0.019662 0.036237 0.055146 0.096864 0.057136 0.011785 0.024730 0.066223
diff --git a/doc/data/primate_rodent.fasta b/doc/data/primate_rodent.fasta
new file mode 100644
index 000000000..28c28c8bb
--- /dev/null
+++ b/doc/data/primate_rodent.fasta
@@ -0,0 +1,93 @@
+>CALLI_JAC
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIHGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAELKRDEISIQHIREELAELSRK
+>CAVIA_POR
+EKANTHLLLGMCLDSCARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYVYMQRASD
+LARQINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKQAELKRDEVSVQHIREELAELLRK
+>CHINC_LAN
+EKANTHLLLGMCLDSCARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYVYMQRASD
+LARQINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKQAELKRDEVSVQHIREELADLLRK
+>DAUBE_MAD
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAILMHRERYTQAKEIYQEALKHAELKRDEISIQHIREELAELLRK
+>DIPOD_ORD
+EKANTRLLLGMCLDSYARYLLFSKQPSQAQRMYEKALQISQEIQGERHPQTIVLMSDLATALDAQGHFDEAYLYMQRASD
+LAREINHPELHMVLSNLAAILMHRERYTQAKEIYQEALKQAELKRDEVSVQHIREELAELSEK
+>GALEO_VAR
+EKASTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALKISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYIYMKRASD
+LARQINHPELHMVLSNLAAILMHRERYTQAKEIYQEALKQAELKRDEVSVQHIREELAELSRK
+>GORIL_GOR
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>HETER_GLA
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYVYMQRASD
+LARQINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKQAELKRDEVSIQHIREELAELLRK
+>HOMO_SAP
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>ICTID_TRI
+EKANTHLLLGMCLDSCARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAILIHRERYTQAEEIYQEALKQAEMKRDEVSVQHIREELAELSRK
+>JACUL_JAC
+EKANTHLLLGMCLDSCARYLLFSKQPSQAQRMYEKALQISQEIQGERHPQTIVLMSDLATTLDAQGHFDEAYIYMQRASD
+LAREINHPELHMVLSNLAAILTHRERYTQAEEIYQEALKQAELKRDEVSIQHIQEELADLARK
+>MACAC_FAS
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>MACAC_MUL
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>MESOC_AUR
+EKANTYLLLGMCLDSCARYLLFSKQLSQAQRMYEKALQICQEIQGERHPQTIVLMSDLATTLDAQGHFDDAYIYMQRASD
+LAREINHPELHMVLSNLAAILIHRERYTQAKEIYQEALTQAELKRDEVSVQHIREELAELSRK
+>MICRO_MUR
+--------------------------------------------------TIVLMSDLATTLDAQGHFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKYAELKRDEISIQHIREELAELSRK
+>MICRO_OCH
+EKANTYLLLGMCLDSCARYLLFSRQLSQAQRMYEKALQICQEIQGERHPQTIVLMSDLATTLDAQGHFEDAYIYMQKASD
+LAREINHPELHMVLSNLAAILIHRERYTQAKEIFQEALKQAELKRDEVSVQHIREELAELSRK
+>MUS_MUS
+ETANTYLLLGMCLDSCARYLLFSKQLSQAQRMYEKALQICQEIQGERHPQTIVLMSDLATTLDAQGHFDDAYIYMQRASD
+LAREINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKRAELKRDEVSVQHIREELAELSRK
+>NOMAS_LEU
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>OCHOT_PRI
+EKANTHLLLGMCLDACARYLLSSKQPSQAQKMYEKALQISEEIQGERHPQ------------------------------
+-------------------------RYTQAKEIYQEALKRAELKKDKVSVQHIREELAGLSGK
+>OCTOD_DEG
+EKANTHLLLGMCLDSCARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYVYMERASE
+LARQINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKRAELKRDEVSVQHIREELADLLRK
+>ORYCT_CUN
+EKTNTHLLLGMCLDACARYLLFSKQPSQAQRMYERALQISEEIQGERHPQTVVLMSDLATTLDAQGRFDEAFVHMQRASE
+LARQIDHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAELKRDEVSVQHIREELAELSRK
+>OTOLE_GAR
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGHFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAILMHRERYTQAKEIYQEALKQAQLKRDEISVQHIREELAELSRK
+>PAN_PAN
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>PAN_TRO
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>PAPIO_ANU
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAEEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>PEROM_MAN
+EKANTYLLLGMSLDSCARYLLFSGHLSQAQRMYEKALQICQGIQGERHPQTIVLMSDLATTLDAQGRFDDAYIYMQRASD
+LAREINHPELHMVLSNLAAILTHRERYTQAKEIYQEALQQAELKRDEVSVQHIREELAELSRK
+>PONGO_ABE
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAKLKKDEISVQHIREELAELSKK
+>RATTU_NOR
+ERANTYLLLGMCLDSCARYLLFSKQLSQAQRMYEKALQICQEIQGERHPQTIVLMSDLATALDAQGHFDDAYIYMQRASD
+LAREINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKQAELKRDEFSVQHIREELAELSRK
+>SAIMI_BOL
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAVLMHRERYTQAKEIYQEALKQAELKRDEISVQHIREELAELSRK
+>TARSI_SYR
+EKANTHLLLGMCLDACARYLLFSKQPSQAQRMYEKALQISEEIQGERHPQTIVLMSDLATTLDAQGRFDEAYIYMQRASD
+LARQINHPELHMVLSNLAAILIHRERYTQAKEIYQEALKQAELKRDEISVQHIREELDELSKK
+>CHLOR_SAB
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
diff --git a/doc/data/primate_rodent.tre b/doc/data/primate_rodent.tre
new file mode 100644
index 000000000..df316457b
--- /dev/null
+++ b/doc/data/primate_rodent.tre
@@ -0,0 +1,1 @@
+((GALEO_VAR:67.063101,((OTOLE_GAR:47.47964839,(DAUBE_MAD:38.63926607,MICRO_MUR:38.63927231):8.840374344):16.15935944,(TARSI_SYR:60.27881538,((CALLI_JAC:14.22077972,SAIMI_BOL:14.22078041):16.25987451,((NOMAS_LEU:12.39651933,(PONGO_ABE:9.161256013,(((PAN_TRO:1.628654236,PAN_PAN:1.628654236):2.145846969,HOMO_SAP:3.774501586):1.959880786,GORIL_GOR:5.734380604):3.426872635):3.235264011):7.068624069,(((MACAC_FAS:2.740648327,MACAC_MUL:2.740648258):4.888954696,PAPIO_ANU:7.629602468):1.960373845,CHLOR_SAB:9.589977041):9.875167572):11.01551083):29.79816011):3.360190021):3.424088436):7.436048,((ORYCT_CUN:49.65065591,OCHOT_PRI:49.650668):24.042462,((ICTID_TRI:64.80083037,(HETER_GLA:43.67410554,(CAVIA_POR:36.64552451,(CHINC_LAN:32.4392972,(MESOC_AUR:22.26656049,OCTOD_DEG:22.2665602):10.1727362):4.206225198):7.028589502):21.12672003):6.309901,(DIPOD_ORD:67.9808632,(JACUL_JAC:61.12394344,((MUS_MUS:29.04358447,RATTU_NOR:29.04358285):23.60568129,(PEROM_MAN:38.78335662,MICRO_OCH:38.78336051):13.86591971):8.474667):6.856914):3.129884):2.582384):0.806022);
\ No newline at end of file
diff --git a/doc/draw/aln/plot_aln-coevolution.rst b/doc/draw/aln/plot_aln-coevolution.rst
index 30862256d..47062f80b 100644
--- a/doc/draw/aln/plot_aln-coevolution.rst
+++ b/doc/draw/aln/plot_aln-coevolution.rst
@@ -6,9 +6,9 @@
 Coevolution analysis
 ====================
 
-A method on the alignment provides an interface to the simpler (and yet robust and fast) methods for estimating coevolution. The default measure is normalised mutual information (NMI).
+A method on the alignment provides an interface to the simple (and yet robust and fast) methods for estimating coevolution. The default measure is normalised mutual information (NMI).
 
-.. todo:: add citation for NMI
+.. todo:: add citation for RMI
 
 Display coevolution as a heatmap
 --------------------------------
@@ -22,8 +22,8 @@ Using the ``drawable`` argument causes the returned object to have a ``drawable`
     aln = load_aligned_seqs("data/brca1.fasta", moltype="dna")
     aln = aln.no_degenerates(motif_length=3)
     aln = aln.get_translation()
-    aln = aln[:100]  # for compute speed in testing the documentation
-    coevo = aln.coevolution(show_progress=False, drawable="heatmap")
+    aln = aln[:100]  # sliced to simplify the visual display
+    coevo = aln.coevolution(stat="nmi", show_progress=False, drawable="heatmap")
     coevo.drawable.show()
 
 .. jupyter-execute::
@@ -38,7 +38,7 @@ Display coevolution scores as a Violin plot
 
 .. jupyter-execute::
 
-    coevo = aln.coevolution(show_progress=False, drawable="violin")
+    coevo = aln.coevolution(stat="nmi", show_progress=False, drawable="violin")
     coevo.drawable.show(width=300)
 
 Display coevolution scores as a Boxplot
@@ -46,5 +46,5 @@ Display coevolution scores as a Boxplot
 
 .. jupyter-execute::
 
-    coevo = aln.coevolution(show_progress=False, drawable="box")
+    coevo = aln.coevolution(stat="nmi", show_progress=False, drawable="box")
     coevo.drawable.show(width=300)
diff --git a/doc/examples/coevolution.rst b/doc/examples/coevolution.rst
deleted file mode 100644
index 7631231bf..000000000
--- a/doc/examples/coevolution.rst
+++ /dev/null
@@ -1,115 +0,0 @@
-Perform a coevolutionary analysis on biological sequence alignments
-===================================================================
-
-.. sectionauthor:: Greg Caporaso
-
-This document describes how to perform a coevolutionary analysis on a ``ArrayAlignment`` object. Coevolutionary analyses identify correlated substitution patterns between ``ArrayAlignment`` positions (columns). Several coevolution detection methods are currently provided via the Cogent3 coevolution module. ``ArrayAlignment`` objects must always be used as input to these functions.
-
-Before using an alignment in a coevolutionary analysis, you should be confident in the alignment. Poorly aligned sequences can yield very misleading results. There can be no ambiguous residue/base codes (e.g., B/Z/X in protein alignments) -- while some of the algorithms could tolerate them (e.g. Mutual Information), others which rely on information such as background residue frequencies (e.g. Statistical Coupling Analysis) cannot handle them. Some recoded amino acid alphabets will also not handle ambiguous residues. The best strategy is just to exclude ambiguous codes all together. To test for invalid characters before starting an analysis you can do the following:
-
-.. jupyter-execute::
-
-    from cogent3 import make_aligned_seqs
-    from cogent3.core.alignment import ArrayAlignment
-    from cogent3.evolve.coevolution import validate_alignment
-
-    aln = make_aligned_seqs(
-        {"1": "GAA", "2": "CTA", "3": "CTC", "4": "-TC"},
-        moltype="protein",
-        array_align=True,
-    )
-    validate_alignment(aln)
-
-To run a coevolutionary analysis, first create a ``ArrayAlignment``:
-
-.. jupyter-execute::
-
-    from cogent3 import make_aligned_seqs
-    from cogent3.core.alignment import ArrayAlignment
-
-    aln = make_aligned_seqs(
-        {"1": "AAA", "2": "CTA", "3": "CTC", "4": "-TC"},
-        moltype="protein",
-        array_align=True,
-    )
-
-Perform a coevolutionary analysis on a pair of positions in the alignment using mutual information (``mi``):
-
-.. jupyter-execute::
-
-    from cogent3.evolve.coevolution import (
-        coevolve_pair,
-        coevolve_pair_functions,
-    )
-
-    coevolve_pair(coevolve_pair_functions["mi"], aln, pos1=1, pos2=2)
-
-Perform a coevolutionary analysis on a pair of positions in the alignment using statistical coupling analysis (``sca``):
-
-.. jupyter-execute::
-
-    from cogent3.evolve.coevolution import (
-        coevolve_pair,
-        coevolve_pair_functions,
-    )
-
-    coevolve_pair(coevolve_pair_functions["sca"], aln, pos1=1, pos2=2, cutoff=0.5)
-
-Perform a coevolutionary analysis on one position and all other positions in the alignment using mutual information (``mi``):
-
-.. jupyter-execute::
-
-    from cogent3.evolve.coevolution import (
-        coevolve_position,
-        coevolve_position_functions,
-    )
-
-    coevolve_position(coevolve_position_functions["mi"], aln, position=1)
-
-Perform a coevolutionary analysis on all pairs of positions in the alignment using mutual information (``mi``):
-
-.. jupyter-execute::
-
-    from cogent3.evolve.coevolution import (
-        coevolve_alignment,
-        coevolve_alignment_functions,
-    )
-
-    coevolve_alignment(coevolve_alignment_functions["mi"], aln)
-
-View the available algorithms for computing coevolution values:
-
-.. jupyter-execute::
-
-    print(coevolve_pair_functions.keys())
-
-Perform an intermolecular coevolutionary analysis using mutual information (``mi``). Note that there are strict requirements on the sequence identifiers for intermolecular analyses, and some important considerations involved in preparing alignments for these analyses. See the coevolve_alignments docstring (i.e., ``help(coevolve_alignments)`` from the python interpreter) for information. Briefly, sequence identifiers are split on ``+`` symbols. The ids before the + must match perfectly between the two alignments as these are used to match the sequences between alignments. In the following example, these are common species names: human, chicken, echidna, and pig. The text after the ``+`` can be anything, and should probably be the original database identifiers of the sequences.
-
-.. jupyter-execute::
-
-    from cogent3.evolve.coevolution import (
-        coevolve_alignment_functions,
-        coevolve_alignments,
-    )
-
-    aln1 = make_aligned_seqs(
-        {
-            "human+protein1": "AAA",
-            "pig+protein1": "CTA",
-            "chicken+protein1": "CTC",
-            "echidna+weird_db_identifier": "-TC",
-        },
-        moltype="protein",
-        array_align=True,
-    )
-    aln2 = make_aligned_seqs(
-        {
-            "pig+protein2": "AAAY",
-            "chicken+protein2": "CTAY",
-            "echidna+protein2": "CTCF",
-            "human+protein2": "-TCF",
-        },
-        moltype="protein",
-        array_align=True,
-    )
-    coevolve_alignments(coevolve_alignment_functions["mi"], aln1, aln2)
diff --git a/doc/examples/index.rst b/doc/examples/index.rst
index 337e1fed0..66f676865 100644
--- a/doc/examples/index.rst
+++ b/doc/examples/index.rst
@@ -37,9 +37,9 @@ Modelling Evolution
     testing_multi_loci
     simulate_alignment
     parametric_bootstrap
-    coevolution
     rate_heterogeneity
     hmm_par_heterogeneity
+    nonstationary_inference
 
 ***************************
 Phylogenetic Reconstruction
diff --git a/doc/examples/nonstationary_inference.rst b/doc/examples/nonstationary_inference.rst
new file mode 100644
index 000000000..2aa1b48c6
--- /dev/null
+++ b/doc/examples/nonstationary_inference.rst
@@ -0,0 +1,87 @@
+.. jupyter-execute::
+    :hide-code:
+
+    import set_working_directory
+
+
+.. _nonstationary-model-aa-inference:
+
+
+Inferring Amino Acid frequencies with a nonstationary model
+===========================================================
+
+.. sectionauthor:: Peter Goodman, Andrew Wheeler
+
+This example demonstrates how to apply a non-stationary, branch-heterogeneous maximum likelihood model to infer state frequency vectors across different branches or branch groups on a phylogenetic tree, highlighting a practical use case. The model used is a maximum likelihood, time-heterogeneous, and time-reversible model.
+
+Non-stationarity means that amino acid frequencies are not fixed over time. This characteristic allows a non-stationary model to infer new frequencies along different branches or clades of a tree.
+
+In this example, we infer an amino acid frequency vector for the primate and rodent clades in a mammal phylogeny, as well as a frequency vector for the root of these two clades. The purpose of this inference was to produce three amino acid frequency vectors for comparison. The rodent vector represented the amino acid frequencies associated with a clade reported to exhibit a higher effective population size (:math:`N_{e}`), while the primate vector showed frequencies associated with a clade reported to exhibit a lower :math:`N_{e}`. These clade specific measures allow us to measure associations with other known properties of these clades, such as amino acid fitness metrics.
+
+We first load the necessary functions.
+
+.. jupyter-execute::
+
+    from cogent3 import load_tree, load_aligned_seqs
+    from cogent3.evolve.substitution_model import EmpiricalProteinMatrix
+    from cogent3.parse.paml_matrix import PamlMatrixParser
+
+Load in the fasta formatted alignment file and designate the molecule type, in this example we use protein.
+
+.. jupyter-execute::
+
+    aln = load_aligned_seqs("data/primate_rodent.fasta", moltype="protein")
+
+Load in a substitution model (or select from models available in Cogent3). We use a single substitution model to start, and later apply branch heterogeneous frequencies.
+
+.. jupyter-execute::
+
+    with open("data/Q.mammal") as matrix_file:
+        empirical_matrix , empirical_frequencies = PamlMatrixParser(matrix_file)
+        sm = EmpiricalProteinMatrix(empirical_matrix, empirical_frequencies, with_rate=True, distribution="free")
+
+Load in a phylogenetic tree file in Newick format.
+
+.. jupyter-execute::
+
+    tree = load_tree("data/primate_rodent.tre")
+
+Designate clades based in your tree for which you want to infer different frequency vectors. Use two ingroup species and the closest possible outgroup species to define each clade. All internal branches and nodes are included in the designated clade. ``stem=True`` sets the root of the clade as part of the clade.
+
+.. jupyter-execute::
+
+    primate_edges = tree.get_edge_names("CHLOR_SAB","GALEO_VAR", outgroup_name="OCHOT_PRI", clade=True, stem=True)
+    rodent_edges = tree.get_edge_names("MICRO_OCH","OCHOT_PRI", outgroup_name="GALEO_VAR", clade=True, stem=True)
+
+
+We display the phylogenetic tree, using edge coloring to visualise the tree scopes represented by the model.
+
+.. jupyter-execute::
+
+    dnd = tree.get_figure()
+    dnd.style_edges(primate_edges, line=dict(color="red"), legendgroup="Primates")
+    dnd.style_edges(rodent_edges, line=dict(color="blue"), legendgroup="Rodents")
+    dnd.scale_bar = None
+    dnd.show(width=600, height=700)
+
+We now create a likelihood function.
+
+.. jupyter-execute::
+
+    lf = sm.make_likelihood_function(tree)
+    lf.set_alignment(aln)
+
+Tell the model to infer ``"mprobs"`` (frequency vectors) for each set of edges you defined above. Setting ``clade=True`` will give a single amino acid frequency vector for all the edges within the clade, rather than a new vector for every branch. Single edges, such as the root, can be designated to be optimized separately. Any edge not included in an optimization function will retain the amino acid frequencies of the substitution model you used.
+
+.. jupyter-execute::
+
+    lf.set_param_rule("mprobs", edges=primate_edges, clade=True, stem=True)
+    lf.set_param_rule("mprobs", edges=rodent_edges, clade=True, stem=True)
+    lf.set_param_rule("mprobs", edge="root")
+
+Optimize the likelihood function and look at the results.
+
+.. jupyter-execute::
+
+    lf.optimise(max_restarts=5, tolerance=1e-9, show_progress=False)
+    lf
diff --git a/requirements.txt b/requirements.txt
index 9eece6fb8..c27ea5f35 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,13 +1,13 @@
 chardet==5.2.0
-pillow==10.4.0
-psutil==6.0.0
+pillow==11.0.0
+psutil==6.1.0
 numpy==2.0.1
 numba>0.48.0;python_version<'3.9'
 numba>0.53; python_version>='3.9'
 numba>0.54; python_version>='3.10'
 numba>=0.57.0; python_version=='3.11'
 scipy==1.14.1
-nox==2024.4.15
+nox==2024.10.9
 plotly==5.24.1
 typing_extensions>=3.7
 stevedore==5.3.0
diff --git a/src/cogent3/__init__.py b/src/cogent3/__init__.py
index e33d45b35..1b8e1b40a 100644
--- a/src/cogent3/__init__.py
+++ b/src/cogent3/__init__.py
@@ -31,10 +31,7 @@
     get_moltype,
 )
 from cogent3.core.tree import PhyloNode, TreeBuilder, TreeError, TreeNode
-from cogent3.evolve.fast_distance import (
-    available_distances,
-    get_distance_calculator,
-)
+from cogent3.evolve.fast_distance import available_distances, get_distance_calculator
 from cogent3.evolve.models import available_models, get_model
 from cogent3.parse.cogent3_json import load_from_json
 from cogent3.parse.newick import parse_string as newick_parse_string
@@ -686,7 +683,13 @@ def load_table(
     )
 
 
-def make_tree(treestring=None, tip_names=None, format=None, underscore_unmunge=False):
+def make_tree(
+    treestring=None,
+    tip_names=None,
+    format=None,
+    underscore_unmunge=False,
+    name_nodes=False,
+):
     """Initialises a tree.
 
     Parameters
@@ -701,6 +704,8 @@ def make_tree(treestring=None, tip_names=None, format=None, underscore_unmunge=F
     underscore_unmunge : bool
         replace underscores with spaces in all names read, i.e. "sp_name"
         becomes "sp name"
+    name_nodes: bool
+        whether to name unnamed nodes
 
     Notes
     -----
@@ -714,7 +719,7 @@ def make_tree(treestring=None, tip_names=None, format=None, underscore_unmunge=F
     assert treestring or tip_names, "must provide either treestring or tip_names"
     if tip_names:
         tree_builder = TreeBuilder().create_edge
-        tips = [tree_builder([], tip_name, {}) for tip_name in tip_names]
+        tips = [tree_builder([], str(tip_name), {}) for tip_name in tip_names]
         tree = tree_builder(tips, "root", {})
         return tree
 
@@ -730,6 +735,10 @@ def make_tree(treestring=None, tip_names=None, format=None, underscore_unmunge=F
     if not tree.name_loaded:
         tree.name = "root"
 
+    # ensure all nodes have names if name_nodes is True
+    if name_nodes:
+        tree.name_unnamed_nodes()
+
     return tree
 
 
diff --git a/src/cogent3/_version.py b/src/cogent3/_version.py
index dd964a513..ea988ee8d 100644
--- a/src/cogent3/_version.py
+++ b/src/cogent3/_version.py
@@ -1,1 +1,1 @@
-__version__ = "2024.7.19a6"
+__version__ = "2024.7.19a8"
diff --git a/src/cogent3/app/__init__.py b/src/cogent3/app/__init__.py
index c8ff44175..4c08a219d 100644
--- a/src/cogent3/app/__init__.py
+++ b/src/cogent3/app/__init__.py
@@ -34,9 +34,8 @@ def _get_extension_attr(extension):
         )
 
     _types = _make_types(obj)
-
     return [
-        extension.module_name,
+        extension.module_name.split(".")[0],
         extension.name,
         is_app_composable(obj),
         _doc_summary(obj.__doc__ or ""),
@@ -90,7 +89,7 @@ def available_apps(name_filter: str | None = None) -> Table:
             # probably a local scope issue in testing!
             rows.append(_get_extension_attr(extension))
 
-    header = ["module", "name", "composable", "doc", "input type", "output type"]
+    header = ["package", "name", "composable", "doc", "input type", "output type"]
     return Table(header=header, data=rows)
 
 
diff --git a/src/cogent3/core/alignment.py b/src/cogent3/core/alignment.py
index a32646e8a..a5895fe63 100644
--- a/src/cogent3/core/alignment.py
+++ b/src/cogent3/core/alignment.py
@@ -637,11 +637,6 @@ def take_seqs(
             return {}  # safe value; can't construct empty alignment
 
         result = self.__class__(result, names=seqs, info=self.info, **kwargs)
-        if self.annotation_db:
-            result.annotation_db = type(self.annotation_db)()
-            result.annotation_db.update(
-                annot_db=self.annotation_db, seqids=result.names
-            )
         return result
 
     def get_seq_indices(self, f, negate=False):  # ported
@@ -3632,15 +3627,23 @@ def information_plot(
 
         return draw
 
-    @UI.display_wrap
+    @c3warn.deprecated_args(
+        "2024.12", reason="consistency", old_new=[("method", "stat")]
+    )
     def coevolution(
-        self, method="nmi", segments=None, drawable=None, show_progress=False, ui=None
+        self,
+        stat="nmi",
+        segments=None,
+        drawable=None,
+        show_progress=False,
+        parallel=False,
+        par_kw=None,
     ):
         """performs pairwise coevolution measurement
 
         Parameters
         ----------
-        method : str
+        stat : str
             coevolution metric, defaults to 'nmi' (Normalized Mutual
             Information). Valid choices are 'rmi' (Resampled Mutual Information)
             and 'mi', mutual information.
@@ -3664,42 +3667,28 @@ def coevolution(
         from cogent3.evolve import coevolution as coevo
         from cogent3.util.union_dict import UnionDict
 
-        method = method.lower()
-        func = {"nmi": coevo.nmi_pair, "rmi": coevo.rmi_pair, "mi": coevo.mi_pair}.get(
-            method, None
-        )
-        if func is None:
-            raise ValueError(f"{method} not supported")
-
-        positions = []
+        stat = stat.lower()
         if segments:
-            for segment in segments:
-                positions.extend(range(*segment))
-        else:
-            positions.extend(range(len(self)))
-
-        pos_pairs = combinations(positions, 2)
-        total = len(positions) * (len(positions) - 1) // 2
-        result = numpy.zeros((len(self), len(self)), dtype=float)
-        result[:] = numpy.nan  # default value
-        for pair in ui.series(pos_pairs, count=total, noun="position pairs"):
-            val = func(self, *pair)
-            if val is not None:
-                result[tuple(reversed(pair))] = val
-
-        result = result.take(positions, axis=0).take(positions, axis=1)
-        result = DictArrayTemplate(positions, positions).wrap(result)
-        if self.info.source:
-            trace_name = os.path.basename(self.info.source)
-        else:
-            trace_name = None
+            segments = [range(*segment) for segment in segments]
+
+        result = coevo.coevolution_matrix(
+            alignment=self,
+            stat=stat,
+            positions=segments,
+            show_progress=show_progress,
+            parallel=parallel,
+            par_kw=par_kw,
+        )
+        if drawable is None:
+            return result
 
+        trace_name = os.path.basename(self.info.source) if self.info.source else None
         if drawable in ("box", "violin"):
             trace = UnionDict(
                 type=drawable, y=result.array.flatten(), showlegend=False, name=""
             )
             draw = Drawable(
-                width=500, height=500, title=trace_name, ytitle=method.upper()
+                width=500, height=500, title=trace_name, ytitle=stat.upper()
             )
             draw.add_trace(trace)
             result = draw.bound_to(result)
@@ -3725,7 +3714,7 @@ def coevolution(
             trace = UnionDict(
                 type="heatmap",
                 z=result.array,
-                colorbar=dict(title=dict(text=method.upper(), font=dict(size=16))),
+                colorbar=dict(title=dict(text=stat.upper(), font=dict(size=16))),
             )
             draw.add_trace(trace)
             draw.layout.xaxis.update(axis_args)
@@ -3737,7 +3726,7 @@ def coevolution(
             except AttributeError:
                 bottom = False
 
-            if bottom and not drawable == "box":
+            if bottom and drawable != "box":
                 xlim = 1.2
                 draw.layout.width = height * xlim
                 layout = dict(legend=dict(x=xlim, y=1))
diff --git a/src/cogent3/core/alphabet.py b/src/cogent3/core/alphabet.py
index afe811f7c..ccc9cc3ae 100644
--- a/src/cogent3/core/alphabet.py
+++ b/src/cogent3/core/alphabet.py
@@ -213,7 +213,7 @@ def is_valid(self, seq):
         try:
             self.to_indices(seq)
             return True
-        except (KeyError, TypeError):
+        except (KeyError, TypeError, AlphabetError):
             return False
 
     def from_indices(self, data):
@@ -587,7 +587,7 @@ def is_valid(self, seq):
                 return True
             ind = self.to_indices(seq)
             return max(ind) < len(self) and min(ind) >= 0
-        except (TypeError, KeyError):
+        except (TypeError, KeyError, AlphabetError):
             return False
 
     def to_chars(self, data):
@@ -666,12 +666,20 @@ def _(self, data: str) -> ndarray:
         would produce the result [1,1,2,0], returning the index of each
         element in the input.
         """
-        return array(
+        result = array(
             memoryview(
                 bytearray(data.translate(self._chars_to_indices).encode("utf8"))
             ),
             dtype=self.array_type,
         )
+        # check we are within alphabet range
+        max_val = len(self)
+        if (result >= max_val).any():
+            invalid_chars = result >= max_val
+            invalid = array(list(data))[invalid_chars]
+            raise AlphabetError(f"invalid character(s) found: {invalid.tolist()}")
+
+        return result
 
     @to_indices.register
     def _(self, data: bytes) -> ndarray:
diff --git a/src/cogent3/core/new_alphabet.py b/src/cogent3/core/new_alphabet.py
index 3f9a5a6aa..c55e5378b 100644
--- a/src/cogent3/core/new_alphabet.py
+++ b/src/cogent3/core/new_alphabet.py
@@ -138,6 +138,10 @@ def to_json(self) -> str: ...
     @abstractmethod
     def from_rich_dict(cls, data: dict) -> None: ...
 
+    @property
+    def moltype(self) -> typing.Union["MolType", None]:
+        return _alphabet_moltype_map.get(self, None)
+
 
 class MonomerAlphabetABC(ABC):
     @abstractmethod
@@ -379,7 +383,10 @@ def get_kmer_alphabet(self, k: int, include_gap: bool = True) -> "KmerAlphabet":
         words += (gap,) if include_gap and gap else ()
         words += (missing,) if include_gap and missing else ()
 
-        return KmerAlphabet(words=words, monomers=self, gap=gap, k=k, missing=missing)
+        kalpha = KmerAlphabet(words=words, monomers=self, gap=gap, k=k, missing=missing)
+        if self.moltype:
+            _alphabet_moltype_map[kalpha] = self.moltype
+        return kalpha
 
     @functools.singledispatchmethod
     def is_valid(self, seq: StrORBytesORArray) -> bool:
@@ -852,8 +859,8 @@ def deserialise_kmer_alphabet(data: dict) -> KmerAlphabet:
     return KmerAlphabet.from_rich_dict(data)
 
 
-class SenseCodonAlphabet(tuple):
-    """Alphabet for the sense-codons of a GeneticCode"""
+class SenseCodonAlphabet(tuple, AlphabetABC):
+    """represents the sense-codons of a GeneticCode"""
 
     def __new__(
         cls,
@@ -894,6 +901,8 @@ def __init__(
         self._to_indices = {codon: i for i, codon in enumerate(self)}
         self._from_indices = {i: codon for codon, i in self._to_indices.items()}
         self.motif_length = 3
+        if monomers.moltype:
+            _alphabet_moltype_map[self] = monomers.moltype
 
     @property
     def gap_char(self):
@@ -1017,8 +1026,8 @@ def make_alphabet(*, chars, gap, missing, moltype):
 
     Notes
     -----
-    The moltype is associated with the alphabet, available as an
-    alphabet property.
+    The moltype is associated with the alphabet, available as the
+    alphabet.moltype property.
     """
     alpha = CharAlphabet(chars, gap=gap, missing=missing)
     _alphabet_moltype_map[alpha] = moltype
diff --git a/src/cogent3/core/new_moltype.py b/src/cogent3/core/new_moltype.py
index bfc312e63..5fe7d6cc1 100644
--- a/src/cogent3/core/new_moltype.py
+++ b/src/cogent3/core/new_moltype.py
@@ -560,9 +560,8 @@ def make_seq(
             additional keyword arguments that may be required for creating the
             Sequence object
         """
-        # refactor: design
-        # for Sequence and SeqView object, a consistency check with moltype/alphabet
-        # should be performed
+        if hasattr(seq, "moltype"):
+            return seq if seq.moltype is self else seq.to_moltype(self)
 
         if check_seq:
             assert self.is_valid(
diff --git a/src/cogent3/core/new_sequence.py b/src/cogent3/core/new_sequence.py
index 2b3a66dc8..8ffe35011 100644
--- a/src/cogent3/core/new_sequence.py
+++ b/src/cogent3/core/new_sequence.py
@@ -1186,8 +1186,8 @@ def to_moltype(self, moltype: str):
 
         if not moltype.most_degen_alphabet().is_valid(seq):
             raise ValueError(
-                f"Changing from old moltype={self.moltype.label} to new "
-                f"moltype={moltype.label} is not valid for this data"
+                f"Changing from old moltype={self.moltype.label!r} to new "
+                f"moltype={moltype.label!r} is not valid for this data"
             )
         sv = SeqView(parent=seq, alphabet=moltype.most_degen_alphabet())
         new = self.__class__(moltype=moltype, seq=sv, name=self.name, info=self.info)
@@ -2721,6 +2721,17 @@ def _coerce_to_seqview(data, seqid, alphabet, offset) -> SeqViewABC:
 
 @_coerce_to_seqview.register
 def _(data: SeqViewABC, seqid, alphabet, offset) -> SeqViewABC:
+    # we require the indexes of shared states in alphabets to be the same
+    # SeqView has an alphabet but SeqViewABC does NOT because that is
+    # more general and covers the case where the SeqsData collection has the
+    # alphabet
+    if hasattr(data, "alphabet"):
+        n = min(len(data.alphabet), len(alphabet))
+        if data.alphabet[:n] != alphabet[:n]:
+            raise new_alphabet.AlphabetError(
+                f"element order {data.alphabet=} != to that in {alphabet=} for {data=!r}"
+            )
+
     if offset and data.offset:
         raise ValueError(
             f"cannot set {offset=} on a SeqView with an offset {data.offset=}"
diff --git a/src/cogent3/core/tree.py b/src/cogent3/core/tree.py
index 3df647b30..c3c88fb90 100644
--- a/src/cogent3/core/tree.py
+++ b/src/cogent3/core/tree.py
@@ -27,6 +27,7 @@
 
 from __future__ import annotations
 
+import contextlib
 import json
 import numbers
 import re
@@ -35,6 +36,7 @@
 from itertools import combinations
 from operator import or_
 from random import choice, shuffle
+from typing import Union
 
 from numpy import argsort, ceil, log, zeros
 
@@ -68,7 +70,7 @@ def _copy_node(n):
     return result
 
 
-class TreeNode(object):
+class TreeNode:
     """Store information about a tree node. Mutable.
 
     Parameters:
@@ -126,10 +128,16 @@ def __str__(self):
     # return self.name != other.name
 
     def __lt__(self, other):
-        return self.name < other.name
+        self_name = self.name or ""
+        other_name = other.name or ""
+
+        return self_name < other_name
 
     def __gt__(self, other):
-        return self.name > other.name
+        self_name = self.name or ""
+        other_name = other.name or ""
+
+        return self_name > other_name
 
     def compare_name(self, other):
         """Compares TreeNode by name"""
@@ -1692,21 +1700,27 @@ class PhyloNode(TreeNode):
     def __init__(self, *args, **kwargs):
         length = kwargs.get("length", None)
         params = kwargs.get("params", {})
-        if "length" not in params:
-            params["length"] = length
+        params["length"] = params.get("length", length)
         kwargs["params"] = params
-        super(PhyloNode, self).__init__(*args, **kwargs)
+        super().__init__(*args, **kwargs)
+
+        if self.children:
+            # self is an internal tree node
+            name, support = split_name_and_support(self.name)
+            self.name = name
+            if support is not None:
+                self.params["support"] = support
+
+    @property
+    def length(self) -> Union[float, None]:
+        return self.params.get("length", None)
 
-    def _set_length(self, value):
+    @length.setter
+    def length(self, value: Union[float, None]) -> None:
         if not hasattr(self, "params"):
             self.params = {}
         self.params["length"] = value
 
-    def _get_length(self):
-        return self.params.get("length", None)
-
-    length = property(_get_length, _set_length)
-
     def __str__(self):
         """Returns string version of self, with names and distances."""
         return self.get_newick(with_distances=True)
@@ -1771,7 +1785,7 @@ def get_distance(d1, d2):
         to_process = [(self, 0.0)]
         tips_to_save = []
 
-        seen = set([id(self)])
+        seen = {id(self)}
         while to_process:
             curr_node, curr_dist = to_process.pop(0)
 
@@ -2179,6 +2193,39 @@ def set_max_tip_tip_distance(self):
                 n.MaxDistTips = [tip_a, tip_b]
 
 
+def split_name_and_support(name_field: str | None) -> tuple[str | None, float | None]:
+    """Handle cases in the Newick format where an internal node name field
+    contains a name or/and support value, like 'edge.98/100'.
+    """
+    # handle the case where the name field is None or empty string
+    if not name_field:
+        return None, None
+
+    # if name_field is "24", treat it as support, returns (None, 24.0)
+    with contextlib.suppress(ValueError):
+        return None, float(name_field)
+
+    # otherwise, split the name field into name and support
+    name, *support = name_field.split("/")
+
+    if len(support) == 1:
+        try:
+            support_value = float(support[0])
+        except ValueError as e:
+            raise ValueError(
+                f"Support value at node: {name!r} should be int or float not {support[0]!r}."
+            ) from e
+    # handle case where mutiple '/' in the name field
+    elif len(support) > 1:
+        raise ValueError(
+            f"Support value at node: {name!r} should be int or float not {'/'.join(support)!r}."
+        )
+    else:
+        support_value = None
+
+    return name, support_value
+
+
 class TreeBuilder(object):
     # Some tree code which isn't needed once the tree is finished.
     # Mostly exists to give edges unique names
diff --git a/src/cogent3/evolve/coevolution.py b/src/cogent3/evolve/coevolution.py
index 8a4b875c2..6198cfdc7 100755
--- a/src/cogent3/evolve/coevolution.py
+++ b/src/cogent3/evolve/coevolution.py
@@ -1,52 +1,12 @@
-"""Description
-File created on 03 May 2007.
-
-Functions to perform coevolutionary analyses on
-pre-aligned biological sequences. Coevolutionary analyses detect
-correlated substitutions between alignment positions. Analyses
-can be performed to look for covariation between a pair of
-alignment positions, in which case a single 'coevolve score' is
-returned. (The nature of this coevolve score is determined by the
-method used to detect coevolution.) Alternatively, coevolution can
-be calculated between one position and all other positions in an
-alignment, in which case a vector of coevolve scores is returned.
-Finally, coevolution can be calculated over all pairs of positions
-in an alignment, in which case a matrix (usually, but not necessarily,
-symmetric) is returned.
-
-The functions providing the core functionality here are:
-
-coevolve_pair: coevolution between a pair of positions (float returned)
-coevolve_position: coevolution between a position and all other
-    positions in the alignment (vector returned)
-coevolve_alignment: coevolution between all pairs of positions in an
-    alignment (matrix returned)
-
-Each of these functions takes a coevolution calculator, an alignment, and
- any additional keyword arguments that should be passed to the coevolution
- calculator. More information on these functions and how they should be used
- is available as executable documentation in coevolution.rst.
-
-The methods provided for calculating coevolution are:
-Mutual Information (Shannon 19xx)
-Normalized Mutual Information (Martin 2005)
-Statistical Coupling Analysis (Suel 2003)
-*Ancestral states (Tuffery 2000 -- might not be the best ref,
- a better might be Shindyalov, Kolchannow, and Sander 1994, but so far I
- haven't been able to get my hands on that one).
-* These methods require a phylogenetic tree, in addition to an alignment.
- Trees are calculated on-the-fly, by neighbor-joining, if not provided.
-
-This file can be applied as a script to calculate a coevolution matrix given
-an alignment. For information, run python coevolution.py -h from the command
-line.
-
-"""
-
+import enum
+import itertools
+import typing
 from os.path import basename
 from pickle import Pickler, Unpickler
 from random import shuffle
 
+import numba
+import numpy
 from numpy import (
     array,
     e,
@@ -63,6 +23,7 @@
 from numpy.linalg import norm
 
 from cogent3 import PROTEIN, make_aligned_seqs
+from cogent3.core import new_alphabet
 from cogent3.core.alignment import ArrayAlignment
 from cogent3.core.alphabet import CharAlphabet
 from cogent3.core.moltype import IUPAC_gap, IUPAC_missing
@@ -74,12 +35,619 @@
 from cogent3.maths.stats.distribution import binomial_exact
 from cogent3.maths.stats.number import CategoryCounter, CategoryFreqs
 from cogent3.maths.stats.special import ROUND_ERROR
+from cogent3.util import dict_array
+from cogent3.util import parallel as PAR
+from cogent3.util import progress_display as UI
+from cogent3.util import warning as c3warn
 
 DEFAULT_EXCLUDES = "".join([IUPAC_gap, IUPAC_missing])
 DEFAULT_NULL_VALUE = nan
 
 
-def build_rate_matrix(count_matrix, freqs, aa_order="ACDEFGHIKLMNPQRSTVWY"):
+class MI_METHODS(enum.Enum):
+    mi = "mi"
+    nmi = "nmi"
+    rmi = "rmi"
+
+
+# Comments on design
+# the revised mutual information calculations are based on a sequence alignment
+# represented as a numpy uint8 array.
+
+# The resampled mutual information calculation uses a cache of all entropy terms
+# from the independent and joint position, produced by _calc_entropy_components().
+# For each combination of alternate possible states, there are two values in the
+# entropy terms that need to be modified. These calculations are done by
+# _calc_updated_entropy() and _calc_temp_entropy(). This caching, plus the
+# numba.jit compilation, makes rmi competitive performance-wise with the other
+# methods.
+
+
+@numba.jit
+def _count_states(
+    state_vector: numpy.ndarray,
+    num_states: int,
+    counts: typing.Optional[numpy.ndarray] = None,
+) -> numpy.ndarray:  # pragma: no cover
+    """computes counts from a single vector of states"""
+    if counts is None:
+        counts = numpy.empty(num_states, dtype=numpy.int64)
+
+    counts.fill(0)
+    for state in state_vector:
+        if state < num_states:
+            counts[state] += 1
+
+    return counts
+
+
+@numba.jit
+def _vector_entropy(counts: numpy.ndarray) -> float:  # pragma: no cover
+    """computes entropy for a single vector of integers"""
+    total = counts.sum()
+    if total <= 1:
+        return 0.0 if total else numpy.nan
+
+    entropy = 0.0
+    for count in counts:
+        if count > 0:
+            prob = count / total
+            entropy += prob * -numpy.log2(prob)
+
+    return entropy
+
+
+@numba.jit
+def _count_joint_states(
+    joint_states: numpy.ndarray,
+    num_states: int,
+    counts: typing.Optional[numpy.ndarray] = None,
+) -> numpy.ndarray:  # pragma: no cover
+    if counts is None:
+        counts = numpy.empty((num_states, num_states), dtype=numpy.int64)
+
+    counts.fill(0)
+    for joint_state in joint_states:
+        i, j = joint_state
+        if i >= num_states or j >= num_states:
+            continue
+
+        counts[i, j] += 1
+    return counts
+
+
+@numba.jit
+def _calc_joint_entropy(counts: numpy.ndarray) -> float:  # pragma: no cover
+    entropy = 0.0
+    total_counts = counts.sum()
+    for count in counts.flatten():
+        if count > 0:
+            prob = count / total_counts
+            entropy += prob * -numpy.log2(prob)
+    return entropy
+
+
+@numba.jit
+def _calc_column_entropies(
+    columns: numpy.ndarray, num_states: int
+) -> numpy.ndarray:  # pragma: no cover
+    """
+    Calculate the entropy for each column in the input array.
+
+    Parameters:
+    array (numpy.ndarray): Input array of unsigned 8-bit integers.
+
+    Returns:
+    numpy.ndarray: Array of entropy values for each column.
+    """
+    n_cols = columns.shape[1]
+    entropies = numpy.zeros(n_cols, dtype=numpy.float64)
+    counts = numpy.empty(num_states, dtype=numpy.int64)
+    for col in range(n_cols):
+        counts = _count_states(columns[:, col], num_states, counts)
+        entropies[col] = _vector_entropy(counts)
+
+    return entropies
+
+
+@numba.jit
+def _make_weights(
+    counts: numpy.ndarray, weights: typing.Optional[numpy.ndarray] = None
+) -> numpy.ndarray:  # pragma: no cover
+    """Return the weights for replacement states for each possible character.
+    We compute the weight as the normalized frequency of the replacement state
+    divided by 2*n."""
+    zeroes = counts == 0
+    total = counts.sum()
+    char_prob = counts.astype(numpy.float64) / total
+    if weights is None:
+        weights = numpy.empty((counts.shape[0], counts.shape[0]), dtype=numpy.float64)
+
+    weights.fill(0.0)
+    denom = 2 * total
+    for i in range(counts.shape[0]):
+        if zeroes[i]:
+            continue
+        diag = char_prob[i]
+        weights[i, :] = char_prob / (1 - diag) / denom
+        weights[i, i] = 0.0
+
+    return weights
+
+
+@numba.jit
+def _calc_entropy_components(
+    counts: numpy.ndarray, total: int
+) -> tuple[float, numpy.ndarray, numpy.ndarray]:  # pragma: no cover
+    """Return the entropy and arrays of entropy components and non-zero status"""
+    non_zero = counts != 0
+    assert counts.ndim == 1, "designed for 1D arrays"
+    freqs = counts.astype(numpy.float64) / total
+    log2 = numpy.zeros(counts.shape, dtype=numpy.float64)
+    et = numpy.zeros(counts.shape, dtype=numpy.float64)
+    log2[non_zero] = numpy.log2(freqs[non_zero])
+    et[non_zero] = (
+        -log2[non_zero] * freqs[non_zero]
+    )  # the terms in the entropy equation
+    h = numpy.sum(et)  # entropy of the original data
+    return h, et, non_zero
+
+
+@numba.jit
+def _calc_temp_entropy(
+    entropy: float,
+    counts: numpy.ndarray,
+    entropy_terms: numpy.ndarray,
+    total: int,
+    index: int,
+) -> float:  # pragma: no cover
+    # compute the intermediate column 1 entropy term
+    new_count = counts[index] - 1
+    orig_term = entropy_terms[index]
+    if new_count > 0:
+        freq = new_count / total
+        log2 = -numpy.log2(freq)
+        new_term = freq * log2
+    else:
+        new_term = 0.0
+
+    return entropy - orig_term + new_term
+
+
+@numba.jit
+def _calc_updated_entropy(
+    temp_entropy: float,
+    counts: numpy.ndarray,
+    entropy_terms: numpy.ndarray,
+    total: int,
+    index: int,
+) -> float:  # pragma: no cover
+    new_count = counts[index] + 1
+    orig_term = entropy_terms[index]
+    freq = new_count / total
+    log2 = -numpy.log2(freq)
+    new_term = freq * log2
+    return temp_entropy - orig_term + new_term
+
+
+@numba.jit
+def _calc_pair_scale(
+    counts_12: numpy.ndarray,
+    counts_1: numpy.ndarray,
+    counts_2: numpy.ndarray,
+    weights_1: numpy.ndarray,
+    weights_2: numpy.ndarray,
+    states_12: numpy.ndarray,
+    states_1: numpy.ndarray,
+    states_2: numpy.ndarray,
+    coeffs: numpy.ndarray,
+) -> tuple[float, numpy.ndarray, numpy.ndarray]:  # pragma: no cover
+    """Return entropies and weights for comparable alignment.
+    A comparable alignment is one in which, for each paired state ij, all
+    alternate observable paired symbols are created. For instance, let the
+    symbols {A,C} be observed at position i and {A,C} at position j. If we
+    observe the paired types {AC, AA}. A comparable alignment would involve
+    replacing an AC pair with a CC pair."""
+
+    # break down the joint entropy into individual terms so we can easily adjust
+    # for the different combinations
+    total = counts_1.sum()
+    counts_12 = counts_12.flatten()
+    je_orig, jet, j_nz = _calc_entropy_components(counts_12, total)
+
+    # individual entropy components for column 1
+    orig_e_1, et_1, nz_1 = _calc_entropy_components(counts_1, total)
+
+    # individual entropy components for column 2
+    orig_e_2, et_2, nz_2 = _calc_entropy_components(counts_2, total)
+    orig_mi = orig_e_1 + orig_e_2 - je_orig
+
+    num_scales = j_nz.sum() * nz_1.sum() + j_nz.sum() * nz_2.sum()
+    scales = numpy.zeros((num_scales, 2), dtype=numpy.float64)
+    pairs = numpy.zeros((num_scales, 2), dtype=numpy.uint64)
+    new_coord = numpy.zeros(2, dtype=numpy.int64)
+    if orig_e_1 == 0.0 or orig_e_2 == 0.0 or je_orig == 0.0:
+        return 0.0, pairs, scales
+
+    n = 0
+    for pair in states_12.flatten()[j_nz]:
+        i, j = new_alphabet.index_to_coord(pair, coeffs=coeffs)
+        if counts_12[pair] == 0:
+            continue
+
+        # compute the intermediate column 1 entropy term
+        tmp_e_1 = _calc_temp_entropy(orig_e_1, counts_1, et_1, total, i)
+
+        # compute the intermediate joint entropy term
+        tmp_je = _calc_temp_entropy(je_orig, counts_12, jet, total, pair)
+
+        for k in states_1:
+            if k == i or counts_1[k] == 0:
+                continue
+            # compute the new entropy for column 1
+            new_e_1 = _calc_updated_entropy(tmp_e_1, counts_1, et_1, total, k)
+
+            # compute the new joint-entropy
+            new_coord[:] = k, j
+            new_index = new_alphabet.coord_to_index(new_coord, coeffs=coeffs)
+            n_je = _calc_updated_entropy(tmp_je, counts_12, jet, total, new_index)
+
+            # the weight
+            w = weights_1[i, k]
+            new_mi = new_e_1 + orig_e_2 - n_je
+            scales[n][0] = new_mi
+            scales[n][1] = w
+            pairs[n][0] = i
+            pairs[n][1] = j
+            n += 1
+
+        # compute the intermediate column 2 entropy term
+        tmp_e_2 = _calc_temp_entropy(orig_e_2, counts_2, et_2, total, j)
+        for k in states_2:
+            if k == j or counts_2[k] == 0:
+                continue
+
+            # compute the new entropy for column 1
+            new_e_2 = _calc_updated_entropy(tmp_e_2, counts_2, et_2, total, k)
+
+            # compute the new joint-entropy
+            new_coord[:] = i, k
+            new_index = new_alphabet.coord_to_index(new_coord, coeffs=coeffs)
+            n_je = _calc_updated_entropy(tmp_je, counts_12, jet, total, new_index)
+
+            # the weight
+            w = weights_2[j, k]
+            new_mi = orig_e_1 + new_e_2 - n_je
+            scales[n][0] = new_mi
+            scales[n][1] = w
+            pairs[n][0] = i
+            pairs[n][1] = j
+            n += 1
+
+    return orig_mi, pairs, scales
+
+
+@numba.jit
+def _count_col_joint(
+    pos_12: numpy.ndarray,
+    counts_12: numpy.ndarray,
+    counts_1: numpy.ndarray,
+    counts_2: numpy.ndarray,
+    num_states: int,
+) -> tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray]:  # pragma: no cover
+    counts_12.fill(0)
+    counts_1.fill(0)
+    counts_2.fill(0)
+    for pos_1, pos_2 in pos_12:
+        if pos_1 >= num_states or pos_2 >= num_states:
+            continue
+        counts_12[pos_1, pos_2] += 1
+        counts_1[pos_1] += 1
+        counts_2[pos_2] += 1
+
+    return counts_12, counts_1, counts_2
+
+
+@numba.jit
+def _rmi_calc(
+    positions: numpy.ndarray,
+    alignment: numpy.ndarray,
+    num_states: numpy.uint8,
+) -> tuple[numpy.ndarray, numpy.ndarray]:  # pragma: no cover
+    coeffs = new_alphabet.coord_conversion_coeffs(num_states, 2, dtype=numpy.int64)
+    weights_1 = numpy.empty((num_states, num_states), dtype=float)
+    weights_2 = numpy.empty((num_states, num_states), dtype=float)
+
+    n_seqs = alignment.shape[0]
+    stats = numpy.empty(len(positions), dtype=numpy.float64)
+    stats.fill(numpy.nan)
+
+    counts_1 = numpy.empty(num_states, dtype=numpy.int64)
+    counts_2 = numpy.empty(num_states, dtype=numpy.int64)
+    counts_12 = numpy.zeros((num_states, num_states), dtype=numpy.int64)
+    joint_states = numpy.empty((n_seqs, 2), dtype=numpy.uint8)
+
+    # the state indices
+    states_12 = numpy.arange(counts_12.size).reshape(counts_12.shape)
+    states_1 = numpy.arange(counts_1.size)
+    states_2 = numpy.arange(counts_2.size)
+
+    for pair in range(len(positions)):
+        i, j = positions[pair]
+        joint_states[:, 0] = alignment[:, i]
+        joint_states[:, 1] = alignment[:, j]
+
+        counts_12, counts_1, counts_2 = _count_col_joint(
+            joint_states, counts_12, counts_1, counts_2, num_states
+        )
+
+        weights_1 = _make_weights(counts_1, weights_1)
+        weights_2 = _make_weights(counts_2, weights_2)
+        entropy, pairs, scales = _calc_pair_scale(
+            counts_12,
+            counts_1,
+            counts_2,
+            weights_1,
+            weights_2,
+            states_12,
+            states_1,
+            states_2,
+            coeffs,
+        )
+        if entropy == 0.0:
+            stats[pair] = 0.0
+        else:
+            stat = 0.0
+            for i in range(scales.shape[0]):
+                e, w = scales[i]
+                # we round the revised entropy to avoid floating point errors
+                # this is in effect a more stringent condition
+                if entropy > numpy.round(e, 10):
+                    continue
+
+                p1, p2 = pairs[i]
+                stat += w * counts_12[p1, p2]
+
+            stats[pair] = 1 - stat
+
+    return positions, stats
+
+
+@numba.jit
+def _calc_all_entropies(
+    joint_states: numpy.ndarray,
+    joint_counts: numpy.ndarray,
+    counts_1: numpy.ndarray,
+    counts_2: numpy.ndarray,
+    num_states: int,
+) -> tuple[float, float, float]:  # pragma: no cover
+    joint_counts, counts_1, counts_2 = _count_col_joint(
+        joint_states, joint_counts, counts_1, counts_2, num_states
+    )
+    entropy_1 = _vector_entropy(counts_1)
+    entropy_2 = _vector_entropy(counts_2)
+    if entropy_1 == 0.0 or entropy_2 == 0.0:
+        return entropy_1, entropy_2, 0.0
+
+    joint_entropy = _calc_joint_entropy(joint_counts)
+    return entropy_1, entropy_2, joint_entropy
+
+
+@numba.jit
+def _general_mi_calc(
+    positions: numpy.ndarray,
+    canonical_pos: numpy.ndarray,
+    alignment: numpy.ndarray,
+    entropies: numpy.ndarray,
+    num_states: numpy.uint8,
+    metric_id: int = MI_METHODS.mi,
+) -> tuple[numpy.ndarray, numpy.ndarray]:  # pragma: no cover
+    n_seqs = alignment.shape[0]
+    stats = numpy.empty(len(positions), dtype=numpy.float64)
+    stats.fill(numpy.nan)
+
+    counts_1 = numpy.empty(num_states, dtype=numpy.int64)
+    counts_2 = numpy.empty(num_states, dtype=numpy.int64)
+    joint_counts = numpy.zeros((num_states, num_states), dtype=numpy.int64)
+    joint_states = numpy.empty((n_seqs, 2), dtype=numpy.uint8)
+    for pair in range(len(positions)):
+        i, j = positions[pair]
+        joint_states[:, 0] = alignment[:, i]
+        joint_states[:, 1] = alignment[:, j]
+        if canonical_pos[i] and canonical_pos[j]:
+            entropy_i = entropies[i]
+            entropy_j = entropies[j]
+            joint_counts = _count_joint_states(joint_states, num_states, joint_counts)
+            joint_entropy = _calc_joint_entropy(
+                joint_counts,
+            )
+        else:
+            # we need to compute all entropies
+            # cases where either position has a non-canonical
+            # state are omitted
+            entropy_i, entropy_j, joint_entropy = _calc_all_entropies(
+                joint_states,
+                joint_counts,
+                counts_1,
+                counts_2,
+                num_states,
+            )
+
+        # MI
+        stat = entropy_i + entropy_j - joint_entropy
+        if metric_id == 2 and joint_entropy != 0.0:
+            # normalised MI
+            stat /= joint_entropy
+
+        stats[pair] = stat
+    return positions, stats
+
+
+def _gen_combinations(num_pos: int, chunk_size: int) -> typing.Iterator[numpy.ndarray]:
+    combs = itertools.combinations(range(num_pos), 2)
+
+    while True:
+        if chunk := list(itertools.islice(combs, chunk_size)):
+            yield numpy.array(chunk)
+        else:
+            break
+
+
+class calc_mi:
+    """calculator for mutual information or normalised mutual information
+
+    callable with positions to calculate the statistic for.
+    """
+
+    def __init__(self, data: numpy.ndarray, num_states: int, metric_id: enum.Enum):
+        """
+        Parameters
+        ----------
+        data
+            a 2D numpy array of uint8 values representing a multiple sequence
+            alignment where sequences are the first dimension and positions are
+            the second dimension.
+        num_states
+            the number of canonical states in the moltype. Sequence elements that
+            exceed this value are not included in the calculation.
+        metric_id
+            either 1 (for MI) or 2 (for NMI)
+        """
+        self._data = data
+        self._num_states = num_states
+        self._metric_id = metric_id
+        self._canonical_pos = numpy.all(self._data < self._num_states, axis=0)
+        self._entropies = _calc_column_entropies(self._data, self._num_states)
+
+    def __call__(self, positions: numpy.ndarray) -> tuple[numpy.ndarray, numpy.ndarray]:
+        return _general_mi_calc(
+            positions,
+            self._canonical_pos,
+            self._data,
+            self._entropies,
+            self._num_states,
+            metric_id=self._metric_id,
+        )
+
+
+class calc_rmi:
+    """calculator for resampled mutual information
+
+    Callable with positions to calculate the statistic for.
+    When called, it returns the positions and their corresponding statistic.
+    """
+
+    def __init__(self, data: numpy.ndarray, num_states: int):
+        """
+        Parameters
+        ----------
+        data
+            a 2D numpy array of uint8 values representing a multiple sequence
+            alignment where sequences are the first dimension and positions are
+            the second dimension.
+        num_states
+            the number of canonical states in the moltype. Sequence elements that
+            exceed this value are not included in the calculation.
+        """
+        self._data = data
+        self._num_states = num_states
+
+    def __call__(self, positions: numpy.ndarray) -> tuple[numpy.ndarray, numpy.ndarray]:
+        return _rmi_calc(positions, self._data, self._num_states)
+
+
+@UI.display_wrap
+def coevolution_matrix(
+    *,
+    alignment: "Alignment",
+    positions: typing.Optional[typing.List[int]] = None,
+    stat: str = "nmi",
+    parallel: bool = False,
+    par_kw: typing.Optional[dict] = None,
+    show_progress: bool = False,
+    ui=None,
+) -> dict_array.DictArray:
+    """measure pairwise coevolution
+
+    Parameters
+    ----------
+    aln
+        sequence alignment
+    stat
+        either 'mi' (mutual information), 'nmi' (normalised MI) or 'rmi' (resampled MI)
+    parallel
+        run in parallel on your machine
+    par_kw
+        providing {'max_workers': 6} defines the number of workers to use, see
+        arguments for cogent3.util.parallel.as_completed()
+    show_progress
+        displays a progress bar
+
+    Returns
+    -------
+    Returns a DictArray with the pairwise coevolution values as a lower triangle. The other
+    values are nan.
+    """
+    stat = {"mi": 1, "nmi": 2, "rmi": 3}[MI_METHODS(stat).name]
+    num_states = len(alignment.moltype.alphabet)
+
+    if hasattr(alignment, "__array__"):
+        # new_type Alignment classes will support direct conversion
+        # to numpy.uint8 arrays
+        data = numpy.array(alignment)
+    else:
+        data = alignment.to_type(array_align=True).array_seqs
+
+    if positions:
+        positions = list(itertools.chain(*positions))
+        data = data[:, tuple(positions)]
+    else:
+        positions = range(data.shape[1])
+
+    num_pos = data.shape[1]
+
+    if stat == 3:
+        calc = calc_rmi(data, num_states)
+    else:
+        calc = calc_mi(data, num_states, stat)
+
+    mutual_info = numpy.empty((num_pos, num_pos), dtype=numpy.float64)
+    mutual_info.fill(numpy.nan)
+
+    # we generate the positions as a numpy.array of tuples
+    chunk_size = 10_000
+    num_chunks = num_pos * (num_pos - 1) // 2 // chunk_size
+
+    position_combinations = _gen_combinations(num_pos, chunk_size)
+    if parallel:
+        par_kw = par_kw or {}
+        to_do = PAR.as_completed(calc, position_combinations, **par_kw)
+    else:
+        to_do = map(calc, position_combinations)
+
+    for pos_pairs, stats in ui.series(
+        to_do,
+        noun="Sets of pairwise positions",
+        count=num_chunks + 1,
+    ):
+        indices = numpy.ravel_multi_index(pos_pairs.T[::-1], (num_pos, num_pos))
+        mutual_info.put(indices, stats)
+
+    positions = list(positions)
+    return dict_array.DictArray.from_array_names(mutual_info, positions, positions)
+
+
+_reason_1 = (
+    "discontinuing support for non-MI based calculations, use coevolution_matrix()"
+)
+_reason_2 = "discontinuing support for one-off calculations, use coevolution_matrix()"
+_reason_3 = "discontinuing support due to poor performance, use coevolution_matrix()"
+
+
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def build_rate_matrix(
+    count_matrix, freqs, aa_order="ACDEFGHIKLMNPQRSTVWY"
+):  # pragma: no cover
     epm = EmpiricalProteinMatrix(count_matrix, freqs)
     word_probs = array([freqs[aa] for aa in aa_order])
     num = word_probs.shape[0]
@@ -92,12 +660,14 @@ def build_rate_matrix(count_matrix, freqs, aa_order="ACDEFGHIKLMNPQRSTVWY"):
 # Mutual Information Calculators
 
 
-def mi(h1, h2, joint_h):
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
+def mi(h1, h2, joint_h):  # pragma: no cover
     """Calc Mutual Information given two entropies and their joint entropy"""
     return h1 + h2 - joint_h
 
 
-def normalized_mi(h1, h2, joint_h):
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
+def normalized_mi(h1, h2, joint_h):  # pragma: no cover
     """MI normalized by joint entropy, as described in Martin 2005"""
     return mi(h1, h2, joint_h) / joint_h
 
@@ -107,7 +677,8 @@ def normalized_mi(h1, h2, joint_h):
 # Other functions used in MI calculations
 
 
-def join_positions(pos1, pos2):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def join_positions(pos1, pos2):  # pragma: no cover
     """Merge two positions and return as a list of strings
 
     pos1: iterable object containing the first positions data
@@ -120,7 +691,8 @@ def join_positions(pos1, pos2):
     return ["".join([r1, r2]) for r1, r2 in zip(pos1, pos2)]
 
 
-def joint_entropy(pos1, pos2):
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
+def joint_entropy(pos1, pos2):  # pragma: no cover
     """Calculate the joint entroy of a pair of positions"""
     return CategoryCounter(join_positions(pos1, pos2)).entropy
 
@@ -129,7 +701,8 @@ def joint_entropy(pos1, pos2):
 # characters)
 
 
-def ignore_excludes(pos, excludes=DEFAULT_EXCLUDES):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def ignore_excludes(pos, excludes=DEFAULT_EXCLUDES):  # pragma: no cover
     """Return position data as-is (results in excludes treated as other chars)"""
     return pos
 
@@ -137,6 +710,7 @@ def ignore_excludes(pos, excludes=DEFAULT_EXCLUDES):
 # Functions for scoring coevolution on the basis of Mutual Information
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def mi_pair(
     alignment,
     pos1,
@@ -147,7 +721,7 @@ def mi_pair(
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calculate mutual information of a pair of alignment positions
 
     alignment: the full alignment object
@@ -206,6 +780,7 @@ def mi_pair(
     return result
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def mi_position(
     alignment,
     position,
@@ -214,7 +789,7 @@ def mi_position(
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calc mi b/w position and all other positions in an alignment
 
     alignment: the full alignment object
@@ -261,13 +836,14 @@ def mi_position(
     return result
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def mi_alignment(
     alignment,
     mi_calculator=mi,
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calc mi over all position pairs in an alignment
 
     alignment: the full alignment object
@@ -318,6 +894,7 @@ def mi_alignment(
 # Start Normalized Mutual Information Analysis (Martin 2005)
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def normalized_mi_pair(
     alignment,
     pos1,
@@ -327,7 +904,7 @@ def normalized_mi_pair(
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calc normalized mutual information of a pair of alignment positions
 
     alignment: the full alignment object
@@ -362,6 +939,7 @@ def normalized_mi_pair(
 nmi_pair = normalized_mi_pair
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def normalized_mi_position(
     alignment,
     position,
@@ -369,7 +947,7 @@ def normalized_mi_position(
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calc normalized mi b/w position and all other positions in an alignment
 
     alignment: the full alignment object
@@ -403,12 +981,13 @@ def normalized_mi_position(
 nmi_position = normalized_mi_position
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_2, is_discontinued=True)
 def normalized_mi_alignment(
     alignment,
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
-):
+):  # pragma: no cover
     """Calc normalized mi over all position pairs in an alignment
 
     alignment: the full alignment object
@@ -472,7 +1051,8 @@ class SCAError(Exception):
 default_sca_freqs = protein_dict
 
 
-def freqs_to_array(f, alphabet):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def freqs_to_array(f, alphabet):  # pragma: no cover
     """Takes data in freqs object and turns it into array.
 
     f = dict or CategoryCounter object
@@ -482,7 +1062,10 @@ def freqs_to_array(f, alphabet):
     return array([f.get(i, 0) for i in alphabet])
 
 
-def get_allowed_perturbations(counts, cutoff, alphabet, num_seqs=100):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def get_allowed_perturbations(
+    counts, cutoff, alphabet, num_seqs=100
+):  # pragma: no cover
     """Returns list of allowed perturbations as characters
 
     count: Profile object of raw character counts at each position
@@ -504,7 +1087,8 @@ def get_allowed_perturbations(counts, cutoff, alphabet, num_seqs=100):
     return result
 
 
-def probs_from_dict(d, alphabet):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def probs_from_dict(d, alphabet):  # pragma: no cover
     """Convert dict of alphabet char probabilities to list in alphabet's order
 
     d: probabilities of observing each character in alphabet (dict indexed
@@ -517,7 +1101,8 @@ def probs_from_dict(d, alphabet):
     return array([d[c] for c in alphabet])
 
 
-def freqs_from_aln(aln, alphabet, scaled_aln_size=100):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def freqs_from_aln(aln, alphabet, scaled_aln_size=100):  # pragma: no cover
     """Return the frequencies in aln of chars in alphabet's order
 
     aln: the alignment object
@@ -541,7 +1126,10 @@ def freqs_from_aln(aln, alphabet, scaled_aln_size=100):
     return (alphabet_as_indices == aln_data).sum(1) * (scaled_aln_size / len(aln_data))
 
 
-def get_positional_frequencies(aln, position_number, alphabet, scaled_aln_size=100):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def get_positional_frequencies(
+    aln, position_number, alphabet, scaled_aln_size=100
+):  # pragma: no cover
     """Return the freqs in aln[position_number] of chars in alphabet's order
 
     aln: the alignment object
@@ -566,7 +1154,10 @@ def get_positional_frequencies(aln, position_number, alphabet, scaled_aln_size=1
     )
 
 
-def get_positional_probabilities(pos_freqs, natural_probs, scaled_aln_size=100):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def get_positional_probabilities(
+    pos_freqs, natural_probs, scaled_aln_size=100
+):  # pragma: no cover
     """Get probs of observering the freq of each char given it's natural freq
     In Suel 2003 supplementary material, this step is defined as:
      "... each element is the binomial probability of observing each
@@ -602,7 +1193,8 @@ def get_positional_probabilities(pos_freqs, natural_probs, scaled_aln_size=100):
     return array(results)
 
 
-def get_subalignments(aln, position, selections):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def get_subalignments(aln, position, selections):  # pragma: no cover
     """returns subalns w/ seq[pos] == selection for each in selections
     aln: an alignment object
     position: int in alignment to be checked for each perturbation
@@ -627,7 +1219,8 @@ def get_subalignments(aln, position, selections):
     return result
 
 
-def get_dg(position_probs, aln_probs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def get_dg(position_probs, aln_probs):  # pragma: no cover
     """Return delta_g vector
 
     position_probs: the prob of observing each alphabet chars frequency in
@@ -644,7 +1237,8 @@ def get_dg(position_probs, aln_probs):
     return array(results)
 
 
-def get_dgg(all_dgs, subaln_dgs, scaled_aln_size=100):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def get_dgg(all_dgs, subaln_dgs, scaled_aln_size=100):  # pragma: no cover
     """Return delta_delta_g value
 
     all_dgs: the dg vector for a position-of-interest in the alignment
@@ -675,6 +1269,7 @@ def get_dgg(all_dgs, subaln_dgs, scaled_aln_size=100):
     return norm(all_dgs - subaln_dgs) / scaled_aln_size * e
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def sca_pair(
     alignment,
     pos1,
@@ -689,7 +1284,7 @@ def sca_pair(
     return_all=False,
     alphabet=default_sca_alphabet,
     background_freqs=default_sca_freqs,
-):
+):  # pragma: no cover
     """ Calculate statistical coupling b/w a pair of alignment columns
 
         alignment: full alignment object
@@ -817,6 +1412,7 @@ def sca_pair(
         return max(ddg_values)
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def sca_position(
     alignment,
     position,
@@ -830,7 +1426,7 @@ def sca_position(
     return_all=False,
     alphabet=default_sca_alphabet,
     background_freqs=default_sca_freqs,
-):
+):  # pragma: no cover
     """Calculate statistical coupling b/w a column and all other columns
 
     alignment: full alignment object
@@ -929,6 +1525,7 @@ def sca_position(
     return array(result)
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def sca_alignment(
     alignment,
     cutoff,
@@ -937,7 +1534,7 @@ def sca_alignment(
     return_all=False,
     alphabet=default_sca_alphabet,
     background_freqs=default_sca_freqs,
-):
+):  # pragma: no cover
     """Calculate statistical coupling b/w all columns in alignment
 
     alignment: full alignment object
@@ -1024,7 +1621,8 @@ def sca_alignment(
 # Caporaso et al., 2008)
 
 
-def make_weights(counts, n):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def make_weights(counts, n):  # pragma: no cover
     """Return the weights for replacement states for each possible character.
     We compute the weight as the normalized frequency of the replacement state
     divided by 2*n."""
@@ -1038,7 +1636,7 @@ def make_weights(counts, n):
     return weights
 
 
-def calc_pair_scale(seqs, obs1, obs2, weights1, weights2):
+def calc_pair_scale(seqs, obs1, obs2, weights1, weights2):  # pragma: no cover
     """Return entropies and weights for comparable alignment.
     A comparable alignment is one in which, for each paired state ij, all
     alternate observable paired symbols are created. For instance, let the
@@ -1093,6 +1691,7 @@ def calc_pair_scale(seqs, obs1, obs2, weights1, weights2):
     return scales
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def resampled_mi_pair(
     alignment,
     pos1,
@@ -1101,7 +1700,7 @@ def resampled_mi_pair(
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
     null_value=DEFAULT_NULL_VALUE,
-):
+):  # pragma: no cover
     """returns scaled mutual information for a pair.
 
     Parameters
@@ -1151,6 +1750,7 @@ def resampled_mi_pair(
 rmi_pair = resampled_mi_pair
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def resampled_mi_position(
     alignment,
     position,
@@ -1158,7 +1758,7 @@ def resampled_mi_position(
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
     null_value=DEFAULT_NULL_VALUE,
-):
+):  # pragma: no cover
     aln_length = len(alignment)
     result = zeros(aln_length, float)
 
@@ -1177,12 +1777,13 @@ def resampled_mi_position(
     return result
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def resampled_mi_alignment(
     alignment,
     excludes=DEFAULT_EXCLUDES,
     exclude_handler=None,
     null_value=DEFAULT_NULL_VALUE,
-):
+):  # pragma: no cover
     """returns scaled mutual information for all possible pairs."""
     aln_length = len(alignment)
     result = zeros((aln_length, aln_length), float)
@@ -1205,7 +1806,10 @@ def resampled_mi_alignment(
 # Begin ancestral_states analysis
 
 
-def get_ancestral_seqs(aln, tree, sm=None, pseudocount=1e-6, optimise=True):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def get_ancestral_seqs(
+    aln, tree, sm=None, pseudocount=1e-6, optimise=True
+):  # pragma: no cover
     """Calculates ancestral sequences by maximum likelihood
 
     Parameters
@@ -1232,9 +1836,10 @@ def get_ancestral_seqs(aln, tree, sm=None, pseudocount=1e-6, optimise=True):
     return ArrayAlignment(lf.likely_ancestral_seqs(), moltype=aln.moltype)
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def ancestral_state_alignment(
     aln, tree, ancestral_seqs=None, null_value=DEFAULT_NULL_VALUE
-):
+):  # pragma: no cover
     ancestral_seqs = ancestral_seqs or get_ancestral_seqs(aln, tree)
     result = []
     for i in range(len(aln)):
@@ -1245,9 +1850,10 @@ def ancestral_state_alignment(
     return ltm_to_symmetric(array(result))
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def ancestral_state_position(
     aln, tree, position, ancestral_seqs=None, null_value=DEFAULT_NULL_VALUE
-):
+):  # pragma: no cover
     ancestral_seqs = ancestral_seqs or get_ancestral_seqs(aln, tree)
     result = []
     for i in range(len(aln)):
@@ -1257,9 +1863,10 @@ def ancestral_state_position(
     return array(result)
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
 def ancestral_state_pair(
     aln, tree, pos1, pos2, ancestral_seqs=None, null_value=DEFAULT_NULL_VALUE
-):
+):  # pragma: no cover
     """ """
     ancestral_seqs = ancestral_seqs or get_ancestral_seqs(aln, tree)
     ancestral_names_to_seqs = dict(
@@ -1356,7 +1963,8 @@ def ancestral_state_pair(
 # is only performed once by coevolve_alignment.
 
 
-def sca_input_validation(alignment, **kwargs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def sca_input_validation(alignment, **kwargs):  # pragma: no cover
     """SCA specific validations steps"""
 
     # check that all required parameters are present in kwargs
@@ -1391,7 +1999,8 @@ def sca_input_validation(alignment, **kwargs):
     validate_alphabet(alphabet, background_freqs)
 
 
-def validate_alphabet(alphabet, freqs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def validate_alphabet(alphabet, freqs):  # pragma: no cover
     """SCA validation: ValueError if set(alphabet) != set(freqs.keys())"""
     alphabet_chars = set(alphabet)
     freq_chars = set(freqs.keys())
@@ -1401,7 +2010,8 @@ def validate_alphabet(alphabet, freqs):
         )
 
 
-def ancestral_states_input_validation(alignment, **kwargs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def ancestral_states_input_validation(alignment, **kwargs):  # pragma: no cover
     """Ancestral States (AS) specific validations steps"""
     # check that all required parameters are present in kwargs
     required_parameters = ["tree"]
@@ -1418,7 +2028,8 @@ def ancestral_states_input_validation(alignment, **kwargs):
         validate_ancestral_seqs(alignment, kwargs["tree"], kwargs["ancestral_seqs"])
 
 
-def validate_ancestral_seqs(alignment, tree, ancestral_seqs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def validate_ancestral_seqs(alignment, tree, ancestral_seqs):  # pragma: no cover
     """AS validation: ValueError if incompatible aln, tree, & ancestral seqs
 
     Incompatibility between the alignment and the ancestral_seqs is
@@ -1438,7 +2049,8 @@ def validate_ancestral_seqs(alignment, tree, ancestral_seqs):
         )
 
 
-def validate_tree(alignment, tree):
+@c3warn.deprecated_callable("2024.12", reason=_reason_1, is_discontinued=True)
+def validate_tree(alignment, tree):  # pragma: no cover
     """AS validation: ValueError if tip and seq names aren't same"""
     if set(tree.get_tip_names()) != set(alignment.names):
         raise ValueError("Tree tips and seqs must have perfectly overlapping names.")
@@ -1449,7 +2061,8 @@ def validate_tree(alignment, tree):
 # General (opposed to algorithm-specific) validation functions
 
 
-def validate_position(alignment, position):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def validate_position(alignment, position):  # pragma: no cover
     """ValueError if position is outside the range of the alignment"""
     if not 0 <= position < len(alignment):
         raise ValueError(
@@ -1457,7 +2070,8 @@ def validate_position(alignment, position):
         )
 
 
-def validate_alignment(alignment):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def validate_alignment(alignment):  # pragma: no cover
     """ValueError on ambiguous alignment characters"""
     bad_seqs = []
     for name, ambiguous_pos in list(alignment.get_ambiguous_positions().items()):
@@ -1469,9 +2083,10 @@ def validate_alignment(alignment):
         )
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def coevolve_alignments_validation(
     method, alignment1, alignment2, min_num_seqs, max_num_seqs, **kwargs
-):
+):  # pragma: no cover
     """Validation steps required for intermolecular coevolution analyses"""
     valid_methods_for_different_moltypes = {}.fromkeys(
         [mi_alignment, nmi_alignment, resampled_mi_alignment]
@@ -1530,7 +2145,8 @@ def coevolve_alignments_validation(
 }
 
 
-def coevolve_alignment(method, alignment, **kwargs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def coevolve_alignment(method, alignment, **kwargs):  # pragma: no cover
     """Apply coevolution method to alignment (for intramolecular coevolution)
 
     method: f(alignment,**kwargs) -> 2D array of coevolution scores
@@ -1566,7 +2182,8 @@ def coevolve_alignment(method, alignment, **kwargs):
 }
 
 
-def merge_alignments(alignment1, alignment2):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def merge_alignments(alignment1, alignment2):  # pragma: no cover
     """Append alignment 2 to the end of alignment 1
 
     This function is used by coevolve_alignments to merge two alignments
@@ -1597,7 +2214,8 @@ def merge_alignments(alignment1, alignment2):
     return make_aligned_seqs(result, array_align=True)
 
 
-def n_random_seqs(alignment, n):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def n_random_seqs(alignment, n):  # pragma: no cover
     """Given alignment, return n random seqs in a new alignment object.
 
     This function is used by coevolve_alignments.
@@ -1608,6 +2226,7 @@ def n_random_seqs(alignment, n):
     return alignment.take_seqs(seq_names[:n])
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def coevolve_alignments(
     method,
     alignment1,
@@ -1618,7 +2237,7 @@ def coevolve_alignments(
     max_num_seqs=None,
     sequence_filter=n_random_seqs,
     **kwargs,
-):
+):  # pragma: no cover
     """Apply method to a pair of alignments (for intermolecular coevolution)
 
     method: the *_alignment function to be applied
@@ -1800,7 +2419,8 @@ def coevolve_alignments(
 }
 
 
-def coevolve_position(method, alignment, position, **kwargs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def coevolve_position(method, alignment, position, **kwargs):  # pragma: no cover
     """Apply provided coevolution method to a column in alignment
 
     method: f(alignment,position,**kwargs) -> array of coevolution scores
@@ -1835,7 +2455,8 @@ def coevolve_position(method, alignment, position, **kwargs):
 }
 
 
-def coevolve_pair(method, alignment, pos1, pos2, **kwargs):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def coevolve_pair(method, alignment, pos1, pos2, **kwargs):  # pragma: no cover
     """Apply provided coevolution method to columns pos1 & pos2 of alignment
 
     method: f(alignment,pos1,pos2,**kwargs) -> coevolution score
@@ -1866,6 +2487,7 @@ def coevolve_pair(method, alignment, pos1, pos2, **kwargs):
 # post-processing filters for coevolution result matrices.
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def filter_threshold_based_multiple_interdependency(
     aln,
     coevolution_matrix,
@@ -1873,7 +2495,7 @@ def filter_threshold_based_multiple_interdependency(
     max_cmp_threshold=1,
     cmp_function=greater_equal,
     intermolecular_data_only=False,
-):
+):  # pragma: no cover
     """Filters positions with more than max_cmp_threshold scores >= threshold
 
     This post-processing filter is based on the idea described in:
@@ -1954,13 +2576,14 @@ def filter_threshold_based_multiple_interdependency(
     return coevolution_matrix
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def is_parsimony_informative(
     column_freqs,
     minimum_count=2,
     minimum_differences=2,
     ignored=DEFAULT_EXCLUDES,
     strict=False,
-):
+):  # pragma: no cover
     """Return True is aln_position is parsimony informative
 
     column_freqs: dict of characters at alignmnet position mapped
@@ -2033,6 +2656,7 @@ def is_parsimony_informative(
     return count_gte_minimum >= minimum_differences
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def filter_non_parsimony_informative(
     aln,
     coevolution_matrix,
@@ -2042,7 +2666,7 @@ def filter_non_parsimony_informative(
     ignored=DEFAULT_EXCLUDES,
     intermolecular_data_only=False,
     strict=False,
-):
+):  # pragma: no cover
     """Replaces scores in coevolution_matrix with null_value for positions
     which are not parsimony informative.
 
@@ -2071,7 +2695,10 @@ def filter_non_parsimony_informative(
                     coevolution_matrix[i - len_aln1, :] = null_value
 
 
-def make_positional_exclude_percentage_function(excludes, max_exclude_percent):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def make_positional_exclude_percentage_function(
+    excludes, max_exclude_percent
+):  # pragma: no cover
     """return function to identify aln positions with > max_exclude_percent"""
     excludes = {}.fromkeys(excludes)
 
@@ -2085,6 +2712,7 @@ def f(col):
     return f
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def filter_exclude_positions(
     aln,
     coevolution_matrix,
@@ -2092,7 +2720,7 @@ def filter_exclude_positions(
     null_value=DEFAULT_NULL_VALUE,
     excludes=DEFAULT_EXCLUDES,
     intermolecular_data_only=False,
-):
+):  # pragma: no cover
     """Assign null_value to positions with > max_exclude_percent excludes
 
     aln: the ArrayAlignment object
@@ -2135,7 +2763,10 @@ def filter_exclude_positions(
 # somewhere else, or should I be using pre-existing code?
 
 
-def pickle_coevolution_result(coevolve_result, out_filepath="output.pkl"):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def pickle_coevolution_result(
+    coevolve_result, out_filepath="output.pkl"
+):  # pragma: no cover
     """Pickle coevolve_result and store it at output_filepath
 
     coevolve_result: result from a coevolve_* function (above); this can
@@ -2154,7 +2785,8 @@ def pickle_coevolution_result(coevolve_result, out_filepath="output.pkl"):
     infile.close()
 
 
-def unpickle_coevolution_result(in_filepath):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def unpickle_coevolution_result(in_filepath):  # pragma: no cover
     """Read in coevolve_result from a pickled file
 
     in_filepath: filepath to unpickle
@@ -2173,7 +2805,10 @@ def unpickle_coevolution_result(in_filepath):
     return r
 
 
-def coevolution_matrix_to_csv(coevolve_matrix, out_filepath="output.csv"):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def coevolution_matrix_to_csv(
+    coevolve_matrix, out_filepath="output.csv"
+):  # pragma: no cover
     """Write coevolve_matrix as csv file at output_filepath
 
     coevolve_result: result from a coevolve_alignment function (above);
@@ -2189,7 +2824,8 @@ def coevolution_matrix_to_csv(coevolve_matrix, out_filepath="output.csv"):
     f.close()
 
 
-def csv_to_coevolution_matrix(in_filepath):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def csv_to_coevolution_matrix(in_filepath):  # pragma: no cover
     """Read a coevolution matrix from a csv file
 
     in_filepath: input filepath
@@ -2215,9 +2851,10 @@ def csv_to_coevolution_matrix(in_filepath):
 # Start functions for analyzing the results of a coevolution run.
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def identify_aln_positions_above_threshold(
     coevolution_matrix, threshold, aln_position, null_value=DEFAULT_NULL_VALUE
-):
+):  # pragma: no cover
     """Returns the list of alignment positions which achieve a
     score >= threshold with aln_position.
     Coevolution matrix should be symmetrical or you
@@ -2233,13 +2870,14 @@ def identify_aln_positions_above_threshold(
     return results
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def aln_position_pairs_cmp_threshold(
     coevolution_matrix,
     threshold,
     cmp_function,
     null_value=DEFAULT_NULL_VALUE,
     intermolecular_data_only=False,
-):
+):  # pragma: no cover
     """Returns list of position pairs with score >= threshold
 
     coevolution_matrix: 2D numpy array
@@ -2271,12 +2909,13 @@ def aln_position_pairs_cmp_threshold(
     return results
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def aln_position_pairs_ge_threshold(
     coevolution_matrix,
     threshold,
     null_value=DEFAULT_NULL_VALUE,
     intermolecular_data_only=False,
-):
+):  # pragma: no cover
     """wrapper function for aln_position_pairs_cmp_threshold"""
     return aln_position_pairs_cmp_threshold(
         coevolution_matrix,
@@ -2287,18 +2926,20 @@ def aln_position_pairs_ge_threshold(
     )
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def aln_position_pairs_le_threshold(
     coevolution_matrix,
     threshold,
     null_value=DEFAULT_NULL_VALUE,
     intermolecular_data_only=False,
-):
+):  # pragma: no cover
     """wrapper function for aln_position_pairs_cmp_threshold"""
     return aln_position_pairs_cmp_threshold(
         coevolution_matrix, threshold, less_equal, null_value, intermolecular_data_only
     )
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def count_cmp_threshold(
     m,
     threshold,
@@ -2306,7 +2947,7 @@ def count_cmp_threshold(
     null_value=DEFAULT_NULL_VALUE,
     symmetric=False,
     ignore_diagonal=False,
-):
+):  # pragma: no cover
     """Returns a count of the values in m >= threshold, ignoring nulls.
 
     m: coevolution matrix (numpy array)
@@ -2353,25 +2994,28 @@ def is_not_null_value(v):
     return total_hits, total_non_null
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def count_ge_threshold(
     m, threshold, null_value=DEFAULT_NULL_VALUE, symmetric=False, ignore_diagonal=False
-):
+):  # pragma: no cover
     """wrapper function for count_cmp_threshold"""
     return count_cmp_threshold(
         m, threshold, greater_equal, null_value, symmetric, ignore_diagonal
     )
 
 
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def count_le_threshold(
     m, threshold, null_value=DEFAULT_NULL_VALUE, symmetric=False, ignore_diagonal=False
-):
+):  # pragma: no cover
     """wrapper function for count_cmp_threshold"""
     return count_cmp_threshold(
         m, threshold, less_equal, null_value, symmetric, ignore_diagonal
     )
 
 
-def ltm_to_symmetric(m):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def ltm_to_symmetric(m):  # pragma: no cover
     """Copies values from lower triangle to upper triangle"""
     assert (
         m.shape[0] == m.shape[1]
@@ -2387,9 +3031,10 @@ def ltm_to_symmetric(m):
 
 
 # Script functionality
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
 def build_coevolution_matrix_filepath(
     input_filepath, output_dir="./", method=None, alphabet=None, parameter=None
-):
+):  # pragma: no cover
     """ Build filepath from input filename, output dir, and list of suffixes
 
         input_filepath: filepath to be used for generating the output
@@ -2445,7 +3090,8 @@ def build_coevolution_matrix_filepath(
     return result
 
 
-def parse_coevolution_matrix_filepath(filepath):
+@c3warn.deprecated_callable("2024.12", reason=_reason_3, is_discontinued=True)
+def parse_coevolution_matrix_filepath(filepath):  # pragma: no cover
     """Parses a coevolution matrix filepath into constituent parts.
 
     Format is very specific. Will only work on filenames such as:
diff --git a/src/cogent3/format/fasta.py b/src/cogent3/format/fasta.py
index 29fe3433e..eba3ccd54 100644
--- a/src/cogent3/format/fasta.py
+++ b/src/cogent3/format/fasta.py
@@ -1,12 +1,17 @@
 """Writer for FASTA sequence format"""
 
-import textwrap
-from typing import Optional
+from typing import Iterable, Optional
 
 from cogent3.format.util import _AlignmentFormatter
 from cogent3.util import warning as c3warn
 
 
+def _iter_in_block_size(series: str, block_size: int) -> Iterable[str]:
+    """Yield chunks of a series of items"""
+    for i in range(0, len(series), block_size):
+        yield series[i : i + block_size]
+
+
 @c3warn.deprecated_args(
     "2024.9", reason="better name", old_new=[("alignment_dict", "seqs")]
 )
@@ -37,7 +42,11 @@ def seqs_to_fasta(
     result = []
     for name in order:
         result.append(f">{name}")
-        result.extend(textwrap.wrap(str(seqs[name]), block_size))
+        seq = str(seqs[name])
+        if len(seq) <= block_size:
+            result.append(seq)
+        else:
+            result.extend(_iter_in_block_size(seq, block_size))
     if result:
         result.append("")
     return "\n".join(result)
diff --git a/src/cogent3/parse/fasta.py b/src/cogent3/parse/fasta.py
index f268ce72a..aac43aa96 100644
--- a/src/cogent3/parse/fasta.py
+++ b/src/cogent3/parse/fasta.py
@@ -442,6 +442,13 @@ def _(
 
 @iter_fasta_records.register
 def _(data: str, converter: OptConverterType = None, label_to_name: RenamerType = str):
+    try:
+        os.stat(data)
+    except OSError:
+        raise TypeError(
+            "data is a string but not a file path, directly provided data must be bytes"
+        )
+
     with open_(data, mode="rb") as infile:
         data: bytes = infile.read()
     return iter_fasta_records(data, converter=converter, label_to_name=label_to_name)
diff --git a/src/cogent3/util/io.py b/src/cogent3/util/io.py
index 1c9891a6a..ad33ad1c7 100644
--- a/src/cogent3/util/io.py
+++ b/src/cogent3/util/io.py
@@ -4,6 +4,7 @@
 from bz2 import open as bzip_open
 from gzip import open as gzip_open
 from io import TextIOWrapper
+from lzma import open as lzma_open
 from os import PathLike, remove
 from pathlib import Path, PurePath
 from re import compile
@@ -41,7 +42,7 @@ def _get_compression_open(
     assert path or compression
     if compression is None:
         _, compression = get_format_suffixes(path)
-    return {"gz": gzip_open, "bz2": bzip_open, "zip": open_zip}.get(compression, None)
+    return _compression_handlers.get(compression, None)
 
 
 def open_zip(filename: PathType, mode: str = "r", **kwargs) -> IO:
@@ -78,6 +79,15 @@ def open_zip(filename: PathType, mode: str = "r", **kwargs) -> IO:
         return TextIOWrapper(opened, encoding=encoding)
 
 
+_compression_handlers = {
+    "gz": gzip_open,
+    "bz2": bzip_open,
+    "zip": open_zip,
+    "xz": lzma_open,
+    "lzma": lzma_open,
+}
+
+
 def open_(filename: PathType, mode="rt", **kwargs) -> IO:
     """open that handles different compression
 
@@ -311,9 +321,8 @@ def get_format_suffixes(filename: PathType) -> Tuple[T, T]:
     if not filename.suffix:
         return None, None
 
-    compression_suffixes = ("bz2", "gz", "zip")
     suffixes = [_wout_period.sub("", sfx).lower() for sfx in filename.suffixes[-2:]]
-    if suffixes[-1] in compression_suffixes:
+    if suffixes[-1] in _compression_handlers:
         cmp_suffix = suffixes[-1]
     else:
         cmp_suffix = None
diff --git a/src/cogent3/util/table.py b/src/cogent3/util/table.py
index d94e52ee8..f99432820 100644
--- a/src/cogent3/util/table.py
+++ b/src/cogent3/util/table.py
@@ -745,15 +745,26 @@ def _repr_html_(self):
                     str(HE(HE("...", "span", css_classes=[css_class]), "td"))
                 )
 
-            ellipsis = str(HE("".join(ellipsis), "tr", css_classes="ellipsis"))
             num_rows = 0
+            col_num = 0
             for idx in range(len(html)):
                 item = html[idx]
                 if "<tr>" in item:
                     num_rows += 1
-                if num_rows == head:
-                    html.insert(idx + 1, ellipsis)
-                    break
+                if "<th>" in item:
+                    num_col = item.count("<th>")
+                    ellipsis_slice = str(
+                        HE(
+                            "".join(ellipsis[col_num : col_num + num_col]),
+                            "tr",
+                            css_classes="ellipsis",
+                        )
+                    )
+                    col_num += num_col
+                    num_rows = 0
+                elif num_rows == head and ellipsis_slice:
+                    html.insert(idx + 1, ellipsis_slice)
+                    ellipsis_slice = ""
 
         html.insert(-1, shape_info)
         html = "\n".join(html)


Test patch:
diff --git a/tests/test_app/test_init.py b/tests/test_app/test_init.py
index 9b3738cc9..ebc5b2d93 100644
--- a/tests/test_app/test_init.py
+++ b/tests/test_app/test_init.py
@@ -165,3 +165,11 @@ def test_available_apps_filter():
     assert sum(app_name_filter in n for n in filtered_apps.columns["name"]) == len(
         filtered_apps
     )
+
+
+def test_available_apps_package():
+    """available apps lists just the package"""
+    app_name_filter: str = "model"
+    filtered_apps = available_apps(app_name_filter)
+    assert filtered_apps.columns["package"][0] == "cogent3"
+    assert all("." not in pkg for pkg in filtered_apps.columns["package"])
diff --git a/tests/test_core/test_alignment.py b/tests/test_core/test_alignment.py
index 99f17a095..1129c3406 100644
--- a/tests/test_core/test_alignment.py
+++ b/tests/test_core/test_alignment.py
@@ -1529,23 +1529,6 @@ def test_count_gaps_per_seq(self):  # ported
         assert_equal(got.array, [2, 1, 2])
         assert_equal(got["b"], 1)
 
-    def test_coevolution(self):
-        """correctly produces matrix of coevo measures"""
-        data = {"s0": "AA", "s1": "AA", "s2": "BB", "s3": "BB", "s4": "BC"}
-        aln = self.Class(data=data)
-        coevo = aln.coevolution(method="rmi", show_progress=False)
-        expect = array([[nan, nan], [0.78333333, nan]])
-        assert_allclose(coevo.array, expect)
-        coevo = aln.coevolution(method="nmi", show_progress=False)
-        self.assertNotEqual(coevo[1, 1], expect[1, 1])
-        # now check invoking drawable produces a result object with a drawable
-        # attribute
-        coevo = aln.coevolution(method="nmi", drawable="box", show_progress=False)
-        self.assertTrue(hasattr(coevo, "drawable"))
-        aln = load_aligned_seqs("data/brca1.fasta", moltype="dna")
-        aln = aln.take_seqs(aln.names[:20])
-        aln = aln.no_degenerates()[:20]
-
     def test_info_source(self):
         """info.source exists if load_aligned_seqs given a filename"""
         array_align = self.Class == ArrayAlignment
@@ -3886,3 +3869,22 @@ def test_empty_data(cls):
     with pytest.raises(ValueError) as e:
         _ = cls(())
     assert str(e.value) == f"{cls.__name__} must take at least one sequence."
+
+
+@pytest.mark.parametrize("cls", (ArrayAlignment, Alignment))
+def test_coevolution(cls):
+    """correctly produces matrix of coevo measures"""
+    data = {"s0": "AA", "s1": "AA", "s2": "GG", "s3": "GG", "s4": "GC"}
+    aln = cls(data=data, moltype=DNA)
+    coevo = aln.coevolution(stat="rmi", show_progress=False)
+    expect = array([[nan, nan], [0.78333333, nan]])
+    assert_allclose(coevo.array, expect)
+    coevo = aln.coevolution(stat="nmi", show_progress=False)
+    assert coevo[1, 1] != expect[1, 1]
+    # now check invoking drawable produces a result object with a drawable
+    # attribute
+    coevo = aln.coevolution(stat="nmi", drawable="box", show_progress=False)
+    assert hasattr(coevo, "drawable")
+    aln = load_aligned_seqs("data/brca1.fasta", moltype="dna")
+    aln = aln.take_seqs(aln.names[:20])
+    aln = aln.no_degenerates()[:20]
diff --git a/tests/test_core/test_annotation.py b/tests/test_core/test_annotation.py
index 023633c36..f144ef434 100644
--- a/tests/test_core/test_annotation.py
+++ b/tests/test_core/test_annotation.py
@@ -9,7 +9,6 @@
     make_unaligned_seqs,
 )
 from cogent3.core.alignment import Alignment, SequenceCollection
-from cogent3.core.annotation_db import BasicAnnotationDb
 from cogent3.core.location import FeatureMap, Span
 
 DNA = get_moltype("dna")
diff --git a/tests/test_core/test_new_alphabet.py b/tests/test_core/test_new_alphabet.py
index 8da90e6fe..13e032121 100644
--- a/tests/test_core/test_new_alphabet.py
+++ b/tests/test_core/test_new_alphabet.py
@@ -632,3 +632,21 @@ def test_codon_alphabet_serlialise_round_trip(calpha):
     assert isinstance(got, new_alphabet.SenseCodonAlphabet)
     assert list(got) == list(calpha)
     assert calpha.to_index("TTC") == 1
+
+
+@pytest.fixture(params=new_moltype.DNA.iter_alphabets())
+def alpha(request):
+    return request.param
+
+
+def test_alphabet_moltype(alpha):
+    assert alpha.moltype is new_moltype.DNA
+
+
+def test_alpha_no_moltype():
+    alpha = new_alphabet.CharAlphabet(list("ACG"))
+    assert alpha.moltype is None
+
+
+def test_codon_alphabet_moltype(calpha):
+    assert calpha.moltype is new_moltype.DNA
diff --git a/tests/test_core/test_new_moltype.py b/tests/test_core/test_new_moltype.py
index c83ba2d6a..a2bbd6217 100644
--- a/tests/test_core/test_new_moltype.py
+++ b/tests/test_core/test_new_moltype.py
@@ -572,3 +572,27 @@ def test_char_order(moltype, zero, second, last):
     assert attr[0] == zero
     assert attr[2] == second
     assert attr[-1] == last
+
+
+@pytest.mark.parametrize(
+    "seq",
+    [
+        mt.make_seq(seq="ACGG")
+        for mt in (
+            new_moltype.DNA,
+            new_moltype.RNA,
+            new_moltype.PROTEIN,
+            new_moltype.ASCII,
+        )
+    ],
+)
+def test_make_seq_with_seq(seq):
+    new_seq = new_moltype.DNA.make_seq(seq=seq)
+    assert new_seq.moltype is new_moltype.DNA
+    assert (new_seq is seq) if seq.moltype.name == "dna" else seq is not new_seq
+
+
+def test_make_seq_with_seq_invalid_moltype():
+    seq = new_moltype.PROTEIN.make_seq(seq="ACQK")
+    with pytest.raises(ValueError):
+        _ = new_moltype.DNA.make_seq(seq=seq)
diff --git a/tests/test_core/test_new_sequence.py b/tests/test_core/test_new_sequence.py
index 0b0996a57..e4b3bc77e 100644
--- a/tests/test_core/test_new_sequence.py
+++ b/tests/test_core/test_new_sequence.py
@@ -2628,3 +2628,49 @@ def test_sequence_serialisation_round_trip(moltype, data):
     got = deserialise_object(rd)
     assert isinstance(got, type(seq))
     assert got.to_rich_dict() == seq.to_rich_dict()
+
+
+@pytest.fixture
+def aa_moltype(DATA_DIR, tmp_path):
+    # make a directory that contains both DNA and protein
+    outpath = tmp_path / "aa.fa"
+    aln = cogent3.load_aligned_seqs(DATA_DIR / "brca1_5.paml", moltype="dna")
+    aa = aln.get_translation()
+    aa.write(outpath)
+    return outpath
+
+
+def test_load_invalid_moltype(aa_moltype):
+    with pytest.raises(AssertionError):
+        # this should be an AlphabetError
+        cogent3.load_seq(aa_moltype, moltype="dna", new_type=True)
+
+
+@pytest.fixture(params=(new_moltype.DNA.alphabet, new_moltype.DNA.gapped_alphabet))
+def seqview(request):
+    return new_sequence.SeqView(parent="ACGT", alphabet=request.param, seqid="seq1")
+
+
+@pytest.mark.parametrize(
+    "alpha", (new_moltype.DNA.alphabet, new_moltype.DNA.degen_gapped_alphabet)
+)
+def test_make_seq_compatible_alpha(seqview, alpha):
+    got = new_sequence._coerce_to_seqview(seqview, seqview.seqid, alpha, 0)
+    assert got is seqview
+
+
+def test_make_seq_general_alpha_incompatible(seqview):
+    with pytest.raises(new_alphabet.AlphabetError):
+        alpha, seqview.alphabet = (
+            seqview.alphabet,
+            new_moltype.PROTEIN.degen_gapped_alphabet,
+        )
+        new_sequence._coerce_to_seqview(seqview, seqview.seqid, alpha, 0)
+
+
+def test_make_seq_wrong_order_alpha():
+    sv = new_sequence.SeqView(
+        parent="ACGT", alphabet=new_moltype.DNA.gapped_alphabet, seqid="seq1"
+    )
+    with pytest.raises(new_alphabet.AlphabetError):
+        new_sequence._coerce_to_seqview(sv, sv.seqid, new_moltype.DNA.degen_alphabet, 0)
diff --git a/tests/test_core/test_tree.py b/tests/test_core/test_tree.py
index c05b8d42a..d70e61cf6 100644
--- a/tests/test_core/test_tree.py
+++ b/tests/test_core/test_tree.py
@@ -14,7 +14,7 @@
 
 from cogent3 import load_tree, make_tree, open_
 from cogent3._version import __version__
-from cogent3.core.tree import PhyloNode, TreeError, TreeNode
+from cogent3.core.tree import PhyloNode, TreeError, TreeNode, split_name_and_support
 from cogent3.maths.stats.test import correlation
 from cogent3.parse.tree import DndParser
 from cogent3.util.misc import get_object_provenance
@@ -49,6 +49,10 @@ def test_make_tree(self):
         self.assertEqual(names, ["a a", "b b", "c c"])
         self.assertEqual(str(t), result_str)
         self.assertEqual(t.get_newick(with_distances=True), result_str)
+        # ensure tip names are converted to strings
+        # when creating a tree from a list of integer tip names.
+        t = make_tree(tip_names=[1, 2, 3])
+        self.assertEqual(t.get_tip_names(), ["1", "2", "3"])
 
 
 def _new_child(old_node, constructor):
@@ -1229,6 +1233,14 @@ def test_compare_by_subsets(self):
         result = self.t.compare_by_subsets(self.TreeRoot)
         self.assertEqual(result, 1)
 
+    def test_treenode_comparison_with_none_name(self):
+        assert self.Empty < self.Single
+        assert self.Single > self.Empty
+        assert self.Single > TreeNode(name=None)
+        assert TreeNode(name=None) < self.Single
+        assert TreeNode(name="test") > self.Empty
+        assert self.Empty < TreeNode(name="test")
+
 
 class PhyloNodeTests(TestCase):
     """Tests of phylogeny-specific methods."""
@@ -2332,3 +2344,60 @@ def test_load_tree_bad_encoding():
             f.write(newick.encode("ascii"))
 
         assert load_tree(tree_path).get_newick() == newick
+
+
+@pytest.mark.parametrize(
+    "name,expected",
+    (
+        (None, (None, None)),
+        ("", (None, None)),
+        ("edge.98/24", ("edge.98", 24.0)),
+        ("edge.98", ("edge.98", None)),
+        ("24", (None, 24.0)),
+    ),
+)
+def test_split_name_and_support(name, expected):
+    assert split_name_and_support(name) == expected
+
+
+@pytest.mark.parametrize("invalid", ("edge.98/invalid", "edge.98/23/invalid"))
+def test_split_name_and_support_invalid_support(invalid):
+    with pytest.raises(ValueError):
+        split_name_and_support(invalid)
+
+
+def test_phylonode_support():
+    tip_names = [str(i) for i in range(1, 13)]
+    tree = make_tree(
+        treestring="(1,(((2,3),4)/53,(5,((6,(7,(8,9))def/25),(10,11)abc))),12);"
+    )
+    assert tree.get_tip_names() == tip_names
+    # parent of 4 is node with only support value
+    just_support = tree.get_node_matching_name("4").parent
+    assert just_support.params["support"] == 53.0
+    # parent of 10 has a node name only
+    just_name = tree.get_node_matching_name("10").parent
+    assert just_name.name == "abc"
+    assert "support" not in just_name.params
+    # the node with name "def/25" correctly resoloved into node
+    # name "def" and support 25.0
+    name_and_support = tree.get_node_matching_name("def")
+    assert name_and_support.name == "def"  # bit redundant given selection process
+    assert name_and_support.params["support"] == 25.0
+
+
+def test_phylonode_support_name_nodes_false():
+    # test that internal node names are None with name_nodes=False
+    tree = make_tree("((1,2)5,(3,4)6);", name_nodes=False)
+    internal_nodes = [node.name for node in tree.iter_nontips()]
+    assert all(node is None for node in internal_nodes)
+
+
+def test_phylonode_support_name_nodes_true():
+    # test that all nodes have unique names with name_nodes=True
+    tree = make_tree("((1,2)5,(3,4)6);", name_nodes=True)
+    node_names = set(tree.get_node_names())
+    # check that no node name is an empty string or None
+    assert all(node_names)
+    # check that the total number of unique node names is 7
+    assert len(node_names) == 7
diff --git a/tests/test_evolve/test_coevolution.py b/tests/test_evolve/test_coevolution.py
index 54c6e1e67..e63ecd612 100755
--- a/tests/test_evolve/test_coevolution.py
+++ b/tests/test_evolve/test_coevolution.py
@@ -1,5517 +1,352 @@
-from os import environ, remove
-from tempfile import NamedTemporaryFile, mktemp
-from unittest import TestCase
+import itertools
 
-from numpy import (
-    arange,
-    array,
-    e,
-    greater_equal,
-    less_equal,
-    log,
-    nan,
-    sqrt,
-    zeros,
-)
-from numpy.testing import assert_allclose, assert_equal
+import numpy
+import pytest
+from numpy.testing import assert_allclose
 
-from cogent3 import (
-    DNA,
-    PROTEIN,
-    RNA,
-    load_aligned_seqs,
-    make_aligned_seqs,
-    make_tree,
-)
-from cogent3.core.alignment import ArrayAlignment
-from cogent3.core.alphabet import CharAlphabet
-from cogent3.evolve.coevolution import (
-    DEFAULT_NULL_VALUE,
-    AAGapless,
-    aln_position_pairs_cmp_threshold,
-    aln_position_pairs_ge_threshold,
-    aln_position_pairs_le_threshold,
-    ancestral_state_alignment,
-    ancestral_state_pair,
-    ancestral_state_position,
-    ancestral_states_input_validation,
-    build_coevolution_matrix_filepath,
-    calc_pair_scale,
-    coevolution_matrix_to_csv,
-    coevolve_alignment,
-    coevolve_alignments,
-    coevolve_alignments_validation,
-    coevolve_pair,
-    coevolve_position,
-    count_ge_threshold,
-    count_le_threshold,
-    csv_to_coevolution_matrix,
-    filter_exclude_positions,
-    filter_non_parsimony_informative,
-    filter_threshold_based_multiple_interdependency,
-    freqs_from_aln,
-    freqs_to_array,
-    get_allowed_perturbations,
-    get_ancestral_seqs,
-    get_dg,
-    get_dgg,
-    get_positional_frequencies,
-    get_positional_probabilities,
-    get_subalignments,
-    identify_aln_positions_above_threshold,
-    ignore_excludes,
-    is_parsimony_informative,
-    join_positions,
-    ltm_to_symmetric,
-    make_weights,
-    merge_alignments,
-    mi,
-    mi_alignment,
-    mi_pair,
-    mi_position,
-    n_random_seqs,
-    nmi,
-    nmi_alignment,
-    nmi_pair,
-    nmi_position,
-    normalized_mi,
-    parse_coevolution_matrix_filepath,
-    pickle_coevolution_result,
-    probs_from_dict,
-    protein_dict,
-    resampled_mi_alignment,
-    sca_alignment,
-    sca_input_validation,
-    sca_pair,
-    sca_position,
-    unpickle_coevolution_result,
-    validate_alignment,
-    validate_alphabet,
-    validate_ancestral_seqs,
-    validate_position,
-    validate_tree,
-)
+from cogent3 import get_moltype, make_aligned_seqs
+from cogent3.evolve import coevolution as c3_coevo
 from cogent3.maths.stats.number import CategoryCounter
-from cogent3.parse.fasta import MinimalFastaParser
 
 
-def _fasta_to_dict(data):
-    return dict(MinimalFastaParser(data.splitlines()))
-
-
-class CoevolutionTests(TestCase):
-    """Tests of coevolution.py"""
-
-    def setUp(self):
-        """Set up variables for us in tests"""
-        self.run_slow_tests = int(environ.get("TEST_SLOW_APPC", 0))
-        # Data used in SCA tests
-        self.dna_aln = ArrayAlignment(
-            data=list(zip(list(range(4)), ["ACGT", "AGCT", "ACCC", "TAGG"])),
-            moltype=DNA,
-        )
-        self.rna_aln = ArrayAlignment(
-            data=list(zip(list(range(4)), ["ACGU", "AGCU", "ACCC", "UAGG"])),
-            moltype=RNA,
-        )
-        self.protein_aln = ArrayAlignment(
-            data=list(zip(list(range(4)), ["ACGP", "AGCT", "ACCC", "TAGG"])),
-            moltype=PROTEIN,
-        )
-        self.dna_aln_gapped = ArrayAlignment(
-            data=list(zip(list(range(4)), ["A-CGT", "AGC-T", "-ACCC", "TAGG-"])),
-            moltype=DNA,
-        )
-        self.freq = ArrayAlignment(
-            data=list(
-                zip(
-                    list(range(20)),
-                    [
-                        "TCT",
-                        "CCT",
-                        "CCC",
-                        "CCC",
-                        "CCG",
-                        "CC-",
-                        "AC-",
-                        "AC-",
-                        "AA-",
-                        "AA-",
-                        "GA-",
-                        "GA-",
-                        "GA-",
-                        "GA-",
-                        "GA-",
-                        "G--",
-                        "G--",
-                        "G--",
-                        "G--",
-                        "G--",
-                    ],
-                )
-            ),
-            moltype=PROTEIN,
-        )
-        self.two_pos = ArrayAlignment(
-            data=list(
-                zip(
-                    list(map(str, list(range(20)))),
-                    [
-                        "TC",
-                        "CC",
-                        "CC",
-                        "CC",
-                        "CC",
-                        "CC",
-                        "AC",
-                        "AC",
-                        "AA",
-                        "AA",
-                        "GA",
-                        "GA",
-                        "GA",
-                        "GA",
-                        "GA",
-                        "GT",
-                        "GT",
-                        "GT",
-                        "GT",
-                        "GT",
-                    ],
-                )
-            ),
-            moltype=PROTEIN,
-        )
-        self.tree20 = make_tree(treestring=tree20_string)
-        self.gpcr_aln = gpcr_aln
-        self.myos_aln = myos_aln
-        # a made-up dict of base frequencies to use as the natural freqs
-        # for SCA calcs on DNA seqs
-        self.dna_base_freqs = dict(list(zip("ACGT", [0.25] * 4)))
-        self.rna_base_freqs = dict(list(zip("ACGU", [0.25] * 4)))
-        self.protein_aln4 = ArrayAlignment(
-            [("A1", "AACF"), ("A12", "AADF"), ("A123", "ADCF"), ("A111", "AAD-")],
-            moltype=PROTEIN,
-        )
-        self.rna_aln4 = ArrayAlignment(
-            [("A1", "AAUU"), ("A12", "ACGU"), ("A123", "UUAA"), ("A111", "AAA-")],
-            moltype=RNA,
-        )
-        self.dna_aln4 = ArrayAlignment(
-            [("A1", "AATT"), ("A12", "ACGT"), ("A123", "TTAA"), ("A111", "AAA?")],
-            moltype=DNA,
-        )
-        self.tree4 = make_tree(
-            treestring="((A1:0.5,A111:0.5):0.5,(A12:0.5,A123:0.5):0.5);"
-        )
-
-    def test_alignment_analyses_moltype_protein(self):
-        """alignment methods work with moltype = PROTEIN"""
-
-        r = mi_alignment(self.protein_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = nmi_alignment(self.protein_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = sca_alignment(self.protein_aln4, cutoff=0.75)
-        self.assertEqual(r.shape, (4, 4))
-
-        r = ancestral_state_alignment(self.protein_aln4, self.tree4)
-        self.assertEqual(r.shape, (4, 4))
-
-    def test_alignment_analyses_moltype_rna(self):
-        """alignment methods work with moltype = RNA"""
-
-        r = mi_alignment(self.rna_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = nmi_alignment(self.rna_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = sca_alignment(
-            self.rna_aln4,
-            cutoff=0.75,
-            alphabet="ACGU",
-            background_freqs=self.rna_base_freqs,
-        )
-        self.assertEqual(r.shape, (4, 4))
-
-        r = ancestral_state_alignment(self.rna_aln4, self.tree4)
-        self.assertEqual(r.shape, (4, 4))
-
-    def test_alignment_analyses_moltype_dna(self):
-        """alignment methods work with moltype = DNA"""
-
-        r = mi_alignment(self.dna_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = nmi_alignment(self.dna_aln4)
-        self.assertEqual(r.shape, (4, 4))
-        r = sca_alignment(
-            self.dna_aln4,
-            cutoff=0.75,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        self.assertEqual(r.shape, (4, 4))
-
-        r = ancestral_state_alignment(self.dna_aln4, self.tree4)
-        self.assertEqual(r.shape, (4, 4))
-
-    def test_join_positions(self):
-        """join_positions functions as expected"""
-        self.assertEqual(
-            join_positions(list("ABCD"), list("WXYZ")), ["AW", "BX", "CY", "DZ"]
-        )
-        self.assertEqual(join_positions(list("AAA"), list("BBB")), ["AB", "AB", "AB"])
-        self.assertEqual(join_positions([], []), [])
-
-    def test_mi(self):
-        """mi calculations function as expected with valid data"""
-        assert_allclose(mi(1.0, 1.0, 1.0), 1.0)
-        assert_allclose(mi(1.0, 1.0, 2.0), 0.0)
-        assert_allclose(mi(1.0, 1.0, 1.5), 0.5)
-
-    def test_normalized_mi(self):
-        """normalized mi calculations function as expected with valid data"""
-        assert_allclose(normalized_mi(1.0, 1.0, 1.0), 1.0)
-        assert_allclose(normalized_mi(1.0, 1.0, 2.0), 0.0)
-        assert_allclose(normalized_mi(1.0, 1.0, 1.5), 0.3333, 3)
-
-    def test_mi_pair(self):
-        """mi_pair calculates mi from a pair of columns"""
-        aln = ArrayAlignment(data={"1": "AB", "2": "AB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), 0.0)
-        aln = ArrayAlignment(data={"1": "AB", "2": "BA"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), 1.0)
-        # order of positions doesn't matter (when it shouldn't)
-        aln = ArrayAlignment(data={"1": "AB", "2": "AB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), mi_pair(aln, pos1=1, pos2=0))
-        aln = ArrayAlignment(data={"1": "AB", "2": "BA"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), mi_pair(aln, pos1=1, pos2=0))
-
-    def test_wrapper_functions_handle_invalid_parameters(self):
-        """coevolve_*: functions error on missing parameters"""
-        # missing cutoff
-        aln = ArrayAlignment(data={"1": "AC", "2": "AC"}, moltype=PROTEIN)
-        self.assertRaises(ValueError, coevolve_pair, sca_pair, aln, 0, 1)
-        self.assertRaises(ValueError, coevolve_position, sca_position, aln, 0)
-        self.assertRaises(ValueError, coevolve_alignment, sca_alignment, aln)
-        self.assertRaises(ValueError, coevolve_alignments, sca_alignment, aln, aln)
-
-    def test_coevolve_pair(self):
-        """coevolve_pair: returns same as pair methods called directly"""
-        aln = ArrayAlignment(data={"1": "AC", "2": "AC"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        cutoff = 0.50
-        # mi_pair == coevolve_pair(mi_pair,...)
-        assert_allclose(
-            coevolve_pair(mi_pair, aln, pos1=0, pos2=1), mi_pair(aln, pos1=0, pos2=1)
-        )
-        assert_allclose(
-            coevolve_pair(nmi_pair, aln, pos1=0, pos2=1), nmi_pair(aln, pos1=0, pos2=1)
-        )
-        assert_allclose(
-            coevolve_pair(ancestral_state_pair, aln, pos1=0, pos2=1, tree=t),
-            ancestral_state_pair(aln, pos1=0, pos2=1, tree=t),
-        )
-        assert_allclose(
-            coevolve_pair(sca_pair, aln, pos1=0, pos2=1, cutoff=cutoff),
-            sca_pair(aln, pos1=0, pos2=1, cutoff=cutoff),
-        )
-
-    def test_coevolve_position(self):
-        """coevolve_position: returns same as position methods called directly"""
-        aln = ArrayAlignment(data={"1": "AC", "2": "AC"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        cutoff = 0.50
-        # mi_position == coevolve_position(mi_position,...)
-        assert_allclose(
-            coevolve_position(mi_position, aln, position=0),
-            mi_position(aln, position=0),
-        )
-        assert_allclose(
-            coevolve_position(nmi_position, aln, position=0),
-            nmi_position(aln, position=0),
-        )
-        assert_allclose(
-            coevolve_position(ancestral_state_position, aln, position=0, tree=t),
-            ancestral_state_position(aln, position=0, tree=t),
-        )
-        assert_allclose(
-            coevolve_position(sca_position, aln, position=0, cutoff=cutoff),
-            sca_position(aln, position=0, cutoff=cutoff),
-        )
-
-    def test_coevolve_alignments_validation_idenifiers(self):
-        """coevolve_alignments_validation: seq/tree validation functions"""
-        method = sca_alignment
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        # OK w/ no tree
-        coevolve_alignments_validation(method, aln1, aln2, 2, None)
-        # OK w/ tree
-        coevolve_alignments_validation(method, aln1, aln2, 2, None, tree=t)
-        # If there is a plus present in identifiers, we only care about the
-        # text before the colon
-        aln1 = ArrayAlignment(data={"1+a": "AC", "2+b": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1 + c": "EFW", "2 + d": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1+e:0.5,2 + f:0.5);")
-        # OK w/ no tree
-        coevolve_alignments_validation(method, aln1, aln2, 2, None)
-        # OK w/ tree
-        coevolve_alignments_validation(method, aln1, aln2, 2, None, tree=t)
-
-        # mismatch b/w alignments seq names
-        aln1 = ArrayAlignment(data={"3": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            method,
-            aln1,
-            aln2,
-            2,
-            None,
-            tree=t,
-        )
-
-        # mismatch b/w alignments and tree seq names
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(3:0.5,2:0.5);")
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            method,
-            aln1,
-            aln2,
-            2,
-            None,
-            tree=t,
-        )
-
-        # mismatch b/w alignments in number of seqs
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD", "3": "AA"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        self.assertRaises(
-            AssertionError, coevolve_alignments_validation, method, aln1, aln2, 2, None
-        )
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            method,
-            aln1,
-            aln2,
-            2,
-            None,
-            tree=t,
-        )
-
-        # mismatch b/w alignments & tree in number of seqs
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        t = make_tree(treestring="(1:0.5,(2:0.5,3:0.25));")
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            method,
-            aln1,
-            aln2,
-            2,
-            None,
-            tree=t,
-        )
-
-    def test_coevolve_alignments_validation_min_num_seqs(self):
-        """coevolve_alignments_validation: ValueError on fewer than min_num_seqs"""
-        method = mi_alignment
-        # too few sequences -> ValueError
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        coevolve_alignments_validation(method, aln1, aln2, 1, None)
-        coevolve_alignments_validation(method, aln1, aln2, 2, None)
-        self.assertRaises(
-            ValueError, coevolve_alignments_validation, method, aln1, aln2, 3, None
-        )
-
-    def test_coevolve_alignments_validation_max_num_seqs(self):
-        """coevolve_alignments_validation: min_num_seqs <= max_num_seqs"""
-        method = mi_alignment
-        # min_num_seqs > max_num_seqs-> ValueError
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        coevolve_alignments_validation(method, aln1, aln2, 1, None)
-        coevolve_alignments_validation(method, aln1, aln2, 1, 3)
-        coevolve_alignments_validation(method, aln1, aln2, 2, 3)
-        self.assertRaises(
-            ValueError, coevolve_alignments_validation, method, aln1, aln2, 3, 2
-        )
-
-    def test_coevolve_alignments_validation_moltypes(self):
-        """coevolve_alignments_validation: valid for acceptable moltypes"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AU"}, moltype=RNA)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        # different moltype
-        coevolve_alignments_validation(mi_alignment, aln1, aln2, 2, None)
-        coevolve_alignments_validation(nmi_alignment, aln1, aln2, 2, None)
-        coevolve_alignments_validation(resampled_mi_alignment, aln1, aln2, 2, None)
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            sca_alignment,
-            aln1,
-            aln2,
-            2,
-            None,
-        )
-        self.assertRaises(
-            AssertionError,
-            coevolve_alignments_validation,
-            ancestral_state_alignment,
-            aln1,
-            aln2,
-            2,
-            None,
-        )
-
-    def test_coevolve_alignments(self):
-        """coevolve_alignments: returns correct len(aln1) x len(aln2) matrix"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(
-            data={"1": "ACEFW", "2": "ADEGY"}, moltype=PROTEIN
-        )
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        cutoff = 0.50
-        # MI
-        m = mi_alignment(combined_aln)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(coevolve_alignments(mi_alignment, aln1, aln2), expected)
-        # MI (return_full=True)
-        assert_allclose(
-            coevolve_alignments(mi_alignment, aln1, aln2, return_full=True), m
-        )
-        # NMI
-        m = nmi_alignment(combined_aln)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(coevolve_alignments(nmi_alignment, aln1, aln2), expected)
-        # AS
-        m = ancestral_state_alignment(combined_aln, tree=t)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(
-            coevolve_alignments(ancestral_state_alignment, aln1, aln2, tree=t), expected
-        )
-        # SCA
-        m = sca_alignment(combined_aln, cutoff=cutoff)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(
-            coevolve_alignments(sca_alignment, aln1, aln2, cutoff=cutoff), expected
-        )
-
-    def test_coevolve_alignments_watches_min_num_seqs(self):
-        """coevolve_alignments: error on too few sequences"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-
-        coevolve_alignments(mi_alignment, aln1, aln2)
-        coevolve_alignments(mi_alignment, aln1, aln2, min_num_seqs=0)
-        coevolve_alignments(mi_alignment, aln1, aln2, min_num_seqs=1)
-        coevolve_alignments(mi_alignment, aln1, aln2, min_num_seqs=2)
-        self.assertRaises(
-            ValueError, coevolve_alignments, mi_alignment, aln1, aln2, min_num_seqs=3
-        )
-        self.assertRaises(
-            ValueError, coevolve_alignments, mi_alignment, aln1, aln2, min_num_seqs=50
-        )
-
-    def test_coevolve_alignments_watches_max_num_seqs(self):
-        """coevolve_alignments: filtering or error on too many sequences"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD", "3": "YP"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(
-            data={"1": "ACP", "2": "EAD", "3": "PYP"}, moltype=PROTEIN
-        )
-
-        # keep all seqs
-        tmp_filepath = NamedTemporaryFile(
-            prefix="tmp_test_coevolution", suffix=".fasta"
-        ).name
-        coevolve_alignments(
-            mi_alignment, aln1, aln2, max_num_seqs=3, merged_aln_filepath=tmp_filepath
-        )
-        self.assertEqual(load_aligned_seqs(tmp_filepath).num_seqs, 3)
-
-        # keep 2 seqs
-        coevolve_alignments(
-            mi_alignment, aln1, aln2, max_num_seqs=2, merged_aln_filepath=tmp_filepath
-        )
-        seqs = load_aligned_seqs(tmp_filepath)
-        self.assertEqual(seqs.num_seqs, 2)
-
-        # error if no sequence filter
-        self.assertRaises(
-            ValueError,
-            coevolve_alignments,
-            mi_alignment,
-            aln1,
-            aln2,
-            max_num_seqs=2,
-            merged_aln_filepath=tmp_filepath,
-            sequence_filter=None,
-        )
-
-        # clean up the temporary file
-        remove(tmp_filepath)
-
-    def test_coevolve_alignments_different_MolType(self):
-        """coevolve_alignments: different MolTypes supported"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AU"}, moltype=RNA)
-        aln2 = ArrayAlignment(data={"1": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(data={"1": "ACEFW", "2": "AUEGY"})
-        t = make_tree(treestring="(1:0.5,2:0.5);")
-        # MI
-        m = mi_alignment(combined_aln)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(coevolve_alignments(mi_alignment, aln1, aln2), expected)
-        # MI (return_full=True)
-        assert_allclose(
-            coevolve_alignments(mi_alignment, aln1, aln2, return_full=True), m
-        )
-        # NMI
-        m = nmi_alignment(combined_aln)
-        expected = array([[m[2, 0], m[2, 1]], [m[3, 0], m[3, 1]], [m[4, 0], m[4, 1]]])
-        assert_allclose(coevolve_alignments(nmi_alignment, aln1, aln2), expected)
-
-    def test_mi_pair_cols_default_exclude_handling(self):
-        """mi_pair returns null_value on excluded by default"""
-        aln = ArrayAlignment(data={"1": "AB", "2": "-B"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), DEFAULT_NULL_VALUE)
-        aln = ArrayAlignment(data={"1": "-B", "2": "-B"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), DEFAULT_NULL_VALUE)
-        aln = ArrayAlignment(data={"1": "AA", "2": "-B"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), DEFAULT_NULL_VALUE)
-        aln = ArrayAlignment(data={"1": "AA", "2": "PB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1, excludes="P"), DEFAULT_NULL_VALUE)
-
-    def test_mi_pair_cols_non_default_exclude_handling(self):
-        """mi_pair uses non-default exclude_handler when provided"""
-        aln = ArrayAlignment(data={"1": "A-", "2": "A-"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), DEFAULT_NULL_VALUE)
-        assert_allclose(
-            mi_pair(aln, pos1=0, pos2=1, exclude_handler=ignore_excludes), 0.0
-        )
-
-    def test_mi_pair_cols_and_entropies(self):
-        """mi_pair calculates mi from a pair of columns and precalc entropies"""
-        aln = ArrayAlignment(data={"1": "AB", "2": "AB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1, h1=0.0, h2=0.0), 0.0)
-        aln = ArrayAlignment(data={"1": "AB", "2": "BA"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1, h1=1.0, h2=1.0), 1.0)
-        # incorrect positional entropies provided to ensure that the
-        # precalculated values are used, and that entorpies are not
-        # caluclated on-the-fly.
-        aln = ArrayAlignment(data={"1": "AB", "2": "AB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1, h1=1.0, h2=1.0), 2.0)
-
-    def test_mi_pair_alt_calculator(self):
-        """mi_pair uses alternate mi_calculator when provided"""
-        aln = ArrayAlignment(data={"1": "AB", "2": "AB"}, moltype=PROTEIN)
-        assert_allclose(mi_pair(aln, pos1=0, pos2=1), 0.0)
-        assert_allclose(
-            mi_pair(aln, pos1=0, pos2=1, mi_calculator=normalized_mi),
-            DEFAULT_NULL_VALUE,
-        )
-
-    def test_mi_position_valid_input(self):
-        """mi_position functions with varied valid input"""
-        aln = ArrayAlignment(data={"1": "ACG", "2": "GAC"}, moltype=PROTEIN)
-        assert_allclose(mi_position(aln, 0), array([1.0, 1.0, 1.0]))
-        aln = ArrayAlignment(data={"1": "ACG", "2": "ACG"}, moltype=PROTEIN)
-        assert_allclose(mi_position(aln, 0), array([0.0, 0.0, 0.0]))
-        aln = ArrayAlignment(data={"1": "ACG", "2": "ACG"}, moltype=PROTEIN)
-        assert_allclose(mi_position(aln, 2), array([0.0, 0.0, 0.0]))
-
-    def test_mi_position_from_alignment_nmi(self):
-        """mi_position functions w/ alternate mi_calculator"""
-        aln = ArrayAlignment(data={"1": "ACG", "2": "ACG"}, moltype=PROTEIN)
-        assert_allclose(mi_position(aln, 0), array([0.0, 0.0, 0.0]))
-        aln = ArrayAlignment(data={"1": "ACG", "2": "ACG"}, moltype=PROTEIN)
-        assert_allclose(
-            mi_position(aln, 0, mi_calculator=normalized_mi),
-            array([DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE]),
-        )
-
-    def test_mi_position_from_alignment_default_exclude_handling(self):
-        """mi_position handles excludes by setting to null_value"""
-        aln = ArrayAlignment(data={"1": "ACG", "2": "G-C"}, moltype=PROTEIN)
-        assert_allclose(mi_position(aln, 0), array([1.0, DEFAULT_NULL_VALUE, 1.0]))
-        aln = ArrayAlignment(data={"1": "ACG", "2": "GPC"}, moltype=PROTEIN)
-        assert_allclose(
-            mi_position(aln, 0, excludes="P"), array([1.0, DEFAULT_NULL_VALUE, 1.0])
-        )
-
-    def test_mi_position_from_alignment_non_default_exclude_handling(self):
-        """mi_position handles excludes w/ non-default method"""
-        aln = ArrayAlignment(data={"1": "ACG", "2": "G-C"}, moltype=PROTEIN)
-        assert_allclose(
-            mi_position(aln, 0, exclude_handler=ignore_excludes), array([1.0, 1.0, 1.0])
-        )
-
-    def test_mi_alignment_excludes(self):
-        """mi_alignment handles excludes properly"""
-        expected = array(
-            [
-                [0.0, DEFAULT_NULL_VALUE, 0.0],
-                [DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [0.0, DEFAULT_NULL_VALUE, 0.0],
-            ]
-        )
-        # gap in second column
-        aln = ArrayAlignment(data={"1": "ACG", "2": "A-G"}, moltype=PROTEIN)
-        assert_allclose(mi_alignment(aln), expected)
-
-        # excludes = 'P'
-        aln = ArrayAlignment(data={"1": "ACG", "2": "APG"}, moltype=PROTEIN)
-        assert_allclose(mi_alignment(aln, excludes="P"), expected)
-
-        # gap in first column
-        expected = array(
-            [
-                [DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 0.0, 0.0],
-                [DEFAULT_NULL_VALUE, 0.0, 0.0],
-            ]
-        )
-        aln = ArrayAlignment(data={"1": "-CG", "2": "ACG"}, moltype=PROTEIN)
-        assert_allclose(mi_alignment(aln), expected)
-
-    def test_mi_alignment_high(self):
-        """mi_alignment detected perfectly correlated columns"""
-        expected = [[1.0, 1.0], [1.0, 1.0]]
-        aln = ArrayAlignment(data={"1": "AG", "2": "GA"}, moltype=PROTEIN)
-        assert_allclose(mi_alignment(aln), expected)
-
-    def test_mi_alignment_low(self):
-        """mi_alignment detected in perfectly uncorrelated columns"""
-        expected = [[0.0, 0.0], [0.0, 1.0]]
-        aln = ArrayAlignment(data={"1": "AG", "2": "AC"}, moltype=PROTEIN)
-        assert_allclose(mi_alignment(aln), expected)
-
-    def test_resampled_mi_alignment(self):
-        """resampled_mi_alignment returns without error"""
-        aln = ArrayAlignment(
-            data={"1": "ACDEF", "2": "ACFEF", "3": "ACGEF"}, moltype=PROTEIN
-        )
-        resampled_mi_alignment(aln)
-        aln = ArrayAlignment(
-            data={"1": "ACDEF", "2": "ACF-F", "3": "ACGEF"}, moltype=PROTEIN
-        )
-        resampled_mi_alignment(aln)
-
-    def test_coevolve_alignment(self):
-        """coevolve_alignment functions as expected with varied input"""
-        aln1 = ArrayAlignment(
-            data={"1": "ACDEF", "2": "ACFEF", "3": "ACGEF"}, moltype=PROTEIN
-        )
-        # no kwargs passed
-        assert_allclose(coevolve_alignment(mi_alignment, aln1), mi_alignment(aln1))
-        # different method passed
-        assert_allclose(coevolve_alignment(nmi_alignment, aln1), nmi_alignment(aln1))
-        # kwargs passed
-        assert_allclose(
-            coevolve_alignment(mi_alignment, aln1, mi_calculator=nmi),
-            nmi_alignment(aln1),
-        )
-
-    def test_build_coevolution_matrix_filepath(self):
-        """build_coevolution_matrix_filepath functions w/ varied input"""
-        self.assertEqual(build_coevolution_matrix_filepath("./blah.fasta"), "./blah")
-        self.assertEqual(build_coevolution_matrix_filepath("blah.fasta"), "./blah")
-        self.assertEqual(build_coevolution_matrix_filepath("blah"), "./blah")
-        self.assertEqual(build_coevolution_matrix_filepath("./blah"), "./blah")
-
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta", output_dir="./duh/", method="xx", alphabet="yyy"
-            ),
-            "./duh/blah.yyy.xx",
-        )
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta",
-                output_dir="./duh/",
-                method="xx",
-                alphabet="yyy",
-                parameter=0.25,
-            ),
-            "./duh/blah.yyy.xx",
-        )
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta", output_dir="./duh/", method="xx"
-            ),
-            "./duh/blah.xx",
-        )
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta", output_dir="./duh/", method="sca", parameter=0.25
-            ),
-            "./duh/blah.sca_25",
-        )
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta",
-                output_dir="./duh/",
-                method="sca",
-                parameter=0.25,
-                alphabet="xx",
-            ),
-            "./duh/blah.xx.sca_25",
-        )
-        # no trailing / to output_dir
-        self.assertEqual(
-            build_coevolution_matrix_filepath(
-                "./blah.fasta",
-                output_dir="./duh",
-                method="sca",
-                parameter=0.25,
-                alphabet="xx",
-            ),
-            "./duh/blah.xx.sca_25",
-        )
-
-        self.assertRaises(
-            ValueError,
-            build_coevolution_matrix_filepath,
-            "./blah.fasta",
-            "./duh/",
-            "sca",
-        )
-        self.assertRaises(
-            ValueError,
-            build_coevolution_matrix_filepath,
-            "./blah.fasta",
-            "./duh/",
-            "sca",
-            "xx",
-        )
-
-    def test_pickle_coevolution_result_error(self):
-        """pickle matrix: IOError handled correctly"""
-        m = array([[1, 2], [3, 4]])
-        self.assertRaises(IOError, pickle_coevolution_result, m, "")
-
-    def test_unpickle_coevolution_result_error(self):
-        """unpickle matrix: IOError handled correctly"""
-        self.assertRaises(IOError, unpickle_coevolution_result, "invalid/file/path.pkl")
-
-    def test_pickle_and_unpickle(self):
-        """unpickle(pickle(matrix)) == matrix"""
-        for expected in [4.5, array([1.2, 4.3, 5.5]), array([[1.4, 2.2], [3.0, 0.4]])]:
-            filepath = mktemp()
-            pickle_coevolution_result(expected, filepath)
-            actual = unpickle_coevolution_result(filepath)
-            assert_allclose(actual, expected)
-            remove(filepath)
-
-    def test_csv_coevolution_result_error(self):
-        """matrix -> csv: IOError handled correctly"""
-        m = array([[1, 2], [3, 4]])
-        self.assertRaises(IOError, coevolution_matrix_to_csv, m, "")
-
-    def test_uncsv_coevolution_result_error(self):
-        """csv -> matrix: IOError handled correctly"""
-        self.assertRaises(IOError, csv_to_coevolution_matrix, "invalid/file/path.pkl")
-
-    def test_csv_and_uncsv(self):
-        """converting to/from csv matrix results in correct coevolution matrix"""
-        expected = array([[1.4, 2.2], [DEFAULT_NULL_VALUE, 0.4]])
-        filepath = mktemp()
-        coevolution_matrix_to_csv(expected, filepath)
-        actual = csv_to_coevolution_matrix(filepath)
-        assert_allclose(actual, expected)
-        remove(filepath)
-
-    def test_parse_coevolution_matrix_filepath(self):
-        """Parsing matrix filepaths works as expected."""
-        expected = ("myosin_995", "a1_4", "nmi")
-        self.assertEqual(
-            parse_coevolution_matrix_filepath("pkls/myosin_995.a1_4.nmi.pkl"), expected
-        )
-        self.assertEqual(
-            parse_coevolution_matrix_filepath("pkls/myosin_995.a1_4.nmi.csv"), expected
-        )
-        expected = ("p53", "orig", "mi")
-        self.assertEqual(parse_coevolution_matrix_filepath("p53.orig.mi.pkl"), expected)
-        self.assertEqual(parse_coevolution_matrix_filepath("p53.orig.mi.csv"), expected)
-
-    def test_parse_coevolution_matrix_filepath_error(self):
-        """Parsing matrix file paths handles invalid filepaths"""
-        self.assertRaises(
-            ValueError, parse_coevolution_matrix_filepath, "pkls/myosin_995.nmi.pkl"
-        )
-        self.assertRaises(
-            ValueError, parse_coevolution_matrix_filepath, "pkls/myosin_995.pkl"
-        )
-        self.assertRaises(
-            ValueError, parse_coevolution_matrix_filepath, "pkls/myosin_995"
-        )
-        self.assertRaises(ValueError, parse_coevolution_matrix_filepath, "")
-
-    def test_identify_aln_positions_above_threshold(self):
-        """Extracting scores above threshold works as expected"""
-        m = array(
-            [
-                [
-                    DEFAULT_NULL_VALUE,
-                    DEFAULT_NULL_VALUE,
-                    DEFAULT_NULL_VALUE,
-                    DEFAULT_NULL_VALUE,
-                ],
-                [0.3, 1.0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [0.25, 0.75, 1.0, DEFAULT_NULL_VALUE],
-                [0.9, 0.751, 0.8, 1.0],
-            ]
-        )
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 0), [])
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 1), [1])
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 2), [1, 2])
-        self.assertEqual(
-            identify_aln_positions_above_threshold(m, 0.75, 3), [0, 1, 2, 3]
-        )
-
-        m = ltm_to_symmetric(m)
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 0), [3])
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 1), [1, 2, 3])
-        self.assertEqual(identify_aln_positions_above_threshold(m, 0.75, 2), [1, 2, 3])
-        self.assertEqual(
-            identify_aln_positions_above_threshold(m, 0.75, 3), [0, 1, 2, 3]
-        )
-
-        self.assertEqual(identify_aln_positions_above_threshold(m, 1.1, 0), [])
-        self.assertEqual(identify_aln_positions_above_threshold(m, -5.0, 0), [1, 2, 3])
-        self.assertEqual(
-            identify_aln_positions_above_threshold(m, -5.0, 1), [0, 1, 2, 3]
-        )
-
-    def test_count_ge_threshold(self):
-        """count_ge_threshold works as expected"""
-        m = array([[DEFAULT_NULL_VALUE] * 3] * 3)
-        self.assertEqual(count_ge_threshold(m, 1.0), (0, 0))
-        self.assertEqual(
-            count_ge_threshold(m, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE), (0, 0)
-        )
-        self.assertEqual(count_ge_threshold(m, 1.0, 42), (0, 9))
-
-        m = array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
-        self.assertEqual(count_ge_threshold(m, 4), (5, 9))
-        self.assertEqual(count_ge_threshold(m, 8), (1, 9))
-        self.assertEqual(count_ge_threshold(m, 9), (0, 9))
-
-        m = array(
-            [
-                [0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 4, 5],
-                [6, 7, 8],
-            ]
-        )
-        self.assertEqual(count_ge_threshold(m, 4), (5, 6))
-        self.assertEqual(count_ge_threshold(m, 8), (1, 6))
-        self.assertEqual(count_ge_threshold(m, 9), (0, 6))
-
-    def test_count_le_threshold(self):
-        """count_le_threshold works as expected"""
-        m = array([[DEFAULT_NULL_VALUE] * 3] * 3)
-        self.assertEqual(count_le_threshold(m, 1.0), (0, 0))
-        self.assertEqual(
-            count_le_threshold(m, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE), (0, 0)
-        )
-        self.assertEqual(count_le_threshold(m, 1.0, 42), (0, 9))
-
-        m = array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
-        self.assertEqual(count_le_threshold(m, 4), (5, 9))
-        self.assertEqual(count_le_threshold(m, 8), (9, 9))
-        self.assertEqual(count_le_threshold(m, 9), (9, 9))
-
-        m = array(
-            [
-                [0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 4, 5],
-                [6, 7, 8],
-            ]
-        )
-        self.assertEqual(count_le_threshold(m, 4), (2, 6))
-        self.assertEqual(count_le_threshold(m, 8), (6, 6))
-        self.assertEqual(count_le_threshold(m, 9), (6, 6))
-
-    def test_count_ge_threshold_symmetric_ignore_diagonal(self):
-        """count_ge_threshold works with symmetric and/or ignoring diag = True"""
-        # no good scores, varied null value
-        m = array([[DEFAULT_NULL_VALUE] * 3] * 3)
-        self.assertEqual(count_ge_threshold(m, 1.0, symmetric=True), (0, 0))
-        self.assertEqual(count_ge_threshold(m, 1.0, symmetric=True), (0, 0))
-        self.assertEqual(count_ge_threshold(m, 1.0, 42, symmetric=True), (0, 6))
-        self.assertEqual(count_ge_threshold(m, 1.0, ignore_diagonal=True), (0, 0))
-        self.assertEqual(count_ge_threshold(m, 1.0, ignore_diagonal=True), (0, 0))
-        self.assertEqual(count_ge_threshold(m, 1.0, 42, ignore_diagonal=True), (0, 6))
-        self.assertEqual(
-            count_ge_threshold(m, 1.0, ignore_diagonal=True, symmetric=True), (0, 0)
-        )
-        self.assertEqual(
-            count_ge_threshold(m, 1.0, ignore_diagonal=True, symmetric=True), (0, 0)
-        )
-        self.assertEqual(
-            count_ge_threshold(m, 1.0, 42, ignore_diagonal=True, symmetric=True), (0, 3)
-        )
-
-        #  no null values, varied other values
-        m = array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
-        self.assertEqual(count_ge_threshold(m, 4), (5, 9))
-        self.assertEqual(count_ge_threshold(m, 4, symmetric=True), (4, 6))
-        self.assertEqual(count_ge_threshold(m, 4, ignore_diagonal=True), (3, 6))
-        self.assertEqual(
-            count_ge_threshold(m, 4, symmetric=True, ignore_diagonal=True), (2, 3)
-        )
-
-        # null and mixed values
-        m = array(
-            [
-                [0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [3, 4, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 7, 8],
-            ]
-        )
-        self.assertEqual(count_ge_threshold(m, 4), (3, 5))
-        self.assertEqual(count_ge_threshold(m, 4, symmetric=True), (3, 5))
-        self.assertEqual(count_ge_threshold(m, 4, ignore_diagonal=True), (1, 2))
-        self.assertEqual(
-            count_ge_threshold(m, 4, symmetric=True, ignore_diagonal=True), (1, 2)
-        )
-
-    def test_count_le_threshold_symmetric_ignore_diagonal(self):
-        """count_le_threshold works with symmetric and/or ignoring diag = True"""
-        # varied null value
-        m = array([[DEFAULT_NULL_VALUE] * 3] * 3)
-        self.assertEqual(count_le_threshold(m, 1.0, symmetric=True), (0, 0))
-        self.assertEqual(count_le_threshold(m, 1.0, symmetric=True), (0, 0))
-        self.assertEqual(count_le_threshold(m, 1.0, 42, symmetric=True), (0, 6))
-        self.assertEqual(count_le_threshold(m, 1.0, ignore_diagonal=True), (0, 0))
-        self.assertEqual(count_le_threshold(m, 1.0, ignore_diagonal=True), (0, 0))
-        self.assertEqual(count_le_threshold(m, 1.0, 42, ignore_diagonal=True), (0, 6))
-        self.assertEqual(
-            count_le_threshold(m, 1.0, ignore_diagonal=True, symmetric=True), (0, 0)
-        )
-        self.assertEqual(
-            count_le_threshold(m, 1.0, ignore_diagonal=True, symmetric=True), (0, 0)
-        )
-        self.assertEqual(
-            count_le_threshold(m, 1.0, 42, ignore_diagonal=True, symmetric=True), (0, 3)
-        )
-
-        #  no null values, varied other values
-        m = array([[0, 1, 2], [3, 4, 5], [6, 7, 8]])
-        self.assertEqual(count_le_threshold(m, 4), (5, 9))
-        self.assertEqual(count_le_threshold(m, 4, symmetric=True), (3, 6))
-        self.assertEqual(count_le_threshold(m, 4, ignore_diagonal=True), (3, 6))
-        self.assertEqual(
-            count_le_threshold(m, 4, symmetric=True, ignore_diagonal=True), (1, 3)
-        )
-
-        # null and mixed values
-        m = array(
-            [
-                [0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [3, 4, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 7, 8],
-            ]
-        )
-        self.assertEqual(count_le_threshold(m, 4), (3, 5))
-        self.assertEqual(count_le_threshold(m, 4, symmetric=True), (3, 5))
-        self.assertEqual(count_le_threshold(m, 4, ignore_diagonal=True), (1, 2))
-        self.assertEqual(
-            count_le_threshold(m, 4, symmetric=True, ignore_diagonal=True), (1, 2)
-        )
-
-    def test_aln_position_pairs_cmp_threshold_intramolecular(self):
-        """aln_position_pairs_ge_threshold: intramolecular matrix"""
-        m = array(
-            [
-                [0, DEFAULT_NULL_VALUE, DEFAULT_NULL_VALUE],
-                [3, 4, DEFAULT_NULL_VALUE],
-                [DEFAULT_NULL_VALUE, 7, 8],
-            ]
-        )
-        # cmp_function = ge
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, greater_equal),
-            [(1, 1), (2, 1), (2, 2)],
-        )
-        # cmp_function = greater_equal, alt null_value
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, greater_equal, null_value=4),
-            [(2, 1), (2, 2)],
-        )
-        # cmp_function = le
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, less_equal), [(0, 0), (1, 0)]
-        )
-
-        # results equal results with wrapper functions
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, greater_equal),
-            aln_position_pairs_ge_threshold(m, 3.5),
-        )
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, less_equal),
-            aln_position_pairs_le_threshold(m, 3.5),
-        )
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, greater_equal, null_value=4),
-            aln_position_pairs_ge_threshold(m, 3.5, null_value=4),
-        )
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(m, 3.5, less_equal, null_value=0),
-            aln_position_pairs_le_threshold(m, 3.5, null_value=0),
-        )
-
-    def test_aln_position_pairs_ge_threshold_intermolecular(self):
-        """aln_position_pairs_ge_threshold: intermolecular matrix"""
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        # error if failed to specify intermolecular_data_only=True
-        self.assertRaises(
-            AssertionError, aln_position_pairs_cmp_threshold, m, 3.5, greater_equal
-        )
-        # cmp_function = ge
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, greater_equal, intermolecular_data_only=True
-            ),
-            [(1, 4), (2, 4), (0, 5), (1, 5), (2, 5), (3, 5)],
-        )
-        # cmp_function = greater_equal, alt null_value
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, greater_equal, null_value=18.0, intermolecular_data_only=True
-            ),
-            [(1, 4), (2, 4), (0, 5), (2, 5), (3, 5)],
-        )
-        # cmp_function = le
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, less_equal, intermolecular_data_only=True
-            ),
-            [(0, 4), (3, 4)],
-        )
-
-        # results equal results with wrapper functions
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, greater_equal, intermolecular_data_only=True
-            ),
-            aln_position_pairs_ge_threshold(m, 3.5, intermolecular_data_only=True),
-        )
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, less_equal, intermolecular_data_only=True
-            ),
-            aln_position_pairs_le_threshold(m, 3.5, intermolecular_data_only=True),
-        )
-
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, greater_equal, null_value=4.0, intermolecular_data_only=True
-            ),
-            aln_position_pairs_ge_threshold(
-                m, 3.5, null_value=4.0, intermolecular_data_only=True
-            ),
-        )
-        self.assertEqual(
-            aln_position_pairs_cmp_threshold(
-                m, 3.5, less_equal, null_value=18.0, intermolecular_data_only=True
-            ),
-            aln_position_pairs_le_threshold(
-                m, 3.5, null_value=18.0, intermolecular_data_only=True
-            ),
-        )
-
-    def test_is_parsimony_informative_strict(self):
-        """is_parsimony_informative functions as expected with strict=True"""
-        freqs = {"A": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 25, "-": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 25, "?": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 25, "B": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 1, "B": 1, "C": 1, "D": 1, "E": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 2, "B": 1, "C": 1, "D": 1, "E": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 2, "B": 2, "C": 1, "D": 1, "E": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=True))
-
-        freqs = {"A": 25, "B": 2}
-        self.assertTrue(is_parsimony_informative(freqs, strict=True))
-        freqs = {"A": 2, "B": 2, "C": 2, "D": 2, "E": 2}
-        self.assertTrue(is_parsimony_informative(freqs, strict=True))
-
-    def test_is_parsimony_informative_non_strict(self):
-        """is_parsimony_informative functions as expected with strict=False"""
-        freqs = {"A": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 25, "-": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 25, "?": 25}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 25, "B": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 1, "B": 1, "C": 1, "D": 1, "E": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 2, "B": 1, "C": 1, "D": 1, "E": 1}
-        self.assertFalse(is_parsimony_informative(freqs, strict=False))
-
-        freqs = {"A": 2, "B": 2, "C": 1, "D": 1, "E": 1}
-        self.assertTrue(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 25, "B": 2}
-        self.assertTrue(is_parsimony_informative(freqs, strict=False))
-        freqs = {"A": 2, "B": 2, "C": 2, "D": 2, "E": 2}
-        self.assertTrue(is_parsimony_informative(freqs, strict=False))
-
-    def test_is_parsimony_informative_non_default(self):
-        """is_parsimony_informative functions w non default paramters"""
-        # NEED TO UPDATE THESE TESTS BASED ON MY ERROR IN THE
-        # DEFINITION OF PARSIMONY INFORMATIVE.
-        # changed minimum_count
-        freqs = {"A": 25, "B": 2}
-        self.assertFalse(is_parsimony_informative(freqs, minimum_count=3, strict=False))
-        freqs = {"A": 25, "B": 1}
-        self.assertTrue(is_parsimony_informative(freqs, minimum_count=1, strict=False))
-
-        # different value of strict yields different results
-        freqs = {"A": 25, "B": 2, "C": 3}
-        self.assertTrue(is_parsimony_informative(freqs, minimum_count=3, strict=False))
-        self.assertFalse(is_parsimony_informative(freqs, minimum_count=3, strict=True))
-
-        # changed minimum_differences
-        freqs = {"A": 25, "B": 25}
-        self.assertFalse(
-            is_parsimony_informative(freqs, minimum_differences=3, strict=False)
-        )
-        freqs = {"A": 25}
-        self.assertTrue(
-            is_parsimony_informative(freqs, minimum_differences=1, strict=False)
-        )
-
-        # changed ignored
-        freqs = {"A": 25, "-": 25, "?": 25}
-        self.assertTrue(is_parsimony_informative(freqs, ignored=None, strict=False))
-        freqs = {"A": 25, "?": 25}
-        self.assertTrue(is_parsimony_informative(freqs, ignored="", strict=False))
-        freqs = {"A": 25, "-": 25}
-        self.assertTrue(is_parsimony_informative(freqs, ignored=None, strict=False))
-        freqs = {"A": 25, "C": 25}
-        self.assertFalse(is_parsimony_informative(freqs, ignored="A", strict=False))
-
-    def test_filter_non_parsimony_informative_intramolecular(self):
-        """non-parsimony informative sites in intramolecular matrix -> null"""
-        aln = make_aligned_seqs(
-            data={"1": "ACDE", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 4)
-        filter_non_parsimony_informative(aln, m)
-        assert_allclose(m, expected)
-
-        aln = make_aligned_seqs(
-            data={"1": "ACDE", "2": "FCDE", "3": "ACDE", "4": "FCDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [42.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 4)
-        expected[0, 0] = 42.0
-        filter_non_parsimony_informative(aln, m)
-        assert_allclose(m, expected)
-
-    def test_filter_non_parsimony_informative_intermolecular(self):
-        """non-parsimony informative sites in intermolecular matrix -> null"""
-        # all non-parsimony informative
-        aln = make_aligned_seqs(
-            data={"1": "ACDEWQ", "2": "ACDEWQ", "3": "ACDEWQ", "4": "ACDEWQ"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 2)
-        filter_non_parsimony_informative(aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-        # one non-parsimony informative pair of positions
-        aln = make_aligned_seqs(
-            data={"1": "FCDEWD", "2": "ACDEWQ", "3": "ACDEWD", "4": "FCDEWQ"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 2)
-        expected[1, 0] = 9.0
-        filter_non_parsimony_informative(aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-        # all parsimony informative
-        aln = make_aligned_seqs(
-            data={"1": "FFFFFF", "2": "FFFFFF", "3": "GGGGGG", "4": "GGGGGG"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        filter_non_parsimony_informative(aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-
-    def test_filter_exclude_positions_intramolecular(self):
-        """filter_exclude_positions: functions for intramolecular data"""
-        # filter zero positions (no excludes)
-        aln = make_aligned_seqs(
-            data={"1": "WCDE", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m)
-        assert_allclose(m, expected)
-        # filter zero positions (max_exclude_percentage = percent exclude)
-        aln = make_aligned_seqs(
-            data={"1": "-CDE", "2": "A-DE", "3": "AC-E", "4": "ACD-"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m, max_exclude_percent=0.25)
-        assert_allclose(m, expected)
-        # filter zero positions (max_exclude_percentage too high)
-        aln = make_aligned_seqs(
-            data={"1": "-CDE", "2": "A-DE", "3": "AC-E", "4": "ACD-"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m, max_exclude_percent=0.5)
-        assert_allclose(m, expected)
-        # filter one position (defualt max_exclude_percentage)
-        aln = make_aligned_seqs(
-            data={"1": "-CDE", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [DEFAULT_NULL_VALUE] * 4,
-                [DEFAULT_NULL_VALUE, 18.0, 5.0, 6.0],
-                [DEFAULT_NULL_VALUE, 1.0, 3.0, 2.0],
-                [DEFAULT_NULL_VALUE, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m)
-        assert_allclose(m, expected)
-        # filter one position (non-defualt max_exclude_percentage)
-        aln = make_aligned_seqs(
-            data={"1": "-CDE", "2": "ACDE", "3": "ACDE", "4": "-CDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [DEFAULT_NULL_VALUE] * 4,
-                [DEFAULT_NULL_VALUE, 18.0, 5.0, 6.0],
-                [DEFAULT_NULL_VALUE, 1.0, 3.0, 2.0],
-                [DEFAULT_NULL_VALUE, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m, max_exclude_percent=0.49)
-        assert_allclose(m, expected)
-        # filter all positions (defualt max_exclude_percentage)
-        aln = make_aligned_seqs(
-            data={"1": "----", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 4)
-        filter_exclude_positions(aln, m)
-        assert_allclose(m, expected)
-        # filter all positions (non-defualt max_exclude_percentage)
-        aln = make_aligned_seqs(
-            data={"1": "----", "2": "A-DE", "3": "AC--", "4": "-CDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 3.0],
-            ]
-        )
-        expected = array([[DEFAULT_NULL_VALUE] * 4] * 4)
-        filter_exclude_positions(aln, m, max_exclude_percent=0.49)
-        assert_allclose(m, expected)
-
-        # filter one position (defualt max_exclude_percentage,
-        # non-defualt excludes)
-        aln = make_aligned_seqs(
-            data={"1": "WCDE", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [DEFAULT_NULL_VALUE] * 4,
-                [DEFAULT_NULL_VALUE, 18.0, 5.0, 6.0],
-                [DEFAULT_NULL_VALUE, 1.0, 3.0, 2.0],
-                [DEFAULT_NULL_VALUE, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m, excludes="W")
-        assert_allclose(m, expected)
-
-        # filter one position (defualt max_exclude_percentage,
-        # non-defualt null_value)
-        aln = make_aligned_seqs(
-            data={"1": "-CDE", "2": "ACDE", "3": "ACDE", "4": "ACDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array(
-            [
-                [1.0, 10.0, 4.0, 3.0],
-                [9.0, 18.0, 5.0, 6.0],
-                [4.0, 1.0, 3.0, 2.0],
-                [21.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        expected = array(
-            [
-                [999.0] * 4,
-                [999.0, 18.0, 5.0, 6.0],
-                [999.0, 1.0, 3.0, 2.0],
-                [999.0, 0.0, 1.0, 33.0],
-            ]
-        )
-        filter_exclude_positions(aln, m, null_value=999.0)
-        assert_allclose(m, expected)
-
-    def test_filter_exclude_positions_intermolecular(self):
-        """filter_exclude_positions: functions for intermolecular data"""
-        # these tests correspond to alignments of length 4 and 2 positions
-        # respectively, hence a coevolution_matrix with shape = (2,4)
-
-        # filter zero positions (no excludes)
-        merged_aln = make_aligned_seqs(
-            data={"1": "WCDEDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDEDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        filter_exclude_positions(merged_aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-
-        # filter one position (aln1)
-        merged_aln = make_aligned_seqs(
-            data={"1": "WC-EDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDEDE"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array(
-            [[1.0, 10.0, DEFAULT_NULL_VALUE, 3.0], [9.0, 18.0, DEFAULT_NULL_VALUE, 6.0]]
-        )
-        filter_exclude_positions(merged_aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-        # filter one position (aln2)
-        merged_aln = make_aligned_seqs(
-            data={"1": "WCEEDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDED-"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[1.0, 10.0, 4.0, 3.0], [DEFAULT_NULL_VALUE] * 4])
-        filter_exclude_positions(merged_aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-
-        # filter two positions (aln1 & aln2)
-        merged_aln = make_aligned_seqs(
-            data={"1": "-CEEDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDED-"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array(
-            [[DEFAULT_NULL_VALUE, 10.0, 4.0, 3.0], [DEFAULT_NULL_VALUE] * 4]
-        )
-        filter_exclude_positions(merged_aln, m, intermolecular_data_only=True)
-        assert_allclose(m, expected)
-
-        # filter two positions (aln1 & aln2, alt excludes)
-        merged_aln = make_aligned_seqs(
-            data={"1": "WCEEDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDEDW"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array(
-            [[DEFAULT_NULL_VALUE, 10.0, 4.0, 3.0], [DEFAULT_NULL_VALUE] * 4]
-        )
-        filter_exclude_positions(
-            merged_aln, m, intermolecular_data_only=True, excludes="W"
-        )
-        assert_allclose(m, expected)
-
-        # filter two positions (aln1 & aln2, alt null_value)
-        merged_aln = make_aligned_seqs(
-            data={"1": "-CEEDE", "2": "ACDEDE", "3": "ACDEDE", "4": "ACDED-"},
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        m = array([[1.0, 10.0, 4.0, 3.0], [9.0, 18.0, 5.0, 6.0]])
-        expected = array([[999.0, 10.0, 4.0, 3.0], [999.0] * 4])
-        filter_exclude_positions(
-            merged_aln, m, intermolecular_data_only=True, null_value=999.0
-        )
-        assert_allclose(m, expected)
-
-    def test_filter_threshold_based_multiple_interdependency_intermolecular(self):
-        "multiple interdependency filter functions with intermolecular data"
-        ## cmp_function = ge
-        # lower boundary
-        null = DEFAULT_NULL_VALUE
-        m = array(
-            [
-                [0.63, 0.00, null],
-                [0.75, 0.10, 0.45],
-                [0.95, 0.32, 0.33],
-                [1.00, 0.95, 0.11],
-            ]
-        )
-        expected = array(
-            [
-                [null, null, null],
-                [null, null, 0.45],
-                [null, null, null],
-                [null, null, null],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 0, greater_equal, True
-        )
-        assert_allclose(actual, expected)
-        # realisitic test case
-        m = array(
-            [
-                [0.63, 0.00, null],
-                [0.75, 0.10, 0.45],
-                [0.95, 0.32, 0.33],
-                [1.00, 0.95, 0.11],
-            ]
-        )
-        expected = array(
-            [
-                [null, 0.00, null],
-                [null, 0.10, 0.45],
-                [null, 0.32, 0.33],
-                [null, null, null],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 1, greater_equal, True
-        )
-        assert_allclose(actual, expected)
-        # upper boundary, nothing filtered
-        null = DEFAULT_NULL_VALUE
-        m = array(
-            [
-                [0.63, 0.00, null],
-                [0.75, 0.10, 0.45],
-                [0.95, 0.32, 0.33],
-                [1.00, 0.95, 0.11],
-            ]
-        )
-        expected = m
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 5, greater_equal, True
-        )
-        assert_allclose(actual, expected)
-
-        # cmp_function = less_equal, realistic test case
-        m = array(
-            [
-                [0.63, 0.00, null],
-                [0.75, 0.10, 0.45],
-                [0.95, 0.32, 0.33],
-                [1.00, 0.95, 0.11],
-            ]
-        )
-        expected = array(
-            [
-                [0.63, null, null],
-                [0.75, null, null],
-                [null, null, null],
-                [1.00, null, null],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.35, 1, less_equal, True
-        )
-        assert_allclose(actual, expected)
-
-    def test_filter_threshold_based_multiple_interdependency_intramolecular(self):
-        "multiple interdependency filter functions with intramolecular data"
-        null = DEFAULT_NULL_VALUE
-        ## cmp_function = ge
-        # lower bound, everything filtered
-        m = array(
-            [
-                [0.63, 0.75, 0.95, 1.00],
-                [0.75, 0.10, null, 0.95],
-                [0.95, null, 0.33, 0.11],
-                [1.00, 0.95, 0.11, 1.00],
-            ]
-        )
-        expected = array(
-            [
-                [null, null, null, null],
-                [null, null, null, null],
-                [null, null, null, null],
-                [null, null, null, null],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 0, greater_equal
-        )
-        assert_allclose(actual, expected)
-
-        # realistic test case
-        m = array(
-            [
-                [0.63, 0.75, 0.95, 1.00],
-                [0.75, 0.10, null, 0.95],
-                [0.95, null, 0.33, 0.11],
-                [1.00, 0.95, 0.11, 1.00],
-            ]
-        )
-        expected = array(
-            [
-                [null, null, null, null],
-                [null, 0.10, null, null],
-                [null, null, 0.33, null],
-                [null, null, null, null],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 1, greater_equal
-        )
-        assert_allclose(actual, expected)
-
-        # upper boundary, nothing filtered
-        m = array(
-            [
-                [0.63, 0.75, 0.95, 1.00],
-                [0.75, 0.10, null, 0.95],
-                [0.95, null, 0.33, 0.11],
-                [1.00, 0.95, 0.11, 1.00],
-            ]
-        )
-        expected = m
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.95, 5, greater_equal
-        )
-        assert_allclose(actual, expected)
-
-        ## cmp_function = le
-        # realistic test case
-        m = array(
-            [
-                [0.63, 0.75, 0.95, 1.00],
-                [0.75, 0.10, null, 0.95],
-                [0.95, null, 0.33, 0.11],
-                [1.00, 0.95, 0.11, 1.00],
-            ]
-        )
-        expected = array(
-            [
-                [0.63, 0.75, null, 1.00],
-                [0.75, 0.10, null, 0.95],
-                [null, null, null, null],
-                [1.00, 0.95, null, 1.00],
-            ]
-        )
-        actual = filter_threshold_based_multiple_interdependency(
-            None, m, 0.33, 1, less_equal
-        )
-        assert_allclose(actual, expected)
-
-    def test_probs_from_dict(self):
-        """probs_from_dict: dict of probs -> list of probs in alphabet's order"""
-        d = {"A": 0.25, "D": 0.52, "C": 0.23}
-        a = list("ACD")
-        assert_allclose(probs_from_dict(d, a), [0.25, 0.23, 0.52])
-        a = list("ADC")
-        assert_allclose(probs_from_dict(d, a), [0.25, 0.52, 0.23])
-        a = list("DCA")
-        assert_allclose(probs_from_dict(d, a), [0.52, 0.23, 0.25])
-        a = CharAlphabet("DCA")
-        assert_allclose(probs_from_dict(d, a), [0.52, 0.23, 0.25])
-
-        # protein natural probs
-        l = probs_from_dict(protein_dict, AAGapless)
-        for i in range(20):
-            assert_allclose(l[i], protein_dict[AAGapless[i]], 0.001)
-
-    def test_freqs_from_aln(self):
-        """freqs_from_aln: freqs of alphabet chars in aln is calc'ed correctly"""
-        # non-default scaled_aln_size
-        aln = ArrayAlignment(
-            data=list(zip(list(range(4)), ["ACGT", "AGCT", "ACCC", "TAGG"])),
-            moltype=PROTEIN,
-        )
-        alphabet = "ACGT"
-        expected = [4, 5, 4, 3]
-        assert_equal(freqs_from_aln(aln, alphabet, 16), expected)
-        # change the order of the alphabet
-        alphabet = "TGCA"
-        expected = [3, 4, 5, 4]
-        assert_equal(freqs_from_aln(aln, alphabet, 16), expected)
-        # default scaled_aln_size, sums of freqs == 100
-        alphabet = "ACGT"
-        expected = [25.0, 31.25, 25, 18.75]
-        assert_allclose(freqs_from_aln(aln, alphabet), expected)
-        # alphabet char which doesn't show up gets zero freq
-        alphabet = "ACGTW"
-        expected = [25.0, 31.25, 25, 18.75, 0]
-        assert_allclose(freqs_from_aln(aln, alphabet), expected)
-        # alignment char which doesn't show up is silently ignored
-        aln = ArrayAlignment(
-            data=list(zip(list(range(4)), ["ACGT", "AGCT", "ACCC", "TWGG"])),
-            moltype=PROTEIN,
-        )
-        alphabet = "ACGT"
-        expected = [18.75, 31.25, 25, 18.75]
-        assert_allclose(freqs_from_aln(aln, alphabet), expected)
-
-    def test_freqs_to_array(self):
-        """freqs_to_array: should convert CategoryCounter object to array"""
-        # should work with empty object
-        f = CategoryCounter()
-        f2a = freqs_to_array
-        assert_allclose(f2a(f, AAGapless), zeros(20))
-        # should work with full object, omitting unwanted keys
-        f = CategoryCounter({"A": 20, "Q": 30, "X": 20})
-        expected = zeros(20)
-        expected[AAGapless.index("A")] = 20
-        expected[AAGapless.index("Q")] = 30
-        assert_allclose(f2a(f, AAGapless), expected)
-
-        # should work for normal dict and any alphabet
-        d = {"A": 3, "D": 1, "C": 5, "E": 2}
-        alpha = "ABCD"
-        exp = array([3, 0, 5, 1])
-        assert_allclose(f2a(d, alpha), exp)
-
-    def test_get_allowed_perturbations(self):
-        """get_allowed_perturbations: should work for different cutoff values"""
-        counts = [50, 40, 10, 0]
-        a = list("ACGT")
-        self.assertEqual(get_allowed_perturbations(counts, 1.0, a), [])
-        self.assertEqual(get_allowed_perturbations(counts, 0.51, a), [])
-        self.assertEqual(get_allowed_perturbations(counts, 0.5, a), ["A"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.49, a), ["A"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.401, a), ["A"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.40, a), ["A", "C"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.399, a), ["A", "C"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.10, a), ["A", "C", "G"])
-        self.assertEqual(get_allowed_perturbations(counts, 0.0, a), a)
-
-    def test_get_subalignments(self):
-        """get_subalignments: works with different alignment sizes and cutoffs"""
-        aln = ArrayAlignment(
-            data={1: "AAAA", 2: "AAAC", 3: "AACG", 4: "ACCT", 5: "ACG-"},
-            moltype=PROTEIN,
-        )
-        sub_aln_0A = ArrayAlignment(
-            data={1: "AAAA", 2: "AAAC", 3: "AACG", 4: "ACCT", 5: "ACG-"},
-            moltype=PROTEIN,
-        )
-        sub_aln_1A = ArrayAlignment(
-            data={1: "AAAA", 2: "AAAC", 3: "AACG"}, moltype=PROTEIN
-        )
-        sub_aln_1C = ArrayAlignment(data={4: "ACCT", 5: "ACG-"}, moltype=PROTEIN)
-        sub_aln_2G = ArrayAlignment(data={5: "ACG-"}, moltype=PROTEIN)
-
-        self.assertEqual(get_subalignments(aln, 0, ["A"]), [sub_aln_0A])
-        self.assertEqual(get_subalignments(aln, 0, ["C"]), [])
-        self.assertEqual(get_subalignments(aln, 1, ["A"]), [sub_aln_1A])
-        self.assertEqual(get_subalignments(aln, 1, ["C"]), [sub_aln_1C])
-        self.assertEqual(
-            get_subalignments(aln, 1, ["A", "C"]), [sub_aln_1A, sub_aln_1C]
-        )
-        self.assertEqual(get_subalignments(aln, 2, ["G"]), [sub_aln_2G])
-        self.assertEqual(get_subalignments(aln, 3, ["-"]), [sub_aln_2G])
-
-    def test_get_positional_frequencies_w_scale(self):
-        """get_positional_frequencies: works with default scaled_aln_size"""
-        aln = ArrayAlignment(
-            data={1: "ACDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected_0 = array([100.0, 0.0, 0.0, 0.0, 0.0])
-        expected_1 = array([0.0, 25.0, 25.0, 25.0, 25.0])
-        expected_2 = array([0.0, 0.0, 50.0, 50.0, 0.0])
-        expected_3 = array([0.0, 0.0, 25.0, 50.0, 25.0])
-        assert_allclose(get_positional_frequencies(aln, 0, "ACDEF"), expected_0)
-        assert_allclose(get_positional_frequencies(aln, 1, "ACDEF"), expected_1)
-        assert_allclose(get_positional_frequencies(aln, 2, "ACDEF"), expected_2)
-        assert_allclose(get_positional_frequencies(aln, 3, "ACDEF"), expected_3)
-        # extra characters (W) are silently ignored -- is this the desired
-        # behavior?
-        aln = ArrayAlignment(
-            data={1: "WCDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected_0 = array([75.0, 0.0, 0.0, 0.0, 0.0])
-        assert_allclose(get_positional_frequencies(aln, 0, "ACDEF"), expected_0)
-        # 20 residue amino acid alphabet
-        aln = ArrayAlignment(
-            data={1: "ACDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected = array([100.0] + [0.0] * 19)
-        assert_allclose(get_positional_frequencies(aln, 0, AAGapless), expected)
-
-    def test_get_positional_frequencies(self):
-        """get_positional_frequencies: works with non-default scaled_aln_size"""
-        aln = ArrayAlignment(
-            data={1: "ACDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected_0 = array([4.0, 0.0, 0.0, 0.0, 0.0])
-        expected_1 = array([0.0, 1.0, 1.0, 1.0, 1.0])
-        expected_2 = array([0.0, 0.0, 2.0, 2.0, 0.0])
-        expected_3 = array([0.0, 0.0, 1.0, 2.0, 1.0])
-        assert_allclose(get_positional_frequencies(aln, 0, "ACDEF", 4), expected_0)
-        assert_allclose(get_positional_frequencies(aln, 1, "ACDEF", 4), expected_1)
-        assert_allclose(get_positional_frequencies(aln, 2, "ACDEF", 4), expected_2)
-        assert_allclose(get_positional_frequencies(aln, 3, "ACDEF", 4), expected_3)
-        # extra characters (W) are silently ignored -- is this the desired
-        # behavior?
-        aln = ArrayAlignment(
-            data={1: "WCDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected_0 = array([3.0, 0.0, 0.0, 0.0, 0.0])
-        assert_allclose(get_positional_frequencies(aln, 0, "ACDEF", 4), expected_0)
-        # 20 residue amino acid alphabet
-        aln = ArrayAlignment(
-            data={1: "ACDE", 2: "ADDE", 3: "AEED", 4: "AFEF"}, moltype=PROTEIN
-        )
-        expected = array([4.0] + [0.0] * 19)
-        assert_allclose(get_positional_frequencies(aln, 0, AAGapless, 4), expected)
-
-    def test_validate_alphabet_invalid(self):
-        """validate_alphabet: raises error on incompatible alpabet and freqs"""
-        # len(alpha) > len(freqs)
-        self.assertRaises(ValueError, validate_alphabet, "ABC", {"A": 0.5, "B": 0.5})
-        self.assertRaises(ValueError, validate_alphabet, "ABCD", {"A": 0.5, "B": 0.5})
-        # len(alpha) == len(freqs)
-        self.assertRaises(ValueError, validate_alphabet, "AC", {"A": 0.5, "B": 0.5})
-        # len(alpha) < len(freqs)
-        self.assertRaises(ValueError, validate_alphabet, "A", {"A": 0.5, "B": 0.5})
-        self.assertRaises(ValueError, validate_alphabet, "", {"A": 0.5, "B": 0.5})
-        # different values, len(alpha) > len(freqs)
-        self.assertRaises(ValueError, validate_alphabet, [1, 42, 3], {42: 0.5, 1: 0.5})
-        self.assertRaises(
-            ValueError, validate_alphabet, CharAlphabet("ABC"), {"A": 0.5, "C": 0.5}
-        )
-
-    def test_validate_alphabet_valid(self):
-        """validate_alphabet: does nothing on compatible alpabet and freqs"""
-        validate_alphabet("AB", {"A": 0.5, "B": 0.5})
-        validate_alphabet(CharAlphabet("AB"), {"A": 0.5, "B": 0.5})
-        validate_alphabet([1, 42, 8], {1: 0.5, 42: 0.25, 8: 0.25})
-
-    def test_validate_position_invalid(self):
-        """validate_position: raises error on invalid position"""
-        self.assertRaises(ValueError, validate_position, self.dna_aln, 4)
-        self.assertRaises(ValueError, validate_position, self.dna_aln, 42)
-        self.assertRaises(ValueError, validate_position, self.dna_aln, -1)
-        self.assertRaises(ValueError, validate_position, self.dna_aln, -199)
-
-    def test_validate_position_valid(self):
-        """validate_position: does nothing on valid position"""
-        validate_position(self.dna_aln, 0)
-        validate_position(self.dna_aln, 1)
-        validate_position(self.dna_aln, 2)
-        validate_position(self.dna_aln, 3)
-
-    def test_validate_alignment(self):
-        """validate_alignment: ValueError on bad alignment characters"""
-        # ambiguous characters
-        aln = ArrayAlignment(
-            data={0: "BA", 1: "AC", 2: "CG", 3: "CT", 4: "TA"}, moltype=PROTEIN
-        )
-        self.assertRaises(ValueError, validate_alignment, aln)
-        aln = ArrayAlignment(
-            data={0: "NA", 1: "AC", 2: "CG", 3: "CT", 4: "TA"}, moltype=DNA
-        )
-        self.assertRaises(ValueError, validate_alignment, aln)
-        aln = ArrayAlignment(
-            data={0: "YA", 1: "AC", 2: "CG", 3: "CU", 4: "UA"}, moltype=RNA
-        )
-        self.assertRaises(ValueError, validate_alignment, aln)
-
-        aln = ArrayAlignment(
-            data={0: "AA", 1: "AC", 2: "CG", 3: "CT", 4: "TA"}, moltype=PROTEIN
-        )
-        validate_alignment(aln)
-        aln = ArrayAlignment(
-            data={0: "AA", 1: "AC", 2: "CG", 3: "CT", 4: "TA"}, moltype=DNA
-        )
-        validate_alignment(aln)
-        aln = ArrayAlignment(
-            data={0: "AA", 1: "AC", 2: "CG", 3: "CU", 4: "UA"}, moltype=RNA
-        )
-        validate_alignment(aln)
-
-    def test_coevolve_functions_validate_alignment(self):
-        """coevolve_*: functions run validate alignment"""
-        aln = ArrayAlignment(
-            data={"0": "BA", "1": "AC", "2": "CG", "3": "CT", "4": "TA"},
-            moltype=PROTEIN,
-        )
-        self.assertRaises(ValueError, coevolve_pair, mi_pair, aln, 0, 1)
-        self.assertRaises(ValueError, coevolve_position, mi_position, aln, 0)
-        self.assertRaises(ValueError, coevolve_alignment, mi_alignment, aln)
-        self.assertRaises(ValueError, coevolve_alignments, mi_alignment, aln, aln)
-
-    def test_get_positional_probabilities_w_non_def_num_seqs(self):
-        """get_positional_probabilities: works w/ non-def num_seqs"""
-        freqs = [1.0, 2.0, 0.0]
-        probs = [0.33, 0.33, 0.33]
-        expected = array([0.444411, 0.218889, 0.300763])
-        assert_allclose(get_positional_probabilities(freqs, probs, 3), expected)
-
-    def test_get_dg(self):
-        """get_dg: returns delta_g vector"""
-        p = [0.1, 0.2, 0.3]
-        a = [0.5, 0.6, 0.7]
-        expected = [log(0.1 / 0.5), log(0.2 / 0.6), log(0.3 / 0.7)]
-        assert_allclose(get_dg(p, a), expected)
-
-    def test_get_dgg(self):
-        """get_dgg: returns delta_delta_g value given two delta_g vectors"""
-        v1 = array([0.05, 0.5, 0.1])
-        v2 = array([0.03, 0.05, 0.1])
-        expected = sqrt(sum((v1 - v2) * (v1 - v2))) / 100 * e
-        assert_allclose(get_dgg(v1, v2), expected)
-
-    def test_get_positional_probabilities_w_def_num_seqs(self):
-        """get_positional_probabilities: works w/ num_seqs scaled to 100 (def)"""
-        freqs = [15.0, 33.0, 52.0]
-        probs = [0.33, 0.33, 0.33]
-        expected = array([2.4990e-5, 0.0846, 3.8350e-5])
-        assert_allclose(get_positional_probabilities(freqs, probs), expected, 0.001)
-
-    def test_get_positional_probs_handles_rounding_error_in_freqs(self):
-        """get_positional_probabilities: works w/ rounding error in freqs"""
-        # Since freqs are scaled to scaled_aln_size, rounding error can cause
-        # errors for positions that are perfectly controled. Testing here that
-        # that value error is handled.
-        # default scaled_aln_size
-        freqs = [100.0000000001, 0.0, 0.0]
-        probs = [0.33, 0.33, 0.33]
-        expected = array([7.102218e-49, 4.05024e-18, 4.05024e-18])
-        assert_allclose(get_positional_probabilities(freqs, probs), expected, rtol=1e-5)
-        # value that is truely over raises an error
-        freqs = [101.0000000001, 0.0, 0.0]
-        probs = [0.33, 0.33, 0.33]
-        self.assertRaises(ValueError, get_positional_probabilities, freqs, probs)
-        # non-default scaled_aln_size
-        freqs = [50.0000000001, 0.0, 0.0]
-        probs = [0.33, 0.33, 0.33]
-        expected = array([8.42747e-25, 2.01252e-9, 2.01252e-9])
-        assert_allclose(
-            get_positional_probabilities(freqs, probs, 50), expected, rtol=1e-5
-        )
-        # value that is truely over raises an error
-        freqs = [51.0000000001, 0.0, 0.0]
-        probs = [0.33, 0.33, 0.33]
-        self.assertRaises(ValueError, get_positional_probabilities, freqs, probs, 50)
-
-    def test_sca_input_validation(self):
-        """sca_input_validation: handles sca-specific validation steps"""
-        # moltype != PROTEIN makes background freqs required
-        self.assertRaises(ValueError, sca_input_validation, self.dna_aln, cutoff=0.4)
-        self.assertRaises(ValueError, sca_input_validation, self.rna_aln, cutoff=0.4)
-        # no cutoff -> ValueError
-        self.assertRaises(ValueError, sca_input_validation, self.protein_aln)
-        # low cutoff -> ValueError
-        self.assertRaises(
-            ValueError, sca_input_validation, self.protein_aln, cutoff=-0.001
-        )
-        # high cutoff -> ValueError
-        self.assertRaises(
-            ValueError, sca_input_validation, self.protein_aln, cutoff=1.001
-        )
-        # good cut-off -> no error
-        sca_input_validation(self.protein_aln, cutoff=0.50)
-        sca_input_validation(self.protein_aln, cutoff=0.0)
-        sca_input_validation(self.protein_aln, cutoff=1.0)
-
-        # only bad alphabet -> ValueError
-        self.assertRaises(
-            ValueError, sca_input_validation, self.dna_aln, cutoff=0.5, alphabet="ABC"
-        )
-        # only bad background_freqs -> ValueError
-        self.assertRaises(
-            ValueError,
-            sca_input_validation,
-            self.dna_aln,
-            cutoff=0.5,
-            background_freqs={"A": 0.25, "C": 0.75},
-        )
-        # incompatible background_freqs & alphabet provided -> ValueError
-        self.assertRaises(
-            ValueError,
-            sca_input_validation,
-            self.dna_aln,
-            cutoff=0.5,
-            alphabet="ABC",
-            background_freqs={"A": 0.25, "C": 0.75},
-        )
-
-        # default alphabet, background_freqs -> no error
-        sca_input_validation(self.protein_aln, cutoff=0.50)
-        # compatible non-default alphabet, backgorund_freqs -> no error
-        sca_input_validation(
-            self.dna_aln, cutoff=0.50, alphabet="A", background_freqs={"A": 1.0}
-        )
-
-        # Note: don't need a full set of tests of validate_alphabet here --
-        # it's tested on it's own.
-
-    def test_sca_pair_no_error(self):
-        """sca_pair: returns w/o error"""
-        r = sca_pair(
-            self.dna_aln,
-            1,
-            0,
-            cutoff=0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        r = coevolve_pair(
-            sca_pair,
-            self.dna_aln,
-            1,
-            0,
-            cutoff=0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-
-    def test_sca_pair_return_all(self):
-        """sca_pair: handles return_all by returning lists of proper length"""
-        # two allowed_perturbations
-        a = "ACGT"
-        aln = ArrayAlignment(
-            data={0: "AA", 1: "AC", 2: "CG", 3: "CT", 4: "TA"}, moltype=DNA
-        )
-        actual = sca_pair(
-            aln,
-            0,
-            1,
-            cutoff=0.33,
-            return_all=True,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        self.assertEqual(len(actual), 2)
-        self.assertEqual(actual[0][0], "A")
-        self.assertEqual(actual[1][0], "C")
-        # one allowed_perturbations
-        a = "ACGT"
-        aln = ArrayAlignment(
-            data={0: "AA", 1: "AC", 2: "AG", 3: "CT", 4: "TA"}, moltype=DNA
-        )
-        actual = sca_pair(
-            aln,
-            0,
-            1,
-            0.33,
-            return_all=True,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        self.assertEqual(len(actual), 1)
-        self.assertEqual(actual[0][0], "A")
-        # zero allowed_perturbations
-        actual = sca_pair(
-            aln,
-            0,
-            1,
-            1.0,
-            return_all=True,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        # expected = [('A',-1),('C',-1)]
-        expected = DEFAULT_NULL_VALUE
-        assert_allclose(actual, expected)
-
-        # pos1 == pos2
-        actual = sca_pair(
-            aln,
-            0,
-            0,
-            0.33,
-            return_all=True,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-
-        actual = list(zip(*actual))
-        expected = list(zip(*[("A", 2.40381185618)]))
-        assert_equal(actual[0], expected[0])
-        assert_allclose(actual[1], expected[1])
-
-    def test_sca_pair_error(self):
-        """sca_pair:returns w/ error when appropriate"""
-        a = "ACGT"
-        # pos1 out of range
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            100,
-            1,
-            cutoff=0.50,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        # pos2 out of range
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            0,
-            100,
-            cutoff=0.50,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        # pos1 & pos2 out of range
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            100,
-            100,
-            cutoff=0.50,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-
-        # bad cut-off
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            0,
-            1,
-            cutoff=1.2,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-
-        # incompatible alphabet and background freqs
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            0,
-            1,
-            cutoff=0.2,
-            alphabet=a,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            sca_pair,
-            self.dna_aln,
-            0,
-            1,
-            cutoff=0.2,
-            alphabet="ACGTBC",
-            background_freqs=self.dna_base_freqs,
-        )
-
-    def test_sca_position_no_error(self):
-        """sca_position: returns w/o error"""
-        r = sca_position(
-            self.dna_aln, 1, 0.50, alphabet="ACGT", background_freqs=self.dna_base_freqs
-        )
-        # sanity check -- coupling w/ self
-        assert_allclose(r[1], 3.087, 0.01)
-        r = sca_position(
-            self.dna_aln_gapped,
-            1,
-            0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        assert_allclose(r[1], 3.387, 0.01)
-
-        # same tests, but called via coevolve_position
-        r = coevolve_position(
-            sca_position,
-            self.dna_aln,
-            1,
-            cutoff=0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        # sanity check -- coupling w/ self
-        assert_allclose(r[1], 3.087, 0.01)
-        r = coevolve_position(
-            sca_position,
-            self.dna_aln_gapped,
-            1,
-            cutoff=0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        # sanity check -- coupling w/ self
-        assert_allclose(r[1], 3.387, 0.01)
-
-    def test_sca_position_error(self):
-        """sca_position: returns w/ error when appropriate"""
-        a = "ACGT"
-        # position out of range
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            100,
-            cutoff=0.50,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-        # bad cutoff
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            1,
-            cutoff=-8.2,
-            alphabet=a,
-            background_freqs=self.dna_base_freqs,
-        )
-
-        # incompatible alphabet and background freqs
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            0,
-            cutoff=0.2,
-            alphabet=a,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            0,
-            cutoff=0.2,
-            alphabet="ACGTBC",
-            background_freqs=self.dna_base_freqs,
-        )
-
-    def test_sca_position_returns_same_as_sca_pair(self):
-        """sca_position: returns same as sca_pair called on each pos"""
-        expected = []
-        for i in range(len(self.dna_aln)):
-            expected.append(
-                sca_pair(
-                    self.dna_aln,
-                    1,
-                    i,
-                    0.50,
-                    alphabet="ACGT",
-                    background_freqs=self.dna_base_freqs,
-                )
-            )
-        actual = sca_position(
-            self.dna_aln, 1, 0.50, alphabet="ACGT", background_freqs=self.dna_base_freqs
-        )
-        assert_allclose(actual, expected)
-        # change some of the defaults to make sure they make it through
-        bg_freqs = {"A": 0.50, "C": 0.50}
-        expected = []
-        for i in range(len(self.dna_aln)):
-            expected.append(
-                sca_pair(
-                    self.dna_aln,
-                    1,
-                    i,
-                    0.50,
-                    alphabet="AC",
-                    null_value=52.0,
-                    scaled_aln_size=20,
-                    background_freqs=bg_freqs,
-                )
-            )
-        actual = sca_position(
-            self.dna_aln,
-            1,
-            0.50,
-            alphabet="AC",
-            null_value=52.0,
-            scaled_aln_size=20,
-            background_freqs=bg_freqs,
-        )
-        assert_allclose(actual, expected)
-
-    def test_sca_alignment_no_error(self):
-        """sca_alignment: returns w/o error"""
-        r = sca_alignment(
-            self.dna_aln, 0.50, alphabet="ACGT", background_freqs=self.dna_base_freqs
-        )
-        # sanity check -- coupling w/ self
-        assert_allclose(r[0][0], 2.32222608171)
-
-        # same test, but called via coevolve_alignment
-        r = coevolve_alignment(
-            sca_alignment,
-            self.dna_aln,
-            cutoff=0.50,
-            alphabet="ACGT",
-            background_freqs=self.dna_base_freqs,
-        )
-        # sanity check -- coupling w/ self
-        assert_allclose(r[0][0], 2.32222608171)
-
-    def test_sca_alignment_error(self):
-        """sca_alignment: returns w/ error when appropriate"""
-        a = "ACGT"
-        # incompatible alphabet and background freqs
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            0,
-            cutoff=0.2,
-            alphabet=a,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            sca_position,
-            self.dna_aln,
-            0,
-            cutoff=0.2,
-            alphabet="ACGTBC",
-            background_freqs=self.dna_base_freqs,
-        )
-
-    def test_sca_alignment_returns_same_as_sca_position(self):
-        """sca_alignment: returns same as sca_position on every position"""
-        expected = []
-        for i in range(len(self.dna_aln)):
-            expected.append(
-                sca_position(
-                    self.dna_aln,
-                    i,
-                    0.50,
-                    alphabet="ACGT",
-                    background_freqs=self.dna_base_freqs,
-                )
-            )
-        actual = sca_alignment(
-            self.dna_aln, 0.50, alphabet="ACGT", background_freqs=self.dna_base_freqs
-        )
-        assert_allclose(actual, expected)
-        # change some of the defaults to make sure they make it through
-        bg_freqs = {"A": 0.50, "C": 0.50}
-        expected = []
-        for i in range(len(self.dna_aln)):
-            expected.append(
-                sca_position(
-                    self.dna_aln,
-                    i,
-                    0.50,
-                    alphabet="AC",
-                    null_value=52.0,
-                    scaled_aln_size=20,
-                    background_freqs=bg_freqs,
-                )
-            )
-        actual = sca_alignment(
-            self.dna_aln,
-            0.50,
-            alphabet="AC",
-            null_value=52.0,
-            scaled_aln_size=20,
-            background_freqs=bg_freqs,
-        )
-        assert_allclose(actual, expected)
-
-    def test_sca_pair_gpcr(self):
-        """sca_pair: reproduces several GPCR data from Suel et al., 2003"""
-        assert_allclose(sca_pair(self.gpcr_aln, 295, 18, 0.32), 0.12, 0.1)
-        assert_allclose(sca_pair(self.gpcr_aln, 295, 124, 0.32), 1.86, 0.1)
-        assert_allclose(sca_pair(self.gpcr_aln, 295, 304, 0.32), 0.3, 0.1)
-        # covariation w/ self
-        assert_allclose(sca_pair(self.gpcr_aln, 295, 295, 0.32), 7.70358628)
-
-    def test_sca_position_gpcr(self):
-        """sca_position: reproduces several GPCR data from Suel et al., 2003"""
-        if not self.run_slow_tests:
-            return
-        vector = sca_position(self.gpcr_aln, 295, 0.32)
-        assert_allclose(vector[18], 0.12, 0.1)
-        assert_allclose(vector[124], 1.86, 0.1)
-        assert_allclose(vector[304], 0.3, 0.1)
-        # covariation w/ self == null_value
-        assert_allclose(vector[295], nan)
-
-    def test_ltm_to_symmetric(self):
-        """ltm_to_symmetric: making ltm matrices symmetric functions"""
-        m = arange(9).reshape((3, 3))
-        expected = [[0, 3, 6], [3, 4, 7], [6, 7, 8]]
-        assert_equal(ltm_to_symmetric(m), expected)
-        # non-square matrices not supported
-        self.assertRaises(AssertionError, ltm_to_symmetric, arange(10).reshape(5, 2))
-        self.assertRaises(AssertionError, ltm_to_symmetric, arange(10).reshape(2, 5))
-
-    def test_merge_alignments(self):
-        """merging alignments of same moltype functions as expected"""
-        # PROTEIN
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1": "EF", "2": "EG"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(data={"1": "ACEF", "2": "ADEG"}, moltype=PROTEIN)
-        actual = merge_alignments(aln1, aln2)
-        self.assertEqual(actual, combined_aln)
-        self.assertEqual(actual.moltype, PROTEIN)
-        # RNA
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AU"}, moltype=RNA)
-        aln2 = ArrayAlignment(data={"1": "GG", "2": "UG"}, moltype=RNA)
-        combined_aln = ArrayAlignment(data={"1": "ACGG", "2": "AUUG"}, moltype=RNA)
-        actual = merge_alignments(aln1, aln2)
-        self.assertEqual(actual, combined_aln)
-        self.assertEqual(actual.moltype, RNA)
-        # DNA
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AT"}, moltype=DNA)
-        aln2 = ArrayAlignment(data={"1": "GG", "2": "TG"}, moltype=DNA)
-        combined_aln = ArrayAlignment(data={"1": "ACGG", "2": "ATTG"}, moltype=DNA)
-        actual = merge_alignments(aln1, aln2)
-        self.assertEqual(actual, combined_aln)
-        self.assertEqual(actual.moltype, DNA)
-
-    def test_merge_alignments_ignores_id_following_plus(self):
-        """merge_alignments ignores all seq id characters after '+'"""
-        aln1 = ArrayAlignment(data={"1+a": "AC", "2+b": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1 + c": "EFW", "2 + d": "EGY"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(
-            data={"1": "ACEFW", "2": "ADEGY"}, moltype=PROTEIN
-        )
-        self.assertEqual(merge_alignments(aln1, aln2), combined_aln)
-        # not all ids have a +
-        aln1 = ArrayAlignment(data={"1": "AC", "2+b": "AD"}, moltype=PROTEIN)
-        aln2 = ArrayAlignment(data={"1+c": "EFW", "2": "EGY"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(
-            data={"1": "ACEFW", "2": "ADEGY"}, moltype=PROTEIN
-        )
-        self.assertEqual(merge_alignments(aln1, aln2), combined_aln)
-
-    def test_merge_alignments_different_moltype(self):
-        """merging alignments of different moltype functions as expected"""
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AU"}, moltype=RNA)
-        aln2 = ArrayAlignment(data={"1": "EF", "2": "EG"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(data={"1": "ACEF", "2": "AUEG"})
-        self.assertEqual(merge_alignments(aln1, aln2), combined_aln)
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AT"}, moltype=DNA)
-        aln2 = ArrayAlignment(data={"1": "EF", "2": "EG"}, moltype=PROTEIN)
-        combined_aln = ArrayAlignment(data={"1": "ACEF", "2": "ATEG"})
-        self.assertEqual(merge_alignments(aln1, aln2), combined_aln)
-        aln1 = ArrayAlignment(data={"1": "AC", "2": "AT"}, moltype=DNA)
-        aln2 = ArrayAlignment(data={"1": "UC", "2": "UG"}, moltype=RNA)
-        combined_aln = ArrayAlignment(data={"1": "ACUC", "2": "ATUG"})
-        self.assertEqual(merge_alignments(aln1, aln2), combined_aln)
-
-    def test_n_random_seqs(self):
-        """n_random_seqs: functions as expected"""
-        aln1 = make_aligned_seqs(
-            data=list(zip(list("abcd"), ["AA", "AC", "DD", "GG"])),
-            moltype=PROTEIN,
-            array_align=True,
-        )
-        # Number of returned sequences correct
-        self.assertEqual(n_random_seqs(aln1, 1).num_seqs, 1)
-        self.assertEqual(n_random_seqs(aln1, 2).num_seqs, 2)
-        self.assertEqual(n_random_seqs(aln1, 3).num_seqs, 3)
-        self.assertEqual(n_random_seqs(aln1, 4).num_seqs, 4)
-
-        # Sequences are correct
-        new_aln = n_random_seqs(aln1, 3)
-        self.assertEqual(new_aln.num_seqs, 3)
-        for n in new_aln.names:
-            self.assertEqual(new_aln.get_seq(n), aln1.get_seq(n))
-
-        # Objects are equal when all are requested
-        self.assertEqual(n_random_seqs(aln1, 4), aln1)
-
-        # Objects are not equal when subset are requested
-        self.assertNotEqual(n_random_seqs(aln1, 3), aln1)
-
-        # In 1000 iterations, we get at least one different alignment --
-        # this tests the random selection
-        different = False
-        new_aln = n_random_seqs(aln1, 2)
-        for i in range(1000):
-            new_aln2 = n_random_seqs(aln1, 2)
-            if new_aln != new_aln2:
-                different = True
-                break
-        self.assertTrue(different)
-
-
-class AncestorCoevolve(TestCase):
-    """Tests of the ancestral state method for detecting coevolution"""
-
-    def setUp(self):
-        """ """
-        # t1, ancestral_states1, and aln1_* are used to test that when
-        # alternate seqs are used with the same tree and ancestral_states,
-        # the results vary when appropriate
-        self.t1 = make_tree(
-            treestring="((A:0.5,B:0.5):0.5,(C:0.5,(D:0.5,E:0.5):0.5):0.5);"
-        )
-        self.ancestral_states1 = ArrayAlignment(
-            data={"root": "AAA", "edge.0": "AAA", "edge.1": "AAA", "edge.2": "AAA"},
-            moltype=PROTEIN,
-        )
-        self.ancestral_states1_w_gaps = ArrayAlignment(
-            data={"root": "AAA", "edge.0": "AAA", "edge.1": "A-A", "edge.2": "AA-"},
-            moltype=PROTEIN,
-        )
-
-        # no correlated changes count
-        self.aln1_1 = ArrayAlignment(
-            data={"A": "AAC", "B": "AAD", "C": "AAA", "D": "AAE", "E": "AFA"},
-            moltype=PROTEIN,
-        )
-        # 1 correlated change count
-        self.aln1_2 = ArrayAlignment(
-            data={"A": "AAC", "B": "AAD", "C": "AAA", "D": "AEE", "E": "AFF"},
-            moltype=PROTEIN,
-        )
-        # 1 different correlated change count
-        self.aln1_3 = ArrayAlignment(
-            data={"A": "AAC", "B": "AAD", "C": "AAA", "D": "AGE", "E": "AFH"},
-            moltype=PROTEIN,
-        )
-        # 3 correlated change counts
-        self.aln1_4 = ArrayAlignment(
-            data={"A": "AAC", "B": "AGD", "C": "AAA", "D": "AGE", "E": "AFH"},
-            moltype=PROTEIN,
-        )
-        # 8 correlated change counts
-        self.aln1_5 = ArrayAlignment(
-            data={"A": "YYC", "B": "HGD", "C": "AAA", "D": "AGE", "E": "AFH"},
-            moltype=PROTEIN,
-        )
-        self.aln1_w_gaps = ArrayAlignment(
-            data={"A": "AAC", "B": "AAD", "C": "AAA", "D": "AG-", "E": "A-H"},
-            moltype=PROTEIN,
-        )
-
-        # t2, ancestral_states2_*, and aln2 are used to test that when
-        # alternate ancestral states are used with the same aln and tree,
-        # the results vary when appropriate
-        self.t2 = make_tree(treestring="(A:0.5,B:0.5,C:0.5);")
-        self.ancestral_states2_1 = ArrayAlignment(data={"root": "AA"}, moltype=PROTEIN)
-        self.ancestral_states2_2 = ArrayAlignment(data={"root": "CC"}, moltype=PROTEIN)
-        self.ancestral_states2_3 = ArrayAlignment(data={"root": "EF"}, moltype=PROTEIN)
-        self.aln2 = ArrayAlignment(
-            data={"A": "AA", "B": "CC", "C": "CA"}, moltype=PROTEIN
-        )
-
-        # t3_*, ancestral_states3, and aln3 are used to test that when
-        # alternate trees are used with the same aln and ancestral_states,
-        # the results vary when appropriate
-        self.t3_1 = make_tree(treestring="(A:0.5,(B:0.5,C:0.5):0.5);")
-        self.t3_2 = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        self.ancestral_states3 = ArrayAlignment(
-            data={"root": "CC", "edge.0": "AD"}, moltype=PROTEIN
-        )
-        self.aln3 = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN
-        )
-
-    def test_validate_ancestral_seqs_invalid(self):
-        """validate_ancestral_seqs: ValueError on incompatible anc. seqs & tree"""
-        # edge missing
-        aln = ArrayAlignment(data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN)
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(data={"root": "AA"}, moltype=PROTEIN),
-        )
-        # root missing
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(data={"edge.0": "AA"}, moltype=PROTEIN),
-        )
-        # correct numSeqs but wrong names
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "edge.1": "AA"}, moltype=PROTEIN
-            ),
-        )
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"r": "AA", "edge.0": "AA"}, moltype=PROTEIN
-            ),
-        )
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(data={"r": "AA", "e": "AA"}, moltype=PROTEIN),
-        )
-        # different tree: invalid
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        self.assertRaises(
-            ValueError,
-            validate_ancestral_seqs,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "e": "AA", "edge.1": "AA"}, moltype=PROTEIN
-            ),
-        )
-
-    def test_validate_ancestral_seqs_valid(self):
-        """validate_ancestral_seqs: does nothing on compatible anc. seqs & tree"""
-        aln = ArrayAlignment(data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN)
-        # valid data -> no error
-        validate_ancestral_seqs(
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "edge.0": "AA"}, moltype=PROTEIN
-            ),
-        )
-        # different tree: valid
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        validate_ancestral_seqs(
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "edge.0": "AA", "edge.1": "AA"}, moltype=PROTEIN
-            ),
-        )
-
-    def test_ancestral_states_input_validation(self):
-        """ancestral_states_input_validation: all validation steps performed"""
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        # incompatible tree and ancestral states (more thorough testing in
-        # test_validate_ancestral_seqs)
-        self.assertRaises(
-            ValueError,
-            ancestral_states_input_validation,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);"),
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "e": "AA", "edge.1": "AA"}, moltype=PROTEIN
-            ),
-        )
-        # no tree provided
-        self.assertRaises(
-            ValueError,
-            ancestral_states_input_validation,
-            aln,
-            ancestral_seqs=ArrayAlignment(
-                data={"root": "AA", "e": "AA", "edge.1": "AA"}, moltype=PROTEIN
-            ),
-        )
-        # incompatible tree and alignment (more tests in test_validate_tree)
-        aln = ArrayAlignment(data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN)
-        self.assertRaises(
-            ValueError,
-            ancestral_states_input_validation,
-            aln,
-            tree=make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);"),
-        )
-
-    def test_validate_tree_valid(self):
-        """validate_tree: does nothing on compatible tree and aln"""
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);")
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        validate_tree(aln, t)
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN)
-        validate_tree(aln, t)
-
-    def test_validate_tree_invalid(self):
-        """validate_tree: raises ValueError on incompatible tree and aln"""
-        # different scale tree and aln
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        self.assertRaises(ValueError, validate_tree, aln, t)
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,D:0.5):0.5);")
-        aln = ArrayAlignment(data={"A": "AC", "B": "CA", "C": "CC"}, moltype=PROTEIN)
-        self.assertRaises(ValueError, validate_tree, aln, t)
-        # same scale tree and aln, but different names
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,(C:0.5,Dee:0.5):0.5);")
-        aln = ArrayAlignment(
-            data={"A": "AC", "B": "CA", "C": "CC", "D": "DD"}, moltype=PROTEIN
-        )
-        self.assertRaises(ValueError, validate_tree, aln, t)
-
-    def test_get_ancestral_seqs(self):
-        """get_ancestral_seqs: returns valid collection of ancestral seqs"""
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        expected = ArrayAlignment(data={"root": "AA", "edge.0": "AA"}, moltype=PROTEIN)
-        self.assertEqual(get_ancestral_seqs(aln, t, optimise=False), expected)
-        t = make_tree(treestring="(A:0.5,B:0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        expected = ArrayAlignment(data={"root": "AA"}, moltype=PROTEIN)
-        self.assertEqual(get_ancestral_seqs(aln, t, optimise=False), expected)
-
-        t = make_tree(
-            treestring="(((A1:0.5,A2:0.5):0.5,B:0.5):0.5,\
-            (C:0.5,D:0.5):0.5);"
-        )
-        aln = ArrayAlignment(
-            data={"A1": "AD", "A2": "AD", "B": "AC", "C": "AC", "D": "AC"},
-            moltype=PROTEIN,
-        )
-        expected = ArrayAlignment(
-            data={"root": "AC", "edge.0": "AD", "edge.1": "AC", "edge.2": "AC"},
-            moltype=PROTEIN,
-        )
-        self.assertEqual(get_ancestral_seqs(aln, t, optimise=False), expected)
-
-    def test_get_ancestral_seqs_handles_gaps(self):
-        """get_ancestral_seqs: handles gaps"""
-        # gaps handled OK
-        t = make_tree(treestring="(A:0.5,B:0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "A-", "B": "AA", "C": "AA"}, moltype=PROTEIN)
-        expected = ArrayAlignment(data={"root": "AA"}, moltype=PROTEIN)
-        self.assertEqual(get_ancestral_seqs(aln, t, optimise=False), expected)
-
-    def test_get_ancestral_seqs_handles_ambiguous_residues(self):
-        """get_ancestral_seqs: handles ambiguous residues"""
-        # Non-canonical residues handled OK
-        t = make_tree(treestring="(A:0.5,B:0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AX", "B": "Z-", "C": "BC"}, moltype=PROTEIN)
-        actual = get_ancestral_seqs(aln, t, optimise=False)
-        self.assertEqual(len(actual), 2)
-        self.assertEqual(actual.num_seqs, 1)
-
-    def test_ancestral_state_alignment_handles_ancestral_state_calc(self):
-        """ancestral_state_alignment: functions when calc'ing ancestral states"""
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        assert_equal(ancestral_state_alignment(aln, t), [[0, 0], [0, 2]])
-        # non-bifurcating tree
-        t = make_tree(treestring="(A:0.5,B:0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        assert_equal(ancestral_state_alignment(aln, t), [[0, 0], [0, 2]])
-
-    def test_ancestral_state_position_handles_ancestral_state_calc(self):
-        """ancestral_state_position: functions when calc'ing ancestral states"""
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        assert_equal(ancestral_state_position(aln, t, 0), [0, 0])
-        assert_equal(ancestral_state_position(aln, t, 1), [0, 2])
-
-    def test_ancestral_state_pair_handles_ancestral_state_calc(self):
-        """ancestral_state_position: functions when calc'ing ancestral states"""
-        t = make_tree(treestring="((A:0.5,B:0.5):0.5,C:0.5);")
-        aln = ArrayAlignment(data={"A": "AA", "B": "AA", "C": "AC"}, moltype=PROTEIN)
-        self.assertEqual(ancestral_state_pair(aln, t, 0, 0), 0)
-        self.assertEqual(ancestral_state_pair(aln, t, 0, 1), 0)
-        self.assertEqual(ancestral_state_pair(aln, t, 1, 1), 2)
-        self.assertEqual(ancestral_state_pair(aln, t, 1, 0), 0)
-
-    def test_ancestral_state_alignment_no_error_on_gap(self):
-        """ancestral_state_alignment: return w/o error with gapped seqs"""
-        ancestral_state_alignment(self.aln1_w_gaps, self.t1, self.ancestral_states1)
-        ancestral_state_alignment(self.aln1_1, self.t1, self.ancestral_states1_w_gaps)
-
-    def test_ancestral_state_methods_handle_bad_ancestor_aln(self):
-        """ancestral state methods raise error on bad ancestor alignment"""
-        # bad length and seq names
-        self.assertRaises(
-            ValueError,
-            coevolve_alignment,
-            ancestral_state_alignment,
-            self.aln1_2,
-            tree=self.t1,
-            ancestral_seqs=self.ancestral_states2_1,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            ancestral_state_position,
-            self.aln1_2,
-            0,
-            tree=self.t1,
-            ancestral_seqs=self.ancestral_states2_1,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            ancestral_state_pair,
-            self.aln1_2,
-            0,
-            1,
-            tree=self.t1,
-            ancestral_seqs=self.ancestral_states2_1,
-        )
-        # bad seq names
-        self.assertRaises(
-            ValueError,
-            coevolve_alignment,
-            ancestral_state_alignment,
-            self.aln1_2,
-            tree=self.t1,
-            ancestral_seqs=self.aln1_2,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            ancestral_state_position,
-            self.aln1_2,
-            0,
-            tree=self.t1,
-            ancestral_seqs=self.aln1_2,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            ancestral_state_pair,
-            self.aln1_2,
-            0,
-            1,
-            tree=self.t1,
-            ancestral_seqs=self.aln1_2,
-        )
-        # bad length
-        a = ArrayAlignment(
-            data={"root": "AC", "edge.0": "AD", "edge.1": "AA", "edge.2": "EE"}
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_alignment,
-            ancestral_state_alignment,
-            self.aln1_2,
-            tree=self.t1,
-            ancestral_seqs=a,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            ancestral_state_position,
-            self.aln1_2,
-            0,
-            tree=self.t1,
-            ancestral_seqs=a,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            ancestral_state_pair,
-            self.aln1_2,
-            0,
-            1,
-            tree=self.t1,
-            ancestral_seqs=a,
-        )
-
-    def test_ancestral_states_methods_handle_bad_position_numbers(self):
-        """coevolve_* w/ ancestral_states raise ValueError on bad position"""
-
-        self.assertRaises(
-            ValueError,
-            coevolve_position,
-            ancestral_state_position,
-            self.aln1_2,
-            42,
-            tree=self.t1,
-            ancestral_states=self.ancestral_states2_1,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            ancestral_state_pair,
-            self.aln1_2,
-            0,
-            42,
-            tree=self.t1,
-            ancestral_states=self.ancestral_states2_1,
-        )
-        self.assertRaises(
-            ValueError,
-            coevolve_pair,
-            ancestral_state_pair,
-            self.aln1_2,
-            42,
-            0,
-            tree=self.t1,
-            ancestral_states=self.ancestral_states2_1,
-        )
-
-    def test_ancestral_state_alignment_non_bifurcating_tree(self):
-        """ancestral_state_alignment: handles non-bifurcating tree correctly"""
-        assert_equal(
-            ancestral_state_alignment(self.aln2, self.t2, self.ancestral_states2_3),
-            [[9, 9], [9, 9]],
-        )
-
-    def test_ancestral_state_alignment_bifurcating_tree(self):
-        """ancestral_state_alignment: handles bifurcating tree correctly"""
-        assert_allclose(
-            ancestral_state_alignment(self.aln1_5, self.t1, self.ancestral_states1),
-            [[5, 5, 5], [5, 11.6, 11.6], [5, 11.6, 11.6]],
-        )
-
-    def test_ancestral_state_alignment_ancestor_difference(self):
-        """ancestral_state_alignment: different ancestor -> different result"""
-        # ancestral_states2_1
-        assert_equal(
-            ancestral_state_alignment(self.aln2, self.t2, self.ancestral_states2_1),
-            [[5, 2], [2, 2]],
-        )
-        # ancestral_states2_2
-        assert_equal(
-            ancestral_state_alignment(self.aln2, self.t2, self.ancestral_states2_2),
-            [[2, 2], [2, 5]],
-        )
-        # ancestral_states2_3
-        assert_equal(
-            ancestral_state_alignment(self.aln2, self.t2, self.ancestral_states2_3),
-            [[9, 9], [9, 9]],
-        )
-
-    def test_ancestral_state_position_ancestor_difference(self):
-        """ancestral_state_position: difference_ancestor -> different result"""
-        # ancestral_states2_1
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 0, self.ancestral_states2_1),
-            [5, 2],
-        )
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 1, self.ancestral_states2_1),
-            [2, 2],
-        )
-        # ancestral_states2_2
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 0, self.ancestral_states2_2),
-            [2, 2],
-        )
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 1, self.ancestral_states2_2),
-            [2, 5],
-        )
-        # ancestral_states2_3
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 0, self.ancestral_states2_3),
-            [9, 9],
-        )
-        assert_equal(
-            ancestral_state_position(self.aln2, self.t2, 1, self.ancestral_states2_3),
-            [9, 9],
-        )
-
-    def test_ancestral_state_pair_ancestor_difference(self):
-        """ancestral_state_pair: difference_ancestor -> different result"""
-        # ancestral_states2_1
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 0, self.ancestral_states2_1), 5
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 1, self.ancestral_states2_1), 2
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 1, self.ancestral_states2_1), 2
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 0, self.ancestral_states2_1), 2
-        )
-        # ancestral_states2_2
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 0, self.ancestral_states2_2), 2
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 1, self.ancestral_states2_2), 2
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 1, self.ancestral_states2_2), 5
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 0, self.ancestral_states2_2), 2
-        )
-        # ancestral_states2_3
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 0, self.ancestral_states2_3), 9
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 0, 1, self.ancestral_states2_3), 9
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 1, self.ancestral_states2_3), 9
-        )
-        self.assertEqual(
-            ancestral_state_pair(self.aln2, self.t2, 1, 0, self.ancestral_states2_3), 9
-        )
-
-    def test_ancestral_state_alignment_tree_difference(self):
-        """ancestral_state_alignment: different result on different tree"""
-        # tree: t3_1
-        assert_equal(
-            ancestral_state_alignment(self.aln3, self.t3_1, self.ancestral_states3),
-            [[7, 5], [5, 5]],
-        )
-        # tree: t3_2
-        assert_equal(
-            ancestral_state_alignment(self.aln3, self.t3_2, self.ancestral_states3),
-            [[2, 2], [2, 5]],
-        )
-
-    def test_ancestral_state_position_tree_difference(self):
-        """ancestral_state_position: different result on different tree"""
-        # tree: t3_1
-        assert_equal(
-            ancestral_state_position(self.aln3, self.t3_1, 0, self.ancestral_states3),
-            [7, 5],
-        )
-        assert_equal(
-            ancestral_state_position(self.aln3, self.t3_1, 1, self.ancestral_states3),
-            [5, 5],
-        )
-        # tree: t3_2
-        assert_equal(
-            ancestral_state_position(self.aln3, self.t3_2, 0, self.ancestral_states3),
-            [2, 2],
-        )
-        assert_equal(
-            ancestral_state_position(self.aln3, self.t3_2, 1, self.ancestral_states3),
-            [2, 5],
-        )
-
-    def test_ancestral_state_pair_tree_difference(self):
-        """ancestral_state_pair: different result on different tree"""
-        # tree: t3_1
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_1, 0, 1, self.ancestral_states3), 5
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_1, 1, 0, self.ancestral_states3), 5
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_1, 0, 0, self.ancestral_states3), 7
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_1, 1, 1, self.ancestral_states3), 5
-        )
-        # tree: t3_2
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_2, 0, 1, self.ancestral_states3), 2
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_2, 1, 0, self.ancestral_states3), 2
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_2, 0, 0, self.ancestral_states3), 2
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln3, self.t3_2, 1, 1, self.ancestral_states3), 5
-        )
-
-    def test_ancestral_state_alignment_aln_difference(self):
-        """ancestral_state_alignment: difference aln -> different result"""
-        expected = [[0, 0, 0], [0, 2, 0], [0, 0, 7.8]]
-        actual = ancestral_state_alignment(self.aln1_1, self.t1, self.ancestral_states1)
-        assert_allclose(actual, expected)
-
-        expected = [[5, 5, 5], [5, 11.6, 11.6], [5, 11.6, 11.6]]
-        actual = ancestral_state_alignment(self.aln1_5, self.t1, self.ancestral_states1)
-        assert_allclose(actual, expected)
-
-    def test_ancestral_state_position_aln_difference(self):
-        """ancestral_state_position: difference aln -> different result"""
-
-        expected = [0, 0, 0]
-        actual = ancestral_state_position(
-            self.aln1_1, self.t1, 0, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-        expected = [0, 2, 0]
-        actual = ancestral_state_position(
-            self.aln1_1, self.t1, 1, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-        expected = [0, 0, 7.8]
-        actual = ancestral_state_position(
-            self.aln1_1, self.t1, 2, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-
-        expected = [5, 5, 5]
-        actual = ancestral_state_position(
-            self.aln1_5, self.t1, 0, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-        expected = [5, 11.6, 11.6]
-        actual = ancestral_state_position(
-            self.aln1_5, self.t1, 1, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-        expected = [5, 11.6, 11.6]
-        actual = ancestral_state_position(
-            self.aln1_5, self.t1, 2, self.ancestral_states1
-        )
-        assert_allclose(actual, expected)
-
-    def test_ancestral_state_pair_aln_difference(self):
-        """acestral_state_pair: different aln -> different result"""
-        assert_allclose(
-            ancestral_state_pair(self.aln1_1, self.t1, 0, 0, self.ancestral_states1), 0
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_1, self.t1, 1, 1, self.ancestral_states1), 2
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_1, self.t1, 2, 2, self.ancestral_states1),
-            7.8,
-        )
-
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 0, 1, self.ancestral_states1), 5
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 0, 2, self.ancestral_states1), 5
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 1, 2, self.ancestral_states1),
-            11.6,
-        )
-
-    def test_ancestral_state_pair_symmetry(self):
-        """ancestral_state_pair: value[i,j] == value[j,i]"""
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 0, 1, self.ancestral_states1),
-            ancestral_state_pair(self.aln1_5, self.t1, 1, 0, self.ancestral_states1),
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 0, 2, self.ancestral_states1),
-            ancestral_state_pair(self.aln1_5, self.t1, 2, 0, self.ancestral_states1),
-        )
-        assert_allclose(
-            ancestral_state_pair(self.aln1_5, self.t1, 1, 2, self.ancestral_states1),
-            ancestral_state_pair(self.aln1_5, self.t1, 2, 1, self.ancestral_states1),
-        )
-
-    def est_ancestral_state_methods_handle_alt_null_value(self):
-        """ancetral state methods handle non-default null value"""
-        # need to rewrite a test of this -- right now there's no way to get
-        # null values into the ancestral states result, but that will change
-        # when I fix the exclude handling
-        pass
-
-
-# following are support funcs for ResampledMiTests
-
-
-def make_freqs(c12):
-    c1, c2 = CategoryCounter(), CategoryCounter()
-    for a, b in c12.expand():
-        c1[a] += 1
-        c2[b] += 1
-    return c1, c2
-
-
-def make_sample(freqs):
-    d = []
-    for i, s in enumerate(freqs.expand()):
-        d += [("s%d" % i, s)]
-    return make_aligned_seqs(data=d)
-
-
-def _calc_mi():
-    """one mutual info hand calc"""
-    from math import log
-
-    i = 37 / 42 * -log(37 / 42, 2) - (5 / 42 * log(5 / 42, 2))
-    j = 39 / 42 * -log(39 / 42, 2) - (3 / 42 * log(3 / 42, 2))
-    k = (
-        34 / 42 * -log(34 / 42, 2)
-        - (3 / 42 * log(3 / 42, 2))
-        - (5 / 42 * log(5 / 42, 2))
+def calc_mi_pair(alignment, pos1, pos2, normalised=False):
+    """Calculate mutual information between two positions in an alignment"""
+    num_states = len(alignment.moltype.alphabet)
+    data = alignment.array_seqs[:, [pos1, pos2]]
+    valid = data[(data < num_states).all(axis=1), :]
+    col1, col2 = valid.T
+    counts_1 = CategoryCounter(col1)
+    counts_2 = CategoryCounter(col2)
+    counts_12 = CategoryCounter([tuple(pr) for pr in valid])
+    stat = counts_1.entropy + counts_2.entropy - counts_12.entropy
+    if normalised:
+        stat /= counts_12.entropy
+    return stat
+
+
+@pytest.fixture(params=["AAAAA", "ACGT", "AACC", "ACGNNGG"])
+def column(request):
+    return get_moltype("dna", new_type=True).alphabet.to_indices(request.param)
+
+
+# revised code tests
+def test_vector_entropy(column):
+    orig = CategoryCounter(column[column < 4])
+    counts = c3_coevo._count_states(column, 4)
+    got = c3_coevo._vector_entropy(counts)
+    assert_allclose(got, orig.entropy)
+
+
+@pytest.fixture
+def alignment():
+    data = """
+    AAGG-T
+    NCGN-C
+    NGTG-C
+    NTTA-G
+    """
+    # 0,2,1.3,nan,1.5
+    # entropies
+    data = {f"s{i}": s.strip() for i, s in enumerate(data.splitlines()) if s.strip()}
+    return make_aligned_seqs(data=data, moltype="dna")
+
+
+def test_column_entropies(alignment):
+    expect = alignment.entropy_per_pos()
+    got = c3_coevo._calc_column_entropies(alignment.array_seqs, 4)
+    assert_allclose(got, expect)
+
+
+@pytest.mark.parametrize("pos", itertools.combinations(range(5), 2))
+def test_joint_entropies(alignment, pos):
+    data = alignment.array_seqs[:, pos]
+    valid = data[(data < 4).all(axis=1), :]
+    valid = [tuple(p) for p in valid]
+    expect = CategoryCounter(valid).entropy
+    counts = c3_coevo._count_joint_states(data, 4)
+    got = c3_coevo._calc_joint_entropy(counts)
+    assert_allclose(got, expect)
+
+
+@pytest.mark.parametrize("normalised", [False, True])
+def test_mi_pair_comp(alignment, normalised):
+    pair = calc_mi_pair(alignment, pos1=1, pos2=5, normalised=normalised)
+    got = c3_coevo.coevolution_matrix(
+        alignment=alignment,
+        stat="nmi" if normalised else "mi",
+        show_progress=False,
+    )[5, 1]
+    assert_allclose(got, pair)
+
+
+def test_aa_seq():
+    aln = make_aligned_seqs(
+        data={
+            "FlyingFox": "SQ",
+            "DogFaced": "SQ",
+            "FreeTaile": "SQ",
+            "LittleBro": "SQ",
+            "TombBat": "SQ",
+            "RoundEare": "SQ",
+            "FalseVamp": "SQ",
+            "LeafNose": "SQ",
+            "Horse": "SQ",
+            "Rhino": "SQ",
+            "Pangolin": "SL",
+            "Cat": "SQ",
+            "Dog": "SQ",
+            "Llama": "SQ",
+            "Pig": "SQ",
+            "Cow": "SQ",
+            "Hippo": "SQ",
+            "SpermWhale": "SQ",
+            "HumpbackW": "SQ",
+            "Mole": "SQ",
+            "Hedgehog": "SQ",
+            "TreeShrew": "SQ",
+            "FlyingLem": "SQ",
+            "Galago": "SQ",
+            "HowlerMon": "SQ",
+            "Rhesus": "SQ",
+            "Orangutan": "SQ",
+            "Gorilla": "SQ",
+            "Human": "SQ",
+            "Chimpanzee": "SQ",
+            "Jackrabbit": "SQ",
+            "FlyingSqu": "SQ",
+            "OldWorld": "SQ",
+            "Mouse": "SQ",
+            "Rat": "SQ",
+            "NineBande": "RQ",
+            "HairyArma": "RQ",
+            "Anteater": "SQ",
+            "Sloth": "SQ",
+            "Dugong": "SQ",
+            "Manatee": "SQ",
+            "AfricanEl": "SQ",
+            "AsianElep": "SQ",
+            "RockHyrax": "SQ",
+            "TreeHyrax": "SQ",
+            "Aardvark": "SQ",
+            "GoldenMol": "SQ",
+            "Madagascar": "SQ",
+            "Tenrec": "SQ",
+            "LesserEle": "SQ",
+            "GiantElep": "SQ",
+            "Caenolest": "NQ",
+            "Phascogale": "NQ",
+            "Wombat": "NQ",
+            "Bandicoot": "NQ",
+        },
+        moltype="protein",
     )
-    return i + j - k
+    expect = calc_mi_pair(aln, pos1=0, pos2=1, normalised=True)
 
+    got = c3_coevo.coevolution_matrix(
+        alignment=aln,
+        stat="nmi",
+        show_progress=False,
+    )
+    assert_allclose(got[1, 0], expect)
+    got = c3_coevo.coevolution_matrix(
+        alignment=aln,
+        stat="rmi",
+        show_progress=False,
+    )
+    expect = 0.06083812598795946  # from original rmi calculation code
+    got = got.array[~numpy.isnan(got.array)]
+    assert_allclose(got[0], expect)
+
+
+@pytest.fixture(params=["dna", "protein"])
+def pos_pair(request):
+    data = [
+        "TC",
+        "TC",
+        "TA",
+        "TC",
+        "AC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "AC",
+        "TC",
+        "AC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TA",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TA",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "AC",
+        "AC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+        "TC",
+    ]
+    return make_aligned_seqs(
+        data={f"s{i}": p for i, p in enumerate(data)}, moltype=request.param
+    )
 
-class ResampledMiTests(TestCase):
-    def setUp(self):
-        self.c12 = CategoryCounter(["AA", "AA", "BB", "BB", "BC"])
-        self.c1, self.c2 = make_freqs(self.c12)
-        self.aln = make_sample(self.c12)
-
-    def test_calc_weights(self):
-        """resampled mi weights should be correctly computed"""
-        w1 = make_weights(self.c1, 5)
-        w2 = make_weights(self.c2, 5)
-        e = [
-            ("A", {"C": 0.033333333333333333, "B": 0.066666666666666666}),
-            ("B", {"A": 0.066666666666666666, "C": 0.033333333333333333}),
-            ("C", {"A": 0.050000000000000003, "B": 0.050000000000000003}),
-        ]
-
-        weights = []
-        for w in w1, w2:
-            for k, d in w:
-                weights += list(d.values())
-        assert_allclose(sum(weights), 0.5)
-        w2.sort()
-        self.assertEqual(w2, e)
-
-    def test_scaled_mi(self):
-        """resampled mi should match hand calc"""
-
-        def calc_scaled(data, expected_smi):
-            col_i, col_j = CategoryCounter(), CategoryCounter()
-            for i, j in data:
-                col_i[i] += 1
-                col_j[j] += 1
-            pair_freqs = CategoryCounter(data)
-            weights_i = make_weights(col_i, col_i.sum)
-            weights_j = make_weights(col_j, col_j.sum)
-            entropy = mi(col_i.entropy, col_j.entropy, pair_freqs.entropy)
-            assert_allclose(entropy, _calc_mi())
-            scales = calc_pair_scale(data, col_i, col_j, weights_i, weights_j)
-            scaled_mi = 1 - sum(
-                [w * pair_freqs[pr] for pr, e, w in scales if entropy <= e]
-            )
-            assert_allclose(scaled_mi, expected_smi)
 
-        data = [
-            "BN",
-            "BN",
-            "BP",
-            "BN",
-            "PN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "PN",
-            "BN",
-            "PN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BP",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BP",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "PN",
-            "PN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-            "BN",
-        ]
-        calc_scaled(data, 8 / 42)
+def test_scaled_mi(pos_pair):
+    # should work with different molecular types
+    # and give the same answer (for this rather simple case)
+    got = c3_coevo.coevolution_matrix(
+        alignment=pos_pair,
+        stat="rmi",
+        show_progress=False,
+    )[1, 0]
+    assert_allclose(got, 8 / 42)
+
+
+@pytest.mark.parametrize("met1, met2", [("mi", "nmi"), ("mi", "rmi"), ("nmi", "rmi")])
+def test_diff_mi_metrics(pos_pair, met1, met2):
+    met1 = c3_coevo.coevolution_matrix(
+        alignment=pos_pair,
+        stat=met1,
+        show_progress=False,
+    )[1, 0]
+    met2 = c3_coevo.coevolution_matrix(
+        alignment=pos_pair,
+        stat=met2,
+        show_progress=False,
+    )[1, 0]
+    assert not numpy.allclose(met1, met2)
+
+
+@pytest.fixture
+def small_dna():
+    return make_aligned_seqs(
+        data={f"s{i}": s for i, s in enumerate(["AA", "AA", "GG", "GG", "GC"])},
+        moltype="dna",
+    )
 
-    def test_resampled_mi_interface(self):
-        """resampled_mi_alignment should correctly compute statistic from
-        alignment"""
-        arr = resampled_mi_alignment(self.aln)
-        # expected value from hand calculation
-        assert_allclose(arr.tolist(), [[1.0, 0.78333333], [0.78333333, 1.0]])
 
+def test_resampled_mi_interface(small_dna):
+    """resampled_mi_alignment should correctly compute statistic from
+    alignment"""
+    dmat = c3_coevo.coevolution_matrix(
+        alignment=small_dna,
+        stat="rmi",
+        show_progress=False,
+    )
+    # expected value from hand calculation
+    assert_allclose(dmat[1, 0], 0.78333333)
+
+
+@pytest.fixture
+def cols():
+    dna = get_moltype("dna", new_type=True)
+    alpha = dna.alphabet
+    counts1 = numpy.zeros(len(alpha), dtype=numpy.int64)
+    counts2 = numpy.zeros(len(alpha), dtype=numpy.int64)
+    for a, b in ["AA", "AA", "GG", "GG", "GC"]:
+        counts1[alpha.to_indices(a)] += 1
+        counts2[alpha.to_indices(b)] += 1
+    return counts1, counts2
+
+
+def _make_expected_array(alpha, data):
+    expected = numpy.zeros((4, 4), dtype=numpy.float64)
+    for f, weights in data:
+        i = alpha.to_indices(f)
+        for k, v in weights.items():
+            j = alpha.to_indices(k)
+            expected[i, j] = v
+    return expected
+
+
+def test_calc_weights_new(cols):
+    """resampled mi weights should be correctly computed"""
+    dna = get_moltype("dna", new_type=True)
+    alpha = dna.alphabet
+
+    e1 = [
+        ("A", {"G": 0.1}),
+        ("G", {"A": 0.1}),
+    ]
+    expect_w1 = _make_expected_array(alpha, e1)
+    e2 = [
+        ("A", {"C": 0.033333333333333333, "G": 0.066666666666666666}),
+        ("G", {"A": 0.066666666666666666, "C": 0.033333333333333333}),
+        ("C", {"A": 0.050000000000000003, "G": 0.050000000000000003}),
+    ]
+    expect_w2 = _make_expected_array(alpha, e2)
+
+    c1, c2 = cols
+    w1 = c3_coevo._make_weights(c1)
+    w2 = c3_coevo._make_weights(c2)
+    assert_allclose(w1, expect_w1)
+    assert_allclose(w2, expect_w2)
+
+
+@pytest.fixture
+def protein_aln4():
+    return make_aligned_seqs(
+        dict([("A1", "AACF"), ("A12", "AADF"), ("A123", "ADCF"), ("A111", "AAD-")]),
+        moltype="protein",
+    )
 
-ALN_FILE = """Seq_1   ACDEFG
-Seq_2   STVWY-
-Seq_3 WY.ZBX"""
 
-# J in here
-ALN_FILE_WRONG_KEY = """Seq_1   ACDKLM
-Seq_2   JINCK-
-Seq_3 VX.MAB"""
+@pytest.mark.parametrize("stat", ["mi", "nmi"])
+def test_alignment_analyses_moltype_protein(protein_aln4, stat):
+    """alignment methods work with moltype = PROTEIN"""
+    r = c3_coevo.coevolution_matrix(
+        alignment=protein_aln4, show_progress=False, stat=stat
+    )
+    assert r.shape == (4, 4)
 
-# last seq too long
-ALN_FILE_INC_SHAPE = """Seq_1   ACDKLM
-Seq_2   LINCK-
-Seq_3 VX.MABN"""
 
+@pytest.fixture(params=[("AA", "AA"), ("AC",), ("NA", "AC")])
+def zero_case(request):
+    return make_aligned_seqs(
+        {f"s{i}": s for i, s in enumerate(request.param)},
+        moltype="dna",
+    )
 
-gpcr_ungapped = """>OPSD_SPAAU
-MNGTEGPFFYVPMVNTSGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWIMAMACAAPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFICHFSIPLTIVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVIMMVIAFLVCWLPYAGVAWWIFTHQGSEFGPVFMTIPAFFAKSSSIYNPMIYICLNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->B1AR_CANFA
-LPDGAATAARLLVPASPSASPLAPTSEGPAPLSQQWTAGIGLLMALIVLLIVAGNVLVIAAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVMRGRWEYGSFLCELWTSVDVLCVTASIETLCVIALDRYLAITAPFYQSLLTRARARALVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRRAFQRLLCCARRAARGSHGAAG------PPPSPG
->OPSB_HUMAN
----MRKMSEEEFYLFKNISSVGPWDGPQYHIAPVWAFYLQAAFMGTVFLIGFPLNAMVLVATLRYKKLRQPLNYILVNVSFGGFLLCIFSVFPVFVASCNGYFVFGRHVCALEGFLGTVAGLVTGWSLAFLAFERYIVICKPFGNFRFSSKHALTVVLATWTIGIGVSIPPFFGWSRFIPEGLQCSCGPDWYTVGTKYRSESYTWFLFIFCFIVPLSLICFSYTQLLRALKAVAAQQQESATTQKAEREVSRMVVVMVGSFCVCYVPYAAFAMYMVNNRNHGLDLRLVTIPSFFSKSACIYNPIIYCFMNKQFQACIMKMVCGKAMTD---ESDTCSTVSSTQVGPN-
->OPSD_PROCL
-NP-Y-GNFTVVDMAPKDILHMIHPHWYQYPPMNPMMYPLLLIFMLFTGILCLAGNFVTIWVFMNTKSLRTPANLLVVNLAMSDFLMMFTMFPPMMVTCYYHTWTLGPTFCQVYAFLGNLCGCASIWTMVFITFDRYNVIVKGVAGEPLSTKKASLWILTIWVLSITWCIAPFFGWNRYVPEGNLTGCGTD--YLSEDILSRSYLYDYSTWVYYLPLLP-IYCYVSIIKAVAAHMGIRNEEAQKTSAECRLAKIAMTTVALWFIAWTPYLLINWVGMFARSY-LSPVYTIWGYVFAKANAVYNPIVYAISHPKYRAAMEKKLPCLSCKTESDDVSESAEEKAESA----
->BRB1_RABIT
-ASQGPLELQPSNQSQLAPPNATSC--SGAPDAWDLLHRLLPTFIIAIFTLGLLGNSFVLSVFLLARRRLSVAEIYLANLAASDLVFVLGLPFWAENVRNQFDWPFGAALCRIVNGVIKANLFISIFLVVAISQDRYSVLVHPMSRRGRRRRQAQATCALIWLAGGLLSTPTFVLRSVRA-LN--SACILL---LPHEAWHWLRMVELNLLGFLLPLAAILFFNCHILASLRRR---RVPSRCGGPRDSKSTALILTLVASFLVCWAPYHFFAFLECLWQVHEFTDLGLQLSNFSAFVNSCLNPVIYVFVGRLFRTKVWELCQQCSPR---------LAPV-------S
->5H7_.ENLA
-NLLPSEFMTERPLNTTEQDLTKPDCGKELLLYGDTEKIVIGVVLSIITLFTIAGNALVIISVCIVKKLRQPSNYLVVSLAAADLSVAVAVMPFVIITDLVGGWLFGKVFCNVFIAMDVMCCTASIMTLCVISVDRYLGITRPLYPARQNGKLMAKMVFIVWLLSASITLPPLFGWAK--N-V--RVCLIS--------QDFGYTVYSTAVAFYIPMTVMLVMYQRIFVAAKISSKLDRKNISIFKREQKAARTLGIIVGAFTFCWLPFFLLSTARPFICGICMPLRLERTLLWLGYTNSLINPLIYAFFNRDLRTTFWNLLRCKYTNINRRLSAASTERHEGIL----
->B3AR_FELCA
-MAPWPHGNGSLASWPDAPTLTPNTANTSGLPGVPWAVALAGALLALAVLATVGGNLLVIVAIARTPRLQTMTNVFVTSLATADLVVGLLVVPPGATLALTGHWPLGATGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRARAAVVLVWVVSAAVSFAPIMSKWWRVQ-R--HCCAFA--------SNIPYALLSSSVSFYLPLLVMLFVYARVFVVATRQGVPRRPARLLPLREHRALRTLGLIMGTFSLCWLPFFVANVVRALGGPS-VPSPAFLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCRCRLEERHAAASGAAALTRPAESGLP
->TLR1_DROME
-IIDNRDNLESINEAKDFLTECLFPSPTRPYELPWEQKTIWAIIFGLMMFVAIAGNGIVLWIVTGHRSMRTVTNYFLLNLSIADLLMSSLNCVFNFIFMLNSDWPFGSIYCTINNFVANVTVSTSVFTLVAISFDRYIAIVDPL-KRRTSRRKVRIILVLIWALSCVLSAPCLLYSS----SR--TVCFMMDGRYPTSMADYAYNLIILVLTTGIPMIVMLICYSLMGRVPGGSSIGTDRQMESMKSKRKVVRMFIAIVSIFAICWLPYHLFFIYAYHNNQVKYVQHMYLGFYWLAMSNAMVNPLIYYWMNKRFRMYFQRIICCCCVGLTRHRFDSPNSSNRHTRAETK
->ITR_CATCO
-EQDFWSFNESSRNSTVGNETF-GNQTVNPLKRNEEVAKVEVTVLALVLFLALAGNLCVLIAIYTAKHTQSRMYYLMKHLSIADLVVAVFQVLPQLIWDITFRFYGPDFLCRLVKYLQTVGMFASTYMLVLMSIDRCIAICQPL--RSLHKRKDRCYVIVSWALSLVFSVPQVYIFSLRE----VYDCWGD---FVQPWGAKAYITWISLTIYIIPVAILGGCYGLISFKIWQNANAVSSVKLVSKAKITTVKMTFVIVLAYIVCWTPFFFVQMWSAWDPEA-REAMPFIISMLLASLNSCCNPWIYMFFAGHLFHDLKQSLLCCSTLYLKSSQCRCKSNCSTYVIKST
->NK1R_RANCA
-----MNSNISAQNDSALNSTIQNGTKINQFIQPPWQIALWSVAYSIIVIVSLVGNIIVMWIIIAHKRMRTVTNYFLVNLAFAEASMSAFNTVINFTYAIHNHWYYGLIYCKFHNFFPISAVFTSIYSMTAIALDRYMAIIHPL-KPRLSATATKIVICVIWSFSFCMAFPLGYYAD---GG---DICYLNPDSEENRKYEQVYQVLVFCLIYILPLLVIGCAYTFIGMTLWAS--PSDRYHEQVVAKRKVVKMMIVVVCTFAICWLPFHIFFLLQTLHEMTKFYQQFYLAIMWLAMSSTMYNPIIYCCLNDRFRIGFKHVFRWCPFIRAGEY----STRYLQTQSSMY
->A2AA_MOUSE
-----MGSLQPDAGNSSWNGTEAPGGGTRATPYSLQVTLTLVCLAGLLMLFTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKVWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIVTVWVISAVISFPPLISIEKKGQ-P--PSCKIN--------DQKWYVISSSIGSFFAPCLIMILVYVRIYQIAKRRRGGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLIAVGCP--VPSQLFNFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->MSHR_VULVU
-SGQGPQRRLLGSPNATSPTTPHFKLAANQTGPRCLEVSIPNGLFLSLGLVSVVENVLVVAAIAKNRNLHSPMYYFIGCLAVSDLLVSVTNVLETAVMLLVEAAAVVQQLDDIIDVLICGSMVSSLCFLGAIAVDRYLSIFYALYHSIVTLPRAWRAISAIWVASVLSSTLFIAYYY----------------------NNHTAVLLCLVSFFVAMLVLMAVLYVHMLARARQHIARKRQHSVHQGFGLKGAATLTILLGIFFLCWGPFFLHLSLMVLCPQHGCVFQNFNLFLTLIICNSIIDPFIYAFRSQELRKTLQEVVLCSW-----------------------
->OPSD_BOVIN
-MNGTEGPNFYVPFSNKTGVVRSPFEAPQYYLAEPWQFSMLAAYMFLLIMLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLVGWSRYIPEGMQCSCGIDYYTPHEETNNESFVIYMFVVHFIIPLIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWLPYAGVAFYIFTHQGSDFGPIFMTIPAFFAKTSAVYNPVIYIMMNKQFRNCMVTTLCCGKNPLGDDEASTTVSKTETSQVAPA
->OPSG_MOUSE
-DHYEDSTHASIFTYTNSNSTKGPFEGPNYHIAPRWVYHLTSTWMILVVVASVFTNGLVLAATMRFKKLRHPLNWILVNLAVADLAETIIASTISVVNQIYGYFVLGHPLCVIEGYIVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLATVGIVFSWVWAAIWTAPPIFGWSRYWPYGLKTSCGPDVFSGTSYPGVQSYMMVLMVTCCIFPLSIIVLCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMVFAYCLCWGPYTFFACFATAHPGYAFHPLVASLPSYFAKSATIYNPIIYVFMNRQFRNCILHLFGKKVDDS-----SELVSSV--SSVSPA
->TA2R_RAT
---MWLNS-----------TSLGACFRPVNITLQERRAIASPWFAASFCALGLGSNLLALSVLAGARPPRSSFLALLCGLVLTDFLGLLVTGAVVASQHAALLTDPGCRLCHFMGAAMVFFGLCPLLLGAAMAAERFVGITRPFSRPAATSRRAWATVGLVWVGAGTLGLLPLLGLGRYSVQYPGSWCFLT----LGAERGDVAFGLMFALLGSVSVGLSLLLNTVSVATLCRVYHAREATQRPRDCEVEMMVQLVGIMVVATVCWMPLLVFILQTLLQTLPRTTERQLLIYLRVATWNQILDPWVYILFRRSVLRRLHPRFTSQLQAVSLHSPPTQ------------
->CCR3_HUMAN
-LENFSSSYDYGENESDSCCTSPPC---PQDFSLNFDRAFLPALYSLLFLLGLLGNGAVAAVLLSRRTALSSTDTFLLHLAVADTLLVLTLPLWAVDAAVQ--WVFGSGLCKVAGALFNINFYAGALLLACISFDRYLNIVHATLYRRGPPARVTLTCLAVWGLCLLFALPDFIFLSAHH-RL-ATHCQYN----FPQVGRTALRVLQLVAGFLLPLLVMAYCYAHILAVL---------LVSRGQRRLRAMRLVVVVVVAFALCWTPYHLVVLVDILMDLGSRVDVAKSVTSGLGYMHCCLNPLLYAFVGVKFRERMWMLLLRLGCPN----QRGL--------PSSS
->THRR_CRILO
-LPEGRAIYLNKSHSPPAPLAPFISEDASGYLTSPWLRLFIPSVYTFVFVVSLPLNILAIAVFVLKMKVKKPAVVYMLHLAMADVLFVSVLPLKISYYFSGSDWQFGSGMCRFATAAFYCNMYASIMLMTVISIDRFLAVVYPISLSWRTLGRANFTCLVIWVMAIMGVVPLLLKEQTTR--N--TTCHDVLNETLLQGFYSYYFSAFSAVFFLVPLIISTICYMSIIRCL------SSSSVANRSKKSRALFLSAAVFCVFIVCFGPTNVLLIMHYLLLSDEKAYFAYLLCVCVSSVSCCIDPLIYYYASSECQRHLYGILCCKESSDPNSYNSTGDTCS--------
->AA2A_CAVPO
-----------------------------------MSSSVYITVELVIAVLAILGNVLVCWAVWINSNLQNVTNYFVVSLAAADIAVGVLAIPFAITISTG--FCAACHGCLFFACFVLVLTQSSIFSLLTITIDRYIAIRIPLYNGLVTCTRAKGIIAICWVLSFAIGLTPMLGWNNCSS-E-QVTCLFE-----DVVPMNYMVYYNFFAFVLVPLLLMLGIYLRIFLAARRQESQGERTRSTLQKEVHPAKSLAIIVGLFALCCLPLNIINCFTFFCPECHAPPWLMYLTIILSHGNSVVNPLIYAYRIREFRQTFRKIIRSHILRRRELFKAGGAHSPEGEQVSLR
->C3AR_MOUSE
---------------MESFDADTNSTDLHSRPLFQPQDIASMVILGLTCLLGLLGNGLVLWVAGVKMK-TTVNTVWFLHLTLADFLCCLSLPFSLAHLILQGHWPYGLFLCKLIPSIIILNMFASVFLLTAISLDRCLIVHKPICQNHRNVRTAFAICGCVWVVAFVMCVPVFVYRDLFI-ED-DYVDQFT-YDNHVPTPLMAITITRLVVGFLVPFFIMVICYSLIVFRM--------RKTNFTKSRNKTFRVAVAVVTVFFICWTPYHLVGVLLLITDPEEAVMSWDHMSIALASANSCFNPFLYALLGKDFRKKARQSIKGILEAAFSEELTHSASS---------
->TA2R_BOVIN
---MWPNA-----------SSLGPCFRPMNITLEERRLIASPWFAASFCLVGLASNLLALSVLMGARQSRSSFLTFLCGLVLTDFMGLLVTGAIVVTQHFVLFVDPGCSLCHFMGVIMVFFGLCPLLLGAAMASERFLGITRPFRPATASQRRAWTTVGLVWASALALGLLPLLGVGHYTVQYPGSWCFLT----LGTDPGDVAFGLLFALLGSISVGMSFLLNTISVATLCHVYHGATAQQRPRDCEVEMMVQLMGIMVVASICWMPLLVFIAQTVLQSPPRLTERQLLIYLRVATWNQILDPWVYILFRRAVIQRFYPRLSTRSRSLSLQPQLTR------------
->OPSD_RABIT
-MNGTEGPDFYIPMSNQTGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVLGGFTTTLYTSLHGYFVFGPTGCNVEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWIMALACAAPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPLIIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPAFFAKSSSIYNPVIYIMMNKQFRNCMLTTICCGKNPLGDDEASATASKTETSQVAPA
->OPSD_PHOVI
-MNGTEGPNFYVPFSNKTGVVRSPFEFPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVGFTWVMALACAAPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTLPAFFAKAASIYNPVIYIMMNKQFRTCMITTLCCGKNPLGDDEVSASASKTETSQVAPA
->D3DR_RAT
---------MAPLSQISTHLNSTCGAENSTGVNRARPHAYYALSYCALILAIIFGNGLVCAAVLRERALQTTTNYLVVSLAVADLLVATLVMPWVVYLEVTGGWNFSRICCDVFVTLDVMMCTASILNLCAISIDRYTAVVMPVGTGQSSCRRVALMITAVWVLAFAVSCPLLFGFN---D-P--SICSI---------SNPDFVIYSSVVSFYVPFGVTVLVYARIYIVLRQRTSLPLQPRGVPLREKKATQMVVIVLGAFIVCWLPFFLTHVLNTHCQACHVSPELYRATTWLGYVNSALNPVIYTTFNVEFRKAFLKILSC-------------------------
->DADR_.ENLA
----------------MTFNITSMDEDVLLTERESSFRVLTGCFLSVLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPFG-TFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKVAFIMIGVAWTLSVLISFIPVQLNWHKALN-TMDNCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTRIYRIAAKQLDCESSLKTSFKRETKVLKTLSVIMGVFVCCWLPFFILNCIVPFCDPSCISSTTFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSNLLGCYRLCPTSNNIIETAVVYSCQ-----
->PAR2_HUMAN
----VDGTSHVTGKGVTVETVFSVDEFSASVLTGKLTTVFLPIVYTIVFVVGLPSNGMALWVFLFRTKKKHPAVIYMANLALADLLSVIWFPLKIAYHIHGNNWIYGEALCNVLIGFFYGNMYCSILFMTCLSVQRYWVIVNPMGHSRKKANIAIGISLAIWLLILLVTIPLYVVKQTIF--N--TTCHDVLPEQLLVGDMFNYFLSLAIGVFLFPAFLTASAYVLMIRML------SAMDENSEKKRKRAIKLIVTVLAMYLICFTPSNLLLVVHYFLIKSSHVYALYIVALCLSTLNSCIDPFVYYFVSHDFRDHAKNALLCRSVRTVKQMQVSLKSSS--------
->GPRA_RAT
-TPANQSAEASESNVSATVPRAAAVTPFQSLQLVHQLKGLIVMLYSIVVVVGLVGNCLLVLVIARVRRLHNVTNFLIGNLALSDVLMCAACVPLTLAYAFEPRWVFGGGLCHLVFFLQPVTVYVSVFTLTTIAVDRYVVLVHPL-RRRISLKLSAYAVLGIWALSAVLALPAAVHTYHVEHD--VRLCEEF--WGSQERQRQIYAWGLLLGTYLLPLLAILLSYVRVSVKLRNRPGS-SQADWDRARRRRTFCLLVVVVVVFALCWLPLHIFNLLRDLDPRAYAFGLVQLLCHWLAMSSACYNPFIYAWLHDSFREELRKMLLSWPRKIVPHGQNMT------------
->ET1R_PIG
-EFSLVVTTHRPTNLALPSNGSMHNYCPQQTKITSAFKYINTVISCTIFIVGMVGNATLLRIIYQNKCMRNGPNALIASLALGDLIYVVIDLPINVFKLLAGRHDFGVFLCKLFPFLQKSSVGITVLNLCALSVDRYRAVASWSVQGIGIPLVTAIEIVSIWILSFILAIPEAIGFVMVPKT--HKTCMLNATSKFMEFYQDVKDWWLFGFYFCMPLVCTAIFYTLMTCEMLNRGSL-IALSEHLKQRREVAKTVFCLVVIFALCWFPLHLSRILKKTVYDESFLLLMDYIGINLATMNSCINPIALYFVSKKFKNCFQSCLCCCCYQSKSLMTSVPWKNHEQNNHNTE
->NTR2_MOUSE
------METSSLWPPRPSPSAGLSLEARLGVDTRLWAKVLFTALYSLIFALGTAGNALSVHVVLKARTRPGRLRYHVLSLALSALLLLLISVPMELYNFVWSHWVFGDLGCRGYYFVRELCAYATVLSVASLSAERCLAVCQPLARRLLTPRRTCRLLSLVWVASLGLALPMAVIMGQKH--AASRVCTVL---VSRASSRSTFQVKRAGLLRSPLWELTAILNGITVNHLVALVQARHKDASQIRSLQHSAQVLRAIVAVYVICWLPYHARRLMYCYIPDDDFYHYFYMVTNTLFYVSSAVTPVLYNAVSSSFRKLFLESLSSLCGEQRSVVPLPQSTYSFRLWGSPR
->CKR7_MOUSE
-QDEVTDDYIGENTTVDYTLYESVC---FKKDVRNFKAWFLPLMYSVICFVGLLGNGLVILTYIYFKRLKTMTDTYLLNLAVADILFLLILPFWAYSEAKS--WIFGVYLCKGIFGIYKLSFFSGMLLLLCISIDRYVAIVQAVRHRARVLLISKLSCVGIWMLALFLSIPELLYSGLQK-GE-TLRCSLV---SAQVEALITIQVAQMVFGFLVPMLAMSFCYLIIIRTL---------LQARNFERNKAIKVIIAVVVVFIVFQLPYNGVVLAQTVANFNKQLNIAYDVTYSLASVRCCVNPFLYAFIGVKFRSDLFKLFKDLGCLSQERLRHWS--------HVRN
->NY5R_HUMAN
--------------NTAATRNSDFPVWDDYKSSVDDLQYFLIGLYTFVSLLGFMGNLLILMALMKKRNQKTTVNFLIGNLAFSDILVVLFCSPFTLTSVLLDQWMFGKVMCHIMPFLQCVSVLVSTLILISIAIVRYHMIKHPI-SNNLTANHGYFLIATVWTLGFAICSPLPVFHSLVESS--RYLCVES---WPSDSYRIAFTISLLLVQYILPLVCLTVSHTSVCRSISCGVHEKRSVTRIKKRSRSVFYRLTILILVFAVSWMPLHLFHVVTDFNDNLRHFKLVYCICHLLGMMSCCLNPILYGFLNNGIKADLVSLIHCLHM----------------------
->VG74_HSVSA
-VKLDFSSEDFSNYSYNYSGDIYYGDVAPCVVNFLISESALAFIYVLMFLCNAIGNSLVLRTFLKYRA-QAQSFDYLMMGFCLNSLFLAGYLLMRLLRMFE--IFMNTELCKLEAFFLNLSIYWSPFILVFISVLRCLLIFCATRLWVKKTLIGQVFLCCSFVLACFGALPHVMVTSYYE----PSSCIEE---VLTEQLRTKLNTFHTWYSFAGPLFITVICYSMSCYKL---------FKTKLSKRAEVVTIITMTTLLFIVFCIPYYIMESIDTLLRVGSAIVYGIQCTYMLLVLYYCMLPLMFAMFGSLFRQRMAAWCKTICHC---------------------
->CCKR_HUMAN
-DSLLVNGSNITPPCELGLENETLFCLDQPRPSKEWQPAVQILLYSLIFLLSVLGNTLVITVLIRNKRMRTVTNIFLLSLAVSDLMLCLFCMPFNLIPNLLKDFIFGSAVCKTTTYFMGTSVSVSTFNLVAISLERYGAICKPLSRVWQTKSHALKVIAATWCLSFTIMTPYPIYN----NNQTANMCRFL---LPNDVMQQSWHTFLLLILFLIPGIVMMVAYGLISLELYQGRANSNSSAANLMAKKRVIRMLIVIVVLFFLCWMPIFSANAWRAYDTASRLSGTPISFILLLSYTSSCVNPIIYCFMNKRFRLGFMATFPCCPNPGPPGARGEVTTGASLSRFSYS
->OPSR_CARAU
-GD--ETTRESMFVYTNSNNTRDPFEGPNYHIAPRWVYNLATVWMFFVVVASTFTNGLVLVATAKFKKLRHPLNWILVNLAVADLAETLLASTISVTNQFFGYFILGHPMCIFEGFTVSVCGIAGLWSLTVISWERWVVVCKPFGNVKFDAKWASAGIIFSWVWSAIWCAPPIFGWSRFWPHGLKTSCGPDVFSGSEDPGVQSYMIVLMITCCIIPLAIIILCYIAVWLAIRTVAQQQKDSESTQKAEKEVSRMVVVMIFAYCFCWGPYTFCACFAAANPGYAFHPLAAAMPAYFAKSATIYNPIIYVFMNRQFRVCIMQLFGKKVDDG-----SEVSS------VAPA
->OPS2_LIMPO
-PN-----ASVVDTMPKEMLYMIHEHWYAFPPMNPLWYSILGVAMIILGIICVLGNGMVIYLMMTTKSLRTPTNLLVVNLAFSDFCMMAFMMPTMASNCFAETWILGPFMCEVYGMAGSLFGCASIWSMVMITLDRYNVIVRGMAAAPLTHKKATLLLLFVWIWSGGWTILPFFGWSRYVPEGNLTSCTVD--YLTKDWSSASYVIIYGLAVYFLPLITMIYCYFFIVHAVAEHNVAANADQQKQSAECRLAKVAMMTVGLWFMAWTPYLIIAWAGVFSSGTRLTPLATIWGSVFAKANSCYNPIVYGISHPRYKAALYQRFPSLACGSGESGSDVKTMEEKPKSPEA-
->O5I1_HUMAN
------------MEFTDRNYTLVTEFILLGFPTRPELQIVLFLMFLTLYAIILIGNIGLMLLIRIDPHLQTPMYFFLSNLSFVDLCYFSDIVPKMLVNFLSENKSISYYGCALQFYFFCTFADTESFILAAMAYDRYVAICNPLYTVVMSRGICMRLIVLSYLGGNMSSLVHTSFAFIL---KNHFFCDLPKLSCTDTTINEWLLSTYGSSVEIICFIIIIISYFFILLSV--------LKIRSFSGRKKTFSTCASHLTSVTIYQGTLLFIYSRPSYLY---SPNTDKIISVFYTIFIPVLNPLIYSLRNKDVKDAAEKVLRSKVDSS--------------------
->OAR_HELVI
---TEEVIEDDRDACAVADDPKYPSSFGITLAVPEWEAICTAIVLTLIIISTIVGNILVILSVFTYKPLRIVQNFFIVSLAVADLTVAILVLPLNVAYSILGQWVFGIYVCKMWLTCDIMCCTSSILNLCAIALDRYWAITDPIYAQKRTLERVLLMIGVVWVLSLIISSPPLLGWNDW-E-P--TPCRLT--------SQPGFVIFSSSGSFYIPLVIMTVVYFEIYLATKKRAVYEEKQRISLTRERRAARTLGIIMGVFVVCWLPFFVIYLVIPFCASCCLSNKFINFITWLGYCNSALNPLIYTIFNMDFRRAFKKLLCMKP-----------------------
->O1D4_HUMAN
--------------MDGDNQSENSQFLLLGISESPEQQQILFWMFLSMYLVTVLGNVLIILAISSDSHLHTPMYFFLANLSFTDLFFVTNTIPKMLVNFQSQNKAISYAGCLTQLYFLVSLVTLDNLILAVMAYDRYVAICCPLYVTAMSPGLCVLLLSLCWGLSVLYGLLLTFLLTRV---THYLFCDMYWLACSNTHIIHTALIATGWFIFLTLLGFMTTSYVRIVRTI--------LQMPSASKKYKTFSTCASHLGVVSLFYGTLAMVYLQPLHTY----SMKDSVATVMYAVLTPMMNPFIYSLRNKDMHGAPGRVLWRPFQRP--------------------
->OPSD_APIME
-AR-F-NNQTVVDKVPPDMLHLIDANWYQYPPLNPMWHGILGFVIGMLGFVSAMGNGMVVYIFLSTKSLRTPSNLFVINLAISNFLMMFCMSPPMVINCYYETWVLGPLFCQIYAMLGSLFGCGSIWTMTMIAFDRYNVIVKGLSGKPLSINGALIRIIAIWLFSLGWTIAPMFGWNRYVPEGNMTACGTD--YFNRGLLSASYLVCYGIWVYFVPLFLIIYSYWFIIQAVAAHMNVRSSENQNTSAECKLAKVALMTISLWFMAWTPYLVINFSGIFNLVK-ISPLFTIWGSLFAKANAVYNPIVYGISHPKYRAALFAKFPSLACAAEPSSDAVSVTDNEKSNA---
->TRFR_CHICK
-----------MENGTGDEQNHTGLLLSSQEFVTAEYQVVTILLVLLICGLGIVGNIMVVLVVLRTKHMRTPTNCYLVSLAVADLMVLVAAGLPNITESLYKSWVYGYVGCLCITYLQYLGINASSFSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWSFASVYCMLWFFLLDLN--DT-VVSCGYK------RSYYSPIYMMDFGIFYVLPMVLATVLYGLIARILFLNVNSNKSFNSTIASRRQVTKMLAVVVVLFAFLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCHLKRDKKPANYSVKESDHFSSEIED
->OPSR_HUMAN
-DSYEDSTQSSIFTYTNSNSTRGPFEGPNYHIAPRWVYHLTSVWMIFVVTASVFTNGLVLAATMKFKKLRHPLNWILVNLAVADLAETVIASTISIVNQVSGYFVLGHPMCVLEGYTVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLAIVGIAFSWIWSAVWTAPPIFGWSRYWPHGLKTSCGPDVFSGSSYPGVQSYMIVLMVTCCIIPLAIIMLCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMIFAYCVCWGPYTFFACFAAANPGYAFHPLMAALPAYFAKSATIYNPVIYVFMNRQFRNCILQLFGKKVDDG-----SELVSSV--SSVSPA
->CB2R_MOUSE
-----MEGCRETEVTNGSNGGLEFNPMKEYMILSSGQQIAVAVLCTLMGLLSALENMAVLYIILSSRRRRKPSYLFISSLAGADFLASVIFACNFVIFHVFHG-VDSNAIFLLKIGSVTMTFTASVGSLLLTAVDRYLCLCYPPYKALVTRGRALVALCVMWVLSALISYLPLMGWTC-----CPSPCSEL------FPLIPNDYLLGWLLFIAILFSGIIYTYGYVLWKAHRHAEHQVPGIARMRLDVRLAKTLGLVLAVLLICWFPALALMGHSLVTTLSDQVKEAFAFCSMLCLVNSMVNPIIYALRSGEIRSAAQHCLIGWKKYLQGLGPEGKVTETEADVKTT-
->PE21_HUMAN
---MSPCGPLNLSLAGEATTCAA---PWVPNTSAVPPSGASPALPIFSMTLGAVSNLLALALLAQAAGSATTFLLFVASLLATDLAGHVIPGALVLRLYTAG-RAPAGGACHFLGGCMVFFGLCPLLLGCGMAVERCVGVTRPLHAARVSVARARLALAAVAAVALAVALLPLARVGRYELQYPGTWCFIG--LGPPGGWRQALLAGLFASLGLVALLAALVCNTLSGLALHRSRRRAHGPRRARAHDVEMVGQLVGIMVVSCICWSPMLVLVALAVGGWSSTSLQRPLFLAVRLASWNQILDPWVYILLRQAVLRQLLRLLPPRAGAKGGPAGLGLSSLRSSRHSGLS
->OPR._CAVPO
-GSHLQGNLSLLSPNHSGLPPHLLLNASHSAFLPLGLKVTIVGLYLAVCIGGLLGNCLVMYVILRHTKMKTATNIYIFNLALADTLVLLTLPFQATDILLGF-WPFGNTLCKTVIAIDYYNMFTSTFTLTAMSVDRYVAICHPIALDVRTSSKAQAVNVAIWALALVVGVPVAIMGSAQVEE---IECLVE-IPDPQDYWGPVFAVSIFLFSFIIPVLIISVCYSLMIRRLHGVRLL-SGSREKDRNLRRITRLVLVVVAVFVGCWTPVQVFVLVQGLGVQPETTVAILRFCTALGYVNSCLNPILYAFLDENFKACFRKFCCASALHREMQVSDRVALGCKTTETVPR
->OPSV_CHICK
------MSSDDDFYLFTNGSVPGPWDGPQYHIAPPWAFYLQTAFMGIVFAVGTPLNAVVLWVTVRYKRLRQPLNYILVNISASGFVSCVLSVFVVFVASARGYFVFGKRVCELEAFVGTHGGLVTGWSLAFLAFERYIVICKPFGNFRFSSRHALLVVVATWLIGVGVGLPPFFGWSRYMPEGLQCSCGPDWYTVGTKYRSEYYTWFLFIFCFIVPLSLIIFSYSQLLSALRAVAAQQQESATTQKAEREVSRMVVVMVGSFCLCYVPYAALAMYMVNNRDHGLDLRLVTIPAFFSKSACVYNPIIYCFMNKQFRACIMETVCGKPLTD--DSDASTSSVSSSQVGPT-
->YKR5_CAEEL
-MNSENGLDSVTQIMYDMKKYNIVNDVLPPPNHEDLHVVIMAVSYLLLFLLGTCGNVAVLTTIYHVIRTLDNTLIYVIVLSCVDFGVCLSLPITVIDQILGF-WMFGKIPCKLHAVFENFGKILSALILTAMSFDRYAGVC---------HPQRKRLRSRNFAITILLAPGMLTRM-------KIEKCTVD----IDSQMFTAFTIYQFILCYCTPLVLIAFFYTKLLSKLRE----TRTFKSSQIPFLHISLYTLAVACFYFLCWTPFWMATLFAVYLENSPVFVYIMYFIHALPFTNSAINWILYGRVFLETVS---------------------------------
->5H1B_MOUSE
-CAPPPPAASQTGVPLTNLSHNSADGYIYQDSIALPWKVLLVALLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDFWLSSDITCCTASIMHLCVIALDRYWAITDAVYSAKRTPKRAAIMIVLVWVFSISISLPPFFWR----E-E--LDCFVN-------TDHVLYTVYSTVGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGAFIVCWLPFFIISLVMPICKDAWFHMAIFDFFNWLGYLNSLINPIIYTMSNEDFKQAFHKLIRFKCAG---------------------
->P2YR_HUMAN
-AAFLAGPGSSWGNSTVASTAAVSSSFKCALTKTGFQFYYLPAVYILVFIIGFLGNSVAIWMFVFHMKPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDAMCKLQRFIFHVNLYGSILFLTCISAHRYSGVVYPLSLGRLKKKNAICISVLVWLIVVVAISPILFYSGTG----KTITCYDT-TSDEYLRSYFIYSMCTTVAMFCVPLVLILGCYGLIVRALIY------KDLDNSPLRRKSIYLVIIVLTVFAVSYIPFHVMKTMNLRARLDDRVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKASRRSEANLQSKSLPEFKQNGDTSL
->5H4_CAVPO
-------------------MDKLDANVSSKEGFGSVEKVVLLTFLSAVILMAILGNLLVMVAVCRDRQRKIKTNYFIVSLAFADLLVSVLVMPFGAIELVQDIWVYGEMFCLVRTSLDVLLTTASIFHLCCISLDRYYAICCQPYRNKMTPLRIALMLGGCWVIPMFISFLPIMQGWNNIRK-NSTYCVFM--------VNKPYAITCSVVAFYIPFLLMVLAYYRIYVTAKEHGRPDQHSTHRMRTETKAAKTLCIIMGCFCLCWAPFFVTNIVDPFIDYT-VPGQLWTAFLWLGYINSGLNPFLYAFLNKSFRRAFLIILCCDDERYRRPSILGQTINGSTHVLR--
->MC4R_PIG
-GMHTSLHFWNRSTYGLHSNASEPLGKGYSEGGCYEQLFVSPEVFVTLGVISLLENILVIVAIAKNKNLHSPMYFFICSLAVADMLVSVSNGSETIVITLLNSQSFTVNIDNVIDSVICSSLLASICSLLSIAVDRYFTIFYALYHNIMTVKRVGIIISCIWAVCTVSGVLFIIYYS----------------------DDSSAVIICLITVFFTMLALMASLYVHMFLMARLH-RIPGTGTIRQGANMKGAITLTILIGVFVVCWAPFFLHLIFYISCPQNVCFMSHFNLYLILIMCNSIIDPLIYALRSQELRKTFKEIICCYPLGGLCDLSSRY------------
->SSR1_MOUSE
-GEGACSRGPGSGAADGMEEPGRNASQNGTLSEGQGSAILISFIYSVVCLVGLCGNSMVIYVILRYAKMKTATNIYILNLAIADELLMLSVPFLVTSTLLRH-WPFGALLCRLVLSVDAVNMFTSIYCLTVLSVDRYVAVVHPIAARYRRPTVAKVVNLGVWVLSLLVILPIVVFSRTAADG--TVACNML-MPEPAQRWLVGFVLYTFLMGFLLPVGAICLCYVLIIAKMRMVALK-AGWQQRKRSERKITLMVMMVVMVFVICWMPFYVVQLVNVFAEQ--DDATVSQLSVILGYANSCANPILYGFLSDNFKRSFQRILCLS-----WMDNAAETALKSRAYSVED
->CML1_HUMAN
-EDEDYNTSISYGDEYPDYLDSIVVLEDLSPLEARVTRIFLVVVYSIVCFLGILGNGLVIIIATFKMK-KTVNMVWFLNLAVADFLFNVFLPIHITYAAMDYHWVFGTAMCKISNFLLIHNMFTSVFLLTIISSDRCISVLLPVSQNHRSVRLAYMACMVIWVLAFFLSSPSLVFRDTAN-SS--WPTHSQ-MDPVGYSRHMVVTVTRFLCGFLVPVLIITACYLTIVCKL---------HRNRLAKTKKPFKIIVTIIITFFLCWCPYHTLNLLELHHTAMSVFSLGLPLATALAIANSCMNPILYVFMGQDFKK-FKVALFSRLVNALSEDTGHSFTKMSSMNERTS
->ACM1_RAT
-------------MNTSVPPAVSPNITVLAPGKGPWQVAFIGITTGLLSLATVTGNLLVLISFKVNTELKTVNNYFLLSLACADLIIGTFSMNLYTTYLLMGHWALGTLACDLWLALDYVASNASVMNLLLISFDRYFSVTRPLYRAKRTPRRAALMIGLAWLVSFVLWAPAILFWQYLV-VL-AGQCYIQ------FLSQPIITFGTAMAAFYLPVTVMCTLYWRIYRETENRRGKAKRKTFSLVKEKKAARTLSAILLAFILTWTPYNIMVLVSTFCKDC-VPETLWELGYWLCYVNSTVNPMCYALCNKAFRDTFRLLLLCRWDKRRWRKIPKRPSRQC-------
->MRG_HUMAN
-QNPNLVSQLCGVFLQNETNETIHMQMSMAVGQQALPLNIIAPKAVLVSLCGVLLNGTVFWLLCCGAT--NPYMVYILHLVAADVIYLCCSAVGFLQVTLLTYHGVVFFIPDFLAILSPFSFEVCLCLLVAISTERCVCVLFPIYRCHRPKYTSNVVCTLIWGLPFCINIVKSLFLTYWK-------------------KACVIFLKLSGLFHAILSLVMCVSSLTLLIRFL--------CCSQQQKATRVYAVVQISAPMFLLWALPLSVAPLITDF----KMFVTTSYLISLFLIINSSANPIIYFFVGSLRKKRLKESLRVILQRALADKPEVGIDPMEQPHSTQH
->A2AC_RAT
-AEGPNGSDAGEWGSGGGANASGTDWGPPPGQYSAGAVAGLAAVVGFLIVFTVVGNVLVVIAVLTSRALRAPQNLFLVSLASADILVATLVMPFSLANELMAYWYFGQVWCGVYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRVKATIVAVWLISAVISFPPLVSFYR-------PQCGLN--------DETWYILSSCIGSFFAPCLIMGLVYARIYRVAKLRRRAVCRRKVAQAREKRFTFVLAVVMGVFVLCWFPFFFSYSLYGICREAQLPEPLFKFFFWIGYCNSSLNPVIYTVFNQDFRRSFKHILFRRRRRGFRQ-----------------
->OPSD_SEPOF
----MGRDIPDNETWWYNPTMEVHPHWKQFNQVPDAVYYSLGIFIGICGIIGCTGNGIVIYLFTKTKSLQTPANMFIINLAFSDFTFSLVNGFPLMTISCFIKWVFGMAACKVYGFIGGIFGLMSIMTMSMISIDRYNVIGRPMASKKMSHRRAFLMIIFVWMWSTLWSIGPIFGWGAYVLEGVLCNCSFD--YITRDSATRSNIVCMYIFAFCFPILIIFFCYFNIVMAVSNHRLNLRKAQAGASAEMKLAKISIVIVTQFLLSWSPYAVVALLAQFGPIEWVTPYAAQLPVMFAKASAIHNPLIYSVSHPKFREAIAENFPWIITCCQFDEKEVEEIPATEQS-GGE
->SSR3_HUMAN
-SVSTTSEPENASSAWPPDATLGNVSAGPSPAGLAVSGVLIPLVYLVVCVVGLLGNSLVIYVVLRHTASPSVTNVYILNLALADELFMLGLPFLAAQNALSY-WPFGSLMCRLVMAVDGINQFTSIFCLTVMSVDRYLAVVHPTSARWRTAPVARTVSAAVWVASAVVVLPVVVFSGVPR-----STCHMQ-WPEPAAAWRAGFIIYTAALGFFGPLLVICLCYLLIVVKVRSARVWAPSCQRRRRSERRVTRMVVAVVALFVLCWMPFYVLNIVNVVCPLPPAFFGLYFLVVALPYANSCANPILYGFLSYRFKQGFRRVLLRPSRRVRSQEPTVGEDEEEEDG---E
->O.1R_HUMAN
-MGVPPGSREPSPVPPDYED-EFLRYLWRDYLYPKQYEWVLIAAYVAVFVVALVGNTLVCLAVWRNHHMRTVTNYFIVNLSLADVLVTAICLPASLLVDITESWLFGHALCKVIPYLQAVSVSVAVLTLSFIALDRWYAICHPL-LFKSTARRARGSILGIWAVSLAIMVPQAAVMECSSRTRLFSVCDER---WADDLYPKIYHSCFFIVTYLAPLGLMAMAYFQIFRKLWGRQPRFLAEVKQMRARRKTAKMLMVVLLVFALCYLPISVLNVLKRVFGMFEAVYACFTFSHWLVYANSAANPIIYNFLSGKFREQFKAAFSCCLPGLGPCGSLKASHKS---LSLQS
->O2C1_HUMAN
--------------MDGVNDSSLQGFVLMSISDHPQLEMIFFIAILFSYLLTLLGNSTIILLSRLEARLHTPMYFFLSNLSSLDLAFATSSVPQMLINLWGPGKTISYGGCITQLYVFLWLGATECILLVVMAFDRYVAVCRPLYTAIMNPQLCWLLAVIAWLGGLGNSVIQSTFTLQL---PEGFLCEVPKLACGDTSLNQAVLNGVCTFFTAVPLSIIVISYCLIAQAV--------LKIHSAEGRRKAFNTCLSHLLVVFLFYGSASYGYLLPAKNS---KQDQGKFISLFYSLVTPMVNPLIYTLRNMEVKGALRRLLGKGREVG--------------------
->OPSD_MOUSE
-MNGTEGPNFYVPFSNVTGVGRSPFEQPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVVFTWIMALACAAPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIFFLICWLPYASVAFYIFTHQGSNFGPIFMTLPAFFAKSSSIYNPVIYIMLNKQFRNCMLTTLCCGKNPLGDDDASATASKTETSQVAPA
->CB1R_TARGR
-EFFNRSVSTFKENDDNLKCGENFMDMECFMILTASQQLIIAVLSLTLGTFTVLENFLVLCVILQSRTRCRPSYHFIGSLAVADLLGSVIFVYSFLDFHVFHR-KDSSNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKRIVTRTKAVIAFCVMWTIAIIIAVLPLLGWNCK-K--LKSVCSDI------FPLIDENYLMFWIGVTSILLLFIVYAYVYILWKAHSHSEDQITRPEQTRMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNNPIKTVFAFCSMLCLMDSTVNPIIYALRSQDLRHAFLEQCPPCEGTSQPLDNSMEGNN-AGNVHRAA
->B2AR_HUMAN
-MGQPGNGSAFLLAPNRSHAPDH----DVTQQRDEVWVVGMGIVMSLIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGAAHILMKMWTFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYFAITSPFYQSLLTKNKARVIILMVWIVSGLTSFLPIQMHWYRAI-N--TCCDFF--------TNQAYAIASSIVSFYVPLVIMVFVYSRVFQEAKRQGRTLRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIQDNL-IRKEVYILLNWIGYVNSGFNPLIYCRSP-DFRIAFQELLCLRRSSLKAYGNGYSGNTGEQSGYHVE
->OPSD_ZOSOP
-MNGTEGPFFYIPMVNTTGIVRSPYEYPQYYLVNPAAYACLGAYMFFLILVGFPVNFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGVAFTWFMASACAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVIYMFIVHFCIPLAVVGFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVIGFLVCWLPYASVAWYIFTHQGSEFGPPFMTVPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTVSSSSVSPAA--
->GP37_HUMAN
-LAQNGSLGEGIHEPGGPRRGNRLKNPFYPLTQESYGAYAVMCLSVVIFGTGIIGNLAVMCIVCHNYYMRSISNSLLANLAFWDFLIIFFCLPLVIFHELTKKWLLEDFSCKIVPYIEVASLGVTTFTLCALCIDRFRAATNVQYEMIENCSSTTAKLAVIWVGALLLALPEVVLRQLSKI-K--KISPDLTIYVLALTYDSARLWWYFGCYFCLPTLFTITCSLVTARKIRKAEKATRGNKRQIQLESQMNCTVVALTILYGFCIIPENICNIVTAYMATGQTMDLLNIISQFLLFFKSCVTPVLLFCLCKPFSRAFMECCCCCCEECIQKSSTVTYTTELELSPFST
->OPSR_CHICK
-HEEEDTTRDSVFTYTNSNNTRGPFEGPNYHIAPRWVYNLTSVWMIFVVAASVFTNGLVLVATWKFKKLRHPLNWILVNLAVADLGETVIASTISVINQISGYFILGHPMCVVEGYTVSACGITALWSLAIISWERWFVVCKPFGNIKFDGKLAVAGILFSWLWSCAWTAPPIFGWSRYWPHGLKTSCGPDVFSGSSDPGVQSYMVVLMVTCCFFPLAIIILCYLQVWLAIRAVAAQQKESESTQKAEKEVSRMVVVMIVAYCFCWGPYTFFACFAAANPGYAFHPLAAALPAYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVDDG-----SEVVSSVSNSSVSPA
->IL8B_BOVIN
-EGFEDEFGNYSGTPPTEDYDYSPC----EISTETLNKYAVVVIDALVFLLSLLGNSLVMLVILYSRIGRSVTDVYLLNLAMADLLFAMTLPIWTASKAKG--WVFGTPLCKVVSLLKEVNFYSGILLLACISMDRYLAIVHATRTLTQKWHWVKFICLGIWALSVILALPIFIFREAYQ-YS-DLVCYED-LGANTTKWRMIMRVLPQTFGFLLPLLVMLFCYGFTLRTL---------FSAQMGHKHRAMRVIFAVVLVFLLCWLPYNLVLIADTLMRAHNDIGRALDATEILGFLHSCLNPLIYVFIGQKFRHGLLKIMAIHGLISKEFLAKDG------------
->OPSD_MACFA
-MNGTEGPNFYVPFSNATGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNAEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLFGWSRYIPEGLQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEARAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPAFFAKSASIYNPVIYIMMNKQFRNCMLTTICCGKNPLGDDEASATVSKTETSQVAPA
->5H2B_RAT
-ILQKTCDHLILTDRSGLKAESAAEEMKQTAENQGNTVHWAALLIFAVIIPTIGGNILVILAVSLEKRLQYATNYFLMSLAVADLLVGLFVMPIALLTIMFEAWPLPLALCPAWLFLDVLFSTASIMHLCAISLDRYIAIKKPIANQCNSRTTAFVKITVVWLISIGIAIPVPIKGIEA-NA---ITCELT------KDRFGSFMLFGSLAAFFAPLTIMIVTYFLTIHALRKKRRMGKKPAQTISNEQRASKVLGIVFLFFLLMWCPFFITNVTLALCDSCTTLKTLLQIFVWVGYVSSGVNPLIYTLFNKTFREAFGRYITCNYQATKSVKVLRKGNSMVENSKFFT
->OPSR_ANOCA
-NDEDDTTRDSLFTYTNSNNTRGPFEGPNYHIAPRWVYNITSVWMIFVVIASIFTNGLVLVATAKFKKLRHPLNWILVNLAIADLGETVIASTISVINQISGYFILGHPMCVLEGYTVSTCGISALWSLAVISWERWVVVCKPFGNVKFDAKLAVAGIVFSWVWSAVWTAPPVFGWSRYWPHGLKTSCGPDVFSGSDDPGVLSYMIVLMITCCFIPLAVILLCYLQVWLAIRAVAAQQKESESTQKAEKEVSRMVVVMIIAYCFCWGPYTVFACFAAANPGYAFHPLAAALPAYFAKSATIYNPIIYVFMNRQFRNCIMQLFGKKVDDG-----SELVSSVSNSSVSPA
->5H1A_MOUSE
--MDMFSLGQGNNTTTSLEPFGTGGNDTGLSNVTFSYQVITSLLLGTLIFCAVLGNACVVAAIALERSLQNVANYLIGSLAVTDLMVSVLVLPMAALYQVLNKWTLGQVTCDLFIALDVLCCTSSILHLCAIALDRYWAITDPIYVNKRTPRRAAALISLTWLIGFLISIPPMLGWRA---NP--NECTIS--------KDHGYTIYSTFGAFYIPLLLMLVLYGRIFRAARFRKNEEAKRKMALARERKTVKTLGIIMGTFILCWLPFFIVALVLPFCESSHMPELLGAIINWLGYSNSLLNPVIYAYFNKDFQNAFKKIIKCKFCR---------------------
->CCR4_HUMAN
-IYTSDNYTEEMG-SGDYDSMKEPC---FREENANFNKIFLPTIYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAVAN--WYFGNFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQRPRKLLAEKVVYVGVWIPALLLTIPDFIFANVSE-DD-RYICDRF---YPNDLWVVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYIGISIDSFILLENTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->CKR3_MACMU
-MTTSLDTVETFGPTSYDDDMGLLC---EKADVGALIAQFVPPLYSLVFMVGLLGNVVVVMILIKYRRLRIMTNIYLLNLAISDLLFLFTLPFWIHYVRERN-WVFSHGMCKVLSGFYHTGLYSEIFFIILLTIDRYLAIVHAVALRARTVTFGVITSIVTWGLAVLAALPEFIFYGTEK-LF-KTLCSAIYPQDTVYSWRHFHTLKMTILCLALPLLVMAICYTGIIKTL---------LRCPSKKKYKAIRLIFVIMAVFFIFWTPYNVAILISTYQSVLKHLDLFVLATEVIAYSHCCVNPVIYAFVGERFRKYLRHFFHRHVLMHLGKYIPFLT-------SSVS
->OPSD_GLOME
-MNGTEGLNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSVLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYIPLNLAVANLFMVFGGFTTTLYTSLHAYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGLALTWVMAMACAAPPLVGWSRYIPEGMQCSCGIDYYTSRQEVNNESFVIYMFVVHFTIPLVIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVVAFLICWVPYASVAFYIFTHQGSDFGPIFMTIPSFFAKSSSIYNPVIYIMMNKQLRNCMLTTLCCGRNPLGDDEASTTASKTETSQVAPA
->FMLR_MOUSE
----MDTNMSLLMNKSAVNLMNVSGSTQSVSAGYIVLDVFSYLIFAVTFVLGVLGNGLVIWVAGFRMK-HTVTTISYLNLAIADFCFTSTLPFYIASMVMGGHWPFGWFMCKFIYTVIDINLFGSVFLIALIALDRCICVLHPVAQNHRTVSLAKKVIIVPWICAFLLTLPVIIRLTTVPSPWPVEKRKVA------VTMLTVRGIIRFIIGFSTPMSIVAICYGLITTKI---------HRQGLIKSSRPLRVLSFVVAAFFLCWCPFQVVALISTIQVREPGIVTALKITSPLAFFNSCLNPMLYVFMGQDFRERLIHSLPASLERALTEDSAQTGT----------
->OPSD_LAMJA
-MNGTEGDNFYVPFSNKTGLARSPYEYPQYYLAEPWKYSALAAYMFFLILVGFPVNFLTLFVTVQHKKLRTPLNYILLNLAMANLFMVLFGFTVTMYTSMNGYFVFGPTMCSIEGFFATLGGEVALWSLVVLAIERYIVICKPMGNFRFGNTHAIMGVAFTWIMALACAAPPLVGWSRYIPEGMQCSCGPDYYTLNPNFNNESYVVYMFVVHFLVPFVIIFFCYGRLLCTVKEAAAAQQESASTQKAEKEVTRMVVLMVIGFLVCWVPYASVAFYIFTHQGSDFGATFMTLPAFFAKSSALYNPVIYILMNKQFRNCMITTLCCGKNPLGDDESGASVSSVSTSPVSPA
->C5AR_CAVPO
----MMVTVSYDYDYNSTFLPDGFVD--NYVERLSFGDLVAVVIMVVVFLVGVPGNALVVWVTACEAR-RHINAIWFLNLAAADLLSCLALPILLVSTVHLNHWYFGDTACKVLPSLILLNMYTSILLLATISADRLLLVLSPICQRFRGGCLAWTACGLAWVLALLLSSPSFLYRRTHN-SF--VYCVTD-YG-RDISKERAVALVRLLVGFIVPLITLTACYTFLLLRT---------WSRKATRSAKTVKVVVAVVSSFFVFWLPYQVTGILLAWHSPNRNTKALDAVCVAFAYINCCINPIIYVVAGHGFQGRLLKSLPSVLRNVLTEESLDKSTVD--------
->P2Y8_.ENLA
-ATSYPTFLTTPYLPMKLLMNLTNDTEDICVFDEGFKFLLLPVSYSAVFMVGLPLNIAAMWIFIAKMRPWNPTTVYMFNLALSDTLYVLSLPTLVYYYADKNNWPFGEVLCKLVRFLFYANLYSSILFLTCISVHRYRGVCHPISLRRMNAKHAYVICALVWLSVTLCLVPNLIFVTVS-----NTICHDT-TRPEDFARYVEYSTAIMCLLFGIPCLIIAGCYGLMTRELMKP---SGNQQTLPSYKKRSIKTIIFVMIAFAICFMPFHITRTLYYYARLLNVINVTYKVTRPLASANSCIDPILYFLANDRYRRRLIRTVRRRSSVPNRRCMHTNMTAGPLPVISAE
->5H1D_FUGRU
-ELDNNSLDYFSSNFTDIPSN--TTVAHWTEATLLGLQISVSVVLAIVTLATMLSNAFVIATIFLTRKLHTPANFLIGSLAVTDMLVSILVMPISIVYTVSKTWSLGQIVCDIWLSSDITFCTASILHLCVIALDRYWAITDALYSKRRTMRRAAVMVAVVWVISISISMPPLFWR----H-E--KECMVN-------TDQISYTLYSTFGAFYVPTVLLIILYGRIYVAARSRKLALERKRLCAARERKATKTLGIILGAFIICWLPFFVVTLVWAICKEC-FDPLLFDVFTWLGYLNSLINPVIYTVFNDEFKQAFQKLIKFRR-----------------------
->5HT_LYMST
-TGQFINGSHSSRSRDNASANDTDDRYWSLTVYSHEHLVLTSVILGLFVLCCIIGNCFVIAAVMLERSLHNVANYLILSLAVADLMVAVLVMPLSVVSEISKVWFLHSEVCDMWISVDVLCCTASILHLVAIAMDRYWAVTSI-YIRRRSARRILLMIMVVWIVALFISIPPLFGWRD-PD-K--GTCIIS--------QDKGYTIFSTVGAFYLPMLVMMIIYIRIWLVARSRNDTRTREKLELKRERKAARTLAIITGAFLICWLPFFIIALIGPFVDPEGIPPFARSFVLWLGYFNSLLNPIIYTIFSPEFRSAFQKILFGKYRRGHR------------------
->5H6_HUMAN
------------MVPEPGPTANSTPAWGAGPPSAPGGSGWVAAALCVVIALTAAANSLLIALICTQPARNTS-NFFLVSLFTSDLMVGLVVMPPAMLNALYGRWVLARGLCLLWTAFDVMCCSASILNLCLISLDRYLLILSPLYKLRMTPLRALALVLGAWSLAALASFLPLLLGWH---E-VPGQCRLL--------ASLPFVLVASGLTFFLPSGAICFTYCRILLAARKQVESRRLATKHSRKALKASLTLGILLGMFFVTWLPFFVANIVQAVCDC--ISPGLFDVLTWLGYCNSTMNPIIYPLFMRDFKRALGRFLPCPRCPRERQASLASSGPRPG-LSLQQ
->AG2R_MERUN
-------MALNSSADDGIKRIQDDC---PKAGRHSYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPVWAVYTAMEYRWPFGNHLCKIASAGISFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCVVIWLLAGLASLPAVIHRNVYF-TN--TVCAFH-YESQNSTLPVGLGLTKNILGFMFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFRIIMAIVLFFFFSWIPHQIFTFLDVLIQLGDVVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSSLSTRPSD-------N
->GRHR_HORSE
---MANSDSLEQDPNHCSAINNSIPLIQGKLPTLTVSGKIRVTVTFFLFLLSTAFNASFLLKLQKWTQKLSRMKVLLKHLTLANLLETLIVMPLDGMWNITVQWYAGEFLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITQPL-AVQSNSKLEQSMISLAWILSIVFAGPQLYIFRMIYTV--FSQCVTH--SFPQWWHQAFYNFFTFGCLFIIPLLIMLICNAKIIFALTRVPRKNQSKNNIPRARLRTLKMTVAFATSFVVCWTPYYVLGIWYWFDPEMRVSDPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->REIS_TODPA
----------------------MFGNPAMTGLHQFTMWEHYFTGSIYLVLGCVVFSLCGMCIIFLARQKPRRKYAILIHVLITAMAVNGGDPAHASSSIVGR-WLYGSVGCQLMGFWGFFGGMSHIWMLFAFAMERYMAVCHREFYQQMPSVYYSIIVGLMYTFGTFWATMPLLGWASYGLEVHGTSCTIN--YSVSDESYQSYVFFLAIFSFIFPMVSGWYAISKAWSGLSAIPD-EKEKDKDILSEEQLTALAGAFILISLISWSGFGYVAIYSALTHGGQLSHLRGHVPPIMSKTGCALFPLLIFLLTARSLPKSDTKKP--------------------------
->GRPR_RAT
-NCSHLNLEVDPFLSCNNTFNQTLSPPKMDNWFHPGIIYVIPAVYGLIIVIGLIGNITLIKIFCTVKSMRNVPNLFISSLALGDLLLLVTCAPVDASKYLADRWLFGRIGCKLIPFIQLTSVGVSVFTLTALSADRYKAIVRPMIQASHALMKICLKAALIWIVSMLLAIPEAVFSDLHPQT--FISCAPY---HSNELHPKIHSMASFLVFYIIPLSIISVYYYFIARNLIQSLPVNIHVKKQIESRKRLAKTVLVFVGLFAFCWLPNHVIYLYRSYHYSEMLHFITSICARLLAFTNSCVNPFALYLLSKSFRKQFNTQLLCCQPSLLNR--SHSMTSFKSTNP-SA
->CKR5_MACMU
-----MDYQVSSPTYDIDYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLLFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKMVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->B4AR_MELGA
---------------MTPLPAGNGSVPNCSWAAVLSRQWAVGAALSITILVIVAGNLLVIVAIAKTPRLQTMTNVFVTSLACADLVMGLLVVPPGATILLSGHWPYGTVVCELWTSLDVLCVTASIETLCAIAVDRYLAITAPLYEALVTKGRAWAVVCMVWAISAFISFLPIMNHWWRDV-R--RCCDFV--------TNMTYAIVSSTVSFYVPLLVMIFVYVRVFAVATRHSRGRRPSRLLAIKEHKALKTLGIIMGTFTLCWLPFFVANIIKVFCRPL-VPDQLFLFLNWLGYVNSAFNPIIYCRSP-DFRSAFRKLLCCPRRADRRLHAAPQAFSPRGDPMEDS
->OPSV_.ENLA
------MLEEEDFYLFKNVSNVSPFDGPQYHIAPKWAFTLQAIFMGMVFLIGTPLNFIVLLVTIKYKKLRQPLNYILVNITVGGFLMCIFSIFPVFVSSSQGYFFFGRIACSIDAFVGTLTGLVTGWSLAFLAFERYIVICKPMGNFNFSSSHALAVVICTWIIGIVVSVPPFLGWSRYMPEGLQCSCGPDWYTVGTKYRSEYYTWFIFIFCFVIPLSLICFSYGRLLGALRAVAAQQQESASTQKAEREVSRMVIFMVGSFCLCYVPYAAMAMYMVTNRNHGLDLRLVTIPAFFSKSSCVYNPIIYSFMNKQFRGCIMETVCGRPMSD--DSSVSSSTVSSSQVSPA-
->OPSG_ORYLA
-ENGTEGKNFYIPMNNRTGLVRSPYEYPQYYLADPWQFKLLGIYMFFLILTGFPINALTLVVTAQNKKLRQPLNFILVNLAVAGLIMVCFGFTVCIYSCMVGYFSLGPLGCTIEGFMATLGGQVSLWSLVVLAIERYIVVCKPMGSFKFTATHSAAGCAFTWIMASSCAVPPLVGWSRYIPEGIQVSCGPDYYTLAPGFNNESFVMYMFSCHFCVPVFTIFFTYGSLVMTVKAAAAQQQDSASTQKAEKEVTRMCFLMVLGFLLAWVPYASYAAWIFFNRGAAFSAMSMAIPSFFSKSSALFNPIIYILLNKQFRNCMLATIGMGG-----------VSTSKTEVSTAA
->NY6R_RABIT
---MEVSLNDPASNKTSAKSNSSAFFYFESCQSPSLALLLLLIAYTVVLIMGICGNLSLITIIFKKQRAQNVTNILIANLSLSDILVCVMCIPFTAIYTLMDRWIFGNTMCKLTSYVQSVSISVSIFSLVLIAIERYQLIVNPR-GWKPSASHAYWGIMLIWLFSLLLSIPLLLSYHLTDSH--HVVCVEH---WPSKTNQLLYSTSLIMLQYFVPLGFMFICYLKIVICLHKRNSKRRENESRLTENKRINTMLISIVVTFAACWLPLNTFNVIFDWYHEVCHHDLVFAICHLVAMVSTCINPLFYGFLNRNFQKDLVVLIHHCLCFALRERY---TLHTDESKGSLR
->CCR4_BOVIN
-IFTSDNYTEDDLGSGDYDSMKEPC---FREENAHFNRIFLPTVYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVLTLPFWAVDAVAN--WYFGKFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQKPRKLLAEKVVYVGVWLPAVLLTIPDLIFADIKE-DE-RYICDRF---YPSDLWLVVFQFQHIVVGLLLPGIVILSCYCIIISKL---------SHSKGYQKRKALKTTVILILTFFACWLPYYIGISIDSFILLESTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->OPS2_SCHGR
-YESSVGLPLLGWNVPTEHLDLVHPHWRSFQVPNKYWHFGLAFVYFMLMCMSSLGNGIVLWIYATTKSIRTPSNMFIVNLALFDVLMLLEMPMLVVSSLFYQR-PVWELGCDIYAALGSVAGIGSAINNAAIAFDRYRTISCPI-DGRLTQGQVLALIAGTWVWTLPFTLMPLLRIWSRFAEGFLTTCSFD--YLTDDEDTKVFVGCIFAWSYAFPLCLICCFYYRLIGAVREHNVKSNADTEAQSAEIRIAKVALTIFFLFLCSWTPYAVVAMIGAFGNRAALTPLSTMIPAVTAKIVSCIDPWVYAINHPRFRAEVQKRMKWLHLGEDARSSKSDRTVGNVSASA--
->DADR_HUMAN
---------------MRTLNTSAMDGTGLVVERDFSVRILTACFLSLLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPFG-SFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKAAFILISVAWTLSVLISFIPVQLSWHKAGN-TIDNCDSS--------LSRTYAISSSVISFYIPVAIMIVTYTRIYRIAQKQVECESSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFILNCILPFCGSGCIDSNTFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSTLLGCYRLCPATNNAIETAAMFSSH-----
->THRR_HUMAN
-LTEYRLVSINKSSPLQKQLPAFISEDASGYLTSSWLTLFVPSVYTGVFVVSLPLNIMAIVVFILKMKVKKPAVVYMLHLATADVLFVSVLPFKISYYFSGSDWQFGSELCRFVTAAFYCNMYASILLMTVISIDRFLAVVYPMSLSWRTLGRASFTCLAIWALAIAGVVPLVLKEQTIQ--N--TTCHDVLNETLLEGYYAYYFSAFSAVFFFVPLIISTVCYVSIIRCL------SSSAVANRSKKSRALFLSAAVFCIFIICFGPTNVLLIAHYSFLSHEAAYFAYLLCVCVSSISSCIDPLIYYYASSECQRYVYSILCCKESSDPSSYNSSGDTCS--------
->V2R_HUMAN
-MLMASTTSAVPGHPSLPSLPSNSSQERPLDTRDPLLARAELALLSIVFVAVALSNGLVLAALARRGRHWAPIHVFIGHLCLADLAVALFQVLPQLAWKATDRFRGPDALCRAVKYLQMVGMYASSYMILAMTLDRHRAICRPMAYRHGSGAHWNRPVLVAWAFSLLLSLPQLFIFAQRNSG--VTDCWAC---FAEPWGRRTYVTWIALMVFVAPTLGIAACQVLIFREIHASGRRPGEGAHVSAAVAKTVRMTLVIVVVYVLCWAPFFLVQLWAAWDPEA-LEGAPFVLLMLLASLNSCTNPWIYASFSSSVSSELRSLLCCARGRTPPSLGPQDSSLAKDTSS---
->GALR_HUMAN
-----MELAVGNLSEGNASCPEPPAPEPGPLFGIGVENFVTLVVFGLIFALGVLGNSLVITVLARSKPPRSTTNLFILNLSIADLAYLLFCIPFQATVYALPTWVLGAFICKFIHYFFTVSMLVSIFTLAAMSVDRYVAIVHSRSSSLRVSRNALLGVGCIWALSIAMASPVAYHQGLF-SN--QTFCWEQ---WPDPRHKKAYVVCTFVFGYLLPLLLICFCYAKVLNHLHKKLK--NMSKKSEASKKKTAQTVLVVVVVFGISWLPHHIIHLWAEFGVFPPASFLFRITAHCLAYSNSSVNPIIYAFLSENFRKAYKQVFKCHIRKDSHLSDTKEPPSTNCTHV---
->5H7_RAT
-SSWMPHLLSGFLEVTASPAPTNVSGCGEQINYGRVEKVVIGSILTLITLLTIAGNCLVVISVCFVKKLRQPSNYLIVSLALADLSVAVAVMPFVSVTDLIGGWIFGHFFCNVFIAMDVMCCTASIMTLCVISIDRYLGITRPLYPVRQNGKCMAKMILSVWLLSASITLPPLFGWAQ--N-D--KVCLIS--------QDFGYTIYSTAVAFYIPMSVMLFMYYQIYKAARKSSRLERKNISIFKREQKAATTLGIIVGAFTVCWLPFFLLSTARPFICGTCIPLWVERTCLWLGYANSLINPFIYAFFNRDLRTTYRSLLQCQYRNINRKLSAAGAERPERSEFVLQ
->UL33_RCMVM
-----MDVLLGTEELEDELHQLHFNYTCVPSLGLSVARDAETAVNFLIVLVGGPMNFLVLATQMLSNRSVSTPTLYMTNLYLANLLTVATLPFLMLSNRGL--VGSSPEGCKIAALAYYATCTAGFATLMLIAINRYR-VIHQRRSGAGSKRQTYAVLAVTWLASLMCASPAPLYATVMAA-DAFETCIIYSYDQVK-TVLATFKILITMIWGITPVVMMSWFYVFFYRRL---------KLTSYRRRSQTLTFVTTLMLSFLVVQTPFVAIMSYDSYGVLNNKRDAVSMLARVVPNFHCLLNPVLYAFLGRDFNKRFILCISGKLFSRRRALRERAGPVCALP---SK
->O.YR_MOUSE
-GTPAANWSIELDLGSGVPPGAEGNLTAGPPRRNEALARVEVAVLCLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIADLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLRRRTDRLAVLATWLGCLVASVPQVHIFSLRE----VFDCWAV---FIQPWGPKAYVTWITLAVYIVPVIVLAACYGLISFKIWQNRAAVSSVKLISKAKIRTVKMTFIIVLAFIVCWTPFFFVQMWSVWDVNA-KEASAFIIAMLLASLNSCCNPWIYMLFTGHLFHELVQRFLCCSARYLKGSRPGENSSTFVLSRCSS
->PF2R_RAT
---MSINS---------SKQPASSAAGLIANTTCQTENRLSVFFSIIFMTVGIVSNSLAIAILMKAYQSKASFLLLASGLVITDFFGHLINGGIAVFVYASDKFDQSNILCSVFGISMVFSGLCPLFLGSTMAIERCIGVTNPLHSTKITSKHVKMILSGVCMFAVFVALLPILGHRDYQIQASRTWCFYN--TEHIEDWEDRFYLLFFSSLGLLALGISFSCNAVTGVTLLRVKFRSQQHRQGRSHHLEMVIQLLAIMCVSCVCWSPFLVTMANIAINGNNPVTCETTLFALRMATWNQILDPWVYILLRKAVLRNLYKLASRCCGVNIISLHIWELKVAAISESPAA
->D1DR_FUGRU
---------------MAQNFSTVGDGKQMLLERDSSKRVLTGCFLSLLIFTTLLGNTLVCVAVTKFRHRSKVTNFFVISLAISDLLVAILVMPWKAATEIMGFWPFG-EFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKVACLMISVAWTLSVLISFIPVQLNWHKALN-PPDNCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTRIYRIAQKQSLSECSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFILNCMVPFCEADCISSTTFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSILLGCHRLCPGNS-AIEIAPLSNPSCQYQP
->CKR2_RAT
-HSLFPRSIQELDEGATTPYDYDDGEPCHKTSVKQIGAWILPPLYSLVFIFGFVGNMLVIIILISCKKLKSMTDIYLFNLAISDLLFLLTLPFWAHYAANE--WVFGNIMCKLFTGLYHIGYFGGIFFIILLTIDRYLAIVHAVALKARTVTFGVITSVVTWVVAVFASLPGIIFTKSEQ-ED-QHTCGPY----FPTIWKNFQTIMRNILSLILPLLVMVICYSGILHTL--------FRCRNEKKRHRAVRLIFAIMIVYFLFWTPYNIVLFLTTFQEFLMHLDQAMQVTETLGMTHCCVNPIIYAFVGEKFRRYLSIFFRKHIAKNLCKQCPVFVSSTFTPSTGEQ
->OPRK_HUMAN
-PPNSSAWFPGWAEPDSNGSAGSEDAQLEPAHISPAIPVIITAVYSVVFVVGLVGNSLVMFVIIRYTKMKTATNIYIFNLALADALVTTTMPFQSTVYLMNS-WPFGDVLCKIVISIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPLKAKIINICIWLLSSSVGISAIVLGGTKVDVD-VIECSLQFPDDDYSWWDLFMKICVFIFAFVIPVLIIIVCYTLMILRLKSVRLL-SGSREKDRNLRRITRLVLVVVAVFVVCWTPIHIFILVEALGSTSTAALSSYYFCIALGYTNSSLNPILYAFLDENFKRCFRDFCFPLKMRMERQSTSRVAYLRDIDGMNKP
->ACM3_BOVIN
-N---------ISRAAGNLSSPNGTTSDPLGGHTIWQVVFIAFLTGVLALVTIIGNILVIVAFKVNKQLKTVNNYFLLSLACADLIIGVISMNLFTTYIIMNRWALGNLACDLWLSIDYVASNASVMNLLVISFDRYFSITRPLYRAKRTTKRAGVMIGLAWVISFILWAPAILFWQYFV-VP-PGECFIQ------FLSEPTITFGTAIAAFYMPVTIMTILYWRIYKETEKRKTRTKRKRMSLIKEKKAAQTLSAILLAFIITWTPYNIMVLVNTFCDSC-IPKTYWNLGYWLCYINSTVNPVCYALCNKTFRNTFKMLLLCQCDKRKRRKQQYQHKRVPEQAL---
->C3.1_HUMAN
----MDQFPESVTENFEYDDLAEAC---YIGDIVVFGTVFLSIFYSVIFAIGLVGNLLVVFALTNSKKPKSVTDIYLLNLALSDLLFVATLPFWTHYLINEKG--LHNAMCKFTTAFFFIGFFGSIFFITVISIDRYLAIVLAASMNNRTVQHGVTISLGVWAAAILVAAPQFMFTKQKE-----NECLGDYPEVLQEIWPVLRNVETNFLGFLLPLLIMSYCYFRIIQTL---------FSCKNHKKAKAIKLILLVVIVFFLFWTPYNVMIFLETLKLYDKDLRLALSVTETVAFSHCCLNPLIYAFAGEKFRRYLYHLYGKCLAVLCGRSVHVDRSRHGSVLSSNF
->5H4_HUMAN
-------------------MDKLDANVSSEEGFGSVEKVVLLTFLSTVILMAILGNLLVMVAVCWDRQRKIKTNYFIVSLAFADLLVSVLVMPFGAIELVQDIWIYGEVFCLVRTSLDVLLTTASIFHLCCISLDRYYAICCQPYRNKMTPLRIALMLGGCWVIPTFISFLPIMQGWNNIRK-NSTYCVFM--------VNKPYAITCSVVAFYIPFLLMVLAYYRIYVTAKEHSRPDQHSTHRMRTETKAAKTLCIIMGCFCLCWAPFFVTNIVDPFIDYT-VPGQVWTAFLWLGYINSGLNPFLYAFLNKSFRRAFLIILCCDDERYRRPSILGQTINGSTHVLRDA
->5H2A_PIG
-NTSDAFNWTVDSENRTNLSCEGCLSPPCFSLLHLQEKNWSALLTAVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAVWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHRRFNSRTKAFLKIIAVWTISVGISMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVSFFIPLTIMVITYFLTIKSLQKEREPGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESDVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENKKPLQLILAYKSSQLQTGQK
->OPSD_DIPVU
-MNGTEGPYFYVPMVNTSGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWLMALACAAPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFICHFSIPLLVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVIMMVIAFLVCWLPYASVAWWIFTHQGSDFGPVFMTIPAFFAKSSSIYNPMIYICLNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->HH1R_HUMAN
-----------MSLPNSSCLLEDKMCEGNKTTMASPQLMPLVVVLSTICLVTVGLNLLVLYAVRSERKLHTVGNLYIVSLSVADLIVGAVVMPMNILYLLMSKWSLGRPLCLFWLSMDYVASTASIFSVFILCIDRYRSVQQPLYLKYRTKTRASATILGAWFLSFLWVIPILGWNHFM--VR-EDKCETD------FYDVTWFKVMTAIINFYLPTLLMLWFYAKIYKAVRQHLRSQYVSGLHMNRERKAAKQLGFIMAAFILCWIPYFIFFMVIAFCKNC-CNEHLHMFTIWLGYINSTLNPLIYPLCNENFKKTFKRILHIRS-----------------------
->OPSD_DELDE
-MNGTEGLNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSVLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVANLFMVFGGFTTTLYTSLHAYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGLALTWIMAMACAAPPLVGWSRYIPEGMQCSCGIDYYTLSPEVNNESFVIYMFVVHFTIPLVIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVVAFLICWVPYASVAFYIFTHQGSDFGPIFMTIPSFFAKSSSIYNPVIYIMMNKQFRNCMLTTLCCGRNPLGDDEASTTASKTETSQVAPA
->OPS1_DROME
-PLS---NGSVVDKVTPDMAHLISPYWNQFPAMDPIWAKILTAYMIMIGMISWCGNGVVIYIFATTKSLRTPANLLVINLAISDFGIMITNTPMMGINLYFETWVLGPMMCDIYAGLGSAFGCSSIWSMCMISLDRYQVIVKGMAGRPMTIPLALGKIAYIWFMSSIWCLAPAFGWSRYVPEGNLTSCGID--YLERDWNPRSYLIFYSIFVYYIPLFLICYSYWFIIAAVSAHMNVRSSEDAEKSAEGKLAKVALVTITLWFMAWTPYLVINCMGLFKFEG-LTPLNTIWGACFAKSAACYNPIVYGISHPKYRLALKEKCPCCVFGKVDDGKSSDSEAESKA-----
->RGR_BOVIN
----------------------MAESGTLPTGFGELEVLAVGTVLLVEALSGLSLNILTILSFCKTPELRTPSHLLVLSLALADSGIS-LNALVAATSSLLRRWPYGSEGCQAHGFQGFVTALASICSSAAVAWGRYHHFCTRS---RLDWNTAVSLVFFVWLSSAFWAALPLLGWGHYDYEPLGTCCTLD--YSRGDRNFTSFLFTMAFFNFLLPLFITVVSYRLME--------------QKLGKTSRPPVNTVLPARTLLLGWGPYALLYLYATIADATSISPKLQMVPALIAKAVPTVNAMNYALGSEMVHRGIWQCLSPQRREHSREQ----------------
->VU51_HSV6U
-----------------MEKETKSLAWPATAEFYGWVFIFSSIQLCTMVLLTVRFNSFKVGR-E--------YAVFTFAGMSFNCFLLPIKMGLLSGH-----WSLPRDFCAILLYIDDFSIYFSSWSLVFMAIERINHFCYSTLLNENSKALAKVCFPIVWIISGVQALQMLNNYKATA---ETPQCFLA--------FRSGYDMWLMLVYSVMIPVMLVFIYIYSKNFM-----------LLKDELSTVTTYLCIYLLLGTIAHLPKAGLSEIESD----KIFYGLRDIFMALPVLKVYYIPVMAYCMACDDHTVPVRLCSIWLVNLCKKCFSCTLEVGIKMLK---
->A1AA_ORYLA
------------MTPSSVTLNCSNCSHVLAPELNTVKAVVLGMVLGIFILFGVIGNILVILSVVCHRHLQTVTYYFIVNLAVADLLLSSTVLPFSAIFEILDRWVFGRVFCNIWAAVDVLCCTASIMSLCVISVDRYIGVSYPLYPAIMTKRRALLAVMLLWVLSVIISIGPLFGWKEP--AP--TVCKIT--------EEPGYAIFSAVGSFYLPLAIILAMYCRVYVVAQKELRSFALRLLKFSREKKAAKTLGIVVGCFVLCWLPFFLVLPIGSIFPAYRPSDTVFKITFWLGYFNSCINPIIYLCSNQEFKKAFQSLLGVHCLRMTPRAHHHHTQGHSLT-----
->B1AR_BOVIN
-VPDGAATAARLLVPASPPASLLTSASEGPPLPSQQWTAGMGLLMAFIVLLIVVGNVLVLVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARALVCTVWAISALVSFLPIFMQWWGDS-R--ECCDFI--------INEGYAITSSVVSFYVPLCIMAFVYLRVFREAQKQPGRRRPPRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCCARRAACGSHAAAGCLAVARPSPSPG
->OPSH_ASTFA
-NE--DTTRESAFVYTNANNTRDPFEGPNYHIAPRWVYNVSSLWMIFVVIASVFTNGLVIVATAKFKKLRHPLNWILVNLAIADLGETVLASTISVINQIFGYFILGHPMCVFEGWTVSVCGITALWSLTIISWERWVVVCKPFGNVKFDGKWAAGGIIFSWVWAIIWCTPPIFGWSRYWPHGLKTSCGPDVFSGSEDPGVASYMITLMLTCCILPLSIIIICYIFVWSAIHQVAQQQKDSESTQKAEKEVSRMVVVMILAFIVCWGPYASFATFSAVNPGYAWHPLAAAMPAYFAKSATIYNPIIYVFMNRQFRSCIMQLFGKKVEDA-----SEVSTAS--------
->OL15_MOUSE
--------------MEVDSNSSSGTFILMGVSDHPHLEIIFFAVILASYLLTLVGNLTIILLSRLDARLHTPMYFFLSNLSSLDLAFTTSSVPQMLKNLWGPDKTISYGGCVTQLYVFLWLGATECILLVVMAFDRYVAVCRPLYMTVMNPRLCWGLAAISWLGGLGNSVIQSTFTLQL---PDNFLCEVPKLACGDTSLNEAVLNGVCTFFTVVPVSVILVSYCFIAQAV--------MKIRSVEGRRKAFNTCVSHLVVVFLFYGSAIYGYLLPAKSS---NQSQGKFISLFYSVVTPMVNPLIYTLRNKEVKGALGRLLGKGRGAS--------------------
->ETBR_HUMAN
-SLAPAEVPKGDRTAGSPPRTISPPPCQGPIEIKETFKYINTVVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIVIDIPINVYKLLAEDWPFGAEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEAIGFDIITRI--LRICLLHQKTAFMQFYKTAKDWWLFSFYFCLPLAITAFFYTLMTCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKLTLYNQSFLLVLDYIGINMASLNSCINPIALYLVSKRFKNCFKSCLCCWCQSFE-EKQSLEFKANDHGYDNFR
->PE23_MOUSE
----------MASMWAPEHSAEAHSNLS---STTDDCGSVSVAFPITMMVTGFVGNALAMLLVSRSYRRKKSFLLCIGWLALTDLVGQLLTSPVVILVYLSQRLDPSGRLCTFFGLTMTVFGLSSLLVASAMAVERALAIRAPHYASHMKTRAT-PVLLGVWLSVLAFALLPVLGVG----RYSGTWCFISNETDPAREPGSVAFASAFACLGLLALVVTFACNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKMIFNQMSEKECNSFLIAVRLASLNQILDPWVYLLLRKILLRKFCQIRDHTN-YASSSTSLPCWSDQLER-----
->TA2R_MOUSE
---MWPNG-----------TSLGACFRPVNITLQERRAIASPWFAASFCALGLGSNLLALSVLAGARPPRSSFLALLCGLVLTDFLGLLVTGAIVASQHAALLTDPSCRLCYFMGVAMVFFGLCPLLLGAAMASERFVGITRPFSRPTATSRRAWATVGLVWVAAGALGLLPLLGLGRYSVQYPGSWCFLT----LGTQRGDVVFGLIFALLGSASVGLSLLLNTVSVATLCRVYHTREATQRPRDCEVEMMVQLVGIMVVATVCWMPLLVFIMQTLLQTPPRATEHQLLIYLRVATWNQILDPWVYILFRRSVLRRLHPRFSSQLQAVSLRRPPAQ------------
->ACM3_HUMAN
-N---------VSRAAGNFSSPDGTTDDPLGGHTVWQVVFIAFLTGILALVTIIGNILVIVSFKVNKQLKTVNNYFLLSLACADLIIGVISMNLFTTYIIMNRWALGNLACDLWLAIDYVASNASVMNLLVISFDRYFSITRPLYRAKRTTKRAGVMIGLAWVISFVLWAPAILFWQYFV-VP-PGECFIQ------FLSEPTITFGTAIAAFYMPVTIMTILYWRIYKETEKRKTRTKRKRMSLVKEKKAAQTLSAILLAFIITWTPYNIMVLVNTFCDSC-IPKTFWNLGYWLCYINSTVNPVCYALCNKTFRTTFKMLLLCQCDKKKRRKQQYQHKRAPEQAL---
->CCR4_FELCA
-IYPSDNYTEDDLGSGDYDSMKEPC---FREENAHFNRIFLPTVYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVLTLPFWAVDAVAN--WYFGKFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQRPRKLLAEKVVYVGVWIPALLLTIPDFIFANVRE-DG-RYICDRF---YPSDSWLVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGYQKRKALKTTVILILAFFACWLPYYIGISIDSFILLESTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->GPRJ_MOUSE
-AEAAEALLPHGLMGLHEEHSWMSNRTELQYELNPGEVATASIFFGALWLFSIFGNSLVCLVIHRSRRTQSTTNYFVVSMACADLLISVASTPFVVLQFTTGRWTLGSAMCKVVRYFQYLTPGVQIYVLLSICIDRFYTIVYPL-SFKVSREKAKKMIAASWILDAAFVTPVFFFYG---SNW-HCNYFLP-----PSWEGTAYTVIHFLVGFVIPSILIILFYQKVIKYIWRIDGR-RTMNIVPRTKVKTVKMFLLLNLVFLFSWLPFHVAQLWHPHEQDYKKSSLVFTAVTWVSFSSSASKPTLYSIYNANFRRGMKETFCMSSMKCYRSNAYTIKRNYVGISEIPP
->AA2B_MOUSE
-------------------------------MQLETQDALYVALELVIAALAVAGNVLVCAAVGASSALQTPTNYFLVSLATADVAVGLFAIPFAITISLG--FCTDFHGCLFLACFVLVLTQSSIFSLLAVAVDRYLAIRVPLYKGLVTGTRARGIIAVLWVLAFGIGLTPFLGWNSKDI-A-PLTCLFE-----NVVPMSYMVYFNFFGCVLPPLLIMLVIYIKIFMVACKQ---MDHSRTTLQREIHAAKSLAMIVGIFALCWLPVHAINCITLFHPALDKPKWVMNVAILLSHANSVVNPIVYAYRNRDFRYSFHKIISRYVLCQAETKGGSGLSLGL-------
->MAS_HUMAN
------MDGSNVTSFVVEEPTNISTGRNASVGNAHRQIPIVHWVIMSISPVGFVENGILLWFLCFRMR-RNPFTVYITHLSIADISLLFCIFILSIDYALDYESSGHYYTIVTLSVTFLFGYNTGLYLLTAISVERCLSVLYPIYRCHRPKYQSALVCALLWALSCLVTTMEYVMCI-DRHS--RNDC-----------RAVIIFIAILSFLVFTPLMLVSSTILVVKIRK----------NTWASHSSKLYIVIMVTIIIFLIFAMPMRLLYLLYYEYW--STFGNLHHISLLFSTINSSANPFIYFFVGSSKKKRFKESLKVVLTRAFKDEMQPRTVTVETVV----
->TSHR_SHEEP
-LQAFDNHYDYTVCGGSEEMVCTPKSDEFNPCEDIMGYKFLRIVVWFVSLLALLGNVFVLVILLTSHYKLTVPRFLMCNLAFADFCMGLYLLLIASVDLYTQSWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWYAITFAMLDRKIRLWHAYVIMLGGWVCCFLLALLPLVGISSY----KVSICLPM-----TETPLALAYIILVLLLNIIAFIIVCACYVKIYITVRNP------HYNPGDKDTRIAKRMAVLIFTDFMCMAPISFYALSALMNKPLITVTNSKILLVLFYPLNSCANPFLYAIFTKAFQRDVFMLLSKFGICKRQAQAYRGSTGIRVQKVPPD
->NK2R_BOVIN
-----MGACVVMTDINISSGLDSNATGITAFSMPGWQLALWTAAYLALVLVAVMGNATVIWIILAHQRMRTVTNYFIVNLALADLCMAAFNAAFNFVYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAADRYMAIVHPF-QPRLSAPGTRAVIAGIWLVALALAFPQCFYST---GA---TKCVVAWPEDSGGKMLLLYHLIVIALIYFLPLVVMFVAYSVIGLTLWRRGHQHGANLRHLQAKKKFVKTMVLVVVTFAICWLPYHLYFILGTFQEDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWVTPTEE----YTPSLSTRVNRC
->5H2C_MOUSE
-LLVWQFDISISPVAAIVTDTFNSSDGGRLFQFPDGVQNWPALSIVVIIIMTIGGNILVIMAVSMEKKLHNATNYFLMSLAIADMLVGLLVMPLSLLAILYDYWPLPRYLCPVWISLDVLFSTASIMHLCAISLDRYVAVRSPVHSRFNSRTKAIMKIAIVWAISIGVSVPIPVIGLRD-VF--NTTCVL---------NDPNFVLIGSFVAFFIPLTIMVITYFLTIYVLRRQKKKPRGTMQAINNEKKASKVLGIVFFVFLIMWCPFFITNILSVLCGKAKLMEKLLNVFVWIGYVCSGINPLVYTLFNKIYRRAFSKYLRCDYKPDKKPPVRQIALSGRELNVNIY
->OLF1_CHICK
--------------MASGNCTTPTTFILSGLTDNPGLQMPLFMVFLAIYTITLLTNLGLIALISVDLHLQTPMYIFLQNLSFTDAAYSTVITPKMLATFLEERKTISYVGCILQYFSFVLLTVTESLLLAVMAYDRYVAICKPLYPSIMTKAVCWRLVESLYFLAFLNSLVHTSGLLKL---SNHFFCDISQISSSSIAISELLVIISGSLFVMSSIIIILISYVFIILTV--------VMIRSKDGKYKAFSTCTSHLMAVSLFHGTVIFMYLRPVKLF---SLDTDKIASLFYTVVIPMLNPLIYSWRNKEVKDALRRLTATTFGFIDSKAVQ--------------
->O.2R_RAT
-ASELNETQEPFLNPTDYDDEEFLRYLWREYLHPKEYEWVLIAGYIIVFVVALIGNVLVCVAVWKNHHMRTVTNYFIVNLSLADVLVTITCLPATLVVDITETWFFGQSLCKVIPYLQTVSVSVSVLTLSCIALDRWYAICHPL-MFKSTAKRARNSIVVIWIVSCIIMIPQAIVMERSSKTTLFTVCDER---WGGEVYPKMYHICFFLVTYMAPLCLMVLAYLQIFRKLWCRKARVAAEIKQIRARRKTARMLMVVLLVFAICYLPISILNVLKRVFGMFETVYAWFTFSHWLVYANSAANPIIYNFLSGKFREEFKAAFSCCLG-VHRRQGDRLESRKSLTTQISN
->CKR8_MOUSE
-DYTMEPNVTMT--DYYPDFFTAPC---DAEFLLRGSMLYLAILYCVLFVLGLLGNSLVILVLVGCKKLRSITDIYLLNLAASDLLFVLSIPFQTHNLLDQ--WVFGTAMCKVVSGLYYIGFFSSMFFITLMSVDRYLAIVHAVAIKVRTASVGTALSLTVWLAAVTATIPLMVFYQVAS-ED-MLQCFQF-YEEQSLRWKLFTHFEINALGLLLPFAILLFCYVRILQQL---------RGCLNHNRTRAIKLVLTVVIVSLLFWVPFNVALFLTSLHDLHQRLALAIHVTEVISFTHCCVNPVIYAFIGEKFKKHLMDVFQKS-CSHIFLYLGRQRQ------LSSN
->GPRF_MACNE
-----MDPEETSVYLDYYYATSPNPDIRETHSHVPYTSVFLPVFYTAVFLTGVLGNLVLMGALHFKPGSRRLIDIFIINLAASDFIFLVTLPLWVDKEASLGLWRTGSFLCKGSSYMISVNMHCSVFLLTCMSVDRYLAIVCPVSRKFRRTDCAYVVCASIWFISCLLGLPTLLSRELT-IDD-KPYCAEK----KATPLKLIWSLVALIFTFFVPLLSIVTCYCCIARKLCAH---YQQSGKHNKKLKKSIKIIFIVVAAFLVSWLPFNTSKLLAIVSGLQAILQLGMEVSGPLAFANSCVNPFIYYIFDSYIRRAIVHCLCPCLKNYDFGSSTETALSTFIHAEDFT
->MC3R_MOUSE
-NSSCCLSSVSPMLPNLSEHPAAPPASNRSGSGFCEQVFIKPEVFLALGIVSLMENILVILAVVRNGNLHSPMYFFLCSLAAADMLVSLSNSLETIMIAVINSDQFIQHMDNIFDSMICISLVASICNLLAIAIDRYVTIFYALYHSIMTVRKALTLIGVIWVCCGICGVMFIIYYS----------------------EESKMVIVCLITMFFAMVLLMGTLYIHMFLFARLHIAVAGVVAPQQHSCMKGAVTITILLGVFIFCWAPFFLHLVLIITCPTNICYTAHFNTYLVLIMCNSVIDPLIYAFRSLELRNTFKEILCGCNSMNLG------------------
->CCR5_RAT
-DDLYKELAIYSNSTEIPLQDSIFCSTEEGPLLTSFKTIFMPVAYSLIFLLGMMGNILVLVILERHRHTRSSTETFLFHLAVADLLLVFILPFAVAEGSVG--WVLGTFLCKTVIALHKINFYCSSLLLACIAVDRYLAIVHAVAYRRRRLLSIHITCSTIWLAGFLFALPELLFAKVVQ-NE-LPQCIFSQENEAETRAWFASRFLYHTGGFLLPMLVMAWCYVGVVHRL--------LQAQRRPQRQKAVRVAILVTSIFLLCWSPYHIVIFLDTLERLKGYLSVAITLCEFLGLAHCCLNPMLYTFAGVKFRSDLSRLLTKLGCAG---PASLC--------PGWR
->OPSD_LOLFO
----MGRDIPDNETWWYNPYMDIHPHWKQFDQVPAAVYYSLGIFIAICGIIGCVGNGVVIYLFTKTKSLQTPANMFIINLAFSDFTFSLVNGFPLMTISCFMKWVFGNAACKVYGLIGGIFGLMSIMTMTMISIDRYNVIGRPMASKKMSHRKAFIMIIFVWIWSTIWAIGPIFGWGAYTLEGVLCNCSFD--YITRDTTTRSNILCMYIFAFMCPIVVIFFCYFNIVMSVSNHRLNLRKAQAGANAEMKLAKISIVIVTQFLLSWSPYAVVALLAQFGPIEWVTPYAAQLPVMFAKASAIHNPMIYSVSHPKFRERIASNFPWILTCCQYDEKEIEEIPAGEQS-GGE
->OPSD_TODPA
-----GRDLRDNETWWYNPSIVVHPHWREFDQVPDAVYYSLGIFIGICGIIGCGGNGIVIYLFTKTKSLQTPANMFIINLAFSDFTFSLVNGFPLMTISCFLKWIFGFAACKVYGFIGGIFGFMSIMTMAMISIDRYNVIGRPMASKKMSHRRAFIMIIFVWLWSVLWAIGPIFGWGAYTLEGVLCNCSFD--YISRDSTTRSNILCMFILGFFGPILIIFFCYFNIVMSVSNHRLNLRKAQAGANAEMRLAKISIVIVSQFLLSWSPYAVVALLAQFGPLEWVTPYAAQLPVMFAKASAIHNPMIYSVSHPKFREAISQTFPWVLTCCQFDDKETEEIPAGESSDAAP
->OPRK_RAT
-LPNSSSWFPNWAESDSNGSVGSEDQQLEPAHISPAIPVIITAVYSVVFVVGLVGNSLVMFVIIRYTKMKTATNIYIFNLALADALVTTTMPFQSAVYLMNS-WPFGDVLCKIVISIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPLKAKIINICIWLLASSVGISAIVLGGTKVDVD-VIECSLQFPDDEYSWWDLFMKICVFVFAFVIPVLIIIVCYTLMILRLKSVRLL-SGSREKDRNLRRITKLVLVVVAVFIICWTPIHIFILVEALGSTSTAVLSSYYFCIALGYTNSSLNPVLYAFLDENFKRCFRDFCFPIKMRMERQSTNRVASMRDVGGMNKP
->ACM4_RAT
-------M-NFTPVNGSSANQSVRLVTAAHNHLETVEMVFIATVTGSLSLVTVVGNILVMLSIKVNRQLQTVNNYFLFSLGCADLIIGAFSMNLYTLYIIKGYWPLGAVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPARRTTKMAGLMIAAAWVLSFVLWAPAILFWQFVV-VP-DNQCFIQ------FLSNPAVTFGTAIAAFYLPVVIMTVLYIHISLASRSRSIAVRKKRQMAARERKVTRTIFAILLAFILTWTPYNVMVLVNTFCQSC-IPERVWSIGYWLCYVNSTINPACYALCNATFKKTFRHLLLCQYRNIGTAR----------------
->SSR3_RAT
-SVPTTLDPGNASSAWPLDTSLGNASAGTSLAGLAVSGILISLVYLVVCVVGLLGNSLVIYVVLRHTSSPSVTSVYILNLALADELFMLGLPFLAAQNALSY-WPFGSLMCRLVMAVDGINQFTSIFCLTVMSVDRYLAVVHPTSARWRTAPVARMVSAAVWVASAVVVLPVVVFSGVPR-----STCHMQ-WPEPAAAWRTAFIIYTAALGFFGPLLVICLCYLLIVVKVRSTSCQAPACQRRRRSERRVTRMVVAVVALFVLCWMPFYLLNIVNVVCPLPPAFFGLYFLVVALPYANSCANPILYGFLSYRFKQGFRRILLRPSRRVRSQEPGSGEEDEEEEERREE
->OPSD_HUMAN
-MNGTEGPNFYVPFSNATGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVLGGFTSTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLAGWSRYIPEGLQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPAFFAKSAAIYNPVIYIMMNKQFRNCMLTTICCGKNPLGDDEASATVSKTETSQVAPA
->OPSG_GECGE
-RDDDDTTRGSVFTYTNTNNTRGPFEGPNYHIAPRWVYNLVSFFMIIVVIASCFTNGLVLVATAKFKKLRHPLNWILVNLAFVDLVETLVASTISVFNQIFGYFILGHPLCVIEGYVVSSCGITGLWSLAIISWERWFVVCKPFGNIKFDSKLAIIGIVFSWVWAWGWSAPPIFGWSRYWPHGLKTSCGPDVFSGSVELGCQSFMLTLMITCCFLPLFIIIVCYLQVWMAIRAVAAQQKESESTQKAEREVSRMVVVMIVAFCICWGPYASFVSFAAANPGYAFHPLAAALPAYFAKSATIYNPVIYVFMNRQFRNCIMQLFGKKVDDG-----SEAVSSVSNSSVAPA
->OAR_BOMMO
-TEIYDVIEDEKDVCAVADEPNIPCSFGISLAVPEWEAICTAIILTMIIISTVVGNILVILSVFTYKPLRIVQNFFIVSLAVADLTVAILVLPLNVAYSILGQWVFGIYVCKMWLTCDIMCCTSSILNLCAIALDRYWAITDPIYAQKRTLERVLFMIGIVWILSLVISSPPLLGWNDW-E-P--TPCRLT--------SQPGFVIFSSSGSFYIPLVIMTVVYFEIYLATKKRAVYEEKQRISLTRERRAARTLGIIMGVFVVCWLPFFVIYLVIPFCVSCCLSNKFINFITWLGYVNSALNPLIYTIFNMDFRRAFKKLLFIKC-----------------------
->YQH2_CAEEL
-EQSTPARENLPNREIYQIFQFTLVYALPLSNHDNSSLMLIAGFYALLFMFGTCGNAAILAVVHHVKGRHNTTLTYICILSIVDFLSMLPIPMTIIDQILGF-WMFDTFACKLFRLLEHIGKIFSTFILVAFSIDRYCAVCHPLQVRVRNQRTVFVFLGIMFFVTCVMLSPILLYAHSKVTRMHLYKCVDD----LGRELFVVFTLYSFVLAYLMPLLFMIYFYYEMLIRLFKQLVGGGEEKKLTIPVGHIAIYTLAICSFHFICWTPYWISILYSLYEELYYAFIYFMYGVHALPYINSASNFILYGLLNRQLHNAPERKYTRNGVGGRQMSHALTSELIAIPSSSCR
->UL33_HSV7J
-----MICYSFAKNVTFAFLIILQNFFSQHDEEYKYNYTCITPTVRKAQRLESVINGIMLTLILPVSTKQTITSPYLITLFISDSLHSLTVLLLTLNREAL--TNLNQALCQCVLFVYSASCTYSLCMLAVISTIRYR-TLQRRTLNDKNNNHIKRNVGILFLSSAMCAIPAVLYVQVEKK-KNYGKCNIHSTQKAY-DLFIGIKIVYCFLWGIFPTVIFSYFYVIFGKTL---------RALTQSKHNKTLSFISLLILSFLCIQIPNLLVMSVEIFFLYIIQREIVQIISRLMPEIHCLSNPLVYAFTRTDFRLRFYDFIKCNLCNSSLKRKRNP------------
->C5AR_RAT
-DPISNDSSEITYDYSDGTPNPDMPADGVYIPKMEPGDIAALIIYLAVFLVGVTGNALVVWVTAFEAK-RTVNAIWFLNLAVADLLSCLALPILFTSIVKHNHWPFGDQACIVLPSLILLNMYSSILLLATISADRFLLVFKPICQKFRRPGLAWMACGVTWVLALLLTIPSFVFRRIHK-SD--ILCNID-YSKGPFFIEKAIAILRLMVGFVLPLLTLNICYTFLLIRT---------WSRKATRSTKTLKVVMAVVTCFFVFWLPYQVTGVILAWLPRSQSVERLNSLCVSLAYINCCVNPIIYVMAGQGFHGRLRRSLPSIIRNVLSEDSLGRSTMD--------
->CKR6_HUMAN
-DSSEDYFVSVNTSYYSVDSEMLLC---SLQEVRQFSRLFVPIAYSLICVFGLLGNILVVITFAFYKKARSMTDVYLLNMAIADILFVLTLPFWAVSHATGA-WVFSNATCKLLKGIYAINFNCGMLLLTCISMDRYIAIVQATRLRSRTLPRSKIICLVVWGLSVIISSSTFVFNQKYN-TQ-SDVCEPKQTVSEPIRWKLLMLGLELLFGFFIPLMFMIFCYTFIVKTL---------VQAQNSKRHKAIRVIIAVVLVFLACQIPHNMVLLVTAANLGKKLIGYTKTVTEVLAFLHCCLNPVLYAFIGQKFRNYFLKILKDLWCVRRKYKSSGFEN------ISRQ
->B2AR_MOUSE
-MGPHGNDSDFLLAPNGSRAPDH----DVTQERDEAWVVGMAILMSVIVLAIVFGNVLVITAIAKFERLQTVTNYFIISLACADLVMGLAVVPFGASHILMKMWNFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYVAITSPFYQSLLTKNKARVVILMVWIVSGLTSFLPIQMHWYRAI-D--TCCDFF--------TNQAYAIASSIVSFYVPLCVMVFVYSRVFQVAKRQGRSLRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIRDNL-IPKEVYILLNWLGYVNSAFNPLIYCRSP-DFRIAFQELLCLRRSSSKTYGNGYSDYTGEPNTCQLG
->DADR_DIDMA
----------------MPLNDTTMDRRGLVVERDFSFRILTACFLSLLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPFG-SFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKAAFILISVAWTLSVLISFIPVQLNWHKAGN-TMDNCDSS--------LSRTYAISSSLISFYIPVAIMIVTYTRIYRIAQKQVECESSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFILNCMVPFCESDCIDSITFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSTLLGCYRLCPTANNAIETGAVFSSH-----
->O.YR_MACMU
-GELAANWSTEAVNSSAAPPGAEGNCTAGPPRRNEALARVEVAVLCLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIADLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLRRRTDRLAVLATWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYITWITLAVYIVPVIVLAACYGLISFKIWQNRMAVSSVKLISKAKIRTVKMTFIIVLAFIVCWTPFFFVQMWSVWDANA-KEASAFIIVMLLASLNSCCNPWIYMLFTGHLFHELVQRFLCCSASYLKGNRLGENSSSFVLSHRSS
->AG2R_MELGA
-------MVPNYSTEETVKRIHVDC---PVSGRHSYIYIMVPTVYSIIFIIGIFGNSLVVIVIYCYMKLKTVASIFLLNLALADLCFLITLPLWAAYTAMEYQWPFGNCLCKLASAGISFNLYASVFLLTCLSIDRYLAIVHPVSRIRRTMFVARVTCIVIWLLAGVASLPVIIHRNIFF-LN--TVCGFR-YDNNNTTLRVGLGLSKNLLGFLIPFLIILTSYTLIWKTLKKA----YQIQRNKTRNDDIFKMIVAIVFFFFFSWIPHQVFTFLDVLIQLHDIVDTAMPFTICIAYFNNCLNPFFYVFFGKNFKKYFLQLIKYIPPNVSTHPSLTTRPPE-------N
->TSHR_MOUSE
-LQAFESHYDYTVCGDNEDMVCTPKSDEFNPCEDIMGYRFLRIVVWFVSLLALLGNIFVLLILLTSHYKLTVPRFLMCNLAFADFCMGVYLLLIASVDLYTHSWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWYAITFAMLDRKIRLRHAYTIMAGGWVSCFLLALLPMVGISSY----KVSICLPM-----TDTPLALAYIVLVLLLNVVAFVVVCSCYVKIYITVRNP------QYNPRDKDTKIAKRMAVLIFTDFMCMAPISFYALSALMNKPLITVTNSKILLVLFYPLNSCANPFLYAIFTKAFQRDVFILLSKFGICKRQAQAYQGSTGIQIQKIPQD
->CCR3_MOUSE
-FAFLLENSTSPYDYGENESDFSDSPPCPQDFSLNFDRTFLPALYSLLFLLGLLGNGAVAAVLLSQRTALSSTDTFLLHLAVADVLLVLTLPLWAVDAAVQ--WVFGPGLCKVAGALFNINFYAGAFLLACISFDRYLSIVHATIYRRDPRVRVALTCIVVWGLCLLFALPDFIYLSANY-RL-ATHCQYN----FPQVGRTALRVLQLVAGFLLPLLVMAYCYAHILAVL---------LVSRGQRRFRAMRLVVVVVAAFAVCWTPYHLVVLVDILMDVGSHVDVAKSVTSGMGYMHCCLNPLLYAFVGVKFREKMWMLFTRLGRSDQRGPQRQPSWSETTEASYLG
->AA2B_RAT
-------------------------------MQLETQDALYVALELVIAALAVAGNVLVCAAVGASSALQTPTNYFLVSLATADVAVGLFAIPFAITISLG--FCTDFHSCLFLACFVLVLTQSSIFSLLAVAVDRYLAIRVPLYKGLVTGTRARGIIAVLWVLAFGIGLTPFLGWNSKDI-T-PVKCLFE-----NVVPMSYMVYFNFFGCVLPPLLIMMVIYIKIFMVACKQ---MEHSRTTLQREIHAAKSLAMIVGIFALCWLPVHAINCITLFHPALDKPKWVMNVAILLSHANSVVNPIVYAYRNRDFRYSFHRIISRYVLCQTDTKGGSGFSLSL-------
->MSHR_RANTA
-PVLGSQRRLLGSLNCTPPATFPLMLAPNRTGPQCLEVSIPNGLFLSLGLVSLVENVLVVAAIAKNSNLHSPMYYFICCLAVSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICGSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHRGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->CKR3_RAT
-EEELKTVVETFETTPYEYEWAPPC---EKVSIRELGSWLLPPLYSLVFIVGLLGNMMVVLILIKYRKLQIMTNIYLLNLAISDLLFLFTVPFWIHYVLWNE-WGFGHCMCKMLSGLYYLALYSEIFFIILLTIDRYLAIVHAVALRARTVTFATITSIITWGFAVLAALPEFIFHESQD-NF-DLSCSPRYPEGEEDSWKRFHALRMNIFGLALPLLIMVICYSGIIKTL---------LRCPNKKKHKAIQLIFVVMIVFFIFWTPYNLVLLLSAFHSTFIHLDLAMQVTEVITHTHCCINPIIYAFVGERFRKHLRLFFHRNVAIYLRKYISFLT-------SSVS
->OPS2_HEMSA
-DFGYPEGVSIVDFVRPEIKPYVHQHWYNYPPVNPMWHYLLGVIYLFLGTVSIFGNGLVIYLFNKSAALRTPANILVVNLALSDLIMLTTNVPFFTYNCFSGGWMFSPQYCEIYACLGAITGVCSIWLLCMISFDRYNIICNGFNGPKLTTGKAVVFALISWVIAIGCALPPFFGWGNYILEGILDSCSYD--YLTQDFNTFSYNIFIFVFDYFLPAAIIVFSYVFIVKAIFAHMNVRSNEADAQRAEIRIAKTALVNVSLWFICWTPYALISLKGVMGDTSGITPLVSTLPALLAKSCSCYNPFVYAISHPKYRLAITQHLPWFCVHETETKSNDDAQDKA-------
->AG2R_RABIT
-------MMLNSSTEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLAVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPAIIHRNVFF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFLFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFKIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSNLSTRPSD-------N
->5H2A_HUMAN
-NTSDAFNWTVDSENRTNLSCEGCLSPSCLSLLHLQEKNWSALLTAVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAVWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHSRFNSRTKAFLKIIAVWTISVGISMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVSFFIPLTIMVITYFLTIKSLQKEEPGGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESDVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENKKPLQLILAYKSSQLQMGQK
->AA2A_HUMAN
--------------------------------MPIMGSSVYITVELAIAVLAILGNVLVCWAVWLNSNLQNVTNYFVVSLAAADIAVGVLAIPFAITISTG--FCAACHGCLFIACFVLVLTQSSIFSLLAIAIDRYIAIRIPLYNGLVTGTRAKGIIAICWVLSFAIGLTPMLGWNNCGS-Q-QVACLFE-----DVVPMNYMVYFNFFACVLVPLLLMLGVYLRIFLAARRQESQGERARSTLQKEVHAAKSLAIIVGLFALCWLPLHIINCFTFFCPDCHAPLWLMYLAIVLSHTNSVVNPFIYAYRIREFRQTFRKIIRSHVLRQQEPFKAAGAHGSDGEQVSLR
->HH2R_CAVPO
--------------------MAFNGTVPSFCMDFTVYKVTISVILIILILVTVAGNVVVCLAVGLNRRLRSLTNCFIVSLAVTDLLLGLLVLPFSAIYQLSCKWSFSKVFCNIYTSLDVMLCTASILNLFMISLDRYCAVTDPLYPVLITPARVAISLVFIWVISITLSFLSIHLGWN--RN-TIVKCKVQ--------VNEVYGLVDGLVTFYLPLLIMCITYFRIFKIAREQR--IGSWKAATIREHKATVTLAAVMGAFIICWFPYFTVFVYRGLKGDD-VNEVFEDVVLWLGYANSALNPILYAALNRDFRTAYHQLFCCRLASHNSHETSLRRSQCQEPRW---
->IL8B_HUMAN
-KGEDLSNYSYSSTLPPFLLDAAPC----EPESLEINKYFVVIIYALVFLLSLLGNSLVMLVILYSRVGRSVTDVYLLNLALADLLFALTLPIWAASKVNG--WIFGTFLCKVVSLLKEVNFYSGILLLACISVDRYLAIVHATRTLTQKRYLVKFICLSIWGLSLLLALPVLLFRRTVY-NV-SPACYED-MGNNTANWRMLLRILPQSFGFIVPLLIMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLADTLMRTQNHIDRALDATEILGILHSCLNPLIYAFIGQKFRHGLLKILAIHGLISKDSLPKDS------------
->OLF5_RAT
--------------MSSTNQSSVTEFLLLGLSRQPQQQQLLFLLFLIMYLATVLGNLLIILAIGTDSRLHTPMYFFLSNLSFVDVCFSSTTVPKVLANHILGSQAISFSGCLTQLYFLAVFGNMDNFLLAVMSYDRFVAICHPLYTTKMTRQLCVLLVVGSWVVANMNCLLHILLMARL---SPHFFCDGTKLSCSDTHLNELMILTEGAVVMVTPFVCILISYIHITCAV--------LRVSSPRGGWKSFSTCGSHLAVVCLFYGTVIAVYFNPSSSH---LAGRDMAAAVMYAVVTPMLNPFIYSLRNSDMKAALRKVLAMRFPSKQ-------------------
->OPSB_CHICK
-TDLPEDFYIPMALDAPNITALSPFLVPQTHLGSPGLFRAMAAFMFLLIALGVPINTLTIFCTARFRKLRSHLNYILVNLALANLLVILVGSTTACYSFSQMYFALGPTACKIEGFAATLGGMVSLWSLAVVAFERFLVICKPLGNFTFRGSHAVLGCVATWVLGFVASAPPLFGWSRYIPEGLQCSCGPDWYTTDNKWHNESYVLFLFTFCFGVPLAIIVFSYGRLLITLRAVARQQEQSATTQKADREVTKMVVVMVLGFLVCWAPYTAFALWVVTHRGRSFEVGLASIPSVFSKSSTVYNPVIYVLMNKQFRSCMLKLLFCGRSPFGDDEDVSGSSVSSSHVAPA-
->AA2A_RAT
-----------------------------------MGSSVYITVELAIAVLAILGNVLVCWAVWINSNLQNVTNFFVVSLAAADIAVGVLAIPFAITISTG--FCAACHGCLFFACFVLVLTQSSIFSLLAIAIDRYIAIRIPLYNGLVTGVRAKGIIAICWVLSFAIGLTPMLGWNNCST-K-RVTCLFE-----DVVPMNYMVYYNFFAFVLLPLLLMLAIYLRIFLAARRQESQGERTRSTLQKEVHAAKSLAIIVGLFALCWLPLHIINCFTFFCSTCHAPPWLMYLAIILSHSNSVVNPFIYAYRIREFRQTFRKIIRTHVLRRQEPFQAGGAHSTEGEQVSLR
->OLF6_CHICK
--------------MASGNCTTPTTFILSGLTDNPGLQMPLFMVFLAIYTITLLTNLGLIALISIDLQLQTPMYIFLQNLSFTDAVYSTVITPKMLATFLEETKTISYVGCILQYFSFVLLTVRECLLLAVMAYDRYAAICKPLYPAIMTKAVCWRLVKGLYSLAFLNFLVHTSGLLKL---SNHFFCDNSQISSSSTALNELLVFIFGSLFVMSSIITILISYVFIILTV--------VRIRSKERKYKAFSTCTSHLMAVSLFHGTIVFMYFQPANNF---SLDKDKIMSLFYTVVIPMLNPLIYSWRNKEVKDALHRAIATAVLFH--------------------
->P2Y6_HUMAN
------------MEWDNGTGQALGLPPTTCVYRENFKQLLLPPVYSAVLAAGLPLNICVITQICTSRRALTRTAVYTLNLALADLLYACSLPLLIYNYAQGDHWPFGDFACRLVRFLFYANLHGSILFLTCISFQRYLGICHPLWHKRGGRRAAWLVCVAVWLAVTTQCLPTAIFAATG-----RTVCYDL-SPPALATHYMPYGMALTVIGFLLPFAALLACYCLLACRLCRQ---GPAEPVAQERRGKAARMAVVVAAAFAISFLPFHITKTAYLAVRSTEAFAAAYKGTRPFASANSVLDPILFYFTQKKFRRRPHELLQKLTAKWQRQGR---------------
->OPS5_DROME
-SLGDGSVFPMGHGYPAEYQHMVHAHWRGFREAPIYYHAGFYIAFIVLMLSSIFGNGLVIWIFSTSKSLRTPSNLLILNLAIFDLFMCTN-MPHYLINATVGYIVGGDLGCDIYALNGGISGMGASITNAFIAFDRYKTISNPI-DGRLSYGQIVLLILFTWLWATPFSVLPLFQIWGRYPEGFLTTCSFD--YLTNTDENRLFVRTIFVWSYVIPMTMILVSYYKLFTHVRVHNVKANANADNMSVELRIAKAALIIYMLFILAWTPYSVVALIGCFGEQQLITPFVSMLPCLACKSVSCLDPWVYATSHPKYRLELERRLPWLGIREKHATSGTSSVSGDTLALSVQ
->YR13_CAEEL
---------------------MSNIFSVPLDPMSVAVGIPYVCFFIILSVVGIIGNVIVIYAIAGDRNRKSVMNILLLNLAVADLANLIFTIPEWIPPVFFGSWLFPSFLCPVCRYLECVFLFASISTQMIVCIERYIAIVLPMARQLCSRRNVLITVLVDWIFVACFASPYAVWHSVK-LFQLSATCSNT---VGKSTWWQGYKLTEFLAFYFVPCFIITVVYTKVAKCLWCKCLDSSRSSDALRTRRNVVKMLIACVAVYFVCYSPIQVIFLSKAVLNVTHPPYDFILLMNALAMTCSASNPLLYTLFSQKFRRRLRDVLYCPSDVENETKTYYSGPRASF------
->5H1B_CRIGR
-CAPPPPAASQTGVPLVNLSHNSAESHIYQDSIALPWKVLLVALLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAVTDLLVSILVMPVSTMYTVTGRWTLGQVVCDFWLSSDITCCTASIMHLCVIALDRYWAITDAVYAAKRTPKRAAIMIALVWVFSISISLPPFFWR----E-E--LTCLVN-------TDHVLYTVYSTGGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGAFIVCWLPFFIISLVMPICKDAWFHMATLDFFNWLGYLNSLINPIIYTMSNEDFKQAFHKLIRFKCAG---------------------
->D2DR_BOVIN
----MDPLNLSWYDDDPESRNWSRPFNGSEGKADRPPYNYYAMLLTLLIFVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSKRRVTVMIAIVWVLSFTISCPMLFGLN---Q----NECII---------ANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRRRRTSMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCN-IPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFLKILHC-------------------------
->VU51_HSV6Z
-----------------MEKETKSLAWPATAEFYGWVFIFSSIQLCTVVFLTVRFNGFKVGR-E--------YAVFTFAGMSFNCFLLPIKMGLLSGH-----WTLPRDFCAILLYIDDFSAYFSSWSLVFMAIERINYFCYSTLLNENSKALAKVCFPIVWVVSGVQALQMLNNYKATA---ETGQCFLA--------FRSGHDMWLMLVYSVVIPVMLVFFYLYSKNFM-----------LLKDELSSVTTYLCIYLLLGTIAHLPKAALSEIESD----KIFYGLRDIFMALPVLKVYYISAMAYCMACDDHTVPVRLCSIWLVNLCKKCFSCTLEVGIKMLK---
->D2DR_MOUSE
----MDPLNLSWYDDDLERQNWSRPFNGSEGKADRPHYNYYAMLLTLLIFIIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSKRRVTVMIAIVWVLSFTISCPLLFGLN---Q----NECII---------ANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRKRRTSMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCN-IPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFMKILHC-------------------------
->CCR4_MACFA
-IYTSDNYTEEMG-SGDYDSIKEPC---FREENAHFNRIFLPTIYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLYVITLPFWAVDAVAN--WYFGNFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQRPRKLLAEKVVYVGVWIPALLLTIPDFIFASVSE-DD-RYICDRF---YPNDLWVVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYIGISIDSFILLENTVHKWISITEALGFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->HH1R_BOVIN
----------MTCPNSSCVFEDKMCQGNKTAPANDAQLTPLVVVLSTISLVTVGLNLLVLYAVRSERKLHTVGNLYIVSLSVADLIVGVVVMPMNILYLLMSRWSLGRPLCLFWLSMDYVASTASIFSVFILCIDRYRSVQQPLYLRYRTKTRASITILAAWFLSFLWIIPILGWRHFQ--EP-EDKCETD------FYNVTWFKVMTAIINFYLPTLLMLWFYAKIYKAVRQHLRSQYVSGLHMNRERKAAKQLGFIMAAFIICWIPYFIFFMVIAFCESC-CNQHVHMFTIWLGYINSTLNPLIYPLCNENFKKTFKKILHIRS-----------------------
->OPS2_DROPS
-AQTG-GNRSVLDNVLPDMAPLVNPHWSRFAPMDPTMSKILGLFTLVILIISCCGNGVVVYIFGGTKSLRTPANLLVLNLAFSDFCMMASQSPVMIINFYYETWVLGPLWCDIYAACGSLFGCVSIWSMCMIAFDRYNVIVKGINGTPMTIKTSIMKIAFIWMMAVFWTIMPLIGWSSYVPEGNLTACSID--YMTRQWNPRSYLITYSLFVYYTPLFMICYSYWFIIATVAAHMNVRSSEDCDKSAENKLAKVALTTISLWFMAWTPYLIICYFGLFKIDG-LTPLTTIWGATFAKTSAVYNPIVYGISHPNDRLVLKEKCPMCVCGTTDEPKPDATSEAESKD----
->OPSD_SCYCA
-MNGTEGENFYIPMSNKTGVVRSPFDYPQYYLAEPWKFSVLAAYMFFLIIAGFPVNFLTLYVTIQHKKLRQPLNYILLNLAVADLFMIFGGFPSTMITSMNGYFVFGPSGCNFEGFFATLGGEIGLWSLVVLAIERYVVVCKPMSNFRFGSQHAFMGVGLTWIMAMACAFPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFSIPLTIIFFCYGRLVCTVKEAAAQQQESETTQRAEREVTRMVIIMVIAFLICWLPYASVAFFIFCNQGSEFGPIFMTIPAFFAKAASLYNPLIYILMNKQFRNCMITTICCGKNPFEEEESTSASSVSSSQVAPAA
->OPSD_BUFBU
-MNGTEGPNFYIPMSNKTGVVRSPFEYPQYYLAEPWQYSILCAYMFLLILLGFPINFMTLYVTIQHKKLRTPLNYILLNLAFANHFMVLCGFTVTMYSSMNGYFILGATGCYVEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFSENHAVMGVAFTWIMALSCAVPPLLGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFTIPLIIIFFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVVFFLICWVPYASVAFFIFSNQGSEFGPIFMTVPAFFAKSSSIYNPVIYIMLNKQFRNCMITTLCCGKNPFGEDDASSAASSVSSSQVSPA
->ACM4_CHICK
-AQPWQAKMANLTYDNVTLSNRSEVAIQPPTNYKTVELVFIATVTGSLSLVTVVGNILVMLSIKVNRQLQTVNNYFLFSLACADLIIGVFSMNLYTVYIIKGYWPLGAVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPARRTTKMAGLMIAAAWILSFILWAPAILFWQFIV-VH-ERECYIQ------FLSNPAVTFGTAIAAFYLPVVIMTVLYIHISLASRSRSIAVRKKRQMAAREKKVTRTIFAILLAFILTWTPYNVMVLINTFCETC-VPETVWSIGYWLCYVNSTINPACYALCNATFKKTFKHLLMCQYRNIGTAR----------------
->GRHR_RAT
---MANNASLEQDQNHCSAINNSIPLTQGKLPTLTLSGKIRVTVTFFLFLLSTAFNASFLVKLQRWTQKLSRMKVLLKHLTLANLLETLIVMPLDGMWNITVQWYAGEFLCKVLSYLKLFSMYAPAFMMVVISLDRSLAVTQPL-AVQSKSKLERSMTSLAWILSIVFAGPQLYIFRMIYAV--FSQCVTH--SFPQWWHEAFYNFFTFSCLFIIPLLIMLICNAKIIFALTRVPRKNQSKNNIPRARLRTLKMTVAFGTSFVICWTPYYVLGIWYWFDPEMRVSEPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->C5AR_MOUSE
----MNSSFEINYDHY-GTMDPNIPADGIHLPKRQPGDVAALIIYSVVFLVGVPGNALVVWVTAFEPD-GPSNAIWFLNLAVADLLSCLAMPVLFTTVLNHNYWYFDATACIVLPSLILLNMYASILLLATISADRFLLVFKPICQKVRGTGLAWMACGVAWVLALLLTIPSFVYREAYK-SE--TVCGIN-YGGGSFPKEKAVAILRLMVGFVLPLLTLNICYTFLLLRT---------WSRKATRSTKTLKVVMAVVICFFIFWLPYQVTGVMIAWLPPSKRVEKLNSLCVSLAYINCCVNPIIYVMAGQGFHGRLLRSLPSIIRNALSEDSVGRSTDD--------
->5H2A_MACMU
-NTSDAFNWTVESENRTNLSCEGCLSPSCLSLLHLQEKNWSALLTAVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAVWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHSRFNSRTKAFLKIIAVWTISVGISMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVSFFIPLTIMVITYFLTIKSLQKEDPGGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESDVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENKKPLQLILAYKSSQLQMGQK
->LSHR_BOVIN
-ESELSGWDYDYGFCLPKTLQCAPEPDAFNPCEDIMGYNFLRVLIWLINILAITGNVTVLFVLLTSRYKLTVPRFLMCNLSFADFCMGLYLLLIASVDAQTKGWQTG-SGCSAAGFFTVFASELSVYTLTVITLERWHTITYAILDQKLRLKHAIPVMLGGWLFSTLIAVLPLVGVSNY----KVSICLPM-----VESTLSQVYILTILILNVMAFIIICACYIKIYFAVQNP------ELMATNKDTKIAKKMAVLIFTDFTCMAPISFFAISAAFKVPLITVTNSKVLLVLFYPVNSCANPFLYAIFTKAFQRDFFLLLSKFGCCKYRAELYRRSNCKNGFTGSNK
->SSR5_HUMAN
-LFPASTPSWNASSPGAASGGGDNRTLVGPAPSAGARAVLVPVLYLLVCAAGLGGNTLVIYVVLRFAKMKTVTNIYILNLAVADVLYMLGLPFLATQNAASF-WPFGPVLCRLVMTLDGVNQFTSVFCLTVMSVDRYLAVVHPLSARWRRPRVAKLASAAAWVLSLCMSLPLLVFADVQE-----GTCNAS-WPEPVGLWGAVFIIYTAVLGFFAPLLVICLCYLLIVVKVRAAGV--RVGCVRRRSERKVTRMVLVVVLVFAGCWLPFFTVNIVNLAVALPPASAGLYFFVVILSYANSCANPVLYGFLSDNFRQSFQKVLCLRKGSGAKDADATEQQQEATRPRTAA
->B2AR_PIG
-MGQPGNRSVFLLAPNGSHAPDQ----DVPQERDEAWVVGMAIVMSLIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGASHILMKMWTFGSFWCEFWISIDVLCVTASIETLCVIAVDRYLAITSPFYQCLLTKNKARVVILMVWVVSGLISFLPIKMHWYQAL-N--ACCDFF--------TNQPYAIASSIVSFYLPLVVMVFVYSRVFQVARRQGRSHRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHGIHDNL-IPKEVYILLNWVGYVNSAFNPLIYCRSP-DFRMAFQELLCLHRSSLKAYGNGCSDYTGEQSGCYLG
->FSHR_RAT
-SDMMYNEFDYDLCNEVVDVTCSPKPDAFNPCEDIMGYNILRVLIWFISILAITGNTTVLVVLTTSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLECKVQLRHAASVMVLGWTFAFAAALFPIFGISSY----KVSICLPM-----IDSPLSQLYVMALLVLNVLAFVVICGCYTHIYLTVRNP------TIVSSSSDTKIAKRMATLIFTDFLCMAPISFFAISASLKVPLITVSKAKILLVLFYPINSCANPFLYAIFTKNFRRDFFILLSKFGCYEMQAQIYRTNFHARKSHCSSA
->D4DR_MOUSE
----MGNSSATEDGGLLAGRGP---ESLGTGAGLGGAGAAALVGGVLLIGLVLAGNSLVCVSVASERTLQTPTNYFIVSLAAADLLLAVLVLPLFVYSEVQGGWLLSPRLCDTLMAMDVMLCTASIFNLCAISVDRFVAVTVPL-RYNQQGQCQLLLIAATWLLSAAVASPVVCGLN---G-R--AVCCL---------ENRDYVVYSSVCSFFLPCPLMLLLYWATFRGLRRWPEPRRRGAKITGRERKAMRVLPVVVGAFLVCWTPFFVVHITRALCPACFVSPRLVSAVTWLGYVNSALNPIIYTIFNAEFRSVFRKTLRLRC-----------------------
->GALT_MOUSE
---------------------MADIQNISLDSPGSVGAVAVPVVFALIFLLGMVGNGLVLAVLLQPGPPGSTTDLFILNLAVADLCFILCCVPFQAAIYTLDAWLFGAFVCKTVHLLIYLTMYASSFTLAAVSVDRYLAVRHPLSRALRTPRNARAAVGLVWLLAALFSAPYLSYYG---GA--LELCVPA----WEDARRRALDVATFAAGYLLPVTVVSLAYGRTLCFLWAAGP-AAAAEARRRATGRAGRAMLAVAALYALCWGPHHALILCFWYGRFAPATYACRLASHCLAYANSCLNPLVYSLASRHFRARFRRLWPCGHRRHRHHHHRLHPASSGPAGYPGD
->AG2R_RAT
-------MALNSSAEDGIKRIQDDC---PKAGRHSYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNHLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLMAGLASLPAVIHRNVYF-TN--TVCAFH-YESRNSTLPIGLGLTKNILGFLFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFRIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSSLSTRPSD-------N
->NMBR_RAT
-PNLSLPTEASESELEPEVWENDFLPDSDGTTAELVIRCVIPSLYLIIISVGLLGNIMLVKIFLTNSTMRSVPNIFISNLAAGDLLLLLTCVPVDASRYFFDEWVFGKLGCKLIPAIQLTSVGVSVFTLTALSADRYRAIVNPMMQTSGVVLWTSLKAVGIWVVSVLLAVPEAVFSEVARSS--FTACIPY---QTDELHPKIHSVLIFLVYFLIPLVIISIYYYHIAKTLIRSLPGNEHTKKQMETRKRLAKIVLVFVGCFVFCWFPNHILYLYRSFNYKELGHMIVTLVARVLSFSNSCVNPFALYLLSESFRKHFNSQLCCGQKSYPERSTSYLMTSLKSNAKNVV
->NY1R_CANFA
-TSFSQVENHSIFCNFSE-NSQFLAFESDDCHLPLAMIFTLALAYGAVIILGVTGNLALIMIILKQKEMRNVTNILIVNLSFSDLLVAIMCLPFTFVYTLMDHWVFGEAMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPNNRHAYVGIAVIWVLAVVSSLPFLIYQVLTDKD--KYVCFDK---FPSDSHRLSYTTLLLMLQYFGPLCFIFICYFKIYIRLKRRNMMMRDNKYRSSETKRINIMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->A2AD_HUMAN
-AAGPNASGAGERGSGGVANASGASWGPPRGQYSAGAVAGLAAVVGFLIVFTVVGNVLVVIAVLTSRALRAPQNLFLVSLASADILVATLVMPFSLANELMAYWYFGQVWCGVYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRVKATIVAVWLISAVISFPPLVSLYR-------PQCGLN--------DETWYILSSCIGSFFAPCLIMGLVYARIYRVAKLRRRAVCRRKVAQAREKRFTFVLAVVMGVFVLCWFPFFFSYSLYGICREAQVPGPLFKFFFWIGYCNSSLNPVIYTVFNQDFRRSFKHILFRRRRRGFRQ-----------------
->V1AR_SHEEP
-SSRWWPLDAGDANTSGDLAGLGEDGGPQADTRNEELAKLEIAVLAVIFVVAVLGNSSVLLALHRTPRKTSRMHLFIRHLSLADLAVAFFQVLPQLGWDITYRFRGPDGLCRVVKHMQVFAMFASAYMLVVMTADRYIAVCHPLKTLQQPARRSRLMIAAAWVLSFVLSTPQYFVFSMVETK--TYDCWAN---FIHPWGLPAYVTWMTGSVFVAPVVILGTCYGFICYHIWRKVLHVSSVKTISRAKIRTVKMTFVIVTAYIVCWAPFFIIQMWSAWDKNFESENPATAIPALLASLNSCCNPWIYMFFSGHLLQDCAQSFPCCQNVKRTFTREGSTSFTNNRSPTNS
->FML1_MOUSE
------------MESNYSIHLNGSEVVVYDSTISRVLWILSMVVVSITFFLGVLGNGLVIWVAGFRMP-HTVTTIWYLNLALADFSFTATLPFLLVEMAMKEKWPFGWFLCKLVHIAVDVNLFGSVFLIAVIALDRCICVLHPVAQNHRTVSLARNVVVGSWIFALILTLPLFLFLTTVRVSWVEERLNTA------ITFVTTRGIIRFIVSFSLPMSFVAICYGLITTKI---------HKKAFVNSSRPFRVLTGVVASFFICWFPFQLVALLGTVWLKEKIIGRLVNPTSSLAFFNSCLNPILYVFMGQDFQERLIHSLSSRLQRALSEDSGHIAS----------
->OPSD_PETMA
-MNGTEGENFYIPFSNKTGLARSPFEYPQYYLAEPWKYSVLAAYMFFLILVGFPVNFLTLFVTVQHKKLRTPLNYILLNLAVANLFMVLFGFTLTMYSSMNGYFVFGPTMCNFEGFFATLGGEMSLWSLVVLAIERYIVICKPMGNFRFGSTHAYMGVAFTWFMALSCAAPPLVGWSRYLPEGMQCSCGPDYYTLNPNFNNESFVIYMFLVHFIIPFIVIFFCYGRLLCTVKEAAAAQQESASTQKAEKEVTRMVVLMVIGFLVCWVPYASVAFYIFTHQGSDFGATFMTVPAFFAKTSALYNPIIYILMNKQFRNCMITTLCCGKNPLGDEDSGASVSSVSTSQVSPA
->B2AR_MACMU
-MGQPGNGSAFLLAPNGSHAPDH----DVTQERDEAWVVGMGIVMSLIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGAAHILMKMWTFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYFAITSPFYQSLLTKNKARVIILMVWIVSGLTSFLPIQMHWYRAI-N--TCCDFF--------TNQAYAIASSIVSFYVPLVIMVFVYSRVFQEAKRQGRTLRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIQDNL-IPKEVYILLNWVGYVNSGFNPLIYCRSP-DFRIAFQELLCLRRSSLKACGNGYSGNTGEQSGYHLE
->AG2R_SHEEP
-------MILNSSTEDGIKRIQDDC---PKAGRHNYIFIMIPTLYSIIFVVGLFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASGSVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPTIIHRNVFF-TN--TVCAFHVYESQNSTLPVGLGLTKNILGFLFPFLIILTSYTLIWKTLKKA----YEIQKNKPRKDDIFKIILAIVLFFFFSWVPHQIFTFMDVLIQLGDIVDTAMPITICLAYFNNCLNPPFYGFLGKKFKKYFLQLLKYIPPKAKSHSNLSTRPSE-------N
->AG2R_BOVIN
-------MILNSSTEDGIKRIQDDC---PKAGRHNYIFIMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPTIIHRNVFF-TN--TVCAFH-YESQNSTLPVGLGLTKNILGFLFPFLIILTSYTLIWKTLKKA----YEIQKNKPRKDDIFKIILAIVLFFFFSWVPHQIFTFMDVLIQLGDIVDTAMPITICLAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSNLSTRPSE-------N
->ACM2_HUMAN
---------------MNNSTNSSNNSLALTSPYKTFEVVFIVLVAGSLSLVTIIGNILVMVSIKVNRHLQTVNNYFLFSLACADLIIGVFSMNLYTLYTVIGYWPLGPVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPVKRTTKMAGMMIAAAWVLSFILWAPAILFWQFIV-VE-DGECYIQ------FFSNAAVTFGTAIAAFYLPVIIMTVLYWHISRASKSRVKMPAKKKPPPSREKKVTRTILAILLAFIITWAPYNVMVLINTFCAPC-IPNTVWTIGYWLCYINSTINPACYALCNATFKKTFKHLLMCHYKNIGATR----------------
->PF2R_HUMAN
---MSMNN---------SKQLVSPAAALLSNTTCQTENRLSVFFSVIFMTVGILSNSLAIAILMKAYQSKASFLLLASGLVITDFFGHLINGAIAVFVYASDKFDQSNVLCSIFGICMVFSGLCPLLLGSVMAIERCIGVTKPIHSTKITSKHVKMMLSGVCLFAVFIALLPILGHRDYKIQASRTWCFYN--TEDIKDWEDRFYLLLFSFLGLLALGVSLLCNAITGITLLRVKFKSQQHRQGRSHHLEMVIQLLAIMCVSCICWSPFLVTMANIGINGNHLETCETTLFALRMATWNQILDPWVYILLRKAVLKNLYKLASQCCGVHVISLHIWELKVAAISESPVA
->US28_HCMVA
-----MTPTTTTAELTTEFDYDEDATPCVFTDVLNQSKPVTLFLYGVVFLFGSIGNFLVIFTITWRRRIQCSGDVYFINLAAADLLFVCTLPLWMQYLLDH--NSLASVPCTLLTACFYVAMFASLCFITEIALDRYYAIVYMR---YRPVKQACLFSIFWWIFAVIIAIPHFMVVTKK-----DNQCMTD-YDYLEVSYPIILNVELMLGAFVIPLSVISYCYYRISRIV---------AVSQSRHKGRIVRVLIAVVLVFIIFWLPYHLTLFVDTLKLLKRSLKRALILTESLAFCHCCLNPLLYVFVGTKFRQELHCLLAEFRQRLFSRDVSWYRSSPSRRETSSD
->NK4R_HUMAN
-NLTSSPAPTASPSPAPSWTPSPRPGPAHPFLQPPWAVALWSLAYGAVVAVAVLGNLVVIWIVLAHKRMRTVTNSFLVNLAFADAAMAALNALVNFIYALHE-WYFGANYCRFQNFFPITAVFASIYSMTAIAVDRYMAIIDPL-KPRLSATATRIVIGSIWILAFLLAFPQCLYSK---GR---TLCYVQ--WPEGSRQHFTYHMIVIVLVYCFPLLIMGITYTIVGITLWGG--PCDKYQEQLKAKRKVVKMMIIVVVTFAICWLPYHIYFILTAIYQQLKYIQQVYLASFWLAMSSTMYNPIIYCCLNKRFRAGFKRAFRWCPFIHVSSY----ATRLHPMRQSSL
->MC3R_RAT
-NSSCCPSSSYPTLPNLSQHPAAPSASNRSGSGFCEQVFIKPEVFLALGIVSLMENILVILAVVRNGNLHSPMYFFLLSLLQADMLVSLSNSLETIMIVVINSDQFIQHMDNIFDSMICISLVASICNLLAIAVDRYVTIFYALYHSIMTVRKALSLIVAIWVCCGICGVMFIVYYS----------------------EESKMVIVCLITMFFAMVLLMGTLYIHMFLFARLHIAAADGVAPQQHSCMKGAVTITILLGVFIFCWAPFFLHLVLIITCPTNICYTAHFNTYLVLIMCNSVIDPLIYAFRSLELRNTFKEILCGCNGMNVG------------------
->OPS1_HEMSA
-TFGYPEGMTVADFVPDRVKHMVLDHWYNYPPVNPMWHYLLGVVYLFLGVISIAGNGLVIYLYMKSQALKTPANMLIVNLALSDLIMLTTNFPPFCYNCFSGGWMFSGTYCEIYAALGAITGVCSIWTLCMISFDRYNIICNGFNGPKLTQGKATFMCGLAWVISVGWSLPPFFGWGSYTLEGILDSCSYD--YFTRDMNTITYNICIFIFDFFLPASVIVFSYVFIVKAIFAHMNVRSNEAETQRAEIRIAKTALVNVSLWFICWTPYAAITIQGLLGNAEGITPLLTTLPALLAKSCSCYNPFVYAISHPKFRLAITQHLPWFCVHEKDPNDVEETQEKS-------
->AA3R_RAT
------------------------MKANNTTTSALWLQITYITMEAAIGLCAVVGNMLVIWVVKLNRTLRTTTFYFIVSLALADIAVGVLVIPLAIAVSLE--VQMHFYACLFMSCVLLVFTHASIMSLLAIAVDRYLRVKLTVYRTVTTQRRIWLFLGLCWLVSFLVGLTPMFGWN-RKE-L-TLSCHFR-----SVVGLDYMVFFSFITWILIPLVVMCIIYLDIFYIIRNK--NFRETRAFYGREFKTAKSLFLVLFLFALCWLPLSIINFVSYFNVK--IPEIAMCLGILLSHANSMMNPIVYACKIKKFKETYFVILRACRLCQTSDSLDSN------------
->SSR4_RAT
-GED----TTWTPGINASWAPDEEEDAVRSDGTGTAGMVTIQCIYALVCLVGLVGNALVIFVILRYAKMKTATNIYLLNLAVADELFMLSVPFVASAAALRH-WPFGAVLCRAVLSVDGLNMFTSVFCLTVLSVDRYVAVVHPLAATYRRPSVAKLINLGVWLASLLVTLPIAVFADTRPGGE-AVACNLH---WPHPAWSAVFVIYTFLLGFLLPVLAIGLCYLLIVGKMRAVALR-AGWQQRRRSEKKITRLVLMVVTVFVLCWMPFYVVQLLNLFVTS--LDATVNHVSLILSYANSCANPILYGFLSDNFRRSFQRVLCLRCCLLETTGGAEETALKSRGGPGCI
->NK1R_RAT
------MDNVLPMDSDLFPNISTNTSESNQFVQPTWQIVLWAAAYTVIVVTSVVGNVVVIWIILAHKRMRTVTNYFLVNLAFAEACMAAFNTVVNFTYAVHNVWYYGLFYCKFHNFFPIAALFASIYSMTAVAFDRYMAIIHPL-QPRLSATATKVVIFVIWVLALLLAFPQGYYST---SR---VVCMIEWPEHPNRTYEKAYHICVTVLIYFLPLLVIGYAYTVVGITLWAS-IPSDRYHEQVSAKRKVVKMMIVVVCTFAICWLPFHVFFLLPYINPDLKFIQQVYLASMWLAMSSTMYNPIIYCCLNDRFRLGFKHAFRCCPFISAGDY----STRYLQTQSSVY
->OPSD_SARDI
-MNGTEGPFFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAILGAYMFFLIIVGFPVNFMTLYVTLEHKKLRTPLNYILLNLAVADLFMVIGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGMISLWSLAVLAIERWVVVCKPISNFRFGENHAIMGVSLTWGMALACTVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVLYMFFCHFTIPLTIIFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVIIMVIGFLVCWLPYASVAWFIFTHQGSEFGPLFMTIPAFFAKSSSIYNPMIYICMNKQFRHCMITTLFCGKNPF---EGEEETEASSASSVSPA
->FSHR_HORSE
-FDMMYSEFEYDLCNEVVDVTCSPKPDAFNPCEDIMGYDILRVLIWFISILAITGNIIVLVILITSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLECKVQLRHAASVMLVGWIFAFAVALLPIFGISTY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYIHIYLTVRNP------NIVSSSSDTKIAKRMAILIFTDFLCMAPISFFAISASLKVPLITVSKSKILLVLFYPINSCANPFLYAIFTKNFRRDFFILLSKFGCYEMQAQLYRTISHPRNGHCPPT
->OPSG_CARAU
-MNGTEGKNFYVPMSNRTGLVRSPFEYPQYYLAEPWQFKILALYLFFLMSMGLPINGLTLVVTAQHKKLRQPLNFILVNLAVAGTIMVCFGFTVTFYTAINGYFVLGPTGCAVEGFMATLGGEVALWSLVVLAIERYIVVCKPMGSFKFSSSHAFAGIAFTWVMALACAAPPLFGWSRYIPEGMQCSCGPDYYTLNPDYNNESYVIYMFVCHFILPVAVIFFTYGRLVCTVKAAAAQQQDSASTQKAEREVTKMVILMVFGFLIAWTPYATVAAWIFFNKGADFSAKFMAIPAFFSKSSALYNPVIYVLLNKQFRNCMLTTIFCGKNPLGDDESS--TSKTEVSSVSPA
->AA3R_RABIT
-------------------------MPDNSTTLFLAIRASYIVFEIVIGVCAVVGNVLVIWVIKLNPSLKTTTFYFIFSLALADIAVGFLVMPLAIVISLG--ITIGFYSCLVMSCLLLVFTHASIMSLLAIAVDRYLRVKLTVYRRVTTQRRIWLALGLCWVVSLLVGFTPMFGWN-MKE-S-DFQCKFD-----SVIPMEYMVFFSFFTWILIPLLLMCALYVYIFYIIRNK--SFKETGAFYRREFKTAKSLFLVLALFAGCWLPLSIINCVTYFKCK--VPDVVLLVGILLSHANSMMNPIVYACKIQKFKETYLLIFKARVTCQPSDSLDPS------------
->5H1D_HUMAN
-SPLNQSAEGLPQEASNRSLNATETSEAWDPRTLQALKISLAVVLSVITLATVLSNAFVLTTILLTRKLHTPANYLIGSLATTDLLVSILVMPISIAYTITHTWNFGQILCDIWLSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGHAATMIAIVWAISICISIPPLFWR----Q-E--SDCLVN-------TSQISYTIYSTCGAFYIPSVLLIILYGRIYRAARNRKLALERKRISAARERKATKILGIILGAFIICWLPFFVVSLVLPICRDSWIHPALFDFFTWLGYLNSLINPIIYTVFNEEFRQAFQKIVPFRKAS---------------------
->CCR4_MACMU
-IYTSDNYTEEMG-SGDYDSIKEPC---FREENAHFNRIFLPTIYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAVAN--WYFGNFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQKPRKLLAEKVVYVGVWIPALLLTIPDFIFASVSE-DD-RYICDRF---YPNDLWVVVFQFQHIMVGLILPGIDILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYIGISIDSFILLENTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->OPSP_CHICK
-------MSSNSSQAPPNGTPGPFDGPQWPYQAPQSTYVGVAVLMGTVVACASVVNGLVIVVSICYKKLRSPLNYILVNLAVADLLVTLCGSSVSLSNNINGFFVFGRRMCELEGFMVSLTGIVGLWSLAILALERYVVVCKPLGDFQFQRRHAVSGCAFTWGWALLWSAPPLLGWSSYVPEGLRTSCGPN--WYTGGSNNNSYILSLFVTCFVLPLSLILFSYTNLLLTLRAAAAQQKEADTTQRAEREVTRMVIVMVMAFLLCWLPYSTFALVVATHKGIIIQPVLASLPSYFSKTATVYNPIIYVFMNKQFQSCLLEMLCCGYQPQRTGKASPGVTAAGLRNKVMP
->O7C1_HUMAN
--------------METGNQTHAQEFLLLGFSATSEIQFILFGLFLSMYLVTFTGNLLIILAICSDSHLHTPMYFFLSNLSFADLCFTSTTVPKMLLNILTQNKFITYAGCLSQIFFFTSFGCLDNLLLTVMAYDRFVAVCHPLYTVIMNPQLCGLLVLGSWCISVMGSLLETLTVLRL---SPHFFCDLLKLACSDTFINNVVIYFATGVLGVISFTGIFFSYYKIVFSI--------LRISSAGRKHKAFSTCGSHLSVVTLFYGTGFGVYLSSAATP---SSRTSLVASVMYTMVTPMLNPFIYSLRNTDMKRALGRLLSRATFFNGDITAGLS------------
->OPR._PIG
-GSPLQGNLSLLSPNHSLLPPHLLLNASHGAFLPLGLKVTIVGLYLAVCVGGLLGNCLVMYVILRHTKMKTATNIYIFNLALADTAVLLTLPFQGTDVLLGF-WPFGNALCKAVIAIDYYNMFTSAFTLTAMSVDRYVAICHPIALDVRTSSKAQAVNVAIWALASIVGVPVAIMGSAQVEE---IECLVE-IPAPQDYWGPVFAVCIFLFSFVIPVLIISVCYSLMVRRLRGVRLL-SGSREKDRNLRRITRLVLVVVAVFVGCWTPVQVFVLVQGLGVQPETAVAVLRFCTALGYVNSCLNPILYAFLDENFKACFRKFCCAPTRRREMQVSDRVALACKTSETVPR
->OPSD_RAT
-MNGTEGPNFYVPFSNITGVVRSPFEQPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIGLWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIFFLICWLPYASVAMYIFTHQGSNFGPIFMTLPAFFAKTASIYNPIIYIMMNKQFRNCMLTSLCCGKNPLGDDEASATASKTETSQVAPA
->P2UR_HUMAN
-----MAADLGPWNDTINGTWDGDELGYRCRFNEDFKYVLLPVSYGVVCVLGLCLNAVALYIFLCRLKTWNASTTYMFHLAVSDALYAASLPLLVYYYARGDHWPFSTVLCKLVRFLFYTNLYCSILFLTCISVHRCLGVLRPLSLRWGRARYARRVAGAVWVLVLACQAPVLYFVTTS-----RVTCHDT-SAPELFSRFVAYSSVMLGLLFAVPFAVILVCYVLMARRLLKP---YGTSGGLPRAKRKSVRTIAVVLAVFALCFLPFHVTRTLYYSFRSLNAINMAYKVTRPLASANSCLDPVLYFLAGQRLVRFARDAKPPTGPSPATPARRRLTDMQRIGDVLGS
->D1DR_OREMO
--MEIFTTTRGTSAGPEPAPGGHGGTDSPR-TSDLSLRALTGCVLCILIVSTLLGNALVCAAVIKFRHRSKVTNAFVISLAVSDLFVAVLVMPWRAVSEVAGVWLFG-AFCDTWVAFDIMCSTASILHLCIISMDRYWAISSPFYERRMTPRFGCVMIGVAWTLSVLISFIPVQLNWHARR--DPGDCNAS--------LNRTYAISSSLISFYIPVLIMVGTYTRIFRIGRTQPALESSLKTSFRRETKVLKTLSVIMGVFVFCWLPFFVLNCMVPFCRLECVSDTTFSVFVWFGWANSSLNPVIYAFNA-DFRKAFSTILGCSRYCRTSAVEAVDYHHDTTLQK---
->OPSP_PETMA
-HHSLPSALPSATGGNGTVATMHNPFERPLEGIAPWNFTMLAALMGTITALSLGENFAVIVVTARFRQLRQPLNYVLVNLAAADLLVSAIGGSVSFFTNIKGYFFLGVHACVLEGFAVTYFGVVALWSLALLAFERYFVICRPLGNFRLQSKHAVLGLAVVWVFSLACTLPPVLGWSSYRPSMIGTTCEPN--WYSGELHDHTFILMFFSTCFIFPLAVIFFSYGKLIQKLKKASETQRGLESTRRAEQQVTRMVVVMILAFLVCWMPYATFSIVVTACPTI---PLLAAVPAFFSKTATVYNPVIYIFMNKQFRDCFVQVLPCKGLKKVSATQTAGASVNTQSPGNRH
->DADR_RAT
----------------MAPNTSTMDEAGLPAERDFSFRILTACFLSLLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPLG-PFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKAAFILISVAWTLSVLISFIPVQLSWHKAGN-EDDNCDTR--------LSRTYAISSSLISFYIPVAIMIVTYTSIYRIAQKQVECESSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFISNCMVPFCGSECIDSITFDVFVWFGWANSSLNPIIYAFNA-DFQKAFSTLLGCYRLCPTTNNAIETAVVFSSH-----
->GALS_RAT
-------------MNGSGSQGAENTSQEGGSGGWQPEAVLVPLFFALIFLVGTVGNALVLAVLLRGGQAVSTTNLFILNLGVADLCFILCCVPFQATIYTLDDWVFGSLLCKAVHFLIFLTMHASSFTLAAVSLDRYLAIRYPLSRELRTPRNALAAIGLIWGLALLFSGPYLSYYR---AN--LTVCHPA----WSAPRRRAMDLCTFVFSYLLPVLVLSLTYARTLRYLWRTDP-VTAGSGSQRAKRKVTRMIIIVAVLFCLCWMPHHALILCVWFGRFPRATYALRILSHLVSYANSCVNPIVYALVSKHFRKGFRKICAGLLRPAPRRASGRVHSGSMLEQESTD
->5H7_MOUSE
-SSWMPHLLSGFPEVTASPAPTNVSGCGEQINYGRVEKVVIGSILTLITLLTIAGNCLVVISVCFVKNVRQPSNYLIVSLALADLSVAVAVMPFVSVTDLIGGWIFGHFFCNVFIAMDVMCCTASIMTLCVISIDRYLGITRPLYPVRQNGKCMAKMILSVWPLSASITLPPLFGWAQ--N-D--KVCLIS--------QDFGYTIYSTAVAFYIPMSVMLFMYYQIYKAARKSSRLERKNISSFKREQKAATTLGIIVGAFTVCWLPFFLLSTARPFICGTCIPLWVERTCLWLGYANSLINPFIYSFFNRDLRTTYRSLLQCQYRNINRKLSAAGAERPERSEFVLQ
->EBI2_HUMAN
-------MDIQMANNFTPPSATPQGNDCDLYAHHSTARIVMPLHYSLVFIIGLVGNLLALVVIVQNRKKINSTTLYSTNLVISDILFTTALPTRIAYYAMGFDWRIGDALCRITALVFYINTYAGVNFMTCLSIDRFIAVVHPLYNKIKRIEHAKGVCIFVWILVFAQTLPLLINPMS--KQEERITCMEY--NFEETKSLPWILLGACFIGYVLPLIIILICYSQICCKLFRTAK-QNPLTEKSGVNKKALNTIILIIVVFVLCFTPYHVAIIQHMIKKLRHSFQISLHFTVCLMNFNCCMDPFIYFFACKGYKRKVMRMLKRQVSVSISSAVKSAMTETQMMIHSKS
->TSHR_CANFA
-LQAFDSHYDYTVCGGNEDMVCTPKSDEFNPCEDIMGYKFLRIVVWFVSLLALLGNVFVLIVLLTSHYKLTVPRFLMCNLAFADFCMGMYLLLIASVDLYTHSWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWYAITFAMLDRKIRLRHAYAIMVGGWVCCFLLALLPLVGISSY----KVSICLPM-----TETPLALAYIILVLLLNIVAFIIVCSCYVKIYITVRNP------QYNPGDKDTKIAKRMAVLIFTDFMCMAPISFYALSALMNKPLITVTNSKILLVLFYPLNSCANPFLYAIFTKAFQRDVFILLSKFGICKRQAQAYRGSAGIQIQKVTRD
->NY4R_RAT
-HLMASLSPAFLQGKNGTNPLDSLYNLSDGCQDSADLLAFIITTYSVETVLGVLGNLCLIFVTTRQKEKSNVTNLLIANLAFSDFLMCLICQPLTVTYTIMDYWIFGEVLCKMLTFIQCMSVTVSILSLVLVALERHQLIINPT-GWKPSISQAYLGIVVIWFISCFLSLPFLANSILNDED--KVVCFVS---WSSDHHRLIYTTFLLLFQYCVPLAFILVCYMRIYQRLQRQRA-THTCSSRVGQMKRINGMLMAMVTAFAVLWLPLHVFNTLEDWYQEACHGNLIFLMCHLFAMASTCVNPFIYGFLNINFKKDIKALVLTCRCRPPQGEP---TVHTDLSKGSMR
->CKR5_PAPHA
-----MDYQVSSPTYDIDYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLLFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->OLF2_RAT
-------------MESGNSTRRFSSFFLLGFTENPQLHFLIFALFLSMYLVTVLGNLLIIMAIITQSHLHTPMYFFLANLSFVDICFTSTTIPKMLVNIYTQSKSITYEDCISQMCVFLVFAELGNFLLAVMAYDRYVA-CHPLYTVIVNHRLCILLLLLSWVISIFHAFIQSLIVLQL---TPHFFCELNQLTCSDNFPSHLIMNLVPVMLAAISFSGILYSYFKIVSSI--------HSISTVQGKYKAFSTCASHLSIVSLFYSTGLGVYVSSAVVQ---SSHSAASASVMYTVVTPMLNPFIYSLRNKDVKRALERLLEGNCKVHHWTG----------------
->HH2R_HUMAN
--------------------MAPNGTASSFCLDSTACKITITVVLAVLILITVAGNVVVCLAVGLNRRLRNLTNCFIVSLAITDLLLGLLVLPFSAIYQLSCKWSFGKVFCNIYTSLDVMLCTASILNLFMISLDRYCAVMDPLYPVLVTPVRVAISLVLIWVISITLSFLSIHLGWN--RN-TTSKCKVQ--------VNEVYGLVDGLVTFYLPLLIMCITYYRIFKVARDQR--ISSWKAATIREHKATVTLAAVMGAFIICWFPYFTAFVYRGLRGDD-INEVLEAIVLWLGYANSALNPILYAALNRDFRTGYQQLFCCRLANRNSHKTSLRRTQSREPRQ---
->CKR5_HYLLE
-----MDYQVSSPTYDIDYDTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNMLVILVLINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQK-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKHFCKCCSIFA-------SSVY
->B3AR_HUMAN
-MAPWPHENSSLAPWPDLPTLAPNTANTSGLPGVPWEAALAGALLALAVLATVGGNLLVIVAIAWTPRLQTMTNVFVTSLAAADLVMGLLVVPPAATLALTGHWPLGATGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRCARTAVVLVWVVSAAVSFAPIMSQWWRVQ-R--RCCAFA--------SNMPYVLLSSSVSFYLPLLVMLFVYARVFVVATRQGVPRRPARLLPLREHRALCTLGLIMGTFTLCWLPFFLANVLRALGGPS-VPGPAFLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCRCGRRLPPEPCAAAGVPAARSSPAQP
->NY6R_MOUSE
---MEVLTNQPTPNKTSGKSNNSAFFYFESCQPPFLAILLLLIAYTVILIMGIFGNLSLIIIIFKKQRAQNVTNILIANLSLSDILVCVMCIPFTVIYTLMDHWVFGNTMCKLTSYVQSVSVSVSIFSLVLIAIERYQLIVNPR-GWKPRVAHAYWGIILIWLISLTLSIPLFLSYHLTNTH--QVACVEI---WPSKLNQLLFSTSLFMLQYFVPLGFILICYLKIVLCLRKRTRQRKENKSRLNENKRVNVMLISIVVTFGACWLPLNIFNVIFDWYHEMCHHDLVFVVCHLIAMVSTCINPLFYGFLNKNFQKDLMMLIHHCWCGEPQESY---TMHTDESKGSLK
->OLF4_RAT
--------------MTGNNQTLILEFLLLGLPIPSEYHLLFYALFLAMYLTIILGNLLIIVLVRLDSHLHMPMYLFLSNLSFSDLCFSSVTMPKLLQNMQSQVPSISYTGCLTQLYFFMVFGDMESFLLVVMAYDRYVAICFPLYTTIMSTKFCASLVLLLWMLTMTHALLHTLLIARL---SLHFFCDISKLSCSDIYVNELMIYILGGLIIIIPFLLIVMSYVRIFFSI--------LKFPSIQDIYKVFSTCGSHLSVVTLFYGTIFGIYLCPSGNN---STVKEIAMAMMYTVVTPMLNPFIYSLRNRDMKRALIRVICTKKISL--------------------
->OPSD_ZEUFA
-MNGTEGPDFYVPMVNTTGIVRSPYDYPQYYLVNPAAFSMLAAYMFFLILVGFPVNFLTLYVTMEHKKLRTPLNYILLNLAVANLFMVIGGFTTTMYTSMHGYFVLGRTGCNLEGFFATLGGEIALWSLVVLAVERWVVVCKPISNFRFGENHAVMGVSFTWLMACACSVPPLFGWSRYIPEGMQCSCGIDYYTRAPGYNNESFVIYMFVCHFSIPLTIIFFCYGRLLCAVKDAAAAQQESETTQRAEREVSRMVVIMVIGFLICWLPYASVAWFIFTHQGSEFGPVFMTIPAFFAKSSAIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSHVSPA
->OPSD_CYPCA
-MNGTEGPMFYVPMSNATGVVKSPYDYPQYYLVAPWAYGCLAAYMFFLIITGFPINFLTLYVTIEHKKLRTPLNYILLNLAISDLFMVFGGFTTTMYTSLHGYFVFGRIGCNLEGFFATLGGEMGLWSLVVLAFERWMVVCKPVSNFRFGENHAIMGVVFTWFMACTCAVPPLVGWSRYIPEGMQCSCGVDYYTRAPGYNNESFVIYMFLVHFIIPLIVIFFCYGRLVCTVKDAAAQQQESETTQRAEREVTRMVVIMVIGFLICWIPYASVAWYIFTHQGSEFGPVFMTVPAFFAKSAAVYNPCIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->A2AR_LABOS
------MDPLNATGMDAFTAIHLNASWSADSGYSLAAIASIAALVSFLILFTVVGNILVVIAVLTSRALKAPQNLFLVSLATADILVATLVMPFSLANELMGYWYFGKVWCGIYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPKRVKCIIVIVWLISAFISSPPLLSIDS--I-S--PQCMLN--------DDTWYILSSSMASFFAPCLIMILVYIRIYQVAKTRKRRIAEKKVSQAREKRFTFVLAVVMGVFVVCWFPFFFSYSLHAVCRDYKIPDTLFK-FFWIGYCNSSLNPAIYTIFNRDFRRAFQKILCKSWKKSF-------------------
->D3DR_HUMAN
---------MASLSQLSSHLNYTCGAENSTGASQARPHAYYALSYCALILAIVFGNGLVCMAVLKERALQTTTNYLVVSLAVADLLVATLVMPWVVYLEVTGGWNFSRICCDVFVTLDVMMCTASILNLCAISIDRYTAVVMPVGTGQSSCRRVALMITAVWVLAFAVSCPLLFGFN---D-P--TVCSI---------SNPDFVIYSSVVSFYLPFGVTVLVYARIYVVLKQRTSLPLQPRGVPLREKKATQMVAIVLGAFIVCWLPFFLTHVLNTHCQTCHVSPELYSATTWLGYVNSALNPVIYTTFNIEFRKAFLKILSC-------------------------
->D2DR_FUGRU
------MDVFTQYAYNDSIFDNGTWSANETTKDETHPYNYYAMLLTLLIFVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWRFSKIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSRRRVTVMISVVWVLSFAISCPLLFGLN---T-R--SLCFI---------ANPAFVVYSSIVSFYVPFIVTLLVYVQIYVVLRKRQTSLSKRKISQQKEKKATQMLAIVLGVFIICWLPFFITHILNTHCTRCKVPAEMYNAFTWLGYVNSAVNPIIYTTFNVEFRKAFIKILHC-------------------------
->P2Y4_HUMAN
-ASTESSLLRSLGLSPGPGS---SEVELDCWFDEDFKFILLPVSYAVVFVLGLGLNAPTLWLFIFRLRPWDATATYMFHLALSDTLYVLSLPTLIYYYAAHNHWPFGTEICKFVRFLFYWNLYCSVLFLTCISVHRYLGICHPLALRWGRPRLAGLLCLAVWLVVAGCLVPNLFFVTTS-----TVLCHDT-TRPEEFDHYVHFSSAVMGLLFGVPCLVTLVCYGLMARRLYQP----LPGSAQSSSRLRSLRTIAVVLTVFAVCFVPFHITRTIYYLARLLNIVNVVYKVTRPLASANSCLDPVLYLLTGDKYRRQLRQLCGGGKPQPRTAASSLASSCRWAATPQDS
->GALR_MOUSE
-----MELAMVNLSEGNGSDPEPPAPESRPLFGIGVENFITLVVFGLIFAMGVLGNSLVITVLARSKPPRSTTNLFILNLSIADLAYLLFCIPFQATVYALPTWVLGAFICKFIHYFFTVSMLVSIFTLAAMSVDRYVAIVHSRSSSLRVSRNALLGVGFIWALSIAMASPVAYHQRLF-SN--QTFCWEQ---WPNKLHKKAYVVCTFVFGYLLPLLLICFCYAKVLNHLHKKLK--NMSKKSEASKKKTAQTVLVVVVVFGISWLPHHVVHLWAEFGAFPPASFFFRITAHCLAYSNSSVNPIIYAFLSENFRKAYKQVFKCHVCDESPRSETKEPPSTNCTHV---
->OAR1_LOCMI
-SSAAEEPQDALVGGDACGGRRPPSVLGVRLAVPEWEVAVTAVSLSLIILITIVGNVLVVLSVFTYKPLRIVQNFFIVSLAVADLTVAVLVMPFNVAYSLIQRWVFGIVVCKMWLTCDVLCCTASILNLCAIALDRYWAITDPIYAQKRTLRRVLAMIAGVWLLSGVISSPPLIGWNDW-N-D--TPCQLT--------EEQGYVIYSSLGSFFIPLFIMTIVYVEIFIATKRRPVYEEKQRISLSKERRAARTLGIIMGVFVVCWLPFFLMYVIVPFCNPSKPSPKLVNFITWLGYINSALNPIIYTIFNLDFRRAFKKLLHFKT-----------------------
->ML1A_SHEEP
-GSPGGTPKGNGSSALLNVSQAAPGAGDGVRPRPSWLAATLASILIFTIVVDIVGNLLVVLSVYRNKKLRNAGNVFVVSLAVADLLVAVYPYPLALASIVNNGWSLSSLHCQLSGFLMGLSVIGSVFSITGIAINRYCCICHSLYGKLYSGTNSLCYVFLIWTLTLVAIVPNLCVGT-LQYDP-IYSCTFT------QSVSSAYTIAVVVFHFIVPMLVVVFCYLRIWALVLQVWK-PDNKPKLKPQDFRNFVTMFVVFVLFAICWAPLNFIGLVVASDPASRIPEWLFVASYYMAYFNSCLNAIIYGLLNQNFRQEYRKIIVSLCTTKMFFVDSSNRKPSPLIANHNL
->OPSD_SOLSO
-MNGTEGPYFYIPMLNTTGIVRSPYEYPQYYLVNPAAYAALCAYMFLLILLGFPINFLTLYVTIEHKKLRTPLNYILLNLAVANLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIGLWSLVVLAVERWMVVCKPISNFRFTENHAIMGLGFTWFAASACAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVVYMFVCHFLIPLIVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVIMVIAFLICWCPYAGVAWYIFSNQGSEFGPLFMTIPAFFAKSSSIYNPLIYIFMNKQFRHCMITTLCCGKNPFEEEEGSTTSASSSSVSPAA-
->ML1A_MOUSE
--------MKGNVSELLNATQQAPGGGEGGRPRPSWLASTLAFILIFTIVVDILGNLLVILSVYRNKKLRNSGNIFVVSLAVADLVVAVYPYPLVLTSILNNGWNLGYLHCQVSAFLMGLSVIGSIFNITGIAMNRYCYICHSLYDKIYSNKNSLCYVFLIWMLTLIAIMPNLQTGT-LQYDP-IYSCTFT------QSVSSAYTIAVVVFHFIVPMIIVIFCYLRIWVLVLQVRR-PDNKPKLKPQDFRNFVTMFVVFVLFAICWAPLNLIGLIVASDPATRIPEWLFVASYYLAYFNSCLNAIIYGLLNQNFRKEYKKIIVSLCTAKMFFVESSNCKPSPLIPNNNL
->OPSD_POERE
-MNGTEGPYFYVPMVNTTGIVRSPYEYPQYYLVSPAAYACLGAYMFFLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTIYTSMHGYFVLGRLGCNLEGYFATLGGEIGLWSLVVLAVERWLVVCKPISNFRFSENHAIMGLVFTWIMANSCAAPPLLGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVIYMFICHFCIPLIVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVIMVIGFLVCWIPYASVAWYIFTHQGSEFGPLFMTVPAFFAKSASIYNPLIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->PE22_HUMAN
-----------------MGNASNDSQSEDCETRQWLPPGESPAISSVMFSAGVLGNLIALALLARRWRSLSLFHVLVTELVFTDLLGTCLISPVVLASYARNQLAPESRACTYFAFAMTFFSLATMLMLFAMALERYLSIGHPYYQRRVSASGGLAVLPVIYAVSLLFCSLPLLDYGQYVQYCPGTWCFIR--------HGRTAYLQLYATLLLLLIVSVLACNFSVILNLIRMGGPRRGERVSMAEETDHLILLAIMTITFAVCSLPFTIFAYMNETSS---RKEKWDLQALRFLSINSIIDPWVFAILRPPVLRLMRSVLCCRISLRTQDATQTSSKQADL------
->CKR3_HUMAN
-MTTSLDTVETFGTTSYYDDVGLLC---EKADTRALMAQFVPPLYSLVFTVGLLGNVVVVMILIKYRRLRIMTNIYLLNLAISDLLFLVTLPFWIHYVRGHN-WVFGHGMCKLLSGFYHTGLYSEIFFIILLTIDRYLAIVHAVALRARTVTFGVITSIVTWGLAVLAALPEFIFYETEE-LF-ETLCSALYPEDTVYSWRHFHTLRMTIFCLVLPLLVMAICYTGIIKTL---------LRCPSKKKYKAIRLIFVIMAVFFIFWTPYNVAILLSSYQSILKHLDLVMLVTEVIAYSHCCMNPVIYAFVGERFRKYLRHFFHRHLLMHLGRYIPFLT-------SSVS
->GPRA_HUMAN
-TPANQSAEASAGNGSVAGADAPAVTPFQSLQLVHQLKGLIVLLYSVVVVVGLVGNCLLVLVIARVPRLHNVTNFLIGNLALSDVLMCTACVPLTLAYAFEPRWVFGGGLCHLVFFLQPVTVYVSVFTLTTIAVDRYVVLVHPL--RRASRCASAYAVLAIWALSAVLALPPAVHTYHVEHD--VRLCEEF--WGSQERQRQLYAWGLLLVTYLLPLLVILLSYVRVSVKLRNRPGC-SQADWDRARRRRTFCLLVVVVVVFAVCWLPLHVFNLLRDLDPHAYAFGLVQLLCHWLAMSSACYNPFIYAWLHDSFREELRKLLVAWPRKIAPHGQNMT------------
->OPSD_LIZAU
-MNGTEGPYFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILIGFPVNFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIALWSLVVLAVERWMVVCKPISNFRFGEDHAIMGLAFTWVMAAACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFLIPLVVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVVAFLVCWCPYAGVAWYIFTHQGSEFGPLFMTFPAFFAKSSSIYNPMIYICMNKQFRQCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->PF2R_BOVIN
---MSTNS---------SIQPVSPESELLSNTTCQLEEDLSISFSIIFMTVGILSNSLAIAILMKAYQYKSSFLLLASALVITDFFGHLINGTIAVFVYASDKFDKSNILCSIFGICMVFSGLCPLFLGSLMAIERCIGVTKPIHSTKITTKHVKMMLSGVCFFAVFVALLPILGHRDYKIQASRTWCFYK--TDEIKDWEDRFYLLLFAFLGLLALGISFVCNAITGISLLKVKFRSQQHRQGRSHHFEMVIQLLGIMCVSCICWSPFLVTMASIGMNIQDKDSCERTLFTLRMATWNQILDPWVYILLRKAVLRNLYVCTRRCCGVHVISLHVWELKVAAISDLPVT
->GALR_RAT
-----MELAPVNLSEGNGSDPEPP-AEPRPLFGIGVENFITLVVFGLIFAMGVLGNSLVITVLARSKPPRSTTNLFILNLSIADLAYLLFCIPFQATVYALPTWVLGAFICKFIHYFFTVSMLVSIFTLAAMSVDRYVAIVHSRSSSLRVSRNALLGVGFIWALSIAMASPVAYYQRLF-SN--QTFCWEH---WPNQLHKKAYVVCTFVFGYLLPLLLICFCYAKVLNHLHKKLK--NMSKKSEASKKKTAQTVLVVVVVFGISWLPHHVIHLWAEFGAFPPASFFFRITAHCLAYSNSSVNPIIYAFLSENFRKAYKQVFKCRVCNESPHGDAKEPPSTNCTHV---
->OPSU_BRARE
-MNGTEGPAFYVPMSNATGVVRSPYEYPQYYLVAPWAYGFVAAYMFFLIITGFPVNFLTLYVTIEHKKLRTPLNYILLNLAIADLFMVFGGFTTTMYTSLHGYFVFGRLGCNLEGFFATLGGEMGLKSLVVLAIERWMVVCKPVSNFRFGENHAIMGVAFTWVMACSCAVPPLVGWSRYIPEGMQCSCGVDYYTRTPGVNNESFVIYMFIVHFFIPLIVIFFCYGRLVCTVKEAARQQQESETTQRAEREVTRMVIIMVIAFLICWLPYAGVAWYIFTHQGSEFGPVFMTLPAFFAKTSAVYNPCIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->GPR6_RAT
-GPPAASAALGGGGGPNGSLELSSQLPAGPSGLLLSAVNPWDVLLCVSGTVIAGENALVVALIASTPALRTPMFVLVGSLATADLLAG-CGLILHFVFQ-Y--VVPSETVSLLMVGFLVASFAASVSSLLAITVDRYLSLYNALYYSRRTLLGVHLLLAATWTVSLGLGLLPVLGWNCL-A--DRASCSVV-------RPLTRSHVALLSTSFFVVFGIMLHLYVRICQVVWRHIALHCLAPPHLAATRKGVGTLAVVLGTFGASWLPFAIYCVVGSQ----EDPAIYTYATLLPATYNSMINPIIYAFRNQEIQRALWLLFCGCFQSKVPFRSRSP------------
->ACM3_CHICK
-DSPETTESFPFSTVETTNSSLNATIKDPLGGHAVWQVVLIAFLTGIIALVTIIGNILVIVSFKVNKQLKTVNNYFLLSLACADLIIGVISMNLFTTYIIMGHWALGNLACDLWLSIDYVASNASVMNLLVISFDRYFSITRPLYRAKRTTKRAGVMIGLAWIISFVLWAPAILFWQYFV-VP-LDECFIQ------FLSEPIITFGTAIAAFYLPVTIMSILYWRIYKETEKRKTRTKRKRMSLIKEKKAAQTLSAILFAFIITWTPYNIMVLVNTFCDC--VPKTVWNLGYWLCYINSTVNPVCYALCNKMFRNTFKMLLLCQCDKRKRRKQQYQHKRIPREAS---
->NY5R_CANFA
--------------NTAATRNSDFPVWDDYKSSVDDLQYFLIGLYTFVSLLGFMGNLLILMALMRKRNQKTMVNFLIGNLAFSDILVVLFCSPFTLTSVLLDQWMFGKVMCHIMPFLQCVSVLVSTLILISIAIVRYHMIKHPI-SNNLTANHGYFLIATVWTLGFAICSPLPVFHSLVESS--RYLCVES---WPSDSYRIAFTISLLLVQYILPLVCLTVSHTSVCRSISCGVHDNRSIMRIKKRSRSVFYRLTILILVFAVSWMPLHLFHVVTDFNDNLRHFKLVYCICHLLGMMSCCLNPILYGFLNNGIKADLISLIQCLHMS---------------------
->MC5R_SHEEP
--MNSSFHLHFLDLGLNATEGNLSGLSVRNASSPCEDMGIAVEVFLALGLISLLENILVIGAIVRNRNLHIPMYFFVGSLAVADMLVSLSNFWETITIYLLTNDASVRHLDNVFDSMICISVVASMCSLLAIAVDRYVTIFCRLYQRIMTGRRSGAIIAGIWAFCTSCGTVFIVYYY----------------------EESTYVVVCLIAMFLTMLLLMASLYTHMFLLARTH-RIPGHSSVRQRTGVKGAITLAMLLGVFIICWAPFFLHLILMISCPQNSCFMSHFNMYLILIMCNSVIDPLIYAFRSQEMRKTFKEIVCFQGFRTPCRFPSTY------------
->V2R_RAT
-MLLVSTVSAVPGLFSPPSSPSNSSQEELLDDRDPLLVRAELALLSTIFVAVALSNGLVLGALIRRGRRWAPMHVFISHLCLADLAVALFQVLPQLAWDATDRFHGPDALCRAVKYLQMVGMYASSYMILAMTLDRHRAICRPMAYRHGGGARWNRPVLVAWAFSLLLSLPQLFIFAQRDSG--VFDCWAR---FAEPWGLRAYVTWIALMVFVAPALGIAACQVLIFREIHASGRRPSEGAHVSAAMAKTVRMTLVIVIVYVLCWAPFFLVQLWAAWDPEA-LERPPFVLLMLLASLNSCTNPWIYASFSSSVSSELRSLLCCAQRHTTHSLGPQDSSLMKDTPS---
->EDG2_MOUSE
-QPQFTAMNEQQCFYNESIAFFYNRSGKYLATEWNTVSKLVMGLGITVCVFIMLANLLVMVAIYVNRRFHFPIYYLMANLAAADFFAG-LAYFYLMFNTGPNTRRLTVSTWLLRQGLIDTSLTASVANLLAIAIERHITVFRMQLHTRMSNRRVVVVIVVIWTMAIVMGAIPSVGWNCI-C--DIDHCSNM------APLYSDSYLVFWAIFNLVTFVVMVVLYAHIFGYVRQRRMSSSGPRRNRDTMMSLLKTVVIVLGAFIVCWTPGLVLLLLDVCCPQC-DVLAYEKFFLLLAEFNSAMNPIIYSYRDKEMSATFRQILCCQRNENPNGPTEGSNHTILAGVHSND
->EDG1_RAT
-VKALRSQVSDYGNYDIIVRHYNYTGKLNIGVEKDHGIKLTSVVFILICCLIILENIFVLLTIWKTKKFHRPMYYFIGNLALSDLLAG-VAYTANLLLSGATTYKLTPAQWFLREGSMFVALSASVFSLLAIAIERYITMLKMKLHNGSNSSRSFLLISACWVISLILGGLPIMGWNCI-S--SLSSCSTV------LPLYHKHYILFCTTVFTLLLLSIVILYCRIYSLVRTRLTFISKASRSSEKSLALLKTVIIVLSVFIACWAPLFILLLLDVGCKAKCDILYKAEYFLVLAVLNSGTNPIIYTLTNKEMRRAFIRIISCCKCPNGDSAGKFKEFSRSKSDNSSH
->CKR8_HUMAN
-DYTLDLSVTTVTDYYYPDIFSSPC---DAELIQTNGKLLLAVFYCLLFVFSLLGNSLVILVLVVCKKLRSITDVYLLNLALSDLLFVFSFPFQTYYLLDQ--WVFGTVMCKVVSGFYYIGFYSSMFFITLMSVDRYLAVVHAVALKVRTIRMGTTLCLAVWLTAIMATIPLLVFYQVAS-ED-VLQCYSF-YNQQTLKWKIFTNFKMNILGLLIPFTIFMFCYIKILHQL---------KRCQNHNKTKAIRLVLIVVIASLLFWVPFNVVLFLTSLHSMHQQLTYATHVTEIISFTHCCVNPVIYAFVGEKFKKHLSEIFQKS-CSQIFNYLGRQKS------SSCQ
->B1AR_MACMU
-LPDGVATAARLLVPASPPASLLPPASEGPEPLSQQWTAGMGLLMALIVLLIVAGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARGLVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHREL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRNAFQRLLCCARRAARRRHAAHGCLARPGPPPSPG
->DBDR_.ENLA
-FQHLDSDQVASWQSPEMLMNKSVSRESQRRKELVAGQIVTGSLLLLLIFWTLFGNILVCTAVMRFRHRSRVTNIFIVSLAVSDLLVALLVMPWKAVAEVAGHWPFG-AFCDIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTQRVALLMISTAWALSVLISFIPVQLSWHKSDH-STGNCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTRIYRIAQIQSCSQTSLRTSIKKETKVLKTLSIIMGVFVCCWLPFFILNCMVPFCDRSCVSETTFDIFVWFGWANSSLNPIIYAFNA-DFRKVFSSLLGCGHWCSTTPVETVNYNQDTLFHK---
->O00155
-PTEPWSPSPGSAPWDYSGLDGLEELELCPAGDLPYGYVYIPALYLAAFAVGLLGNAFVVWLLAGRRGPRRLVDTFVLHLAAADLGFVLTLPLWAAAAARRP-WPFGDGLCKLSTFALAGTRSAGALLLAGMSVDRYLAVVKLLARPLRTPRCAVASCCGVWAVALLAGLPSLVYRGLQPLPG-DSQCGE-----EPSHAFQGLSLLLLLLTFVLPLVVTLFCYCRISRRL-------RRPPHVGRARRNSLRIIFAIESTFVGSWLPFSALRAVFHLARLGLALRWGLTIATCLAFVNSCANPLIYLLLDRSFRARALDGACGRTGRLARRISSASSVFRCRAQAANT
->NY4R_HUMAN
-HLLALLLPKSPQGENRSKPLGTPYNFSEHCQDSVDVMVFIVTSYSIETVVGVLGNLCLMCVTVRQKEKANVTNLLIANLAFSDFLMCLLCQPLTAVYTIMDYWIFGETLCKMSAFIQCMSVTVSILSLVLVALERHQLIINPT-GWKPSISQAYLGIVLIWVIACVLSLPFLANSILENAD--KVVCTES---WPLAHHRTIYTTFLLLFQYCLPLGFILVCYARIYRRLQRQGRVKGTYSLRAGHMKQVNVVLVVMVVAFAVLWLPLHVFNSLEDWHHEACHGNLIFLVCHLLAMASTCVNPFIYGFLNTNFKKEIKALVLTCQQSAPLEES---TVHTEVSKGSLR
->SSR2_MOUSE
-QLNGSQVWVSSPFDLNGSLGPSNGSNQTEPYYDMTSNAVLTFIYFVVCVVGLCGNTLVIYVILRYAKMKTITNIYILNLAIADELFMLGLPFLAMQVALVH-WPFGKAICRVVMTVDGINQFTSIFCLTVMSIDRYLAVVHPISAKWRRPRTAKMINVAVWCVSLLVILPIMIYAGLRSWG--RSSCTIN-WPGESGAWYTGFIIYAFILGFLVPLTIICLCYLFIIIKVKSSGIR-VGSSKRKKSEKKVTRMVSIVVAVFIFCWLPFYIFNVSSVSVAISPALKGMFDFVVILTYANSCANPILYAFLSDNFKKSFQNVLCLVKVSGTEDGERSDLNETTETQRTLL
->EDG2_SHEEP
-QPQFTAMNEPQCFYNESIAFFYNRSGKYLATEWNTVSKLVMGLGITVCIFIMLANLLVMVAIYVNRRFHFPIYYLMANLAAADFFAG-LAYFYLMFNTGPNTRRLTVSTWLLRQGLIDTTVTASVANLLAIAIERHITVFRMQLHTRMSNRRVVVVIVVIWTMAIVMGAIPSVGWNCI-C--DIENCSNM------APLYSDSYLVFWAIFNLVTFVVMVVLYAHIFGYVRQRRMSSSGPRRNRDTMMSLLKTVVIVLGAFIICWTPGLVLLLLDVCCPQC-DVLAYEKFFLLLAEFNSAMNPIIYSYRDKEMSATFRQILCCQRSENTSGPTEGSNHTILAGVHSND
->5H6_MOUSE
------------MVPEPGPVNSSTPAWGPGPPPAPGGSGWVAAALCVVIVLTAAANSLLIALICTQPALRNTSNFFLVSLFTSDLMVGLVVMPPAMLNALYGRWVLARGLCLLWTAFDVMCCSASILNLCLISLDRYLLILSPLYKLRMTAPRALALILGAWSLAALASFLPLLLGWH---E-APGQCRLL--------ASLPYVLVASGVTFFLPSGAICFTYCRILLAARKQMESRRLTTKHSRKALKASLTLGILLSMFFVTWLPFFVASIAQAVCDC--ISPGLFDVLTWLGYCNSTMNPIIYPLFMRDFKRALGRFVPCVHCPPEHRASPASSGARPGLSLQQV
->ACTR_CAVPO
--------------MKHIIHASGNVNGTARNNSDCPHVALPEEIFFIISITGVLENLIIILAVIKNKNLQFPMYFFICSLAISDMLGSLYKILESILIMFRNMGSFETTTDDIIDTMFILSLLGSIFSLLAIAVDRYITIFHALYHSIVTMHRTIAVLSIIWTFCIGSGITMVLFFS----------------------HHHVPTVLTFTSLFPLMLVFILCLYVHMFLMARSH---ARNISTLPRGNMRGAITLTILLGVFIFCWAPFILHILLVTFCPNNTCYISLFHVNGMLIMCNAVIDPFIYAFRSPELRSAFRRMISYSKCL---------------------
->OPSD_ALLMI
-MNGTEGPDFYIPFSNKTGVVRSPFEYPQYYLAEPWKYSALAAYMFMLIILGFPINFLTLYVTVQHKKLRSPLNYILLNLAVADLFMVLGGFTTTLYTSMNGYFVFGVTGCYFEGFFATLGGEVALWCLVVLAIERYIVVCKPMSNFRFGENHAIMGVVFTWIMALTCAAPPLVGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFAIPLAVIFFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVVSFLICWVPYASVAFYIFSNQGSDFGPVFMTIPAFFAKSSAIYNPVIYIVMNKQFRNCMITTLCCGKNPLGDDETATGTSSVSTSQVSPA
->OPSD_RANTE
-MNGTEGPNFYIPMSNKTGVVRSPFEYPQYYLAEPWKYSILAAYMFLLILLGFPINFMTLYVTIQHKKLRTPLNYILLNLAFANHFMVLCGFTITLYTSLHGYFVFGQSGCYFEGFFATLGGEIALWSLVALAIERYIVVCKPMSNFRFGENHAMMGVAFTWIMALACAVPPLFGWSRYIPEGMQCSCGVDYYTLKPEINNESFVIYMFVVHFLIPLIIITFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVIFFLICWVPYAYVAFYIFCNQGSEFGPIFMTVPAFFAKSSAIYNPVIYIMLNKQFRNCMITTLCCGKNPFGDDDASSAATSVSTSQVSPA
->A2AC_CAVPO
-GPNASGAGEG----GGGVNASGAVWGPPPSQYSAGAVAGLAAVVGFLIVFTVVGNVLVVIAVLTSRALRAPQNLFLVSLASADILVATLVMPFSLANELMAYWYFGQVWCGVYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRVKATIVAVWLISAIISFPPLVSFYR-------PRCGLN--------DETWYILSSCIGSFFAPCLIMGLVYARIYRVAKLRRRAVCRRKVAQAREKRFTFVLAVVMGVFVLCWFPFFFSYSLYGICREAQLPTPLFKFFFWIGYCNSSLNPVIYTIFNQDFRRSFKHILFRRRRRGFRQ-----------------
->PE23_RAT
----------MAGVWAPEHSVEAHSNQS---SAADGCGSVSVAFPITMMVTGFVGNALAMLLVVRSYRRKKSFLLCIGWLALTDLVGQLLTSPVVILVYLSQRLDPSGRLCTFFGLTMTVFGLSSLLVASAMAVERALAIRAPHYASHMKTRAT-PVLLGVWLSVLAFALLPVLGVG----RYSGTWCFISNETDSAREPGSVAFASAFACLGLLALVVTFACNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKMIFNQMSEKECNSFLIAVRLASLNQILDPWVYLLLRKILLRKFCQIRDHTN-YASSSTSLPCWSDQLER-----
->OPSF_ANGAN
-MNGTEGPNFYVPMSNVTGVVRSPFEYPQYYLAEPWAYSALAAYMFFLIIAGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVFGPTGCNIEGFFATLGGEIALWCLVVLAVERWMVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLFGWSRYIPEGMQCSCGMDHYAPNPETYNESFVIYMFICHFTIPLTVISFCYGRLVCTVKEATAQQQESETTQRAEREVTRMVIIMVISFLVCWVPYASVAWYIFTHQGSSFGPIFMTIPAFFAKSSSLYNPLIYICMNKQSRNCMITTLCCGKNPFEEEEGASTASSVSS--VSPA
->OPSR_ORYLA
-NE--DTTRGSAFTYTNSNHTRDPFEGPNYHIAPRWVYNLATLWMFFVVVLSVFTNGLVLVATAKFKKLRHPLNWILSNLAIADLGETVFASTISVCNQFFGYFILGHPMCVFEGYVVSTCGIAALWSLTIISWERWVVVCKPFGNVKFDAKWAIGGIVFSWVWSAVWCAPPVFGWSRYWPHGLKTSCGPDVFSGSDDPGVQSYMIVLMITCCIIPLAIIILCYLAVWLAIRAVAMQQKESESTQKAEREVSRMVVVMIVAYCVCWGPYTFFACFAAANPGYAFHPLAAAMPAYFAKSATIYNPVIYVFMNRQFRTCIMQLFGKQVDDG-----SEVSS------VAPA
->CKR5_CERAE
-----MDYQVSSPTYDIDNYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLLFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPRIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->D2DR_CERAE
----MDPLNLSWYDDDLERQNWSRPFNGSDGKADRPHYNYYATLLTLLIAVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSKIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSKRRVTVMIAIVWVLSFTISCPLLFGLN---Q----NECII---------ANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRRRRTSMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCN-IPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFLKILHC-------------------------
->AA3R_SHEEP
--------------------------MPVNSTAVSWTSVTYITVEILIGLCAIVGNVLVIWVVKLNPSLQTTTFYFIVSLALADIAVGVLVMPLAIVISLG--VTIHFYSCLFMTCLMLIFTHASIMSLLAIAVDRYLRVKLTVYRRVTTQRRIWLALGLCWLVSFLVGLTPMFGWN-MKA-D-FLPCRFR-----SVMRMDYMVYFSFFLWILVPLVVMCAIYFDIFYIIRNR--SSRETGAFYGREFKTAKSLLLVLFLFALCWLPLSIINCILYFDGQ--VPQTVLYLGILLSHANSMMNPIVYAYKIKKFKETYLLILKACVMCQPSKSMDPS------------
->IL8B_RAT
-SGDIDSYN-YSSDPPFTLSDAAPC----PSANLDINRYAVVVIYVLVTLLSLVGNSLVMLVILYNRSTCSVTDVYLLNLAIADLFFALTLPVWAASKVNG--WIFGSFLCKVFSFLQEITFYSSVLLLACISMDRYLAIVHATSTLIQKRHLVKFVCITMWFLSLVLSLPIFILRTTVK-PS-TVVCYEN-IGNNTSKWRVVLRILPQTYGFLLPLLIMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLVFLLCWLPYNIVLFTDTLMRTKNEINKALEATEILGFLHSCLNPIIYAFIGQKFRHGLLKIMANYGLVSKEFLAKEG------------
->NY5R_MOUSE
-ASPAWEDYRGTENNTSAARNTAFPVWEDYRGSVDDLQYFLIGLYTFVSLLGFMGNLLILMAVMKKRNQKTTVNFLIGNLAFSDILVVLFCSPFTLTSVLLDQWMFGKAMCHIMPFLQCVSVLVSTLILISIAIVRYHMIKHPI-SNNLTANHGYFLIATVWTLGFAICSPFPVFHSLVESS--KYLCVES---WPSDSYRIAFTISLLLVQYILPLVCLTVSHTSVCRSISCGAQEKRSLTRIKKRSRSVFYRLTILILVFAVSWMPLHVFHVVTDFNDNLRHFKLVYCICHLLGMMSCCLNPILYGFLNNGIKADLRALIHCLHMS---------------------
->OPS3_DROPS
-ARLSAESRLLGWNVPPDELRHIPEHWLIYPEPPESMNYLLGTLYIFFTVISMIGNGLVMWVFSAAKSLRTPSNILVINLAFCDFMMMIKTPIFIYNSFHQG-YALGHLGCQIFGVIGSYTGIAAGATNAFIAYDRYNVITRPM-EGKMTHGKAIAMIIFIYLYATPWVVACYTESWGRFPEGYLTSCTFD--YLTDNFDTRLFVACIFFFSFVCPTTMITYYYSQIVGHVFSHNVDSNVDKSKEAAEIRIAKAAITICFLFFASWTPYGVMSLIGAFGDKTLLTPGATMIPACTCKMVACIDPFVYAISHPRYRMELQKRCPWLAISEKAPESRAAEQQQTTAA----
->B1AR_MOUSE
-LPDGAATAARLLVLASPPASLLPPASEGSAPLSQQWTAGMGLLVALIVLLIVVGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARALVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCCARRAACRRRAAHGCLARAGPPPSPG
->O6A1_HUMAN
-------------MEWRNHSGRVSEFVLLGFPAPVPIQVILFALLLLAYVLVLTENTLIIMAIRNHSTLHKPMYFFLANMSFLEIWYVTVTIPKMLAGFVGSKQLISFEGCMTQLYFFLGLGCTECVLLAVMANDRYMAICYLLNPVIVSGRLCVQMAAGSWAGGFGISMVKVFLISGL---SNHFFCDVSNLSCTDMSTAELTDFILAIFILLGPLSVTGASYVAITGAV--------MHIPSAAGRYKAFSTCASHFNVVIIFYAASIFIYARPKALS---AFDTNKLVSVLYAVIVPLLNPIIYCLRNQEVKRALCCILHLYQHQDPDPKKGSR------------
->GPR8_HUMAN
-PLDSRGSFSLPTMGANVSQDNGTGHNATFSEPLPFLYVLLPAVYSGICAVGLTGNTAVILVILRAPKMKTVTNVFILNLAVADGLFTLVLPVNIAEHLLQY-WPFGELLCKLVLAVDHYNIFSSIYFLAVMSVDRYLVVLATVHMPWRTYRGAKVASLCVWLGVTVLVLPFFSFAGVYS-LQ-VPSCGLS-FPWPERVWFKASRVYTLVLGFVLPVCTICVLYTDLLRRLRAVR--RSGAKALGKARRKVTVLVLVVLAVCLLCWTPFHLASVVALTTDLPPLVISMSYVITSLTYANSCLNPFLYAFLDDNFRKNFRSILRC-------------------------
->CCKR_.ENLA
-SSTNGTHNLTTANWPPWNLNCTPILDRKKPSPSDLNLWVRIVMYSVIFLLSVFGNTLIIIVLVMNKRLRTITNSFLLSLALSDLMVAVLCMPFTLIPNLMENFIFGEVICRAAAYFMGLSVSVSTFNLVAISIERYSAICNPLSRVWQTRSHAYRVIAATWVLSSIIMIPYLVYK----DRRVGHQCRLV---WPSKQVQQAWYVLLLTILFFIPGVVMIVAYGLISRELYRGKMDINNSEAKLMAKKRVIRMLIVIVAMFFICWMPIFVANTWKAFDELSTLTGAPISFIHLLSYTSACVNPLIYCFMNKRFRKAFLGTFSSCIKP----CRNFRATGASLSKFSYT
->ETBR_RAT
-SSAPAEVTKGGRVAGVPPRS-FPPPCQRKIEINKTFKYINTIVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIIIDIPINAYKLLAGDWPFGAEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEAIGFDVITRV--LRVCMLNQKTAFMQFYKTAKDWWLFSFYFCLPLAITAIFYTLMTCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKLTLYDQSFLLVLDYIGINMASLNSCINPIALYLVSKRFKNCFKSCLCCWCQTFE-EKQSLEFKANDHGYDNFR
->EDG2_HUMAN
-QPQFTAMNEPQCFYNESIAFFYNRSGKHLATEWNTVSKLVMGLGITVCIFIMLANLLVMVAIYVNRRFHFPIYYLMANLAAADFFAG-LAYFYLMFNTGPNTRRLTVSTWLLRQGLIDTSLTASVANLLAIAIERHITVFRMQLHTRMSNRRVVVVIVVIWTMAIVMGAIPSVGWNCI-C--DIENCSNM------APLYSDSYLVFWAIFNLVTFVVMVVLYAHIFGYVRQRRMSSSGPRRNRDTMMSLLKTVVIVLGAFIICWTPGLVLLLLDVCCPQC-DVLAYEKFFLLLAEFNSAMNPIIYSYRDKEMSATFRQILCCQRSENPTGPTESSNHTILAGVHSND
->5H1D_RAT
-SLPNQSLEGLPQEASNRSLNAT---GAWDPEVLQALRISLVVVLSIITLATVLSNAFVLTTILLTKKLHTPANYLIGSLATTDLLVSILVMPISIAYTTTRTWNFGQILCDIWVSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGHAAAMIAAVWAISICISIPPLFWR----H-E--SDCLVN-------TSQISYTIYSTCGAFYIPSILLIILYGRIYVAARSRKLALERKRISAARERKATKTLGIILGAFIICWLPFFVVSLVLPICRDSWIHPALFDFFTWLGYLNSLINPVIYTVFNEDFRQAFQRVVHFRKAS---------------------
->ET1R_BOVIN
-ELSFVVTTHQPTNLALPSNGSMHNYCPQQTKITSAFKYINTVISCTIFIVGMVGNATLLRIIYQNKCMRNGPNALIASLALGDLIYVVIDLPINVFKLLAGRNDFGVFLCKLFPFLQKSSVGITVLNLCALSVDRYRAVASWSVQGIGIPLVTAIEIVSIWILSFILAIPEAIGFVMVPRT--HRTCMLNATSKFMEFYQDVKDWWLFGFYFCMPLVCTAIFYTLMTCEMLNRGSL-IALSEHLKQRREVAKTVFCLVVIFALCWFPLHLSRILKKTVYDESFLLLMDYIGINLATMNSCINPIALYFVSKKFKNCFQSCLCCCCYQSKSLMTSVPWKNHEQNNHNTE
->GRE2_BALAM
-----MSGGEASITGRTAPELN-ASAAPLDDERELGETVAATALLLAIILVTIVGNSLVIISVFTYRPLRSVQNFFVVSLAVADLTVALFVLPLNVAYRLLNQWLLGSYLCQMWLTCDILCCTSSILNLCVIALDRYWAITDPIYAQKRTIRRVNTMIAAVWALSLVISVPPLLGWNDW-T-E--TPCTLT--------QR-LFVVYSSSGSFFIPLIIMSVVYAKIFFATKRRSVHEEKQRISLSKERKAARVLGVIMGVFVVCWLPFFLMYAIVPFCTNCPPSQRVVDFVTWLGYVNSSLNPIIYTIYNKDFRTAFSRLLRCDRRMSA-------------------
->LSHR_MOUSE
-ENELSGWDYDYDFCSPKTLQCTPEPDAFNPCEDIMGYAFLRVLIWLINILAIFGNLTVLFVLLTSRYKLTVPRFLMCNLSFADFCMGLYLLLIASVDSQTKGWQTG-SGCSAAGFFTVFASELSVYTLTVITLERWHTITYAVLDQKLRLRHAIPIMLGGWIFSTLMATLPLVGVSSY----KVSICLPM-----VESTLSQVYILSILLLNAVAFVVICACYVRIYFAVQNP------ELTAPNKDTKIAKKMAILIFTDFTCMAPISFFAISAAFKVPLITVTNSKVLLVLFYPVNSCANPFLYAVFTKAFQRDFFLLLSRFGCCKHRAELYRRFNSKNGFPRSSK
->MSHR_MOUSE
-STQEPQKSLLGSLNSN--ATSHLGLATNQSEPWCLYVSIPDGLFLSLGLVSLVENVLVVIAITKNRNLHSPMYYFICCLALSDLMVSVSIVLETTIILLLEVVALVQQLDNLIDVLICGSMVSSLCFLGIIAIDRYISIFYALYHSIVTLPRARRAVVGIWMVSIVSSTLFITYYY----------------------KKHTAVLLCLVTFFLAMLALMAILYAHMFTRACQHIAQKRRRSIRQGFCLKGAATLTILLGIFFLCWGPFFLHLLLIVLCPQHSCIFKNFNLFLLLIVLSSTVDPLIYAFRSQELRMTLKEVLLCSW-----------------------
->5H5A_RAT
-LPINLTSFSLSTPSTLEPNRSDTEALRTSQSFLSAFRVLVLTLLGFLAAATFTWNLLVLATILRVRTFHRVPHNLVASMAISDVLVAVLVMPLSLVHELSGRWQLGRRLCQLWIACDVLCCTASIWNVTAIALDRYWSITRHLYTLRARKRVSNVMILLTWALSAVISLAPLLFGWGE-S-E-SEECQVS--------REPSYTVFSTVGAFYLPLCVVLFVYWKIYKAAKFRATVTEGDTWREQKEQRAALMVGILIGVFVLCWFPFFVTELISPLCSW-DIPALWKSIFLWLGYSNSFFNPLIYTAFNRSYSSAFKVFFSKQQ-----------------------
->BRS3_HUMAN
-QTLISITNDTESSSSVVSNDNTNKGWSGDNSPGIEALCAIYITYAVIISVGILGNAILIKVFFKTKSMQTVPNIFITSLAFGDLLLLLTCVPVDATHYLAEGWLFGRIGCKVLSFIRLTSVGVSVFTLTILSADRYKAVVKPLRQPSNAILKTCVKAGCVWIVSMIFALPEAIFSNVYTMT--FESCTSY---VSKKLLQEIHSLLCFLVFYIIPLSIISVYYSLIARTLYKSIPTQSHARKQIESRKRIARTVLVLVALFALCWLPNHLLYLYHSFTSQTAMHFIFTIFSRVLAFSNSCVNPFALYWLSKSFQKHFKAQLFCCKAERPEPPVADTMGTVPGTGSIQM
->OPSD_CATBO
-GGGF-GNQTVVDKVPPEMLHLVDAHWYQFPPMNPLWHAILGFVIGILGMISVIGNGMVIYIFTTTKSLRTPSNLLVINLAISDFLMMLSMSPAMVINCYYETWVLGPLVCELYGLTGSLFGCGSIWTMTMIAFDRYNVIVKGLSAKPMTINGALLRILGIWFFSLGWTIAPMFGWNRYVPEGNMTACGTD--YLTKDLLSRSYILVYSFFCYFLPLFLIIYSYFFIIQAVAAHMNVRSAENQSTSAECKLAKVALMTISLWFMAWTPYLVINYAGIFETVK-INPLFTIWGSLFAKANAVYNPIVYGISHPKYRAALFQRFPSLACSSGPAG-ADTTEGTEKPAA---
->GASR_PRANA
-GSSLCHPGVSLLNSSSAGNLSCEPPRIRGTGTRELELAIRITLYAVIFLMSIGGNMLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVICKAVSYLMGVSVSVSTLNLVAIALERYSAICRPLARVWQTRSHAARVILATWLLSGLLMVPYPVYTVVQP---V-LQCMHR---WPSARVRQTWSVLLLMLLFFIPGVVMAVAYGLISRELYLGTPGASANQAKLLAKKRVVRMLLVIVLLFFLCWLPIYSANTWCAFDGPGALSGAPISFIHLLSYASACVNPLVYCFMHRRFRQACLDTCARCCPRPPRARPRPLPSIASLSRLSYT
->P2Y3_CHICK
-----------------MSMANFTGGRNSCTFHEEFKQVLLPLVYSVVFLLGLPLNAVVIGQIWLARKALTRTTIYMLNLAMADLLYVCSLPLLIYNYTQKDYWPFGDFTCKFVRFQFYTNLHGSILFLTCISVQRYMGICHPLWHKKKGKKLTWLVCAAVWFIVIAQCLPTFVFASTG-----RTVCYDL-SPPDRSTSYFPYGITLTITGFLLPFAAILACYCSMARILCQK---ELIGLAVHKKKDKAVRMIIIVVIVFSISFFPFHLTKTIYLIVRSSQAFAIAYKCTRPFASMNSVLDPILFYFTQRKFRESTRYLLDKMSSKWRQDHCISY------------
->AG2R_.ENLA
------MSNASTVETSDVERIAVNC---SKSGMHNYIFIAIPIIYSTIFVVGVFGNSMVVIVIYSYMKMKTVASIFLMNLALSDLCFVITLPLWAAYTAMHYHWPFGNFLCKVASTAITLNLYTTVFLLTCLSIDRYSAIVHPMSRIWRTAMVARLTCVGIWLVAFLASMPSIIYRQIYL-TN--TVCAIV-YDSGHIYFMVGMSLAKNIVGFLIPFLIILTSYTLIGKTLKEV------YRAQRARNDDIFKMIVAVVLLFFFCWIPYQVFTFLDVLIQMDDIVDTGMPITICIAYFNSCLNPFLYGFFGKNFRKHFLQLIKYIPPKMRTHASVNTSLSD-------T
->FSHR_PIG
-FDTMYSEFDYDLCNEVVDVICSPEPDTFNPCEDIMGHDILRVLIWFISILAITGNIIVLVILITSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKTWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLQCKVQLRHAASIMLVGWIFAFTVALFPIFGISSY----KVSICLPM-----IDSPLSQLYVVSLLVLNVLAFVVICGCYTHIYLTVRNP------NIMSSSSDTKIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKSKILLVLFYPINSCANPFLYAIFTKNFRRDVFILLSKFGCYEMQAQTYRTNIHPRNGHCPPA
->MSHR_DAMDA
-PVLGSQRRLLGSLNCTPPATFPLTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAMSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICGSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->ETBR_HORSE
-LSAPPQMPKAGRTAGAQRRTLPPPPCERTIEIKETFKYINTVVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIIIDIPINVYKLLAEDWPFGVEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEAVGFDMITRI--LRICLLHQKTAFMQFYKNAKDWWLFSFYFCLPLAITAFFYTLETCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKHTLYDQSFLLVLEYIGINMASLNSCINPIALYLVSKRFKNCFKWCLCCWCQSFE-EKQSLEFKANDHGYDNFR
->MSHR_CAPHI
-PALGSPRRLLGSLNCTPPATLPLTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAMSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICSSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSVLSITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->AG2S_RAT
-------MTLNSSTEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNHLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLMAGLASLPAVIYRNVYF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFVFPFLIILTSYTLIWKALKKA----YKIQKNTPRNDDIFRIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPTAKSHAGLSTRPSD-------N
->D5DR_FUGRU
-NFYNETEPTEPRGGVDPLRVVTAAEDVPAPVGGVSVRALTGCVLCALIVSTLLGNTLVCAAVIKFRHRSKVTNAFVVSLAVSDLFVAVLVMPWRAVSEVAGVWLFG-RFCDTWVAFDIMCSTASILNLCVISMDRYWAISNPFYERRMTRRFAFLMIAVAWTLSVLISFIPVQLNWHRASS-EQGDCNAS--------LNRTYAISSSLISFYIPVLIMVGTYTRIFRIAQTQRASESALKTSFKRETKVLKTLSVIMGVFVFCWLPFFVLNCVVPFCDVDCVSDTTFNIFVWFGWANSSLNPVIYAFNA-DFRKAFTTILGCSKFCSSSAVQAVDYHHDTTLQK---
->PI2R_BOVIN
-------------------------MADSCRNLTYVRDSVGPATSTLMFVAGVVGNGLALGILGARRHRPSAFAVLVTGLGVTDLLGTCFLSPAVFAAYARNSARGRPALCDAFAFAMTFFGLASTLILFAMAVERCLALSHPYYAQLDGPRRARLALPAIYAFCTIFCSLPFLGLGQHQQYCPGSWCFIR---MRSAEPGGCAFLLAYASLVALLVAAIVLCNGSVTLSLCRMQRRRCPRPRAGEDEVDHLILLALMTGIMAVCSLPLTPQIRGFTQAIAPDSSEMGDLLAFRFNAFNPILDPWVFILFRKSVFQRLKLWFCCLYSRPAQGDSRTSRKDSSAPPALEG
->A1AA_RABIT
-----------MVFLSGNASDSSNCT-HPPAPVNISKAILLGVILGGLILFGVLGNILVILSVACHRHLHSVTHYYIVNLAVADLLLTSTVLPFSAIFEILGYWAFGRVFCNIWAAVDVLCCTASIISLCVISIDRYIGVSYPLYPTIVTQRRGLRALLCVWAFSLVISVGPLFGWRQP--AP--TICQIN--------EEPGYVLFSALGSFYVPLTIILAMYCRVYVVAKREAKNFSVRLLKFSREKKAAKTLGIVVGCFVLCWLPFFLVMPIGSFFPDFKPPETVFKIVFWLGYLNSCINPIIYPCSSQEFKKAFQNVLKIQCLRRKQSSKHALSQ----------
->OPS4_DROPS
-SSGSDELQFLGWNVPPDQIQYIPEHWLTQLEPPASMHYMLGVFYIFLFFASTLGNGMVIWIFSTSKSLRTPSNMFVLNLAVFDLIMCLKAPIFIYNSFHRG-FALGNTWCQIFASIGSYSGIGAGMTNAAIGYDRYNVITKPM-NRNMTFTKAVIMNIIIWLYCTPWVVLPLTQFWDRFPEGYLTSCSFD--YLSDNFDTRLFVGTIFLFSFVVPTLMILYYYSQIVGHVFNHNVESNVDKSKETAEIRIAKAAITICFLFFVSWTPYGVMSLIGAFGDKSLLTPGATMIPACTCKLVACIEPFVYAISHPRYRMELQKRCPWLGVNEKSGEASSAQTQQTSAA----
->5H1F_RAT
--------------MDFLNSSD-QNLTSEELLNRMPSKILVSLTLSGLALMTTTINCLVITAIIVTRKLHHPANYLICSLAVTDFLVAVLVMPFSIVYIVRESWIMGQGLCDLWLSVDIICCTCSILHLSAIALDRYRAITDAVYARKRTPRHAGITITTVWVISVFISVPPLFWR----S-R--DQCIIK-------HDHIVSTIYSTFGAFYIPLVLILILYYKIYRAARTLLKHWRRQKISGTRERKAATTLGLILGAFVICWLPFFVKELVVNICEKCKISEEMSNFLAWLGYLNSLINPLIYTIFNEDFKKAFQKLVRCRN-----------------------
->NK2R_CAVPO
-----MGACVIVTNTNISSGLESNTTGITAFSMPTWQLALWATAYLALVLVAVTGNATVTWIILAHQRMRTVTNYFIVNLALADLCMAAFNAAFNFVYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAIDRYMAIVHPF-QPRLSAPSTKAVIGGIWLVALALAFPQCFYST---GA---TKCVVAWPEDSRDKSLLLYHLVVIVLIYLLPLTVMFVAYSIIGLTLWRRRHQHGANLRHLQAKKKFVKTMVLVVVTFAICWLPYHLYFILGSFQEDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNRRFRSGFRLAFRCCPWVTPTEE----HTPSFSLRVNRC
->5H1A_RAT
--MDVFSFGQGNNTTASQEPFGTGGNVTSISDVTFSYQVITSLLLGTLIFCAVLGNACVVAAIALERSLQNVANYLIGSLAVTDLMVSVLVLPMAALYQVLNKWTLGQVTCDLFIALDVLCCTSSILHLCAIALDRYWAITDPIYVNKRTPRRAAALISLTWLIGFLISIPPMLGWRT---DP--DACTIS--------KDHGYTIYSTFGAFYIPLLLMLVLYGRIFRAARFRKNEEAKRKMALARERKTVKTLGIIMGTFILCWLPFFIVALVLPFCESSHMPALLGAIINWLGYSNSLLNPVIYAYFNKDFQNAFKKIIKCKFCRR--------------------
->ACM2_PIG
---------------MNNSTNSSNSGLALTSPYKTFEVVFIVLVAGSLSLVTIIGNILVMVSIKVNRHLQTVNNYFLFSLACADLIIGVFSMNLYTLYTVIGYWPLGPVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPVKRTTKMAGMMIAAAWVLSFILWAPAILFWQFIV-VE-DGECYIQ------FFSNAAVTFGTAIAAFYLPVIIMTVLYWHISRASKSRVKMPAKKKPPPSREKKVTRTILAILLAFIITWAPYNVMVLINTFCAPC-IPNTVWTIGYWLCYINSTINPACYALCNATFKKTFKHLLMCHYKNIGATR----------------
->GPRV_HUMAN
------------------------MPFPNCSAPSTVVATAVGVLLGLECGLGLLGNAVALWTFLFRVRVWKPYAVYLLNLALADLLLAACLPFLAAFYLSLQAWHLGRVGCWALRFLLDLSRSVGMAFLAAVALDRYLRVVHPRKVNLLSPQAALGVSGLVWLLMVALTCPGLLISEAAQ--S--TRCHSF-YSRADGSFSIIWQEALSCLQFVLPFGLIVFCNAGIIRALQKR----LREPEKQPKLQRAQALVTLVVVLFALCFLPCFLARVLMHIFQNLCAVAHTSDVTGSLTYLHSVVNPVVYCFSSPTFRSSYRRVFHTLRGKGQAAEPPDF------------
->YT66_CAEEL
-----------------------------------------MGVTFHPGIVGNITNLMVLASRR-------LRAMYLRALAVADLLCMLFVLVFVSTEYLAKNKLYQIYQCHLMLTLINWALGAGVYVVVALSLERYISIVFPMFRTWNSPQRATRAIVIAFLIPAIFYVPYAITRYKGK---VTIYSMDD---IYTTFYWQIYKWTREAILRFLPIIILTVLNIQIMIAFRKRMFQNKRKEQGTQKDDTLMYMLGGTVLMSLVCNIPAAINLLLIDETLKKLDYQIFRAVANILEITNHASQFYVFCACSTDYRTTFLQKFPCFKTDYANRDRLRSVIQKQGSVEHTT
->RGR_MOUSE
----------------------MAATRALPAGLGELEVLAVGTVLLMEALSGISLNGLTIFSFCKTPDLRTPSNLLVLSLALADTGISLNALVAAVSSLLRR-WPHGSEGCQVHGFQGFATALASICGSAAVAWGRYHHYCTRR---QLAWDTAIPLVLFVWMSSAFWASLPLMGWGHYDYEPVGTCCTLD--YSRGDRNFISFLFTMAFFNFLVPLFITHTSYRFME--------------QKFSRSGHLPVNTTLPGRMLLLGWGPYALLYLYAAIADVSFISPKLQMVPALIAKTMPTINAINYALHREMVCRGTWQCLSPQKSKKDRTQA---------------
->A2AA_PIG
-----MGSLQPEAGNASWNGTEAPGGGARATPYSLQVTLTLVCLAGLLMLFTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKAWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIVTVWVISAVISFPPLISIEKKAQ-P--PRCEIN--------DQKWYVISSCIGSFFAPCLIMILVYVRIYQIAKRRRGGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLTAVGCS--VPPTLFKFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->PI2R_HUMAN
-------------------------MADSCRNLTYVRGSVGPATSTLMFVAGVVGNGLALGILSARRPRPSAFAVLVTGLAATDLLGTSFLSPAVFVAYARNSARGGPALCDAFAFAMTFFGLASMLILFAMAVERCLALSHPYYAQLDGPRCARLALPAIYAFCVLFCALPLLGLGQHQQYCPGSWCFLR---MRWAQPGGAAFSLAYAGLVALLVAAIFLCNGSVTLSLCRMKRHLGPRPRTGEDEVDHLILLALMTVVMAVCSLPLTIRCFTQAVAPDS-SSEMGDLLAFRFYAFNPILDPWVFILFRKAVFQRLKLWVCCLCLGPAHGDSQTPRRDPRAPSAPVG
->AA3R_CANFA
--------------------------MAVNGTALLLANVTYITVEILIGLCAIVGNVLVIWVVKLNPSLQTTTFYFIVSLALADIAVGVLVMPLAIVISLG--ITIQFYNCLFMTCLLLIFTHASIMSLLAIAVDRYLRVKLTVYRRVTTQRRIWLALGLCWLVSFLVGLTPMFGWN-MKE-H-FLSCQFS-----SVMRMDYMVYFSFFTWILIPLVVMCAIYLDIFYVIRNK--NSKETGAFYGREFKTAKSLFLVLFLFAFSWLPLSIINCITYFHGE--VPQIILYLGILLSHANSMMNPIVYAYKIKKFKETYLLIFKTYMICQSSDSLDSS------------
->CB1R_MOUSE
-EFYNKSLSSFKENEDNIQCGENFMDMECFMILNPSQQLAIAVLSLTLGTFTVLENLLVLCVILHSRSRCRPSYHFIGSLAVADLLGSVIFVYSFVDFHVFHR-KDSPNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKRIVTRPKAVVAFCLMWTIAIVIAVLPLLGWNCK-K--LQSVCSDI------FPLIDETYLMFWIGVTSVLLLFIVYAYMYILWKAHSHSEDQVTRPDQARMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNKLIKTVFAFCSMLCLLNSTVNPIIYALRSKDLRHAFRSMFPSCEGTAQPLDNSMGHANNTASMHRAA
->OPSD_CANFA
-MNGTEGPNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNVEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLAGWSRYIPEGMQCSCGIDYYTLKPEINNESFVIYMFVVHFAIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSDFGPIFMTLPAFFAKSSSIYNPVIYIMMNKQFRNCMITTLCCGKNPLGDDEASASASKTETSQVAPA
->BRS3_CAVPO
-QTLISITNDTESSSSVVSNDTTNKGWTGDNSPGIEALCAIYITYAVIISVGILGNAILIKVFFKTKSMQTVPNIFITSLALGDLLLLLTCVPVDATHYLAEGWLFGRIGCKVLSFIRLTSVGVSVFTLTILSADRYKAVVKPLRQPSNAILKTCAKAGCIWIMSMIFALPEAIFSNVHTMT--SEWCAFY---VSEKLLQEIHALLSFLVFYIIPLSIISVYYSLIARTLYKSIPTQSHARKQVESRKRIAKTVLVLVALFALCWLPNHLLNLYHSFTHKAAIHFIVTIFSRVLAFSNSCVNPFALYWLSKTFQKQFKAQLFCCKGELPEPPLAATMGRVSGTENTHI
->OPSD_DIPAN
-MNGTEGPFFYVPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVLGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWTMAMACAAPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFICHFTIPLTVVFFCYGRLLCAVKEAAAAQQESETTQRAEKEVTRMVIMMVIAFLVCWLPYASVAWYIFTHQGSEFGPVFMTIPAFFAKSSSIYNPMIYICLNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->AG2R_MOUSE
-------MALNSSTEDGIKRIQDDC---PRAGRHSYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNHLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLMAGLASLPAVIHRNVYF-TN--TVCAFH-YESRNSTLPIGLGLTKNILGFLFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFRIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSSLSTRPSD-------N
->YMJC_CAEEL
-NLRLNESPYKYVMSNNTTIPSCLTDRQMSLSVSSTEGVLIGTIIPILVLFGISGNILNLTVLLAPNL-RTRSNQLLACLAVADIVSLVVILPHSMAHYETFERKFYGKYKFQIIAMTNWSIATATWLVFVICLERLIIIKYPLPRNVVTIIVVTTFILTSYNHVSHACAEKLFCNGTQY--S-RWFRNEPPNSEFMKSVVRVAPQVNAIFVVLIPVVLVIIFNVMLILTLRQRKTISQFTQLQSKTEHKVTITVTAIVTCFTITQSPSAFVTFLSSYVH--RDWVTLSAICTILVVLGKALNFVLFCLSSASFRQRLLMQTKQGILRKSTRYTSVA------------
->OPSG_ASTFA
-NE--ETTRESAFVYTNANNTRDPFEGPNYHIAPRWVYNLASLWMIIVVIASIFTNSLVIVATAKFKKLRHPLNWILVNLAIADLGETVLASTISVFNQVFGYFVLGHPMCIFEGWTVSVCGITALWSLTIISWERWVVVCKPFGNVKFDGKWAAGGIIFAWTWAIIWCTPPIFGWSRYWPHGLKTSCGPDVFSGSEDPGVASYMVTLLLTCCILPLSVIIICYIFVWNAIHQVAQQQKDSESTQKAEKEVSRMVVVMILAFILCWGPYASFATFSALNPGYAWHPLAAALPAYFAKSATIYNPIIYVFMNRQFRSCIMQLFGKKVEDA-----SEVSTAS--------
->DUFF_HUMAN
-FEDVWNSSYGVNDSFPDGDYDANLEAAAPCHSCNLLDDSALPFFILTSVLGILASSTVLFMLFRPLFQLCPGWPVLAQLAVGSALFSIVVPVLAPGLGST--RSSALCSLGYCVWYGSAFAQALLLGCHASLGHRLGAGQ--------VPGLTLGLTVGIWGVAALLTLPVTLASG------SGGLCTLI-YSTELKALQATHTVACLAIFVLLPLGLFGAKGLKKA-------------------LGMGPGPWMNILWAWFIFWWPHGVVLGLDFLVRSKQALDLLLNLAEALAILHCVATPLLLALFCHQATRTLLPSLPLPEGWSSHLDTLGS------------
->OPR._RAT
-GSHFQGNLSLLN---ETVPHHLLLNASHSAFLPLGLKVTIVGLYLAVCIGGLLGNCLVMYVILRHTKMKTATNIYIFNLALADTLVLLTLPFQGTDILLGF-WPFGNALCKTVIAIDYYNMFTSTFTLTAMSVDRYVAICHPIALDVRTSSKAQAVNVAIWALASVVGVPVAIMGSAQVEE---IECLVE-IPAPQDYWGPVFAICIFLFSFIIPVLIISVCYSLMIRRLRGVRLL-SGSREKDRNLRRITRLVLVVVAVFVGCWTPVQVFVLVQGLGVQPETAVAILRFCTALGYVNSCLNPILYAFLDENFKACFRKFCCASSLHREMQVSDRVGLGCKTSETVPR
->TRFR_SHEEP
-------------MENETGSELNQTQLQPRAVVALEYQVVTILLVLIICGLGIVGNIMVVLVVMRTKHMRTPTNCYLVSLAVADLMVLVAAGLPNITDSIYGSWVYGYVGCLCITYLQYLGINASSCSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWAFTSIYCMLWFFLLDLN--DA-SCGYKIS------RNYYSPIYLMDFGVFYVVPMILATVLYGFIARILFLSLNSNRYFNSTVSSRKQVTKMLAVVVILFALLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCKQKPVEKPANYSVKESDHFSTELDD
->ACTR_MESAU
--------------MKHIITPYEHTNDTARNNSDCPDVVLPEEIFFTISIIGVLENLIVLLAVVKNKNLQCPMYFFICSLAISDMLGSLYKILENILIMFRNRGNFESTADDIIDCMFILSLLGSIFSLSVIAADRYITIFHALYHSIVTMRRTIITLTVIWIFCTGSGIAMVIFFS----------------------HHHVPTVLTFTSLFPLMLVFILCLYIHMFLLARSH---ARKISTLPRANMKGAITLTILLGVFIFCWAPFILHVLLMTFCPNNVCYMSLFQINGMLIMCNAVIDPFIYAFRSPELRDAFKKMFSCHRYQ---------------------
->CKR7_HUMAN
-QDEVTDDYIGDNTTVDYTLFESLC---SKKDVRNFKAWFLPIMYSIICFVGLLGNGLVVLTYIYFKRLKTMTDTYLLNLAVADILFLLTLPFWAYSAAKS--WVFGVHFCKLIFAIYKMSFFSGMLLLLCISIDRYVAIVQAVRHRARVLLISKLSCVGIWILATVLSIPELLYSDLQR-SE-AMRCSLI---TEHVEAFITIQVAQMVIGFLVPLLAMSFCYLVIIRTL---------LQARNFERNKAIKVIIAVVVVFIVFQLPYNGVVLAQTVANFNKQLNIAYDVTYSLACVRCCVNPFLYAFIGVKFRNDLFKLFKDLGCLSQEQLRQWS--------HIRR
->O.YR_SHEEP
-GAFAANWSAEAVNGSAAPPGTEGNRTAGPPQRNEALARVEVAVLSLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIADLAVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLRRRTDRLAVLATWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYITWITLAVYIVPVIVLAACYGLISFKIWQNRAAVSNVKLISKAKIRTVKMTFIVVLAFIVCWTPFFFKQMWSVWDADA-KEASAFIIAMLLASLNSCCNPWIYMLFTGHLFQDLVQRFLCCSFRRLKGSQLGEHSYTFVLSRHSS
->GPR7_HUMAN
-MDNASFSEPWPANASGPDPALSCSNASTLAPLPAPLAVAVPVVYAVICAVGLAGNSAVLYVLLRAPRMKTVTNLFILNLAIADELFTLVLPINIADFLLRQ-WPFGELMCKLIVAIDQYNTFSSLYFLTVMSADRYLVVLATARVAGRTYSAARAVSLAVWGIVTLVVLPFAVFARLD--QG-RRQCVLV-FPQPEAFWWRASRLYTLVLGFAIPVSTICVLYTTLLCRLHAMR--DSHAKALERAKKRVTFLVVAILAVCLLCWTPYHLSTVVALTTDLPPLVIAISYFITSLTYANSCLNPFLYAFLDASFRRNLRQLITCRAAA---------------------
->GPRJ_HUMAN
-TETATPLPSQYLMELSEEHSWMSNQTDLHYVLKPGEVATASIFFGILWLFSIFGNSLVCLVIHRSRRTQSTTNYFVVSMACADLLISVASTPFVLLQFTTGRWTLGSATCKVVRYFQYLTPGVQIYVLLSICIDRFYTIVYPL-SFKVSREKAKKMIAASWIFDAGFVTPVLFFYG---SNW-HCNYFLP-----SSWEGTAYTVIHFLVGFVIPSVLIILFYQKVIKYIWRIDGR-RTMNIVPRTKVKTIKMFLILNLLFLLSWLPFHVAQLWHPHEQDYKKSSLVFTAITWISFSSSASKPTLYSIYNANFRRGMKETFCMSSMKCYRSNAYTIKKNYVGISEIPS
->OAJ1_HUMAN
---MLLCFRFGNQSMKRENFTLITDFVFQGFSSFHEQQITLFGVFLALYILTLAGNIIIVTIIRIDLHLHTPMYFFLSMLSTSETVYTLVILPRMLSSLVGMSQPMSLAGCATQMFFFVTFGITNCFLLTAMGYDRYVAICNPLYMVIMNKRLRIQLVLGACSIGLIVAITQVTSVFRL---PPHFFCDIRKLSCIDTTVNEILTLIISVLVLVVPMGLVFISYVLIISTI--------LKIASVEGRKKAFATCASHLTVVIVHYSCASIAYLKPKSEN---TREHDQLISVTYTVITPLLNPVVYTLRNKEVKDALCRAVGGKFS----------------------
->RDC1_CANFA
-YAEPGNFSDISWPCNSSDCIVVDTVLCPNMPNKSVLLYTLSFIYIFIFVIGMIANSVVVWVNIQAKTTGYDTHCYILNLAIADLWVVVTIPVWVVSLVQHNQWPMGELTCKITHLIFSINLFGSIFFLTCMSVDRYLSITYFATSSRRKKVVRRAVCVLVWLLAFCVSLPDTYYLKTVTNNE--TYCRSFYPEHSVKEWLISMELVSVVLGFAIPFCVIAVFYCLLARAI---------SASSDQEKQSSRKIIFSYVVVFLVCWLPYHVVVLLDIFSILHNFLFTALHVTQCLSLVHCCVNPVLYSFINRNYRYELMKAFIFKYSAKTGLTKLIDEYSALEQNAK--
->CML1_RAT
-EYEGYNDSSIYGEEYSDGSDYIVDLEEAGPLEAKVAEVFLVVIYSLVCFLGILGNGLVIVIATFKMK-KTVNTVWFVNLAVADFLFNIFLPIHITYAAMDYHWVFGKAMCKISSFLLSHNMYTSVFLLTVISFDRCISVLLPVSQNHRSVRLAYMTCVVVWVWLSSESPPSLVFGHVST-SF--HSTHPR-TDPVGYSRHVAVTVTRFLCGFLIPVFIITACYLTIVFKL---------QRNRQAKTKKPFKIIITIIITFFLCWCPYHTLYLLELHHTAVSVFSLGLPLATAVAIANSCMNPILYVFMGHDFKK-FKVALFSRLVNALSEDTGPSFTKMSSLIEKAS
->FSHR_EQUAS
---MMYSEFDYDLCNEVVDVTCSPKPDAFNPCEDIMGYDILRVLIWFISILAITGNIIVLVILITSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSWQTG-AGCDAAGFFTVFGSELSVYTLTAITLERWHTITHAMLECKVQLRHAASVMLVGWIFGFGVGLLPIFGISTY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYTHIYLTVRNP------NIVSSSSDTKIAKRMGILIFTDFLCMAPISFFGISASLKVALITVSKSKILLVLFYPINSCANPFLYAIFTKNFRRDFFILLSKFGCYEMQAQTYRTISHPKNGPCPPT
->OPSD_MULSU
-MNGTEGPYFYIPMVNTTGIVRSPYDYPQYYLVNPAAYAALGAYMFFLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVANLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIALWSLVVLAVERWMVVCKPISNFRFGENHAIMGLAMTWLMASACAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVVYMFCCHFMIPLIIVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVIMVIAFLVCWLPYASVAWWIFTHQGSEFGPVFMTIPAFFAKSSSIYNPMIYICMNKQFRNCMITTLCCGKNPFEEEEGASSSSVSSSSVSPAA
->NK3R_HUMAN
-GNLSSSPSALGLPVASPAPSQPWANLTNQFVQPSWRIALWSLAYGVVVAVAVLGNLIVIWIILAHKRMRTVTNYFLVNLAFSDASMAAFNTLVNFIYALHSEWYFGANYCRFQNFFPITAVFASIYSMTAIAVDRYMAIIDPL-KPRLSATATKIVIGSIWILAFLLAFPQCLYSK---GR---TLCFVQ--WPEGPKQHFTYHIIVIILVYCFPLLIMGITYTIVGITLWGG--PCDKYHEQLKAKRKVVKMMIIVVMTFAICWLPYHIYFILTAIYQQLKYIQQVYLASFWLAMSSTMYNPIIYCCLNKRFRAGFKRAFRWCPFIKVSSY----TTRFHPNRQSSM
->CKR5_CERTO
-----MDYQVSSPTYDIDYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLLFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSPHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->PI2R_MOUSE
-DGHPGPPSVTPGSPLSAGGREWQGMAGSCWNITYVQDSVGPATSTLMFVAGVVGNGLALGILGARRRHPSAFAVLVTGLAVTDLLGTCFLSPAVFVAYARNSAHGGTMLCDTFAFAMTFFGLASTLILFAMAVERCLALSHPYYAQLDGPRCARFALPSIYAFCCLFCSLPLLGLGEHQQYCPGSWCFIR---MRSAQPGGCAFSLAYASLMALLVTSIFFCNGSVTLSLYHMRRHFVPTSRAREDEVYHLILLALMTVIMAVCSLPLMIRGFTQAIAPDS--REMGDLLAFRFNAFNPILDPWVFILFRKAVFQRLKFWLCCLCARSVHGDLQAPRRDPPAPTSLQA
->FSHR_CHICK
-FGPVENEFDYGLCNEVVDFVCSPKPDAFNPCEDIMGYNVLRVLIWFINILAITGNTTVLIILISSQYKLTVPRFLMCNLAFADLCIGIYLLFIASVDIQTKSWQTG-AGCNAAGFFTVFASELSVYTLTVITLERWHTITYAMLNRKVRLRHAVIIMVFGWMFAFTVALLPIFGISSY----KVSICLPM-----IETPFSQAYVIFLLVLNVLAFVIICICYICIYFTVRNP------NVISSNSDTKIAKRMAILIFTDFLCMAPISFFAISASLRVPLITVSKSKILLVLFYPINSCANPFLYAIFTKTFRRDFFILLSKFGCCEMQAQIYRTNFHTRNGHYPTA
->OPRM_BOVIN
-FSHLEGNLSDPCGPNRTELGGSDRLCPSAGSPSMITAIIIMALYSIVCVVGLFGNFLVMYVIVRYTKMKTATNIYIFNLALADALATSTLPFQSVNYLMGT-WPFGTILCKIVISIDYYNMFTSIFTLCTMSVDRYIAVCHPVALDLRTPRNAKIINICNWILSSAIGLPVMFMATTKYGS---IDCTLT-FSHPTWYWENLLKICVFIFAFIMPILIITVCYGLMILRLKSVRML-SGSKEKDRNLRRITRMVLVVVAVFIVCWTPIHIYVIIKALITIPTFQTVSWHFCIALGYTNSCLNPVLYAFLDENFKRCFREFCIPTSSTIEQQNSTRIPSTANTVDRTNH
->P2Y5_HUMAN
---------------------MVSVNSSHCFYNDSFKYTLYGCMFSMVFVLGLVSNCVAIYIFICVLKVRNETTTYMINLAMSDLLFVFTLPFRIFYFTTRN-WPFGDLLCKISVMLFYTNMYGSILFLTCISVDRFLAIVYPFSKTLRTKRNAKIVCTGVWLTVIGGSAPAVFVQSTHS---ASEACFENFPEATWKTYLSRIVIFIEIVGFFIPLILNVTCSSMVLKTLTKP----VTLSRSKINKTKVLKMIFVHLIIFCFCFVPYNINLILYSLVRTQAAVRTMYPITLCIAVSNCCFDPIVYYFTSDTIQNSIKMKNWSVRRSDFRFSEVHGNLQTLKSKIFDN
->HM74_HUMAN
-----------MNRHHLQDHFLEIDKKNCCVFRDDFIAKVLPPVLGLEFIFGLLGNGLALWIFCFHLKSWKSSRIFLFNLAVADFLLIICLPFVMDYYVRRSDWNFGDIPCRLVLFMFAMNRQGSIIFLTVVAVDRYFRVVHPHALNKISNWTAAIISCLLWGITVGLTVHLLKKKLLIQ-PA--NVCISF-----SICHTFRWHEAMFLLEFLLPLGIILFCSARIIWSLRQR------QMDRHAKIKRAITFIMVVAIVFVICFLPSVVVRIRIFWLLHTRSVDLAFFITLSFTYMNSMLDPVVYYFSSPSFPNFFSTLINRCLQRKMTGEPDNNTGDPNKTRGAPE
->OPSD_DICLA
-MNGTEGPFFYVPMVNTTGIVRSPYDYPQYYLVSPAAYAALGAYMFLLILLGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNMEGFFATLGGEIGLWSLVVLAVERWLVVCKPISNFRFGENHAIMGLAFTWVMACSCAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVIYMFACHFIIPMCVVFFCYGRLLCAVKEAAAAQQESETTQRAEKEVTRMVVIMGIAFLICWCPYASVAWYIFTHQGSEFGPVFMTLPAFFAKTSSVYNPLIYILMNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->GPRW_HUMAN
-GTRGCSDRQPGVLTRDRSCSRKMNSSGCLSEEVGSLRPLTVVILSASIVVGVLGNGLVLWMTVFRMA-RTVSTVCFFHLALADFMLSLSLPIAMYYIVSRQ-WLLGEWACKLYITFVFLSYFASNCLLVFISVDRCISVLYPVALNHRTVQRASWLAFGVWLLAAALCSAHLKFRTTR-FNSNETAQIWI-----VVEGHIIGTIGHFLLGFLGPLAIIGTCAHLIRAKL---------LREGWVHANRPKRLLLVLVSAFFIFWSPFNVVLLVHLWRRV-PRMLLILQASFALGCVNSSLNPFLYVFVGRDFQEKFFQSLTSALARAFGEEEFLSPRE---------
->UL33_HSV6U
---------------------MDTVIELSKLQFKGNASCTSTPTLKTARIMESAVTGITLTTSIPMIIKHNATSFYVITLFASDFVLMWCVFFMTVNRKQL--FSFNRFFCQLVYFIYHAVCSYSISMLAIIATIRYK-TLHRRKKTESKTSSTGRNIGILLLASSMCAIPTALFVKTNGM-KKTGKCVVYSSKKAY-ELFLAVKIVFSFIWGVLPTMVFSFFYVIFCKAL---------HDVTEKKYKKTLFFIRILLLSFLLIQIPYIAILICEIAFLYMARVEILQLIIRLMPQVHCFSNPLVYAFTGGELRNRFTACFQSFFPKTLCSTQKRKDQNSKSKASVEK
->A1AB_HUMAN
-HNTSAPAHWGELKNANFTGPNQTSSNSTLPQLDITRAISVGLVLGAFILFAIVGNILVILSVACNRHLRTPTNYFIVNLAMADLLLSFTVLPFSAALEVLGYWVLGRIFCDIWAAVDVLCCTASILSLCAISIDRYIGVRYSLYPTLVTRRKAILALLSVWVLSTVISIGPLLGWKEP--AP--KECGVT--------EEPFYALFSSLGSFYIPLAVILVMYCRVYIVAKRTHNPIAVKLFKFSREKKAAKTLGIVVGMFILCWLPFFIALPLGSLFSTLKPPDAVFKVVFWLGYFNSCLNPIIYPCSSKEFKRAFVRILGCQCRGRRRRRRRRRTYRPWTRGGSLE
->OPSD_SPHSP
-GG-Y-GNQTVVDKVLPEMLHLIDPHWYQFPPMNPLWHGLLGFVIGCLGFVSVVGNGMVIYIFSTTKGLRTPSNLLVVNLAFSDFLMMLSMSPPMVINCYYETWVLGPFMCELYALLGSLFGCGSIWTMVMIALDRYNVIVKGLAAKPMTNKTAMLRILGIWAMSIAWTVFPLFGWNRYVPEGNMTACGTD--YLNKEWVSRSYILVYSVFVYFLPLATIIYSYWFIVQAVSAHMNVRSAENANTSAECKLAKVALMTISLWFFAWTPYLVTDFSGIFEWGK-ISPLATIWCSLFAKANAVYNPIVYGISHPKYRAALNKKFPSLACASEPDDTASQSDEKSASA----
->ET1R_RAT
-EFNFLGTTLQPPNLALPSNGSMHGYCPQQTKITTAFKYINTVISCTIFIVGMVGNATLLRIIYQNKCMRNGPNALIASLALGDLIYVVIDLPINVFKLLAGRNDFGVFLCKLFPFLQKSSVGITVLNLCALSVDRYRAVASWSVQGIGIPLITAIEIVSIWILSFILAIPEAIGFVMVPRT--HRTCMLNATTKFMEFYQDVKDWWLFGFYFCMPLVCTAIFYTLMTCEMLNRGSL-IALSEHLKQRREVAKTVFCLVVIFALCWFPLHLSRILKKTVYDESFLLLMDYIGINLATMNSCINPIALYFVSKKFKNCFQSCLCCCCHQSKSLMTSVPWKNQEQN-HNTE
->B1AR_PIG
-LPDGAATAARLLVPASPPASLLTPASEGSVQLSQQWTAGMGLLMALIVLLIVAGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRAAR-ALVCTVWAISALVSFLPILMHWWRDR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCCARRVARGSCAAAGCLAVARPPPSPG
->OLF3_RAT
--------------MDSSNRTRVSEFLLLGFVENKDLQPLIYGLFLSMYLVTVIGNISIIVAIISDPCLHTPMYFFLSNLSFVDICFISTTVPKMLVNIQTQNNVITYAGCITQIYFFLLFVELDNFLLTIMAYDRYVAICHPMYTVIMNYKLCGFLVLVSWIVSVLHALFQSLMMLAL---PPHYFCEPNQLTCSDAFLNDLVIYFTLVLLATVPLAGIFYSYFKIVSSI--------CAISSVHGKYKAFSTCASHLSVVSLFYCTGLGVYLSSAANN---SSQASATASVMYTVVTPMVNPFIYSLRNKDVKSVLKKTLCEEVIRSPPSLLHFFCFIFCY------
->5H5A_HUMAN
-LPVNLTSFSLSTPSPLETNHSGKDDLRPSSPLLSVFGVLILTLLGFLVAATFAWNLLVLATILRVRTFHRVPHNLVASMAVSDVLVAALVMPLSLVHELSGRWQLGRRLCQLWIACDVLCCTASIWNVTAIALDRYWSITRHMYTLRTRKCVSNVMIALTWALSAVISLAPLLFGWGE-S-E-SEECQVS--------REPSYAVFSTVGAFYLPLCVVLFVYWKIYKAAKFRATVPEGDTWREQKEQRAALMVGILIGVFVLCWIPFFLTELISPLCSC-DIPAIWKSIFLWLGYSNSFFNPLIYTAFNKNYNSAFKNFFSRQH-----------------------
->OPRD_RAT
-FSLLANVSDTFPSAFPSASANASGSPGARSASSLALAIAITALYSAVCAVGLLGNVLVMFGIVRYTKLKTATNIYIFNLALADALATSTLPFQSAKYLMET-WPFGELLCKAVLSIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPAKAKLINICIWVLASGVGVPIMVMAVTQPGA---VVCTLQ-FPSPSWYWDTVTKICVFLFAFVVPILIITVCYGLMLLRLRSVRLL-SGSKEKDRSLRRITRMVLVVVGAFVVCWAPIHIFVIVWTLVDINPLVVAALHLCIALGYANSSLNPVLYAFLDENFKRCFRQLCRAPCGGQEPGSLRRPRVTACTPSDGPG
->CKRV_MOUSE
-EIPAVTEPSYNTVAKNDFMSGFLC---FSINVRAFGITVPTPLYSLVFIIGVIGHVLVVLVLIQHKRLRNMTSIYLFNLAISDLVFLSTLPFWVDYIMKGD-WIFGNAMCKFVSGFYYLGLYSDMFFITLLTIDRYLAVVHVVALRARTVTFGIISSIITWVLAALVSIPCLYVFKSQM-EF-YHTCRAILPRKSLIRFLRFQALTMNILGLILPLLAMIICYTRIINVL---------HRRPNKKKAKVMRLIFVITLLFFLLLAPYYLAAFVSAFEDVLQQVDLSLMITEALAYTHCCVNPVIYVFVGKRFRKYLWQLFRRHTAITLPQWLPFLA-------SARL
->THRR_RAT
-PLEGRAVYLNKSRFPPMPPPPFISEDASGYLTSPWLTLFIPSVYTFVFIVSLPLNILAIAVFVFRMKVKKPAVVYMLHLAMADVLFVSVLPFKISYYFSGTDWQFGSGMCRFATAACYCNMYASIMLMTVISIDRFLAVVYPISLSWRTLGRANFTCVVIWVMAIMGVVPLLLKEQTTQ--N--TTCHDVLNETLLHGFYSYYFSAFSAIFFLVPLIISTVCYTSIIRCL------SSSAVANRSKKSRALFLSAAVFCIFIVCFGPTNVLLIVHYLLLSDETAYFAYLLCVCVTSVASCIDPLIYYYASSECQKHLYSILCCRESSDSNSCNSTGDTCS--------
->DADR_PIG
---------------MRTLNTSTMDGTGLVVERDFSFRILTACFLSLLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPFG-SFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKAAFILISVAWTLSVLISFIPVQLSWHKAGN-TTHNCDSS--------LSRTYAISSSLISFYIPVAIMIVTYTRIYRIAQKQAECESSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFILNCMVPFCGSGCIDSITFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSTLLGCYRLCPTSTNAIETAVVFSSH-----
->GRHR_BOVIN
---MANSDSPEQNENHCSAINSSIPLTPGSLPTLTLSGKIRVTVTFFLFLLSTIFNTSFLLKLQNWTQKLSRMKLLLKHLTLANLLETLIVMPLDGMWNITVQWYAGELLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITKPL-AVKSNSKLGQFMIGLAWLLSSIFAGPQLYIFGMIHEG--FSQCVTH--SFPQWWHQAFYNFFTFSCLFIIPLLIMVICNAKIIFTLTRVPHKNQSKNNIPRARLRTLKMTVAFATSFTVCWTPYYVLGIWYWFDPDMRVSDPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->OLF3_CHICK
--------------MASGNCTTPTTFILSGLTDNPGLQMPLFMVFLAIYTITLLTNLGLIRLISVDLHLQTPMYIFLQNLSFTDAAYSTVITPKMLATFLEERKTISYVGCILQYFSFVLLTTSECLLLAVMAYDRYVAICKPLYPAIMTKAVCWRLVESLYFLAFLNSLVHTCGLLKL---SNHFFCDISQISSSSIAISELLVIISGSLFVMSSIIIILISYVFIILTV--------VMIRSKDGKYKAFSTCTSHLMAVSLFHGTVIFMYLRPVKLF---SLDTDKIASLFYTVVIPMLNPLIYSWRNKEVKDALRRLTATTFGFIDSKAVQ--------------
->ML1A_PHOSU
--------MKGNGSTLLNASQQAPGVGEGGGPRPSWLASTLAFILIFTIVVDILGNLLVILSVYRNKKLRNAGNIFVVSLAIADLVVAIYPYPLVLTSIFNNGWNLGYLHCQISAFLMGLSVIGSIFNITGIAINRYCYICHSLYDRLYSNKNSLCYVFLIWVLTLVAIMPNLQTGT-LQYDP-IYSCTFT------QSVSSAYTIAVVVFHFIVPMIIVIFCYLRIWILVLQVRR-PDSKPRLKPQDFRNFVTMFVVFVLFAICWAPLNFIGLIVASDPATRIPEWLFVASYYMAYFNSCLNAIIYGLLNQNFRQEYKRILVSLFTAKMCFVDSSNCKPAPLIANNNL
->NY2R_HUMAN
-EEMKVEQYGP-QTTPRGELVPDPEPELIDSTKLIEVQVVLILAYCSIILLGVIGNSLVIHVVIKFKSMRTVTNFFIANLAVADLLVNTLCLPFTLTYTLMGEWKMGPVLCHLVPYAQGLAVQVSTITLTVIALDRHRCIVYHL-ESKISKRISFLIIGLAWGISALLASPLAIFREYSLFE--IVACTEKWPGEEKSIYGTVYSLSSLLILYVLPLGIISFSYTRIWSKLKNHSPG-AANDHYHQRRQKTTKMLVCVVVVFAVSWLPLHAFQLAVDIDSQVKEYKLIFTVFHIIAMCSTFANPLLYGWMNSNYRKAFLSAFRCEQRLDAIHSE---AKKNLEVRKNSG
->FMLR_HUMAN
------------METNSSLPTNISGGTPAVSAGYLFLDIITYLVFAVTFVLGVLGNGLVIWVAGFRMT-HTVTTISYLNLAVADFCFTSTLPFFMVRKAMGGHWPFGWFLCKFLFTIVDINLFGSVFLIALIALDRCVCVLHPVTQNHRTVSLAKKVIIGPWVMALLLTLPVIIRVTTVPSPWPKERINVA------VAMLTVRGIIRFIIGFSAPMSIVAVSYGLIATKI---------HKQGLIKSSRPLRVLSFVAAAFFLCWSPYQVVALIATVRIREKEIGIAVDVTSALAFFNSCLNPMLYVFMGQDFRERLIHALPASLERALTEDSTQTTL----------
->NK1R_CAVPO
------MDNVLPVDSDLFPNISTNTSEPNQFVQPAWQIVLWAAAYTVIVVTSVVGNVVVMWIILAHKRMRTVTNYFLVNLAFAEASMAAFNTVVNFTYAVHNEWYYGLFYCKFHNFFPIAAVFASIYSMTAVAFDRYMAIIHPL-QPRLSATATKVVICVIWVLALLLAFPQGYYST---GR---VVCMIEWPSHPDKIYEKVYHICVTVLIYFLPLLVIGYAYTVVGITLE---IPSDRYHEQVSAKRKVVKMMIVVVCTFAICWLPFHIFFLLPYINPDLKFIQQVYLAIMWLAMSSTMYNPIIYCCLNDRFRLGFKHAFRCCPFISAADY----STRYFQTQGSVY
->ML1B_HUMAN
-NGSFANCCEAGGWAVRPGWSGAGSARPSRTPRPPWVAPALSAVLIVTTAVDVVGNLLVILSVLRNRKLRNAGNLFLVSLALADLVVAFYPYPLILVAIFYDGWALGEEHCKASAFVMGLSVIGSVFNITAIAINRYCYICHSMYHRIYRRWHTPLHICLIWLLTVVALLPNFFVGS-LEYDP-IYSCTFI------QTASTQYTAAVVVIHFLLPIAVVSFCYLRIWVLVLQARK-PESRLCLKPSDLRSFLTMFVVFVIFAICWAPLNCIGLAVAINPQEQIPEGLFVTSYLLAYFNSCLNAIVYGLLNQNFRREYKRILLALWNPRHCIQDASKQSPAPPIIGVQH
->C3AR_RAT
---------------MESFTADTNSTDLHSRPLFKPQDIASMVILSLTCLLGLPGNGLVLWVAGVKMK-RTVNTVWFLHLTLADFLCCLSLPFSVAHLILRGHWPYGLFLCKLIPSVIILNMFASVFLLTAISLDRCLMVHKPICQNHRSVRTAFAVCGCVWVVTFVMCIPVFVYRDLLV-ED-DYFDQLM-YGNHAWTPQVAITISRLVVGFLVPFFIMITCYSLIVFRM--------RKTNLTKSRNKTLRVAVAVVTVFFVCWIPYHIVGILLVITDQEEVVLPWDHMSIALASANSCFNPFLYALLGKDFRKKARQSVKGILEAAFSEELTHSAPS---------
->OPSB_GECGE
-MNGTEGINFYVPLSNKTGLVRSPFEYPQYYLADPWKFKVLSFYMFFLIAAGMPLNGLTLFVTFQHKKLRQPLNYILVNLAAANLVTVCCGFTVTFYASWYAYFVFGPIGCAIEGFFATIGGQVALWSLVVLAIERYIVICKPMGNFRFSATHAIMGIAFTWFMALACAGPPLFGWSRFIPEGMQCSCGPDYYTLNPDFHNESYVIYMFIVHFTVPMVVIFFSYGRLVCKVREAAAQQQESATTQKAEKEVTRMVILMVLGFLLAWTPYAATAIWIFTNRGAAFSVTFMTIPAFFSKSSSIYNPIIYVLLNKQFRNCMVTTICCGKNPFGDEDVSSSVSSVSSSQVAPA
->SSR5_RAT
-LSLASTPSWNAS---AASSGNHNWSLVGSASPMGARAVLVPVLYLLVCTVGLSGNTLVIYVVLRHAKMKTVTNVYILNLAVADVLFMLGLPFLATQNAVVSYWPFGSFLCRLVMTLDGINQFTSIFCLMVMSVDRYLAVVHPLSARWRRPRVAKMASAAVWVFSLLMSLPLLVFADVQE-----GTCNLS-WPEPVGLWGAAFITYTSVLGFFGPLLVICLCYLLIVVKVKAAMR--VGSSRRRRSEPKVTRMVVVVVLVFVGCWLPFFIVNIVNLAFTLPPTSAGLYFFVVVLSYANSCANPLLYGFLSDNFRQSFRKVLCLRRGYGMEDADAIERPQATLPTRSCE
->B2AR_CANFA
-MGQPANRSVFLLAPNGSHAPDQ----GDSQERSEAWVVGMGIVMSLIVLAIVFGNVLVITAIARFERLQTVTNYFITSLACADLVMGLAVVPFGASHILMKMWTFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYFAITSPFYQSLLTKNKARVVILMVWIVSGLTSFLPIQMHWYRAI-N--TCCDFF--------TNQAYAIASSIVSFYLPLVVMVFVYSRVFQVAQRQGRSHRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIQDNL-IPKEVYILLNWVGYVNSAFNPLIYCRSP-DFRIAFQELLCLRRSSLKAYGNGYSDYAGEHSGCHLG
->CKR6_MOUSE
-FGTDDYDN---TEYYSIPPDHGPC---SLEEVRNFTKVFVPIAYSLICVFGLLGNIMVVMTFAFYKKARSMTDVYLLNMAITDILFVLTLPFWAVTHATNT-WVFSDALCKLMKGTYAVNFNCGMLLLACISMDRYIAIVQATRVRSRTLTHSKVICVAVWFISIIISSPTFIFNKKYE-LQ-RDVCEPRRSVSEPITWKLLGMGLELFFGFFTPLLFMVFCYLFIIKTL---------VQAQNSKRHRAIRVVIAVVLVFLACQIPHNMVLLVTAVNTGKKVLAYTRNVAEVLAFLHCCLNPVLYAFIGQKFRNYFMKIMKDVWCMRRKNKMPGFESY-----ISRQ
->NYR_DROME
-TLSGLQFETYNITVMMNFSCDDYDLLSEDMWSSAYFKIIVYMLYIPIFIFALIGNGTVCYIVYSTPRMRTVTNYFIASLAIGDILMSFFCEPSSFISLFILNWPFGLALCHFVNYSQAVSVLVSAYTLVAISIDRYIAIMWPL-KPRITKRYATFIIAGVWFIALATALPIPIVSGLDI---WHTKCEKYREMWPSRSQEYYYTLSLFALQFVVPLGVLIFTYARITIRVWAKPGETNRDQRMARSKRKMVKMMLTVVIVFTCCWLPFNILQLLLNDEEFADPLPYVWFAFHWLAMSHCCYNPIIYCYMNARFRSGFVQLMHRMPGLRRWCCLRSVSGTGPALPLNRM
->HH2R_MOUSE
--------------------MEPNGTVHSCCLDSIALKVTISVVLTTLIFITVAGNVVVCLAVSLNRRLRSLTNCFIVSLAATDLLLGLLVMPFSAIYQLSFKWRFGQVFCNIYTSLDVMLCTASILNLFMISLDRYCAVTDPLYPVLVTPVRVAISLVFIWVISITLSFLSIHLGWN--RN-TF-KCKVQ--------VNEVYGLVDGMVTFYLPLLIMCVTYYRIFKIAREQR--ISSWKAATIREHKATVTLAAVMGAFIVCWFPYFTAFVYRGLRGDD-VNEVVEGIVLWLGYANSALNPILYATLNRDFRMAYQQLFHCKLASHNSHKTSLRRSQSREGRW---
->TRFR_BOVIN
------------MENETGSELN-QTQLQPRAVVALEYQVVTILLVLIICGLGIVGNIMVVLVVMRTKHMRTPTNCYLVSLAVADLMVLVAAGLPNITDSIYGSWVYGYVGCLCITYLQYLGINASSCSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWAFTSIYCMLWFFLLDLN--DA-SCGYKIS------RNYYSPIYLMDFGVFYVVPMILATVLYGFIARILFLNLNSNRYFNSTVSSRKQVTKMLAVVVILFALLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCKQKPVEKPANYSVKESDRFSTELDD
->OPSP_ICTPU
--------MASIILINFSETDTLHLGSVNDHIMPRIGYTILSIIMALSSTFGIILNMVVIIVTVRYKQLRQPLNYALVNLAVADLGCPVFGGLLTAVTNAMGYFSLGRVGCVLEGFAVAFFGIAGLCSVAVIAVDRYMVVCRPLGAVMFQTKHALAGVVFSWVWSFIWNTPPLFGWGSYQLEGVMTSCAPN--WYRRDPVNVSYILCYFMLCFALPFATIIFSYMHLLHTLWQVAKLVADSGSTAKVEVQVARMVVIMVMAFLLTWLPYAAFALTVIIDSNIYINPVIGTIPAYLAKSSTVFNPIIYIFMNRQFRDYALPCLLCGKNPWAAKEGRDSTVSKNTSVSPL-
->OPSR_.ENLA
-NDDDDTTRSSVFTYTNSNNTRGPFEGPNYHIAPRWVYNLTSIWMIFVVFASVFTNGLVIVATLKFKKLRHPLNWILVNMAIADLGETVIASTISVFNQIFGYFILGHPMCVLEGFTVSTCGITALWSLTVIAWERWFVVCKPFGNIKFDEKLAATGIIFSWVWSAGWCAPPMFGWSRFWPHGLKTSCGPDVFSGSSDPGVQSYMLVLMITCCIIPLAIIILCYLHVWWTIRQVAQQQKESESTQKAEREVSRMVVVMIVAYIFCWGPYTFFACFAAFSPGYSFHPLAAALPAYFAKSATIYNPIIYVFMNRQFRNCIYQMFGKKVDDG-----SEVVSSVSNSSVSPA
->ML1._MOUSE
----------MGPTKAVPTPFGCIGCKLPKPDYPPALIIFMFCAMVITVVVDLIGNSMVILAVTKNKKLRNSGNIFVASLSVADMLVAIYPYPLMLYAMSVGGWDLSQLQCQMVGLVTGLSVVGSIFNITAIAINRYCYICHSLYKRIFSLRNTCIYLVVTWVMTVLAVLPNMYIGT-IEYDP-TYTCIFN------YVNNPAFTVTIVCIHFVLPLIIVGYCYTKIWIKVLAARD-AGQNPDNQFAEVRNFLTMFVIFLLFAVCWCPVNVLTVLVAVIPKEKIPNWLYLAAYCIAYFNSCLNAIIYGILNESFRREYWTIFHAMRHPILFISHLISTRALTRARVRAR
->OPSG_CHICK
-MNGTEGINFYVPMSNKTGVVRSPFEYPQYYLAEPWKYRLVCCYIFFLISTGLPINLLTLLVTFKHKKLRQPLNYILVNLAVADLFMACFGFTVTFYTAWNGYFVFGPVGCAVEGFFATLGGQVALWSLVVLAIERYIVVCKPMGNFRFSATHAMMGIAFTWVMAFSCAAPPLFGWSRYMPEGMQCSCGPDYYTHNPDYHNESYVLYMFVIHFIIPVVVIFFSYGRLICKVREAAAQQQESATTQKAEKEVTRMVILMVLGFMLAWTPYAVVAFWIFTNKGADFTATLMAVPAFFSKSSSLYNPIIYVLMNKQFRNCMITTICCGKNPFGDEDVSSTVSSVSSSQVSPA
->GRHR_HUMAN
---MANSASPEQNQNHCSAINNSIPLMQGNLPTLTLSGKIRVTVTFFLFLLSATFNASFLLKLQKWTQKLSRMKLLLKHLTLANLLETLIVMPLDGMWNITVQWYAGELLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITRPL-ALKSNSKVGQSMVGLAWILSSVFAGPQLYIFRMIHKV--FSQCVTH--SFSQWWHQAFYNFFTFSCLFIIPLFIMLICNAKIIFTLTRVPHENQSKNNIPRARLKTLKMTVAFATSFTVCWTPYYVLGIWYWFDPEMRLSDPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->5HT2_APLCA
-----------------MLCGRLRHTMNSTTCFFSHRTVLIGIVGSLIIAVSVVGNVLVCLAIFTEPISHSKSKFFIVSLAVADLLLALLVMTFALVNSLYGYWLFGETFCFIWMSADVMCETASIFSICVISYNRLKQVQKPLYEEFMTTTRALLIIASLWICSFVVSFVPFFLEWHELGD-PKPECLFD--------VHFIYSVIYSLFCFYIPCTLMLRNYLRLFLIAKKH-RIHRLHRNQGTQGSKAARTLTIITGTFLACWLPFFIINPIEAVDEHL-IPLECFMVTIWLGYFNSCVNPIIYGTSNSKFRAAFQRLLRCRSVKSTVSSISPVSWIRPSLLDGP-
->OPSD_ASTFA
-MNGTEGPYFYVPMSNATGVVRSPYEYPQYYLAPPWAYACLAAYMFFLILVGFPVNFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSLNGYFVFGRLGCNLEGFFATFGGINSLWCLVVLSIERWVVVCKPMSNFRFGENHAIMGVAFTWFMALACTVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVVHFLTPLFVITFCYGRLVCTVKEAAAQQQESETTQRAEREVTRMVILMFIAYLVCWLPYASVSWWIFTNQGSEFGPIFMTVPAFFAKSSSIYNPVIYICLNKQFRHCMITTLCCGKNPF--EEEEGATEASSVSSVSPA
->5H2C_HUMAN
-GLLVWQCDISVSPVAAIVTDIFNTSDGGRFKFPDGVQNWPALSIVIIIIMTIGGNILVIMAVSMEKKLHNATNYFLMSLAIADMLVGLLVMPLSLLAILYDYWPLPRYLCPVWISLDVLFSTASIMHLCAISLDRYVAIRNPIHSRFNSRTKAIMKIAIVWAISIGVSVPIPVIGLRD-VF--NTTCVL---------NDPNFVLIGSFVAFFIPLTIMVITYCLTIYVLRRQKKKPRGTMQAINNERKASKVLGIVFFVFLIMWCPFFITNILSVLCEKSKLMEKLLNVFVWIGYVCSGINPLVYTLFNKIYRRAFSNYLRCNYKVEKKPPVRQIALSGRELNVNIY
->DBDR_RAT
-PGRNRTAQPARLGLQRQLAQVDAPAG--SATPLGPAQVVTAGLLTLLIVWTLLGNVLVCAAIVRSRHRAKMTNIFIVSLAVSDLFVALLVMPWKAVAEVAGYWPFG-TFCDIWVAFDIMCSTASILNLCIISVDRYWAISRPFYERKMTQRVALVMVGLAWTLSILISFIPVQLNWHRDEG-RTENCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTRIYRIAQVQRGADPSLRASIKKETKVFKTLSMIMGVFVCCWLPFFILNCMVPFCSSGCVSETTFDIFVWFGWANSSLNPIIYAFNA-DFRKVFAQLLGCSHFCFRTPVQTVNYNQDTVFHK---
->EDG1_MOUSE
-VKALRSSVSDYGNYDIIVRHYNYTGKLNIGAEKDHGIKLTSVVFILICCFIILENIFVLLTIWKTKKFHRPMYYFIGNLALSDLLAG-VAYTANLLLSGATTYKLTPAQWFLREGSMFVALSASVFSLLAIAIERYITMLKMKLHNGSNSSRSFLLISACWVISLILGGLPSMGWNCI-S--SLSSCSTV------LPLYHKHYILFCTTVFTLLLLSIAILYCRIYSLVRTRLTFISKGSRSSEKSLALLKTVIIVLSVFIACWAPLFILLLLDVGCKAKCDILYKAEYFLVLAVLNSGTNPIIYTLTNKEMRRAFIRIVSCCKCPNGDSAGKFKEFSRSKSDNSSH
->B3AR_BOVIN
-MAPWPPGNSSLTPWPDIPTLAPNTANASGLPGVPWAVALAGALLALAVLATVGGNLLVIVAIARTPRLQTMTNVFVTSLATADLVVGLLVVPPGATLALTGHWPLGVTGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRALAAVVLVWVVSAAVSFAPIMSKWWRIQ-R--RCCTFA--------SNMPYALLSSSVSFYLPLLVMLFVYARVFVVATRQGVPRRPARLLPLREHRALRTLGLIMGTFTLCWLPFFVVNVVRALGGPS-VSGPTFLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCRCR---PEEHLAAAGAPTALTSPAGP
->NY2R_CAVPO
-EEIKVEPYGPGHTTPRGELAPDPEPELIDSTKLTEVRVVLILAYCSIILLGVVGNSLVIHVVIKFKSMRTVTNFFIANLAVADLLVNTLCLPFTLTYTLMGEWKMGPVLCHLVPYAQGLAVQVSTVTLTVIALDRHRCIVYHL-DSKISKQNSFLIIGLAWGISALLASPLAIFREYSLFE--IVACTEKWPGEEKSIYGTVYSLSSLLILYVLPLGIISVSYVRIWSKLKNHSPG-AANDHYHQRRQKTTKMLVFVVVVFAVSWLPLHAFQLAVDIDSQVKEYKLIFTVFHIIAMCSTFANPLLYGWMNSNYRKAFLSAFRCQQRLDAIQSE---AKTNVEVEKNHG
->PE22_RAT
----------------MDNSFNDSRRVENCESRQYLLSDESPAISSVMFTAGVLGNLIALALLARRWRSISLFHVLVTELVLTDLLGTCLISPVVLASYSRNQLAPESRACTYFAFTMTFFSLATMLMLFAMALERYLAIGHPYYRRRVSRRGGLAVLPAIYGVSLLFCSLPLLNYGEYVQYCPGTWCFIQ--------HGRTAYLQLYATVLLLLIVAVLGCNISVILNLIRMRGPRRGERTSMAEETDHLILLAIMTITFAVCSLPFTIFAYMDETSS---RKEKWDLRALRFLSVNSIIDPWVFVILRPPVLRLMRSVLCCRTSLRAPEAPGAS--QTDLCGQL--
->A2AB_MOUSE
---------------------MSGPAMVHQEPYSVQATAAIASAITFLILFTIFGNALVILAVLTSRSLRAPQNLFLVSLAAADILVATLIIPFSLANELLGYWYFWRAWCEVYLALDVLFCTSSIVHLCAISLDRYWAVSRALYNSKRTPRRIKCIILTVWLIAAVISLPPLIYKGD-Q-----PQCELN--------QEAWYILASSIGSFFAPCLIMILVYLRIYVIAKRSGVAWWRRRTQLSREKRFTFVLAVVIGVFVVCWFPFFFSYSLGAICPQHKVPHGLFQFFFWIGYCNSSLNPVIYTIFNQDFRRAFRRILCRQWTQTGW------------------
->AG2S_HUMAN
-------MILNSSTEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPAIIHRNVFF-TN--TVCAFH-YESRNSTLPIGLGLTKNILGSCFPFLIILTSYTLIWKALKKA----YEIQKNNPRNDDIFRIIMAIVLFFFFSWIPHQIFTFLDVLIQQGDIVDTAMPITIWIAYFNNCLNPLFYGFLGKKFKKDILQLLKYIPPKAKSHSNLSTRPSD-------N
->B2AR_BOVIN
-MGQPGNRSVFLLAPNASHAPDQ----NVTLERDEAWVVGMGILMSLIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGACHILMKMWTFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYLAITSPFYQCLLTKNKARVVILMVWIVSGLTSFLPIQMHWYRAI-N--TCCDFF--------TNQPYAIASSIVSFYLPLVVMVFVYSRVFQVAKRQGRSQRRTSKFYLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIKDNL-IRKEIYILLNWLGYINSAFNPLIYCRSP-DFRIAFQELLCLRRSSLKAYGNGCSDYTGEQSGYHLG
->IL8B_RABIT
-G--DFSNYSYSTDLPPTLLDSAPC----RSESLETNSYVVLITYILVFLLSLLGNSLVMLVILYSRSTCSVTDVYLLNLAIADLLFATTLPIWAASKVHG--WTFGTPLCKVVSLVKEVNFYSGILLLACISVDRYLAIVHATRTMIQKRHLVKFICLSMWGVSLILSLPILLFRNAIF-NS-SPVCYED-MGNSTAKWRMVLRILPQTFGFILPLLVMLFCYVFTLRTL---------FQAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLTDTLMRTHNDIDRALDATEILGFLHSCLNPIIYAFIGQKFRYGLLKILAAHGLISKEFLAKES------------
->GASR_RAT
-GSSLCRPGVSLLNSSSAGNLSCDPPRIRGTGTRELEMAIRITLYAVIFLMSVGGNVLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVICKAISYLMGVSVSVSTLNLVAIALERYSAICRPLARVWQTRSHAARVILATWLLSGLLMVPYPVYTMVQP---V-LQCMHR---WPSARVQQTWSVLLLLLLFFIPGVVIAVAYGLISRELYLGPGPPRPNQAKLLAKKRVVRMLLVIVLLFFLCWLPVYSVNTWRAFDGPGALSGAPISFIHLLSYVSACVNPLVYCFMHRRFRQACLDTCARCCPRPPRARPQPLPSIASLSRLSYT
->A1AB_MOUSE
-HNTSAPAHWGELKDANFTGPNQTSSNSTLPQLDVTRAISVGCLG-AFILFAIVGNILVILSVACNRHLRTPTNYFIVNLAIADLLLSFTDLPFSATLEVLGYWVLGRIFCDIWAAVDVLCCTASILSLCAISIDRYIGVRYSLYPTLVTRRKAILALLSVWVLSTVISIGPLLGWKEP--AP--KECGVT--------EEPFYALFSSLGSFYIPLAVILVMYCRVYIVAKRTHNPIAVKLFKFSREKKAAKTLGIVVGMFILCWLPFFIALPLGSLFSTLKPPDAVFKVVFWLGYFNSCLNPIIYPCSSKEFKRAFMRILGCQCRGGRRRRRRRRTYRPWTRGGSLE
->OPSR_FELCA
-AGLEDSTRASIFTYTNSNATRGPFEGPNYHIAPRWVYHVTSAWMIFVVIASVFTNGLVLAATMKFKKLRHPLNWILVNLAVADLAETIIASTISVVNQIYGYFVLGHPMCVLEGYTVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLAIAGIAFSWIWAAVWTAPPIFGWSRYWPHGLKTSCGPDVFSGSSYPGVQSYMIVLMITCCIIPLSVIVLCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVMVMIFAYCVCWGPYTFFACFAAAHPGYAFHPLVAALPAYFAKSATIYNPIIYVFMNRQFRNCIMQLFGKKVDDG-----SELASSV--SSVSPA
->P2Y7_HUMAN
--------------------MNTTSSAAPPSLGVEFISLLAIILLSVALAVGLPGNSFVVWSILKRMQKRSVTALMVLNLALADLAVLLTAPFFLHFLAQGT-WSFGLAGCRLCHYVCGVSMYASVLLITAMSLDRSLAVARPFSQKLRTKAMARRVLAGIWVLSFLLATPVLAYRTVVPK--NMSLCFPR---YPSEGHRAFHLIFEAVTGFLLPFLAVVASYSDIGRRL---------QARRFRRSRRTGRLVVLIILTFAAFWLPYHVVNLAEAGRALAKRLSLARNVLIALAFLSSSVNPVLYACAGGGLLRSAGVGFVAKLLEGTGSEASSTQTARSGPAALEP
->GPRL_HUMAN
----------MNSTLDGNQSSHPFCLLAFGYLETVNFCLLEVLIIVFLTVLIISGNIIVIFVFHCAPLNHHTTSYFIQTMAYADLFVGVSCVVPSLSLLHHPLPVEESLTCQIFGFVVSVLKSVSMASLACISIDRYIAITKPLYNTLVTPWRLRLCIFLIWLYSTLVFLPSFFHWG---K-P-VFQWCAE-----SWHTDSYFTLFIVMMLYAPAALIVCFTYFNIFRICQQHRFSGETGEVQACPDKRYAMVLFRITSVFYILWLPYIIYFLLESSTGHS--NRFASFLTTWLAISNSFCNCVIYSLSNSVFQRGLKRLSGAMCTSCASQTTANDGPLNGCHI----
->CKR3_MOUSE
-TDEIKTVVESFETTPYEYEWAPPC---EKVRIKELGSWLLPPLYSLVFIIGLLGNMMVVLILIKYRKLQIMTNIYLFNLAISDLLFLFTVPFWIHYVLWNE-WGFGHYMCKMLSGFYYLALYSEIFFIILLTIDRYLAIVHAVALRARTVTFATITSIITWGLAGLAALPEFIFHESQD-SF-EFSCSPRYPEGEEDSWKRFHALRMNIFGLALPLLVMVICYSGIIKTL---------LRCPNKKKHKAIRLIFVVMIVFFIFWTPYNLVLLFSAFHRTFKHLDLAMQVTEVIAYTHCCVNPVIYAFVGERFRKHLRLFFHRNVAVYLGKYIPFLT-------SSVS
->HH1R_MOUSE
-----------MRLPNTSSASEDKMCEGNRTAMASPQLLPLVVVLSSISLVTVGLNLGVLYAVRSERKLHTVGNLYIVSLSVADLIVGAIVMPMNILYLIMTKWSLGRPLCLFWLSMDYVASTASIFSVFILCIDRYRSVQQPLYLRYRTKTRASATILGAWFLSFLWVIPILGWHHFT--EL-EDKCETD------FYNVTWFKIMTAIINFYLPTLLMLWFYVKIYNGVRRHLRSQYVSGLHLNRERKAAKQLGCIMAAFILCWIPYFIFFMVIAFCNSC-CSEPVHMFTIWLGYINSTLNPLIYPLCNENFKKTFKKILHIRS-----------------------
->SSR1_HUMAN
-GEGGGSRGPGAGAADGMEEPGRNASQNGTLSEGQGSAILISFIYSVVCLVGLCGNSMVIYVILRYAKMKTATNIYILNLAIADELLMLSVPFLVTSTLLRH-WPFGALLCRLVLSVDAVNMFTSIYCLTVLSVDRYVAVVHPIAARYRRPTVAKVVNLGVWVLSLLVILPIVVFSRTAADG--TVACNML-MPEPAQRWLVGFVLYTFLMGFLLPVGAICLCYVLIIAKMRMVALK-AGWQQRKRSERKITLMVMMVVMVFVICWMPFYVVQLVNVFAEQ--DDATVSQLSVILGYANSCANPILYGFLSDNFKRSFQRILCLS-----WMDNAAETALKSRAYSVED
->MC5R_MOUSE
--MNSSSTLTVLNLTLNASEDGILGSNVKNKSLACEEMGIAVEVFLTLGLVSLLENILVIGAIVKNKNLHSPMYFFVGSLAVADMLVSMSNAWETVTIYLLNNDTFVRHIDNVFDSMICISVVASMCSLLAIAVDRYITIFYALYHHIMTARRSGVIIACIWTFCISCGIVFIIYYY----------------------EESKYVIICLISMFFTMLFFMVSLYIHMFLLARNH-RIPRYNSVRQRTSMKGAITLTMLLGIFIVCWSPFFLHLILMISCPQNSCFMSYFNMYLILIMCNSVIDPLIYALRSQEMRRTFKEIVCCHGFRRPCRLLGGY------------
->OPSD_CHELA
-MNGTEGPYFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPVNFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVLGGFTTTMYTSMHGYFVLGRLGCNVEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFSEDHAIMGLAFTWVMASACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFLIPLVVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVVAFLVCWCPYAGVAWYIFTHQGSEFGPLFMTFPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->OLF6_RAT
-----------MAWSTGQNLSTPGPFILLGFPGPRSMRIGLFLLFLVMYLLTVVGNLAIISLVGAHRCLQTPMYFFLCNLSFLEIWFTTACVPKTLATFAPRGGVISLAGCATQMYFVFSLGCTEYFLLAVMAYDRYLAICLPLYGGIMTPGLAMRLALGSWLCGFSAITVPATLIARL---SNHFFCDISVLSCTDTQVVELVSFGIAFCVILGSCGITLVSYAYIITTI--------IKIPSARGRHRAFSTCSSHLTVVLIWYGSTIFLHVRTSVES---SLDLTKAITVLNTIVTPVLNPFIYTLRNKDVKEALRRTVKGK------------------------
->D4DR_HUMAN
----MGNRSTADADGLLAGRGPAAGASAGASAGLAGQGAAALVGGVLLIGAVLAGNSLVCVSVATERALQTPTNSFIVSLAAADLLLALLVLPLFVYSEVQGGWLLSPRLCDALMAMDVMLCTASIFNLCAISVDRFVAVAVPLYNRQGGSRRQLLLIGATWLLSAAVAAPVLCGLN---G-R--AVCRL---------EDRDYVVYSSVCSFFLPCPLMLLLYWATFRGLQRWPPPRRRRAKITGRERKAMRVLPVVVGAFLLCWTPFFVVHITQALCPACSVPPRLVSAVTWLGYVNSALNPVIYTVFNAEFRNVFRKALRACC-----------------------
->NY2R_MOUSE
-VEVKVEPYGPGHTTPRGELPPDPEPELIDSTKLVEVQVILILAYCSIILLGVVGNSLVIHVVIKFKSMRTVTNFFIANLAVADLLVNTLCLPFTLTYTLMGEWKMGPVLCHLVPYAQGLAVQVSTITLTVIALDRHRCIVYHL-ESKISKRISFLIIGLAWGISALLASPLAIFREYSLFE--IVACTEKWPGEEKSVYGTVYSLSTLLILYVLPLGIISFSYTRIWSKLRNHSPG-AASDHYHQRRHKMTKMLVCVVVVFAVSWLPLHAFQLAVDIDSHVKEYKLIFTVFHIIAMCSTFANPLLYGWMNSNYRKAFLSAFRCEQRLDAIHSE---AKKNLEVKKNNG
->ETBR_MOUSE
-SSAPAEVTKGGRGAGVPPRS-FPPPCQRNIEISKTFKYINTIVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIIIDIPINTYKLLAEDWPFGAEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEAIGFDMITRV--LRVCMLNQKTAFMQFYKTAKDWWLFSFYFCLPLAITAVFYTLMTCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKLTLYDQSFLLVLDYIGINMASLNSCINPIALYLVSKRFKNCFKSCLCCWCQTFE-EKQSLEFKANDHGYDNFR
->NK2R_RAT
-----MGTRAIVSDANILSGLESNATGVTAFSMPGWQLALWATAYLALVLVAVTGNATVIWIILAHERMRTVTNYFIINLALADLCMAAFNATFNFIYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAADRYMAIVHPF-QPRLSAPSTKAIIAGIWLVALALASPQCFYST---GA---TKCVVAWPNDNGGKMLLLYHLVVFVLIYFLPLLVMFGAYSVIGLTLWKRPRHHGANLRHLQAKKKFVKAMVLVVLTFAICWLPYHLYFILGTFQEDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWVTPTEE----HTPSLSRRVNRC
->OPR._MOUSE
-GSHFQGNLSLLN---ETVPHHLLLNASHSAFLPLGLKVTIVGLYLAVCIGGLLGNCLVMYVILRHTKMKTATNIYIFNLALADTLVLLTLPFQGTDILLGF-WPFGNALCKTVIAIDYYNMFTSTFTLTAMSVDRYVAICHPIALDVRTSSKAQAVNVAIWALASVVGVPVAIMGSAQVEE---IECLVE-IPAPQDYWGPVFAICIFLFSFIIPVLIISVCYSLMIRRLRGVRLL-SGSREKDRNLRRITRLVLVVVAVFVGCWTPVQVFVLVQGLGVQPETAVAILRFCTALGYVNSCLNPILYAFLDENFKACFRKFCCASALHREMQVSDRVGLGCKTSETVPR
->YLD1_CAEEL
---------------------------MIIFYLYVATQVFVAIAFVLLMATAIIGNSVVMWIIYQHKVMHYGFNYFLFNMAFADLLIALFNVGTSWTYNLYYDWWYG-DLCTLTSFFGIAPTTVSVCSMMALSWDRCQAVVNPLQKRPLSRKRSVIAILIIWVVSTVTALPFAIAASVNSVTSKAHVCSAP--------VNTFFEKVLFGIQYALPIIILGSTFTRIAVAFRATEATSSLKNNHTRAKSKAVKMLFLMVVAFVVCWLPYHIYHAFALEEFFDARGKYAYLLIYWIAMSSCAYNPIIYCFANERFRIGFRYVFRWIPVIDCKKEQYEYMRSMAISLQKGR
->5HT_BOMMO
-LPLQNCSWNSTGWEPNWNVTVWQASAPFDTPAALVRAAAKAVVLGLLILATVVGNVFVIAAILLERHLRSAANNLILSLAVADLLVACLVMPLGAVYEVVQRWTLGPELCDMWTSGDVLCCTASILHLVAIALDRYWAVTNI-YIHASTAKRVGMMIACVWTVSFFVCIAQLLGWKDPDS-E--LRCVVS--------QDVGYQIFATASSFYVPVLIILILYWRIYQTARKRPSLKPKEAADSKRERKAAKTLAIITGAFVACWLPFFVLAILVPTCDC-EVSPVLTSLSLWLGYFNSTLNPVIYTVFSPEFRHAFQRLLCGRRVRRRRAPQ---------------
->OPSD_SALPV
-MNGTEGPYFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFFLILLGFPINFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIGLWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWIMACACAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVVYMFTCHFCIPLTIIGFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVILMVVGFLVCWLPYASVAWYIFSNQGSQFGPLFMTIPAFFAKSSSVYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTSSVSSSSVSPAA
->OPSD_LITMO
-MNGTEGPYFYVPMVNTSGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWLMAMACAAPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFLIPLMVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVIMVIAFLICWCPYAGVAWWIFTHQGSDFGPVFMTIPAFFAKSSSIYNPMIYICLNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->P2UR_RAT
-----MAAGLDSWNSTINGTWEGDELGYKCRFNEDFKYVLLPVSYGVVCVLGLCLNVVALYIFLCRLKTWNASTTYMFHLAVSDSLYAASLPLLVYYYAQGDHWPFSTVLCKLVRFLFYTNLYCSILFLTCISVHRCLGVLRPLSLSWGHARYARRVAAVVWVLVLACQAPVLYFVTTS-----RITCHDT-SARELFSHFVAYSSVMLGLLFAVPFSIILVCYVLMARRLLKP---AYGTTGLPRAKRKSVRTIALVLAVFALCFLPFHVTRTLYYSFRSLNAINMAYKITRPLASANSCLDPVLYFLAGQRLVRFARDAKPATEPTPSPQARRKLTDTVRKDLSISS
->OLF4_CHICK
--------------MASGNCTTPTTFILSGLTDNPGLQMPLFMVFLAIYTITLLTNLGLIALISVDLHLQTPMYIFLQNLSFTDAAYSTVITPKMLATFLEERKTISYIGCILQYFSFVLLTVTESLLLAVMAYDRYVAICKPLYPSIMTKAVCWRLVKGLYSLAFLNSLVHTSGLLKL---SNHFFCDNSQISSSSTTLNELLVFIFGSLFAMSSIITILISYVFIILTV--------VRIRSKDGKYKAFSTCTSHLMAVSLFHGTVIFMYLRPVKLF---SLDTDKIASLFYTVVIPMLNPLIYSWRNKEVKDALRRVIATNVWIH--------------------
->LSHR_RAT
-ENELSGWDYDYGFCSPKTLQCAPEPDAFNPCEDIMGYAFLRVLIWLINILAIFGNLTVLFVLLTSRYKLTVPRFLMCNLSFADFCMGLYLLLIASVDSQTKGWQTG-SGCGAAGFFTVFASELSVYTLTVITLERWHTITYAVLDQKLRLRHAIPIMLGGWLFSTLIATMPLVGISNY----KVSICLPM-----VESTLSQVYILSILILNVVAFVVICACYIRIYFAVQNP------ELTAPNKDTKIAKKMAILIFTDFTCMAPISFFAISAAFKVPLITVTNSKILLVLFYPVNSCANPFLYAIFTKAFQRDFLLLLSRFGCCKRRAELYRRSNCKNGFPGASK
->MSHR_BOVIN
-PALGSQRRLLGSLNCTPPATLPFTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAVSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICGSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHKVILLCLVGLFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->PE24_RAT
---------------------MSIPGVNASFSSTPERLNSPVTIPAVMFIFGVVGNLVAIVVLCKSRKKETTFYTLVCGLAVTDLLGTLLVSPVTIATYMKGQWPGDQALCDYSTFILLFFGLSGLSIICAMSIERYLAINHAYYSHYVDKRLAGLTLFAVYASNVLFCALPNMGLGRSERQYPGTWCFID---WTTNVTAYAAFSYMYAGFSSFLILATVLCNVLVCGALLRMAAAVASFRRIAGAEIQMVILLIATSLVVLICSIPLVVRVFINQLYQPSDISRNPDLQAIRIASVNPILDPWIYILLRKTVLSKAIEKIKCLFCRIGGSGRDGSRRTSSAMSGHSR
->5H1B_FUGRU
-----MEGTNNTTGWTHFDSTSNRTSKSFDEEVKLSYQVVTSFLLGALILCSIFGNACVVAAIALERSLQNVANYLIGSLAVTDLMVSVLVLPMAALYQVLNRWTLGQIPCDIFISLDMLCCTSSILHLCVIALDRYWAITEPIYMKKRTPRRAAVLISVTWLVGFSISIPPMLIMRSQPA-N--KQCKIT--------QDPWYTIYSTFGAFYIPLTLMLVLYGRIFKAARFRRHEETKRKIALARERKTVKTLGIIMGTFILCWLPFFIVALVMPFCQESFMPHWLKDVINWLGYSNSLLNPIIYAYFNKDFQSAFKKIIKCHFCRA--------------------
->GP39_HUMAN
--------MASPSLPGSDCSQIIDHSHVPEFEVATWIKITLILVYLIIFVMGLLGNSATIRVTQVLQKLQKEVTDHMVSLACSDILVFLIGMPMEFYSIIWNPTSSYTLSCKLHTFLFEACSYATLLHVLTLSFERYIAICHPFYKAVSGPCQVKLLIGFVWVTSALVALPLLFAMGTEYETSNMSICTNL-----SRWTVFQSSIFGAFVVYLVVLLSVAFMCWNMMQVLMKSRPPKSESEESRTARRQTIIFLRLIVVTLAVCWMPNQIRRIMAAAKPKHRAYMILLPFSETFFYLSSVINPLLYTVSSQQFRRVFVQVLCCRLSLQHANHEKRLTDSARFVQRPLL
->BRB2_HUMAN
-FSADMLNVTLQGPTLNGTFAQSKC---PQVEWLGWLNTIQPPFLWVLFVLATLENIFVLSVFCLHKSSCTVAEIYLGNLAAADLILACGLPFWAITISNNFDWLFGETLCRVVNAIISMNLYSSICFLMLVSIDRYLALVKTMMGRMRGVRWAKLYSLVIWGCTLLLSSPMLVFRTMKE-HN--TACVIS---YPSLIWEVFTNMLLNVVGFLLPLSVITFCTMQIMQVLRNN---EMQKFKEIQTERRATVLVLVVLLLFIICWLPFQISTFLDTLHRLGRIIDVITQIASFMAYSNSCLNPLVYVIVGKRFRKKSWEVYQGVCQKGGCRSEPIQLRTS-------I
->RDC1_HUMAN
-YAEPGNFSDISWPCNSSDCIVVDTVMCPNMPNKSVLLYTLSFIYIFIFVIGMIANSVVVWVNIQAKTTGYDTHCYILNLAIADLWVVLTIPVWVVSLVQHNQWPMGELTCKVTHLIFSINLFSGIFFLTCMSVDRYLSITYFTTPSSRKKMVRRVVCILVWLLAFCVSLPDTYYLKTVTNNE--TYCRSFYPEHSIKEWLIGMELVSVVLGFAVPFSIIAVFYFLLARAI---------SASSDQEKHSSRKIIFSYVVVFLVCWLPYHVAVLLDIFSILHHALFTALHVTQCLSLVHCCVNPVLYSFINRNYRYELMKAFIFKYSAKTGLTKLIDEYSALEQNAK--
->OPSB_ASTFA
-QEFQEDFYIPIPLDTNNITALSPFLVPQDHLGGSGIFMIMTVFMLFLFIGGTSINVLTIVCTVQYKKLRSHLNYILVNLAISNLLVSTVGSFTAFVSFLNRYFIFGPTACKIEGFVATLGGMVSLWSLSVVAFERWLVICKPVGNFSFKGTHAIIGCALTWFFALLASTPPLFGWSRYIPEGLQCSCGPDWYTTENKYNNESYVMFLFCFCFGFPFTVILFCYGQLLFTLKSAAKAQADSASTQKAEREVTKMVVVMVMGFLVCWLPYASFALWVVFNRGQSFDLRLGTIPSCFSKASTVYNPVIYVFMNKQFRSCMMKLIFCGKSPFGDDEEASSSSVGPEK-----
->CB1B_FUGRU
-TNASDFPLSNGSGEATQCGEDIVDNMECFMILTPAQQLVIVILAITLGTFTVLENFVVLCVILHSHTRSRPSYHFIGSLAVADLIGSIIFVYSFLDFHVLHR-KDSPSIFLFKLAGVIASFTASVGSLFLTAIDRYVSIHRPMYKRIITKTKAVIAFSVMWAISIEFSLLPLLGWNCK-R--LHSVCSDI------FPLIDEKYLMFWIGMTTVLLLFIIYAYMFILWKSHHHSEGQTVRPEQARMDLRLAKTLVLILVALIICWGPLLAIMVYDLFGRVNDFIKTVFAFCSMLCLLNSTINPVIYAMRSKDLRRAFVNICHMCRGTTQSLDSSAEVRSTGGRAGKDR
->5H2B_HUMAN
-ILQSTFVHVISSNWSGLQTESIPEEMKQIVEEQGNKLHWAALLILMVIIPTIGGNTLVILAVSLEKKLQYATNYFLMSLAVADLLVGLFVMPIALLTIMFEAWPLPLVLCPAWLFLDVLFSTASIMHLCAISVDRYIAIKKPIANQYNSRATAFIKITVVWLISIGIAIPVPIKGIET-NP---ITCVLT------KERFGDFMLFGSLAAFFTPLAIMIVTYFLTIHALQKKRRTGKKSVQTISNEQRASKVLGIVFFLFLLMWCPFFITNITLVLCDSCTTLQMLLEIFVWIGYVSSGVNPLVYTLFNKTFRDAFGRYITCNYRATKSVKTLRKRNPMAENSKFFK
->OAR2_LYMST
-RNFSVSADVWLCGANFSQEWQLMQPVCSTKYDSITIFITVAVVLTLITLWTILGNFFVLMALYRYGTLRTMSNCLIGNLAISDLLLAVTVLPISTVHDLLGYWVFGEFTCTLWLCMDVLYCTASIWGLCTVAFDRYLATVYPVYHDQRSVRKAVGCIVFVWIFSIVISFAPFIGWQHM-S-F--YQCILF--------TSSSYVLYSSMGSFVIPAILMAFMYVRIFVVLHNQRNKLSMKRRFELREQRATKRMLLIMACFCVCWMPFLFMYILRSVCDTCHMNQHFVAAIIWLGYVNSSLNPVLYTLFNDDFKVAFKRLIGARSPSAYRSPGPRR------------
->GRPR_HUMAN
-DCFLLNLEVDHFMHCN-ISSHSADLPVNDDWSHPGILYVIPAVYGVIILIGLIGNITLIKIFCTVKSMRNVPNLFISSLALGDLLLLITCAPVDASRYLADRWLFGRIGCKLIPFIQLTSVGVSVFTLTALSADRYKAIVRPMIQASHALMKICLKAAFIWIISMLLAIPEAVFSDLHPQT--FISCAPY---HSNELHPKIHSMASFLVFYVIPLSIISVYYYFIAKNLIQSLPVNIHVKKQIESRKRLAKTVLVFVGLFAFCWLPNHVIYLYRSYHYSEMLHFVTSICARLLAFTNSCVNPFALYLLSKSFRKQFNTQLLCCQPGLIIR--SHSMTSLKSTNPSVA
->DBDR_HUMAN
-PGSNGTAYPGQFALYQQLAQGNAVGGSAGAPPLGPSQVVTACLLTLLIIWTLLGNVLVCAAIVRSRHRANMTNVFIVSLAVSDLFVALLVMPWKAVAEVAGYWPFG-AFCDVWVAFDIMCSTASILNLCVISVDRYWAISRPFYKRKMTQRMALVMVGLAWTLSILISFIPVQLNWHRDED-NAENCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTRIYRIAQVQSAADTSLRASIKKETKVLKTLSVIMGVFVCCWLPFFILNCMVPFCSGHCVSETTFDVFVWFGWANSSLNPVIYAFNA-DFQKVFAQLLGCSHFCSRTPVETVNYNQDIVFHK---
->B2AR_MESAU
-MGPPGNDSDFLLTTNGSHVPDH----DVTEERDEAWVVGMAILMSVIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGASHILMKMWNFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYIAITSPFYQSLLTKNKARMVILMVWIVSGLTSFLPIQMHWYRAI-D--TCCDFF--------TNQAYAIASSIVSFYVPLVVMVFVYSRVFQVAKRQGRSLRRSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIQDNL-IPKEVYILLNWLGYVNSAFNPLIYCRSP-DFRIAFQELLCLRRSSSKAYGNGYSDYMGEASGCQLG
->5H1B_HUMAN
-PAGSETWVPQANLSSAPSQNCSAKDYIYQDSISLPWKVLLVMLLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDFWLSSDITCCTASILHLCVIALDRYWAITDAVYSAKRTPKRAAVMIALVWVFSISISLPPFFWR----E-E--SECVVN-------TDHILYTVYSTVGAFYFPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGAFIVCWLPFFIISLVMPICKDAWFHLAIFDFFTWLGYLNSLINPIIYTMSNEDFKQAFHKLIRFKCTS---------------------
->GPRH_HUMAN
-------MNGLEVAPPGLITNFSLATAEQCGQETPLENMLFASFYLLDFILALVGNTLALWLFIRDHKSGTPANVFLMHLAVADLSCVLVLPTRLVYHFSGNHWPFGEIACRLTGFLFYLNMYASIYFLTCISADRFLAIVHPVSLKLRRPLYAHLACAFLWVVVAVAMAPLLVSPQTVQVCL-QLYRE----------KASHHALVSLAVAFTFPFITTVTCYLLIIRSLR------QGLRVEKRLKTKAVRMIAIVLAIFLVCFVPYHVNRSVYVLHYRSRILALANRITSCLTSLNGALDPIMYFFVAEKFRHALCNLLCGKRLKGPPPSFEGKAKSEL-------
->ACM1_MOUSE
-------------MNTSVPPAVSPNITVLAPGKGPWQVAFIGSTTGLLSLATVTGNLLVLISIKVNTELKTVNNYFLLSLACADLIIGTFSMNLYTTYLLMGHWALGTLACDLWLALDYVASNASVMNLLLISFDRYFSVTRPLYRAKRTPRRAALMIGLAWLVSFVLWAPAILFWQYLV-VL-AGQCYIQ------FLSQPIITFGTAMAAFYLPVTVMCTLYWRIYRETENRRGKAKRKTFSLVKEKKAARTLSAILLAFILTWTPYNIMVLVSTFCKDC-VPETLWELGYWLCYVNSTVNPMCYASCNKAFRDHFRLLLLCRWDKRRWRKIPKRPSRQC-------
->B3AR_SHEEP
-MAPWPPGNSFLTPWPDIPTLAPNTANASGLPGVPWAVALAGALLALAVLATVGGNLLVIVAIARTPRLQTMTNVFVTSLATADLVVGLLVVPPGATLALTGHWPLGVTGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRARAAVVLVWVVSAAVSFAPIMSKWWRVQ-R--RCCTFA--------SNMPYALLSSSVSFYLPLLVMLFVYARVFVVDTRQGVPRRPARLLPLREHRALRTLGLIMGTFTLCWLPFFVVNVVRALGGPS-VSGPTFLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCRCPPEEHLAAASPPTVLTSPAGPRQP
->A1AD_MOUSE
-TGSGEDNQSSTAEAGAAASGEVNGSAAVGGLVVSAQGVGVGVFLAAFILTAVAGNLLVILSVACNRHLQTVTNYFIVNLAVADLLLSAAVLPFSATMEVLGFWPFGRTFCDVWAAVDVLCCTASILSLCTISVDRYVGVRHSLYPAIMTERKAAAILALLWAVALVVSVGPLLGWKEP--VP--RFCGIT--------EEVGYAIFSSVCSFYLPMAVIVVMYCRVYVVARSTHTLLSVRLLKFSREKKAAKTLAIVVGVFVLCWFPFFFVLPLGSLFPQLKPSEGVFKVIFWLGYFNSCVNPLIYPCSSREFKRAFLRLLRCQCRRRRRR--LWPSLDRR-PALRLC
->C5AR_CANFA
-SMNFSPPEYPDYG-TATLDPNIFVDESLNTPKLSVPDMIALVIFVMVFLVGVPGNFLVVWVTGFEVR-RTINAIWFLNLAVADLLSCLALPILFSSIVQQGYWPFGNAACRILPSLILLNMYASILLLTTISADRFVLVFNPICQNYRGPQLAWAACSVAWAVALLLTVPSFIFRGVHT-PF--MTCGVD-YSGVGVLVERGVAILRLLMGFLGPLVILSICYTFLLIRT---------WSRKATRSTKTLKVVVAVVVSFFVLWLPYQVTGMMMALFYKHRRVSRLDSLCVAVAYINCCINPIIYVLAAQGFHSRFLKSLPARLRQVLAEESVGRSTVD--------
->CKRA_HUMAN
-QVSWGHYSGDEEDAYSAEPLPELC---YKADVQAFSRAFQPSVSLTVAALGLAGNGLVLATHLAARRARSPTSAHLLQLALADLLLALTLPFAAAGALQG--WSLGSATCRTISGLYSASFHAGFLFLACISADRYVAIARALGPRPSTPGRAHLVSVIVWLLSLLLALPALLFS--QD-RE-QRRCRLIFPEGLTQTVKGASAVAQVALGFALPLGVMVACYALLGRTL---------LAARGPERRRALRVVVALVAAFVVLQLPYSLALLLDTADLLAKRKDVALLVTSGLALARCGLNPVLYAFLGLRFRQDLRRLLRGGSSPSGPQPRRGC--------PRLS
->MTR_BUFMA
-LNLDCSELPNSSWVNSSMENQSSNSTRDPLKRNEEVAKVEVTVLALILFLALAGNICVLLGIYINRHKHSRMYFFMKHLSIADLVVAIFQVLPQLIWDITFRFYAPDLVCRLVTYLQVVGMFASTYMLLLMSLDRCLAICQPL--RSLHRRSDCVYVLFTWILSFLLSTPQTVIFSLTE----VYDCRAD---FIQPWGPKAYITWITLAVYIIPVMILSVCYGLISYKIWQNRATVSSVRLISKAKIRTVKMTFIIVLAYIVCWTPFFFVQMWSVWDPNP-KEASLFIIAMLLGSLNSCCNPWIYMLFTGHLFHDLLQSFLCCSARYLKTQQQGSSNSSTFVLSRKS
->B1AR_HUMAN
-LPDGAATAARLLVPASPPASLLPPASESPEPLSQQWTAGMGLLMALIVLLIVAGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARGLVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHREL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQGLLCCARRAARRRHATHGCLARPGPPPSPG
->ACM2_RAT
---------------MNNSTNSSNNGLAITSPYKTFEVVFIVLVAGSLSLVTIIGNILVMVSIKVSRHLQTVNNYFLFSLACADLIIGVFSMNLYTLYTVIGYWPLGPVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPVKRTTKMAGMMIAAAWVLSFILWAPAILFWQFIV-VE-DGECYIQ------FFSNAAVTFGTAIAAFYLPVIIMTVLYWHISRASKSRVKMPAKKKPPPSREKKVTRTILAILLAFIITWAPYNVMVLINTFCAPC-IPNTVWTIGYWLCYINSTINPACYALCNATFKKTFKHLLMCHYKNIGATR----------------
->AG22_MERUN
-AATSRNITSSLPFVNLNMSGTNDLIFNCSHKPSDKHLEAIPVLYYLIFVIGFAVNIIVVSLFCCQKGPKKVSSIYIFNLAVADLLLLATLPLWATYYSYRYDWLFGPVMCKVFGSFLTLNMFASIFFITCMSVDRYQSVIYPFLSQRRNPWQASYVVPLVWCMACLSSLPTFYFRDVRT-LG--NACVMAFPPEKYAQWSAGIALMKNVLGFIIPLIFIATCYFGIRKHLLKT----NSYGKNRITRDQVLKMAAAVVLAFIICWLPFHVLTFLDALSWMGAVIDLALPFAILLGFTNSCVNPFLYCFVGNRFQQKLRSMFRVPITWLQGKRETMSREMDTFVS----
->NY5R_PIG
--------------NTVATRNSGFPVWEDYKGSVDDLQYFLIGLYTFVSLLGFMGNLLILMAVMRKRNQKTTVNFLIGNLAFSDILVVLFCSPFTLTSVLLDQWMFGKVMCHIMPFLQCVTVLVSTLILISIAIVRYHMIKHPV-SNNLTANHGYFLIATVWTLGLAICSPLPVFHSLVESS--RYLCVES---WPSDSYRIAFTISLLLVQYILPLVCLTVSHTSVCRTISCGVPESRSIMRLRKRSRSVFYRLTVLILVFAVSWMPLHLFHVVTDFNDNLRHFKLVYCICHLLGMMSCCLNPILYGFLNNGIKADLMSLIHCLHVS---------------------
->CB1R_HUMAN
-EFYNKSLSSFKENEENIQCGENFMDIECFMVLNPSQQLAIAVLSLTLGTFTVLENLLVLCVILHSRSRCRPSYHFIGSLAVADLLGSVIFVYSFIDFHVFHR-KDSRNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKRIVTRPKAVVAFCLMWTIAIVIAVLPLLGWNCE-K--LQSVCSDI------FPHIDETYLMFWIGVTSVLLLFIVYAYMYILWKAHSHSEDQVTRPDQARMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNKLIKTVFAFCSMLCLLNSTVNPIIYALRSKDLRHAFRSMFPSCEGTAQPLDNSMGKHANNAASVHRA
->D3DR_MOUSE
---------MAPLSQISSHINSTCGAENSTGVNRARPHAYYALSYCALILAIIFGNGLVCAAVLRERALQTTTNYLVVSLAVADLLVATLVMPWVVYLEVTGGWNFSRICCDVFVTLDVMMCTASILNLCAISIDRYTAVVMPVGTGQSSCRRVALMITAVWVLAFAVSCPLLFGFN---D-P--SICSI---------SNPDFVIYSSVVSFYVPFGVTVLVYARIYMVLRQRTSLPLQPRGVPLREKKATQMVVIVLGAFIVCWLPFFLTHVLNTHCQACHVSPELYRATTWLGYVNSALNPVIYTTFNIEFRKAFLKILSC-------------------------
->GPRF_MACMU
-----MDPEETSVYLDYYYATSPNPDIRETHSHVPYTSVFLPVFYTAVFLTGVLGNLVLMGALHFKPGSRRLIDIFIINLAASDFIFLVTLPLWVDKEASLGLWRTGSFLCKGSSYMISVNMHCSVFLLTCMSVDRYLAIVCPVSRKFRRTDCAYVVCASIWFISCLLGLPTLLSRELT-IDD-KPYCAEK----KATPLKLIWSLVALIFTFFVPLLSIVTCYCCIARKLCAH---YQQSGKHNKKLKKSIKIIFIVVAAFLVSWLPFNTFKLLAIVSGLQAMLQLGMEVSGPLAFANSCVNPFIYYIFDSYIRRAIVHCLCPCLKNYDFGSSTETALSTFIHAEDFT
->CB1R_RAT
-EFYNKSLSSFKENEENIQCGENFMDMECFMILNPSQQLAIAVLSLTLGTFTVLENLLVLCVILHSRSRCRPSYHFIGSLAVADLLGSVIFVYSFVDFHVFHR-KDSPNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKRIVTRPKAVVAFCLMWTIAIVIAVLPLLGWNCK-K--LQSVCSDI------FPLIDETYLMFWIGVTSVLLLFIVYAYMYILWKAHSHSEDQVTRPDQARMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNKLIKTVFAFCSMLCLLNSTVNPIIYALRSKDLRHAFRSMFPSCEGTAQPLDNSMGHANNTASMHRAA
->CKR4_HUMAN
-IADTTLDESIYSNYYLYESIPKPC---TKEGIKAFGELFLPPLYSLVFVFGLLGNSVVVLVLFKYKRLRSMTDVYLLNLAISDLLFVFSLPFWGYYAADQ--WVFGLGLCKMISWMYLVGFYSGIFFVMLMSIDRYLAIVHAVSLRARTLTYGVITSLATWSVAVFASLPGFLFSTCYT-ER-HTYCKTK-YSLNSTTWKVLSSLEINILGLVIPLGIMLFCYSMIIRTL---------QHCKNEKKNKAVKMIFAVVVLFLGFWTPYNIVLFLETLVELERYLDYAIQATETLAFVHCCLNPIIYFFLGEKFRKYILQLFKTCRGLFVLCQYCGLTP------SSSY
->PD2R_MOUSE
-----------------------MNESYRCQTSTWVERGSSATMGAVLFGAGLLGNLLALVLLARSGLPPSVFYVLVCGLTVTDLLGKCLISPMVLAAYAQNQPASGNQLCETFAFLMSFFGLASTLQLLAMAVECWLSLGHPFYQRHVTLRRGVLVAPVVAAFCLAFCALPFAGFGKFVQYCPGTWCFIQ-MIHKERSFSVIGFSVLYSSLMALLVLATVVCNLGAMYNLYDMAQSYRHGSLHPLEELDHFVLLALMTVLFTMCSLPLIYRAYYGAFKL--AEGDSEDLQALRFLSVISIVDPWIFIIFRTSVFRMLFHKVFTRPLIYRNWSSHSQL-----------
->OPSD_BUFMA
-MNGTEGPNFYIPMSNKTGVVRSPFEYPQYYLAEPWQYSVLCAYMFLLILLGFPINFMTLYVTIQHKKLRTPLNYILLNLAFANHFMVLCGFTVTMYSSMNGYFVFGQTGCYVEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFSENHAIMGVAFTWIMALACAAPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFLIPLIIIFFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVVFFLICWVPYASVAFFIFTHQGSEFGPVFMTIPAFFAKSSSIYNPVIYIMLNKQFRNCMITTLCCGKNPFGDEDASSAASSVSSSQVSPA
->5H1F_MOUSE
--------------MDFLNASD-QNLTSEELLNRMPSKILVSLTLSGLALMTTTINSLVIAAIIVTRKLHHPANYLICSLAVTDFLVAVLVMPFSIVYIVRESWIMGQVLCDIWLSVDIICCTCSILHLSAIALDRYRAITDAVYARKRTPRHAGIMITIVWVISVFISMPPLFWR----S-R--DECVIK-------HDHIVSTIYSTFGAFYIPLVLILILYYKIYRAARTLLKHWRRQKISGTRERKAATTLGLILGAFVICWLPFFVKELVVNVCEKCKISEEMSNFLAWLGYLNSLINPLIYTIFNEDFKKAFQKLVRCRY-----------------------
->B2AR_RAT
-MEPHGNDSDFLLAPNGSRAPGH----DITQERDEAWVVGMAILMSVIVLAIVFGNVLVITAIAKFERLQTVTNYFITSLACADLVMGLAVVPFGASHILMKMWNFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYVAITSPFYQSLLTKNKARVVILMVWIVSGLTSFLPIQMHWYRAI-D--TCCDFF--------TNQAYAIASSIVSFYVPLVVMVFVYSRVFQVAKRQGRSLRSSSKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIRANL-IPKEVYILLNWLGYVNSAFNPLIYCRSP-DFRIAFQELLCLRRSSSKTYGNGYSDYTGEQSAYQLG
->O.YR_PIG
-GVLAANWSAEAVNSSAAPPEAEGNRTAGPPQRNEALARVEVAVLCLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIADLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RALRRPADRLAVLATWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYITWITLAVYIVPVIVLAACYGLISFKIWQNRAAVSSVKLISKAKIRTVKMTFIIVLAFIVCWTPFFFVQMWSVWDADA-KEASAFIIAMLLASLNSCCNPWIYMLFTGHLFHELVQRFLCCSSSHLKTSRPGENSSTFVLSQHSS
->OPSB_CARAU
-PEFHEDFYIPIPLDINNLSAYSPFLVPQDHLGNQGIFMAMSVFMFFIFIGGASINILTILCTIQFKKLRSHLNYILVNLSIANLFVAIFGSPLSFYSFFNRYFIFGATACKIEGFLATLGGMVGLWSLAVVAFERWLVICKPLGNFTFKTPHAIAGCILPWISALAASLPPLFGWSRYIPEGLQCSCGPDWYTTNNKYNNESYVMFLFCFCFAVPFGTIVFCYGQLLITLKLAAKAQADSASTQKAEREVTKMVVVMVLGFLVCWAPYASFSLWIVSHRGEEFDLRMATIPSCLSKASTVYNPVIYVLMNKQFRSCMMKMVCGKNIEE---DEASTSSVAPEK-----
->5H1B_RAT
-CAPPPPATSQTGVPLANLSHNSADDYIYQDSIALPWKVLLVALLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDFWLSSDITCCTASIMHLCVIALDRYWAITDAVYSAKRTPKRAAIMIVLVWVFSISISLPPFFWR----E-E--LDCFVN-------TDHVLYTVYSTVGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGAFIVCWLPFFIISLVMPICKDAWFHMAIFDFFNWLGYLNSLINPIIYTMSNEDFKQAFHKLIRFKCTG---------------------
->H963_HUMAN
------------------------MTNSSFFCPVYKDLEPFTYFFYLVFLVGIIGSCFATWAFIQKNTNHRCVSIYLINLLTADFLLTLALPVKIVVDLGVAPWKLKIFHCQVTACLIYINMYLSIIFLAFVSIDRCLQLTHSCIYRIQEPGFAKMISTVVWLMVLLIMVPNMMIPIKD-SN---VGCMEF--KKEFGRNWHLLTNFICVAIFLNFSAIILISNCLVIRQLYR-----NKDNENYPNVKKALINILLVTTGYIICFVPYHIVRIPYTLSQTEISLFKAKEATLLLAVSNLCFDPILYYHLSKAFRSKVTETFASPKETKAQKEKLRC------------
->OPS3_DROME
-ARLSAETRLLGWNVPPEELRHIPEHWLTYPEPPESMNYLLGTLYIFFTLMSMLGNGLVIWVFSAAKSLRTPSNILVINLAFCDFMMMVKTPIFIYNSFHQG-YALGHLGCQIFGIIGSYTGIAAGATNAFIAYDRFNVITRPM-EGKMTHGKAIAMIIFIYMYATPWVVACYTETWGRFPEGYLTSCTFD--YLTDNFDTRLFVACIFFFSFVCPTTMITYYYSQIVGHVFSHNVESNVDKNKETAEIRIAKAAITICFLFFCSWTPYGVMSLIGAFGDKTLLTPGATMIPACACKMVACIDPFVYAISHPRYRMELQKRCPWLALNEKAPESSAVEPQQTTAA----
->CCR5_MOUSE
-DDLYKELAFYSNSTEIPLQDSNFCSTVEGPLLTSFKAVFMPVAYSLIFLLGMMGNILVLVILERHRHTRSSTETFLFHLAVADLLLVFILPFAVAEGSVG--WVLGTFLCKTVIALHKINFYCSSLLVACIAVDRYLAIVHAVAYRRRRLLSIHITCTAIWLAGFLFALPELLFAKVGQ-ND-LPQCTFSQENEAETRAWFTSRFLYHIGGFLLPMLVMGWCYVGVVHRL--------LQAQRRPQRQKAVRVAILVTSIFFLCWSPYHIVIFLDTLERLKGYLSVAITLCEFLGLAHCCLNPMLYTFAGVKFRSDLSRLLTKLGCAG---PASLC--------PNWR
->5H1F_CAVPO
--------------MDFLNSSD-QNLTSEELLHRMPSKILVSLTLSGLALMTTTINSLVIAAIIVTRKLHHPANYLICSLAVTDFLVAVLVMPFSIVYIVRESWIMGQVLCDIWLSVDIICCTCSILHLSAIALDRYRAITDAVYARKRTPKQAGIMITIVWIISVFISMPPLFWR----S-R--DECIIK-------HDHIVSTIYSTFGAFYIPLVLILILYYKIYKAAKTLLRHWRRQKISGTRERKAATTLGLILGAFVICWLPFFVKELVVNVCEKCKISEEMANFLAWLGYLNSLINPLIYTIFNEDFKKAFQKLVRCQY-----------------------
->OPSD_MESBI
-MNGTEGLNFYVPFSNHTGVVRSPFEYPQYYLAEPWQFSVLAAYMFLLIMLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVANLFMVLGGFTTTLYTSMHAYFIFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGLALTWIMALACAAPPLVGWSRYIPEGMQCSCGVDYYTPSPEVNNESFVVYMFVVHFSIPMVIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVVIMVVAFLICWVPYASVAFYIFTHQGSNFGPIFMTIPSFFAKSSAIYNPVIYIMMNKQFRNCMLTTLCCGRNPLGDDEVSTTASKTETSQVAPA
->PI2R_RAT
-GRPDGPPSITPESPLIVGGREWQGMAGSCWNITYVQDSVGPATSTLMFVAGVVGNGLALGILGARRRHPSAFAVLVTGLAVTDLLGTCFLSPAVFVAYARNSAHGGTMLCDTFAFAMTFFGLASTLILFAMAVERCLALSHPYYAQLDGPRCARLALPAIYAFCCLFCSLPLLGLGEHQQYCPGSWCFIR---MRSPQPGGCAFSLAYASLMALLVTSIFFCNGSVTLSLCHMRRHFVPTSRAREDEVYHLILLALMTGIMAVCSLPLTIRGFTQAIAPDS--REMGDLHAFRFNAFNPILDPWVFILFRKAVFQRLKFWLCCLCARSVHGDLQTPRRDTLAPDSLQA
->IL8A_PANTR
-PQMWDFDDLNFTGMPPTDEGYSPC----RLETETLNKYVVIITYALVFLLSLLGNSLVMLVILYSRVGRSVTDVYLLNLALADLLFALTLPIWAASKVNG--WIFGTFLCKVVSLLKEVNFYSGILLLACISVDRYLAIVHATRTLTQKRHLVKFVCLGCWGLSMNLSLPFFLFRQAYH-NS-SPVCYEV-LGNDTAKWRMVLRILPHTFGFIVPLFVMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLADTLMRTQNNIGRALDATEILGFLHSCLNPIIYAFIGQNFRHGFLKILAMHGLVSKEFLARHR------------
->CCR5_HUMAN
-EDLFWELDRLDNYNDTSLVENHLCPATEGPLMASFKAVFVPVAYSLIFLLGVIGNVLVLVILERHRQTRSSTETFLFHLAVADLLLVFILPFAVAEGSVG--WVLGTFLCKTVIALHKVNFYCSSLLLACIAVDRYLAIVHAVAYRHRRLLSIHITCGTIWLVGFLLALPEILFAKVSQ-NN-LPRCTFSQENQAETHAWFTSRFLYHVAGFLLPMLVMGWCYVGVVHRL--------RQAQRRPQRQKAVRVAILVTSIFFLCWSPYHIVIFLDTLARLKGSLPVAITMCEFLGLAHCCLNPMLYTFAGVKFRSDLSRLLTKLGCTG---PASLC--------PSWR
->CB2R_HUMAN
-----MEECWVTEIANGSKDGLDSNPMKDYMILSGPQKTAVAVLCTLLGLLSALENVAVLYLILSSHQRRKPSYLFIGSLAGADFLASVVFACSFVNFHVFHG-VDSKAVFLLKIGSVTMTFTASVGSLLLTAIDRYLCLRYPPYKALLTRGRALVTLGIMWVLSALVSYLPLMGWTC-----CPRPCSEL------FPLIPNDYLLSWLLFIAFLFSGIIYTYGHVLWKAHQHSGHQVPGMARMRLDVRLAKTLGLVLAVLLICWFPVLALMAHSLATTLSDQVKKAFAFCSMLCLINSMVNPVIYALRSGEIRSSAHHCLAHWKKCVRGLGSEAKVTETEADGKITP
->AA2B_HUMAN
-------------------------------MLLETQDALYVALELVIAALSVAGNVLVCAAVGTANTLQTPTNYFLVSLAAADVAVGLFAIPFAITISLG--FCTDFYGCLFLACFVLVLTQSSIFSLLAVAVDRYLAICVPLYKSLVTGTRARGVIAVLWVLAFGIGLTPFLGWNSKDT-T-LVKCLFE-----NVVPMSYMVYFNFFGCVLPPLLIMLVIYIKIFLVACRQ---MDHSRTTLQREIHAAKSLAMIVGIFALCWLPVHAVNCVTLFQPAQNKPKWAMNMAILLSHANSVVNPIVYAYRNRDFRYTFHKIISRYLLCQADVKSGNGLGVGL-------
->MSHR_HUMAN
-AVQGSQRRLLGSLNSTPTAIPQLGLAANQTGARCLEVSISDGLFLSLGLVSLVENALVVATIAKNRNLHSPMYCFICCLALSDLLVSGTNVLETAVILLLEAAAVLQQLDNVIDVITCSSMLSSLCFLGAIAVDRYISIFYALYHSIVTLPRAPRAVAAIWVASVVFSTLFIAYYY----------------------DDHVAVLLCLVVFFLAMLVLMAVLYVHMLARACQHIARKRQRPVHQGFGLKGAVTLTILLGIFFLCWGPFFLHLTLIVLCPEHGCIFKNFNLFLALIICNAIIDPLIYAFHSQELRRTLKEVLTCSW-----------------------
->ETBR_PIG
-SSSPPQMPKGGRMAGPPARTLTPPPCEGPIEIKDTFKYINTVVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIIIDIPINVYKLLAEDWPFGVEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEALGFDMITRI--LRICLLHQKTAFMQFYKTAKDWWLFSFYFCLPLAITAFFYTLMTCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKLTLYDQSFLLVLDYIGINMASLNSCINPIALYLVSKRFKNCFKSCLCCWCQSFE-EKQSLEFKANDHGYDNFR
->OAR2_LOCMI
-SSAAEEPQDALVGGDACGGRRPPSVLGVRLAVPEWEVAVTAVSLSLIILITIVGNVLVVLSVFTYKPLRIVQNFFIVSLAVADLTVAVLVMPFNVAYSLIQRWVFGIVVCKMWLTCDVLCCTASILNLCAIALDRYWAITDPIYAQKRTLRRVLAMIAGVWLLSGVISSPPLIGWNDW-N-D--TPCQLT--------EEQGYVIYSSLGSFFIPLFIMTIVYVEIFIATKRRPVYEEKQRISLSKERRAARTLGIIMGVFVVCWLPFFLMYVIVPFCNPSKPSPKLVNFITWLGYINSALNPIIYTIFNLDFRRAFKKLLHFKT-----------------------
->MC5R_HUMAN
--MNSSFHLHFLDLNLNATEGNLSGPNVKNKSSPCEDMGIAVEVFLTLGVISLLENILVIGAIVKNKNLHSPMYFFVCSLAVADMLVSMSSAWETITIYLLNNDAFVRHIDNVFDSMICISVVASMCSLLAIAVDRYVTIFYALYHHIMTARRSGAIIAGIWAFCTGCGIVFILYYS----------------------EESTYVILCLISMFFAMLFLLVSLYIHMFLLARTH-RIPGASSARQRTSMQGAVTVTMLLGVFTVCWAPFFLHLTLMLSCPQNSRFMSHFNMYLILIMCNSVMDPLIYAFRSQEMRKTFKEIICCRGFRIACSFPRRD------------
->5H6_RAT
------------MVPEPGPVNSSTPAWGPGPPPAPGGSGWVAAALCVVIVLTAAANSLLIVLICTQPARNTS-NFFLVSLFTSDLMVGLVVMPPAMLNALYGRWVLARGLCLLWTAFDVMCCSASILNLCLISLDRYLLILSPLYKLRMTAPRALALILGAWSLAALASFLPLLLGWH---E-APGQCRLL--------ASLPFVLVASGVTFFLPSGAICFTYCRILLAARKQMESRRLATKHSRKALKASLTLGILLGMFFVTWLPFFVANIAQAVCDC--ISPGLFDVLTWLGYCNSTMNPIIYPLFMRDFKRALGRFLPCVHCPPEHRPALPPAVPDQASACSRC
->5H1D_CAVPO
-SPPNQSEEGLPQEASNRSLNATETPGDWDPGLLQALKVSLVVVLSIITLATVLSNAFVLTTILLTRKLHTPANYLIGSLATTDLLVSILVMPISIAYTTTRTWNFGQILCDIWVSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGHAGAMIAAVWVISICISIPPLFWR----Q-E--SDCLVN-------TSQISYTIYSTCGAFYIPSVLLIILYSRIYRAARSRKLALERKRISAARERKATKTLGIILGAFIVCWLPFFVVSLVLPICRDSWIHPALFDFFTWLGYLNSLINPIIYTVFNEDFRQAFQKVVHFRKAS---------------------
->NMBR_MOUSE
-SNLSFPTEANESELVPEVWEKDFLPDSDGTTAELVIRCVIPSLYLIIISVGLLGNIMLVKIFLTNSAMRNVPNIFISNLAAGDLLLLLTCVPVDASRYFFDEWVFGKLGCKLIPAIQLTSVGVSVFTLTALSADRYRAIVNPMMQTSGVLLWTSLKAVGIWVVSVLLAVPEAVFSEVARSS--FTACIPY---QTDELHPKIHSVLIFLVYFLIPLVIISIYYYHIAKTLIKSLPGNEHTKKQMETRKRLAKIVLVFVGCFVFCWFPNHVLYLYRSFNYKELGHMIVTLVARVLSFSNSCVNPFALYLLSESFRKHFNSQLCCGRKSYPERSTSYLMTSLKSNTKNVV
->OPSD_SHEEP
-MNGTEGPNFYVPFSNKTGVVRSPFEAPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLVGWSRYIPQGMQCSCGALYFTLKPEINNESFVIYMFVVHFSIPLIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWLPYAGVAFYIFTHQGSDFGPIFMTIPAFFAKSSSVYNPVIYIMMNKQFRNCMLTTLCCGKNPLGDDEASTTVSKTETSQVAPA
->OPSD_GALML
-MNGTEGENFYVPMSNKTGVVRNPFEYPQYYLADHWMFAVLAAYMFFLIITGFPVNFLTLFVTIQNKKLRQPLNYILLNLAVANLFMVFGGFTTTLITSMNGYFVFGSTGCNLEGFFATLGGEISLWSLVVLAIERYVVVCKPMSNFRFGSQHAIAGVSLTWVMAMACAAPPLVGWSRYIPEGLQCSCGIDYYTPKPEINNVSFVIYMFVVHFSIPLTIIFFCYGRLVCTVKAAAAQQQESETTQRAEREVTRMVVIMVIGFLICWLPYASVALYIFNNQGSEFGPVFMTIPSFFAKSSALYNPLIYILMNKQFRNCMITTLCCGKNPFEEEESTSASSVSSSQVSPAA
->A1AA_RAT
-----------MVLLSENASEGSNCT-HPPAPVNISKAILLGVILGGLIIFGVLGNILVILSVACHRHLHSVTHYYIVNLAVADLLLTSTVLPFSAIFEILGYWAFGRVFCNIWAAVDVLCCTASIMGLCIISIDRYIGVSYPLYPTIVTQRRGVRALLCVWVLSLVISIGPLFGWRQP--AP--TICQIN--------EEPGYVLFSALGSFYVPLAIILVMYCRVYVVAKREAKNFSVRLLKFSREKKAAKTLGIVVGCFVLCWLPFFLVMPIGSFFPDFKPSETVFKIVFWLGYLNSCINPIIYPCSSQEFKKAFQNVLRIQCLRRRQSSKHALSQ----------
->GHSR_RAT
-SEEPEP-NVTLDLDWDASPGNDSLPDELLPLFPAPLLAGVTATCVALFVVGISGNLLTMLVVSRFRELRTTTNLYLSSMAFSDLLIFLCMPLDLVRLWQYRPWNFGDLLCKLFQFVSESCTYATVLTITALSVERYFAICFPLAKVVVTKGRVKLVILVIWAVAFCSAGPIFVLVG---T-D-TNECRAT---FAVRSGLLTVMVWVSSVFFFLPVFCLTVLYSLIGRKLWRRD--AVGASLRDQNHKQTVKMLAVVVFAFILCWLPFHVGRYLFSKSFEPQISQYCNLVSFVLFYLSAAINPILYNIMSKKYRVAVFKLLGFESFSQRKLSTLKDKSSINT------
->O1E2_HUMAN
--------------MMGQNQTSISDFLLLGLPIQPEQQNLCYALFLAMYLTTLLGNLLIIVLIRLDSHLHTPVYLFLSNLSFSDLCFSSVTMPKLLQNMQNQDPSIPYADCLTQMYFFLYFSDLESFLLVAMAYDRYVAICFPMYTAIMSPMLCLSVVALSWVLTTFHAMLHTLLMARL---CPHFFCDMSKLACSDTRVNEWVIFIMGGLILVIPFLLILGSYARIVSSI--------LKVPSSKGICKAFSTCGSHLSVVSLFYGTVIGLYLCPSANS---STLKDTVMAMMYTVVTPMLTPFIYSLRNRDMKGALERVICKRKNPFLL------------------
->OPSD_SARSL
-MNGTEGPYFYVPMVNTSGIVRSPYEYPQYYLVNPAAYARLGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGLAFTWLMALACAAPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFTVPLMVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVIMMVVAFLVCWLPYASVAWWIFTHQGSEFGPVFMTIPAFFAKSSSIYNPMIYICLNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->DOP2_DROME
-SATSATLSPAMVATGGGGTTTPEPDLSEFLEALPNDRVGLLAFLFLFSFATVFGNSLVILAVIRERYLHTATNYFITSLAVADCLVGLVVMPFSALYEVLENWFFGTDWCDIWRSLDVLFSTASILNLCVISLDRYWAITDPFYPMRMTVKRAAGLIAAVWICSSAISFPAIVWWRAARP----YKCTFT--------EHLGYLVFSSTISFYLPLLVMVFTYCRIYRAAVIQMGKLSRKLAKFAKEKKAAKTLGIVMGVFIICWLPFFVVNLLSGFCIECEHEEIVSAIVTWLGWINSCMNPVIYACWSRDFRRAFVRLLCMCCPRKIRRKYQPTFATRRCYSTCSL
->GASR_RABIT
-VASLCRPGGPLLNNSGTGNLSCEPPRIRGAGTRELELAIRVTLYAVIFLMSVGGNILIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVICKAVSYLMGVSVSVSTLSLVAIALERYSAICRPLARVWQTRSHAARVILATWLLSGLLMVPYPVYTAVQP---V-LQCVHR---WPSARVRQTWSVLLLLLLFFVPGVVMAVAYGLISRELYLGSGPPRPAQAKLLAKKRVVRMLLVIVVLFFMCWLPVYSANTWRAFDGPGALSGAPISFIHLLSYASACVNPLVYCFMHRRFRQACLDTCARCCPRPPRARPRPLPSIASLSRLSYT
->IL8B_CANFA
-G--DIDNYTYNTEMPIIPADSAPC----RPESLDINKYAVVVIYVLVFVLNLLGNSLVIMVVLYSRVSHSVTDVYLLNLAIADLLFALTLPIWAVSKVKG--WIFGTPLCKIVSLLKEVNFYSGILLLASISMDRYLAIVHATRRLTQKKHWVKFICLGIWALSLILSLPIFVFRRAIN-YS-SPVCYED-MGTNTTKLRIVMRALPQTFGFIVPLMIMLFCYGLTLRTL---------FEAHMGQKHRAMRVIFAVVLVFLLCWLPYNLVADTLMRLQAINDIGRALDATEILGFFHSCLNPLIYAFIGQKFRHGLLKIMAFHGLISKEYLPKDS------------
->KI01_RAT
----------------MDNTTTTEPPKQPCTRNTLITQQIIPMLYCVVFITGVLLNGISGWIFFYVPS-SKSFIIYLKNIVVADFLMGLTFPFKVLSDSGLGPWQLNVFVFRVSAVIFYVNMYVSIAFFGLISFDRYYKIVKPLVSIVQSVNYSKVLSVLVWVLMLLLAVPNIILTNQS-TN---IQCMEL--KNELGRKWHKASNYVFVSIFWIVFLLLTVFYMAITRKIFK----LKSRKNSISVKRKSSRNIFSIVLAFVACFAPYHVARIPYTKSQTEETLLYTKEFTLLLSAANVCLDPISISSYASRLEKS--------------------------------
->O18793
-RSRFIRNTNGSGEEVTTFFDYDYGAPCHKFDVKQIGAQLLPPLYSLVFIFGFVGNMLVVLILINCKKLKSLTDIYLLNLAISDLLFLITLPLWAHSAANE--WVFGNAMCKLFTGLYHIGYLGGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWLVAVFASVPGIIFTKCQE-ED-VYICGPY----FPRGWNNFHTIMRNILGLVLPLLIMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWTPYNIVILLNTFQEFFRQLDQATQVTETLGMTHCCINPIIYAFVGEKFRRYLSMFFRKYITKRFCKQCPVFVTSTNTPSTAEQ
->NY1R_HUMAN
-TLFSQVENHSVHSNFSEKNAQLLAFENDDCHLPLAMIFTLALAYGAVIILGVSGNLALIIIILKQKEMRNVTNILIVNLSFSDLLVAIMCLPFTFVYTLMDHWVFGEAMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPNNRHAYVGIAVIWVLAVASSLPFLIYQVMTDKD--KYVCFDQ---FPSDSHRLSYTTLLLVLQYFGPLCFIFICYFKIYIRLKRRNMMMRDNKYRSSETKRINIMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->B2AR_FELCA
-----MGQPGNRSVFLLAPNGSHAPDQDGTQERNDAWVVGMGIVMSLIVLAIVFGNVLVITAIARFERLQTVTNYFITSLACADLVMGLAVVPFGASHILMKMWTFGNFWCEFWTSIDVLCVTASIETLCVIAVDRYFAITSPFYQSLLTKNKARVVILMVWIVSGLTSFLPIQMHWYRAI-N--TCCDFF--------TNQAYAIASSIVSFYLPLVVMVFVYSRVFQVAQRQDGRHRRASKFCLKEHKALKTLGIIMGTFTLCWLPFFIVNIVHVIQDNL-IPKEVYILLNWVGYVNSAFNPLIYCRSP-DFRIAFQELLCLRRSSLKAYGNGYSDYAGEHSGGPLG
->OLF1_RAT
--------------MTEENQTVISQFLLLFLPIPSEHQHVFYALFLSMYLTTVLGNLIIIILIHLDSHLHTPMYLFLSNLSFSDLCFSSVTMPKLLQNMQSQVPSIPFAGCLTQLYFYLYFADLESFLLVAMAYDRYVAICFPLYMSIMSPKLCVSLVVLSWVLTTFHAMLHTLLMARL---SPHFFCDISKLSCSDTHVNELVIFVMGGLVIVIPFVLIIVSYARVVASI--------LKVPSVRGIHKIFSTCGSHLSVVSLFYGTIIGLYLCPSANN---STVKETVMAMMYTVVTPMLNPFIYSLRNRDMKEALIRVLCKKKITFCL------------------
->GASR_HUMAN
-GASLCRPGAPLLNSSSVGNLSCEPPRIRGAGTRELELAIRITLYAVIFLMSVGGNMLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVICKAVSYLMGVSVSVSTLSLVAIALERYSAICRPLARVWQTRSHAARVIVATWLLSGLLMVPYPVYTVVQP---V-LQCVHR---WPSARVRQTWSVLLLLLLFFIPGVVMAVAYGLISRELYLGPGPSRPTQAKLLAKKRVVRMLLVIVVLFFLCWLPVYSANTWRAFDGPGALSGAPISFIHLLSYASACVNPLVYCFMHRRFRQACLETCARCCPRPPRARPRALPSIASLSRLSYT
->CKR2_MOUSE
-FTRSIQELDEGATTPYDYDDGEPC---HKTSVKQIGAWILPPLYSLVFIFGFVGNMLVIIILIGCKKLKSMTDIYLLNLAISDLLFLLTLPFWAHYAANE--WVFGNIMCKVFTGLYHIGYFGGIFFIILLTIDRYLAIVHAVALKARTVTFGVITSVVTWVVAVFASLPGIIFTKSKQ-DD-HYTCGPY----FTQLWKNFQTIMRNILSLILPLLVMVICYSGILHTL--------FRCRNEKKRHRAVRLIFAIMIVYFLFWTPYNIVLFLTTFQESLKHLDQAMQVTETLGMTHCCINPVIYAFVGEKFRRYLSIFFRKHIAKRLCKQCPVFV-------SSTF
->CKRA_MOUSE
-PTEQVSWGLYSGYDEEAYSVGPLPELCYKADVQAFSRAFQPSVSLMVAVLGLAGNGLVLATHLAARRTRSPTSVHLLQLALADLLLALTLPFAAAGALQG--WNLGSTTCRAISGLYSASFHAGFLFLACINADRYVAIARALGQRPSTPSRAHLVSVFVWLLSLFLALPALLFS--RD-RE-QRRCRLIFPESLTQTVKGASAVAQVVLGFALPLGVMAACYALLGRTL---------LAARGPERRRALRVVVALVVAFVVLQLPYSLALLLDTADLLAKRKDLALLVTGGLTLVRCSLNPVLYAFLGLRFRRDLRRLLQGGGCSPKPNPRGRCSCSAPTETHSLS
->OPSD_GOBNI
-MNGTEGPFFYIPMVNTTGVVRSPYEYPQYYLVNPAAYACLGAYMFFLILVGFPVNFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVFGGFTTTIYTSMHGYFVLGRLGCNIEGFFATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGVAFTWFMASACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFTVHFCIPLAVVGFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVIGFLVCWLPYASVAWYIFTHQGSEFGPLFMTIPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTVSSSSVSPAA--
->AG2R_PIG
-------MILNSSTEDSIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPTIIHRNVFF-TN--TVCAFH-YESQNSTLPVGLGLTKNILGFLFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFKIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICLAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSSLSTRPSE-------N
->BONZ_MACMU
------MAEYDHYEDDGFLNSFNDSSQEEHQDFLQFRKVFLPCMYLVVFVCGLVGNSLVLVISIFYHKLQSLTDVFLVNLPLADLVFVCTLPFWAYAGIHE--WIFGQVMCKTLLGVYTINFYTSMLILTCITVDRFIVVVKATNQQAKRMTWGKVICLLIWVISLLVSLPQIIYGNVFNLD--KLICGYH-----DEEISTVVLATQMTLGFFLPLLAMIVCYSVIIKTL---------LHAGGFQKHRSLKIIFLVMAVFLLTQTPFNLVKLIRSTHWEYTSFHYTIIVTEAIAYLRACLNPVLYAFVSLKFRKNFWKLVKDIGCLPYLGVSHQWKTFSASHNVEAT
->PE24_RABIT
---------------------MSTPVANASASSMPELLNNPVTIPAVMFIFGVVGNLVAIVVLCKSRKKETTFYTLVCGLAVTDLLGTLLVSPVTIATYMKGQWPGGQALCDYSTFILLFFGLSGLSIICAMSIERYLAINHAYYSHYVDKRLAGLTLFAVYASNVLFCALPNMGLGRSRLQFPDTWCFID---WRTNVTAHAAFSYMYAGFSSFLILATVLCNVLVCGALLRMAAAAASFRRIAGAEIQMVILLIATSLVVLICSIPLVVRVFINQLYQPDEISQNPDLQAIRIASVNPILDPWIYILLRKTVLSKAIEKIKCLFCRIGGSRRDRSRRTSSAMSTHSR
->FSHR_MACFA
-FDMTYAEFDYDLCNEVVDVTCSPKPDAFNPCEDILGYNILRVLIWFISILAITGNIIVLVTLTTSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLDCKVHVRHAASVMVMGWIFAFAAALFPIFGISSY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYTHIYLTVRNP------NIVSSSSDTRIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKAKILLVLFYPINSCANPFLYAIFTKNFRRDFFILLSKFGCYEMQAQIYRTNSHPRNGHCSSA
->ACM1_DROME
--------------MYGNQTNGTIGFETKGPRYSLASMVVMGFVAAILSTVTVAGNVMVMISFKIDKQLQTISNYFLFSLAIADFAIGTISMPLFAVTTILGYWPLGPIVCDTWLALDYLASNASVLNLLIINFDRYFSVTRPLYRAKGTTNRAAVMIG-AWGISLLLWPPWIYSWPYIE-VP-KDECYIQ-----FIETNQYITFGTALAAFYFPVTIMCFLYWRIWRETKKRNPNKKKKSQEKRQESKAAKTLSAILLSFIITWTPYNILVLIKPLTTCSCIPTELWDFFYALCYINSTINPMSYALCNATFRRTYVRILTCKWHTRNREGMVRG------------
->BRS3_MOUSE
-QTLISITNDTETSSSVVSNDTTHKGWTGDNSPGIEALCAIYITYAGIISVGILGNAILIKVFFKTKSMQTVPNIFITSLAFGDLLLLLTCVPVDATHYLAEGWLFGKVGCKVLSFIRLTSVGVSVFTLTILSADRYKAVVKPLRQPPNAILKTCAKAGGIWIVSMIFALPEAIFSNVYTVT--FESCNSY---ISERLLQEIHSLLCFLVFYIIPLSIISVYYSLIARTLYKSIPTQSHARKQIESRKRIAKTVLVLVALFALCWLPNHLLYLYHSFTYESDVPFVIIIFSRVLAFSNSCVNPFALYWLSKTFQQHFKAQLCCLKAEQPEPPLGDIMGRVPATGSAHV
->OPSD_MUGCE
-MNGTEGPYFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILLGFPINFLTLYVTIEHKKLRTPLNYILLNLAVANLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIALWSLVVLAVERWMVVCKPISNFRFGENHAIMGLAFTWVMASACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFLIPLVVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVVAFLICWCPYAGVAWYIFTHQGSEFGPLFMTFPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->C5AR_HUMAN
-SFNYTTPDYGHYDDKDTLDLNTPVD--KTSNTLRVPDILALVIFAVVFLVGVLGNALVVWVTAFEAK-RTINAIWFLNLAVADFLSCLALPILFTSIVQHHHWPFGGAACSILPSLILLNMYASILLLATISADRFLLVFKPICQNFRGAGLAWIACAVAWGLALLLTIPSFLYRVVRE-PP--VLCGVD-YS-HDKRRERAVAIVRLVLGFLWPLLTLTICYTFILLRT---------WSRRATRSTKTLKVVVAVVASFFIFWLPYQVTGIMMSFLEPSLLLNKLDSLCVSFAYINCCINPIIYVVAGQGFQGRLRKSLPSLLRNVLTEESVVRSTVD--------
->MAS_RAT
-------MDQSNMTSFAEEKAMNTSSRNASLGTSHPPIPIVHWVIMSISPLGFVENGILLWFLCFRMR-RNPFTVYITHLSIADISLLFCIFILSIDYALDYESSGHYYTIVTLSVTFLFGYNTGLYLLTAISVERCLSVLYPIYRCHRPKHQSAFVCALLWALSCLVTTMEYVMCI-DSHS--QSDC-----------RAVIIFIAILSFLVFTPLMLVSSTILVVKIRK----------NTWASHSSKLYIVIMVTIIIFLIFAMPMRVLYLLYYEYW--STFGNLHNISLLFSTINSSANPFIYFFVGSSKKKRFRESLKVVLTRAFKDEMQPRTVSIETVV----
->GPRC_RAT
-NLSGLPRDCIEAGTPENISAAVPSQGSVVESEPELVVNPWDIVLCSSGTLICCENAVVVLIIFHSPSLRAPMFLLIGSLALADLLAG-LGLIINFVFA-Y--LLQSEATKLVTIGLIVASFSASVCSLLAITVDRYLSLYYALYHSERTVTFTYVMLVMLWGTSTCLGLLPVMGWNCL-R--DESTCSVV-------RPLTKNNAAILSISFLFMFALMLQLYIQICKIVMRHIALHFLATSHYVTTRKGISTLALILGTFAACWMPFTLYSLIADY----TYPSIYTYATLLPATYNSIINPVIYAFRNQEIQKALCLICCGCIPNTLSQRARSP------------
->V1AR_HUMAN
-SSPWWPLATGAGNTSREAEALGEGNGPPRDVRNEELAKLEIAVLAVTFAVAVLGNSSVLLALHRTPRKTSRMHLFIRHLSLADLAVAFFQVLPQMCWDITYRFRGPDWLCRVVKHLQVFGMFASAYMLVVMTADRYIAVCHPLKTLQQPARRSRLMIAAAWVLSFVLSTPQYFVFSMIETK--ARDCWAT---FIQPWGSRAYVTWMTGGIFVAPVVILGTCYGFICYNIWCNFLLVSSVKSISRAKIRTVKMTFVIVTAYIVCWAPFFIIQMWSVWDPMSESENPTITITALLGSLNSCCNPWIYMFFSGHLLQDCVQSFPCCQNMKEKFNKEDTTFYSNNRSPTNS
->A1AA_HUMAN
-----------MVFLSGNASDSSNCT-QPPAPVNISKAILLGVILGGLILFGVLGNILVILSVACHRHLHSVTHYYIVNLAVADLLLTSTVLPFSAIFEVLGYWAFGRVFCNIWAAVDVLCCTASIMGLCIISIDRYIGVSYPLYPTIVTQRRGLMALLCVWALSLVISIGPLFGWRQP--AP--TICQIN--------EEPGYVLFSALGSFYLPLAIILVMYCRVYVVAKREAKTFSVRLLKFSREKKAAKTLGIVVGCFVLCWLPFFLVMPIGSFFPDFKPSETVFKIVFWLGYLNSCINPIIYPCSSQEFKKAFQNVLRIQCLCRKQSSKHALSQ----------
->CML2_RAT
-PSNSTPLALNLSLALREDAPGNLTGDLSEHQQYVIALFLSCLYTIFLFPIGFVGNILILVVNISFREKMTIPDLYFINLAAADLILVADSLIEVFNLDEQ--YYDIAVLCTFMSLFLQINMYSSVFFLTWMSFDRYLALAKAMCGLFRTKHHARLSCGLIWMASVSATLVPFTAVHLR-A----CFCFA---------DVREVQWLEVTLGFIVPFAIIGLCYSLIVRALIR----AHRHRGLRPRRQKALRMIFAVVLVFFICWLPENVFISVHLLQWAQHAYPLTGHIVNLAAFSNSCLSPLIYSFLGETFRDKLRLYVAQKTSLPALNRFCHADSTEQSDVKFSS
->GPRF_HUMAN
-----MDPEETSVYLDYYYATSPNSDIRETHSHVPYTSVFLPVFYTAVFLTGVLGNLVLMGALHFKPGSRRLIDIFIINLAASDFIFLVTLPLWVDKEASLGLWRTGSFLCKGSSYMISVNMHCSVLLLTCMSVDRYLAIVWPVSRKFRRTDCAYVVCASIWFISCLLGLPTLLSRELT-IDD-KPYCAEK----KATPIKLIWSLVALIFTFFVPLLSIVTCYCCIARKLCAH---YQQSGKHNKKLKKSIKIIFIVVAAFLVSWLPFNTFKFLAIVSGLRAILQLGMEVSGPLAFANSCVNPFIYYIFDSYIRRAIVHCLCPCLKNYDFGSSTETALSTFIHAEDFA
->CKR5_TRAFR
-----MDYQVSSPTYDIDYYTSEPC---QKVNVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->GP68_HUMAN
-----------------MGNITADNSSMSCTIDHTIHQTLAPVVYVTVLVVGFPANCLSLYFGYLQIKARNELGVYLCNLTVADLFYICSLPFWLQYVLQHDNWSHGDLSCQVCGILLYENIYISVGFLCCISVDRYLAVAHPFFHQFRTLKAAVGVSVVIWAKELLTSIYFLMHEEV--QH---RVCFEHPIQAWQRAIQRAINYYRFLVGFLFPICLLLASYQGILRAVRR------SHGTQKSRKDQIQRLVLSTVVIFLACFLPYHVLLLVRSVWEASKGVFNAYHFSLLLTSFNCVADPVLYCFVSETTHRDLARLRGACLAFLTCSRTGRAAPEASGKSGAQG
->YYI3_CAEEL
-SDPNAEDLYITMTPSVSTENDTTVWATEEPAAIVWRHPLLAIALFSICLLTVAGNCLVVIAVCTKKYIWVTRLYLIISLAIADLIVGVIVMPMNSLFEIANHWLFGLMMCDVFHAMDILASTASIWNLCVISLDRYMAGQDPIYRDKVSKRRILMAILSVWVLSAILSFPGIIWWWRTSP-H--SQCLFT--------DSKMYVSFSSLVSFYIPLFLILFAYGKVYIIATRHKLNKSRQMMRYVHEQRAARTLSIVVGAFILCWTPFFVFTPLTAFCESCSNKETIFTFVTWAGHLNSMLNPLIYSRFSRDFRRAFKQILTCQRQQKVKTAFKTPLISVTQMAPRFS
->CKR1_MACMU
-METPNTTEDYDMITEFDYGDATPC---HKVNERAILAQLLPPLYSLVFVIGVVGNLLVVLVLVQYKRLKNMTNIYLLNLAISDLLFLFTLPFLIYYKSTDD-WIFGDAMCKILSGFYYTGLYSEIFFIILLTIDRYLAIVHAVALRARTVTFGVITSIIIWALAILASSPLMYFSKTQW-NI-RHSCNIHFPYESFQQWKLFQALKLNLFGLVLPLLVMIVCYTGIIKIL---------LRRPNEKKSKAVRLIFVIMIIFFLFWTPYNLTELISVFQEFLRQLDLAMEVTEVIANMHCCVNPVIYAFAGERFRKYLRQLFHRRVAVHLVKWLPFLV-------SSTS
->BRB2_RAT
-IEMFNITTQALGSAHNGTFSEVNC---PDTEWWSWLNAIQAPFLWVLFLLAALENIFVLSVFCLHKTNCTVAEIYLGNLAAADLILACGLPFWAITIANNFDWLFGEVLCRVVNTMIYMNLYSSICFLMLVSIDRYLALVKTMMGRMRGVRWAKLYSLVIWSCTLLLSSPMLVFRTMKD-HN--TACVIV---YPSRSWEVFTNMLLNLVGFLLPLSIITFCTVRIMQVLRNN---EMKKFKEVQTEKKATVLVLAVLGLFVLCWFPFQISTFLDTLLRLGRAVDIVTQISSYVAYSNSCLNPLVYVIVGKRFRKKSREVYQAICRKGGCMGESVQLRTS-------I
->A1AD_RAT
-TGSGEDNQSSTGEPGAAASGEVNGSAAVGGLVVSAQGVGVGVFLAAFILTAVAGNLLVILSVACNRHLQTVTNYFIVNLAVADLLLSAAVLPFSATMEVLGFWAFGRTFCDVWAAVDVLCCTASILSLCTISVDRYVGVRHSLYPAIMTERKAAAILALLWAVALVVSVGPLLGWKEP--VP--RFCGIT--------EEVGYAIFSSVCSFYLPMAVIVVMYCRVYVVARSTHTLLSVRLLKFSREKKAAKTLAIVVGVFVLCWFPFFFVLPLGSLFPQLKPSEGVFKVIFWLGYFNSCVNPLIYPCSSREFKRAFLRLLRCQCRRRRRR--LWAASTGD-ARSDCA
->TSHR_BOVIN
-LQAFDSHYDYTVCGGSEDMVCTPKSDEFNPCEDIMGYKFLRIVVWFVSLLALLGNVFVLVILLTSHYKLTVPRFLMCNLAFADFCMGLYLLLIASVDLYTQSWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWHAITFAMLDRKIRLWHAYVIMLGGWVCCFLLALLPLVGISSY----KVSICLPM-----TETPLALAYIILVLLLNIIAFIIVCACYVKIYITVRNP------HYNPGDKDTRIAKRMAVLIFTDFMCMAPISFYALSALMNKPLITVTNSKILLVLFYPLNSCANPFLYAIFTKAFQRDVFMLLSKFGICKRQAQAYRGSTGIRVQKVPPD
->MC3R_HUMAN
-NASCCLPSVQPTLPNGSEHLQAPFFSNQSSSAFCEQVFIKPEIFLSLGIVSLLENILVILAVVRNGNLHSPMYFFLCSLAVADMLVSVSNALETIMIAIVHSDQFIQHMDNIFDSMICISLVASICNLLAIAVDRYVTIFYALYHSIMTVRKALTLIVAIWVCCGVCGVVFIVYYS----------------------EESKMVIVCLITMFFAMMLLMGTLYVHMFLFARLHIAAADGVAPQQHSCMKGAVTITILLGVFIFCWAPFFLHLVLIITCPTNICYTAHFNTYLVLIMCNSVIDPLIYAFRSLELRNTFREILCGCNGMNLG------------------
->MSHR_SHEEP
-PVLGSQRRLLGSLNCTPPATLPLTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAMSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICSSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSVLSITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->CKR1_MOUSE
-MEISDFTEAYPTTTEFDYGDSTPC---QKTAVRAFGAGLLPPLYSLVFIIGVVGNVLMILVLMQHRRLQSMTSIYLFNLAVSDLVFLFTLPFWIDYKLKDD-WIFGDAMCKLLSGFYYLGLYSEIFFIILLTIDRYLAIVHAVALRARTVTLGIITSIITWALAILASMPALYFFKAQW-EF-HRTCSPHFPYKSLKQWKRFQALKLNLLGLILPLLVMIICYAGIIRIL---------LRRPSEKKVKAVRLIFAITLLFFLLWTPYNLSVFVSAFQDVLKHLDLAMQVTEVIAYTHCCVNPIIYVFVGERFWKYLRQLFQRHVAIPLAKWLPFLT-------SSIS
->A2AA_BOVIN
-----MGSLQPDAGNASWNGTEAPGGGARATPYSLQVTLTLVCLAGLLMLFTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKAWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIVTVWVISAVISFPPLISFEKKRP-S--PRCEIN--------DQKWYVISSSIGSFFAPCLIMILVYVRIYQIAKRRSGGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLTAIGCP--VPPTLFKFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->SSR3_MOUSE
-SEPMTLDPGNTSSTWPLDTTLGNTSAGASLTGLAVSGILISLVYLVVCVVGLLGNSLVIYVVLRHTSSPSVTSVYILNLALADELFMLGLPFLAAQNALSY-WPFGSLMCRLVMAVDGINQFTSIFCLTVMSVDRYLAVVHPTSARWRTAPVARTVSRAVWVASAVVVLPVVVFSGVPR-----STCHMQ-WPEPAAAWRTAFIIYMAALGFFGPLLVICLCYLLIVVKVRSTSCQAPACQRRRRSERRVTRMVVAVVALFVLCWMPFYLLNIVNVVCPLPPAFFGLYFLVVALPYANSCANPILYGFLSYRFKQGFRRILLRPSRRIRSQEPGSGEEDEEEEERREE
->P2YR_BOVIN
-TAFLADPGSPWGNSTVTSTAAVASPFKCALTKTGFQFYYLPAVYILVFIIGFLGNSVAIWMFVFHMKPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDAMCKLQRFIFHVNLYGSILFLTCISAHRYSGVVYPLSLGRLKKKNAVYISVLVWLIVVVGISPILFYSGTG----KTITCYDT-TSDEYLRSYFIYSMCTTVAMFCVPLVLILGCYGLIVRALIY------KDLDNSPLRRKSIYLVIIVLTVFAVSYIPFHVMKTMNLRARLDDRVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKASRRSEANLQSKSLSEFKQNGDTSL
->5H5B_RAT
-TPGIAFPPGPESCSDSPSSGRGGLILSGREPPFSAFTVLVVTLLVLLIAATFLWNLLVLVTILRVRAFHRVPHNLVASTAVSDVLVAALVMPLSLVSELSAGWQLGRSLCHVWISFDVLCCTASIWNVAAIALDRYWTITRHLYTLRTRRRASALMIAITWALSALIALAPLLFGWGE-D-A-LQRCQVS--------QEPSYAVFSTCGAFYVPLAVVLFVYWKIYKAAKFRATVTSGDSWREQKEKRAAMMVGILIGVFVLCWIPFFLTELVSPLCAC-SLPPIWKSIFLWLGYSNSFFNPLIYTAFNKNYNNAFKSLFTKQR-----------------------
->OPSD_CHICK
-MNGTEGQDFYVPMSNKTGVVRSPFEYPQYYLAEPWKFSALAAYMFMLILLGFPVNFLTLYVTIQHKKLRTPLNYILLNLVVADLFMVFGGFTTTMYTSMNGYFVFGVTGCYIEGFFATLGGEIALWSLVVLAVERYVVVCKPMSNFRFGENHAIMGVAFSWIMAMACAAPPLFGWSRYIPEGMQCSCGIDYYTLKPEINNESFVIYMFVVHFMIPLAVIFFCYGNLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTNQGSDFGPIFMTIPAFFAKSSAIYNPVIYIVMNKQFRNCMITTLCCGKNPLGDEDTSAGTSSVSTSQVSPA
->B3AR_MOUSE
-MAPWPHRNGSLALWSDAPTLDPSAAN---TSGLPGVPWAAALAGALLALATVGGNLLVIIAIARTPRLQTITNVFVTSLAAADLVVGLLVMPPGATLALTGHWPLGETGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGTLVTKRRARAAVVLVWIVSAAVSFAPIMSQWWRVQ-E--RCCSFA--------SNMPYALLSSSVSFYLPLLVMLFVYARVFVVAKRQGVPRRPARLLPLREHRALRTLGLIMGIFSLCWLPFFLANVLRALAGPS-VPSGVFIALNWLGYANSAFNPVIYCRSP-DFRDAFRRLLCSYGGRGPEEPRAVTARQSPPLNRFDG
->SSR1_RAT
-GEGVCSRGPGSGAADGMEEPGRNSSQNGTLSEGQGSAILISFIYSVVCLVGLCGNSMVIYVILRYAKMKTATNIYILNLAIADELLMLSVPFLVTSTLLRH-WPFGALLCRLVLSVDAVNMFTSIYCLTVLSVDRYVAVVHPIAARYRRPTVAKVVNLGVWVLSLLVILPIVVFSRTAADG--TVACNML-MPEPAQRWLVGFVLYTFLMGFLLPVGAICLCYVLIIAKMRMVALK-AGWQQRKRSERKITLMVMMVVMVFVICWMPFYVVQLVNVFAEQ--DDATVSQLSVILGYANSCANPILYGFLSDNFKRSFQRILCLS-----WMDNAAETALKSRAYSVED
->AA1R_HUMAN
-----------------------------MPPSISAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIVSLAVADVAVGALVIPLAILINIG--PQTYFHTCLMVACPVLILTQSSILALLAIAVDRYLRVKIPLYKMVVTPRRAAVAIAGCWILSFVVGLTPMFGWNNLSN-G-VIKCEFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYLEVFYLIRKQK-VSGDPQKYYGKELKIAKSLALILFLFALSWLPLHILNCITLFCPSCHKPSILTYIAIFLTHGNSAMNPIVYAFRIQKFRVTFLKIWNDHFRCQPAPPID--PDD---------
->PE23_HUMAN
-PFCTRLNHSYTGMWAPERSAEARGNLTRPPGSGEDCGSVSVAFPITMLLTGFVGNALAMLLVSRSYRRKKSFLLCIGWLALTDLVGQLLTTPVVIVVYLSKQIDPSGRLCTFFGLTMTVFGLSSLFIASAMAVERALAIRAPHYASHMKTRATRAVLLGVWLAVLAFALLPVLGVG----QYTGTWCFISNGTSSSHNWGNLFFASAFAFLGLLALTVTFSCNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKMIFNQTSQKECNFFLIAVRLASLNQILDPWVYLLLRKILLRKFCQIRYHTNNYASSSTSLPCWSDHLER-----
->OLF0_RAT
----------------MNNQTFITQFLLLGLPIPEEHQHLFYALFLVMYLTTILGNLLIIVLVQLDSQLHTPMYLFLSNLSFSDLCFSSVTMPKLLQNMRSQDTSIPYGGCLAQTYFFMVFGDMESFLLVAMAYDRYVAICFPLYTSIMSPKLCTCLVLLLWMLTTSHAMMHTLLAARL---SLNFFCDLFKLACSDTYINELMIFIMSTLLIIIPFFLIVMSYARIISSI--------LKVPSTQGICKVFSTCGSHLSVVSLFYGTIIGLYLCPAGNN---STVKEMVMAMMYTVVTPMLNPFIYSLRNRDMKRALIRVICSMKITL--------------------
->BRB2_RABIT
--MLNITSQVLAPALNGSVSQSSGC---PNTEWSGWLNVIQAPFLWVLFVLATLENLFVLSVFCLHKSSCTVAEVYLGNLAAADLILACGLPFWAVTIANHFDWLFGEALCRVVNTMIYMNLYSSICFLMLVSIDRYLALVKTMIGRMRRVRWAKLYSLVIWGCTLLLSSPMLVFRTMKD-YN--TACIID---YPSRSWEVFTNVLLNLVGFLLPLSVITFCTVQILQVLRNN---EMQKFKEIQTERRATVLVLAVLLLFVVCWLPFQVSTFLDTLLKLGHVIDVITQVGSFMGYSNSCLNPLVYVIVGKRFRKKSREVYRAACPKAGCVLEPVQLRTS-------I
->CCKR_MOUSE
-DSLLMNGSNITPPCELGLENETLFCLDQPQPSKEWQSAVQILLYSFIFLLSVLGNTLVITVLIRNKRMRTVTNIFLLSLAVSDLMLCLFCMPFNLIPNLLKDFIFGSAVCKTTTYFMGTSVSVSTFNLVAISLERYGAICRPLSRVWQTKSHALKVIAATWCLSFTIMTPYPIYN----NNQTANMCRFL---LPSDAMQQSWQTFLLLILFLIPGVVMVVAYGLISLELYQGRINSSGSAANLIAKKRVIRMLIVIVVLFFLCWMPIFSANAWRAYDTVSHLSGTPISFILLLSYTSSCVNPIIYCFMNKRFRLGFMATFPCCPNPGPTGVRGEVTIRASLSRYSYS
->ACM3_RAT
-N---------ISQETGNFSS-NDTSSDPLGGHTIWQVVFIAFLTGFLALVTIIGNILVIVAFKVNKQLKTVNNYFLLSLACADLIIGVISMNLFTTYIIMNRWALGNLACDLWLSIDYVASNASVMNLLVISFDRYFSITRPLYRAKRTTKRAGVMIGLAWVISFVLWAPAILFWQYFV-VP-PGECFIQ------FLSEPTITFGTAIAAFYMPVTIMTILYWRIYKETEKRKTRTKRKRMSLIKEKKAAQTLSAILLAFIITWTPYNIMVLVNTFCDSC-IPKTYWNLGYWLCYINSTVNPVCYALCNKTFRTTFKTLLLCQCDKRKRRKQQYQHKRVPEQAL---
->5H1E_HUMAN
--------------MNITNCT--TEASMAIRPKTITEKMLICMTLVVITTLTTLLNLAVIMAIGTTKKLHQPANYLICSLAVTDLLVAVLVMPLSIIYIVMDRWKLGYFLCEVWLSVDMTCCTCSILHLCVIALDRYWAITNAIYARKRTAKRAALMILTVWTISIFISMPPLFWRS---S-P--SQCTIQ-------HDHVIYTIYSTLGAFYIPLTLILILYYRIYHAAKSLNDLGERQQISSTRERKAARILGLILGAFILSWLPFFIKELIVGLSIYT-VSSEVADFLTWLGYVNSLINPLLYTSFNEDFKLAFKKLIRCREHT---------------------
->OPS1_CALVI
-ALT---NGSVTDKVTPDMAHLVHPYWNQFPAMEPKWAKFLAAYMVLIATISWCGNGVVIYIFSTTKSLRTPANLLVINLAISDFGIMITNTPMMGINLFYETWVLGPLMCDIYGGLGSAFGCSSILSMCMISLDRYNVIVKGMAGQPMTIKLAIMKIALIWFMASIWTLAPVFGWSRYVPEGNLTSCGID--YLERDWNPRSYLIFYSIFVYYLPLFLICYSYWFIIAAVSAHMNVRSSEDADKSAEGKLAKVALVTISLWFMAWTPYTIINTLGLFKYEG-LTPLNTIWGACFAKSAACYNPIVYGISHPKYGIALKEKCPCCVFGKVDDGK-ASNNESETKA----
->V1BR_RAT
----MNSEPSWTATPSPGGTLPVPNATTPWLGRDEELAKVEIGILATVLVLATGGNLAVLLTLGRHGHKRSRMHLFVLHLALTDLGVALFQVLPQLLWDITYRFQGSDLLCRAVKYLQVLSMFASTYMLLAMTLDRYLAVCHPLRSLRQPSQSTYPLIAAPWLLAAILSLPQVFIFSLRESG--VLDCWAD---FYFSWGPRAYITWTTMAIFVLPVAVLSACYGLICHEIYKNRGLVSSISTISRAKIRTVKMTFVIVLAYIACWAPFFSVQMWSVWDENADSTNVAFTISMLLGNLSSCCNPWIYMGFNSRLLPRSLSHHACCTGSKPQVHRQLSRTTLLTHACGSP
->OPSD_SARPI
-MNGTEGPFFYIPMSNATGLVRSPYDYPQYYLVPPWGYACLAAYMFLLILTGFPVNFLTLYVTIEHKKLRSPLNYILLNLAVADLFMVIGGFTTTMWTSLNGYFVFGRMGCNIEGFFATLGGEIALWSLVVLSMERWIVVCKPISNFRFGENHAVMGVAFSWFMAAACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVVHFTCPLTIITFCYGRLVCTVKEAAAQQQESETTQRAEREVTRMVIIMFVAFLACWVPYASVAWYIFTHQGSEFGPVFMTIPAFFAKSSAVYNPVIYICLNKQFRHCMITTLCCGKNPFEEEEGSTTSVCSVSPAA---
->V1BR_MOUSE
----MDSEPSWTATPSPGGTLFVPNTTTPWLGRDEELAKVEIGILATVLVLATGGNLAVLLILGLQGHKRSRMHLFVLHLALTDLGVALFQVLPQLLWDITYRFQGSDLLCRAVKYLQVLSMFASTYMLLAMTLDRYLAVCHPLRSLQQPSQSTYPLIAAPWLLAAILSLPQVFIFSLRESG--VLDCWAD---FYFSWGPRAYITWTTMAIFVLPVVVLTACYGLICHEIYKNATLVSSISTISRAKIRTVKMTFVIVLAYIACWAPFFSVQMWSVWDENADSTNVAFTISMLLGNLSSCCNPWIYMGFNSHLLPRSLSHRACCRGSKPRVHRQLSRTTLLTHTCGPS
->CCKR_CAVPO
-DSLFVNGSNITSACELGFENETLFCLDRPRPSKEWQPAVQILLYSLIFLLSVLGNTLVITVLIRNKRMRTVTNIFLLSLAVSDLMLCLFCMPFNLIPSLLKDFIFGSAVCKTTTYFMGTSVSVSTFNLVAISLERYGAICKPLSRVWQTKSHALKVIAATWCLSFTIMTPYPIYN----NNQTGNMCRFL---LPNDVMQQTWHTFLLLILFLIPGIVMMVAYGLISLELYQGRINSSSSTANLMAKKRVIRMLIVIVVLFFLCWMPIFSANAWRAYDTVSHLSGTPISFILLLSYTSSCVNPIIYCFMNKRFRLGFMATFPCCPNPGTPGVRGEMTTGASLSRYSYS
->OPRM_RAT
-LSHVDGNQSDPCGLNRTGLGGNDSLCPQTGSPSMVTAITIMALYSIVCVVGLFGNFLVMYVIVRYTKMKTATNIYIFNLALADALATSTLPFQSVNYLMGT-WPFGTILCKIVISIDYYNMFTSIFTLCTMSVDRYIAVCHPVALDFRTPRNAKIVNVCNWILSSAIGLPVMFMATTKYGS---IDCTLT-FSHPTWYWENLLKICVFIFAFIMPVLIITVCYGLMILRLKSVRML-SGSKEKDRNLRRITRMVLVVVAVFIVCWTPIHIYVIIKALITIPTFQTVSWHFCIALGYTNSCLNPVLYAFLDENFKRCFREFCIPTSSTIEQQNSTRVPSTANTVDRTNH
->FMLR_RABIT
------------MDSNASLPLNVSGGTQATPAGLVVLDVFSYLILVVTFVLGVLGNGLVIWVTGFRMT-HTVTTISYLNLALADFSFTSTLPFFIVTKALGGHWPFGWFLCKFVFTIVDINLFGSVFLIALIALDRCICVLHPVAQNHRNVSLAKKVIVGPWICALLLTLPVIIRVTTLSSPWPAEKLKVA------ISMFMVRGIIRFIIGFSTPMSIVAVCYGLIATKI---------HRQGLIKSSRPLRVLSFVVASFLLCWSPYQIAALIATVRIREKDLRIVLDVTSFVAFFNSCLNPMLYVFMGQDFRERLIHSLPASLERALSEDSAQTTS----------
->OPSP_COLLI
-----MDPTNSPQEPPHTSTPGPFDGPQWPHQAPRGMYLSVAVLMGIVVISASVVNGLVIVVSIRYKKLRSPLNYILVNLAMADLLVTLCGSSVSFSNNINGFFVFGKRLCELEGFMVSLTGIVGLWSLAILALERYVVVCRPLGDFRFQHRHAVTGCAFTWVWSLLWTTPPLLGWSSYVPEGLRTSCGPN--WYTGGSNNNSYILTLFVTCFVMPLSLILFSYANLLMTLRAAAAQQQESDTTQQAERQVTRMVVAMVMAFLICWLPYTTFALVVATNKDIAIQPALASLPSYFSKTATVYNPIIYVFMNKQFQSCLLKMLCCGHHPRGTGRTAPAGLRNKVTPSHPV
->O1D2_HUMAN
--------------MDGGNQSEGSEFLLLGMSESPEQQQILFWMFLSMYLVTVVGNVLIILAISSDSRLHTPVYFFLANLSFTDLFFVTNTIPKMLVNLQSHNKAISYAGCLTQLYFLVSLVALDNLILAVMAYDRYVAICCPLYTTAMSPKLCILLLSLCWVLSVLYGLIHTLLMTRV---THYIFCEMYRMACSNIQINHTVLIATGCFIFLIPFGFVIISYVLIIRAI--------LRIPSVSKKYKAFSTCASHLGAVSLFYGTLCMVYLKPLHTY----SVKDSVATVMYAVVTPMMNPFIYSLRNKDMHGALGRLLDKHFKRLT-------------------
->IL8A_HUMAN
-PQMWDFDDLNFTGMPPADEDYSPC----MLETETLNKYVVIIAYALVFLLSLLGNSLVMLVILYSRVGRSVTDVYLLNLALADLLFALTLPIWAASKVNG--WIFGTFLCKVVSLLKEVNFYSGILLLACISVDRYLAIVHATRTLTQKRHLVKFVCLGCWGLSMNLSLPFFLFRQAYH-NS-SPVCYEV-LGNDTAKWRMVLRILPHTFGFIVPLFVMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLADTLMRTQNNIGRALDATEILGFLHSCLNPIIYAFIGQNFRHGFLKILAMHGLVSKEFLARHR------------
->EBP2_HUMAN
-NPDKDGGTPDSGQELRGNLTGQIQNPLYPVTESSYSAYAIMLLALVVFAVGIVGNLSVMCIVWHSYYLKSAWNSILASLALWDFLVLFFCLPIVIFNEITKQRLLGDVSCRAVPFMEVSSLGVTTFSLCALGIDRFHVATSTLVRPIERCQSILAKLAVIWVGSMTLAVPELLLWQLAQM----KPSASLSLYSLVMTYQNARMWWYFGCYFCLPILFTVTCQLVTWRVRGPPRKS-CRASKHEQCESQLNSTVVGLTVVYAFCTLPENVCNIVVAYLSTEQTLDLLGLINQFSTFFKGAITPVLLLCICRPLGQAFLDCCCCCCCEECGGASEASKLKTEVSSSIYF
->5H5B_MOUSE
-TPGLAFPPGPESCSDSPSSGRGGLILPGREPPFSAFTVLVVTLLVLLIAATFLWNLLVLVTILRVRAFHRVPHNLVASTAVSDVLVAVLVMPLSLVSELSAGWQLGRSLCHVWISFDVLCCTASIWNVAAIALDRYWTITRHLYTLRTRSRASALMIAITWALSALIALAPLLFGWGE-D-A-LQRCQVS--------QEPSYAVFSTCGAFYLPLAVVLFVYWKIYKAAKFRATVTSGDSWREQKEKRAAMMVGILIGVFVLCWIPFFLTELISPLCAC-SLPPIWKSIFLWLGYSNSFFNPLIYTAFNKNYNNAFKSLFTKQR-----------------------
->V2R_BOVIN
-MFMASTTSAVPWHLSQPTPAGNGSEGELLTARDPLLAQAELALLSTVFVAVALSNGLVLGALVRRGRRWAPMHVFIGHLCLADLAVALFQVLPQLAWDATDRFRGPDALCRAVKYLQMVGMYASSYMILAMTLDRHRAICRPMAHRHGGGTHWNRPVLLAWAFSLLFSLPQLFIFAQRDSG--VLDCWAR---FAEPWGLRAYVTWIALMVFVAPALGIAACQVLIFREIHASGCRPAEGARVSAAVAKTVKMTLVIVIVYVLCWAPFFLVQLWAAWDPEA-REGPPFVLLMLLASLNSCTNPWIYASFSSSISSELRSLLCCTWRRAPPSPGPQESFLAKDTPS---
->GRHR_MOUSE
---MANNASLEQDPNHCSAINNSIPLIQGKLPTLTVSGKIRVTVTFFLFLLSTAFNASFLLKLQKWTQKLSRMKVLLKHLTLANLLETLIVMPLDGMWNITVQWYAGEFLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITQPL-AVQSNSKLEQSMISLAWILSIVFAGPQLYIFRMIYTV--FSQCVTH--SFPQWWHQAFYNFFTFGCLFIIPLLIMLICNAKIIFALTRVPRKNQSKNNIPRARLRTLKMTVAFATSFVVCWTPYYVLGIWYWFDPEMRVSEPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->OLF1_CANFA
---------------MDGNYTLVTEFILLGFPTRPELQIVLFLVFLTLYGIILTGNIGLMMLIRTDPHLQTPMYFFLSNLSFADLCFSSAIVPKMLVNFLSENKSISLYGCALQFYFSCAFADTESFILAAMAYDRYVAICNPLYTVVMSRGICVWLIVLSYIGGNMSSLVHTSFAFIL---KNHFFCDLPKLSCTDTSVNEWLLSTYGSSVEIFCFIVIVISYYFILRSV--------LRIRSSSGRKKTFSTCASHLTSVAIYQGTLLFIYSRPTYLY---TPNTDKIISVFYTIIIPVLNPLIYSLRNKDVKDAAKRAVRLKVDSS--------------------
->GPRY_HUMAN
-SVSSWPYSSHRMRFITNHSDQATPNVTTCPMDEKLLSTVLTTSYSVIFIVGLVGNIIALYVFLGIHRKRNSIQIYLLNVAIADLLLIFCLPFRIMYHINQNKWTLGVILCKVVGTLFYMNMYISIILLGFISLDRYIKINRSIQRKAITTKQSIYVCCIVWMLALGGFLTMIILTLKK-----STMCFHY--RDKHNAKGEAIFNFILVVMFWLIFLLIILSYIKIGKNLLRISKR--SKFPNSGKYATTARNSFIVLIIFTICFVPYHAFRFIYISSQLNEIVHKTNEIMLVLSSFNSCLDPVMYFLMSSNIRKIMCQLLFRRFQGEPSRSESTSLHDTSVAVKIQS
->OPSD_RANPI
-MNGTEGPNFYIPMSNKTGVVRSPFDYPQYYLAEPWKYSVLAAYMFLLILLGLPINFMTLYVTIQHKKLRTPLNYILLNLGVCNHFMVLCGFTITMYTSLHGYFVFGQTGCYFEGFFATLGGEIALWSLVVLAIERYIVVCKPMSNFRFGENHAMMGVAFTWIMALACAVPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFLIPLIIISFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVIFFLICWVPYAYVAFYIFTHQGSEFGPIFMTVPAFFAKSSAIYNPVIYIMLNKQFRNCMITTLCCGKNPFGDDDASSAATSVSTSQVSPA
->GP38_HUMAN
-GSPWNGSDGPEGAREPPWPALPPCDERRCSPFPLGALVPVTAVCLCLFVVGVSGNVVTVMLIGRYRDMRTTTNLYLGSMAVSDLLILLGLPFDLYRLWRSRPWVFGPLLCRLSLYVGEGCTYATLLHMTALSVERYLAICRPLARVLVTRRRVRALIAVLWAVALLSAGPFLFLVG---AEAFSRECRPS----PAQLGALRVMLWVTTAYFFLPFLCLSILYGLIGRELWSSPLR--AASGRERGHRQTVRVLLVVVLAFIICWLPFHVGRIIYINTEDSYFSQYFNIVALQLFYLSASINPILYNLISKKYRAAAFKLLLARKSRPRGFHRSRDDTGGDTVGYTET
->GPRM_HUMAN
-PILEINMQSESNITVRDDIDDINTNMYQPLSYPLSFQVSLTGFLMLEIVLGLGSNLTVLVLYCMKSNINSVSNIITMNLHVLDVIICVGCIPLTIVILLLSLESNTALICCFHEACVSFASVSTAINVFAITLDRYDISVKPA-NRILTMGRAVMLMISIWIFSFFSFLIPFIEVNFFS--TKTLLCVST---EYYTELGMYYHLLVQIPIFFFTVVVMLITYTKILQALNIRTISQHEARERRERQKRVFRMSLLIISTFLLCWTPISVLNTTILCLGPSDLLVKLRLCFLVMAYGTTIFHPLLYAFTRQKFQKVLKSKMKKRVVSIVEADPLPNWIDPKRNKKITF
->GPR3_HUMAN
-GAGSPLAWLSAGSGNVNVSSVGPAEGPTGPAAPLPSPKAWDVVLCISGTLVSCENALVVAIIVGTPAFRAPMFLLVGSLAVADLLAG-LGLVLHFAAV-F--CIGSAEMSLVLVGVLAMAFTASIGSLLAITVDRYLSLYNALYYSETTVTRTYVMLALVWGGALGLGLLPVLAWNCL-D--GLTTCGVV-------YPLSKNHLVVLAIAFFMVFGIMLQLYAQICRIVCRHIALHLLPASHYVATRKGIATLAVVLGAFAACWLPFTVYCLLGDA----HSPPLYTYLTLLPATYNSMINPIIYAFRNQDVQKVLWAVCCCCSSSKIPFRSRSP------------
->CCKR_RAT
-DSLLMNGSNITPPCELGLENETLFCLDQPQPSKEWQSALQILLYSIIFLLSVLGNTLVITVLIRNKRMRTVTNIFLLSLAVSDLMLCLFCMPFNLIPNLLKDFIFGSAVCKTTTYFMGTSVSVSTFNLVAISLERYGAICRPLSRVWQTKSHALKVIAATWCLSFTIMTPYPIYN----NNQTANMCRFL---LPSDAMQQSWQTFLLLILFLLPGIVMVVAYGLISLELYQGRLNSSSSAANLIAKKRVIRMLIVIVVLFFLCWMPIFSANAWRAYDTVSHLSGTPISFILLLSYTSSCVNPIIYCFMNKRFRLGFMATFPCCPNPGPPGVRGEVTIRALLSRYSYS
->RDC1_MOUSE
-YAEPGNYSDINWPCNSSDCIVVDTVQCPTMPNKNVLLYTLSFIYIFIFVIGMIANSVVVWVNIQAKTTGYDTHCYILNLAIADLWVVITTPVWVVSLVQHNQWPMGELTCKITHLIFSINLFGSIFFLACMSVDRYLSITYFTTSSYKKKMVRRVVCILVWLLAFFVSLPDTYYLKAVTNNE--TYCRSFYPEHSIKEWLIGMELVSVILGFAVPFTIIAIFYFLLARAM---------SASGDQEKHSSRKIIFSYVVVFLVCWLPYHFVVLLDIFSILHNVLFTALHVTQCLSLVHCCVNPVLYSFINRNYRYELMKAFIFKYSAKTGLTKLIDEYSALEQNTK--
->OLF9_RAT
--------------MTRRNQTAISQFFLLGLPFPPEYQHLFYALFLAMYLTTLLGNLIIIILILLDSHLHTPMYLFLSNLSFADLCFSSVTMPKLLQNMQSQVPSIPYAGCLAQIYFFLFFGDLGNFLLVAMAYDRYVAICFPLYMSIMSPKLCVSLVVLSWVLTTFHAMLHTLLMARL---SPHYFCDMSKVACSDTHDNELAIFILGGPIVVLPFLLIIVSYARIVSSI--------FKVPSSQSIHKAFSTCGSHLSVVSLFYGTVIGLYLCPSANN---STVKETVMSLMYTMVTPMLNPFIYSLRNRDIKDALEKIMCKKQIPSFL------------------
->5H1D_RABIT
-SPSNQSAEGLPQEAANRSLNATGTPEAWDPGTLQALKISLAVVLSIITVATVLSNTFVLTTILLTRKLHTPANYLIGSLATTDLLVSILVMPISIAYTITHTWNFGQVLCDIWVSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGHAAAMIAVVWAISICISIPPLFWR----H-E--SDCLVN-------TSQISYTIYSTCGAFYIPSVLLIVLYGRIYMAARNRKLALERKRISAARERKATKTLGIILGAFIGCWLPFFVASLVLPICRDSWMPPGLFDFFTWLGYLNSLINPIIYTVFNEDFRQAFQRVIHFRKAF---------------------
->ML1C_.ENLA
------MMEVNSTCLDCRTPGTIRTEQDAQDSASQGLTSALAVVLIFTIVVDVLGNILVILSVLRNKKLQNAGNLFVVSLSIADLVVAVYPYPVILIAIFQNGWTLGNIHCQISGFLMGLSVIGSVFNITAIAINRYCYICHSLYDKLYNQRSTWCYLGLTWILTIIAIVPNFFVGS-LQYDP-IFSCTFA------QTVSSSYTITVVVVHFIVPLSVVTFCYLRIWVLVIQVHR-QDFKQKLTQTDLRNFLTMFVVFVLFAVCWAPLNFIGLAVAINPFHKIPEWLFVLSYFMAYFNSCLNAVIYGVLNQNFRKEYKRILMSLLTPRLLFLDTSRSKPSPAVTNNNQ
->SSR2_PIG
-LLNGSQPWLSSPFDLNGSVATANSSNQTEPYYDLTSNAVLTFIYFVVCIIGLCGNTLVIYVILRYAKMKTITNIYILNLAIADELFMLGLPFLAMQVALVH-WPFGKAICRVVMTVDGINQFTSIFCLTVMSIDRYLAVVHPISAKWRRPRTAKMINVAVWGVSLLVILPIMIYAGLRSWG--RSSCTIN-WPGESGAWYTGFIIYAFILGFLVPLTIICLCYLFIIIKVKSSGIR-VGSSKRKKSEKKVTRMVSIVVAVFIFCWLPFYIFNVSSVSVAISPALKGMFDFVVVLTYANSCANPILYAFLSDNFKKSFQNVLCLVKVSGTDDGERSDLNETTETQRTLL
->NTR1_HUMAN
-EEALLAPGFGNASGNASERVLAAPSSELDVNTDIYSKVLVTAVYLALFVVGTVGNTVTAFTLARKKSLQSTVHYHLGSLALSDLLTLLLAMPVELYNFIWVHWAFGDAGCRGYYFLRDACTYATALNVASLSVERYLAICHPFAKTLMSRSRTKKFISAIWLASALLTVPMLFTMGEQN--SGGLVCTPT---IHTATVKVVIQVN-TFMSFIFPMVVISVLNTIIANKLTVMEHSMAIEPGRVQALRHGVRVLRAVVIAFVVCWLPYHVRRLMFCYISDEDFYHYFYMVTNALFYVSSTINPILYNLVSANFRHIFLATLACLCPVWRRRRK-RPSVSSNHTLSSNA
->AG2R_CAVPO
-------MILNSSTEDGIKRIQDDC---PKAGRHSYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADICFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCVIIWLMAGLASLPAVIHRNVFF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFMFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFKIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSTLSTRPSD-------N
->PE23_RABIT
-PFCTRLNHSYPGMWAP----EARGNLTRPPGPGEDCGSVSVAFPITMLITGFVGNALAMLLVSRSYRRKKSFLLCIGWLALTDLVGQLLTSPVVILVYLSKQLDPSGRLCTFFGLTMTVFGLSSLFIASAMAVERALAIRAPHYASHMKTRATRAVLLGVWLAVLAFALLPVLGVG----QYTGTWCFISNGTSSSHNWGNLFFASTFAFLGLLALAITFTCNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKMIFNQTSQKECNFFLIAVRLASLNQILDPWVYLLLRKILLRKFCQVIHENNEQKDEIQRENRHEEARDSEKSKT
->CB1A_FUGRU
-TDLFGNRNTTRD-ENSIQCGENFMDMECFMILTPSQQLAVAVLSLTLGTFTVLENLVVLCVIFQSRTRCRPSYHFIGSLAVADLLGSVIFVYSFLDFHVFHK-KDSPNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYRRIVTRTKAVIAFCMMWTISIIIAVLPLLGWNCK-R--LNSVCSDI------FPLIDENYLMFWIGVTSVLVLFIIYAYIYILWKAHHHAEGQTTRPEQTRMDIRLAKTLVLILAVLVICWGPLLAIMVYDLFWKMDDNIKTVFAFCSMLCLLNSTVNPIIYALRSRDLRHAFLSSCHACRGSAQQLDNSLENVN--ISANRAA
->CKR9_HUMAN
-DDYGSESTSSMEDYVNFNFTDFYC---EKNNVRQFASHFLPPLYWLVFIVGALGNSLVILVYWYCTRVKTMTDMFLLNLAIADLLFLVTLPFWAIAAADQ--WKFQTFMCKVVNSMYKMNFYSCVLLIMCISVDRYIAIAQAMTWREKRLLYSKMVCFTIWVLAAALCIPEILYSQIKE-G--IAICTMVYPSDESTKLKSAVLTLKVILGFFLPFVVMACCYTIIIHTL---------IQAKKSSKHKALKVTITVLTVFVLSQFPYNCILLVQTIDAYATNIDICFQVTQTIAFFHSCLNPVLYVFVGERFRRDLVKTLKNLGCISQAQWVSFT--------GSLK
->V1BR_HUMAN
----MDSGPLWDANPTPRGTLSAPNATTPWLGRDEELAKVEIGVLATVLVLATGGNLAVLLTLGQLGRKRSRMHLFVLHLALTDLAVALFQVLPQLLWDITYRFQGPDLLCRAVKYLQVLSMFASTYMLLAMTLDRYLAVCHPLRSLQQPGQSTYLLIAAPWLLAAIFSLPQVFIFSLRESG--VLDCWAD---FGFPWGPRAYLTWTTLAIFVLPVTMLTACYSLICHEICKNRGLVSSINTISRAKIRTVKMTFVIVLAYIACWAPFFSVQMWSVWDKNADSTNVAFTISMLLGNLNSCCNPWIYMGFNSHLLPRPLRHLACCGGPQPRMRRRLSHTTLLTRSSCPA
->5H4_RAT
-------------------MDRLDANVSSNEGFGSVEKVVLLTFFAMVILMAILGNLLVMVAVCRDRQRKIKTNYFIVSLAFADLLVSVLVNAFGAIELVQDIWFYGEMFCLVRTSLDVLLTTASIFHLCCISLDRYYAICCQPYRNKMTPLRIALMLGGCWVIPMFISFLPIMQGWNNIRK-NSTFCVFM--------VNKPYAITCSVVAFYIPFLLMVLAYYRIYVTAKEHSRPDQHSTHRMRTETKAAKTLCVIMGCFCFCWAPFFVTNIVDPFIDYT-VPEKVWTAFLWLGYINSGLNPFLYAFLNKSFRRAFLIILCCDDERYKRPPILGQTINGSTHVLR--
->5HTA_DROME
-DSSLFGEMLANRSGHLDLINGTTSKVAEDDFTQLLRMAVTSVLLGLMILVTIIGNVFVIAAIILERNLQNVANYLVASLAVADLFVACLVMPLGAVYEISQGWILGPELCDIWTSCDVLCCTASILHLVAIAVDRYWAVTNI-YIHSRTSNRVFMMIFCVWTAAVIVSLAPQFGWKDPDE-Q--QKCMVS--------QDVSYQVFATCCTFYVPLMVILALYWKIYQTARKRPMQKRKETLEAKRERKAAKTLAIITGAFVVCWLPFFVMALTMPLCAACQISDSVASLFLWLGYFNSTLNPVIYTIFSPEFRQAFKRILFGGHRPVHYRSGKL-------------
->HH1R_CAVPO
--MSFLPGMTPVTLSNFSWALEDRMLEGNSTTTPTRQLMPLVVVLSSVSLVTVALNLLVLYAVRSERKLHTVGNLYIVSLSVADLIVGAVVMPMSILYLHRSAWILGRPLCLFWLSMDYVASTASIFSVFILCIDRYRSVQQPLYLRYRTKTRASATILGAWLLSFLWVIPILGWHHFM--EP-EKKCETD------FYDVTWFKVMTAIINFYLPTLLMLWFYIRIYKAVRRHLRSQYTSGLHLNRERKAAKQLGCIMAAFILCWIPYFVFFMVIAFCKSC-SNEPVHMFTIWLGYLNSTLNPLIYPLCNENFRKTFKRILRIPP-----------------------
->OPSD_PHOGR
-MNGTEGPNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVGLTWVMALACAAPPLVGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGFNFGPIFMTLPAFFAKAAAIYNPVIYIMMNKQFRTCMITTLCCGKNPLGDDEVSASASKTETSQVAPA
->MSHR_CANFA
-VWQGPQRRLLGSLNGTSPATPHFELAANQTGPRCLEVSIPNGLFLSLGLVSVVENVLVVAAIAKNRNLHSPMYYFIGCLAVSDLLVSVTNVLETAVMLLVEAAAVVQQLDDIIDVLICGSMVSSLCFLGAIAVDRYLSIFYALYHSIVTLPRAWRAISAIWVASVLSSTLFIAYYY----------------------NNHTAVLLCLVSFFVAMLVLMAVLYVHMLARARQH-IAKRQHSVHQGFGLKGAATLTILLGIFFLCWGPFFLHLSLMVLCPQHGCVFQNFNLFLTLIICNSIIDPFIYAFRSQELRKTLQEVVLCSWA----------------------
->A2AC_HUMAN
-AAGPNASGAGERGSGGVANASGASWGPPRGQYSAGAVAGLAAVVGFLIVFTVVGNVLVVIAVLTSRALRAPQNLFLVSLASADILVATLVMPFSLANELMAYWYFGQVWCGVYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRVKATIVAVWLISAVISFPPLVSLYR-------PQCGLN--------DETWYILSSCIGSFFAPCLIMGLVYARIYRVAKRRRRAVCRRKVAQAREKRFTFVLAVVMGVFVLCWFPFFFIYSLYGICREAQVPGPLFKFFFWIGYCNSSLNPVIYTVFNQDFRPSFKHILFRRRRRGFRQ-----------------
->B1AR_SHEEP
-VPDGAATAARLLVP-SPLRLAADLGQRGTPLLSQQWTVGMGLLMAFIVLLIVAGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARALVCTVWAISALVSFLPIFMQWWGDS-R--ECCDFI--------INEGYAITSSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCCARRAACGSHGAAGCLAVARPSPSPG
->OPS4_DROME
-S-GNGDLQFLGWNVPPDQIQYIPEHWLTQLEPPASMHYMLGVFYIFLFCASTVGNGMVIWIFSTSKSLRTPSNMFVLNLAVFDLIMCLKAPIFNSFHRGFA-IYLGNTWCQIFASIGSYSGIGAGMTNAAIGYDRYNVITKPM-NRNMTFTKAVIMNIIIWLYCTPWVVLPLTQFWDRFPEGYLTSCSFD--YLSDNFDTRLFVGTIFFFSFVCPTLMILYYYSQIVGHVFSHNVESNVDKSKETAEIRIAKAAITICFLFFVSWTPYGVMSLIGAFGDKSLLTQGATMIPACTCKLVACIDPFVYAISHPRYRLELQKRCPWLGVNEKSGEISSAQQQTTAA-----
->O1E1_HUMAN
--------------MMGQNQTSISDFLLLGLPIQPEQQNLCYALFLAMYLTTLLGNLLIIVLIRLDSHLHTPMYLFLSNLSFSDLCFSSVTIPKLLQNMQNQDPSIPYADCLTQMYFFLLFGDLESFLLVAMAYDRYVAICFPLYTAIMSPMLCLALVALSWVLTTFHAMLHTLLMARL---CPHFFCDMSKLAFSDTRVNEWVIFIMGGLILVIPFLLILGSYARIVSSI--------LKVPSSKGICKAFSTCGSHLSVVSLFYGTVIGLYLCSSANS---STLKDTVMAMMYTVVTPMLNPFIYSLRNRDMKGALSRVIHQKKTFFSL------------------
->MSHR_CHICK
--MSMLAPLRLVREPWNASEGNQSNATAGAGGAWCQGLDIPNELFLTLGLVSLVENLLVVAAILKNRNLHSPTYYFICCLAVSDMLVSVSNLAKTLFMLLMEHASIVRHMDNVIDMLICSSVVSSLSFLGVIAVDRYITIFYALYHSIMTLQRAVVTMASVWLASTVSSTVLITYYY----------------------RRNNAILLCLIGFFLFMLVLMLVLYIHMFALACHHSISQKQPTIYRTSSLKGAVTLTILLGVFFICWGPFFFHLILIVTCPTNTCFFSYFNLFLILIICNSVVDPLIYAFRSQELRRTLREVVLCSW-----------------------
->A1AA_BOVIN
-----------MVFLSGNASDSSNCT-HPPPPVNISKAILLGVILGGLILFGVLGNILVILSVACHRHLHSVTHYYIVNLAVADLLLTSTVLPFSAIFEILGYWAFGRVFCNVWAAVDVLCCTASIMGLCIISIDRYIGVSYPLYPTIVTQKRGLMALLCVWALSLVISIGPLFGWRQP--AP--TICQIN--------EEPGYVLFSALGSFYVPLTIILVMYCRVYVVAKREAKNFSVRLLKFSREKKAAKTLGIVVGCFVLCWLPFFLVMPIGSFFPDFRPSETVFKIAFWLGYLNSCINPIIYPCSSQEFKKAFQNVLRIQCLRRKQSSKHTLSH----------
->CKR5_PYGBI
-----MDYQVSSPTYDIDYYTSEPC---QKVNVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCYIFA-------SSVY
->OPSO_SALSA
-TLRIAVNGVSYNEASEIYKPHADPFTGPITNLAPWNFAVLATLMFVITSLSLFENFTVMLATYKFKQLRQPLNYIIVNLSLADFLVSLTGGTISFLTNARGYFFLGNWACVLEGFAVTYFGIVAMWSLAVLSFERYFVICRPLGNVRLRGKHAALGLLFVWTFSFIWTIPPVFGWCSYTVSKIGTTCEPN--WYSNNIWNHTYIITFFVTCFIMPLGMIIYCYGKLLQKLRKVSHD--RLGNAKKPERQVSRMVVVMIVAYLVGWTPYAAFSIIVTACPTIYLDPRLAAAPAFFSKTAAVYNPVIYVFMNKQVSTQLNWGFWSRA-----------------------
->NY1R_RAT
-TLFSRVENYSVHYNVSE-NSPFLAFENDDCHLPLAVIFTLALAYGAVIILGVSGNLALIIIILKQKEMRNVTNILIVNLSFSDLLVAVMCLPFTFVYTLMDHWVFGETMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPNNRHAYIGITVIWVLAVASSLPFVIYQILTDKD--KYVCFDK---FPSDSHRLSYTTLLLVLQYFGPLCFIFICYFKIYIRLKRRNMMIRDSKYRSSETKRINVMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->OLF3_CANFA
--------------MGTGNQTWVREFVLLGLSSDWDTEVSLFVLFLITYMVTVLGNFLIILLIRLDSRLHTPMYFFLTNLSLVDVSYATSIIPQMLAHLLAAHKAIPFVSCAAQLFFSLGLGGIEFVLLAVMAYDRYVAVCDPLYSVIMHGGLCTRLAITSWVSGSMNSLMQTVITFQL---PDHISCELLRLACVDTSSNEIAIMVSSIVLLMTPFCLVLLSYIQIISTI--------LKIQSTEGRKKAFHTCASHLTVVVLCYGMAIFTYIQPRSSP---SVLQEKLISLFYSVLTPMLNPMIYSVRNKEVKGAWQKLLGQLTGITSKLAT---------------
->P2Y9_HUMAN
-DRRFIDFQFQDSNSSLRPRLGNATANNTCIVDDSFKYNLNGAVYSVVFILGLITNSVSLFVFCFRMKMRSETAIFITNLAVSDLLFVCTLPFKIFYNFNRH-WPFGDTLCKISGTAFLTNIYGSMLFLTCISVDRFLAIVYPFSRTIRTRRNSAIVCAGVWILVLSGGISASLFSTTN----ATTTCFEGFSKRVWKTYLSKITIFIEVVGFIIPLILNVSCSSVVLRTLRKP----ATLSQIGTNKKKVLKMITVHMAVFVVCFVPYNSVLFLYALVRSQRFAKIMYPITLCLATLNCCFDPFIYYFTLESFQKSFYINAHIRMESLFKTETPLTIQEEVSDQTTNN
->MC5R_BOVIN
--MNSSFHLHFLDLGLNTTDGNLSGLSVQNASSLCEDMGIAVEVFLALGLISLLENILVIGAIVRNRNLHTPMYFFVGSLAVADMLVSLSNSWETITIYLLTNDASVRHLDNVFDSMICISVVASMCSLLAIAVDRYVTIFCALYQRIMTGRRSGAIIGGIWAFCASCGTVFIVYYY----------------------EESTYVVICLIAMFLTMLLLMASLYTHMFLLARTH-RIPGHSSVRQRTGVKGAITLAMLLGVFIVCWAPFFLHLILMISCPHNSCFMSHFNMYLILIMCNSVIDPLIYAFRSQEMRKTFKEIVCFQSFRTPCRFPSRY------------
->CKR5_TRAPH
-----MDYQVSSPTYDIDYYTSEPC---QKVNVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->OPSB_SAIBB
---MSKMPEEEEFYLFKNISSVGPWDGPQYHIAPVWAFQLQAAFMGIVFLAGLPLNSMVLVATVRYKKLRHPLNYVLVNVSVGGFLLCIFSVLPVFVNSCNGYFVFGRHVCALEGFLGTVAGLVTGWSLAFLAFERYIVICKPFGNFRFSSKHALMVVLTTWTIGIGVSIPPFFGWSRYIAEGLQCSCGPDWYTVGTKYRSEYYTWFLFIFCFIVPLSLICFSYAQLLRALKAVAAQQQESATTQKAEREVSRMVVVMVGSFCVCYVPYAALAMYMVNNRNHGLDLRLVSIPAFFSKSSCIYNPIIYCFMNKQFRACIMEMVCGKAMTD---ESDISSTVSSSQVGPN-
->OAR_DROME
-LSTAQADKDSAGECEGAVEELHASILGLQLAVPEWEALLTALVLSVIIVLTIIGNILVILSVFTYKPLRIVQNFFIVSLAVADLTVALLVLPFNVAYSILGRWEFGIHLCKLWLTCDVLCCTSSILNLCAIALDRYWAITDPIYAQKRTVGRVLLLISGVWLLSLLISSPPLIGWNDW-T-S--TPCELT--------SQRGYVIYSSLGSFFIPLAIMTIVYIEIFVATRRRGVNEEKQKISLSKERRAARTLGIIMGVFVICWLPFFLMYVILPFCQTCCPTNKFKNFITWLGYINSGLNPVIYTIFNLDYRRAFKRLLGLN------------------------
->PAR3_HUMAN
--WTGATITVKIKCPEESASHLHVKNATMGYLTSSLSTKLIPAIYLLVFVVGVPANAVTLWMLFFRTR-SICTTVFYTNLAIADFLFCVTLPFKIAYHLNGNNWVFGEVLCRATTVIFYGNMYCSILLLACISINRYLAIVHPFYRGLPKHTYALVTCGLVWATVFLYMLPFFILKQEYY--D--TTCHDVNTCESSSPFQLYYFISLAFFGFLIPFVLIIYCYAAIIRTL----------NAYDHRWLWYVKASLLILVIFTICFAPSNIILIIHHANYYYDGLYFIYLIALCLGSLNSCLDPFLYFLMSKTRNHSTAYLTK--------------------------
->NMBR_HUMAN
-SNLSVTTGANESGSVPEGWERDFLPASDGTTTELVIRCVIPSLYLLIITVGLLGNIMLVKIFITNSAMRSVPNIFISNLAAGDLLLLLTCVPVDASRYFFDEWMFGKVGCKLIPVIQLTSVGVSVFTLTALSADRYRAIVNPMMQTSGALLRTCVKAMGIWVVSVLLAVPEAVFSEVARSS--FTACIPY---QTDELHPKIHSVLIFLVYFLIPLAIISIYYYHIAKTLIKSLPGNEHTKKQMETRKRLAKIVLVFVGCFIFCWFPNHILYMYRSFNYNELGHMIVTLVARVLSFGNSCVNPFALYLLSESFRRHFNSQLCCGRKSYQERGTSYLMTSLKSNAKNMV
->AA1R_BOVIN
-----------------------------MPPSISAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIVSLAVADVAVGALVIPLAILINIG--PRTYFHTCLKVACPVLILTQSSILALLAMAVDRYLRVKIPLYKTVVTPRRAVVAITGCWILSFVVGLTPMFGWNNLSN-G-VIECQFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYMEVFYLIRKQK-VSGDPQKYYGKELKIAKSLALILFLFALSWLPLHILNCITLFCPSCHMPRILIYIAIFLSHGNSAMNPIVYAFRIQKFRVTFLKIWNDHFRCQPAPPID--PDD---------
->C.C1_MOUSE
-----------MESSTAFYDYHDKLSLLCENNVIFFSTISTIVLYSLVFLLSLVGNSLVLWVLVKYENLESLTNIFILNLCLSDLMFSCLLPVLISAQWS---WFLGDFFCKFFNMIFGISLYSSIFFLTIMTIHRYLSVVSPITLGIHTLRCRVLVTSCVWAASILFSIPDAVFHKVIS-----LNCKYS------EHHGFLASVYQHNIFFLLSMGIILFCYVQILRTL---------FRTRSRQRHRTVRLIFTVVVAYFLSWAPYNLTLFLKTGIIQQQQLDIAMIICRHLAFSHCCFNPVLYVFVGIKFRRHLKHLFQQVWLCRKTSSTVPCEGPSFY------
->OPS1_PATYE
-NGTLNRSMTPNTGWEGPYDMSVHLHWTQFPPVTEEWHYIIGVYITIVGLLGIMGNTTVVYIFSNTKSLRSPSNLFVVNLAVSDLIFSAVNGFPLLTVSSFHQWIFGSLFCQLYGFVGGVFGLMSINTLTAISIDRYVVITKPLASQTMTRRKVHLMIVIVWVLSILLSIPPFFGWGAYIPEGFQTSCTFD--YLTKTARTRTYIVVLYLFGFLIPLIIIGVCYVLIIRGVRRHSMKARANNKRARSELRISKIAMTVTCLFIISWSPYAIIALIAQFGPAHWITPLVSELPMMLAKSSSMHNPVVYALSHPKFRKALYQRVPWLFCCCKPKEKADFRSVTRTESVNSD
->5H2B_MOUSE
-ILQKTCDHLILTNRSGLETDSVAEEMKQTVEGQGHTVHWAALLILAVIIPTIGGNILVILAVALEKRLQYATNYFLMSLAIADLLVGLFVMPIALLTIMFEAWPLPLALCPAWLFLDVLFSTASIMHLCAISLDRYIAIKKPIANQCNTRATAFIKITVVWLISIGIAIPVPIKGIET-NP---VTCELT------KDRFGSFMVFGSLAAFFVPLTIMVVTYFLTIHTLQKKRRMGKRSAQTISNEQRASKALGVVFFLFLLMWCPFFITNLTLALCDSCTTLKTLLEIFVWIGYVSSGVNPLIYTLFNKTFREAFGRYITCNYRATKSVKALRKGNSMVENSKFFT
->OPSG_HUMAN
-DSYEDSTQSSIFTYTNSNSTRGPFEGPNYHIAPRWVYHLTSVWMIFVVIASVFTNGLVLAATMKFKKLRHPLNWILVNLAVADLAETVIASTISVVNQVYGYFVLGHPMCVLEGYTVSLCGITGLWSLAIISWERWMVVCKPFGNVRFDAKLAIVGIAFSWIWAAVWTAPPIFGWSRYWPHGLKTSCGPDVFSGSSYPGVQSYMIVLMVTCCITPLSIIVLCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMVLAFCFCWGPYAFFACFAAANPGYPFHPLMAALPAFFAKSATIYNPVIYVFMNRQFRNCILQLFGKKVDDG-----SELVSSV--SSVSPA
->ACM4_MOUSE
-------MANFTPVNGSSANQSVRLVTTAHNHLETVEMVFIATVTGSLSLVTVVGNILVMLSIKVNRQLQTVNNYFLFSLACADLIIGAFSMNLYTLYIIKGYWPLGAVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPARRTTKMAGLMIAAAWVLSFVLWAPAILFWQFVV-VP-DNQCFIQ------FLSNPAVTFGTAIAAFYLPVVIMTVLYIHISLASRSRSIAVRKKRQMAARERKVTRTIFAILLAFILTWTPYNVMVLVNTFCQSC-IPERVWSIGYWLCYVNSTINPACYALCNATFKKTFRHLLLCQYRNIGTAR----------------
->AA1R_RAT
-----------------------------MPPYISAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIVSLAVADVAVGALVIPLAILINIG--PQTYFHTCLMVACPVLILTQSSILALLAIAVDRYLRVKIPLYKTVVTQRRAAVAIAGCWILSLVVGLTPMFGWNNLSN-G-VIKCEFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYLEVFYLIRKQK-VSGDPQKYYGKELKIAKSLALILFLFALSWLPLHILNCITLFCPTCQKPSILIYIAIFLTHGNSAMNPIVYAFRIHKFRVTFLKIWNDHFRCQPKPPID--AED---------
->AA1R_CHICK
-----------------------------MAQSVTAFQAAYISIEVLIALVSVPGNILVIWAVKMNQALRDATFCFIVSLAVADVAVGALVIPLAIIINIG--PQTEFYSCLMMACPVLILTESSILALLAIAVDRYLRVKIPVYKSVVTPRRAAVAIACCWIVSFLVGLTPMFGWNNLNN-V-VIKCQFE-----TVISMEYMVYFNFFVWVLPPLLLMLLIYLEVFNLIRTQK-VSNDPQKYYGKELKIAKSLALVLFLFALSWLPLHILNCITLFCPSCKTPHILTYIAIFLTHGNSAMNPIVYAFRIKKFRTAFLQIWNQYFCCKTNKSSS--VN----------
->P2YR_MELGA
-PELLAG-----------GWAAGNASTKCSLTKTGFQFYYLPTVYILVFITGFLGNSVAIWMFVFHMRPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDVMCKLQRFIFHVNLYGSILFLTCISVHRYTGVVHPLSLGRLKKKNAVYVSSLVWALVVAVIAPILFYSGTG----KTITCYDT-TADEYLRSYFVYSMCTTVFMFCIPFIVILGCYGLIVKALIY------KDLDNSPLRRKSIYLVIIVLTVFAVSYLPFHVMKTLNLRARLDDKVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKSSRRSEPNVQSKSLTEYKQNGDTSL
->GRE1_BALAM
-----MEGPPLSPAPADNVTLNVSCGRPATLFDWADHRLISLLALAFLNLMVVAGNLLVVMAVFVHSKLRTVTNLFIVSLACADLLVGMLVLPFSATLEVLDVWLYGDVWCSVWLAVDVWMCTSSILNLCAISLDRYLAVSQPIYPSLMSTRRAKQLIAAVWVLSFVICFPPLVGWNDR-G-S--LTCELT--------NERGYVIYSALGSFFLPSTVMLFFYGRIYRTAVSTRVSVRHQARRFRMETKAAKTVGIIVGLFILCWLPFFVCYLVRGFCADC-VPPLLFSVFFWLGYCNSAVNPCVYALCSRDFRFAFSSILCKCVCRRGAMERRFRRSQTEEDCEVAD
->TDA8_MOUSE
----------------------MAMNSMCIEEQRHLEHYLFPVVYIIVFIVSVPANIGSLCVSFLQAKKENELGIYLFSLSLSDLLYALTLPLWINYTWNKDNWTFSPTLCKGSVFFTYMNFYSSTAFLTCIALDRYLAVVYPLFSFLRTRRFAFITSLSIWILESFFNSMLLWKDETS-DKSNFTLCYDK---YPLEKWQINLNLFRTCMGYAIPLITIMICNHKVYRAV------RHNQATENSEKRRIIKLLASITLTFVLCFTPFHVMVLIRCVLERDWQTFTVYRVTVALTSLNCVADPILYCFVTETGRADMWNILKLCTRKHNRHQGKKRRDAVELEIID--
->MSHR_CEREL
-PVLGSQRRLLGSLNCTPPATFPLTLAPNRTGPQCLEVAIPDGLFLSLGLVSLVENVLVVAAIAKNRNLQSPMYYFICCLAMSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICGSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->NY1R_MOUSE
-TLFSKVENHSIHYNASE-NSPLLAFENDDCHLPLAVIFTLALAYGAVIILGVSGNLALIIIILKQKEMRNVTNILIVNLSFSDLLVAVMCLPFTFVYTLMDHWVFGETMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPNNRHAYIGITVIWVLAVASSLPFVIYQILTDKD--KYVCFDK---FPSDSHRLSYTTLLLVLQYFGPLCFIFICYFKIYIRLKRRNMMIRDSKYRSSETKRINIMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->GPR1_MACMU
-EDLEETLFEEFENYSYALDYYSLESDLEEKVQLGVVHWVSLVLYCLSFVLGIPGNAIVIWFTGFKWKKTVS-TLWFLNLAIADFIFLLFLPLYISYVVMNFHWPFGIWLCKANSFTAQLNMFASVFFLTVISLDHYIHLIHPVSHRHRTLKNSLIVIIFIWLLASLIGGPALYFR--D--NN-HTLCYNNHDPDLTVIRHHVLTWVKFIVGYLFPLLTMSICYLCLIFKV---------KKRSILISSRHFWTILAVVVAFVVCWTPYHLFSIWELTIHHNHVMQAGIPLSTGLAFLNSCLNPILYVLISKKFQARFRSSVAEILKYTLWEVSCSGNSETKNLCLLET
->ACM1_PIG
-------------MNTSAPPAVSPNITVLAPGKGPWQVAFIGITTGLLSLATVTGNLLVLISFKVNTELKTVNNYFLLSLACADLIIGTFSMNLYTTYLLMGHWALGTLACDLWLALDYVASNASVMNLLLISFDRYFSVTRPLYRAKRTPRRAALMIGLAWLVSFVLWAPAILFWQYLV-VL-AGQCYIQ------FLSQPIITFGTAMAAFYLPVTVMCTLYWRIYRETENRRGKAKRKTFSLVKEKKAARTLSAILLAFIVTWTPYNIMVLVSTFCKDC-VPETLWELGYWLCYVNSTINPMCYALCNKAFRDTFRLLLLCRWDKRRWRKIPKRPSRQC-------
->RTA_RAT
-EAHSTNQNKMCPGMSEALELYSRGFLTIEQIATLPPPAVTNYIFLLLCLCGLVGNGLVLWFFGFSIK-RTPFSIYFLHLASADGIYLFSKAVIALLNMGTFLGSFPDYVRRVSRIVGLCTFFAGVSLLPAISIERCVSVIFPMYWRRRPKRLSAGVCALLWLLSFLVTSIHNYFCM-FL---SGTACL-----------NMDISLGILLFFLFCPLMVLPCLALILHVE---------CRARRRQRSAKLNHVVLAIVSVFLVSSIYLGIDWFLFWVFQ--IPAPFPEYVTDLCICINSSAKPIVYFLAGRDKSQRLWEPLRVVFQRALRDGAEPGNTVTMEMQCPSG
->GP43_HUMAN
-------------------------------MLPDWKSSLILMAYIIIFLTGLPANLLALRAFVGRIRQPAPVHILLLSLTLADLLLLLLLPFKIIEAASNFRWYLPKVVCALTSFGFYSSIYCSTWLLAGISIERYLGVAFPVYKLSRRPLYGVIAALVAWVMSFGHCTIVIIVQYLNT--N--ITCYEN-FTDNQLDVVLPVRLELCLVLFFIPMAVTIFCYWRFVWIMLSQP------LVGAQRRRRAVGLAVVTLLNFLVCFGPYNVSHLVGYHQR---KSPWWRSIAVVFSSLNASLDPLLFYFSSSVVRRAFGRGLQVLRNQGSSLLGRRG---------TAE
->CKR1_HUMAN
-METPNTTEDYDTTTEFDYGDATPC---QKVNERAFGAQLLPPLYSLVFVIGLVGNILVVLVLVQYKRLKNMTSIYLLNLAISDLLFLFTLPFWIDYKLKDD-WVFGDAMCKILSGFYYTGLYSEIFFIILLTIDRYLAIVHAVALRARTVTFGVITSIIIWALAILASMPGLYFSKTQW-EF-HHTCSLHFPHESLREWKLFQALKLNLFGLVLPLLVMIICYTGIIKIL---------LRRPNEKKSKAVRLIFVIMIIFFLFWTPYNLTILISVFQDFLRHLDLAVQVTEVIAYTHCCVNPVIYAFVGERFRKYLRQLFHRRVAVHLVKWLPFLV-------SSTS
->VK02_SPVKA
-YEYSTITDYYNTINNDITSSSVIKAFDNNCTFLEDTKYHIIVIHIILFLLGSIGNIFVVSLIAFKRN-KSITDIYILNLSMSDCIFVFQIPFIVYSKLDQ--WIFGNILCKIMSVLYYVGFFSNMFIITLMSIDRYFAIVHPIRQPYRTKRIGILMCCSAWLLSLILSSPVSKLYENIP--MDIYQCTLTENDSIIAFIKRLMQIEITILGFLIPIIIFVYCYYRIFTTV---------VRLRNRRKYKSIKIVLMIVVCSLICWIPLYIVLMIATIVSLYLNLAYAITFSETISLARCCINPIIYTLIGEHVRSRISSICSCIYRDNRIRKKLFSNII---------
->AA1R_CAVPO
-----------------------------MPHSVSAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIASLAVADVAVGALVIPLAILINIG--PQTYFHTCLMVACPVLILTQSSILALLAIAVDRYLRVKIPLYKTVVTPRRAAVAIAGCWILSLVVGLTPMFGWNNLSN-G-VIKCEFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYLEVFYLIRKQK-VSGDPQKYYGKELKIAKSLALILFLFALSWLPLHILNCITLFCPTCHKPTILTYIAIFLTHGNSAMNPIVYAFRIQKFRVTFLKIWNDHFRCQPEPPID--VDD---------
->P2Y6_RAT
------------MERDNGTIQAPGLPPTTCVYREDFKRLLLPPVYSVVLVVGLPLNVCVIAQICASRRTLTRSAVYTLNLALADLLYACSLPLLIYNYARGDHWPFGDLACRLVRFLFYANLHGSILFLTCISFQRYLGICHPLWHKRGGRRAAWVVCGVVWLVVTAQCLPTAVFAATG-----RTVCYDL-SPPILSTRYLPYGMALTVIGFLLPFTALLACYCRMARRLCRQ---GPAGPVAQERRSKAARMAVVVAAVFVISFLPFHITKTAYLAVRSTETFAAAYKGTRPFASANSVLDPILFYFTQQKFRRQPHDLLQKLTAKWQRQRV---------------
->O2H3_HUMAN
----------------MDNQSSTPGFLLLGFSEHPGLGRTLFVDVITSYLLTLVGNTLIILLSALDTKLHSPMYFFLSNLSFLDLCFTTSCVPQMLANLWGPKKTISFLDCSVQIFIFLSLGTTECILMKVMAFDRYVAVCQPLYATIIHPRLCWQLASVAWVIGLVGSVVQTPSTLHL---PDDFVCEVPRLSCEDTSYNEIQVAVASVFILVVPLSLILVSYGAITWAV--------LRINSATAWRKAFGTCSSHLTVVTLFYSSVIAVYLQPKNPY---AQGRGKFFGLFYAVGTPSLNPLVYTLRNKEIKRALRRLLGKERDSRESWRAA--------------
->OPRK_MOUSE
-LPNSSSWFPNWAESDSNGSVGSEDQQLESAHISPAIPVIITAVYSVVFVVGLVGNSLVMFVIIRYTKMKTATNIYIFNLALADALVTTTMPFQSAVYLMNS-WPFGDVLCKIVISIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPLKAKIINICIWLLASSVGISAIVLGGTKVDVD-VIECSLQFPDDEYSWWDLFMKICVFVFAFVIPVLIIIVCYTLMILRLKSVRLL-SGSREKDRNLRRITKLVLVVVAVFIICWTPIHIFILVEALGSTSTAALSSYYFCIALGYTNSSLNPVLYAFLDENFKRCFRDFCFPIKMRMERQSTNRVASMRDVGGMNKP
->5HTB_DROME
-TTSNLSQIVWNRSVNGNGNSNDEQERAAVEFWLLVKMIAMAVVLGLMILVTIIGNVFVIAAIILERNLQNVANYLVASLAVADLFVACLVMPLGAVYEISNGWILGPELCDIWTSCDVLCCTASILHLVAIAADRYWTVTNI-YNNLRTPRRVFLMIFCVWFAALIVSLAPQFGWKDPDE-E--QHCMVS--------QDVGYQIFATCCTFYVPLLVILFLYWKIYIIARKRPHQKRRQLLEAKRERKAAQTLAIITGAFVICWLPFFVMALTMSLCKECEIHTAVASLFLWLGYFNSTLNPVIYTIFNPEFRRAFKRILFGRKAAARARSAKI-------------
->OPR._HUMAN
-GSHLQGNLSLLSPNHSLLPPHLLLNASHGAFLPLGLKVTIVGLYLAVCVGGLLGNCLVMYVILRHTKMKTATNIYIFNLALADTLVLLTLPFQGTDILLGF-WPFGNALCKTVIAIDYYNMFTSTFTLTAMSVDRYVAICHPIALDVRTSSKAQAVNVAIWALASVVGVPVAIMGSAQVEE---IECLVE-IPTPQDYWGPVFAICIFLFSFIVPVLVISVCYSLMIRRLRGVRLL-SGSREKDRNLRRITRLVLVVVAVFVGCWTPVQVFVLAQGLGVQPETAVAILRFCTALGYVNSCLNPILYAFLDENFKACFRKFCCASALRRDVQVSDRVALACKTSETVPR
->VG74_KSHV
-LDDDESWNETLNMSGYDYSGNFSLEVSVCEMTTVVPYTWNVGILSLIFLINVLGNGLVTYIFCKHRS-RAGAIDILLLGICLNSLCLSISLLAEVLM--FLFNIISTGLCRLEIFFYYLYVYLDIFSVVCVSLVRYLLVAYSTSWPKKQSLGWVLTSAALLIALVLSGDACRHRSRVVD-PVKQAMCYEN---NMTADWRLHVRTVSVTAGFLLPLALLILFYALTWCVV---------RRTKLQARRKVRGVIVAVVLLFFVFCFPYHVLNLLDTLLRRRGLINVGLAVTSLLQALYSAVVPLIYSCLGSLFRQRMYGLFQSLRQSFMSGATT--------------
->PE22_MOUSE
----------------MDNFLNDSKLMEDCKSRQWLLSGESPAISSVMFSAGVLGNLIALALLARRWRSISLFHVLVTELVLTDLLGTCLISPVVLASYSRNQLAPESHACTYFAFTMTFFSLATMLMLFAMALERYLSIGYPYYRRHLSRRGGLAVLPVIYGASLLFCSLPLLNYGEYVQYCPGTWCFIR--------HGRTAYLQLYATMLLLLIVAVLACNISVILNLIRMRGPRRGERTSMAEETDHLILLAIMTITFAICSLPFTIFAYMDETSS---LKEKWDLRALRFLSVNSIIDPWVFAILRPPVLRLMRSVLCCRTSLRTQEAQQTSSKQTDLCGQL--
->A1AD_RABIT
-GSGEDNRSSAGEPGGAGGGGEVNGTAAVGGLVVSAQSVGVGVFLAAFILTAVAGNLLVILSVACNRHLQTVTNYFIVNLAVADLLLSATVLPFSATMEVLGFWAFGRAFCDVWAAVDVLCCTASILSLCTISVDRYVGVRHSLYPAIMTERKAAAILALLWAVALVVSMGPLLGWKEP--VP--RFCGIT--------EEVGYAVFSSLCSFYLPMAVIVVMYCRVYVVARSTHTFLSVRLLKFSREKKAAKTLAIVVGVFVLCWFPFFFVLPLGSLFPQLKPSEGVFKVIFWLGYFNSCVNPLIYPCSSREFKRAFLRLLRCQCRRRRRRRPLWRASAGGGPHPDCA
->OPSD_CRIGR
-MNGTEGPNFYVPFSNATGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVICKPMSNFRFGENHAIMGVVFTWIMALACAAPPLVGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFTIPLIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVILMVVFFLICWFPYAGVAFYIFTHQGSNFGPIFMTLPAFFAKSSSIYNPVIYIMMNKQFRNCMLTTLCCGKNILGDDEASATASKTETSQVAPA
->AA1R_CANFA
-----------------------------MPPAISAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIVSLAVADVAVGALVIPLAILINIG--PRTYFHTCLMVACPVLILTQSSILALLAIAVDRYLRVKIPLYKTVVTPRRAAVAIAGCWILSFVVGLTPLFGWNRLGN-G-VIKCEFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYLEVFYLIRRQK-VSGDPQKYYGKELKIAKSLALILFLFALSWLPLHILNCITLFCPSCRKPSILMYIAIFLTHGNSAMNPIVYAFRIQKFRVTFLKIWNDHFRCQPTPPVD--PHD---------
->DCDR_.ENLA
----------MENFSIFNVTVNVWHADLDVGNSDLSLRALTGLLLSLLILSTLLGNTLVCLAVIKFRHRSKVTNFFVISLAVSDLFVALLVMPWKAVTEVAGFWVFG-DFCDTWVAFDIMCSTASILNLCIISLDRYWAIASPFYERKMTQRVAFIMIGVAWTLSILISFIPVQLSWHKSEE-HTENCDSS--------LNRTYAISSSLISFYIPVVIMIGTYTRIYRIAQTQSSRENSLKTSFRKETKVLKTLSIIMGVFVFCWLPFFVLNCMIPFCHMNCVSETTFNIFVWFGWANSSLNPVIYAFNA-DFRKAFTTILGCNRFCSSNNVEAVNYHHDTTFQK---
->O.YR_BOVIN
-GAFAANWSAEAVNGSAAPPGTEGNRTAGPPQRNEALARVEVAVLCLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIADLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLSRRTDRLAVLVTWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYITWITLAVYIVPVIVLATCYGLISFKIWQNRAIVSNVKLISKAKIRTVKMTFIVVLAFIVCWTPFFFVQMWSVWDADA-KEASPFIIAMLLASLNSCCNPWIYMLFTGHLFQELVQRFLCCSFRRLKGSRPGENSSTFVLSQYSS
->YQNJ_CAEEL
-RDSVINASSAVSTTTLPPLDIPMTSMKPPSIIPTVELVLGTITYLVIIAMTVVGNTLVVVAVFSYRPLKKVQNYFLVSLAASDLAVAIFVMPLHVVTFLAGQWLLGVTVCQFFTTADILLCTSSILNLCAIALDRYWAIHNPIYAQKRTTKFVCIVIVIVWILSMLISVPPIIGWNNW-M---EDSCGLS--------TEKAFVVFSAAGSFFLPLLVMVVVYVKIFISARQRNPTRKREKISVAKEKRAAKTIAVIIFVFSFCWLPFFVAYVIRPFCETCTLVQQVEQAFTWLGYINSSLNPFLYGILNLEFRRAFKKILCPKAVLEQRRRRMSA------------
->OPS2_PATYE
-------------------MPFPLNRTDTALVISPSEFRIIGIFISICCIIGVLGNLLIIIVFAKRRSVRRPINFFVLNLAVSDLIVALLGYPMTAASAFSNRWIFDNIGCKIYAFLCFNSGVISIMTHAALSFCRYIIICQYGYRKKITQTTVLRTLFSIWSFAMFWTLSPLFGWSSYVIEVVPVSCSVN--WYGHGLGDVSYTISVIVAVYVFPLSIIVFSYGMILQEKVCGIRARYTPRFIQDIEQRVTFISFLMMAAFMVAWTPYAIMSALAIGSFN--VENSFAALPTLFAKASCAYNPFIYAFTNANFRDTVVEIMAPWTTRRVGVSTLPWRRRTSAVNTTDI
->RGR_HUMAN
----------------------MAETSALPTGFGELEVLAVGMVLLVEALSGLSLNTLTIFSFCKTPELRTPCHLLVLSLALADSGIS-LNALVAATSSLLRRWPYGSDGCQAHGFQGFVTALASICSSAAIAWGRYHHYCTRS---QLAWNSAVSLVLFVWLSSAFWAALPLLGWGHYDYEPLGTCCTLD--YSKGDRNFTSFLFTMSFFNFAMPLFITITSYSLME--------------QKLGKSGHLQVNTTLPARTLLLGWGPYAILYLYAVIADVTSISPKLQMVPALIAKMVPTINAINYALGNEMVCRGIWQCLSPQKREKDRTK----------------
->PE23_PIG
-------------MWAPERSAEEQGNLTRSLGSSEDCGSVSVVFPMTMLITGFVGNALAMLLVSQSYRRKKSFLLCIGWLALTDMVGQLLTSPVVIVLYLSHQLDPSGRLCTFFGLTMTAFGLSSLFIASAMAVERALAIRAPHYSSHMKTSATRAVLLGVWLAVLAFALLPVLGVG----QYTGTWCFISNETSSENNWGNIFFASAFSFLGLSALVVTFACNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKTIFNQTSQNECNFFLIAVRLASLNQILDPWVYLLLRKILLQKFCQAVSQKQREEAATLIFTHPGEARVLFSKSK
->ACM1_MACMU
-------------MNTSAPPAVSPNITVLAPGKGPWQVAFIGITTGLLSLATVTGNLLVLISFKVNTELKTVNNYFLLSLACADLIIGTFSMNLYTTYLLMGHWALGTLACDLWLALDYVASNASVMNLLLISFDRYFSVTRPLYRAKRTPRRAALMIGLAWLVSFVLWAPAILFWQYLV-VL--GQCYIQ------FLSQPIITFGTAMAAFYLPVTVMCTLYWRIYRETENRRGKAKRKTFSLVKEKKAARTLSAILLAFILTWTPYNIMVLVSTFCKDC-VPETLWELGYWLCYVNSTINPMCYALCNKAFRDTFRLLLLCRWDKRRWRKIPKRPSRQC-------
->GPRF_CERAE
-----MDPEETSVYLDYYYATSPNPDIRETHSHVPYTSVFLPVFYIAVFLTGVLGNLVLMGALHFKPGSRRLIDIFIINLAASDFIFLVTLPLWVDKEASLGLWRTGSFLCKGSSYMISVNMHCSVFLLTCMSVDRYLAIVCPVSRKFRRTDCAYVVCASIWFISCLLGLPTLLSRELT-IDD-KPYCAEK----KATPLKLIWSLVALIFTFFVPLLSIVTCYCRIARKLCAH---YQQSGKHNKKLKKSIKIIFIVVAAFLVSWLPFNTSKLLAIVSGLQAILQLGMEVSGPLAFANSCVNPFIYYIFDSYIRRAIVHCLCPCLKNYDFGSSTETALSTFIHAEDFT
->NK3R_RAT
--G--NFSSALGLPATTQAPSQVRANLTNQFVQPSWRIALWSLAYGLVVAVAVFGNLIVIWIILAHKRMRTVTNYFLVNLAFSDASVAAFNTLINFIYGLHSEWYFGANYCRFQNFFPITAVFASIYSMTAIAVDRYMAIIDPL-KPRLSATATKIVIGSIWILAFLLAFPQCLYSK---GR---TLCYVQ--WPEGPKQHFTYHIIVIILVYCFPLLIMGVTYTIVGITLWGG--PCDKYHEQLKAKRKVVKMMIIVVVTFAICWLPYHVYFILTAIYQQLKYIQQVYLASFWLAMSSTMYNPIIYCCLNKRFRAGFKRAFRWCPFIQVSSY----TTRFHPTRQSSL
->CKR3_CERAE
-MTTSLYTVETFGPTSYDDDMGLLC---EKADVGALIAQFVPPLYSLVFTVGLLGNVVVVMILIKYRRLRIMTNIYLLNLAISDLLFLFTLPFWIHYVREHN-WVFSHGMCKVLSGFYHTGLYSEIFFIILLTIDRYLAIVHAVALRARTVTFGVITSIVTWGLAVLVALPEFIFYGTEE-LF-ETLCSAIYPQDTVYSWRHFHTLKMTILCLALPLLVMAICYTGIIKTL---------LKCPSKKKYKAIRLIFVIMAVFFIFWTPYNVAILISTYQSILKHVDLVVLVTEVIAYSHCCVNPVIYAFVGERFRKYLRHFFHRHVLMHLGRYIPFLT-------SSVS
->PE24_HUMAN
---------------------MSTPGVNSSASLSPDRLNSPVTIPAVMFIFGVVGNLVAIVVLCKSRKKETTFYTLVCGLAVTDLLGTLLVSPVTIATYMKGQWPGGQPLCEYSTFILLFFSLSGLSIICAMSVERYLAINHAYYSHYVDKRLAGLTLFAVYASNVLFCALPNMGLGSSRLQYPDTWCFID---WTTNVTAHAAYSYMYAGFSSFLILATVLCNVLVCGALLRMAAAASSFRRIAGAEIQMVILLIATSLVVLICSIPLVVRVFVNQLYQPSEVSKNPDLQAIRIASVNPILDPWIYILLRKTVLSKAIEKIKCLFCRIGGSRRERSQRTSSAMSGHSR
->GPR4_PIG
---------------------MGNGTWEGCHVDSRVDHLFPPSLYIFVIGVGLPTNCLRLWAAYRQVRQRNELGVYLMNLSIADLLYICTLPLWVDYFLHHDNWIHGPGSCKLFGFIFYTNIYISIAFLCCISVDRYLAVAHPLFARLRRVKTAVAVSSVVWATELGANSVPLFHDEL--NH---TFCFEKPMEGWVAWMVAWMNLYRVFVGFLFPWALMLLSYRGILRAVRG------SVSTERQEKAKIKRLALSLIAIVLVCFAPYHVLLLSRSAVYLGERVFSAYHSSLAFTSLNCVADPILYCLVNEGARSDVAKALHNLLRFLTSDKPQEMDTPLTSKRNSMA
->PE23_BOVIN
-PFCTRFNHSDPGIWAAERAVEAPNNLTLPPEPSEDCGSVSVAFSMTMMITGFVGNALAITLVSKSYRRKKSFLLCIGWLALTDMVGQLLTSPVVIVLYLSHQLDPSGRLCTFFGLTMTVFGLSSLFIASAMAVERALATRAPHYSSHMKTSVTRAVLLGVWLAVLAFALLPVLGVG----QYTGTWCFISNGTNSRQNWGNVFFASAFAILGLSALVVTFACNLATIKALVSRAKASQSSAQWGRITTETAIQLMGIMCVLSVCWSPLLIMMLKMIFNHTSQDECNFFLIAVRLASLNQILDPWVYLLLRKILLQKFCQLLKGHSYGLDTEGGTENNLYISNLSRFFI
->OPSD_RANCA
-MNGTEGPNFYVPMSNKTGIVRSPFEYPQYYLAEPWKYSVLAAYMFLLILLGLPINFMTLYVTIQHKKLRTPLNYILLNLAFANHFMVLCGFTITMYTSLHGYFVFGQTGCYFEGFFATLGGEIALWSLVVLAIERYIVVCKPMSNFRFGENHAMMGVAFTWIMALACAVPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFVVHFLIPLIIISFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVVIMVIFFLICWVPYAYVAFYIFTHQGSEFGPIFMTVPAFFAKSSAIYNPVIYIMLNKQFRNCMITTLCCGKNPFGDEDASSAATSVSTSQVSPA
->OPS6_DROME
-GR----NLSLAESVPAEIMHMVDPYWYQWPPLEPMWFGIIGFVIAILGTMSLAGNFIVMYIFTSSKGLRTPSNMFVVNLAFSDFMMMFTMFPPVVLNGFYGTWIMGPFLCELYGMFGSLFGCVSIWSMTLIAYDRYCVIVKGMARKPLTATAAVLRLMVVWTICGAWALMPLFGWNRYVPEGNMTACGTD--YFAKDWWNRSYIIVYSLWVYLTPLLTIIFSYWHIMKAVAAHNVANSEADKSKAIEIKLAKVALTTISLWFFAWTPYTIINYAGIFESMH-LSPLSTICGSVFAKANAVCNPIVYGLSHPKYKQVLREKMPCLACGKDDLTSDSRSESQA-------
->OPRM_HUMAN
-LSHLDGNLSDPCGPNRTDLGGRDSLCPPTGSPSMITAITIMALYSIVCVVGLFGNFLVMYVIVRYTKMKTATNIYIFNLALADALATSTLPFQSVNYLMGT-WPFGTILCKIVISIDYYNMFTSIFTLCTMSVDRYIAVCHPVALDFRTPRNAKIINVCNWILSSAIGLPVMFMATTKYGS---IDCTLT-FSHPTWYWENLLKICVFIFAFIMPVLIITVCYGLMILRLKSVRML-SGSKEKDRNLRRITRMVLVVVAVFIVCWTPIHIYVIIKALVTIPTFQTVSWHFCIALGYTNSCLNPVLYAFLDENFKRCFREFCIPTSSNIEQQNSTRIPSTANTVDRTNH
->AA2A_MOUSE
-----------------------------------MGSSVYIMVELAIAVLAILGNVLVCWAVWINSNLQNVTNFFVVSLAAADIAVGVLAIPFAITISTG--FCAACHGCLFIACFVLVLTQSSIFSLLAIAIDRYIAIRIPLYNGLVTGMKAKGIIAICWVLSFAIGLTPMLGWNNCST-K-RVTCLFE-----DVVPMNYMVYYNFFAFVLLPLLLMLAIYLRIFLAARRQESQGERTRSTLQKEVHAAKSLAIIVGLFALCWLPLHIINCFTFFCSTCHAPPWLMYLAIILSHSNSVVNPFIYAYRIREFRQTFRKIIRTHVLRRQEPFRAGGAHSTEGEQVSLR
->OPSG_CAVPO
-DAYEDSTQASLFTYTNSNNTRGPFEGPNYHIAPRWVYHLTSAWMTIVVIASIFTNGLVLVATMRFKKLRHPLNWILVNLAVADLAETVIASTISVVNQVYGYFVLGHPLCVVEGYTVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLAIVGIVFSWVWSAVWTAPPIFGWSRYWPYGLKTSCGPDVFSGTSYPGVQSYMMVLMVTCCITPLSIIVLCYLHVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMVLAYCLCWGPYAFFACFATANPGYSFHPLVAALPAYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVEDSSELSSTSRSVSPAA------
->CCR4_CERTO
-IYTSDNYTEEMG-SGDYDSIKEPC---FREKNAHFNRIFLPTIYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAVAN--WYFGNFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQKPRKLLAEKVVYVGVWIPALLLTIPGFIFASVSE-DD-RFICDRF---YPNDLWVVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYIGISIDSFILLENTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->OPSB_ANOCA
-MNGTEGINFYVPLSNKTGLVRSPFEYPQYYLAEPWKYKVVCCYIFFLIFTGLPINILTLLVTFKHKKLRQPLNYILVNLAVADLFMACFGFTVTFYTAWNGYFIFGPIGCAIEGFFATLGGQVALWSLVVLAIERYIVVCKPMGNFRFSATHALMGISFTWFMSFSCAAPPLLGWSRYIPEGMQCSCGPDYYTLNPDYHNESYVLYMFGVHFVIPVVVIFFSYGRLICKVREAAAQQQESASTQKAEREVTRMVILMVLGFLLAWTPYAMVAFWIFTNKGVDFSATLMSVPAFFSKSSSLYNPIIYVLMNKQFRNCMITTICCGKNPFGDEDVSSSVSSVSSSQVSPA
->O1A2_HUMAN
--------------MKKENQSFNLDFILLGVTSQQEQNNVFFVIFLCIYPITLTGNLLIILAICADIRLHNPMYFLLANLSLVDIIFSSVTIPKVLANHLLGSKFISFGGCLMQMYFMIALAKADSYTLAAMAYDRAVAISCPLYTTIMSPRSCILLIAGSWVIGNTSALPHTLLTASL---SANFYCDIMKLSCSDVVFFNVKMMYLGVGVFSLPLLCIIVSYVQVFSTV--------FQVPSTKSLFKAFCTCGSHLTVVFLYYGTTMGMYFRPLTSY----SPKDAVITVMYVAVTPALNPFIYSLRNWDMKAALQKLFSKRISS---------------------
->A2AC_MOUSE
-AEGPNGSDAGEWGSGGGANASGTDWVPPPGQYSAGAVAGLAAVVGFLIVFTVVGNVLVVIAVLTSRALRAPQNLFLVSLASADILVATLVMPFSLANELMAYWYFGQVWCGVYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRVKATIVAVWLISAVISFPPLVSFYR-------PQCGLN--------DETWYILSSCIGSFFAPCLIMGLVYARIYRVAKLRRRAVCRRKVAQAREKRFTFVLAVVMGVFVLCWFPFFFSYSLYGICREAQLPEPLFKFFFWIGYCNSSLNPVIYTVFNQDFRRSFKHILFRRRRRGFRQ-----------------
->5H2C_RAT
-LLVWQFDISISPVAAIVTDTFNSSDGGRLFQFPDGVQNWPALSIVVIIIMTIGGNILVIMAVSMEKKLHNATNYFLMSLAIADMLVGLLVMPLSLLAILYDYWPLPRYLCPVWISLDVLFSTASIMHLCAISLDRYVAIRNPIHSRFNSRTKAIMKIAIVWAISIGVSVPIPVIGLRD-VF--NTTCVL---------NDPNFVLIGSFVAFFIPLTIMVITYFLTIYVLRRQKKKPRGTMQAINNEKKASKVLGIVFFVFLIMWCPFFITNILSVLCGKAKLMEKLLNVFVWIGYVCSGINPLVYTLFNKIYRRAFSKYLRCDYKPDKKPPVRQIALSGRELNVNIY
->OPRM_PIG
-FSHLEGNLSDPCIRNRTELGGSDSLCPPTGSPSMVTAITIMALYSIVCVVGLFGNFLVMYVIVRYTKMKTATNIYIFNLALADALATSTLPFQSVNYLMGT-WPFGTILCKIVISIDYYNMFTSIFTLCTMSVDRYIAVCHPVALDFRTPRNAKIINVCNWILSSAIGLPVMFMATTKYGS---IDCALT-FSHPTWYWENLLKICVFIFAFIMPVLIITVCYGLMILRLKSVRML-SGSKEKDRNLRRITRMVLVVVAVFIVCWTPIHIYVIIKALITIPTFQTVSWHFCIALGYTNSCLNPVLYAFLDENFKRCFREFCIPTSSTIEQQNSARIPSTANTVDRTNH
->B1AR_FELCA
-LPDGAATAARLLVPASPSASPLTPTSEGPAPLSQQWTAGIGLLMALIVLLIVAGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVMRGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITSPFYQSLLTRARARALVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCFARRAARGGHAAAGCLPGTRPPPSPG
->BONZ_HUMAN
-------MAEHDYHEDYGFSSFNDSSQEEHQDFLQFSKVFLPCMYLVVFVCGLVGNSLVLVISIFYHKLQSLTDVFLVNLPLADLVFVCTLPFWAYAGIHE--WVFGQVMCKSLLGIYTINFYTSMLILTCITVDRFIVVVKATNQQAKRMTWGKVTSLLIWVISLLVSLPQIIYGNVFNLD--KLICGYH-----DEAISTVVLATQMTLGFFLPLLTMIVCYSVIIKTL---------LHAGGFQKHRSLKIIFLVMAVFLLTQMPFNLMKFIRSTHWEYTSFHYTIMVTEAIAYLRACLNPVLYAFVSLKFRKNFWKLVKDIGCLPYLGVSHQWKTFSASHNVEAT
->CH23_HUMAN
-EDEDYNTSISYGDEYPDYLDSIVVLEDLSPLEARVTRIFLVVVYSIVCFLGILGNGLVIIIATFKMK-KTVNMVWFLNLAVADFLFNVFLPIHITYAAMDYHWVFGTAMCKISNFLLIHNMFTSVFLLTIISSDRCISVLLPVSQNHRSVRLAYMACMVIWVLAFFLSSPSLVFRDTAN-SS--WPTHSQ-MDPVGYSRHMVVTVTRFLCGFLVPVLIITACYLTIVCKL---------QRNRLAKTKKPFKIIVTIIITFFLCWCPYHTLNLLELHHTAMSVFSLGLPLATALAIANSCMNPILYVFMGQDFKK-FKVALFSRLVNALSEDTGHSFTKMSSMNERTS
->TSHR_HUMAN
-LQAFDSHYDYTICGDSEDMVCTPKSDEFNPCEDIMGYKFLRIVVWFVSLLALLGNVFVLLILLTSHYKLNVPRFLMCNLAFADFCMGMYLLLIASVDLYTHSWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWYAITFAMLDRKIRLRHACAIMVGGWVCCFLLALLPLVGISSY----KVSICLPM-----TETPLALAYIVFVLTLNIVAFVIVCCCHVKIYITVRNP------QYNPGDKDTKIAKRMAVLIFTDFICMAPISFYALSAILNKPLITVSNSKILLVLFYPLNSCANPFLYAIFTKAFQRDVFILLSKFGICKRQAQAYRGSTDIQVQKVTHD
->GHSR_PIG
-SEEPGPNLTLPDLGWDAPPENDSLVEELLPLFPTPLLAGVTATCVALFVVGIAGNLLTMLVVSRFREMRTTTNLYLSSMAFSDLLIFLCMPLDLFRLWQYRPWNLGNLLCKLFQFVSESCTYATVLTITALSVERYFAICFPLAKVVVTKGRVKLVILVIWAVAFCSAGPIFVLVG---T-D-TNECRAT---FAVRSGLLTVMVWVSSVFFFLPVFCLTVLYSLIGRKLWRRGE-AVGSSLRDQNHKQTVKMLAVVVFAFILCWLPFHVGRYLFSKSLEPQISQYCNLVSFVLFYLSAAINPILYNIMSKKYRVAVFKLLGFEPFSQRKLSTLKDESSINT------
->B1AR_RAT
-LPDGAATAARLLVLASPPASLLPPASEGSAPLSQQWTAGMGLLLALIVLLIVVGNVLVIVAIAKTPRLQTLTNLFIMSLASADLVMGLLVVPFGATIVVWGRWEYGSFFCELWTSVDVLCVTASIETLCVIALDRYLAITLPFYQSLLTRARARALVCTVWAISALVSFLPILMHWWRAR-R--KCCDFV--------TNRAYAIASSVVSFYVPLCIMAFVYLRVFREAQKQNGRRRPSRLVALREQKALKTLGIIMGVFTLCWLPFFLANVVKAFHRDL-VPDRLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFQRLLCCARRAACRRRAAHGCLARAGPPPSPG
->ACM2_CHICK
------------MNNSTYINSSSENVIALESPYKTIEVVFIVLVAGSLSLVTIIGNILVMVSIKVNRHLQTVNNYFLFSLACADLIIGIFSMNLYTLYTVIGYWPLGPVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPVKRTTKMAGMMIAAAWVLSFILWAPAILFWQFIV-VP-DKDCYIQ------FFSNPAVTFGTAIAAFYLPVIIMTVLYWQISRASKSRVKMPAKKKPPPSREKKVTRTILAILLAFIITWTPYNVMVLINSFCASC-IPGTVWTIGYWLCYINSTINPACYALCNATFKKTFKHLLMCHYKNIGATR----------------
->GPRK_HUMAN
-ATAVTTVRTNASGLEVPLFHLFARLDEELHGTFPGLCVALMAVHGAIFLAGLVLNGLALYVFCCRTRAKTPSVIYTINLVVTDLLVGLSLPTRFAVYYGA---RGCLRCAFPHVLGYFLNMHCSILFLTCICVDRYLAIVRPEPAACRQPACARAVCAFVWLAAGAVTLSVLGVTG----------S-----------RPCCRVFALTVLEFLLPLLVISVFTGRIMCALSRP----GLLHQGRQRRVRAMQLLLTVLIIFLVCFTPFHARQVAVALWPDMHTSLVVYHVAVTLSSLNSCMDPIVYCFVTSGFQATVRGLFGQHGEREPSSGDVVSSGRHHILSAGPH
->ACM1_HUMAN
-------------MNTSAPPAVSPNITVLAPGKGPWQVAFIGITTGLLSLATVTGNLLVLISFKVNTELKTVNNYFLLSLACADLIIGTFSMNLYTTYLLMGHWALGTLACDLWLALDYVASNASVMNLLLISFDRYFSVTRPLYRAKRTPRRAALMIGLAWLVSFVLWAPAILFWQYLV-VL-AGQCYIQ------FLSQPIITFGTAMAAFYLPVTVMCTLYWRIYRETENRRGKAKRKTFSLVKEKKAARTLSAILLAFILTWTPYNIMVLVSTFCKDC-VPETLWELGYWLCYVNSTINPMCYALCNKAFRDTFRLLLLCRWDKRRWRKIPKRPSRQC-------
->ML1A_HUMAN
--------MQGNGSALPNASQ---PVLRGDGARPSWLASALACVLIFTIVVDILGNLLVILSVYRNKKLRNAGNIFVVSLAVADLVVAIYPYPLVLMSIFNNGWNLGYLHCQVSGFLMGLSVIGSIFNITGIAINRYCYICHSLYDKLYSSKNSLCYVLLIWLLTLAAVLPNLRAGT-LQYDP-IYSCTFA------QSVSSAYTIAVVVFHFLVPMIIVIFCYLRIWILVLQVQR-PDRKPKLKPQDFRNFVTMFVVFVLFAICWAPLNFIGLAVASDPASRIPEWLFVASYYMAYFNSCLNAIIYGLLNQNFRKEYRRIIVSLCTARVFFVDSSNWKPSPLMTNNNV
->TSHR_RAT
-LQAFDSHYDYTVCGDNEDMVCTPKSDEFNPCEDIMGYKFLRIVVWFVSPMALLGNVFVLFVLLTSHYKLTVPRFLMCNLAFADFCMGVYLLLIASVDLYTHTWQTG-PGCNTAGFFTVFASELSVYTLTVITLERWYAITFAMLDRKIRLRHAYTIMAGGWVSCFLLALLPMVGISSY----KVSICLPM-----TDTPLALAYIALVLLLNVVAFVIVCSCYVKIYITVRNP------QYNPRDKDTKIAKRMAVLIFTDFMCMAPISFYALSALMNKPLITVTNSGVLLVLFYPLNSCANPFLYAIFTKAFQRDVFILLSKFGLCKHQAQAYQANTGIQIQKIPQD
->OPS2_DROME
-AQSS-GNGSVLDNVLPDMAHLVNPYWSRFAPMDPMMSKILGLFTLAIMIISCCGNGVVVYIFGGTKSLRTPANLLVLNLAFSDFCMMASQSPVMIINFYYETWVLGPLWCDIYAGCGSLFGCVSIWSMCMIAFDRYNVIVKGINGTPMTIKTSIMKILFIWMMAVFWTVMPLIGWSAYVPEGNLTACSID--YMTRMWNPRSYLITYSLFVYYTPLFLICYSYWFIIAAVAAHMNVRSSEDCDKSAEGKLAKVALTTISLWFMAWTPYLVICYFGLFKIDG-LTPLTTIWGATFAKTSAVYNPIVYGISHPKYRIVLKEKCPMCVFGNTDEPKPDATSEADSKA----
->OPRD_HUMAN
-PPLFANASDAYPSACPSAGANASGPPGARSASSLALAIAITALYSAVCAVGLLGNVLVMFGIVRYTKMKTATNIYIFNLALADALATSTLPFQSAKYLMET-WPFGELLCKAVLSIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPAKAKLINICIWVLASGVGVPIMVMAVTRPGA---VVCMLQ-FPSPSWYWDTVTKICVFLFAFVVPILIITVCYGLMLLRLRSVRLL-SGSKEKDRSLRRITRMVLVVVGAFVVCWAPIHIFVIVWTLVDIDPLVVAALHLCIALGYANSSLNPVLYAFLDENFKRCFRQLCRKPCGRPDPSSFSRARVTACTPSDGPG
->OPSD_.ENLA
-MNGTEGPNFYVPMSNKTGVVRSPFDYPQYYLAEPWQYSALAAYMFLLILLGLPINFMTLFVTIQHKKLRTPLNYILLNLVFANHFMVLCGFTVTMYTSMHGYFIFGPTGCYIEGFFATLGGEVALWSLVVLAVERYIVVCKPMANFRFGENHAIMGVAFTWIMALSCAAPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFIVHFTIPLIVIFFCYGRLLCTVKEAAAQQQESLTTQKAEKEVTRMVVIMVVFFLICWVPYAYVAFYIFTHQGSNFGPVFMTVPAFFAKSSAIYNPVIYIVLNKQFRNCLITTLCCGKNPFGDEDGSSAASSVSSSQVSPA
->PAFR_HUMAN
-----------------------MEPHDSSHMDSEFRYTLFPIVYSIIFVLGVIANGYVLWVFARLYPKFNEIKIFMVNLTMADMLFLITLPLWIVYYQNQGNWILPKFLCNVAGCLFFINTYCSVAFLGVITYNRFQAVTRPITAQANTRKRGISLSLVIWVAIVGAASYFLILDSTN-G--NVTRCFEH---YEKGSVPVLIIHIFIVFSFFLVFLIILFCNLVIIRTLLMQP---VQQQRNAEVKRRALWMVCTVLAVFIICFVPHHVVQLPWTLAELGQAINDAHQVTLCLLSTNCVLDPVIYCFLTKKFRKHLTEKFYSMRSSRKCSRATTDPFNQIPGNSLKN
->OPSG_SCICA
-DSHEDSTQSSIFTYTNSNATRGPFEGPNYHIAPRWVYHITSTWMIIVVIASVFTNGLVLVATMKFKKLRHPLNWILVNLAIADLAETVIASTISVVNQLYGYFVLGHPLCVVEGYTVSVCGITGLWSLAIISWERWLVVCKPFGNMRFDAKLAIVGIAFSWIWSAVWTAPPIFGWSRYWPYGLKTSCGPDVFSGTSYPGVQSYMMVLMVTCCIIPLSIIILCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMVFAYCLCWGPYTFFACFATANPGYAFHPLVAALPAYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVDDTSELSSASKSVSPAA------
->HH2R_RAT
--------------------MEPNGTVHSCCLDSMALKVTISVVLTTLILITIAGNVVVCLAVSLNRRLRSLTNCFIVSLAATDLLLGLLVLPFSAIYQLSFTWSFGHVFCNIYTSLDVMLCTASILNLFMISLDRYCAVTDPLYPVLVTPVRVAISLVFIWVISITLSFLSIHLGWN--RN-TF-KCKVQ--------VNEVYGLVDGLVTFYLPLLIMCVTYYRIFKIAREQR--ISSWKAATIREHKATVTLAAVMGAFIICWFPYFTAFVYRGLRGDD-INEAVEGIVLWLGYANSALNPILYAALNRDFRTAYQQLFHCKFASHNSHKTSLRRSQSREGRW---
->V1AR_RAT
-SSPWWPLTTEGSNGSQEAARLGEGDSPLGDVRNEELAKLEIAVLAVIFVVAVLGNSSVLLALHRTPRKTSRMHLFIRHLSLADLAVAFFQVLPQLCWDITSSFRGPDWLCRVVKHLQVFAMFASAYMLVVMTADRYIAVCHPLKTLQQPARRSRLMIATSWVLSFILSTPQYFIFSVIETK--TQDCWAT---FIQPWGTRAYVTWMTSGVFVAPVVVLGTCYGFICYHIWRNLLVVSSVKSISRAKIRTVKMTFVIVSAYILCWAPFFIVQMWSVWDENFDSENPSITITALLASLNSCCNPWIYMFFSGHLLQDCVQSFPCCHSMAQKFAKDDSTSYSNNRSPTNS
->GPR1_HUMAN
-EDLEETLFEEFENYSYDLDYYSLESDLEEKVQLGVVHWVSLVLYCLAFVLGIPGNAIVIWFTGLKWK-KTVTTLWFLNLAIADFIFLLFLPLYISYVAMNFHWPFGIWLCKANSFTAQLNMFASVFFLTVISLDHYIHLIHPVSHRHRTLKNSLIVIIFIWLLASLIGGPALYFR--D--NN-HTLCYNNHDPDLTLIRHHVLTWVKFIIGYLFPLLTMSICYLCLIFKV---------KKRTVLISSRHFWTILVVVVAFVVCWTPYHLFSIWELTIHHNHVMQAGIPLSTGLAFLNSCLNPILYVLISKKFQARFRSSVAEILKYTLWEVSCSGNSETKNLCLLET
->DADR_MACMU
---------------MRTLNTSAMDGTGLVVERDFSVRILTACFLSLLILSTLLGNTLVCAAVIRFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVAEIAGFWPFG-SFCNIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPKAAFILISVAWTLSVLISFIPVQLSWHKAGN-TIDNCDSS--------LSRTYAISSSVISFYIPVAIMIVTYTRIYRIAQKQVECESSFKMSFKRETKVLKTLSVIMGVFVCCWLPFFILNCILPFCGSGCIDSITFDVFVWFGWANSSLNPIIYAFNA-DFRKAFSTLLGCYRLCPATNNAIETAAMFSSH-----
->AG2R_CANFA
-------MILNSSTEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYVAIVHPMSPVRRTMLMAKVTCIIIWLLAGLASLPTIIHRNVFF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFLFPFLIILTSYTLIWKTLKRA----YEIQKNKPRNDDIFKIIMAIVLFFFFSWVPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKKYFLQLLKYIPPKAKSHSSLSTRPSD-------H
->OPSD_ATHBO
-MNGTEGPYFYIPMLNTTGVVRSPYEYPQYYLVNPAAYAVLGAYMFFLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTIYTSMHGYFVLGRLGCNVEGFSATLGGEIALWSLVVLAIERWVVVCKPISNFRFGENHAIMGVAFTWFMAAACAVPPLFGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFTCHFCIPLMVVFFCYGRLVCAVKEAAAAQQESETTQRAEREVTRMVIIMVVSFLVSWVPYASVAWYIFTHQGSEFGPLFMTIPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASSSSVSSSSVSPAA
->RDC1_RAT
-YVEPGNYSDSNWPCNSSDCIVVDTVQCPAMPNKNVLLYTLSFIYIFIFVIGMIANSVVVWVNIQAKTTGYDTHCYILNLAIADLWVVITIPVWVVSLVQHNQWPMGELTCKITHLIFSINLFGSIFFLACMSVDRYLSITYFTTSSYKKKMVLRVVCVLVWLLAFFVSLPDTYYLKTVTNNE--TYCRSFYPEHSIKEWLIGMELVSVILGFAVPFTIIAIFYFLLARAM---------SASGDQEKHSSRKIIFSYVVVFLVCWLPYHFVVLLDIFSILHNVLFTALHVTQCLSLVHCCVNPVLYSFINRNYRYELMKAFIFKYSAKTGLTKLIDEYSALEQNAKA-
->IL8A_RAT
-EGDFEEEFGNITRMLPTGEYFSPC----KR-VPMTNRQAVVVFYALVFLLSLLGNSLVMLVILYRRRTRSVTDVYVLNLAIADLLFSLTLPFLAVSKWKG--WIFGTPLCKMVSLLKEVNFFSGILLLACISVDRYLAIVHATRTLTRKRYLVKFVCMGTWGLSLVLSLPFAIFRQAYK-RS-GTVCYEV-LGEATADLRITLRGLSHIFGFLLPLFIMLVCYGLTLRTL---------FKAHMRQKRRAMWVIFAVVLVFLLCCLPYNLVLLSDTLLGAHNNIDQALYITEILGFSHSCLNPVIYAFVGQSFRHEFLKILAN--LVHKEVLTHHS------------
->CB2R_RAT
-----MEGCRELELTNGSNGGLEFNPMKEYMILSDAQQIAVAVLCTLMGLLSALENVAVLYLILSSQRRRKPSYLFIGSLAGADFLASVIFACNFVIFHVFHG-VDSRNIFLLKIGSVTMTFTASVGSLLLTAVDRYLCLCYPPYKALVTRGRALVALGVMWVLSALISYLPLMGWTC-----CPSPCSEL------FPLIPNDYLLGWLLFIAILFSGIIYTYGYVLWKAHQHTEHQVPGIARMRLDVRLAKTLGLVMAVLLICWFPALALMGHSLVTTLSDKVKEAFAFCSMLCLVNSMVNPIIYALRSGEIRSAAQHCLTGWKKYLQGLGSEGKVTETEAEVKTTT
->LSHR_HUMAN
-ESELSGWDYEYGFCLPKTPRCAPEPDAFNPCEDIMGYDFLRVLIWLINILAIMGNMTVLFVLLTSRYKLTVPRFLMCNLSFADFCMGLYLLLIASVDSQTKGWQTG-SGCSTAGFFTVFASELSVYTLTVITLERWHTITYAILDQKLRLRHAILIMLGGWLFSSLIAMLPLVGVSNY----KVSICFPM-----VETTLSQVYILTILILNVVAFFIICACYIKIYFAVRNP------ELMATNKDTKIAKKMAILIFTDFTCMAPISFFAISAAFKVPLITVTNSKVLLVLFYPINSCANPFLYAIFTKTFQRDFFLLLSKFGCCKRRAELYRRSNCKNGFTGSNK
->OPSD_LIZSA
-MNGTEGPYFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFLLILVGFPINFLTLYVTIEHKKLRTPLNYILLNLAVANLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIALWSLVVLAIERWMVVCKPISNFRFGEDHAIMGLAFTWVMAAACAVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVIYMFVCHFLIPLVVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVSRMVVIMVVAFLICWCPYAGVAWYIFTHQGSEFGPLFMTFPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTSVSSSSVSPAA-
->CB1R_FELCA
-EFYNKSLSSYKENEENIQCGENFMDMECFMILNPSQQLAIAVLSLTLGTFTVLENLLVLCVILHSRSRCRPSYHFIGSLAVADLLGSVIFVYSFVDFHVFHR-KDSPNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKKIVTRPKAVVAFCLMWTIAIVIAVLPLLGWNCK-K--LQSVCSDI------FPLIDETYLMFWIGVTSVLLLFIVYAYMYILWKAHIHSEDQVTRPDQARMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNKLIKTVFAFCSMLCLLNSTVNPIIYALRSKDLRHAFRSMFPSCEGTAQPLDNSMGHANNTANVHRAA
->EDG3_HUMAN
-TALPPRLQPVRGNETLREHYQYVGKLAGRLKEASEGSTLTTVLFLVICSFIVLENLMVLIAIWKNNKFHNRMYFFIGNLALCDLLAG-IAYKVNILMSGKKTFSLSPTVWFLREGSMFVALGASTCSLLAIAIERHLTMIKMRPYDANKRHRVFLLIGMCWLIAFTLGALPILGWNCL-H--NLPDCSTI------LPLYSKKYIAFCISIFTAILVTIVILYARIYFLVKSS---KVANHNNSERSMALLRTVVIVVSVFIACWSPLFILFLIDVACRVQCPILFKAQWFIVLAVLNSAMNPVIYTLASKEMRRAFFRLVCNCLVRGRGARASPIRSKSSSSNNSSH
->UR2R_HUMAN
-AATGSSVPEPPGGPNATLNSSWASPTEPSSLEDLVATGTIGTLLSAMGVVGVVGNAYTLVVTCRSLRAVASMYVYVVNLALADLLYLLSIPFIVATYVTKE-WHFGDVGCRVLFGLDFLTMHASIFTLTVMSSERYAAVLRPLDTVQRPKGYRKLLALGTWLLALLLTLPVMLAMR---GP--KSLCLPA----WGPRAHRAYLTLLFATSIAGPGLLIGLLYARLARAYRRSQR--ASFKRARRPGARALRLVLGIVLLFWACFLPFWLWQLLAQYHQAPRTARIVNYLTTCLTYGNSCANPFLYTLLTRNYRDHLRGRVRGPGSGGGRGPVPSLRCSGRSLSSCSP
->AA2B_CHICK
---------------------------------MNTMKTTYIVLELIIAVLSIAGNVLVCWAVAINSTLKNATNYFLVSLAVADIAVGLLAIPFAITISIG--FQVDFHSCLFFACFVLVLTQSSIFSLLAVAIDRYLAIKIPLYNSLVTGKRARGLIAVLWLLSFVIGLTPLMGWNKAMG-A-FISCLFE-----NVVTMSYMVYFNFFGCVLLPLIIMLGIYIKIFMVACKQ---MGNSRTTLQKEVHAAKSLAIIVGLFAFCWLPLHILNCITHFHEEFSKPEWVMYVAIILSHANSVINPIIYAYRIRDFRYTFHKIISKILCKTDDFPKCTTVTNVNAPAASVT
->5H2A_MOUSE
-NTSEASNWTIDAENRTNLSCEGYLPPTCLSILHLQEKNWSALLTTVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAVWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHSRFNSRTKAFLKIIAVWTISVGISMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVAFFIPLTIMVITYFLTIKSLQKEEPGGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESNVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENRKPLQLILAYKSSQLQVGQK
->US27_HCMVA
--------MTTSTNNQTLTQVSNMTNHTLNSTEIYQLFEYTRLGVWLMCIVGTFLNVLVITTILYYRRKKSPSDTYICNLAVADLLIVVGLPFFLEYAKHHP-KLSREVVCSGLNACFYICLFAGVCFLINLSMDRYCVIVWGVLNRVRNNKRATCWVVIFWILAVLMGMPHYLMYSHT-----NNECVGE-ANETSGWFPVFLNTKVNICGYLAPIALMAYTYNRMVRFI---------INYVGKWHMQTLHVLLVVVVSFASFWFPFNLALFLESIRLLANVIIFCLYVGQFLAYVRACLNPGIYILVGTQMRKDMWTTLRVFACCCVKQEIPYQKDIQRRAKHTKR
->NK1R_HUMAN
------MDNVLPVDSDLSPNISTNTSEPNQFVQPAWQIVLWAAAYTVIVVTSVVGNVVVMWIILAHKRMRTVTNYFLVNLAFAEASMAAFNTVVNFTYAVHNEWYYGLFYCKFHNFFPIAAVFASIYSMTAVAFDRYMAIIHPL-QPRLSATATKVVICVIWVLALLLAFPQGYYST---SR---VVCMIEWPEHPNKIYEKVYHICVTVLIYFLPLLVIGYAYTVVGITLE---IPSDRYHEQVSAKRKVVKMMIVVVCTFAICWLPFHIFFLLPYINPDLKFIQQVYLAIMWLAMSSTMYNPIIYCCLNDRFRLGFKHAFRCCPFISAGDY----STRYLQTQGSVY
->5H1A_HUMAN
--MDVLSPGQGNNTTSPPAPFETGGNTTGISDVTVSYQVITSLLLGTLIFCAVLGNACVVAAIALERSLQNVANYLIGSLAVTDLMVSVLVLPMAALYQVLNKWTLGQVTCDLFIALDVLCCTSSILHLCAIALDRYWAITDPIYVNKRTPRRAAALISLTWLIGFLISIPPMLGW-----DP--DACTIS--------KDHGYTIYSTFGAFYIPLLLMLVLYGRIFRAARFRKNEEAKRKMALARERKTVKTLGIIMGTFILCWLPFFIVALVLPFCESSHMPTLLGAIINWLGYSNSLLNPVIYAYFNKDFQNAFKKIIKCKFCRQ--------------------
->IL8B_MOUSE
-SGDLDIFN-YSSGMPSILPDAVPC----HSENLEINSYAVVVIYVLVTLLSLVGNSLVMLVILYNRSTCSVTDVYLLNLAIADLFFALTLPVWAASKVNG--WTFGSTLCKIFSYVKEVTFYSSVLLLACISMDRYLAIVHATSTLIQKRHLVKFVCIAMWLLSVILALPILILRNPVK-LS-TLVCYED-VGNNTSRLRVVLRILPQTFGFLVPLLIMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLVFLLCWLPYNLVLFTDTLMRTKDDIDKALNATEILGFLHSCLNPIIYAFIGQKFRHGLLKIMATYGLVSKEFLAKEG------------
->GPRY_MOUSE
-LCSSHGMHFITNYSDQASQNFGVPNVTSCPMDEKLLSTVLTTFYSVIFLVGLVGNIIALYVFLGIHRKRNSIQIYLLNVAVADLLLIFCLPFRIMYHINQNKWTLGVILCKVVGTLFYMNMYISIILLGFISLDRYIKINRSIQRRAITTKQSIYVCCIVWTVALAGFLTMIILTLKK-----STMCFHY--RDRHNAKGEAIFNFVLVVMFWLIFLLIILSYIKIGKNLLRISKR--SKFPNSGKYATTARNSFIVLIIFTICFVPYHAFRFIYISSQLNEIIHKTNEIMLVFSSFNSCLDPVMYFLMSSNIRKIMCQLLFRRFQSEASRSESTSLHDLSVTVKMPQ
->PAR2_RAT
----LDTPPPITGKGAPVEPGFSVDEFSASVLTGKLTTVFLPVIYIIVFVIGLPSNGMALWVFFFRTKKKHPAVIYMANLALADLLSVIWFPLKISYHLHGNDWTYGDALCKVLIGFFYGNMYCSILFMTCLSVQRYWVIVNPMGHSRKRANIAVGVSLAIWLLIFLVTIPLYVMRQTIY--N--TTCHDVLPEEVLVGDMFSYFLSLAIGVFLFPALLTASAYVLMIKTL------SAMDEHSEKKRRRAIRLIITVLSMYFICFAPSNVLLVVHYFLIKSSHVYALYLVALCLSTLNSCIDPFVYYFVSKDFRDQARNALLCRSVRTVKRMQISLKSSS--------
->5H5A_MOUSE
-LPVNLTSFSLSTPSSLEPNRSDTEVLRPSRPFLSAFRVLVLTLLGFLAAATFTWNLLVLATILKVRTFHRVPHNLVASMAISDVLVAVLVMPLSLVHELSGRWQLGRRLCQLWIACDVLCCTASIWNVTAIALDRYWSITRHLYTLRTRKRVSNVMILLTWALSTVISLAPLLFGWGE-S-E-SEECQVS--------REPSYTVFSTVGAFYLPLWLVLFVYWKIYRAAKFRATVTEGDTWREQKEQRAALMVGILIGVFVLCWFPFFVTELISPLCSW-DVPAIWKSIFLWLGYSNSFFNPLIYTAFNRSYSSAFKVFFSKQQ-----------------------
->IL8A_GORGO
-PQMWDFDDLNFTGMPPIDEDYSPC----RLETETLNKYVVIITYALAFLLSLLGNSLVMLVILYSRGGRSVTDVYLLNLALADLLFALTLPIWAASKVNG--WIFGTFLCKVVSLLKEVNFYSGILLLACISVDRYLAIVHATRTLTQKRHLVKFVCLGCWGLSMILSLPFFLFRQAYH-NS-SPVCYEV-LGNDTAKWRMVLRILPHTFGFIVPLFVMLFCYGFTLRTL---------FKAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLADTLMRTQNNVSLALDATEILGFLHSCLNPIIYAFIGQNFRHGFLKILAMHGLVSKEFLARHR------------
->5H2A_RAT
-NTSEASNWTIDAENRTNLSCEGYLPPTCLSILHLQEKNWSALLTTVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAIWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHSRFNSRTKAFLKIIAVWTISVGISMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVAFFIPLTIMVITYFLTIKSLQKEEPGGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESNVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENRKPLQLILAYKSSQLQVGQK
->SSR2_BOVIN
-ELNETQPWLTTPFDLNGSVGAANISNQTEPYYDLASNVVLTFIYFVVCIIGLCGNTLVIYVILRYAKMKTITNIYILNLAIADELFMLGLPFLAMQVALVH-WPFGKAICRVVMTVDGINQFTSIFCLTVMSIDRYLAVVHPISAKWRRPRTAKMINVAVWGVSLLVILPIMIYAGLRSWG--RSSCTIN-WPGESGAWYTGFIIYAFILGFLVPLTIICLCYLFIIIKVKSSGIR-VGSSKRKKSEKKVTRMVSIVVAVFIFCWLPFYIFNVSSVSVAISPALKGMFDFVVVLTYANSCANPILYAFLSDNFKKSFQNVLCLVKVSGTDDGERSDLNETTETQRTLL
->GP42_HUMAN
------------------------MDTGPDQSYFSGNHWFVFSVYLLTFLVGLPLNLLALVVFVGKLRRPVAVDVLLLNLTASDLLLLLFLPFRMVEAANGMHWPLPFILCPLSGFIFFTTIYLTALFLAAVSIERFLSVAHPLYKTRPRLGQAGLVSVACWLLASAHCSVVYVIEFSGD--T--GTCYLE-FWKDQLAILLPVRLEMAVVLFVVPLIITSYCYSRLVWILGR--------GGSHRRQRRVAGLVAATLLNFLVCFGPYNVSHVVGYICG---ESPVWRIYVTLLSTLNSCVDPFVYYFSSSGFQADFHELLRRLCGLWGQWQQESSGGEEQRADRPAE
->APJ_MACMU
----------MEEGGDFDNYYGADNQSECEYTDWKSSGALIPAIYMLVFLLGTTGNGLVLWTVFRSSRKRRSADIFIASLAVADLTFVVTLPLWATYTYRDYDWPFGTFSCKLSSYLIFVNMYASVFCLTGLSFDRYLAIVRPVNARLRLRVSGAVATAVLWVLAALLAMPVMVFRTTGDQCY-MDYSMVA-TVSSDWAWEVGLGVSSTTVGFVVPFTIMLTCYFFIAQTIAGHFR--KERIEGLRKRRRLLSIIVVLVVTFALCWMPYHLVKTLYMLGSLLLFLMNVFPYCTCISYVNSCLNPFLYAFFDPRFRQACTSMLCCGQSRCAGTSHSSSSSGHSQGPGPNM
->AG22_MOUSE
-RNITSSRPFDNLNATGTNESAFNC----SHKPSDKHLEAIPVLYYMIFVIGFAVNIVVVSLFCCQKGPKKVSSIYIFNLALADLLLLATLPLWATYYSYRYDWLFGPVMCKVFGSFLTLNMFASIFFITCMSVDRYQSVIYPFLSQRRNPWQASYVVPLVWCMACLSSLPTFYFRDVRT-LG--NACIMAFPPEKYAQWSAGIALMKNILGFIIPLIFIATCYFGIRKHLLKT----NSYGKNRITRDQVLKMAAAVVLAFIICWLPFHVLTFLDALTWMGAVIDLALPFAILLGFTNSCVNPFLYCFVGNRFQQKLRSVFRVPITWLQGKRETMSREMD-------T
->FSHR_SHEEP
-FDMMYSEFDYDLCSEVVDVTCSPEPDAFNPCEDIMGYDILRVLIWFISILAITGNILVLVILITSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDVHTKSWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLECKVHVRHAASIMLVGWVFAFAVALFPIFGISSY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYTHIYLTVRNP------NITSSSSDTKIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKSKILLVLFYPINSCANPFLYAIFTRNFRRDFFILLSKFGCYEVQAQTYRSNFHPRNGHCPPA
->YN84_CAEEL
-EVFHHISTTNKIFQKMFDKRNFSTDYTFNPKTFPGYRTYVASTYISFNVVGFVINAWVLYVVAPLLFVPKSILFYIFALCVGDLMTMIAMLLLVIELVFG--TWQFS-SMVCTSYLIFDSMNKFMAPMIVFLISRTCYSTVCLGEKAATLKYAIIQFCIAFAFVMILLWPVFAYSQVFTQEVVMRKCGFF----PPPQIEFWFNLIACITSYAVPLFGIIYWYVSVPFFLKRR---LVASSSMDAALRKVITTVLLLTVIYVLCWTPYWVSMFANRIWIMEKSIIIISYFIHLLPYISCVAYPLIFTLLNRGIRSAHAKIVADQRRRFRSLTDEASRTIPGTKMKKNE
->5H1D_CANFA
-SPPNQSLEGLLQEASNRSLNATETPEAWGPETLQALKISLALLLSIITMATALSNAFVLTTIFLTRKLHTPANYLIGSLAMTDLLVSILVMPISIAYTTTRTWSFGQILCDIWLSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGRAAVMIATVWVISICISIPPLFWR----Q-E--SDCQVN-------TSQISYTIYSTCGAFYIPSVLLIILYGRIYVAARNRKLALERKRISAARERKATKTLGIILGAFIVCWLPFFVASLVLPICRASWLHPALFDFFTWLGYLNSLINPIIYTVFNEEFRQAFQRVVHVRKAS---------------------
->GASR_BOVIN
-GASLCRSGGPLLNGSGTGNLSCEPPRIRGAGTRELELAIRVTLYAVIFLMSVGGNVLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVVCKAVSYFMGVSVSVSTLSLVAIALERYSAICRPLARVWQTRSHAARVIVATWMLSGLLMVPYPVYTAVQP---V-LQCMHR---WPSARVRQTWSVLLLLLLFFVPGVVMAVAYGLISRELYLGPGPTRPAQAKLLAKKRVVRMLLVIVVLFFLCWLPVYSANTWRAFDGPGALSGAPISFIHLLTYASACVNPLVYCFMHRRFRQACLDTCTRCCPRPPRARPRPLPSIASLSRLSYT
->BRS4_BOMOR
-QTLPSAISSIAHLESLNDSFILGAKQSEDVSPGLEILALISVTYAVIISVGILGNTILIKVFFKIKSMQTVPNIFITSLAFGDLLLLLTCVPVDASRYIVDTWMFGRAGCKIISFIQLTSVGVSVFTLTVLSADRYRAIVKPLLQTSDAVLKTCGKAVCVWIISMLLAAPEAVFSDLYETT--FEACAPY---VSEKILQETHSLICFLVFYIVPLSIISAYYFLIAKTLYKSMPAHTHARKQIESRKRVAKTVLVLVALFAVCWLPNHMLYLYRSFTYHSAFHLSATIFARVLAFSNSCVNPFALYWLSRSFRQHFKKQVYCCKTEPPAS--QQSTGITAVKGNIQM
->OPSB_RAT
------MSGE-EFYLFQNISSVGPWDGPQYHIAPVWAFHLQAAFMGFVFFAGTPLNATVLVATLHYKKLRQPLNYILVNVSLGGFLFCIFSVFTVFIASCHGYFLFGRHVCALEAFLGSVAGLVTGWSLAFLAFERYLVICKPFGNIRFNSKHALTVVLITWTIGIGVSIPPFFGWSRFIPEGLQCSCGPDWYTVGTKYRSEHYTWFLFIFCFIIPLSLICFSYFQLLRTLRAVAAQQQESATTQKAEREVSHMVVVMVGSFCLCYVPYAALAMYMVNNRNHGLYLRLVTIPAFFSKSSCVYNPIIYCFMNKQFRACILEMVCRKPMTD---ESDMSSTVSSSKVGPH-
->NK2R_RABIT
-----MGACDIVTEANISSDIDSNATGVTAFSMPGWQLALWATAYLALVLVAVVGNATVIWIILAHRRMRTVTNYFIVNLALADLCMATFNAAFNFVYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAADRYMAIVHPF-QPRLSGPGTKAVIAGIWLVALALAFPQCFYST---GA---TKCVVAWPEDSGGKMLLLYHLTVIALIYFLPLVVMFVAYSVIGFKLWRRPGHHGANLRHLRAKKKFVKTMVLVVVTFAVCWLPYHLYFLLGHFQDDIKFIQQVYLVLFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWVTPTEE----HTPSLSVRVNRC
->PAR2_MOUSE
----LETQPPITGKGVPVEPGFSIDEFSASILTGKLTTVFLPVVYIIVFVIGLPSNGMALWIFLFRTKKKHPAVIYMANLALADLLSVIWFPLKISYHLHGNNWVYGEALCKVLIGFFYGNMYCSILFMTCLSVQRYWVIVNPMGHPRKKANIAVGVSLAIWLLIFLVTIPLYVMKQTIY--N--TTCHDVLPEEVLVGDMFNYFLSLAIGVFLFPALLTASAYVLMIKTL------SAMDEHSEKKRQRAIRLIITVLAMYFICFAPSNLLLVVHYFLIKTSHVYALYLVALCLSTLNSCIDPFVYYFVSKDFRDHARNALLCRSVRTVNRMQISLKSGS--------
->OPSD_CARAU
-MNGTEGDMFYVPMSNATGIVRSPYDYPQYYLVAPWAYACLAAYMFFLIITGFPVNFLTLYVTIEHKKLRTPLNYILLNLAISDLFMVFGGFTTTMYTSLHGYFVFGRVGCNPEGFFATLGGEMGLWSLVVLAFERWMVVCKPVSNFRFGENHAIMGVVFTWFMACTCAVPPLVGWSRYIPEGMQCSCGVDYYTRPQAYNNESFVIYMFIVHFIIPLIVIFFCYGRLVCTVKEAAAQHEESETTQRAEREVTRMVVIMVIGFLICWIPYASVAWYIFTHQGSEFGPVFMTLPAFFAKTAAVYNPCIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->TRFR_HUMAN
-------------MENETVSELNQTQLQPRAVVALEYQVVTILLVLIICGLGIVGNIMVVLVVMRTKHMRTPTNCYLVSLAVADLMVLVAAGLPNITDSIYGSWVYGYVGCLCITYLQYLGINASSCSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWAFTSLYCMLWFFLLDLN--DA-SCGYKIS------RNYYSPIYLMDFGVFYVVPMILATVLYGFIARILFLNLNVNRCFNSTVSSRKQVTKMLAVVVILFALLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCKQKPTEKPANYSVKESDHFSTELDD
->PE24_MOUSE
-GTIPRSNRELQRCVLLTTTIMSIPGVNASFSSTPERLNSPVTIPAVMFIFGVVGNLVAIVVLCKSRKKETTFYTLVCGLAVTDLLGTLLVSPVTIATYMKGQWPGDQALCDYSTFILLFFGLSGLSIICAMSIERYLAINHAYYSHYVDKRLAGLTLFAIYASNVLFCALPNMGLGRSERQYPGTWCFID---WTTNVTAYAAFSYMYAGFSSFLILATVLCNVLVCGALLRMAAAVASFRRIAGAEIQMVILLIATSLVVLICSIPLVVRVFINQLYQPNDISRNPDLQAIRIASVNPILDPWIYILLRKTVLSKAIEKIKCLFCRIGGSGRDSSRRTSSAMSGHSR
->C3AR_CAVPO
---------------MESSSAETNSTGLHLEPQYQPETILAMAILGLTFVLGLPGNGLVLWVAGLKMR-RTVNTVWFLHLTVADFVCCLSLPFSMAHLALRGYWPYGEILCKFIPTVIIFNMFASVFLLTAISLDRCLMVLKPICQNHRNVRTACIICGCIWLVAFVLCIPVFVYRETFT-EE-DDLSPFT-HEYRTPRLLKVITFTRLVVGFLLPMIIMVACYTLIIFRM--------RRVRVVKSWNKALHLAMVVVTIFLICWAPYHVFGVLILFINPEAALLSWDHVSIALASANSCFNPFLYALLGRDLRKRVRQSMKGILEAAFSEDISKSAFS---------
->GPR3_MOUSE
-GAGSSMAWFSAGSGSVNVSSVDPVEEPTGPATLLPSPRAWDVVLCISGTLVSCENALVVAIIVGTPAFRAPMFLLVGSLAVADLLAG-LGLVLHFAAD-F--CIGSPEMSLMLVGVLAMAFTASIGSLLAITVDRYLSLYNALYYSETTVTRTYVMLALVWVGALGLGLVPVLAWNCR-D--GLTTCGVV-------YPLSKNHLVVLAIAFFMVFGIMLQLYAQICRIVCRHIALHLLPASHYVATRKGIATLAVVLGAFAACWLPFTVYCLLGDA----DSPRLYTYLTLLPATYNSMINPVIYAFRNQDVQKVLWAICCCCSTSKIPFRSRSP------------
->OPSD_OCTDO
---MVESTTLVNQTWWYNPTVDIHPHWAKFDPIPDAVYYSVGIFIGVVGIIGILGNGVVIYLFSKTKSLQTPANMFIINLAMSDLSFSAINGFPLKTISAFMKWIFGKVACQLYGLLGGIFGFMSINTMAMISIDRYNVIGRPMASKKMSHRRAFLMIIFVWMWSIVWSVGPVFNWGAYVPEGILTSCSFD--YLSTDPSTRSFILCMYFCGFMLPIIIIAFCYFNIVMSVSNHRLNLRKAQAGASAEMKLAKISMVIITQFMLSWSPYAIIALLAQFGPAEWVTPYAAELPVLFAKASAIHNPIVYSVSHPKFREAIQTTFPWLLTCCQFDEKECEEVVASERG-GES
->B1AR_MELGA
-WLPPDCGPHNRSGGGGATAAPTGSRQVSAELLSQQWEAGMSLLMALVVLLIVAGNVLVIAAIGRTQRLQTLTNLFITSLACADLVMGLLVVPFGATLVVRGTWLWGSFLCECWTSLDVLCVTASIETLCVIAIDRYLAITSPFYQSLMTRARAKVIICTVWAISALVSFLPIMMHWWRDL-K--GCCDFV--------TNRAYAIASSIISFYIPLLIMIFVYLRVYREAKEQNGRRKTSRVMAMREHKALKTLGIIMGVFTLCWLPFFLVNIVNVFNRDL-VPDWLFVFFNWLGYANSAFNPIIYCRSP-DFRKAFKRLLCFPRKADRRLHAGGQFISTLGSPEHSP
->5H1B_CAVPO
-PAVLGSQTGLPHANVSAPPNNAP-SHIYQDSIALPWKVLLVVLLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAFTDLLVSILVMPISTMYTVTGRWTLGQALCDFWLSSDITCCTASIMHLCVIALDRYWAITDAVYSAKRTPRRAAGMIALVWVFSICISLPPFFWR----E-E--LDCLVN-------TDHVLYTVYSTGGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGVILGAFIVCWLPFFIISLVMPICKDAWFHMAIFDFFTWLGYLNSLINPIIYTMSNEDFKQAFHKLIRFKCTT---------------------
->BRB2_MOUSE
-IEMFNVTTQVLGSALNGTLSKDNC---PDTEWWSWLNAIQAPFLWVLFLLAALENLFVLSVFFLHKNSCTVAEIYLGNLAAADLILACGLPFWAITIANNFDWVFGEVLCRVVNTMIYMNLYSSICFLMLVSIDRYLALVKTMMGRMRGVRWAKLYSLVIWGCTLLLSSPMLVFRTMRE-HN--TACVIV---YPSRSWEVFTNVLLNLVGFLLPLSVITFCTVRILQVLRNN---EMKKFKEVQTERKATVLVLAVLGLFVLCWVPFQISTFLDTLLRLGHAVDVITQISSYVAYSNSGLNPLVYVIVGKRFRKKSREVYRVLCQKGGCMGEPVQLRTS-------I
->OPSB_APIME
-YVPSMREKFLGWNVPPEYSDLVRPHWRAFPAPGKHFHIGLAIIYSMLLIMSLVGNCCVIWIFSTSKSLRTPSNMFIVSLAIFDIIMAFEMPMLVISSFMERM--GWEIGCDVYSVFGSISGMGQAMTNAAIAFDRYRTISCPI-DGRLNSKQAAVIIAFTWFWVTPFTVLPLLKVWGRYTEGFLTTCSFD--FLTDDEDTKVFVTCIFIWAYVIPLIFIILFYSRLLSSIRNHNVKSNQDKER-SAEVRIAKVAFTIFFLFLLAWTPYATVALIGVYGNRELLTPVSTMLPAVFAKTVSCIDPWIYAINHPRYRQELQKRCKWMGIHEPETTSDATKTDE--------
->O.YR_HUMAN
-GALAANWSAEAANASAAPPGAEGNRTAGPPRRNEALARVEVAVLCLILLLALSGNACVLLALRTTRQKHSRLFFFMKHLSIADLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLRRRTDRLAVLATWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYITWITLAVYIVPVIVLATCYGLISFKIWQNRVAVSSVKLISKAKIRTVKMTFIIVLAFIVCWTPFFFVQMWSVWDANA-KEASAFIIVMLLASLNSCCNPWIYMLFTGHLFHELVQRFLCCSASYLKGRRLGENSSSFVLSHRSS
->OPSR_CAPHI
-ANFEESTQGSIFTYTNSNSTRDPFEGPNYHIAPRWVYHLTSAWMVFVVIASVFTNGLVLAATMRFKKLRHPLNWILVNLAIADLAETIIASTISVVNQMYGYFVLGHPLCVVEGYTVSLCGITGLWSLAIISWERWMVVCKPFGNVRFDAKLATAGIAFSWIWAAVWTAPPIFGWSRYWPHGLKTSCGPDVFSGSSYPGVQSYMIVLMITCCFIPLSVIILCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVMVMIFAYCLCWGPYTFFACFAAAHPGYAFHPLVAALPAYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVDDS-----SELASSV--SSVSPA
->APJ_HUMAN
----------MEEGGDFDNYYGADNQSECEYTDWKSSGALIPAIYMLVFLLGTTGNGLVLWTVFRSSRKRRSADIFIASLAVADLTFVVTLPLWATYTYRDYDWPFGTFFCKLSSYLIFVNMYASVFCLTGLSFDRYLAIVRPVNARLRLRVSGAVATAVLWVLAALLAMPVMVLRTTGDQCY-MDYSMVA-TVSSEWAWEVGLGVSSTTVGFVVPFTIMLTCYFFIAQTIAGHFR--KERIEGLRKRRRLLSIIVVLVVTFALCWMPYHLVKTLYMLGSLLLFLMNIFPYCTCISYVNSCLNPFLYAFFDPRFRQACTSMLCCGQSRCAGTSHSSSSSGHSQGPGPNM
->NY1R_PIG
-TLSSQVENHSIYYNFSEKNSQFLAFENDDCHLPLAMIFTLALAYGAVIILGVSGNLALIIIILKQKEMRNVTNILIVNLSFSDLLVAIMCLPFTFVYTLMDHWVFGEVMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPSNRHAYVGIAVIWVLAVASSLPFLIYQVLTDKD--KYVCFDK---FLSDSHRLSYTTLLLVLQYFGPLCFIFICYFKIYIRLKRRNMMMRDNKYRSSETKRINVMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCINPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->OAR1_LYMST
----------MSRDIFMKRLRLHLLFDEVAMVTHIVGDVLSSVLLCAVVLLVLVGNTLVVAAVATSRKLRTVTNVFIVNLACADLLLGVLVLPFSAVNEIKDVWIFGHVWCQVWLAVDVWLCTASILNLCCISLDRYLAITRPIYPGLMSAKRAKTLVAGVWLFSFVICCPPLIGWNDGGT-Y--TTCELT--------NSRGYRIYAALGSFFIPMLVMVFFYLQIYRAAVKTHKPMRLHMQKFNREKKAAKTLAIIVGAFIMCWMPFFTIYLVGAFCENC-ISPIVFSVAFWLGYCNSAMNPCVYALFSRDFRFAFRKLLTCSCKAWSKNRSFRPIQLHCATQDDAK
->OLF5_CHICK
--------------MALGNCTTPTTFILSGLTDNPRLQMPLFMVFLAIYTITLLANLGLIALISVDFHLQTPMYIFLQNLSFTDAAYSTVITPKMLATFLEERRTISYVGCILQYFSFVLLTSSECLLLAVMAYDRYVAICKPLYPAIMTKAVCWRLVEGLYSLAFLNSLVHTSGLLKL---SNHFFCDNSQISSSSTTLNELLVFIFGSWFAMSSIITTPISYVFIILTV--------VRIRSKDGKYKAFSTCTSHLMAVSLFHGTVIFMYLRPVKLF---SLDTDKIASLFYTVVIPMLNPLIYSWRNKEVKDALRRVIATNVWIH--------------------
->A2AR_CARAU
-----------MDVTQSNATKDDANITVTPWPYTETAAAFIILVVSVIILVSIVGNVLVIVAVLTSRALRAPQNLFLVSLACADILVATLVIPFSLANEIMGYWFFGSTWCAFYLALDVLFCTSSIVHLCAISLDRYWSVTKAVYNLKRTPKRIKSMIAVVWVISAVISFPPLIMTKH-------KECLIN--------DETWYILSSSLVSFFAPGFIMITVYCKIYRVAKQRSKQASKTKVAQMREKRFTFVLTVVMGVFVLCWFPFFFTYSLHAICGDSEPPEALFKLFFWIGYCNSSVNPIIYTIFNRDFRKAFKKICLLDCAAHLRDSCLGTCIFECHQKSNQE
->VQ3L_CAPVK
-SNYTTAYNTTYYSDDYDDYEVSIVDIPHCDDGVDTTSFGLITLYSTIFFLGLFGNIIVLTVLRKYKI-KTIQDMFLLNLTLSDLIFVLVFPFNLYDSIAKQ-WSLGDCLCKFKAMFYFVGFYNSMSFITLMSIDRYLAVVHPVSMPIRTKRYGIVLSMVVWIVSTIESFPIMLFYETKK-VY-ITYCHVF-YNDNAKIWKLFINFEINIFGMIIPLTILLYCYYKILNTL----------KTSQTKNKKAIKMVFLIVICSVLFLLPFSVTVFVSSLYLLNRFVNLAVHVAEIVSLCHCFINPLIYAFCSREFTKKLLRLRTTSSAGSISIG----------------
->GP40_HUMAN
---------------------------------MDLPPQLSFGLYVAAFALGFPLNVLAIRGATAHARRLTPSLVYALNLGCSDLLLTVSLPLKAVEALASGAWPLPASLCPVFAVAHFFPLYAGGGFLAALSAGRYLGAAFPLYQAFRRPCYSWGVCAAIWALVLCHLGLVFGLEAPGGTPVGSPVCLEA----WDPASAGPARFSLSLLLFFLPLAITAFCYVGCLRAL-------ARSGLTHRRKLRAAWVAGGALLTLLLCVGPYNASNVASFLYP--NLGGSWRKLGLITGAWSVVLNPLVTGYLGRGPGLKTVCAARTQGGKSQK------------------
->CKR8_MACMU
---MDYTLDPSMTTMTDYYYPDSLSSPCDGELIQRNDKLLLAVFYCLLFVFSLLGNSLVILVLVVCKKLRNITDIYLLNLALSDLLFVFSFPFQTYYQLDQ--WVFGTVMCKVVSGFYYIGFYSSMFFITLMSVDRYLAVVHAVIKVRTIRMGTTTLSLLVWLTAIMATIPLLVFYQVAS-ED-VLQCYSF-YNQQTLKWKIFTNFEMNILGLLIPFTIFMFCYIKILHQL---------KRCQNHNKTKAIRLVLIVVIASLLFWVPFNVVLFLTSLHSMHQQLNYATHVTEIISFTHCCVNPVIYAFVGEKFKKHLSEIFQKSCSHIFIYLGRQMSSSCQQHSFRSS
->NTR1_RAT
-EATFLALSLSNGSGNTSESDTAGPNSDLDVNTDIYSKVLVTAIYLALFVVGTVGNSVTAFTLARKKSLQSTVHYHLGSLALSDLLILLLAMPVELYNFIWVHWAFGDAGCRGYYFLRDACTYATALNVASLSVERYLAICHPFAKTLMSRSRTKKFISAIWLASALLAIPMLFTMGLQN--SGGLVCTPI---VDTATVKVVIQVN-TFMSFLFPMLVISILNTVIANKLTVMEHSMTIEPGRVQALRHGVLVLRAVVIAFVVCWLPYHVRRLMFCYISDEDFYHYFYMLTNALFYVSSAINPILYNLVSANFRQVFLSTLACLCPGWRHRRKKRPSMSSNHAFSTSA
->B3AR_MACMU
-MAPWPHGNSSLVPWPDVPTLAPNTANTSGLPGVPWAAALAGALLALAVLATVGGNLLVIVAITRTPRLQTMTNVFVTSLAAADLVMGLLVVPPAATLVLTGHWPLGATGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRARAAVVLVWVVSAAVSFAPIMSQWWRVQ-R--RCCAFA--------SNMPYVLLSSSVSFYLPLLVMLFVYARVFVVATRQGVPRRPARLLPLREHRALCTLGLIMGTFTLCWLPFFLANVLRALGGPS-VPDPAFLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCHCGGRLPREPCAADAPLRPGPAPRSP
->GALS_MOUSE
-------------MNGSDSQGAEDSSQE-GGGGWQPEAVLVPLFFALIFLVGAVGNALVLAVLLRGGQAVSTTNLFILNLGVADLCFILCCVPFQATIYTLDDWVFGSLLCKAVHFLIFLTMHASSFTLAAVSLDRYLAIRYPMSRELRTPRNALAAIGLIWGLALLFSGPYLSYYS---AN--LTVCHPA----WSAPRRRAMDLCTFVFSYLLPVLVLSLTYARTLHYLWRTDP-VAAGSGSQRAKRKVTRMIVIVAVLFCLCWMPHHALILCVWFGRFPRATYALRILSHLVSYANSCVNPIVYALVSKHFRKGFRKICAGLLRRAPRRASGRVHSGGMLEPESTD
->P2Y3_MELGA
-----------------MSMANFTAGRNSCTFQEEFKQVLLPLVYSVVFLLGLPLNAVVIGQIWLARKALTRTTIYMLNLATADLLYVCSLPLLIYNYTQKDYWPFGDFTCKFVRFQFYTNLHGSILFLTCISVQRYMGICHPLWHKKKGKKLTWLVCAAVWFIVIAQCLPTFVFASTG-----RTVCYDL-SPPDRSASYFPYGITLTITGFLLPFAAILACYCSMARILCQK---ELIGLAVHKKKDKAVRMIIIVVIVFSISFFPFHLTKTIYLIVRSSQAFAIAYKCTRPFASMNSVLDPILFYFTQRKFRESTRYLLDKMSSKWRHDHCITY------------
->OPSD_TURTR
-MNGTEGLNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSVLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVANLFMVFGGFTTTLYTSLHAYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGLALTWIMAMACAAAPLVGWSRYIPEGMQCSCGIDYYTSRQEVNNESFVIYMFVVHFTIPLVIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVVAFLICWVPYASVAFYIFTHQGSDFGPIFMTIPSFFAKSSSIYNPVIYIMMNKQFRNCMLTTLCCGRNPLGDDEASTTASKTETSQVAPA
->A2AB_CAVPO
--------------------------MDHQEPYSVQATAAIAAVITFLILFTIFGNALVILAVLTSRSLPAPQNLFLVSLAAADILVATLIIPFSLANELLGYWYFWRTWCEVYLALDVLFCTSSIVHLCAISLDRYWAVSRALYNSKRTPRRIKCIILTVWLIAAVISLPPLIYKGD-Q-----PQCKIN--------QEAWYILASSIGSFFAPCLIMILVYLRIYLIAKRSGAVWWRRRTQMTREKRFTFVLAVVIGVFVLCWFPFFFTYSLGAICPQHKVPHGLFQFFFWIGYCNSSLNPVIYTIFNQDFRRAFRRILCRQWTQTAW------------------
->CML1_MOUSE
-EYDAYNDSGIYDDEYSDGFGYFVDLEEASPWEAKVAPVFLVVIYSLVCFLGLLGNGLVIVIATFKMK-KTVNTVWFVNLAVADFLFNIFLPMHITYAAMDYHWVFGKAMCKISNFLLSHNMYTSVFLLTVISFDRCISVLLPVSQNHRSIRLAYMTCSAVWVLAFFLSSPSLVFRDTAN-SS--HPAHSQ-VVSTGYSRHVAVTVTRFLCGFLIPVFIITACYLTIVFKL---------QRNRLAKNKKPFKIIITIIITFFLCWCPYHTLYLLELHHTAVSVFSLGLPLATAVAIANSCMNPILYVFMGHDFRK-FKVALFSRLANALSEDTGPSFTKMSSLNEKAS
->5HT1_APLCA
--MKSLKSSTHDVPHPEHVVWAPPAYDEQHHLFFSHGTVLIGIVGSLIITVAVVGNVLVCLAIFTEPISHSKSNFFIVSLAVADLLLALLVMTFALVNDMYGYWLFGETFCFIWMSADVMCETASIFSICVISYDRLKQVQKPLYEEFMTTTRALLIIACLWICSFVLSFVPIFLEWHELGD-AKHVCLFD--------VHFTYSVIYSFICFYVPCTLMLTNYLRLFLIAQTHQLRASSYRNQGTQGSKAARTLTIITGTFLACWLPFFIINPIAAADEHL-IPLECFMVTIWLGYFNSSVNPIIYGTSNSKFRAAFKRLLRCRSVKSVVGSISPVSWIRPSRLDLSS
->5H1A_FUGRU
-NDSNATSGYSDTAAVDWDEGENATGSGSLPDPELSYQIITSLFLGALILCSIFGNSCVVAAIALERSLQNVANYLIGSLAVTDLMVSVLVLPMAALYQVLNKWTLGQDICDLFIALDVLCCTSSILHLCAIALDRYWAITDPIYVNKRTPRRAAVLISVTWLIGFSISIPPMLGWRS---NP--DACIIS--------QDPGYTIYSTFGAFYIPLILMLVLYGRIFKAARFRINEGTRRKIALARERKTVKTLGIIMGTFIFCWLPFFIVALVLPFCAENYMPEWLGAVINWLGYSNSLLNPIIYAYFNKDFQSAFKKILRCKFHRH--------------------
->ACTR_BOVIN
--------------MKHILNLYENINSTARNNSDCPAVILPEEIFFTVSIVGVLENLMVLLAVAKNKSLQSPMYFFICSLAISDMLGSLYKILENVLIMFKNMGSFESTADDVVDSLFILSLLGSICSLSVIAADRYITIFHALYHRIMTPHRALVILTVLWAGCTGSGITIVTFFS----------------------HHHVPTVIAFTALFPLMLAFILCLYVHMFLLARSH---TRRTPSLPKANMRGAVTLTVLLGVFIFCWAPFVLHVLLMTFCPADACYMSLFQVNGVLIMCNAIIDPFIYAFRSPELRVAFKKMVICNCYQ---------------------
->CKR9_MOUSE
-DDFSYDSTASTDDYMNLNFSSFFC---KKNNVRQFASHFLPPLYWLVFIVGTLGNSLVILVYWYCTRVKTMTDMFLLNLAIADLLFLATLPFWAIAAAGQ--WMFQTFMCKVVNSMYKMNFYSCVLLIMCISVDRYIAIVQAMVWRQKRLLYSKMVCITIWVMAAVLCTPEILYSQVSG-G--IATCTMVYPKDKNAKLKSAVLILKVTLGFFLPFMVMAFCYTIIIHTL---------VQAKKSSKHKALKVTITVLTVFIMSQFPYNSILVVQAVDAYATNIDICFQVTQTIAFFHSCLNPVLYVFVGERFRRDLVKTLKNLGCISQAQWVSFT--------GSLK
->5H1B_SPAEH
-CAPPPPAGSQTQTPSSNLSHNSADSYIYQDSIALPWKVLLVALLALITLATTLSNAFVIATVYRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDFWLSSDITCCTASIMHLCVIALDRYWAITDAVYSAKRTPRRAAVMIALVWVFSISISLPRFFWR----E-E--LDCLVN-------TDHVLYTVYSTVGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGAFIVCWLPFFIISLVMPICKDAWFHMAIFDFFNWLGYLNSLINPIIYTMPNEDFKQAFHKLIRFKCTG---------------------
->OPS4_DROVI
-VSGNGDLQFLGWNVPPDQIQHIPEHWLTQLEPPASMHYMLGVFYIFLFCASTVGNGMVIWIFSTSKALRTPSNMFVLNLAVFDFIMCLKAPIFIYNSFHRG-FALGNTGCQIFAAIGSYSGIGAGMTNAAIGYDRLNVITKPM-NRNMTFTKAIIMNVIIWLYCTPWVVLPLTQFWDRFPEGYLTSCTFD--YLTDNFDTRLFVGTIFFFSFVCPTLMIIYYYSQIVGHVFSHNVESNVDKSKDTAEIRIAKAAITICFLFFVSWTPYGVMSLIGAFGDKSLLTPGATMIPACTCKLVACIDPFVYAISHPRYRMELQKRCPWLAIDEKAPESSSAEQQQTTAA----
->OPSG_RABIT
-ESHEDSTQASIFTYTNSNSTRGPFEGPNFHIAPRWVYHLTSAWMILVVIASVFTNGLVLVATMRFKKLRHPLNWILVNLAVADLAETVIASTISVVNQFYGYFVLGHPLCVVEGYTVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLAIAGIAFSWIWAAVWTAPPIFGWSRYWPYGLKTSCGPDVFSGTSYPGVQSYMMVLMVTCCIIPLSVIVLCYLQVWMAIRTVAKQQKESESTQKAEKEVTRMVVVMVFAYCLCWGPYTFFACFATAHPGYSFHPLVAAIPSYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVEDS-----SELASSV--SSVSPA
->NK3R_RABIT
-LVQAGNLSSSLPSSVPGLPTTPRANLTNQFVQPSWRIALWSLAYGVVVAVAVFGNLIVIWIILAHKRMRTVTNYFLVNLAFSDASMAAFNTLVNFIYALHSEWYFGANYCRFQNFFPITAVFASIYSMTAIAVDRYMAIIDPL-KPRLSATATKIVIGSIWILAFLLALPQCLYSK---GR---TLCYVQ--WPEGPKQHFIYHIIVIILVYCFPLLIMGITYTIVGITLWGG--PCDKYHEQLKAKRKVVKMMIIVVVTFAICWLPYHIYFILTAIYQQLKYIQQVYLASFWLAMSSTMYNPIIYCCLNKRFRAGFKRAFRWCPFIQVSSYDELEPTRQSSLYTVTR
->ACM5_HUMAN
--------MEGDSYHNATTVNGTPVNHQPLERHRLWEVITIAAVTAVVSLITIVGNVLVMISFKVNSQLKTVNNYYLLSLACADLIIGIFSMNLYTTYILMGRWALGSLACDLWLALDYVASNASVMNLLVISFDRYFSITRPLYRAKRTPKRAGIMIGLAWLISFILWAPAILCWQYLV-VP-LDECQIQ------FLSEPTITFGTAIAAFYIPVSVMTILYCRIYRETEKRNPSTKRKRVVLVKERKAAQTLSAILLAFIITWTPYNIMVLVSTFCDKC-VPVTLWHLGYWLCYVNSTVNPICYALCNRTFRKTFKMLLLCRWKKKKVEEKLYW------------
->O3A1_HUMAN
-----------MQPESGANGTVIAEFILLGLLEAPGLQPVVFVLFLFAYLVTVRGNLSILAAVLVEPKLHTPMYFFLGNLSVLDVGCISVTVPSMLSRLLSRKRAVPCGACLTQLFFFHLFVGVDCFLLTAMAYDQFLAICRPLYSTRMSQTVQRMLVAASWACAFTNALTHTVAMSTL---NNHFYCDLPQLSCSSTQLNELLLFAVGFIMAGTPMALIVISYIHVAAAV--------LRIRSVEGRKKAFSTCGSHLTVVAIFYGSGIFNYMRLGSTK---LSDKDKAVGIFNTVINPMLNPIIYSFRNPDVQSAIWRMLTGRRSLA--------------------
->CKRB_BOVIN
-YNQSTDYYYEENEMNDTHDYSQYEVICIKEEVRKFAKVFLPAFFTIAFIIGLAGNSTVVAIYAYYKKRRTKTDVYILNLAVADLFLLFTLPFWAVNAVHG--WVLGKIMCKVTSALYTVNFVSGMQFLACISTDRYWAVTKAP-SQSGVGKPCWVICFCVWVAAILLSIPQLVFYTVN----HKARCVPI--YHLGTSMKASIQILEICIGFIIPFLIMAVCYFITAKTL---------IKMPNIKKSQPLKVLFTVVIVFIVTQLPYNIVKFCQAIDIIYKRMDVAIQITESIALFHSCLNPVLYVFMGTSFKNYIMKVAKKYGSW---------NVEEIPFESEDA
->TA2R_HUMAN
---MWPNG-----------SSLGPCFRPTNITLEERRLIASPWFAASFCVVGLASNLLALSVLAGARQTRSSFLTFLCGLVLTDFLGLLVTGTIVVSQHAALFVDPGCRLCRFMGVVMIFFGLSPLLLGAAMASERYLGITRPFRPAVASQRRAWATVGLVWAAALALGLLPLLGVGRYTVQYPGSWCFLT----LGAESGDVAFGLLFSMLGGLSVGLSFLLNTVSVATLCHVYHGEAAQQRPRDSEVEMMAQLLGIMVVASVCWLPLLVFIAQTVLRNPPRTTEKELLIYLRVATWNQILDPWVYILFRRAVLRRLQPRLSTRPRRVSLCGPAWSTATSASRVQAIL
->AG2R_CHICK
-------MVPNYSTEETVKRIHVDC---PVSGRHSYIYIMVPTVYSIIFIIGIFGNSLVVIVIYCYMKLKTVASIFLLNLALADLCFLITLPLWAAYTAMEYQWPFGNCLCKLASAGISFNLYASVFLLTCLSIDRYLAIVHPVSRIRRTMFVARVTCIVIWLLAGVASLPVIIHRNIFF-LN--TVCGFR-YDNNNTTLRVGLGLSKNLLGFLIPFLIILTSYTLIWKTLKKA----YQIQRNKTRNDDIFKMIVAIVFFFFFSWIPHQVFTFLDVLIQLHDIVDTAMPFTICIAYFNNCLNPFFYVFFGKNFKKYFLQLIKYIPPNVSTHPSLTTRPPE-------N
->P2YR_MOUSE
-AAFLAGLGSLWGNSTVASTAAVSSSFQCALTKTGFQFYYLPAVYILVFIIGFLGNSVAIWMFVFHMKPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDAMCKLQRFIFHVNLYGSILFLTCISAHRYSGVVYPLSLGRLKKKNAIYVSVLVWLIVVVAISPILFYSGTG----KTVTCYDT-TSNDYLRSYFIYSMCTTVAMFCIPLVLILGCYGLIVKALIY------NDLDNSPLRRKSIYLVIIVLTVFAVSYIPFHVMKTMNLRARLDDRVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKASRRSEANLQSKSLSEFKQNGDTSL
->NY5R_RAT
--------------NTAAARNAAFPAWEDYRGSVDDLQYFLIGLYTFVSLLGFMGNLLILMAVMKKRNQKTTVNFLIGNLAFSDILVVLFCSPFTLTSVLLDQWMFGKAMCHIMPFLQCVSVLVSTLILISIAIVRYHMIKHPI-SNNLTANHGYFLIATVWTLGFAICSPLPVFHSLVESS--KYLCVES---WPSDSYRIAFTISLLLVQYILPLVCLTVSHTSVCRSISCGAHEKRSITRIKKRSRSVFYRLTILILVFAVSWMPLHVFHVVTDFNDNLRHFKLVYCICHLLGMMSCCLNPILYGFLNNGIKADLRALIHCLHMS---------------------
->THRR_PAPHA
-LTEYRLVSINKSSPLQKPLPAFISEDASGYLTSSWLTLFVPSVYTGVFVVSLPVNIMAIVVFILKMKVKKPAVVYMLHLATADVLFVSVLPFKISYYLSGSDWQFGSELCRFVTAAFYCNMYASILLMTVISIDRFLAVVYPMSLSWRTLGRASFTCLAIWALAIAGVVPLLLKEQTIQ--N--TTCHDVLNETLLEGYYAYYFSAFSAVFFFVPLIISTVCYVSIIRCL------SSSTVANRSKKSRALFLSAAVFCIFIICFGPTNILLIAHYSFLSHEAAYFAYLLCVCVSSISCCIDPLIYYYASSECQRYVYSILCCKESSDPSSSNSSGDTCS--------
->FSHR_HUMAN
-FDMTYTEFDYDLCNEVVDVTCSPKPDAFNPCEDIMGYNILRVLIWFISILAITGNIIVLVILTTSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDIHTKSWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLDCKVQLRHAASVMVMGWIFAFAAALFPIFGISSY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYIHIYLTVRNP------NIVSSSSDTRIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKAKILLVLFHPINSCANPFLYAIFTKNFRRDFFILLSKCGCYEMQAQIYRTNTHPRNGHCSSA
->OPSB_CONCO
-MNGTEGPNFYVPMSNATGVVRSPFEYPQYYLAEPWAFSILAAYMFFLIITGFPINFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVFGETGCNLEGYFATLGGEISLWSLVVLAIERWVVVCKPISNFRFGENHAIMGLTLTWVMANACAMPPLFGWSRYIPEGLQCSCGIDYYTLKPEVNNESFVIYMFLVHFTIPLTIISFCYGRLVCAVKEAAAQQQESETTQRAEREVTRMVVIMVISFLVCWIPYASVAWYIFTHQGSTFGPIFMTVPSFFAKSSSIYNPMIYICMNKQFRNCMITTLFCGKNPFEGEE--EGASAVSS--VSPA
->A2AA_HUMAN
-----MGSLQPDAGNASWNGTEAPGGGARATPYSLQVTLTLVCLAGLLMLLTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKAWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIITVWVISAVISFPPLISIEKKGQ-P--PRCEIN--------DQKWYVISSCIGSFFAPCLIMILVYVRIYQIAKRRRVGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLTAVGCS--VPRTLFKFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->OPSD_TRIMA
-MNGTEGPNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSMLAAYMFLLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNVEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVAFTWVMALACAAPPLAGWSRYIPEGMQCSCGIDYYTLKPEVNNESFVIYMFVVHFTIPMIVIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVIAFLICWVPYASVAFYIFTHQGSNFGPIFMTLPAFFAKSASIYNPVIYIMMNKQFRNCMLTTICCGKNPFAEEEGATTVSKTETSQVAPA
->AA3R_HUMAN
--------------------------MPNNSTALSLANVTYITMEIFIGLCAIVGNVLVICVVKLNPSLQTTTFYFIVSLALADIAVGVLVMPLAIVVSLG--ITIHFYSCLFMTCLLLIFTHASIMSLLAIAVDRYLRVKLTVYKRVTTHRRIWLALGLCWLVSFLVGLTPMFGWN-MKE-Y-FLSCQFV-----SVMRMDYMVYFSFLTWIFIPLVVMCAIYLDIFYIIRNK--NSKETGAFYGREFKTAKSLFLVLFLFALSWLPLSIINCIIYFNGE--VPQLVLYMGILLSHANSMMNPIVYAYKIKKFKETYLLILKACVVCHPSDSLDTS------------
->ET1R_HUMAN
-ELSFLVTTHQPTNLVLPSNGSMHNYCPQQTKITSAFKYINTVISCTIFIVGMVGNATLLRIIYQNKCMRNGPNALIASLALGDLIYVVIDLPINVFKLLAGRNDFGVFLCKLFPFLQKSSVGITVLNLCALSVDRYRAVASWSVQGIGIPLVTAIEIVSIWILSFILAIPEAIGFVMVPKT--HKTCMLNATSKFMEFYQDVKDWWLFGFYFCMPLVCTAIFYTLMTCEMLNRGSL-IALSEHLKQRREVAKTVFCLVVIFALCWFPLHLSRILKKTVYNESFLLLMDYIGINLATMNSCINPIALYFVSKKFKNCFQSCLCCCCYQSKSLMTSVPWKNHDQNNHNTD
->GALS_HUMAN
-------------MNVSGCPGAGNASQAGGGGGWHPEAVIVPLLFALIFLVGTVGNTLVLAVLLRGGQAVSTTNLFILNLGVADLCFILCCVPFQATIYTLDGWVFGSLLCKAVHFLIFLTMHASSFTLAAVSLDRYLAIRYPLSRELRTPRNALAAIGLIWGLSLLFSGPYLSYYR---AN--LTVCHPA----WSAPRRRAMDICTFVFSYLLPVLVLGLTYARTLRYLWRADP-VAAGSGARRAKRKVTRMILIVAALFCLCWMPHHALILCVWFGQFPRATYALRILSHLVSYANSCVNPIVYALVSKHFRKGFRTICAGLLGRAPGRASGRVHSGSVLERESSD
->OPSV_ORYLA
--------MGKYFYLYENISKVGPYDGPQYYLAPTWAFYLQAAFMGFVFFVGTPLNFVVLLATAKYKKLRVPLNYILVNITFAGFIFVTFSVSQVFLASVRGYYFFGQTLCALEAAVGAVAGLVTSWSLAVLSFERYLVICKPFGAFKFGSNHALAAVIFTWFMGV-VRCPPFFGWSRYIPEGLGCSCGPDWYTNCEEFSCASYSKFLLVTCFICPITIIIFSYSQLLGALRAVAAQQAESASTQKAEKEVSRMIIVMVASFVTCYGPYALTAQYYAYSQDENKDYRLVTIPAFFSKSSCVYNPLIYAFMNKQFNGCIMEMVFGKKMEE-----ASESTDS--------
->YWO1_CAEEL
-----------------------------MNHVDYVAHVIVMPIVLSIGMINQCLNVCTLLHIRT------SIFLYLKASAIADILSIVAFIPFLFRHAKLIDELGMFYHAHLELPLINALISASALNIVAMTVDRYVSVCHPINETKPSRRRTMLIIVMIYFIALMIYFPSVFQKKLG-VTTIYTIVRNE---VEALQVFKFYLIVRECICRWGPVLLLVILNMCVVRGLRKIRTEQRQLRSPRDDRSRISVLLFVTSATFIICNIPASVISFFVRRVSGSLFWQIFRAIANLLQVTSYLYNFYLYALCSSEYRHAFLRLFGCRSSLSPTSTGDSPGKRCHQAVVLLG
->CKR5_RAT
---MDFQGSIPTYIYDIDYSMSAPC---QKVNVKQIAAQLLPPLYSLVFIFGFVGNMMVFLILISCKKLKSMTDIYLFNLAISDLLFLLTLPFWAHYAANE--WVFGNIMCKLFTGIYHIGYFGGIFFIILLTIDRYLAIVHAVAIKARTVNFGVITSVVTWVVAVFVSLPEIIFMRSQK-EG-HYTCSPHFLHIQYRFWKHFQTLKMVILSLILPLLVMVICYSGILNTL--------FRCRNEKKRHRAVRLIFAIMIVYFLFWTPYNIVLLLTTFQEYFNRLDQAMQVTETLGMTHCCLNPVIYAFVGEKFRNYLSVFFRKHIVKRFCKHCSIFV-------SSVY
->5HT_HELVI
-TSSEWFDGSNCSWVDAVSWGCTSTNATSTDVTSFVLMAVTSVVLALIILATIVGNVFVIAAIIIERNLQNVANYLVASLAVADLMVACLVMPLGAVYEVSQGWILGPELCDMWTSSDVLCSSASILHLVAIATDRYWAVTDV-YIHIRNEKRIFTMIVLVWGAALVVSLAPQLGWKDPDT-Q--QKCLVS--------QDLAYQIFATMSTFYVPLAVILILYWKIFQTARRRPAPEKKESLEAKRERKAAKTLAIITGAFVFCWLPFFIMALVMPICQTCVISDYLASFFLWLGYFNSTLNPVIYTIFSPDFRQAFARILFGTHRRRRYKKF---------------
->NTR2_HUMAN
------METSSPRPPRPSSNPGLSLDARLGVDTRLWAKVLFTALYALIWALGAAGNALSVHVVLKARARAGRLRHHVLSLALAGLLLLLVGVPVELYSFVWFHWVFGDLGCRGYYFVHELCAYATVLSVAGLSAERCLAVCQPLARSLLTPRRTRWLVALSWAASLGLALPMAVIMGQKH--AASRVCTVL---VVSRTALQVFIQVNVLVSFVLPLALTAFLNGVTVSHLLALGQVRHKDVRRIRSLQRSVQVLRAIVVMYVICWLPYHARRLMYCYVPDDNFYHYFYMVTNTLFYVSSAVTPLLYNAVSSSFRKLFLEAVSSLCGEHHPMKRLPPMDTASGFGDPPE
->NY4R_MOUSE
-HFLAPLFPGSLQGKNGTNPLDSPYNFSDGCQDSAELLAFIITTYSIETILGVLGNLCLIFVTTRQKEKSNVTNLLIANLAFSDFLMCLICQPLTVTYTIMDYWIFGEVLCKMLTFIQCMSVTVSILSLVLVALERHQLIINPT-GWKPSIFQAYLGIVVIWFISCFLSLPFLANSTLNDED--KVVCFVS---WSSDHHRLIYTTFLLLFQYCIPLAFILVCYIRIYQRLQRQKHVAHACSSRAGQMKRINSMLMTMVTAFAVLWLPLHVFNTLEDWYQEACHGNLIFLMCHLLAMASTCVNPFIYGFLNINFKKDIKALVLTCHCRSPQGES---TVHTDLSKGSMR
->PE21_RAT
---MSPYG-LNLSLVDEATTCVTPRVPNTSVVLPTGGNGTSPALPIFSMTLGAVSNVLALALLAQVAGSTATFLLFVASLLAIDLAGHVIPGALVLRLYTAG-RAPAGGACHFLGGCMVFFGLCPLLLGCGMAVERCVGVTQPLHAARVSVARARLALALLAAMALAVALLPLVHVGHYELQYPGTWCFIS--LGPPGGWRQALLAGLFAGLGLAALLAALVCNTLSGLALLRDRRRSRGLRRVHAHDVEMVGQLVGIMVVSCICWSPLLVLVVLAIGGWNSNSLQRPLFLAVRLASWNQILDPWVYILLRQAMLRQLLRLLPLRVSAKGGPTELSLSSLRSSRHSGFS
->OPSG_RAT
-DHYEDSTQASIFTYTNSNSTRGPFEGPNYHIAPRWVYHLTSTWMILVVIASVFTNGLVLAATMRFKKLRHPLNWILVNLAVADLAETIIASTISVVNQIYGYFVLGHPLCVIEGYIVSLCGITGLWSLAIISWERWLVVCKPFGNVRFDAKLATVGIVFSWVWAAVWTAPPIFGWSRYWPYGLKTSCGPDVFSGTSYPGVQSYMMVLMVTCCIFPLSIIVLCYLQVWLAIRAVAKQQKESESTQKAEKEVTRMVVVMVFAYCLCWGPYTFFACFATAHPGYAFHPLVASLPSYFAKSATIYNPIIYVFMNRQFRNCILQLFGKKVDDS-----SELVSSV--SSVSPA
->P2UR_MOUSE
-----MAADLEPWNSTINGTWEGDELGYKCRFNEDFKYVLLPVSYGVVCVLGLCLNVVALYIFLCRLKTWNASTTYMFHLAVSDSLYAASLPLLVYYYARGDHWPFSTVLCKLVRFLFYTNLYCSILFLTCISVHRCLGVLRPLSLRWGRARYARRVAAVVWVLVLACQAPVLYFVTTS-----RITCHDT-SARELFSHFVAYSSVMLGLLFAVPFSVILVCYVLMARRLLKP---YGTTGGLPRAKRKSVRTIALVLAVFALCFLPFHVTRTLYYSFRSLNAINMAYKITRPLASANSCLDPVLYFLAGQRLVRFARDAKPPTEPTPSPQARRKL--TVRKDLSVSS
->A2AC_DIDMA
--MDLQLTTNSTDSGDRGGSSNESLQRQPPSQYSPAEVAGLAAVVSFLIVFTIVGNVLVVIPVLTSRALKAPQNLFLVSLASADILVATLVMPFSLANELMNYWYFGKVWCDIYLALDVLFCTSSIVHLCAISLDRYWSVTQAVYNLKRTPRRIKGIIVTVWLISAVISFPPLISLYR-------PQCELN--------DETWYILSSCIGSFFAPCIIMVLVYVRIYRVAKLRRRKLCRRKVTQAREKRFTFVLAVVMGVFVVCWFPFFFTYSLYGICREAQVPETLFKFFFWFGYCNSSLNPVIYTIFNQDFRRSFKHILFKKKKKTSLQ-----------------
->GPR1_RAT
-EVSREMLFEELDNYSYALEYYSQEPDAEENVYPGIVHWISLLLYALAFVLGIPGNAIVIWFMGFKWK-KTVTTLWFLNLAIADFIFVLFLPLYISYVALSFHWPFGRWLCKLNSFIAQLNMFSSVFFLTVISLDRYIHLIHPGSHPHRTLKNSLLVVLFVWLLASLLGGPTLYFR--D--NN-RIICYNNQEYELTLMRHHVLTWVKFLFGYLLPLLTMSSCYLCLIFKT---------KKQNILISSKHLWMILSVVIAFMVCWTPFHLFSIWELSIHHNNVLQGGIPLSTGLAFLNSCLNPILYVIISKKFQARFRASVAEVLKRSLWEASCSGSAETKSLSLLET
->CCR4_PAPAN
-IYTSDNYTEEMG-SGDYDSIKEPC---FREENAHFNRIFLPTIYSIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAVAN--WYFGNFLCKAVHVIYTVNLYSSVLILAFISLDRYLAIVHATSQRPRKLLAEKVVYVGVWIPALLLTIPDFIFASVSE-DD-RYICDRF---YPNDLWVVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYIGISIDSFILLENTVHKWISITEALAFFHCCLNPILYAFLGAKFKTSAQHALTSVSRGSSLKILSKG----------GH
->D2D1_.ENLA
----MDPQNLSMYNDD------INNGTNGTAVDQKPHYNYYAMLLTLLVFVIVFGNVLVCIAVSREKALQTTTNYLIVSLAVADLLVATLVMPWAVYMEVVGEWRFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSKRRVTVMISVVWVLSFAISCPLLFGLN---S----KVCII---------DNPAFVIYSSIVSFYVPFIVTLLVYVQIYIVLRKRRTSMSKKKLSQHKEKKATQMLAIVLGVFIICWLPFFIIHILNMHCNCN-IPQALYSAFTWLGYVNSAVNPIIYTTFNVEFRKAFIKILHC-------------------------
->OLF8_RAT
----------------MNNKTVITHFLLLGLPIPPEHQQLFFALFLIMYLTTFLGNLLIVVLVQLDSHLHTPMYLFLSNLSFSDLCFSSVTMLKLLQNIQSQVPSISYAGCLTQIFFFLLFGYLGNFLLVAMAYDRYVAICFPLYTNIMSHKLCTCLLLVFWIMTSSHAMMHTLLAARL---SLNFFCDLFKLACSDTYVNELMIHIMGVIIIVIPFVLIVISYAKIISSI--------LKVPSTQSIHKVFSTCGSHLSVVSLFYGTIIGLYLCPSGDN---FSLKGSAMAMMYTVVTPMLNPFIYSLRNRDMKQALIRVTCSKKISLPW------------------
->GASR_MOUSE
-GSSLCRPGVSLLNSSSAGNLSCETPRIRGTGTRELELTIRITLYAVIFLMSVGGNVLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVICKAVSYLMGVSVSVSTLNLAAIALERYSAICRPLARVWQTRSHAARVILATWLLSGLLMVPYPVYTVVQP---I-LQCMHL---WPSERVQQMWSVLLLILLFFIPGVVMAVAYGLISRELYLGTGPPRPNQAKLLAKKRVVRMLLVIVLLFFVCWLPVYSANTWRAFDGPGALAGAPISFIHLLSYTSACANPLVYCFMHRRFRQACLDTCARCCPRPPRARPRPLPSIASLSRLSYT
->OPRK_CAVPO
-LPNGSAWLPGWAEPDGNGSAGPQDEQLEPAHISPAIPVIITAVYSVVFVVGLVGNSLVMFVIIRYTKMKTATNIYIFNLALADALVTTTMPFQSTVYLMNS-WPFGDVLCKIVISIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPLKAKIINICIWLLSSSVGISAIILGGTKVDVD-IIECSLQFPDDDYSWWDLFMKICVFVFAFVIPVLIIIVCYTLMILRLKSVRLL-SGSREKDRNLRRITRLVLVVVAVFIICWTPIHIFILVEALGSTSTAALSSYYFCIALGYTNSSLNPILYAFLDENFKRCFRDFCFPIKMRMERQSTSRVAYMRNVDGVNKP
->OLFD_CANFA
--------------MTEKNQTVVSEFVLLGLPIDPDQRDLFYALFLAMYVTTILGNLLIIVLIQLDSHLHTPMYLFLSNLSFSDLCFSSVTMPKLLQNMQSQVPSIPYAGCLTQMYFFLFFGDLESFLLVAMAYDRYVAICFPLYTTIMSPKLCFSLLVLSWVLTMFHAVLHTLLMARL---CPHFFCDMSKLACSDTQVNELVIFIMGGLILVIPFLLIITSYARIVSSI--------LKVPSAIGICKVFSTCGSHLSVVSLFYGTVIGLYLCPSANN---STVKETIMAMMYTVVTPMLNPFIYSLRNKDMKGALRRVICRKKITFSV------------------
->O2F1_HUMAN
--------------MGTDNQTWVSEFILLGLSSDWDTRVSLFVLFLVMYVVTVLGNCLIVLLIRLDSRLHTPMYFFLTNLSLVDVSYATSVVPQLLAHFLAEHKAIPFQSCAAQLFFSLALGGIEFVLLAVMAYDRYVAVCDALYSAIMHGGLCARLAITSWVSGFISSPVQTAITFQL---PDHISCELLRLACVDTSSNEVTIMVSSIVLLMTPFCLVLLSYIQIISTI--------LKIQSREGRKKAFHTCASHLTVVALCYGVAIFTYIQPHSSP---SVLQEKLFSVFYAILTPMLNPMIYSLRNKEVKGAWQKLLWKFSGLTSKLAT---------------
->OPS._MOUSE
-------------MLSEASDFNSSGSRSEGSVFSRTEHSVIAAYLIVAGITSILSNVVVLGIFIKYKELRTPTNAVIINLAFTDIGVSSIGYPMSAASDLHGSWKFGHAGCQIYAGLNIFFGMVSIGLLTVVAMDRYLTISCPDVGRRMTTNTYLSMILGAWINGLFWALMPIIGWASYA--PTGATCTIN--WRNNDTSFVSYTMMVIVVNFIVPLTVMFYCYYHVSRSLRLYAS-TAHLHRDWADQADVTKMSVIMILMFLLAWSPYSIVCLWACFGNPKKIPPSMAIIAPLFAKSSTFYNPCIYVAAHKKFRKAMLAMFKCQPHLAVPEPSTLPLAPVRI------
->A1AB_RAT
-HNTSAPAHWGELKDDNFTGPNQTSSNSTLPQLDVTRAISVGLVLGAFILFAIVGNILVILSVACNRHLRTPTNYFIVNLAIADLLLSFTVLPFSATLEVLGYWVLGRIFCDIWAAVDVLCCTASILSLCAISIDRYIGVRYSLYPTLVTRRKAILALLSVWVLSTVISIGPLLGWKEP--AP--KECGVT--------EEPFYALFSSLGSFYIPLAVILVMYCRVYIVAKRTHNPIAVKLFKFSREKKAAKTLGIVVGMFILCWLPFFIALPLGSLFSTLKPPDAVFKVVFWLGYFNSCLNPIIYPCSSKEFKRAFMRILGCQCRGGRRRRRRRRTYRPWTRGGSLE
->D4DR_RAT
----MGNSSATGDGGLLAGRGP---ESLGTGTGLGGAGAAALVGGVLLIGMVLAGNSLVCVSVASERILQTPTNYFIVSLAAADLLLAVLVLPLFVYSEVQGGWLLSPRLCDTLMAMDVMLCTASIFNLCAISVDRFVAVTVPL-RYNQQGQCQLLLIAATWLLSAAVAAPVVCGLN---G-R--TVCCL---------EDRDYVVYSSICSFFLPCPLMLLLYWATFRGLRRWPAPRKRGAKITGRERKAMRVLPVVVGAFLMCWTPFFVVHITRALCPACFVSPRLVSAVTWLGYVNSALNPIIYTIFNAEFRSVFRKTLRLRC-----------------------
->GP52_HUMAN
-SRWTEWRILNMSSGIVNASERHSCPLGFGHYSVVDVCIFETVVIVLLTFLIIAGNLTVIFAFHCAPLHHYTTSYFIQTMAYADLFVGVSCLVPTLSLLHYSTGVHESLTCRVFGYIISVLKSVSMACLACISVDRYLAITKPLYNQLVTPCRLRICIILIWIYSCLIFLPSFFGWG---PGY-IFEWCAT-----SWLTSAYFTGFIVCLLYAPAAFVVCFTYFHIFKICRQHFPSDSSRETGHSPDRRYAMVLFRITSVFYMLWLPYIIYFLLESSRV--LDNPTLSFLTTWLAVSNSFCNCVIYSLSNGVFRLGLRRLFETMCTSCMCVKDQEARANSCSI-----
->ACTR_MOUSE
--------------MKHIINSYEHTNDTARNNSDCPDVVLPEEIFFTISVIGILENLIVLLAVIKNKNLQSPMYFFICSLAISDMLGSLYKILENILIMFRNMGSFESTADDIIDCMFILSLLGSIFSLSVIAADRYITIFHALYHSIVTMRRTIITLTIIWMFCTGSGITMVIFFS----------------------HHHIPTVLTFTSLFPLMLVFILCLYIHMFLLARSH---ARKISTLPRTNMKGAMTLTILLGVFIFCWAPFVLHVLLMTFCPNNVCYMSLFQVNGMLIMCNAVIDPFIYAFRSPELRDAFKRMLFCNRY----------------------
->SSR4_HUMAN
-GEEGLGTAWPSAANASSAPAEAEEAVAGPGDARAAGMVAIQCIYALVCLVGLVGNALVIFVILRYAKMKTATNIYLLNLAVADELFMLSVPFVASSAALRH-WPFGSVLCRAVLSVDGLNMFTSVFCLTVLSVDRYVAVVHPLAATYRRPSVAKLINLGVWLASLLVTLPIAIFADTRPGGQ-AVACNLQ---WPHPAWSAVFVVYTFLLGFLLPVLAIGLCYLLIVGKMRAVALR-AGWQQRRRSEKKITRLVLMVVVVFVLCWMPFYVVQLLNLVVTS--LDATVNHVSLILSYANSCANPILYGFLSDNFRRSFQRVLCLRCCLLEGAGGAEETALKSKGGAGCM
->OPSD_PIG
-MNGTEGPNFYVPFSNKTGVVRSPFEYPQYYLAEPWQFSMLAAYMFMLIVLGFPINFLTLYVTVQHKKLRTPLNYILLNLAVADLFMVFGGFTTTLYTSLHGYFVFGPTGCNLEGFFATLGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGLALTWVMALACAAPPLVGWSRYIPEGLQCSCGIDYYTLKPEVNNESFVIYMFVVHFSIPLVIIFFCYGQLVFTVKEAAAQQQESATTQKAEKEVTRMVIIMVVAFLICWLPYASVAFYIFTHQGSDFGPIFMTIPAFFAKSASIYNPVIYIMMNKQFRNCMLTTLCCGKNPLGDDEASTTTSKTETSQVAPA
->GRHR_SHEEP
---MANGDSPDQNENHCSAINSSILLTPGSLPTLTLSGKIRVTVTFFLFLLSTIFNTSFLLKLQNWTQKLSKMKVLLKHLTLANLLETLIVMPLDGMWNITVQWYAGELLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITRPL-AVKSNSKLGQFMIGLAWLLSSIFAGPQLYIFGMIHEG--FSQCVTH--SFPQWWHQAFYNFFTFSCLFIIPLLIMLICNAKIIFTLTRVPHKNQSKNNIPQARLRTLKMTVAFATSFTVCWTPYYVLGIWYWFDPDMRVSDPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->DOP1_DROME
-YDGTTLTSFYNESSWTNASEMDTIVGEEPEPLSLVSIVVVGIFLSVLIFLSVAGNILVCLAIYTDGSPRIG-NLFLASLAIADLFVASLVMTFAGVNDLLGYWIFGAQFCDTWVAFDVMCSTASILNLCAISMDRYIHIKDPLYGRWVTRRVAVITIAAIWLLAAFVSFVPISLGIHRPLI-KYPTCALD--------LTPTYAVVSSCISFYFPCVVMIGIYCRLYCYAQKHFKVHTHSSPYHVSDHKAAVTVGVIMGVFLICWVPFFCVNITAAFCKTC-IGGQTFKILTWLGYSNSAFNPIIYSIFNKEFRDAFKRILTMRNP----------------------
->AA1R_RABIT
-----------------------------MPPSISAFQAAYIGIEVLIALVSVPGNVLVIWAVKVNQALRDATFCFIVSLAVADVAVGALVIPLAILINIG--PETYFHTCLMVACPVLILTQSSILALLAIAVDRYLRVKIPLYKAVVTPRRAAVAIAGCWILSLVVGLTPMFGWNNLRN-G-VIKCEFE-----KVISMEYMVYFNFFVWVLPPLLLMVLIYLEVFYLIRRQK-ASGDPHKYYGKELKIAKSLALILFLFALSWLPLHILNCVTLFCPSCQKPSILVYTAIFLTHGNSAMNPIVYAFRIHKFRVTFLKIWNDHFRCRPAPAGDGDPND---------
->OPSI_ASTFA
-LNGFEGDNFYIPMSNRTGLVRDPFVYEQYYLAEPWQFKLLACYMFFLICLGLPINGFTLFVTAQHKKLQQPLNFILVNLAVAGMIMVCFGFTITISSAVNGYFYFGPTACAIEGFMATLGGEVALWSLVVLAIERYIVVCKPMGSFKFSASHALGGIGFTWFMAMTCAAPPLVGWSRYIPEGLQCSCGPDYYTLNPKYNNESYVIYMFVVHFIVPVTVIFFTYGRLVCTVKSAAAAQQDSASTQKAEKEVTRMVILMVVGFLVAWTPYATVAAWIFFNKGAAFTAQFMAVPAFFSKSSALFNPIIYVLLNKQFRNCMLTTLFCGKNPLGDEESSTVTVSS----VSPA
->ACTR_HUMAN
--------------MKHIINSYENINNTARNNSDCPRVVLPEEIFFTISIVGVLENLIVLLAVFKNKNLQAPMYFFICSLAISDMLGSLYKILENILIILRNMGSFETTADDIIDSLFVLSLLGSIFSLSVIAADRYITIFHALYHSIVTMRRTVVVLTVIWTFCTGTGITMVIFFS----------------------HHHVPTVITFTSLFPLMLVFILCLYVHMFLLARSH---TRKISTLPRANMKGAITLTILLGVFIFCWAPFVLHVLLMTFCPSNACYMSLFQVNGMLIMCNAVIDPFIYAFRSPELRDAFKKMIFCSRYW---------------------
->CCR4_RAT
-IYTSDNYSEEVG-SGDYDSNKEPC---FRDENENFNRIFLPTIYFIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAMAD--WYFGKFLCKAVHIIYTVNLYSSVLILAFISLDRYLAIVHATSQSARKLLAEKAVYVGVWIPALLLTIPDIIFADVSQ-DG-RYICDRL---YPDSLWMVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYVGISIDSFILLESVVHKWISITEALAFFHCCLNPILYAFLGAKFKSSAQHALNSMSRGSSLKILSKG----------GH
->OPSD_ANOCA
-MNGTEGQNFYVPMSNKTGVVRNPFEYPQYYLADPWQFSALAAYMFLLILLGFPINFLTLFVTIQHKKLRTPLNYILLNLAVANLFMVLMGFTTTMYTSMNGYFIFGTVGCNIEGFFATLGGEMGLWSLVVLAVERYVVICKPMSNFRFGETHALIGVSCTWIMALACAGPPLLGWSRYIPEGMQCSCGVDYYTPTPEVHNESFVIYMFLVHFVTPLTIIFFCYGRLVCTVKAAAAQQQESATTQKAEREVTRMVVIMVISFLVCWVPYASVAFYIFTHQGSDFGPVFMTIPAFFAKSSAIYNPVIYILMNKQFRNCMIMTLCCGKNPLGDEETSAGTSTVSTSQVSPA
->ML1A_CHICK
--------MRANGSELNGTVLPRDPPAEGSPRRPPWVTSTLATILIFTIVVDLLGNLLVILSVYRNKKLRNAGNIFVVSLAIADLVVAIYPYPLVLTSVFHNGWNLGYLHCQISGFLMGLSVIGSIFNITGIAINRYCYICHSLYDKLYSDKNSLCYVGLIWVLTVVAIVPNLFVGS-LQYDP-IYSCTFA------QSVSSAYTIAVVFFHFILPIAIVTYCYLRIWILVIQVRR-PDNNPRLKPHDFRNFVTMFVVFVLFAVCWAPLNFIGLAVAVDPETRIPEWLFVSSYYMAYFNSCLNAIIYGLLNQNFRREYKKIVVSFCTAKAFFQDSSNSKPSPLITNNNQ
->EDG1_HUMAN
-VKAHRSSVSDYVNYDIIVRHYNYTGKLNISADKENSIKLTSVVFILICCFIILENIFVLLTIWKTKKFHRPMYYFIGNLALSDLLAG-VAYTANLLLSGATTYKLTPAQWFLREGSMFVALSASVFSLLAIAIERYITMLKMKLHNGSNNFRLFLLISACWVISLILGGLPIMGWNCI-S--ALSSCSTV------LPLYHKHYILFCTTVFTLLLLSIVILYCRIYSLVRTRLTFISKASRSSE-NVALLKTVIIVLSVFIACWAPLFILLLLDVGCKVKCDILFRAEYFLVLAVLNSGTNPIIYTLTNKEMRRAFIRIMSCCKCPSGDSAGKFKEFSRSKSDNSSH
->OPS1_DROPS
-APS---NGSVVDKVTPDMAHLISPYWDQFPAMDPIWAKILTAYMIIIGMISWCGNGVVIYIFATTKSLRTPANLLVINLAISDFGIMITNTPMMGINLYFETWVLGPMMCDIYAGLGSAFGCSSIWSMCMISLDRYQVIVKGMAGRPMTIPLALGKIAYIWFMSTIWCCLAPVFWSRYVPEGNLTSCGID--YLERDWNPRSYLIFYSIFVYYIPLFLICYSYWFIIAAVSAHMNVRSSEDADKSAEGKLAKVALVTISLWFMAWTPYLVINCMGLFKFEG-LTPLNTIWGACFAKSAACYNPIVYGISHPKYRLALKEKCPCCVFGKVDDGK-SSTSEAESKA----
->PAFR_CAVPO
-----------------------MELNSSSRVDSEFRYTLFPIVYSIIFVLGIIANGYVLWVFARLYPKLNEIKIFMVNLTVADLLFLITLPLWIVYYSNQGNWFLPKFLCNLAGCLFFINTYCSVAFLGVITYNRFQAVKYPITAQATTRKRGIALSLVIWVAIVAAASYFLVMDSTN-G--NITRCFEH---YEKGSKPVLIIHICIVLGFFIVFLLILFCNLVIIHTLLRQP---VKQQRNAEVRRRALWMVCTVLAVFVICFVPHHMVQLPWTLAELGQAINDAHQVTLCLLSTNCVLDPVIYCFLTKKFRKHLSEKLNIMRSSQKCSRVTTDPINHTPVNPIKN
->OPSB_MOUSE
------MSGEDDFYLFQNISSVGPWDGPQYHLAPVWAFRLQAAFMGFVFFVGTPLNAIVLVATLHYKKLRQPLNYILVNVSLGGFLFCIFSVFTVFIASCHGYFLFGRHVCALEAFLGSVAGLVTGWSLAFLAFERYVVICKPFGSIRFNSKHALMVVLATWIIGIGVSIPPFFGWSRFIPEGLQCSCGPDWYTVGTKYRSEYYTWFLFIFCFIIPLSLICFSYSQLLRTLRAVAAQQQESATTQKAEREVSHMVVVMVGSFCLCYVPYAALAMYMVNNRNHGLDLRLVTIPAFFSKSSCVYNPIIYCFMNKQFRACILEMVCRKPMAD---ESDVSSTVSSSKVGPH-
->HH2R_CANFA
--------------------MISNGTGSSFCLDSPPCRITVSVVLTVLILITIAGNVVVCLAVGLNRRLRSLTNCFIVSLAITDLLLGLLVLPFSAFYQLSCRWSFGKVFCNIYTSLDVMLCTASILNLFMISLDRYCAVTDPLYPVLITPVRVAVSLVLIWVISITLSFLSIHLGWN--RN-TIPKCKVQ--------VNLVYGLVDGLVTFYLPLLVMCITYYRIFKIARDQR--MGSWKAATIGEHKATVTLAAVMGAFIICWFPYFTVFVYRGLKGDD-INEAFEAVVLWLGYANSALNPILYATLNRDFRTAYQQLFRCRPASHNAQETSLRRNQSREPMR---
->C3.1_MOUSE
---MSTSFPELDLENFEYDDSAEAC---YLGDIVAFGTIFLSVFYALVFTFGLVGNLLVVLALTNSRKPKSITDIYLLNLALSDLLFVATLPFWTHYLISHEG--LHNAMCKLTTAFFFIGFFGGIFFITVISIDRYLAIVLAASMNNRTVQHGVTISLGVWAAAILVASPQFMFTKRKD-----NECLGDYPEVLQEMWPVLRNSEVNILGFALPLLIMSFCYFRIIQTL---------FSCKNRKKARAVRLILLVVFAFFLFWTPYNIMIFLETLKFYNRDLRLALSVTETVAFSHCCLNPFIYAFAGEKFRRYLGHLYRKCLAVLCGHPVHTGRSRQDSILSS-F
->ML1._SHEEP
----------MGRTLAVPTPYGCIGCKLPQPDYPPALIVFMFCAMVITIVVDLIGNSMVILAVSKNKKLRNSGNVFVVSLSVADMLVAIYPYPLMLHAMAIGGWDLSKLQCQMVGFITGLSVVGSIFNIMAIAINRYCYICHSLYERIFSVRNTCIYLAVTWIMTVLAVLPNMYIGT-IEYDP-TYTCIFN------YVNNPAFAVTIVCIHFVLPLLIVGFCYVKIWTKVLAARD-AGQNPDNQLAEVRNFLTMFVIFLLFAVCWCPINALTVLVAVNPKEKIPNWVYLAAYFIAYFNSCLNAVIYGVLNENFRREYWTIFHAMRHPVLFLSGLLTAQAHTHARARAR
->GRPR_MOUSE
-NCSHLNLDVDPFLSCNDTFNQSLSPPKMDNWFHPGFIYVIPAVYGLIIVIGLIGNITLIKIFCTVKSMRNVPNLFISSLALGDLLLLVTCAPVDASKYLADRWLFGRIGCKLIPFIQLTSVGVSVFTLTALSADRYKAIVRPMIQASHALMKICLKAALIWIVSMLLAIPEAVFSDLHPQT--FISCAPY---HSNELHPKIHSMASFLVFYVIPLAIISVYYYFIARNLIQSLPVNIHVKKQIESRKRLAKTVLVFVGLFAFCWLPNHVIYLYRSYHYSEMLHFVTSICARLLAFTNSCVNPFALYLLSKSFRKQFNTQLLCCQPGLMNR--SHSMTSFKSTNP-SA
->OPS._HUMAN
-------------MLRNNLGNSSDSKNEDGSVFSQTEHNIVATYLIMAGMISIISNIIVLGIFIKYKELRTPTNAIIINLAVTDIGVSSIGYPMSAASDLYGSWKFGYAGCQVYAGLNIFFGMASIGLLTVVAVDRYLTICLPDVGRRMTTNTYIGLILGAWINGLFWALMPIIGWASYA--PTGATCTIN--WRKNDRSFVSYTMTVIAINFIVPLTVMFYCYYHVTLSIKHHSD-TESLNRDWSDQIDVTKMSVIMICMFLVAWSPYSIVCLWASFGDPKKIPPPMAIIAPLFAKSSTFYNPCIYVVANKKFRRAMLAMFKCQTHQTMPVTSILPLASGRI------
->5HT1_DROME
-VSYQGITSSNLGDSNTTLVPLLEEFAAGEFVLPPLTSIFVSIVLLIVILGTVVGNVLVCIAVCMVRKLRRPCNYLLVSLALSDLCVALLVMPMALLYEVLEKWNFGPLLCDIWVSFDVLCCTASILNLCAISVDRYLAITKPLYGVKRTPRRMMLCVGIVWLAAACISLPPLLILGN--E-G--PICTVC--------QNFAYQIYATLGSFYIPLSVMLFVYYQIFRAARRILLGHKKLRFQLAKEKKASTTLGIIMSAFTVCWLPFFILALIRPFETM-HVPASLSSLFLWLGYANSLLNPIIYATLNRDFRKPFQEILYFRCSSLNTMMRENYPPSQRVMLGDER
->CRH2_MOUSE
-------MANVTLKPLCPLLEEMVQLPNHSNSSLRYIDHVSVLLHGLASLLGLVENGLILFVVGCRMR-QTVVTTWVLHLALSDLLAAASLPFFTYFLAVGHSWELGTTFCKLHSSVFFLNMFASGFLLSAISLDRCLQVVRPVAQNHRTVAVAHRVCLMLWALAVLNTIPYFVFRDTIPWNPRDTTCDY---------RQKALAVSKFLLAFMVPLAIIASSHVAVSLRL---------HHRGRQRTGRFVRLVAAIVVAFVLCWGPYHIFSLLEARAHS-QLASRGLPFVTSLAFFNSVVNPLLYVFTCPDMLYKLRRSLRAVLESVLVEDSDQSRRASSTATPAST
->ML1C_CHICK
--------------MERPGSNGSCSGCRLEGGPAARAASGLAAVLIVTIVVDVLGNALVILSVLRNKKLRNAGNIFVVSLSVADLVVAVYPYPLILSAIFHNGWTMGNIHCQISGFLMGLSVIGSIFNITAIAINRYCYICHSLYDKLFNLKNTCCYICLTWTLTVVAIVPNFFVGS-LQYDP-IYSCTFA------QTVSTSYTITVVVVHFIVPLSIVTFCYLRIWILVIQVHR-QDCKQKIRAADIRNFLTMFVVFVLFAVCWGPLNFIGLAVSINPSKHIPEWLFVLSYFMAYFNSCLNAVIYGLLNQNFRKEYKRILLMLRTPRLLFIDVSKSKPSPAVTNNNQ
->5H1F_HUMAN
--------------MDFLNSSD-QNLTSEELLNRMPSKILVSLTLSGLALMTTTINSLVIAAIIVTRKLHHPANYLICSLAVTDFLVAVLVMPFSIVYIVRESWIMGQVVCDIWLSVDITCCTCSILHLSAIALDRYRAITDAVYARKRTPKHAGIMITIVWIISVFISMPPLFWR----S-R--DECIIK-------HDHIVSTIYSTFGAFYIPLALILILYYKIYRAAKTLFKHWRRQKISGTRERKAATTLGLILGAFVICWLPFFVKELVVNVCDKCKISEEMSNFLAWLGYLNSLINPLIYTIFNEDFKKAFQKLVRCRC-----------------------
->GRHR_PIG
---MANSASPEQNQNHCSAINSSILLTQGNLPTLTLSPNIRVTVTFFLFLLSTAFNASFLLKLQKWTQKLSRMKVLLKHLTLANLLETLIVMPLDGMWNITVQWYAGEFLCKVLSYLKLFSMYAPAFMMVVISLDRSLAITRPL-AVKSNSRLGRFMIGLAWLLSSIFAGPQLYIFRMIHEG--FSQCVTH--SFPQWWHQAFYDFFTFSCLFIIPLLIMLICNAKIMFTLTRVPHNNQSKNNIPRARLRTLKMTVAFAASFIVCWTPYLVLGIWYWFDPEMRVSDPVNHFFFLFAFLNPCFDPLIYGYFSL-------------------------------------
->MAS_MOUSE
-------MDQSNMTSLAEEKAMNTSSRNASLGSSHPPIPIVHWVIMSISPLGFVENGILLWFLCFRMR-RNPFTVYITHLSMADISLLFCIFILSIDYALDYESSGHHYTIVTLSVTFLFGYNTGLYLLTAISVERCLSVLYPIYTSHRPKHQSAFVCALLCALSCLVTTMEYVMCI-DSHS--RSDC-----------RAVIIFIAILSFLVFTPLMLVSSSILVVKIRK----------NTWASHSSKLYIVIMVTIIIFLIFAMPMRVLYLLYYEYW--SAFGNLHNISLLFSTINSSANPFIYFFVGSSKKKRFRESLKVVLTRAFKDEMQPRTVSIETVV----
->UL33_HCMVA
-----------------------------MTGPLFAIRTTEAVLNTFIIFVGGPLNAIVLITQLLTNRGYSTPTIYMTNLYSTNFLTLTVLPFIVLSNQ-WL-LPAGVASCKFLSVIYYSSCTVGFATVALIAADRYR-VLHKRTYARQSYRSTYMILLLTWLAGLIFSVPAAVYTTVVMN-NGHATCVLYVAEEVH-TVLLSWKVLLTMVWGAAPVIMMTWFYAFFYSTV---------QRTSQKQRSRTLTFVSVLLISFVALQTPYVSLMIFNSYATTATLRRTIGTLARVVPHLHCLINPILYALLGHDFLQRMRQCFRGQLLDRRAFLRSQQTNLAAGNNSQSV
->CKR5_GORGO
-----MDYQVSSPTYDIDYYTSEPC---QKTNVKQIAARLLPPLYSLVFIFGFVGNMLVILILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQK-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->PE21_MOUSE
---MSPCG-LNLSLADEAATCATPRLPNTSVVLPTGDNGTSPALPIFSMTLGAVSNVLALALLAQVAGSAATFLLFVASLLAIDLAGHVIPGALVLRLYTAG-RAPAGGACHFLGGCMVFFGLCPLLLGCGMAVERCVGVTQPLHAARVSVARARLALAVLAAMALAVALLPLVHVGRYELQYPGTWCFIS--LGPRGGWRQALLAGLFAGLGLAALLAALVCNTLSGLALLRDRRRSRGPRRVHAHDVEMVGQLVGIMVVSCICWSPLLVLVVLAIGGWNSNSLQRPLFLAVRLASWNQILDPWVYILLRQAMLRQLLRLLPLRVSAKGGPTELGLSSLRSSRHSGFS
->A1AB_MESAU
-HNTSAPAQWGELKDANFTGPNQTSSNSTLPQLDVTRAISVGLVLGAFILFAIVGNILVILSVACNRHLRTPTNYFIVNLAIADLLLSFTVLPFSATLEVLGYWVLGRIFCDIWAAVDVLCCTASILSLCAISIDRYIGVRYSLYPTLVTRRKAILALLSVWVLSTVISIGPLLGWKEP--AP--KECGVT--------EEPFYALFSSLGSFYIPLAVILVMYCRVYIVAKRTHNPIAVKLFKFSREKKAAKTLGIVVGMFILCWLPFFIALPLGSLFSTLKPPDAVFKVVFWLGYFNSCLNPIIYPCSSKEFKRAFMRILGCQCRSGRRRRRRRRTYRPWTRGGSLE
->O3A2_HUMAN
-----------MEPEAGTNRTAVAEFILLGLVQTEEMQPVVFVLLLFAYLVTTGGNLSILAAVLVEPKLHAPMYFFLGNLSVLDVGCITVTVPAMLGRLLSHKSTISYDACLSQLFFFHLLAGMDCFLLTAMAYDRLLAICQPLYSTRMSQTVQRMLVAASLACAFTNALTHTVAMSTL---NNHFYCDLPQLSCSSTQLNELLLFAVGFIMAGTPLVLIITAYSHVAAAV--------LRIRSVEGRKKAFSTCGSHLTVVCLFFGRGIFNYMRLGSEE---ASDKDKGVGVFNTVINPMLNPLIYSLRNPDVQGALWQIFLGRRSLTA-------------------
->OPSU_CARAU
--------MDAWTYQFGNLSKISPFEGPQYHLAPKWAFYLQAAFMGFVFFVGTPLNAIVLFVTMKYKKLRQPLNYILVNISLGGFIFDTFSVSQVFFSALRGYYFFGYTLCAMEAAMGSIAGLVTGWSLAVLAFERYVVICKPFGSFKFGQSQALGAVALTWIIGIGCATPPFWGWSRYIPEGIGTACGPDWYTKNEEYNTESYTYFLLVSCFMMPIMIITFSYSQLLGALRAVAAQQAESASTQKAEKEVSRMVVVMVGSFVVCYGPYAITALYFSYAEDSNKDYRLVAIPSLFSKSSCVYNPLIYAFMNKQFNACIMETVFGKKIDE-----SSESSVSA-------
->PAFR_RAT
-----------------------MEQNGSFRVDSEFRYTLFPIVYSVIFVLGVVANGYVLWVFATLYPKLNEIKIFMVNLTVADLLFLMTLPLWIVYYSNEGDWIVHKFLCNLAGCLFFINTYCSVAFLGVITYNRYQAVAYPITAQATTRKRGITLSLVIWISIAATASYFLATDSTN-G--NITRCFEH---YEPYSVPILVVHIFITSCFFLVFFLIFYCNMVIIHTLLTRP---VRQQRKPEVKRRALWMVCTVLAVFVICFVPHHVVQLPWTLAELGQAINDAHQITLCLLSTNCVLDPVIYCFLTKKFRKHLSEKFYSMRSSRKCSRATSDPANQTPVLPLKN
->YYO1_CAEEL
-ISPNASNYLTYPFDGLCLQKFFYQLQTSLRRFTPYEEIIYTTVYIIISVAAVIGNGLVIMAVVRKKTMRTNRNVLILNLALSNLILAITNIPFLWLPSIDFEFPYSRFFCKFANVLPGSNIYCSTLTISVMAIDRYYSVKKLKASNRKQCFHAVLVSLAIWIVSFILSLPLLLYYETS--MQEVRQCRLVRLPDITQSIQLLMSILQVAFLYIVPLFVLSIFNVKLTRFLKTNDSHLKNNNKTNQRTNRTTSLLIAMAGSYAALWFPFTLITFLIDFELIINLVERIDQTCKMVSMLSICVNPFLYGFLNTNFRHEFSDIYYRYIRCETKSQPAGRIAHHRQDSVYND
->OPS1_LIMPO
-PN-----ASVVDTMPKEMLYMIHEHWYAFPPMNPLWYSILGVAMIILGIICVLGNGMVIYLMMTTKSLRTPTNLLVVNLAFSDFCMMAFMMPTMTSNCFAETWILGPFMCEVYGMAGSLFGCASIWSMVMITLDRYNVIVRGMAAAPLTHKKATLLLLFVWIWSGGWTILPFFGWSRYVPEGNLTSCTVD--YLTKDWSSASYVVIYGLAVYFLPLITMIYCYFFIVHAVAEHNVAANADQQKQSAECRLAKVAMMTVGLWFMAWTPYLIISWAGVFSSGTRLTPLATIWGSVFAKANSCYNPIVYGISHPRYKAALYQRFPSLACGSGESGSDVKTMEEKPKIPEA-
->OPSV_APIME
-YLPAGPPRLLGWNVPAEELIHIPEHWLVYPEPNPSLHYLLALLYILFTFLALLGNGLVIWIFCAAKSLRTPSNMFVVNLAICDFFMMIKTPIFIYNSFNTG-FALGNLGCQIFAVIGSLTGIGAAITNAAIAYDRYSTIARPL-DGKLSRGQVILFIVLIWTYTIPWALMPVMGVWGRFPEGFLTSCSFD--YLTDTNEIRIFVATIFTFSYCIPMILIIYYYSQIVSHVVNHNVDSNANTSSQSAEIRIAKAAITICFLYVLSWTPYGVMSMIGAFGNKALLTPGVTMIPACTCKAVACLDPYVYAISHPKYRLELQKRLPWLELQEKPISDSTSTPPASS------
->5H1B_DIDMA
-PPASGSLTSSQTNHSTFPNPNAPDLEPYQDSIALPWKVLLATFLGLITLGTTLSNAFVIATVSRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDFWLSSDITCCTASILHLCVIALDRYWAITDAVYSAKRTPKRAAGMIIMVWVFSVSISMPPLFWR------E--ADCSVN-------TDHILYTVYSTVGAFYFPTLLLIALYGRIYVEARSRKVSLEKKKLMAARERKATRTLGIILGAFIVCWLPFFIISLALPICDDAWFHLAIFDFFNWLGYLNSLINPIIYTKSNDDFKQAFQKLMRFRRTS---------------------
->NY2R_PIG
-EEMKMEPSGPGHTTPRGELAPDSEPELKDSTKLIEVQIILILAYCSIILLGVVGNSLVIHVVIKFKSMRTVTNFFIANLAVADLLVNTLCLPFTLTYTLMGEWKMGPVLCHLVPYAQGLAVQVSTITLTVIALDRHRCIVYHL-ESKISKRISFLIIGLAWGISALLASPLAIFREYS-FE--IVACTEKWPGEEKSIYGTVYSLSSLLILYVLPLGIISFSYARIWSKLKNHSPG-GVNDHYHQRRQKTTKMLVCVVVVFAVSWLPLHAFQLAVDIDSQVKEYKLIFTVFHIIAMCSTFANPLLYGWMNSNYRKAFLSAFRCEQRLDAIHSE---AKKNLEATKNGG
->B1AR_.ENLA
-WGPMEC--RNRS----GTPTTVPSPMHPLPELTHQWTMGMTMFMAAIILLIVMGNIMVIVAIGRNQRLQTLTNVFITSLACADLIMGLFVVPLGATLVVSGRWLYGSIFCEFWTSVDVLCVTASIETLCVISIDRYIAITSPFYQSLLTKGRAKGIVCSVWGISALVSFLPIMMHWWRDM-K--GCCDFV--------TNRAYAIASSIISFYFPLIIMIFVYIRVFKEAQKQHGRRILSKILVAKEQKALKTLGIIMGTFTLCWLPFFLANVVNVFYRNL-IPDKLFLFLNWLGYANSAFNPIIYCRSP-DFRKAFKRLLCCPKKADRHLHTTGEFVNSLDTN---A
->D2DR_HUMAN
----MDPLNLSWYDDDLERQNWSRPFNGSDGKADRPHYNYYATLLTLLIAVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWKFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAVAMPMNTRYSSKRRVTVMISIVWVLSFTISCPLLFGLN---Q----NECII---------ANPAFVVYSSIVSFYVPFIVTLLVYIKIYIVLRRRRTSMSRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNIHCDCN-IPPVLYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFLKILHC-------------------------
->FML2_HUMAN
------------METNFSIPLNETEEVLPEPAGHTVLWIFSLLVHGVTFVFGVLGNGLVIWVAGFRMT-RTVNTICYLNLALADFSFSAILPFRMVSVAMREKWPFASFLCKLVHVMIDINLFVSVYLITIIALDRCICVLHPAAQNHRTMSLAKRVMTGLWIFTIVLTLPNFIFWTTISAFWAVERLNVF------ITMAKVFLILHFIIGFTVPMSIITVCYGIIAAKI---------HRNHMIKSSRPLRVFAAVVASFFICWFPYELIGILMAVWLKEKIILVLINPTSSLAFFNSCLNPILYVFMGRNFQERLIRSLPTSLERALTEVPDSATSAS--------
->ACM5_MACMU
--------MEGDSYHNATTVNGTPVYHQPLERHRLWEVISIAAVTAVVSLITIVGNVLVMISFKVNSQLKTVNNYYLLSLACADLIIGIFSMNLYTTYILMGRWALGSLACDLWLALDYVASNASVMNLLVISFDRYFSITRPLYRAKRTPKRAGVMIGLAWLISFILWAPAILCWQYLV-VP-LDECQIQ------FLSEPTITFGTAIAAFYIPVSVMTILYCRIYRETEKRNPSTKRKRMVLVKERKAAQTLSAILLAFIITWTPYNIMVLVSTFCDKC-VPVTLWHLGYWLCYVNSTVNPICYALCNRTFRKTFKMLLLCRWKKKKVEEKLYW------------
->PE22_CANFA
-----------------MGSISNNSGSEDCESREWLPSGESPAISSAMFSAGVLGNLIALALLARRWRSISLFHVLVTELVFTDLLGTCLISPVVLASYARNQLEPERRACTYFAFAMTFFSLATMLMLFAMALERYLSIGRPYYQRHVTRRGGLAVLPTIYTVSLLFCSLPLLGYGQYVQYCPGTWCFIR--------HGRTAYLQLYATLLLLLIVAVLACNFSVILNLIRMDGSRRGERVSVAEETDHLILLAIMTITFAICSLPFTIFAYMNETSS---RREKWDLQALRFLSINSIIDPWVFAIFRPPVLRLMRSVLCCRVSLRAQDATQTSSRLTFVDTS---
->5H1B_RABIT
-AAGSQIAVPQANLSAAHSHNCSAEGYIYQDSIALPWKVLLVLLLALFTLATTLSNAFVVATVYRTRKLHTPANYLIASLAVTDLLVSILVMPISTMYTVTGRWTLGQVVCDLWLSSDITCCTASIMHLCVIALDRYWAITDAVYSAKRTPKRAAIMIRLVWVFSICISLPPFFWR----E-E--SECLVN-------TDHVLYTVYSTVGAFYLPTLLLIALYGRIYVEARSRRVSLEKKKLMAARERKATKTLGIILGVFIVCWLPFFIISLVMPICKDAWFHQAIFDFFTWLGYVNSLINPIIYTMSNEDFKQAFHKLIRFKCTS---------------------
->GLHR_ANTEL
-HSNHTPNGTQFHQCSKIPVQCVPKSDAFHPCEDIMGYVWLTVVSFMVGAVALVANLVVALVLLTSQRRLNVTRFLMCNLAFADFILGLYIFILTSVSAVTRGWQNG-AGCKILGFLAVFSSELSLFTLVMMTIERFYAIVHAMMNARLSFRKTVRFMIGGWIFALVMAVVPLTGVSGY----KVAICLPF-----VSDATSTAYVAFLLLVNGASFISVMYLYSRMLYVVVSG---GDMEGAPKRNDSKVAKRMAILVFTDMLCWAPIAFFGLLAAFGQTLLTVTQSKILLVFFFPINSICNPFLYAFFTKAFKRELFTALSRIGFCKFRALKYNGSRSRRHHSTVNA
->MSHR_OVIMO
-PALGSQRRLLGSLNCTPPATLPLTLAPNRTGPQCLEVSIPNGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFVCCLAMSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICSSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSVLSITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACRHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->P2YR_CHICK
-PELLAG-----------GWAAGNATTKCSLTKTGFQFYYLPTVYILVFITGFLGNSVAIWMFVFHMRPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDVMCKLQRFIFHVNLYGSILFLTCISVHRYTGVVHPLSLGRLKKKNAVYVSSLVWALVVAVIAPILFYSGTG----KTITCYDT-TADEYLRSYFVYSMCTTVFMFCIPFIVILGCYGLIVKALIY------KDLDNSPLRRKSIYLVIIVLTVFAVSYLPFHVMKTLNLRARLDDKVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKSSRRSEPNVQSKSLTEYKQNGDTSL
->ADMR_MOUSE
-LEPDNDFRDIHNWTELLHLFNQTFTDCHIEFNENTKHVVLFVFYLAIFVVGLVENVLVICVNCRRSGRVGMLNLYILNMAIADLGIILSLPVWMLEVMLYETWLWGSFSCRFIHYFYLVNMYSSIFFLTCLSIDRYVTLTNTSSWQRHQHRIRRAVCAGVWVLSAIIPLPEVVHIQLLD--E--PMCLFLAPFETYSAWALAVALSATILGFLLPFLLIAVFNILTACRL---------RRQRQTESRRHCLLMWAYIVVFAICWLPYQVTMLLLTLHGTHNLLYFFYEIIDCFSMLHCVANPILYNFLSPSFRGRLLSLVVRYLPKEQARAAGGRQHSIIITKEGSL
->FSHR_BOVIN
-FDVMYSEFDYDLCNEVVDVTCSPEPDAFNPCEDIMGDDILRVLIWFISILAITGNILVLVILITSQYKLTVPRFLMCNLAFADLCIGIYLLLIASVDVHTKTWQTG-AGCDAAGFFTVFASELSVYTLTAITLERWHTITHAMLECKVQLRHAASIMLVGWIFAFAVALFPIFGISSY----KVSICLPM-----IDSPLSQLYVMSLLVLNVLAFVVICGCYTHIYLTVRNP------NITSSSSDTKIAKRMAMLIFTDFLCMAPISFFAISASLKVPLITVSKSKILLVLFYPINSCANPFLYAIFTKNFRRDFFILLSKFGCYEVQAQTYRSNFHPRNGHCPPA
->B3AR_RAT
-MAPWPHKNGSLAFWSDAPTLDPSAAN---TSGLPGVPWAAALAGALLALATVGGNLLVITAIARTPRLQTITNVFVTSLATADLVVGLLVMPPGATLALTGHWPLGATGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGTLVTKRRARAAVVLVWIVSATVSFAPIMSQWWRVQ-E--RCCSFA--------SNMPYALLSSSVSFYLPLLVMLFVYARVFVVAKRQGVPRRPARLLPLGEHRALRTLGLIMGIFSLCWLPFFLANVLRALVGPS-VPSGVFIALNWLGYANSAFNPLIYCRSP-DFRDAFRRLLCSYGGRGPEEPRVVTSRQNSPLNRFDG
->D3DR_CERAE
---------MAPLSQLSGHLNYTCGVENSTGASQARPHAYYALSYCALILAIVFGNGLVCMAVLKERALQTTTNYLVVSLAVADLLVATLVMPWVVYLEVTGGWNFSRVCCDVFVTLDVMMCTASILNLCAISIDRYTAVVMPVGTGQSSCRRVTLMITAVWVLAFAVSCPLLFGFN---D-P--TVCSI---------SNPDFVIYSSVVSFYLPFGVTVLVYARIYVVLKQRTSLPLQPRGVPLREKKATQMVAIVLGAFIVCWLPFFLTHVLNTHCQTCHVSPELYSATTWLGYVNSALNPVIYTTFNIEFRKAFLKILSC-------------------------
->NK2R_MOUSE
-----MGAHASVTDTNILSGLESNATGVTAFSMPGWQLALWATAYLALVLVAVTGNATVIWIILAHERMRTVTNYFIINLALADLCMAAFNATFNFIYASHNIWYFGSTFCYFQNLFPVTAMFVSIYSMTAIAADRYMAIVHPF-QPRLSAPSTKAVIAVIWLVALALASPQCFYST---GA---TKCVVAWPNDNGGKMLLLYHLVVFVLIYFLPLVVMFAAYSVIGLTLWKRPRHHGANLRHLQAKKKFVKAMVLVVVTFAICWLPYHLYFILGTFQEDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWGTPTEE----HTPSISRRVNRC
->BONZ_MACNE
-------MAEHDYHEDYGLNSFNDSSQEEHQDFLQFRKVFLPCMYLVVFVCGLVGNSLVLVISIFYHKLQSLTDVFLVNLPLADLVFVCTLPFWAYAGIHE--WIFGQVMCKTLLGVYTINFYTSMLILTCITVDRFIVVVKATNQQAKRMTWGKVICLLIWVISLLVSLPQIIYGNVFNLD--KLICGYH-----DKEISTVVLATQMTLGFFLPLLAMIVCYSVIIKTL---------LHAGGFQKHRSLKIIFLVMAVFLLTQTPFNLVKLIRSTHWEYTSFHYTIIVTEAIAYLRACLNPVLYAFVSLKFRKNFWKLVKDIGCLPYLGVSHQWKTFSASHNVEAT
->NK1R_MOUSE
------MDNVLPVDSDLFPNTSTNTSESNQFVQPTWQIVLWAAAYTVIVVTSVVGNVVVIWIILAHKRMRTVTNYFLVNLAFAEACMAAFNTVVNFTYAVHNVWYYGLFYCKFHNFFPIAALFASIYSMTAVAFDRYMAIIHPL-QPRLSATATKVVIFVIWVLALLLAFPQGYYST---SR---VVCMIEWPEHPNRTYEKAYHICVTVLIYFLPLLVIGYAYTVVGITLE---IPSDRYHEQVSAKRKVVKMMIVVVCTFAICWLPFHIFFLLPYINPDLKFIQQVYLASMWLAMSSTMYNPIIYCCLNDRFRLGFKHAFRCCPFISAGDY----STRYLQTQSSVY
->O.2R_HUMAN
-ASELNETQEPFLNPTDYDDEEFLRYLWREYLHPKEYEWVLIAGYIIVFVVALIGNVLVCVAVWKNHHMRTVTNYFIVNLSLADVLVTITCLPATLVVDITETWFFGQSLCKVIPYLQTVSVSVSVLTLSCIALDRWYAICHPL-MFKSTAKRARNSIVIIWIVSCIIMIPQAIVMECSTKTTLFTVCDER---WGGEIYPKMYHICFFLVTYMAPLCLMVLAYLQIFRKLWCRKSRVAAEIKQIRARRKTARMLMVVLLVFAICYLPISILNVLKRVFGMFETVYAWFTFSHWLVYANSAANPIIYNFLSGKFREEFKAAFSCCCLGVHHRQEDRLESRKSLTTQISN
->IL8A_RABIT
-WTWFEDEFANATGMPPVEKDYSPC----LVVTQTLNKYVVVVIYALVFLLSLLGNSLVMLVILYSRSNRSVTDVYLLNLAMADLLFALTMPIWAVSKEKG--WIFGTPLCKVVSLVKEVNFYSGILLLACISVDRYLAIVHATRTLTQKRHLVKFICLGIWALSLILSLPFFLFRQVFS-NS-SPVCYED-LGHNTAKWRMVLRILPHTFGFILPLLVMLFCYGFTLRTL---------FQAHMGQKHRAMRVIFAVVLIFLLCWLPYNLVLLADTLMRTHNDIDRALDATEILGFLHSCLNPIIYAFIGQNFRNGFLKMLAARGLISKEFLTRHR------------
->AG2S_MOUSE
-------MILNSSIEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYQWPFGNHLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLMAGLASLPAVIHRNVYF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFVFPFVIILTSYTLIWKALKKA----YKIQKNTPRNDDIFRIIMAIVLFFFFSWVPHQIFSFLDVLIQLGDVVDTAMPITICIAYFNNCLNPLFYGFLGKKFKRYFLQLLKYIPPKARSHAGLSTRPSD-------N
->OPSD_ANGAN
-MNGTEGPNFYIPMSNITGVVRSPFEYPQYYLAEPWAYTILAAYMFTLILLGFPVNFLTLYVTIEHKKLRTPLNYILLNLAVANLFMVFGGFTTTVYTSMHGYFVFGETGCNLEGYFATLGGEISLWSLVVLAIERWVVVCKPMSNFRFGENHAIMGLAFTWIMANSCAMPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFIVHFSVPLTIISFCYGRLVCTVKEAAAQQQESETTQRAEREVTRMVVIMVIAFLVCWVPYASVAWYIFTHQGSTFGPVFMTVPSFFAKSSAIYNPLIYICLNSQFRNCMITTLFCGKNPFQEEEGASTASSVSS--VSPA
->O3A3_HUMAN
-----MSLQKLMEPEAGTNRTAVAEFILLGLVQTEEMQPVVFVLLLFAYLVTIGGNLSILAAVLVEPKLHAPMYFFLGNLSVLDVGCITVTVPAMLGRLLSHKSTISYDACLSQLFFFHLLAGMDCFLLTAMAYDRLLAICQPLYSTRMSQTVQRMLVAASWACAFTNALTHTVAMSTL---NNHFYCDLPQLSCSSTQLNELLLFVAAAFMAVAPLVFISVSYAHVVAAV--------LQIRSAEGRKKAFSTCGSHLTVVGIFYGTGVFSYMRLGSVE---SSDKDKGVGVFMTVINPMLNPLIYSLRNTDVQGALCQLLVGERSLT--------------------
->GPRC_MOUSE
-NLSGLPRDCIDAGAPENISAAVPSQGSVAESEPELVVNPWDIVLCSSGTLICCENAVVVLIIFHSPSLRAPMFLLIGSLALADLLAG-LGLIINFVFA-Y--LLQSEATKLVTIGLIVASFSASVCSLLAITVDRYLSLYYALYHSERTVTFTYVMLVMLWGTSICLGLLPVMGWNCL-R--DESTCSVV-------RPLTKNNAAILSISFLFMFALMLQLYIQICKIVMRHIALHFLATSHYVTTRKGVSTLALILGTFAACWMPFTLYSLIADY----TYPSIYTYATLLPATYNSIINPVIYAFRNQEIQKALCLICCGCIPSSLSQRARSP------------
->D1DR_CARAU
--------------MAVLDLNLTTVIDSGFMESDRSVRVLTGCFLSVLILSTLLGNTLVCAAVTKFRHRSKVTNFFVISLAVSDLLVAVLVMPWKAVTEVAGFWPFG-AFCDIWVAFDIMCSTASILNLCVISVDRYWAISSPFYERKMTPRVAFVMISGAWTLSVLISFIPVQLKWHKAVN-PTDNCDSS--------LNRTYAISSSLISFYIPVAIMIVTYTQIYRIAQKQGSNESSFKLSFKRETKVLKTLSVIMGVFVCCWLPFFILNCMVPFCKRTCISPTTFDVFVWFGWANSSLNPIIYAFNA-DFRRAFAILLGCQRLCPGSI-SMET------------
->OPS1_SCHGR
-GG-F-ANQTVVDKVPPEMLYLVDPHWYQFPPMNPLWHGLLGFVIGVLGVISVIGNGMVIYIFSTTKSLRTPSNLLVVNLAFSDFLMMFTMSAPMGINCYYETWVLGPFMCELYALFGSLFGCGSIWTMTMIALDRYNVIVKGLSAKPMTNKTAMLRILFIWAFSVAWTIMPLFGWNRYVPEGNMTACGTD--YLTKDWVSRSYILVYSFFVYLLPLGTIIYSYFFILQAVSAHMNVRSAEASQTSAECKLAKVALMTISLWFFGWTPYLIINFTGIFETMK-ISPLLTIWGSLFAKANAVFNPIVYGISHPKYRAALEKKFPSLACASSSDDNTSVSDEKSEKSASA-
->MSHR_CAPCA
-PVLGSQRRLLGSLNCTPPATFPLTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAVSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDMLICGSMVSSLCFLGAIAVDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHTVVLLCLVGFFIAMLALMAVLYVHMLARACQHIARKRQRPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->O3A4_HUMAN
------------MDLGNSGNDSVTKFVLLGLTETAALQPILFVIFLLAYVTTIGGTLSILAAILMETKLHSPMYFFLGNLSLPDVGCVSVTVPAMLSHFISNDRSIPYKACLSELFFFHLLAGADCFLLTIMAYDRYLAICQSLYSSRMSWGIQQALVGMSWVFSFTNALTQTVALSPL---NNHFYCDLPQLSCASVHLNGQLLFVAAAFMGVAPLVLITVSYAHVAAAV--------LRIRSAEGKKKAFSTCSSHLTVVGIFYGTGVFSYTRLGSVE---SSDKDKGIGILNTVISPMLNPLIYWTSLLDVGCISHCSSDAGVSPGPPVQSSLCLSPPPGWGGLSP
->P70658
-IYTSDNYSEEVG-SGDYDSNKEPC---FRDENVHFNRIFLPTIYFIIFLTGIVGNGLVILVMGYQKKLRSMTDKYRLHLSVADLLFVITLPFWAVDAMAD--WYFGKFLCKAVHIIYTVNLYSSVLILAFISLDRYLAIVHATSQRPRKLLAEKAVYVGVWIPALLLTIPDFIFADVSQGDD-RYICDRL---YPDSLWMVVFQFQHIMVGLILPGIVILSCYCIIISKL---------SHSKGHQKRKALKTTVILILAFFACWLPYYVGISIDSFILLGSIVHKWISITEALAFFHCCLNPILYAFLGAKFKSSAQHALNSMSRGSSLKILSKG----------GH
->OPSD_AMBTI
-MNGTEGPNFYVPFSNKSGVVRSPFEYPQYYLAEPWQYSVLAAYMFLLILLGFPVNFLTLYVTIQHKKLRTPLNYILLNLAFANHFMVFGGFPVTMYSSMHGYFVFGQTGCYIEGFFATMGGEIALWSLVVLAIERYVVVCKPMSNFRFGENHAIMGVMMTWIMALACAAPPLFGWSRYIPEGMQCSCGVDYYTLKPEVNNESFVIYMFLVHFTIPLMIIFFCYGRLVCTVKEAAAQQQESATTQKAEKEVTRMVIIMVVAFLICWVPYASVAFYIFSNQGTDFGPIFMTVPAFFAKSSAIYNPVIYIVLNKQFRNCMITTICCGKNPFGDDETTSAASSVSSSQVSPA
->V2R_PIG
--MLRATTSAVPRALSWPAAPGNGSEREPLDDRDPLLARVELALLSTVFVAVALSNGLVLGALVRRGRRWAPMHVFIGHLCLADLAVALFQVLPQLAWDATYRFRGPDALCRAVKYLQMVGMYASSYMILAMTLDRHRAICRPMAYRHGGGARWNRPVLVAWAFSLLLSLPQLFIFAQRDSG--VLDCWAS---FAEPWGLRAYVTWIALMVFVAPALGIAACQVLIFREIHTSGRRPREGARVSAAMAKTARMTLVIVAVYVLCWAPFFLVQLWSVWDPKA-REGPPFVLLMLLASLNSCTNPWIYASFSSSISSELRSLLCCPRRRTPPSLRPQESFSARDTSS---
->5H7_HUMAN
-GSWAPHLLS---EVTASPAPTNASGCGEQINYGRVEKVVIGSILTLITLLTIAGNCLVVISVCFVKKLRQPSNYLIVSLALADLSVAVAVMPFVSVTDLIGGWIFGHFFCNVFIAMDVMCCTASIMTLCVISIDRYLGITRPLYPVRQNGKCMAKMILSVWLLSASITLPPLFGWAQ--N-D--KVCLIS--------QDFGYTIYSTAVAFYIPMSVMLFMYYQIYKAARKSSRLERKNISIFKREQKAATTLGIIVGAFTVCWLPFFLLSTARPFICGTCIPLWVERTFLWLGYANSLINPFIYAFFNRDLRTTYRSLLQCQYRNINRKLSAAGAERPERPEFVLR
->NTR2_RAT
------METSSPWPPRPSPSAGLSLEARLGVDTRLWAKVLFTALYSLIFAFGTAGNALSVHVVLKARARPGRLRYHVLSLALSALLLLLVSMPMELYNFVWSHWVFGDLGCRGYYFVRELCAYATVLSVASLSAERCLAVCQPLARRLLTPRRTRRLLSLVWVASLGLALPMAVIMGQKH--AASRVCTVL---VSRATLQVFIQVN-VLVSFALPLALTAFLNGITVNHLMALVQARHKDASQIRSLQHSAQVLRAIVAVYVICWLPYHARRLMYCYIPDDDFYHYFYMVTNTLFYVSSAVTPILYNAVSSSFRKLFLESLGSLCGEQHSLVPLPQSTYSFRLWGSPR
->OPSD_RAJER
-MNGTEGENFYVPMSNKTGVVRSPFDYPQYYLGEPWMFSALAAYMFFLILTGLPVNFLTLFVTIQHKKLRQPLNYILLNLAVSDLFMVFGGFTTTIITSMNGYFIFGPAGCNFEGFFATLGGEVGLWCLVVLAIERYMVVCKPMANFRFGSQHAIIGVVFTWIMALSCAGPPLVGWSRYIPEGLQCSCGVDYYTMKPEVNNESFVIYMFVVHFTIPLIVIFFCYGRLVCTVKEAAAQQQESESTQRAEREVTRMVIIMVVAFLICWVPYASVAFYIFINQGCDFTPFFMTVPAFFAKSSAVYNPLIYILMNKQFRNCMITTICLGKNPFEEEESTSAASSVSSSQVAPA
->OPSD_CAMAB
-GGGF-GNQTVVDKVPPEMLHMVDAHWYQFPPMNPLWHALLGFVIGVLGVISVIGNGMVIYIFTTTKSLRTPSNLLVVNLAISDFLMMLCMSPAMVINCYYETWVLGPLFCELYGLAGSLFGCASIWTMTMIAFDRYNVIVKGLSAKPMTINGALIRILTIWFFTLAWTIAPMFGWNRYVPEGNMTACGTD--YLTKDLFSRSYILIYSIFVYFTPLFLIIYSYFFIIQAVAAHMNVRSAENQSTSAECKLAKVALMTISLWFMAWTPYLVINYSGIFETTK-ISPLFTIWGSLFAKANAVYNPIVYGISHPKYRAALFQKFPSLACTTEPTG-ADTTEGNEKPAA---
->SSR4_MOUSE
-VED----TTWTPGINASWAPEQEEDAMGSDGTGTAGMVTIQCIYALVCLVGLVGNALVIFVILRYAKMKTATNIYLLNLAVADELFMLSVPFVRSAAALRH-WPFGAVLCRAVLSVDGLNMFTSVFCLTVLSVDRYVAVVHPLTATYRRPSVAKLINLGVWLASLLVTLPIAVFADTRPGGE-AVACNLH---WPHPAWSAVFVIYTFLLGFLPPVLAIGLCYLLIVGKMRAVALR-GGWQQRRRSEKKITRLVLMVVTVFVLCWMPFYVVQLLNLFVTS--LDATVNHVSLILSYANSCANPILYGFLSDNFRRSFQRVLCLRCCLLETTGGAEETALKSRGGAGCI
->NY1R_.ENLA
-NFSTYFENLSVPNNISG---NITFPISEDCALPLPMIFTLALAYGAVIILGLSGNLALIIIILKQKEMRNVTNILIVNLSFSDLLATIMCLPFTLIYTLMDHWIFGEVMCKLNEYIQCVSVTVSIFSLVLIAIERHQLIINPR-GWRPNNRHACFGITVIWGFAMACSTPLMMYSVLTDIG--KYVCLED---FPEDKFRLSYTTLLFILQYLGPLCFIFVCYTKIFLRLKRRNMMIRDNKYRSSETKRINIMLLSIVVGFALCWLPFFIFNLVFDWNHEACNHNLLFLICHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSREDDY---TMHTDVSKTSLK
->LSHR_PIG
-ESELSDWDYDYGFCSPKTLQCAPEPDAFNPCEDIMGYDFLRVLIWLINILAIMGNVTVLFVLLTSHYKLTVPRFLMCNLSFADFCMGLYLLLIASVDAQTKGWQTG-NGCSVAGFFTVFASELSVYTLTVITLERWHTITYAILDQKLRLRHAIPIMLGGWLFSTLIAMLPLVGVSSY----KVSICLPM-----VETTLSQVYILTILILNVVAFIIICACYIKIYFAVQNP------ELMATNKDTKIAKKMAVLIFTDFTCMAPISFFAISAALKVPLITVTNSKVLLVLFYPVNSCANPFLYAIFTKAFRRDFFLLLSKSGCCKHQAELYRRK---NGFTGSNK
->GPR4_HUMAN
---------------------MGNHTWEGCHVDSRVDHLFPPSLYIFVIGVGLPTNCLALWAAYRQVQQRNELGVYLMNLSIADLLYICTLPLWVDYFLHHDNWIHGPGSCKLFGFIFYTNIYISIAFLCCISVDRYLAVAHPLFARLRRVKTAVAVSSVVWATELGANSAPLFHDEL--NH---TFCFEKPMEGWVAWMVAWMNLYRVFVGFLFPWALMLLSYRGILRAVRG------SVSTERQEKAKIKRLALSLIAIVLVCFAPYHVLLLSRSAIYLGERVFSAYHSSLAFTSLNCVADPILYCLVNEGARSDVAKALHNLLRFLASDKPQEMETPLTSKRNSTA
->OPSD_POMMI
-MNGTEGPFFYIPMVNTTGIVRSPYEYPQYYLVNPAAYAALGAYMFFLILTGFPINFLTLYVTLEHKKLRTALNLILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNVEGFFATLGGEIALWSLVVLAVERWVVVCKPISNFRFTENHAIMGVAFSWIMAATCAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVIYMFIVHFLAPLIVIFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVIIMVIGFLTSWLPYASVAWYIFTHQGTEFGPLFMTIPAFFAKSSALYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->CB1R_POEGU
-EFYNKSLSTFKDNEENIQCGENFMDMECFMILNPSQQLAIAVLSLTLGTFTVLENLLVLCVILHSRSRCRPSYHFIGSLAVADLLGSVIFVYSFVDFHVFHR-KDSPNVFLFKLGGVTASFTASVGSLFLTAIDRYISIHRPLYKRIVTRPKAVVAFCVMWTIAIVIAVLPLLGWNCK-K--LNSVCSDI------FPLIDETYLMFWIGVTSILLLFIVYAYMYILWKAHSHTEDQITRPDQTRMDIRLAKTLVLILVVLIICWGPLLAIMVYDVFGKMNKLIKTIFAFCSMLCLLNSTVNPIIYALRSKDLRHAFRSMFPTCEGTAQPLDNSMEANN-AGNVHRAA
->ADMR_HUMAN
-AVPTSDLGEIHNWTELLDLFNHTLSECHVELSQSTKRVVLFALYLAMFVVGLVENLLVICVNWRGSGRAGLMNLYILNMAIADLGIVLSLPVWMLEVTLDYTWLWGSFSCRFTHYFYFVNMYSSIFFLVCLSVDRYVTLTSASSWQRYQHRVRRAMCAGIWVLSAIIPLPEVVHIQLVE--E--PMCLFMAPFETYSTWALAVALSTTILGFLLPFPLITVFNVLTACRL---------RQPGQPKSRRHCLLLCAYVAVFVMCWLPYHVTLLLLTLHGTHHLLYFFYDVIDCFSMLHCVINPILYNFLSPHFRGRLLNAVVHYLPKDQTKAGTCAQHSIIITKGDSQ
->GPR6_HUMAN
-G-PPAAAALGAGGGANGSLELSSQLSAGPPGLLLPAVNPWDVLLCVSGTVIAGENALVVALIASTPALRTPMFVLVGSLATADLLAG-CGLILHFVFQ-Y--LVPSETVSLLTVGFLVASFAASVSSLLAITVDRYLSLYNALYYSRRTLLGVHLLLAATWTVSLGLGLLPVLGWNCL-A--ERAACSVV-------RPLARSHVALLSAAFFMVFGIMLHLYVRICQVVWRHIALHCLAPPHLAATRKGVGTLAVVLGTFGASWLPFAIYCVVGSH----EDPAVYTYATLLPATYNSMINPIIYAFRNQEIQRALWLLLCGCFQSKVPFRSRSP------------
->5H1D_MOUSE
-SLPNQSLEGLPQEASNRSLNAT---GAWDPEVLQALRISLVVVLSVITLATVLSNAFVLTTILLTKKLHTPANYLIGSLATTDLLVSILVMPISIAYTTTRTWNFGQILCDIWVSSDITCCTASILHLCVIALDRYWAITDALYSKRRTAGHAAAMIAAVWIISICISIPPLFWR----H-E--SDCLVN-------TSQISYTIYSTCGAFYIPSILLIILYGRIYVAARSRKLALERKRISAARERKATKTLGIILGAFIICWLPFFVVSLVLPICRDSWIHPALFDFFTWLGYLNSLINPVIYTVFNEDFRQAFQKVVHFRKAS---------------------
->OPSD_ORYLA
-MNGTEGPYFNVPMVNTTGIVRSPYEYPQYYLVSPAAYAALGAYMFFLILVGFPINFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVFGGFTTTMYTSMHGYFVLGRLGCNLEGFFATLGGEIGLWSLVVLAIERWVVVCKPISNFRFGENHAIMGLVFTWIMAASCAVPPLVGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVVYMFVCHFLIPLIVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVIMVIGFLVCWLPYASVAWYIFTNQGSEFGPLFMTIPAFFAKSSSIYNPAIYICMNKQFRNCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->YDBM_CAEEL
-EGAGEDVDHHSLFCPKKLVGNLKGFIRNQYHQHETIQILKGSALFLLVLWTIFANSLVFIVLYKNPRLQTVPNLLVGNLAFSDLALGLIVLPLSSVYAIAGEWVFPDALCEVFVSADILCSTASIWNLSIVGLDRYWAITSPVYMSKRNKRTAGIMILSVWISSALISLAPLLGWKQ--Q-TTVRQCTFL--------DLPSYTVYSATGSFFIPTLLMFFVYFKIYQAFAKHYRKRKPKAISAAKERRGVKVLGIILGCFTVCWAPFFTMYVLVQFCKDCSPNAHIEMFITWLGYSNSAMNPIIYTVFNRDYQIALKRLFTSEKKPSSTSRV---------------
->THRR_MOUSE
-LLEGRAVYLNISLPPHTPPPPFISEDASGYLTSPWLTLFMPSVYTIVFIVSLPLNVLAIAVFVLRMKVKKPAVVYMLHLAMADVLFVSVLPFKISYYFSGTDWQFGSGMCRFATAAFYGNMYASIMLMTVISIDRFLAVVYPISLSWRTLGRANFTCVVIWVMAIMGVVPLLLKEQTTR--N--TTCHDVLSENLMQGFYSYYFSAFSAIFFLVPLIVSTVCYTSIIRCL------SSSAVANRSKKSRALFLSAAVFCIFIVCFGPTNVLLIVHYLFLSDEAAYFAYLLCVCVSSVSCCIDPLIYYYASSECQRHLYSILCCKESSDPNSCNSTGDTCS--------
->H218_RAT
-----MGGLYSEYLNPEKVQEHYNYTKETLDMQETPSRKVASAFIIILCCAIVVENLLVLIAVARNSKFHSAMYLFLGNLAASDLLAG-VAFVANTLLSGPVTLSLTPLQWFAREGSAFITLSASVFSLLAIAIERQVAIAKVKLYGSDKSCRMLMLIGASWLISLILGGLPILGWNCL-D--HLEACSTV------LPLYAKHYVLCVVTIFSVILLAIVALYVRIYFVVRSS-----HADVAGPQTLALLKTVTIVLGVFIICWLPAFSILLLDSTCPVRCPVLYKAHYFFAFATLNSLLNPVIYTWRSRDLRREVLRPLLCWRQGKGATGRRGGPLRSSSSLERGL
->CKR5_MOUSE
---MDFQGSVPTYIYDIDYGMSAPC---QKINVKQIAAQLLPPLYSLVFIFGFVGNMMVFLILISCKKLKSVTDIYLLNLAISDLLFLLTLPFWAHYAANE--WIFGNIMCKVFTGVYHIGYFGGIFFIILLTIDRYLAIVHAVALKVRTVNFGVITSVVTWVVAVFASLPEIIFTRSQK-EG-HYTCSPHFPHTQYHFWKSFQTLKMVILSLILPLLVMIICYSGILHTL--------FRCRNEKKRHRAVRLIFAIMIVYFLFWTPYNIVLLLTTFQEFFNRLDQAMQATETLGMTHCCLNPVIYAFVGEKFRSYLSVFFRKHIVKRFCKRCSIFV-------SSVY
->B3AR_CANFA
-MAPWPHGNGSVASWPAAPTPTPDAANTSGLPGAPWAVALAGALLALEVLATVGGNLLVIVAIARTPRLQTMTNVFVTSLATADLVVGLLVVPPGATLALTGRWPLGATGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRARAAVVLVWVVSAAVSFAPIMSKWWRVQ-R--HCCAFA--------SNIPYALLSSSVSFYLPLLVMLFVYARVFLVATRQAVPLRPARLLPLREHRALRTLGLIVGTFTLCWLPFFVANVMRALGGPS-VPSPALLALNWLGYANSAFNPLIYCRSP-DFRSAFRRLLCRCR---REEHRAAAAAPAALTSPAES
->P2Y5_CHICK
------------------------MVSSNCSTEDSFKYTLYGCVFSMVFVLGLIANCVAIYIFTFTLKVRNETTTYMLNLAISDLLFVFTLPFRIYYFVVRN-WPFGDVLCKISVTLFYTNMYGSILFLTCISVDRFLAIVHPFSKTLRTKRNARIVCVAVWITVLAGSTPASFFQSTNR---EQRTCFENFPESTWKTYLSRIVIFIEIVGFFIPLILNVTCSTMVLRTLNKP----LTLSRNKLSKKKVLKMIFVHLVIFCFCFVPYNITLILYSLMRTQTAVRTMYPVTLCIAVSNCCFDPIVYYFTSDTNSELDKKQQVHQNT----------------------
->GPRO_HUMAN
-HASRMSVLRAKPMSNSQRLLLLSPGSPPRTGSISYINIIMPSVFGTICLLGIIGNSTVIFAVVKKSKCNNVPDIFIINLSVVDLLFLLGMPFMIHQLMGNGVWHFGETMCTLITAMDANSQFTSTYILTAMAIDRYLATVHPISTKFRKPSVATLVICLLWALSFISITPVWLYARLIP-FP-AVGCGIR--LPNPDTDLYWFTLYQFFLAFALPFVVITAAYVRILQRMTSSV--PASQRSIRLRTKRVTRTAIAICLVFFVCWAPYYVLQLTQLSISRPTFVYLYNAAIS-LGYANSCLNPFVYIVLCETFRKRLVLSVKPAAQGQLRAVSNAQESKGT-------
->THRR_.ENLA
-SGEGSGDQAPVSRSARKPIRRNITKEAEQYLSSQWLTKFVPSLYTVVFIVGLPLNLLAIIIFLFKMKVRKPAVVYMLNLAIADVFFVSVLPFKIAYHLSGNDWLFGPGMCRIVTAIFYCNMYCSVLLIASISVDRFLAVVYPMSLSWRTMSRAYMACSFIWLISIASTIPLLVTEQTQK--D--TTCHDVLDLKDLKDFYIYYFSSFCLLFFFVPFIITTICYIGIIRSL------SSSSIENSCKKTRALFLAVVVLCVFIICFGPTNVLFLTHYLQEANEFLYFAYILSACVGSVSCCLDPLIYYYASSQCQRYLYSLLCCRKVSEPGSSTGQLDNCS--------
->GHSR_HUMAN
-SEEPGFNLTLADLDWDASPGNDSLGDELLQLFPAPLLAGVTATCVALFVVGIAGNLLTMLVVSRFRELRTTTNLYLSSMAFSDLLIFLCMPLDLVRLWQYRPWNFGDLLCKLFQFVSESCTYATVLTITALSVERYFAICFPLAKVVVTKGRVKLVIFVIWAVAFCSAGPIFVLVG---T-D-TNECRPT---FAVRSGLLTVMVWVSSIFFFLPVFCLTVLYSLIGRKLWRRGD-VVGASLRDQNHKQTVKMLAVVVFAFILCWLPFHVGRYLFSKSFEPQISQYCNLVSFVLFYLSAAINPILYNIMSKKYRVAVFRLLGFEPFSQRKLSTLKDESSINT------
->CKR3_CAVPO
-PEEAELETEFPGTTFYDYEFAQPC---FKVSITDLGAQFLPSLFSLVFIVGLLGNITVIVVLTKYQKLKIMTNIYLLNLAISDLLFLFTLPFWTYYVHWNK-WVFGHFMCKIISGLYYVGLFSEIFFIILLTIDRYLAIVHAVALRTRTVTFGIITSVITWVLAVLAALPEFMFYGTQG-HF-VLFCGPSYPEKKEHHWKRFQALRMNIFGLALPLLIMIICYTGIIKTL---------LRCPSKKKYKAIRLIFVIMVVFFVFWTPYNLLLLFSAFDLSFKQLDMAKHVTEVIAHTHCCINPIIYAFVGERFQKYLRHFLHRNVTMHLSKYIPFFS-------SSIS
->ADMR_RAT
-LAPDNDFREIHNWTELLHLFNQTFSDCRMELNENTKQVVLFVFYLAIFVVGLVENVLVICVNCRRSGRVGMLNLYILNMAVADLGIILSLPVWMLEVMLYETWLWGSFSCRFIHYFYLANMYSSIFFLTCLSIDRYVTLTNTSSWQRHQHRIRRAVCAGVWVLSAIIPLPEVVHIQLLD--E--PMCLFLAPFETYSAWALAVALSATILGFLLPFPLIAVFNILSACRL---------RRQGQTESRRHCLLMWAYIVVFAICWLPYHVTMLLLTLHTTHNFLYFFYEITDCFSMLHCVANPILYNFLSPSFRGRLLSLVVRYLPKEQARAAGGRQHSIIITKEGSL
->GPR._MOUSE
---------MDLINSSTHVINVSTSLTNSTGVPTPAPKTIIAASLFMAFIIGVISNGLYLWMLQFKMQ-RTVNTLLFFHLILSYFISTLILPFMATSFLQDNHWVFGSVLCKAFNSTLSVSMFASVFFLSAISVARYYLILHPVSQQHRTPHWASRIALQIWISATILSIPYLVFRTTHD-IS--DWESKE-HQTLGQWIHAACFVGRFLLGFLLPFLVIIFCYKRVATKM---------KEKGLFKSSKPFKVMVTAVISFFVCWMPYHVHSGLVLTKSQP-PLHLTLGLAVVTISFNTVVSPVLYLFTGENFKV-FKKSILALFNSTFSDISSTEETEI--------
->CML2_HUMAN
-APNTTSPELNLSHPLLGTALANGTGELSEHQQYVIGLFLSCLYTIFLFPIGFVGNILILVVNISFREKMTIPDLYFINLAVADLILVADSLIEVFNLHER--YYDIAVLCTFMSLFLQVNMYSSVFFLTWMSFDRYIALARAMCSLFRTKHHARLSCGLIWMASVSATLVPFTAVHLQ-A----CFCFA---------DVREVQWLEVTLGFIVPFAIIGLCYSLIVRVLVR----AHRHRGLRPRRQKALRMILAVVLVFFVCWLPENVFISVHLLQRTQHAHPLTGHIVNLAAFSNSCLNPLIYSFLGETFRDKLRLYIEQKTNLPALNRFCHADSTEQSDVRFSS
->AA2A_CANFA
--------------------------------MSTMGSWVYITVELAIAVLAILGNVLVCWAVWLNSNLQNVTNYFVVSLAAADIAVGVLAIPFAITISTG--FCAACHNCLFFACFVLVLTQSSIFSLLAIAIDRYIAIRIPLYNGLVTGTRAKGIIAVCWVLSFAIGLTPMLGWNNCSS-Q-QVACLFE-----DVVPMNYMVYYNFFAFVLVPLLLMLGVYLRIFLAARRQESQGERARSTLQKEVHAAKSLAIIVGLFALCWLPLHIINCFTFFCPECHAPLWLMYLTIVLSHTNSVVNPFIYAYRIREFRQTFRKIIRSHVLRRREPFKAGGAHGSDGEQISLR
->NK2R_MESAU
-----MGGRAIVTDTNIFSGLESNTTGVTAFSMPAWQLALWATAYLGLVLVAVTGNATVIWIILAHERMRTVTNYFIINLALADLCMAAFNATFNFVYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAADRYMAIVHPF-QPRLSAPITKATIAGIWLVALALASPQCFYST---GA---TKCVVAWPNDNGGKMLLLYHLVVFVLVYFLPLVVMFVAYSVIGLTLWKRPRHHGANLRHLHAKKKFVKAMVLVVLTFAICWLPYHLYFILGSFQKDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWVTPTEE----RTPSLSRRVNRC
->PAFR_MOUSE
-----------------------MEHNGSFRVDSEFRYTLFPIVYSVIFILGVVANGYVLWVFANLYPKLNEIKIFMVNLTMADLLFLITLPLWIVYYYNEGDWILPNFLCNVAGCLFFINTYCSVAFLGVITYNRYQAVAYPITAQATTRKRGISLSLIIWVSIVATASYFLATDSTN-G--NITRCFEH---YEPYSVPILVVHVFIAFCFFLVFFLIFYCNLVIIHTLLTQP---MRQQRKAGVKRRALWMVCTVLAVFIICFVPHHVVQLPWTLAELGQAINDAHQITLCLLSTNCVLDPVIYCFLTKKFRKHLSEKFYSMRSSRKCSRATSDPANQTPIVSLKN
->GU27_RAT
---------------------------------MILNCNPFSGLFLSMYLVTVLGNLLIILAVSSNSHLHNLMYFFLSNLSFVDICFISTTIPKMLVNIHSQTKDISYIECLSQVYFLTTFGGMDNFLLTLMACDRYVAICHPLYTVIMNLQLCALLILMFWLIMFCVSLIHVLLMNEL---NPHFFCELAKVANSDTHINNVFMYVVTSLLGLIPMTGILMSYSQIASSL--------LKMSSSVSKYKAFSTCGSHLCVVSLFYGSATIVYFCSSVLHS---THKKMIASLMYTVISPMLNPFIYSLRNKDVKGALGKLFIRVASCPLWSKDFRPRQSL--------
->ET3R_.ENLA
-GNVLNMSPP------------PPSPCLSRAKIRHAFKYVTTILSCVIFLVGIVGNSTLLRIIYKNKCMRNGPNVLIASLALGDLFYILIAIPIISISFWLS----TGHSEYIYQLVHLYRARVYSLSLCALSIDRYRAVASWNIRSIGIPVRKAIELTLIWAVAIIVAVPEAIAFNLVELV--ILVCMLPQTSDFMRFYQEVKVWWLFGFYFCLPLACTGVFYTLMSCEMLSINGM-IALNDHMKQRREVAKTVFCLVVIFALCWLPLHVSSIFVRLSATVQLLMVMNYTGINMASLNSCIGPVALYFVSRKFKNCFQSCLCCWCHRPTLTITPMDWKANGHDLDLDR
->B3AR_CAPHI
-MAPWPPRNSSLTPWPDIPTLAPNTANASGLPGVPWAVALAGALLALAVLAIVGGNLLVIVAIARTPRLQTMTNVFVTSLATADLVVGLLVVPPGATLALTGHWPLGVTGCELWTSVDVLCVTASIETLCALAVDRYLAVTNPLYGALVTKRRARAAVVLVWVVSAAVSFAPIMSKWWRVQ-R--RCCTFA--------SNMPYALLSSSVSFYLPLLVMLFVYARVFVVATRQGVPRRPARLLPLREHRALRTLGLIMGTFTLCWLPFFVVNVVRALGGPS-VSGPTFLALNWLGYANSAFNPLIYCRSP-DFQSAFRRLLCRCRPEEHLAAASPPRVLTSPAGPRQP
->GP41_HUMAN
------------------------MDTGPDQSYFSGNHWFVFSVYLLTFLVGLPLNLLALVVFVGKLQRPVAVDVLLLNLTASDLLLLLFLPFRMVEAANGMHWPLPFILCPLSGFIFFTTIYLTALFLAAVSIERFLSVAHPLYKTRPRLGQAGLVSVACWLLASAHCSVVYVIEFSGD--T--GTCYLE-FRKDQLAILLPVRLEMAVVLFVVPLIITSYCYSRLVWILGR--------GGSHRRQRRVAGLLAATLLNFLVCFGPYNVSHVVGYICG---ESPAWRIYVTLLSTLNSCVDPFVYYFSSSGFQADFHELLRRLCGLWGQWQQESSGGEEQRADRPAE
->O.YR_RAT
-GTPAANWSVELDLGSGVPPGEEGNRTAGPPQRNEALARVEVAVLCLILFLALSGNACVLLALRTTRHKHSRLFFFMKHLSIRDLVVAVFQVLPQLLWDITFRFYGPDLLCRLVKYLQVVGMFASTYLLLLMSLDRCLAICQPL--RSLRRRTDRLAVLGTWLGCLVASAPQVHIFSLRE----VFDCWAV---FIQPWGPKAYVTWITLAVYIVPVIVLAACYGLISFKIWQNRAAVSSVKLISKAKIRTVKMTFIIVLAFIVCWTPFFFVQMWSVWDVNA-KEASAFIIAMLLASLNSCCNPWIYMLFTGHLFHELVQRFFCCSARYLKGSRPGENSSTFVLSRRSS
->OLF2_CHICK
--------------MASGNCTTPTTFILSGLTDNPRLQMPLFMVFLVIYTTTLLTNLGLIALIGMDLHLQTPMYIFLQNLSFTDAAYSTVITPKMLATFLEERRTISYVGCILQYFSFVLLTTSEWLLLAVMAYDRYVAICKPLYPSIMTKAVCWRLVKGLYSLAFLNSLVHTSGLLKL---SNHFFCDNRQISSSSTTLNELLVIISGSLFVMSSIITILISYVFIILTV--------VMIRSKDGKYKAFSTCTSHLMAVSLFHGTVIFMYLRSVKLF---SLDTDKIASLFYTVVIPMLNPLIYSWRNKEVKDALRRLTATSVWLH--------------------
->NTR1_MOUSE
-PHPQFGLETMLLALSLSNGSGLEPNSNLDVNTDIYSKVLVTAVYLALFVVGTVGNSVTAFTLARKKSLQSTVHYHLGSLALSDLLILLLAMPVELYNFIWVHWAFGDAGCRGYYFLRDACTYATALNVASLSVERYLAICHPFAKTLMSRSRTKKFISAIWLASALLAVPMLFTMGLQN--SGGLVCTPT---VVDTATVKVVIQVNTFMSFLFPMLIISILNTVIANKLTVMEHSMSIEPGRVQALRHGVLVLRAVVIAFVVCWLPYHVRRLMFCYISDEDFYHYFYMLTNALFYVSSAINPILYNLVSANFRQVFLSTLACLCPGWRRRRKKRPSMSSNHAFSTSA
->OLF7_RAT
-------------MERRNHSGRVSEFVLLGFPAPAPLRVLLFFLSLL-YVLVLTENMLIIIAIRNHPTLHKPMYFFLANMSFLEIWYVTVTIPKMLAGFIGSKQLISFEACMTQLYFFLGLGCTECVLLAVMAYDRYVAICHPLYPVIVSSRLCVQMAAGSWAGGFGISMVKVFLISRL---SNHFFCDVSNLSCTDMSTAELTDFVLAIFILLGPLSVTGASYMAITGAV--------MRIPSAAGRHKAFSTCASHLTVVIIFYAASIFIYARPKALS---AFDTNKLVSVLYAVIVPLFNPIIYCLRNQDVKRALRRTLHLAQDQEANTNKGSK------------
->MC5R_RAT
--MNSSSHLTLLDLTLNASEDNILGQNVNNKSSACEDMGIAVEVFLTLGLVSLLENILVIGAIVKNKNLHSPMYFFVGSLAVADMLVSMSNAWETITIYLINNDTFVRHIDNVFDSMICISVVASMCSLLAIAVDRYITIFYALYHHIMTARRSGVIIACIWTFCISCGIVFIIYYY----------------------EESKYVIVCLISMFFTMLFFMVSLYIHMFLLARNH-RIPRYNSVRQRASMKGAITLTMLLGIFIVCWSPFFLHLILMISCPQNACFMSYFNMYLILIMCNSVIDPLIYALRSQEMRRTFKEIICCHGFRRTCTLLGRY------------
->BONZ_CERAE
-------MAEYDHYEDNGFNSFNDSSQEEHQDFLQFSKVFLPCMYLVVFVCGLVGNSLVLVISIFYHKLQSLTDVFLVNLPLADLVFVCTLPFWAYAGIHE--WIFGQVMCKTLLGIYTINFYTSMLILTCITVDRFIVVVKATNQQAKKMTWGKVICLLIWVISLLVSLPQIIYGNVFNLD--KLICGYH-----DEEISTVVLATQMTLGFFLPLLAMIVCYSVIIKTL---------LHAGGFQKHRSLKIIFLVMAVFLLTQTPFNLVKLIRSTHWEYTSFHYTIIVTEAIAYLRACLNPVLYAFVSLKFRKNFWKLVKDIGCLPYLGVSHQWKTFSASHNVEAT
->SSR5_MOUSE
-LSLASTPSWNAS---AASSGSHNWSLVDPVSPMGARAVLVPVLYLLVCTVGLGGNTLVIYVVLRYAKMKTVTNVYILNLAVADVLFMLGLPFLATQNAVSY-WPFGSFLCRLVMTLDGINQFTSIFCLMVMSVDRYLAVVHPLSARWRRPRVAKLASAAVWVFSLLMSLPLLVFADVQE-----GTCNLS-WPEPVGLWGAAFITYTSVLGFFGPLLVICLCYLLIVVKVKAAMR--VGSSRRRRSERKVTRMVVVVVLVFVGCWLPFFIVNIVNLAFTLPPTSAGLYFFVVVLSYANSCANPLLYGFLSDNFRQSFRKALCLRRGYGVEDADAIERPQTTLPTRSCE
->OPSR_ASTFA
-GD--DTTREAAFTYTNSNNTKDPFEGPNYHIAPRWVYNLATCWMFFVVVASTVTNGLVLVASAKFKKLRHPLNWILVNLAIADLLETLLASTISVCNQFFGYFILGHPMCVFEGFTVATCGIAGLWSLTVISWERWVVVCKPFGNVKFDGKMATAGIVFTWVWSAVWCAPPIFGWSRYWPHGLKTSCGPDVFSGSEDPGVQSYMIVLMITCCFIPLGIIILCYIAVWWAIRTVAQQQKDSESTQKAEKEVSRMVVVMIMAYCFCWGPYTFFACFAAANPGYAFHPLAAAMPAYFAKSATIYNPVIYVFMNRQFRVCIMQLFGKKVDDG-----SEVSS------VAPA
->C.C1_HUMAN
-------MESSGNPESTTFFYYDLQSQPCENQAWVFATLATTVLYCLVFLLSLVGNSLVLWVLVKYESLESLTNIFILNLCLSDLVFACLLPVWISPYHWG--WVLGDFLCKLLNMIFSISLYSSIFFLTIMTIHRYLSVVSPLTLRVPTLRCRVLVTMAVWVASILSSILDTIFHKVLS-----SGCDYS------ELTWYLTSVYQHNLFFLLSLGIILFCYVEILRTL---------FRSRSKRRHRTVKLIFAIVVAYFLSWGPYNFTLFLQTLFRTQQQLEYALLICRNLAFSHCCFNPVLYVFVGVKFRTHLKHVLRQFWFCRLQAPSPASFAYEGASFY---
->GALT_RAT
---------------------MADIQNISLDSPGSVGAVAVPVIFALIFLLGMVGNGLVLAVLLQPGPPRSTTDLFILNLAVADLCFILCCVPFQAAIYTLDAWLFGAFVCKTVHLLIYLTMYASSFTLAAVSLDRYLAVRHPLSRALRTPRNARAAVGLVWLLAALFSAPYLSYYG---GA--LELCVPA----WEDARRRALDVATFAAGYLLPVAVVSLAYGRTLCFLWAAP--AAAAEARRRATGRAGRAMLAVAALYALCWGPHHALILCFWYGRFAPATYACRLASHCLAYANSCLNPLVYSLASRHFRARFRRLWPCGRRRHRHHHR-AHPASSGPAGYPGD
->ACM4_HUMAN
------MANFTPVNGSSGNQSVRLVTSSSHNRYETVEMVFIATVTGSLSLVTVVGNILVMLSIKVNRQLQTVNNYFLFSLACADLIIGAFSMNLYTVYIIKGYWPLGAVVCDLWLALDYVVSNASVMNLLIISFDRYFCVTKPLYPARRTTKMAGLMIAAAWVLSFVLWAPAILFWQFVV-VP-DNHCFIQ------FLSNPAVTFGTAIAAFYLPVVIMTVLYIHISLASRSRSIAVRKKRQMAARERKVTRTIFAILLAFILTWTPYNVMVLVNTFCQSC-IPDTVWSIGYWLCYVNSTINPACYALCNATFKKTFRHLLLCQYRNIGTAR----------------
->AG22_RAT
-RNITSSLPFDNLNATGTNESAFNC----SHKPADKHLEAIPVLYYMIFVIGFAVNIVVVSLFCCQKGPKKVSSIYIFNLAVADLLLLATLPLWATYYSYRYDWLFGPVMCKVFGSFLTLNMFASIFFITCMSVDRYQSVIYPFLSQRRNPWQASYVVPLVWCMACLSSLPTFYFRDVRT-LG--NACIMAFPPEKYAQWSAGIALMKNILGFIIPLIFIATCYFGIRKHLLKT----NSYGKNRITRDQVLKMAAAVVLAFIICWLPFHVLTFLDALTWMGAVIDLALPFAILLGFTNSCVNPFLYCFVGNRFQQKLRSVFRVPITWLQGKRETMSREMD-------T
->OPRM_MOUSE
-LSHVDGNQSDPCGPNRTGLGGSHSLCPQTGSPSMVTAITIMALYSIVCVVGLFGNFLVMYVIVRYTKMKTATNIYIFNLALADALATSTLPFQSVNYLMGT-WPFGNILCKIVISIDYYNMFTSIFTLCTMSVDRYIAVCHPVALDFRTPRNAKIVNVCNWILSSAIGLPVMFMATTKYGS---IDCTLT-FSHPTWYWENLLKICVFIFAFIMPVLIITVCYGLMILRLKSVRML-SGSKEKDRNLRRITRMVLVVVAVFIVCWTPIHIYVIIKALITIPTFQTVSWHFCIALGYTNSCLNPVLYAFLDENFKRCFREFCIPTSSTIEQQNSARIPSTANTVDRTNH
->MC4R_HUMAN
-GMHTSLHLWNRSSYRLHSNASESLGKGYSDGGCYEQLFVSPEVFVTLGVISLLENILVIVAIAKNKNLHSPMYFFICSLAVADMLVSVSNGSETIIITLLNSQSFTVNIDNVIDSVICSSLLASICSLLSIAVDRYFTIFYALYHNIMTVKRVGIIISCIWAACTVSGILFIIYYS----------------------DDSSAVIICLITMFFTMLALMASLYVHMFLMARLH-RIPGTGAIRQGANMKGAITLTILIGVFVVCWAPFFLHLIFYISCPQNVCFMSHFNLYLILIMCNSIIDPLIYALRSQELRKTFKEIICCYPLGGLCDLSSRY------------
->5H7_CAVPO
-STWTPRLLSGVPEVAASPSPSNVSGCGEQINYGRAEKVVIGSILTLITLLTIAGNCLVVISVCFVKKLRQPSNYLIVSLALADLSVAVAVIPFVSVTDLIGGWIFGHFFCNVFIAMDVMCCTASIMTLCVISIDRYLGITRPLYPVRQNGKCMPKMILSVWLLSASITLPPLFGWAQ--N-D--KVCLIS--------QDFGYTIYSTAVAFYIPMSVMLFMYYRIYKAARKSSRLERKNISIFKREQKAATTLGIIVGAFTVCWLPFFLLSTARPFICGTCIPLWVERTCLWLGYANSLINPFIYAFFNRDLRTTYRSLLQCQYRNINRKLSAAGAERPERPECVLQ
->NK2R_HUMAN
-----MGTCDIVTEANISSGPESNTTGITAFSMPSWQLALWAPAYLALVLVAVTGNAIVIWIILAHRRMRTVTNYFIVNLALADLCMAAFNAAFNFVYASHNIWYFGRAFCYFQNLFPITAMFVSIYSMTAIAADRYMAIVHPF-QPRLSAPSTKAVIAGIWLVALALASPQCFYST---GA---TKCVVAWPEDSGGKTLLLYHLVVIALIYFLPLAVMFVAYSVIGLTLWRRPGHHGANLRHLQAKKKFVKTMVLVVLTFAICWLPYHLYFILGSFQEDIKFIQQVYLALFWLAMSSTMYNPIIYCCLNHRFRSGFRLAFRCCPWVTPTKE----PTTSLSTRVNRC
->NY1R_CAVPO
-TSFSQLENHSVHYNLSEEKPSFFAFENDDCHLPLAVIFTLALAYGAVIILGVSGNLALILIILKQKEMRNVTNILIVNLSFSDLLVAIMCLPFTFVYTLMDHWIFGEIMCKLNPFVQCVSITVSIFSLVLIAVERHQLIINPR-GWRPNNRHAYIGIAVIWVLAVASSLPFMIYQVLTDKD--KLVCFDQ---FPSDSHRLSYTTLLLVLQYFGPLCFIFICYFKIYIRLKRRNMMMRDSKYRSSESKRINIMLLSIVVAFAVCWLPLTIFNTVFDWNHQICNHNLLFLLCHLTAMISTCVNPIFYGFLNKNFQRDLQFFFNFCDFRSRDDDY---TMHTDVSKTSLK
->O.1R_RAT
-PGVPTSSGEPFHLPPDYED-EFLRYLWRDYLYPKQYEWVLIAAYVAVFLIALVGNTLVCLAVWRNHHMRTVTNYFIVNLSLADVLVTAICLPASLLVDITESWLFGHALCKVIPYLQAVSVSVAVLTLSFIALDRWYAICHPL-LFKSTARRARGSILGIWAVSLAVMVPQAAVMECSSRTRLFSVCDER---WADELYPKIYHSCFFFVTYLAPLGLMGMAYFQIFRKLWGPQPRFLAEVKQMRARRKTAKMLMVVLLVFALCYLPISVLNVLKRVFGMFEAVYACFTFSHWLVYANSAANPIIYNFLSGKFREQFKAAFSCCLPGLGPS-----RHKS---LSLQS
->YTJ5_CAEEL
--------------MPNYTVPPDPADTSWDSPYSIPVQIVVWIIIIVLSLETIIGNAMVVMAYRIERNSKQVSNRYIVSLAISDLIIGIEGFPFFTVYVLNGDWPLGWVACQTWLFLDYTLCLVSILTVLLITADRYLSVCHTAYLKWQSPTKTQLLIVMSWLLPAIIFGIMIYGWQAMTQSTSGAECSAP------FLSNPYVNMGMYVAYYWTTLVAMLILYKVFSSGYQKKSQPDRLAPPNKTDTFLSASGTITFIVGFFAILWSPYYIMATVYGFCKG--IPSFLYTLSYYMCYLNSSGNPFAYALANRQFRSAFMRMFRGNFNKVA------------------
->KI01_HUMAN
----------------MINSTSTQPPDESCSQNLLITQQIIPVLYCMVFIAGILLNGVSGWIFFYVPS-SKSFIIYLKNIVIADFVMSLTFPFKILGDSGLGPWQLNVFVCRVSAVLFYVNMYVSIVFFGLISFDRYYKIVKPLTSFIQSVSYSKLLSVIVWMLMLLLAVPNIILTNQS-TQ---IKCIEL--KSELGRKWHKASNYIFVAIFWIVFLLLIVFYTAITKKIFK----LKSSRNSTSVKKKSSRNIFSIVFVFFVCFVPYHIARIPYTKSQTEEILRYMKEFTLLLSAANVCLDPIIYFFLCQPFREILCKKLHIPLKAQNDLDISRIESTDTL------
->PD2R_HUMAN
----------------------MKSPFYRCQNTTSVEKGNSAVMGGVLFSTGLLGNLLALGLLARSGLLPSVFYMLVCGLTVTDLLGKCLLSPVVLAAYAQNRPALDNSLCQAFAFFMSFFGLSSTLQLLAMALECWLSLGHPFYRRHITLRLGALVAPVVSAFSLAFCALPFMGFGKFVQYCPGTWCFIQ-MVHEEGSLSVLGYSVLYSSLMALLVLATVLCNLGAMRNLYAMAEPGREASPQPLEELDHLLLLALMTVLFTMCSLPVIYRAYYGAFKDV-TSEEAEDLRALRFLSVISIVDPWIFIIFRSPVFRIFFHKIFIRPLRYRSRCSNST------------
->C3.1_RAT
---MPTSFPELDLENFEYDDSAEAC---YLGDIVAFGTIFLSIFYSLVFTFGLVGNLLVVLALTNSRKSKSITDIYLLNLALSDLLFVATLPFWTHYLISHEG--LHNAMCKLTTAFFFIGFFGGIFFITVISIDRYLAIVLAASMNNRTVQHGVTISLGVWAAAILVASPQFMFTKRKD-----NECLGDYPEVLQEIWPVLRNSEVNILGFVLPLLIMSFCYFRIVRTL---------FSCKNRKKARAIRLILLVVVVFFLFWTPYNIVIFLETLKFYNRDLRWALSVTETVAFSHCCLNPFIYAFAGEKFRRYLRHLYNKCLAVLCGRPVHAGRSRQDSILSS-L
->UR2R_RAT
-TVSGSTVTELPGDSNVSLNSSWSGPTDPSSLKDLVATGVIGAVLSAMGVVGMVGNVYTLVVMCRFLRASASMYVYVVNLALADLLYLLSIPFIIATYVTKD-WHFGDVGCRVLFSLDFLTMHASIFTLTIMSSERYAAVLRPLDTVQRSKGYRKLLVLGTWLLALLLTLPMMLAIQ---GS--KSLCLPA----WGPRAHRTYLTLLFGTSIVGPGLVIGLLYVRLARAYWLS---ASFKQTRRLPNPRVLYLILGIVLLFWACFLPFWLWQLLAQYHEAMETARIVNYLTTCLTYGNSCINPFLYTLLTKNYREYLRGRQRSLGSSCHSPGSPGSLQQDSGRSLSSS
->5H4_MOUSE
-------------------MDKLDANVSSNEGFRSVEKVVLLTFLAVVILMAILGNLLVMVAVCRDRQRKIKTNYFIVSLAFADLLVSVLVMPFGAIELVQDIWAYGEMFCLVRTSLDVLLTTASIFHLCCISLDRYYAICCQPYRNKMTPLRIALMLGGCWVLPMFISFLPIMQGWNNIRK-NSTWCVFM--------VNKPYAITCSVVAFYIPFLLMVLAYYRIYVTAKEHSRPDQHSTHRMRTETKAAKTLCVIMGCFCFCWAPFFVTNIVDPFIDYT-VPEQVWTAFLWLGYINSGLNPFLYAFLNKSFRRAFLIILCCDDERYKRPPILGQTINGSTHVLR--
->MC4R_RAT
-GMYTSLHLWNRSSHGLHGNASESLGKGHSDGGCYEQLFVSPEVFVTLGVISLLENILVIVAIAKNKNLHSPMYFFICSLAVADMLVSVSNGSETIVITLLNSQSFTVNIDNVIDSVICSSLLASICSLLSIAVDRYFTIFYALYHNIMTVRRVGIIISCIWAACTVSGVLFIIYYS----------------------DDSSAVIICLITMFFTMLVLMASLYVHMFLMARLH-RIPGTGTIRQGANMKGAITLTILIGVFVVCWAPFFLHLLFYISCPQNVCFMSHFNLYLILIMCNAVIDPLIYALRSQELRKTFKEIICFYPLGGICELPGRY------------
->OLF2_CANFA
--------------MDGKNCSSVNEFLLVGISNKPGVKVTLFITFLIVYLIILVANLGMIILIRMDSQLHTPMYFFLSHLSFSDARYSTAVGPRMLVGFIAKNKSIPFYSCAMQWLVFCTFVDSECLLLAVMAFDRYKAISHPLYTVSMSSRVCSLLMAGVYLVGIMDASVNTILTFRL---CNHFFCDVPLLSCSDTQVNELVIFTIFGFIELITLSGLFVSYCYIILAV--------RKINSAEGRFKAFSTCTSHLTAVAIFQGTMLFMYFRPSSSY---SLDQDKIISLFYSLVIPMLNPLIYSLRNKDVKEALKKLKNKKWFH---------------------
->AG2S_.ENLA
-----MLSNISAGENSEVEKIVVKC---SKSGMHNYIFITIPIIYSTIFVVGVFGNSLVVIVIYSYMKMKTMASVFLMNLALSDLCFVITLPLWAVYTAMHYHWPFGDLLCKIASTAITLNLYTTVFLLTCLSIDRYSAIVHPMSRIRRTVMVARLTCVGIWLVAFLASLPSVIYRQIFI-TN--TVCALV-YHSGHIYFMVGMSLVKNIVGFFIPFVIILTSYTLIGKTLKEV------YRAQRARNDDIFKMIVAVVLLFFFCWIPHQVFTFLDVLIQMDDIVDTGMPITICIAYFNSCLNPFLYGFFGKKFRKHFLQLIKYIPPKMRTHASVNTRLSD-------T
->OPRD_MOUSE
-SSPLVNLSDAFPSAFPSAGANASGSPGARSASSLALAIAITALYSAVCAVGLLGNVLVMFGIVRYTKLKTATNIYIFNLALADALATSTLPFQSAKYLMET-WPFGELLCKAVLSIDYYNMFTSIFTLTMMSVDRYIAVCHPVALDFRTPAKAKLINICIWVLASGVGVPIMVMAVTQPGA---VVCMLQ-FPSPSWYWDTVTKICVFLFAFVVPILIITVCYGLMLLRLRSVRLL-SGSKEKDRSLRRITRMVLVVVGAFVVCWAPIHIFVIVWTLVDINPLVVAALHLCIALGYANSSLNPVLYAFLDENFKRCFRQLCRTPCGRQEPGSLRRPRVTACTPSDGPG
->CKR5_PYGNE
-----MDYQVSSPTYDIDYYTSEPC---QKVNVKQIAARLLPPLYSLVFIFGFVGNILVVLILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQR-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLIMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->OPSD_GAMAF
-MNGTEGPYFYVPMVNTTGIVRSPYEYPQYYLVSPAAYACLGAYMFFLILVGFPVNFLTLYVTIEHKKLRTPLNYILLNLAVADLFMVFGGFTTTIYTSMHGYFVLGRLGCNLEGYFATLGGEIGLWSLVVLAVERWLVVCKPISNFRFTENHAIMGLVFTWIMANACAAPPLLGWSRYIPEGMQCSCGVDYYTRAEGFNNESFVIYMFICHFCIPLVVVFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVVILVIGFLVCWTPYASVAWYIFSNQGSEFGPLFMTIPAFFAKSSSIYNPMIYICMNKQFRHCMITTLCCGKNPFEEEEGASTASSVSSSSVSPA
->LSHR_CALJA
-ESGQSGWDYDYGFHLPKTPRCAPEPDAFNPCEDIMGYDFLRVLIWLINILAIMGNMTVLFVLLTSRYKLTVPRFLMCNLSFADFCMGLYLLLIASVDSQTKGWQTG-SGCNTAGFFTVFASELSVYTLTVITLERWHTITYAILDQKLRLRHAILIMLGGWLFSSLIAMLPLVGVSNY----KVSICFPM-----VETTLSQIYILTILILNVVAFIIICACYIKIYFAVRNP------ELMATNKDTKIAKKMAILIFTDFTCMAPISFFAISAAFKMPLITVTNSKVLLVLFYPINSCANPFLYAIFTKTFRRDFFLLLGKFGCCKHRAELYRRSNYKNGFTGSSK
->O1F1_HUMAN
--------------MSGTNQSSVSEFLLLGLSRQPQQQHLLFVFFLSMYLATVLGNLLIILSVSIDSCLHTPMYFFLSNLSFVDICFSFTTVPKMLANHILETQTISFCGCLTQMYFVFMFVDMDNFLLAVMAYDHFVAVCHPLYTAKMTHQLCALLVAGLWVVANLNVLLHTLLMAPL---STHFFCDVTKLSCSDTHLNEVIILSEGALVMITPFLCILASYMHITCTV--------LKVPSTKGRWKAFSTCGSHLAVVLLFYSTIIAVYFNPLSSH---SAEKDTMATVLYTVVTPMLNPFIYSLRNRYLKGALKKVVGRVVFSV--------------------
->GALT_HUMAN
---------------------MADAQNISLDSPGSVGAVAVPVVFALIFLLGTVGNGLVLAVLLQPGPPGSTTDLFILNLAVADLCFILCCVPFQATIYTLDAWLFGALVCKAVHLLIYLTMYASSFTLAAVSVDRYLAVRHPLSRALRTPRNARAAVGLVWLLAALFSAPYLSYYG---GA--LELCVPA----WEDARRRALDVATFAAGYLLPVAVVSLAYGRTLRFLWAAP--AAAAEARRRATGRAGRAMLAVAALYALCWGPHHALILCFWYGRFAPATYACRLASHCLAYANSCLNPLVYALASRHFRARFRRLWPCGRRRRHRARRALRGPPGCPGDARPS
->A2AA_CAVPO
-----MGSLQPDSGNASWNGTEGPGGGTRATPYSLQVTVTLVCLVGLLILLTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKAWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIVTVWVISAVISFPPLISFEK-AQ-P--PRCEIN--------DQKWYVISSSIGSFFAPCLIMILVYVRIYQIAKRRRGGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLTAVGCS--VPRTLFKFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->A2AA_RAT
-----MGSLQPDAGNSSWNGTEAPGGGTRATPYSLQVTLTLVCLAGLLMLFTVFGNVLVIIAVFTSRALKAPQNLFLVSLASADILVATLVIPFSLANEVMGYWYFGKVWCEIYLALDVLFCTSSIVHLCAISLDRYWSITQAIYNLKRTPRRIKAIIVTVWVISAVISFPPLISIEKKGQ-P--PSCKIN--------DQKWYVISSSIGSFFAPCLIMILVYVRIYQIAKRRRAGASRWRGRQNREKRFTFVLAVVIGVFVVCWFPFFFTYTLIAVGCP--VPYQLFNFFFWFGYCNSSLNPVIYTIFNHDFRRAFKKILCRGDRKRIV------------------
->OLF4_CANFA
--------------MELENDTRIPEFLLLGFSEEPKLQPFLFGLFLSMYLVTILGNLLLILAVSSDSHLHTPMYFFLANLSFVDICFTCTTIPKMLVNIQTQRKVITYESCIIQMYFFELFAGIDNFLLTVMAYDRYMAICYPLYMVIMNPQLCSLLLLVSWIMSALHSLLQTLMVLRL---SPHFFCELNQLACSDTFLNNMMLYFAAILLGVAPLVGVLYSYFKIVSSI--------RGISSAHSKYKAFSTCASHLSVVSLFYCTSLGVYLSSAAPQ---STHTSSVASVMYTVVTPMLNPFIYSLRNKDIKGALNVFFRGKP-----------------------
->SSR2_RAT
-QFNGSQVWIPSPFDLNGSLGPSNGSNQTEPYYDMTSNAVLTFIYFVVCVVGLCGNTLVIYVILRYAKMKTITNIYILNLAIADELFMLGLPFLAMQVALVH-WPFGKAICRVVMTVDGINQFTSIFCLTVMSIDRYLAVVHPISAKWRRPRTAKMINVAVWGVSLLVILPIMIYAGLRSWG--RSSCTIN-WPGESGAWYTGFIIYAFILGFLVPLTIICLCYLFIIIKVKSSGIR-VGSSKRKKSEKKVTRMVSIVVAVFIFCWLPFYIFNVSSVSVAISPALKGMFDFVVILTYANSCANPILYAFLSDNFKKSFQNVLCLVKVSGAEDGERSDLNETTETQRTLL
->BRS3_SHEEP
-QTLISTTNDTESSSSVVPNDSTNKRRTGDNSPGIEALCAIYITYAVIISVGILGNAILIKVFFKTKSMQTVPNIFITSLAFGDLLLLLTCVPVDVTHYLAEGWLFGRIGCKVLSFIRLTSVGVSVFTLTILSADRYKAVVKPLRQPPNAILKTCAKAGCIWIMSMIIALPEAIFSNVYTVT--FKACASY---VSERLLQEIHSLLCFLVFYIIPLSIISVYYSLIARTLYKSIPTQRHARKQIESRKRIAKTVLVLVALFALCWLPNHLLYLYRSFTSQTTVHLFVTIISRILAFSNSCVNPFALYWLSNTFQQHFKAQLFCCKAGRPDPTAANTMGRVPGAASTQM
->ETBR_BOVIN
-SSATPQIPRGGRMAGIPPR--TPPPCDGPIEIKETFKYINTVVSCLVFVLGIIGNSTLLRIIYKNKCMRNGPNILIASLALGDLLHIIIDIPINTYKLLAKDWPFGVEMCKLVPFIQKASVGITVLSLCALSIDRYRAVASWSIKGIGVPKWTAVEIVLIWVVSVVLAVPEAVGFDIITRI--LRICLLHQKTAFMQFYKTAKDWWLFSFYFCLPLAITALFYTLMTCEMLRKSGM-IALNDHLKQRREVAKTVFCLVLVFALCWLPLHLSRILKLTLYDQSFLLVLDYIGINMASLNSCINPIALYLVSKRFKNCFKSCLCCWCQSFE-EKQSLEFKANDHGYDNFR
->FML1_HUMAN
------------METNFSTPLNEYEEVSYESAGYTVLRILPLVVLGVTFVLGVLGNGLVIWVAGFRMT-RTVTTICYLNLALADFSFTATLPFLIVSMAMGEKWPFGWFLCKLIHIVVDINLFGSVFLIGFIALDRCICVLHPVAQNHRTVSLAMKVIVGPWILALVLTLPVFLFLTTVTASWPEERLKVA------ITMLTARGIIRFVIGFSLPMSIVAICYGLIAAKI---------HKKGMIKSSRPLRVLTAVVASFFICWFPFQLVALLGTVWLKEKIIDILVNPTSSLAFFNSCLNPMLYVFVGQDFRERLIHSLPTSLERALSEDSAPTAS----------
->V1AR_MOUSE
-SSPWWPLTTEGANSSREAAGLGEGGSPPGDVRNEELAKLEVTVLAVIFVVAVLGNSSVLLALHRTPRKTSRMHLFIRHLSLADLAVAFFQVLPQLCWDITYRFRGPDWLCRVVKHLQVFAMFASSYMLVVMTADRYIAVCHPLKTLQQPARRSRLMIAASWGLSFVLSIPQYFIFSVIETK--AQDCWAT---FIPPWGTRAYVTWMTSGVFVVPVIILGTCYGFICYHIWRNLLVVSSVKSISRAKIRTVKMTFVIVSAYILCWTPFFIVQMWSVWDTNFDSENPSTTITALLASLNSCCNPWIYMFFSGHLLQDCVQSFPCCQSIAQKFAKDDSTSYSNNRSPTNS
->OPSB_BOVIN
---MSKMSEEEEFLLFKNISLVGPWDGPQYHLAPVWAFHLQAVFMGFVFFVGTPLNATVLVATLRYRKLRQPLNYILVNVSLGGFIYCIFSVFIVFITSCYGYFVFGRHVCALEAFLGCTAGLVTGWSLAFLAFERYIIICKPFGNFRFSSKHALMVVVATWTIGIGVSIPPFFGWSRFVPEGLQCSCGPDWYTVGTKYYSEYYTWFLFIFCYIVPLSLICFSYSQLLGALRAVAAQQQESASTQKAEREVSHMVVVMVGSFCLCYTPYAALAMYIVNNRNHGVDLRLVTIPAFFSKSACVYNPIIYCFMNKQFRACIMEMVCGKPMTD---ESELSSTVSSSQVGPN-
->APJ_MOUSE
------------MEDDGYNYYGADNQSECDYADWKPSGALIPAIYMLVFLLGTTGNGLVLWTVFRTSRKRRSADIFIASLAVADLTFVVTLPLWATYTYREFDWPFGTFSCKLSSYLIFVNMYASVFCLTGLSFDRYLAIVRPVNARLRLRVSGAVATAVLWVLAALLAVPVMVFRSTDAQCY-MDYSMVA-TSNSEWAWEVGLGVSSTAVGFVVPFTIMLTCYFFIAQTIAGHFR--KERIEGLRKRRRLLSIIVVLVVTFALCWMPYHLVKTLYMLGSLLIFLMNVFPYCTCISYVNSCLNPFLYAFFDPRFRQACTSMLCCDQSGCKGTPHSSSSSGHSQGPGPNM
->O1G1_HUMAN
--------------MEGKNLTSISECFLLGFSEQLEEQKPLFGSFLFMYLVTVAGNLLIILVIITDTQLHTPMYFFLANLSLADACFVSTTVPKMLANIQIQSQAISYSGCLLQLYFFMLFVMLEAFLLAVMAYDCYVAICHPLYILIMSPGLCIFLVSASWIMNALHSLLHTLLMNSL---SPHFFCDINSLSCTDPFTNELVIFITGGLTGLICVLCLIISYTNVFSTI--------LKIPSAQGKRKAFSTCSSHLSVVSLFFGTSFCVDFSSPSTH---SAQKDTVASVMYTVVTPMLNPFIYSLRNQEIKSSLRKLIWVRKIHSP-------------------
->CKR2_HUMAN
-FIRNTNESGEEVTTFFDYDYGAPC---HKFDVKQIGAQLLPPLYSLVFIFGFVGNMLVVLILINCKKLKCLTDIYLLNLAISDLLFLITLPLWAHSAANE--WVFGNAMCKLFTGLYHIGYFGGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWLVAVFASVPGIIFTKCQK-ED-VYVCGPY----FPRGWNNFHTIMRNILGLVLPLLIMVICYSGILKTL--------LRCRNEKKRHRAVRVIFTIMIVYFLFWTPYNIVILLNTFQEFFSQLDQATQVTETLGMTHCCINPIIYAFVGEKFRSLFHIALGCRIAPLQKPVCGGPV-------KVTT
->5H2A_CRIGR
-NSSDASNWTIDGENRTNLSFEGYLPPTCLSILHLQEKNWSALLTAVVIILTIAGNILVIMAVSLEKKLQNATNYFLMSLAIADMLLGFLVMPVSMLTILYGYWPLPSKLCAVWIYLDVLFSTASIMHLCAISLDRYVAIQNPIHSRFNSRTKAFLKIIAVWTISVGVSMPIPVFGLQD-VF---GSCLL---------ADDNFVLIGSFVAFFIPLTIMVITYFLTIKSLQKEEPGGRRTMQSISNEQKACKVLGIVFFLFVVMWCPFFITNIMAVICKESHVIGALLNVFVWIGYLSSAVNPLVYTLFNKTYRSAFSRYIQCQYKENRKPLQLILAYKSSQLQAGQN
->TRFR_MOUSE
-------------MENDTVSEMNQTELQPQAAVALEYQVVTILLVVIICGLGIVGNIMVVLVVMRTKHMRTPTNCYLVSLAVADLMVLVAAGLPNITDSIYGSWVYGYVGCLCITYLQYLGINASSCSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWAFTSIYCMLWFFLLDLN--NA-SCGYKIS------RNYYSPIYLMDFGVFYVVPMILATVLYGFIARILFLNLNLNRCFNSTVSSRKQVTKMLAVVVILFALLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCKQKPTEKAANYSVKESDRFSTELED
->OPSH_CARAU
-MNGTEGNNFYVPLSNRTGLVRSPFEYPQYYLAEPWQFKLLAVYMFFLICLGLPINGLTLICTAQHKKLRQPLNFILVNLAVAGAIMVCFGFTVTFYTAINGYFALGPTGCAVEGFMATLGGEVALWSLVVLAIERYIVVCKPMGSFKFSSTHASAGIAFTWVMAMACAAPPLVGWSRYIPEGIQCSCGPDYYTLNPEYNNESYVLYMFICHFILPVTIIFFTYGRLVCTVKAAAAQQQDSASTQKAEREVTKMVILMVLGFLVAWTPYATVAAWIFFNKGAAFSAQFMAIPAFFSKTSALYNPVIYVLLNKQFRSCMLTTLFCGKNPLGDEESSTVSS------VSPA
->A2AB_RAT
---------------------MSGPTMDHQEPYSVQATAAIASAITFLILFTIFGNALVILAVLTSRSLRAPQNLFLVSLAAADILVATLIIPFSLANELLGYWYFWRAWCEVYLALDVLFCTSSIVHLCAISLDRYWAVSRALYNSKRTPCRIKCIILTVWLIAAVISLPPLIYKGD-Q-----PQCELN--------QEAWYILASSIGSFFAPCLIMILVYLRIYVIAKRSGVAWWRRRTQLSREKRFTFVLAVVIGVFVVCWFPFFFSYSLGAICPQHKVPHGLFQFFFWIGYCNSSLNPVIYTVFNQDFRRAFRRILCRPWTQTGW------------------
->TA2R_CERAE
---MWPNG-----------SSLGPCFRPTNITLEERRLIASPWFAASFCVVGLASNLLALSVLAGARQTRSSFLTFLCGLVLTDFLGLLVTGAIVVSQHAALFVDPGCRLCRFMGVVMIFFGLSPLLLGATMASERFLGITRPFRPVVTSQRRAWATVGLVWAAALALGLLPLLGLGRYTVQYPGSWCFLT----LGAESGDVAFGLLFSMLGGLSVGLSFLLNTVSVATLCHVYHGEAAQQRPRDSEVEMMAQLLGIMLVASVCWLPLLVFIAQTVLRNPPRATEQELLIYLRVATWNQILDPWVYILFRRAVLRRLQPRLSTRPRSLSLQPQLTQ------------
->SSR2_HUMAN
-PLNGSHTWLSIPFDLNGSVVSTNTSNQTEPYYDLTSNAVLTFIYFVVCIIGLCGNTLVIYVILRYAKMKTITNIYILNLAIADELFMLGLPFLAMQVALVH-WPFGKAICRVVMTVDGINQFTSIFCLTVMSIDRYLAVVHPISAKWRRPRTAKMITMAVWGVSLLVILPIMIYAGLRSWG--RSSCTIN-WPGESGAWYTGFIIYTFILGFLVPLTIICLCYLFIIIKVKSSGIR-VGSSKRKKSEKKVTRMVSIVVAVFIFCWLPFYIFNVSSVSMAISPALKGMFDFVVVLTYANSCANPILYAFLSDNFKKSFQNVLCLVKVSGTDDGERSDLNETTETQRTLL
->ACM4_.ENLA
-----MENDTWENESSASNHSIDETIVEIPGKYQTMEMIFIATVTGSLSLVTVVGNILVMLSIKVNRQLQTVNNYFLFSLACADLIIGVFSMNLYSLYIIKGYWPLGPIVCDLWLALDYVVSNASVMNLLIISLER-FCVTKPLYPARRTTKMAGLMIAAAWLLSFELWAPAILFWQFIV-VP-SGECYIQ------FLSNPAVTFGTAIAAFYLPVVIMTILYIHISLASRSRSIAVRKKRQMAAREKKVTRTIFAILLAFIITWTPYNVMVLINTFCQTC-IPETIWYIGYWLCYVNSTINPACYALCNATFKKTFKHLLMCQYKSIGTAR----------------
->Y..5_CAEEL
-SVNESCDNYVEIFNKINYFFRDDQVINGTEYSPKEFGYFITFAYMLIILFGAIGNFLTIIVVILNPAMRTTRNFFILNLALSDFFVCIVTAPTTLYTVLYMFWPFSRTLCKIAGSLQGFNIFLSTFSIASIAVDRYVLIIFPT-KRERQQNLSFCFFIMIWVISLILAVPLLQASDLTPCDLALYICHEQEIWEKMIISKGTYTLAVLITQYAFPLFSLVFAYSRIAHRMKLRTTNSQRRRSVVERQRRTHLLLVCVVAVFAVAWLPLNVFHIFNTFELVN-FSVTTFSICHCLAMCSACLNPLIYAFFNHNFRIEFMHLFDRVGLRSLRVVIFGEMRTEFRSRGGCK
->GRHR_CLAGA
-TLLLSNPTNVLDNSSVLNVSVSPPVLKWETPTFTTAARFRVAATLVLFVFRAASNLSVLLSVTRGRGLASHLRPLIASLASADLVMTFVVMPLDAVWNVTVQWYAGDAMCKLMCFLKLFAMHSAAFILVVVSLDRHHAILHPL-DTLDAGRRNRRMLLTAWILSLLLASPQLFIFRAIKVD--FVQCATH--SFQQHWQETAYNMFHFVTLYVFPLLVMSLCYTRILVEINRQGEPRSGTDMIPKARMKTLKMTIIIVASFVICWTPYYLLGIWYWFQPQMVIPDYVHHVFFVFGNLNTCCDPVIYGFFTPSFRADLSRCFCWRNQNASAKSLPHFSGEAESDLGSGD
->CKR5_HUMAN
-----MDYQVSSPIYDINYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNMLVILILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAVVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQK-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->OPSD_NEOSA
-MNGTEGPYFYVPMVNTTGVVRSPYEYPQYYLVNPAAFAVLGAYMFFLIIFGFPINFLTLYVTLEHKKLRTPLNYILLNLAVADLFMVIGGFTTTMYSSMHGYFVLGRLGCNLEGFSATLGGMISLWSLAVLAIERWVVVCKPTSNFRFGENHAIMGVSLTWTMALACTVPPLVGWSRYIPEGMQCSCGIDYYTRAEGFNNESFVLYMFFCHFMVPLIIIFFCYGRLLCAVKEAAAAQQESETTQRAEREVTRMVILMVIGYLVCWLPYASVAWFIFTHQGSEFGPLFMTIPAFFAKSSSIYNPVIYICMNKQFRNCMITTLFCGKNPF---EGEEETEASSASSVSPA
->A2AB_HUMAN
--------------------------MDHQDPYSVQATAAIAAAITFLILFTIFGNALVILAVLTSRSLRAPQNLFLVSLAAADILVATLIIPFSLANELLGYWYFRRTWCEVYLALDVLFCTSSIVHLCAISLDRYWAVSRALYNSKRTPRRIKCIILTVWLIAAVISLPPLIYKGD-Q-----PQCKLN--------QEAWYILASSIGSFFAPCLIMILVYLRIYLIAKRSGAIWWRRRAHVTREKRFTFVLAVVIGVFVLCWFPFFFSYSLGAICPKHKVPHGLFQFFFWIGYCNSSLNPVIYTIFNQDFRRAFRRILCRPWTQTAW------------------
->CKR4_MOUSE
-VTDTTQDETVYNSYYFYESMPKPC---TKEGIKAFGEVFLPPLYSLVFLLGLFGNSVVVLVLFKYKRLKSMTDVYLLNLAISDLLFVLSLPFWGYYAADQ--WVFGLGLCKIVSWMYLVGFYSGIFFIMLMSIDRYLAIVHAVSLKARTLTYGVITSLITWSVAVFASLPGLLFSTCYT-EH-HTYCKTQ-YSVNSTTWKVLSSLEINVLGLLIPLGIMLFWYSMIIRTL---------QHCKNEKKNRAVRMIFGVVVLFLGFWTPYNVVLFLETLVELERYLDYAIQATETLGFIHCCLNPVIYFFLGEKFRKYITQLFRTCRGPLVLCKHCDFMS------SSSY
->A1AD_HUMAN
-GSGEDNRSSAGEPGSAGAGGDVNGTAAVGGLVVSAQGVGVGVFLAAFILMAVAGNLLVILSVACNRHLQTVTNYFIVNLAVADLLLSATVLPFSATMEVLGFWAFGRAFCDVWAAVDVLCCTASILSLCTISVDRYVGVRHSLYPAIMTERKAAAILALLWVVALVVSVGPLLGWKEP--VP--RFCGIT--------EEAGYAVFSSVCSFYLPMAVIVVMYCRVYVVARSTHTFLSVRLLKFSREKKAAKTLAIVVGVFVLCWFPFFFVLPLGSLFPQLKPSEGVFKVIFWLGYFNSCVNPLIYPCSSREFKRAFLRLLRCQCRRRRRRRPLWRASTSG-LRQDCA
->C3AR_HUMAN
---------------MASFSAETNSTDLLSQPWNEPPVILSMVILSLTFLLGLPGNGLVLWVAGLKMQ-RTVNTIWFLHLTLADLLCCLSLPFSLAHLALQGQWPYGRFLCKLIPSIIVLNMFASVFLLTAISLDRCLVVFKPICQNHRNVGMACSICGCIWVVAFVMCIPVFVYREIFT-ED-YNLGQFT-DDDQVPTPLVAITITRLVVGFLLPSVIMIACYSFIVFRM--------QRGRFAKSQSKTFRVAVVVVAVFLVCWTPYHIFGVLSLLTDPEKTLMSWDHVCIALASANSCFNPFLYALLGKDFRKKARQSIQGILEAAFSEELTRSVIS---------
->AG2R_HUMAN
-------MILNSSTEDGIKRIQDDC---PKAGRHNYIFVMIPTLYSIIFVVGIFGNSLVVIVIYFYMKLKTVASVFLLNLALADLCFLLTLPLWAVYTAMEYRWPFGNYLCKIASASVSFNLYASVFLLTCLSIDRYLAIVHPMSRLRRTMLVAKVTCIIIWLLAGLASLPAIIHRNVFF-TN--TVCAFH-YESQNSTLPIGLGLTKNILGFLFPFLIILTSYTLIWKALKKA----YEIQKNKPRNDDIFKIIMAIVLFFFFSWIPHQIFTFLDVLIQLGDIVDTAMPITICIAYFNNCLNPLFYGFLGKKFKRYFLQLLKYIPPKAKSHSNLSTRPSD-------N
->CKR5_PANTR
-----MDYQVSSPIYDIDYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNMLVILILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQK-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->PF2R_MOUSE
---MSMNS---------SKQPVSPAAGLIANTTCQTENRLSVFFSIIFMTVGILSNSLAIAILMKAYQSKASFLLLASGLVITDFFGHLINGGIAVFVYASDKFDQSNILCSIFGISMVFSGLCPLFLGSAMAIERCIGVTNPIHSTKITSKHVKMILSGVCMFAVFVAVLPILGHRDYQIQASRTWCFYN--TEHIEDWEDRFYLLFFSFLGLLALGVSFSCNAVTGVTLLRVKFRSQQHRQGRSHHLEMIIQLLAIMCVSCVCWSPFLVTMANIAINGNNPVTCETTLFALRMATWNQILDPWVYILLRKAVLRNLYKLASRCCGVNIISLHIWELKVAAISESPAA
->OPSB_ORYLA
-VEFPDDFWIPIPLDTNNVTALSPFLVPQDHLGSPTIFYSMSALMFVLFVAGTAINLLTIACTLQYKKLRSHLNYILVNMAVANLIVASTGSSTCFVCFAFKYMVLGPLGCKIEGFTAALGGMVSLWSLAVIAFERWLVICKPLGNFVFKSEHALLCCALTWVCGLCASVPPLVGWSRYIPEGMQCSCGPDWYTTGNKFNNESFVMFLFCFCFAVPFSIIVFCYSQLLFTLKMAAKAQADSASTQKAEKEVTRMVVVMVVAFLVCYVPYASFALWVINNRGQTFDLRLATIPSCVSKASTVYNPVIYVLLNKQFRLCMKKMLGMSADED---EESSTSKVGPS------
->CCKR_RABIT
-ASLLGNASGIPPPCELGLDNETLFCLDQPPPSKEWQPAVQILLYSLIFLLSVLGNTLVITVLIRNKRMRTVTNIFLLSLAISDLMLCLFCMPFNLIPNLLKDFIFGSALCKTTTYLMGTSVSVSTLNLVAISLERYGAICKPLSRVWQTKSHALKVIAATWCLSFAIMTPYPIYN----NNQTANMCRFL---LPSDVMQQAWHTFLLLILFLIPGIVMMVAYGMISLELYQGRVSSSSSAATLMAKKRVIRMLMVIVVLFFLCWMPIFSANAWRAYDTVSRLSGTPISFILLLSYTSSCVNPIIYCFMNRRFRLGFMATFPCCPNPGPPGPRAEATTRASLSRYSYS
->BRB1_HUMAN
-SSWPPLELQSSNQSQLFPQNATAC--DNAPEAWDLLHRVLPTFIISICFFGLLGNLFVLLVFLLPRRQLNVAEIYLANLAASDLVFVLGLPFWAENIWNQFNWPFGALLCRVINGVIKANLFISIFLVVAISQDRYRVLVHPMSGRQQRRRQARVTCVLIWVVGGLLSIPTFLLRSIQA-LN--TACILL---LPHEAWHFARIVELNILGFLLPLAAIVFFNYHILASLRTR---VSRTRVRGPKDSKTTALILTLVVAFLVCWAPYHFFAFLEFLFQVQDFIDLGLQLANFFAFTNSSLNPVIYVFVGRLFRTKVWELYKQCTPK---------LAPI-------S
->TRFR_RAT
-------------MENETVSELNQTELPPQVAVALEYQVVTILLVVVICGLGIVGNIMVVLVVMRTKHMRTATNCYLVSLAVADLMVLVAAGLPNITDSIYGSWVYGYVGCLCITYLQYLGINASSCSITAFTIERYIAICHPIAQFLCTFSRAKKIIIFVWAFTSIYCMLWFFLLDLN--DA-SCGYKIS------RNYYSPIYLMDFGVFYVMPMILATVLYGFIARILFLNMNLNRCFNSTVSSRKQVTKMLAVVVILFALLWMPYRTLVVVNSFLSSPFQENWFLLFCRICIYLNSAINPVIYNLMSQKFRAAFRKLCNCKQKPTEKAANYSVKESDRFSTELDD
->AG22_HUMAN
-KNITSGLHFGLVNISGNNESTLNC----SQKPSDKHLDAIPILYYIIFVIGFLVNIVVVTLFCCQKGPKKVSSIYIFNLAVADLLLLATLPLWATYYSYRYDWLFGPVMCKVFGSFLTLNMFASIFFITCMSVDRYQSVIYPFLSQRRNPWQASYIVPLVWCMACLSSLPTFYFRDVRT-LG--NACIMAFPPEKYAQWSAGIALMKNILGFIIPLIFIATCYFGIRKHLLKT----NSYGKNRITRDQVLKMAAAVVLAFIICWLPFHVLTFLDALAWMGAVIDLALPFAILLGFTNSCVNPFLYCFVGNRFQQKLRSVFRVPITWLQGKRESMSREME-------T
->VU51_HSV7J
------------------MKNIDLTNWKLLAEIYEYLFFFSFFFLCLLVIIVVKFNNSTVGR-E--------YTFSTFSGMLVYILLLPVKMGMLTKM-----WDVSTDYCIILMFLSDFSFIFSSWALTLLALERINNFSFSEIKVNETKILKQMSFPIIWVTSIFQAVQISMKYKKSQ---EDDYCLLA--------IRSAEEAWILLMYTVVIPTFIVFFYVLNKRFL-----------FLERDLNSIVTHLSLFLFFGALCFFPASVLNEFNCN----RLFYGLHELLIVCLELKIFYVPTMTYIISCENYRLAAKAFFCKCFKPCFLMPSLRSTQF--------
->PAR3_MOUSE
--WTGATTTIKAECPEDSISTLHVNNATIGYLRSSLSTQVIPAIYILLFVVGVPSNIVTLWKLSLRTK-SISLVIFHTNLAIADLLFCVTLPFKIAYHLNGNNWVFGEVMCRITTVVFYGNMYCAILILTCMGINRYLATAHPFYQKLPKRSFSLLMCGIVWVMVFLYMLPFVILKQEYH--E--TTCHDVDACESPSSFRFYYFVSLAFFGFLIPFVIIIFCYTTLIHKL----------KSKDRIWLGYIKAVLLILVIFTICFAPTNIILVIHHANYYYDSLYFMYLIALCLGSLNSCLDPFLYFVMSKVVDQLNP------------------------------
->GPRC_HUMAN
-NLSGLPRDYLDAAAAENISAAVSSRVPAVEPEPELVVNPWDIVLCTSGTLISCENAIVVLIIFHNPSLRAPMFLLIGSLALADLLAG-IGLITNFVFA-Y--LLQSEATKLVTIGLIVASFSASVCSLLAITVDRYLSLYYALYHSERTVTFTYVMLVMLWGTSICLGLLPVMGWNCL-R--DESTCSVV-------RPLTKNNAAILSVSFLFMFALMLQLYIQICKIVMRHIALHFLATSHYVTTRKGVSTLAIILGTFAACWMPFTLYSLIADY----TYPSIYTYATLLPATYNSIINPVIYAFRNQEIQKALCLICCGCIPSSLAQRARSP------------
->BRB2_CAVPO
----MFNITSQVSALNATLAQGNSC---LDAEWWSWLNTIQAPFLWVLFVLAVLENIFVLSVFFLHKSSCTVAEIYLGNLAVADLILAFGLPFWAITIANNFDWLFGEVLCRMVNTMIQMNMYSSICFLMLVSIDRYLALVKTMMGRMRGVRWAKLYSLVIWGCALLLSSPMLVFRTMKD-HN--TACLII---YPSLTWQVFTNVLLNLVGFLLPLSIITFCTVQIMQVLRNN---EMQKFKEIQTERRATVLVLAVLLLFVVCWLPFQIGTFLDTLRLLGHVIDLITQISSYLAYSNSCLNPLVYVIVGKRFRKKSREVYHGLCRSGGCVSEPAQLRTS-------I
->P2YR_RAT
-AAFLAGLGSLWGNSTIASTAAVSSSFRCALIKTGFQFYYLPAVYILVFIIGFLGNSVAIWMFVFHMKPWSGISVYMFNLALADFLYVLTLPALIFYYFNKTDWIFGDVMCKLQRFIFHVNLYGSILFLTCISAHRYSGVVYPLSLGRLKKKNAIYVSVLVWLIVVVAISPILFYSGTG----KTVTCYDS-TSDEYLRSYFIYSMCTTVAMFCIPLVLILGCYGLIVRALIY------KDLDNSPLRRKSIYLVIIVLTVFAVSYIPFHVMKTMNLRARLDDRVYATYQVTRGLASLNSCVDPILYFLAGDTFRRRLSRATRKASRRSEANLQSKSLSEFKQNGDTSL
->PF2R_SHEEP
---MSTNN---------SVQPVSPASELLSNTTCQLEEDLSISFSIIFMTVGILSNSLAIAILMKAYQYKSSFLLLASALVITDFFGHLINGTIAVFVYASDKFDKSNILCSIFGICMVFSGLCPLFLGSLMAIERCIGVTKPIHSTKITTKHVKMMLSGVCFFAVFVALLPILGHRDYKIQASRTWCFYK--TDQIKDWEDRFYLLLFAFLGLLALGISFVCNAITGISLLKVKFRSQQHRQGRSHHFEMVIQLLGIMCVSCICWSPFLVTMASIGMNIQDKDSCERTLFTLRMATWNQILDPWVYILLRKAVLRNLYVCTRRCCGVHVISLHVWELKVAAISDLPVT
->GPRO_RAT
-QTSLLSTGPNASNISDGQDNLTLPGSPPRTGSVSYINIIMPSVFGTICLLGIVGNSTVIFAVVKKSKCSNVPDIFIINLSVVDLLFLLGMPFMIHQLMGNGVWHFGETMCTLITAMDANSQFTSTYILTAMTIDRYLATVHPISTKFRKPSMATLVICLLWALSFISITPVWLYARLIP-FP-AVGCGIR--LPNPDTDLYWFTLYQFFLAFALPFVVITAAYVKILQRMTSSV--PASQRSIRLRTKRVTRTAIAICLVFFVCWAPYYVLQLTQLSISRPTFVYLYNAAIS-LGYANSCLNPFVYIVLCETFRKRLVLSVKPAAQGQLRTVSNAQESKGT-------
->ML1._HUMAN
----------MGPTLAVPTPYGCIGCKLPQPEYPPALIIFMFCAMVITIVVDLIGNSMVILAVTKNKKLRNSGNIFVVSLSVADMLVAIYPYPLMLHAMSIGGWDLSQLQCQMVGFITGLSVVGSIFNIVAIAINRYCYICHSLYERIFSVRNTCIYLVITWIMTVLAVLPNMYIGT-IEYDP-TYTCIFN------YLNNPVFTVTIVCIHFVLPLLIVGFCYVRIWTKVLAARD-AGQNPDNQLAEVRNFLTMFVIFLLFAVCWCPINVLTVLVAVSPKEKIPNWLYLAAYFIAYFNSCLNAVIYGLLNENFRREYWTIFHAMRHPIIFFPGLISARTLARARAHAR
->AVT_CATCO
--------------MGRIANQTTASNDTDPFGRNEEVAKMEITVLSVTFFVAVIGNLSVLLAMHNTKKKSSRMHLFIKHLSLADMVVAFFQVLPQLCWEITFRFYGPDFLCRIVKHLQVLGMFASTYMMVMMTLDRYIAICHPLKTLQQPTQRAYIMIGSTWLCSLLLSTPQYFIFSLSESY--VYDCWGH---FIEPWGIRAYITWITVGIFLIPVIILMICYGFICHSIWKNMIGVSSVTIISRAKLRTVKMTLVIVLAYIVCWAPFFIVQMWSVWDENFDSENAAVTLSALLASLNSCCNPWIYMLFSGHLLYDFLRCFPCCKKPRNMLQKEDSTLLTKLAAGRMT
->ACM3_PIG
-N---------ISQAAGNFSSPNGTTSDPLGGHTIWQVVFIAFLTGILALVTIIGNILVIVAFKVNKQLKTVNNYFLLSLACADLIIGVISMNLFTTYIIMNRWALGNLACDLWLSIDYVASNASVMNLLVISFDRYFSITRPLYRAKRTTKRAGVMIGLAWVISFILWAPAILFWQYFV-VP-PGECFIQ------FLSEPTITFGTAIAAFYMPVTIMTILYWRIYKETEKRKTRTKRKRMSLIKEKKAAQTLSAILLAFIITWTPYNIMVLVNTFCDSC-IPKTYWNLGYWLCYINSTVNPVCYALCNKTFRTTFKMLLLCQCDKRKRRKQQYQHKRVPEQAL---
->MSHR_ALCAA
-PVLGSQRRLLGSLNCTPPATFSLTLAPNRTGPQCLEVSIPDGLFLSLGLVSLVENVLVVAAIAKNRNLHSPMYYFICCLAVSDLLVSVSNVLETAVMLLLEAAAVVQQLDNVIDVLICGSMVSSLCFLGAIAMDRYISIFYALYHSVVTLPRAWRIIAAIWVASILTSLLFITYYY----------------------NNHTVVLLCLVGFFIAMLALMAILYVHMLARACQHIARKRQHPIHQGFGLKGAATLTILLGVFFLCWGPFFLHLSLIVLCPQHGCIFKNFNLFLALIICNAIVDPLIYAFRSQELRKTLQEVLQCSW-----------------------
->GP72_MOUSE
-TGPNASSHFWANYTFSDWQNFVGRRRYGAESQNPTVKALLIVAYSFTIVFSLFGNVLVCHVIFKNQRMHSATSLFIVNLAVADIMITLLNTPFTLVRFVNSTWVFGKGMCHVSRFAQYCSLHVSALTLTAIAVDRHQVIMHPL-KPRISITKGVIYIAVIWVMATFFSLPHAICQKLFT--EVRSLCLPD-FPEPADLFWKYLDLATFILLYLLPLFIISVAYARVAKKLWLCGDVTEQYLALRRKKKTTVKMLVLVVVLFALCWFPLNCYVLLLSSKAI-HTNNALYFAFHWFAMSSTCYNPFIYCWLNENFRVELKALLSMCQRPPKPQEDRLPVAWTEKSHGRRA
->ACM5_RAT
---------MEGESYNESTVNGTPVNHQALERHGLWEVITIAVVTAVVSLMTIVGNVLVMISFKVNSQLKTVNNYYLLSLACADLIIGIFSMNLYTTYILMGRWVLGSLACDLWLALDYVASNASVMNLLVISFDRYFSITRPLYRAKRTPKRAGIMIGLAWLVSFILWAPAILCWQYLV-VP-PDECQIQ------FLSEPTITFGTAIAAFYIPVSVMTILYCRIYRETEKRNLSTKRKRMVLVKERKAAQTLSAILLAFIITWTPYNIMVLVSTFCDKC-VPVTLWHLGYWLCYVNSTINPICYALCNRTFRKTFKLLLLCRWKKKKVEEKLYW------------
->CKR5_PONPY
-----MDYQVSSPTYDIDYYTSEPC---QKINVKQIAARLLPPLYSLVFIFGFVGNMLVILILINCKRLKSMTDIYLLNLAISDLFFLLTVPFWAHYAAAQ--WDFGNTMCQLLTGLYFIGFFSGIFFIILLTIDRYLAIVHAVALKARTVTFGVVTSVITWVVAVFASLPGIIFTRSQK-EG-HYTCSSHFPYSQYQFWKNFQTLKIVILGLVLPLLVMVICYSGILKTL--------LRCRNEKKRHRAVRLIFTIMIVYFLFWAPYNIVLLLNTFQEFFNRLDQAMQVTETLGMTHCCINPIIYAFVGEKFRNYLLVFFQKHIAKRFCKCCSIFA-------SSVY
->GASR_CANFA
-GASLCRAGGALLNSSGAGNLSCEPPRLRGAGTRELELAIRVTLYAVIFLMSVGGNVLIIVVLGLSRRLRTVTNAFLLSLAVSDLLLAVACMPFTLLPNLMGTFIFGTVVCKAVSYLMGVSVSVSTLSLVAIALERYSAICRPLARVWQTRSHAARVIIATWMLSGLLMVPYPVYTAVQP---A-LQCVHR---WPSARVRQTWSVLLLLLLFFVPGVVMAVAYGLISRELYLGPGPPRPYQAKLLAKKRVVRMLLVIVVLFFLCWLPLYSANTWRAFDSSGALSGAPISFIHLLSYASACVNPLVYCFMHRRFRQACLETCARCCPRPPRARPRPLPSIASLSRLSYT
->TLR2_DROME
-TLSTDQPAVGDVEDAAEDAAASMETGSFAFVVPWWRQVLWSILFGGMVIVATGGNLIVVWIVMTTKRMRTVTNYFIVNLSIADAMVSSLNVTFNYYYMLDSDWPFGEFYCKLSQFIAMLSICASVFTLMAISIDRYVAIIRPL-QPRMSKRCNLAIAAVIWLASTLISCPMMIIYR----NR--TVCYPEDGPTNHSTMESLYNILIIILTYFLPIVSMTVTYSRVGIELWGSTIGTPRQVENVRSKRRVVKMMIVVVLIFAICWLPFHSYFIITSCYPAIPFIQELYLAIYWLAMSNSMYNPIIYCWMNSRFRYGFKMVFRWCLFVRVGTEPFSRYSCSGSPDHNRI
->D2DR_MELGA
-------MDPLNLSWYNTGDRNWSEPVNESSADQKPQYNYYAVLLTLLIFVIVFGNVLVCMAVSREKALQTTTNYLIVSLAVADLLVATLVMPWVVYLEVVGEWRFSRIHCDIFVTLDVMMCTASILNLCAISIDRYTAAAMPMNTRYSSKRRVTVMIACVWVLSFAISSPILFGLN---E----RECII---------ANPAFVVYSSVVSFYVPFIVTLLVYVQIYMVLRRRSTLMNRRKLSQQKEKKATQMLAIVLGVFIICWLPFFITHILNMHCDCN-IPPAMYSAFTWLGYVNSAVNPIIYTTFNIEFRKAFMKILHC-------------------------
->EDG2_BOVIN
-QPQFTAMNEQQCFSNESIAFFYNRSGKYLATEWNTVTKLVMGLGITVCIFIMLANLLVMVAIYVNRRFHFPIYYLMANLAAADFFAG-LAYFYLMFNTGPNTRRLTVSTWLLRQGLIDTSLTVSVANLLAIAIERHITVFRMQLHARMSNRRVVVVIVVIWTMAIVMGAIPSVGWNCI-C--DIENCSNM------APLYSDSYLVFWAIFNLVTFVVMVVLYAHIFGYVRQRRMSSSGPRRNRDTMMSLLKTVVIVLGAFIICWTPGLVLLLLDVCCPQC-DVLAYEKFFLLLAEFNSAMNPIIYSYRDKEMSATFRQILCCQRSENTSGPTEGSNHTILAGVHSND
->NY2R_BOVIN
-EEMKVDQFGPGHTTLPGELAPDSEPELIDSTKLIEVQVVLILAYCSIILLGVIGNSLVIHVVIKFKSMRTVTNFFIANLAVADLLVNTLCLPFTLTYTLMGEWKMGPVLCHLVPYAQGLAVQVSTITLTVIALDRHRCIVYHL-ESKISKQISFLIIGLAWGVSALLASPLAIFREYSLFE--IVACTEKWPGEEKGIYGTIYSLSSLLILYVLPLGIISFSYTRIWSKLKNHSPG-AAHDHYHQRRQKTTKMLVCVVVVFAVSWLPLHAFQLAVDIDSHVKEYKLIFTVFHIIAMCSTFANPLLYGWMNSNYRKAFLSAFRCEQRLDAIHSE---AKKHLQVTKNNG
->HH1R_RAT
-----------MSFANTSSTFEDKMCEGNRTAMASPQLLPLVVVLSSISLVTVGLNLLVLYAVHSERKLHTVGNLYIVSLSVADLIVGAVVMPMNILYLIMTKWSLGRPLCLFWLSMDYVASTASIFSVFILCIDRYRSVQQPLYLRYRTKTRASATILGAWFFSFLWVIPILGWHHFM--EL-EDKCETD------FYNVTWFKIMTAIINFYLPTLLMLWFYVKIYKAVRRHLRSQYVSGLHLNRERKAAKQLGFIMAAFILCWIPYFIFFMVIAFCKSC-CSEPMHMFTIWLGYINSTLNPLIYPLCNENFKKTFKKILHIRS-----------------------"""
 
+@pytest.mark.parametrize("stat", ["mi", "nmi", "rmi"])
+def test_mi_pair_0(zero_case, stat):
+    """all MI 0.0"""
+    got = c3_coevo.coevolution_matrix(
+        alignment=zero_case, stat=stat, show_progress=False
+    )[1, 0]
+    assert_allclose(got, 0.0)
 
-gpcr_aln = ArrayAlignment(data=_fasta_to_dict(gpcr_ungapped), moltype=PROTEIN)
 
-myos_data = """>gi|107137|pir||A37102
-LSRIITRIQA
->gi|11024712|ref|NP-060003.1|
-LAQLITRTQA
->gi|11276950|pir||A59286
-LSRIITRIQA
->gi|11276952|pir||A59293
-LAQLITRTQA
->gi|11276954|pir||A59234
-LSLIITRIQA
->gi|11276955|pir||A59236
-LSSIFKLIQA
->gi|11321579|ref|NP-003793.1|
-LVTLMTSTQA
->gi|11342672|ref|NP-002461.1|
-LAKLITRTQA
->gi|1197168|dbj|BAA08111.1|
-LSSIFKLIQA
->gi|12003423|gb|AAG43570.1|AF21
-LVTLMTRTQA
->gi|12003425|gb|AAG43571.1|AF21
-LVTLMTRTQA
->gi|12003427|gb|AAG43572.1|AF21
-LVTLMTRTQA
->gi|12053672|emb|CAC20413.1|
-LSRIITRIQA
->gi|12060489|dbj|BAB20630.1|
-LSRIITRIQA
->gi|12657350|emb|CAC27776.1|
-LASLVTLTQA
->gi|12657354|emb|CAC27778.1|
-LAKLVTMTQA
->gi|127741|sp|P02563|MYH6-RAT
-LSRIITRIQA
->gi|127748|sp|P02564|MYH7-RAT
-LSRIITRIQA
->gi|127755|sp|P12847|MYH3-RAT
-LAKLITRTQA
->gi|1289512|gb|AAC59911.1|
-LSLIITRIQA
->gi|1289514|gb|AAC59912.1|
-LSLIITRIQA
->gi|13431707|sp|Q28641|MYH4-RAB
-LAQLITRTQA
->gi|13431711|sp|Q90339|MYSS-CYP
-LALLVTMTQA
->gi|13431716|sp|Q9UKX2|MYH2-HUM
-LAQLITRTQA
->gi|13431717|sp|Q9UKX3|MYHD-HUM
-LVTLMTSTQA
->gi|13431724|sp|Q9Y623|MYH4-HUM
-LAQLITRTQA
->gi|1346637|sp|P02565|MYH3-CHIC
-LAQLITRTQA
->gi|13560269|dbj|BAB40920.1|
-LAQLMTRTQA
->gi|13560273|dbj|BAB40922.1|
-LSRIITRIQA
->gi|13638390|sp|P12882|MYH1-HUM
-LAQLITRTQA
->gi|14017756|dbj|BAB47399.1|
-LSLIITRIQA
->gi|15384839|emb|CAC59753.1|
-LATLVTMTQA
->gi|1581130|prf||2116354A
-LSRIITRIQA
->gi|1619328|emb|CAA27817.1|
-LAKLITRTQA
->gi|16508127|gb|AAL17913.1|
-LSRIITRIQA
->gi|1698895|gb|AAB37320.1|
-LSRIITRIQA
->gi|17907763|dbj|BAB79445.1|
-LAKILTMLQA
->gi|179508|gb|AAA51837.1|
-LSRIITRIQA
->gi|179510|gb|AAA62830.1|
-LSRIITRIQA
->gi|18859641|ref|NP-542766.1|
-LSRIITRIQA
->gi|191618|gb|AAA37159.1|
-LSRIITRIQA
->gi|191620|gb|AAA37160.1|
-LSRIITRIQA
->gi|191622|gb|AAA37161.1|
-LSRIITRIQA
->gi|191624|gb|AAA37162.1|
-LSRIITRIQA
->gi|2119306|pir||I49464
-LSRIITRIQA
->gi|2119307|pir||I48175
-LSRIITRIQA
->gi|2119308|pir||I48153
-LSRIITRIQA
->gi|212376|gb|AAA48972.1|
-LAQLITRTQA
->gi|21623523|dbj|BAC00871.1|
-LAALVGMVQA
->gi|21743235|dbj|BAB40921.2|
-LAQLITRTQA
->gi|21907898|dbj|BAC05679.1|
-LAQIITRTQA
->gi|21907900|dbj|BAC05680.1|
-LAQIITRTQA
->gi|21907902|dbj|BAC05681.1|
-LSRIITRIQA
->gi|219524|dbj|BAA00791.1|
-LSRIITRIQA
->gi|22121649|gb|AAM88909.1|
-LAQIITRTQA
->gi|23379831|gb|AAM88910.1|
-LAQLITRTQA
->gi|2351219|dbj|BAA22067.1|
-LSHLVTMTQA
->gi|2351221|dbj|BAA22068.1|
-LVNLVTMTQA
->gi|2351223|dbj|BAA22069.1|
-LALLVTMTQA
->gi|27764861|ref|NP-002462.1|
-LSRIITRMQA
->gi|297024|emb|CAA79675.1|
-LSRIITRMQA
->gi|3024204|sp|Q02566|MYH6-MOUS
-LSRIITRIQA
->gi|3041706|sp|P13533|MYH6-HUMA
-LSRIITRMQA
->gi|3041708|sp|P13540|MYH7-MESA
-LSRIITRIQA
->gi|3043372|sp|P11055|MYH3-HUMA
-LAKLITRTQA
->gi|34870884|ref|XP-213345.2|
-LAQLITRTQA
->gi|34870892|ref|XP-340820.1|
-LAQIITRTQA
->gi|37720046|gb|AAN71741.1|
-LARILTGIQA
->gi|38091410|ref|XP-354614.1|
-LAKLITRTQA
->gi|38091413|ref|XP-354615.1|
-LAQLITRTQA
->gi|38177589|gb|AAF00096.2|AF11
-LSLIISGIQA
->gi|38347761|dbj|BAD01606.1|
-LSLLLTRTQA
->gi|38347763|dbj|BAD01607.1|
-LSLLLTRTQA
->gi|38488753|ref|NP-942118.1|
-LARILTGIQA
->gi|3915779|sp|P13539|MYH6-MESA
-LSRIITRIQA
->gi|402372|gb|AAA62313.1|
-LSRIITRIQA
->gi|402374|gb|AAB59701.1|
-LSRIITRIQA
->gi|41350446|gb|AAS00505.1|
-LAALVTMTQA
->gi|41386691|ref|NP-776542.1|
-LAQLITRTQA
->gi|41386711|ref|NP-777152.1|
-LSRIITRIQA
->gi|42476190|ref|NP-060004.2|
-LAQLITRTQA
->gi|42662294|ref|XP-371398.2|
-LAKVLTLLQA
->gi|45382109|ref|NP-990097.1|
-LAKILTMIQA
->gi|45383005|ref|NP-989918.1|
-LAKILTMLQA
->gi|45383668|ref|NP-989559.1|
-LAQLITRTQA
->gi|4557773|ref|NP-000248.1|
-LSRIITRIQA
->gi|45595719|gb|AAH67305.1|
-LAQLITRTQA
->gi|476355|pir||A46762
-LSRIITRIQA
->gi|4808809|gb|AAD29948.1|
-LVTLMTSTQA
->gi|4808811|gb|AAD29949.1|
-LAQLITRTQA
->gi|4808813|gb|AAD29950.1|
-LAQLITRTQA
->gi|4808815|gb|AAD29951.1|
-LAQLITRTQA
->gi|5360746|dbj|BAA82144.1|
-LAQLITRTQA
->gi|5360748|dbj|BAA82145.1|
-LAQLITRTQA
->gi|5360750|dbj|BAA82146.1|
-LAQLITRTQA
->gi|547966|sp|P12883|MYH7-HUMAN
-LSRIITRIQA
->gi|56655|emb|CAA34064.1|
-LSRIITRIQA
->gi|6093461|sp|P79293|MYH7-PIG
-LSRIITRIQA
->gi|6683485|dbj|BAA89233.1|
-LAQLITRTQA
->gi|6708502|gb|AAD09454.2|
-LAKIMTMLQC
->gi|7209643|dbj|BAA92289.1|
-LATLVTMTQA
->gi|7248371|dbj|BAA92710.1|
-LAKILTMIQA
->gi|7669506|ref|NP-005954.2|
-LAQLITRTQA
->gi|8393804|ref|NP-058935.1|
-LSRIITRIQA
->gi|8393807|ref|NP-058936.1|
-LSRIITRIQA
->gi|86358|pir||A29320
-LAQLITRTQA
->gi|88201|pir||S04090
-LAKLITRTQA
->gi|92498|pir||S06005
-LSRIITRIQA
->gi|92499|pir||S06006
-LSRIITRIQA
->gi|92509|pir||A24922
-LAKLITRTQA
->gi|940233|gb|AAA74199.1|
-LAQLITRTQA
->gi|9800486|gb|AAF99314.1|AF272
-LAQLITRTQA
->gi|9800488|gb|AAF99315.1|AF272
-LAQLITRTQA
->gi|9971579|dbj|BAB12571.1|
-LAALVTMTQA"""
+@pytest.fixture(params=[("CG", "AC"), ("CG", "AC", "NN")])
+def one_case(request):
+    return make_aligned_seqs(
+        {f"s{i}": s for i, s in enumerate(request.param)},
+        moltype="dna",
+    )
 
-myos_aln = ArrayAlignment(data=_fasta_to_dict(myos_data), moltype=PROTEIN)
 
-# a randomly generated tree to use in tests
-tree20_string = "(((0:0.5,1:0.5):0.5,(((2:0.5,3:0.5):0.5,(4:0.5,(5:0.5,6:0.5):0.5):0.5):0.5,((7:0.5,8:0.5):0.5,((9:0.5,((10:0.5,11:0.5):0.5,12:0.5):0.5):0.5,13:0.5):0.5):0.5):0.5):0.5,(((14:0.5,(15:0.5,16:0.5):0.5):0.5,17:0.5):0.5,(18:0.5,19:0.5):0.5):0.5);"
+@pytest.mark.parametrize("stat", ["mi", "nmi", "rmi"])
+def test_mi_pair_1(one_case, stat):
+    """all MI 1"""
+    got = c3_coevo.coevolution_matrix(
+        alignment=one_case, stat=stat, show_progress=False
+    )[1, 0]
+    assert_allclose(got, 1.0)
diff --git a/tests/test_util/test_io.py b/tests/test_util/test_io.py
index 80b417e78..3e9949362 100644
--- a/tests/test_util/test_io.py
+++ b/tests/test_util/test_io.py
@@ -60,19 +60,19 @@ def test_does_not_write_if_exception(tmp_dir):
     assert not test_filepath.exists()
 
 
-def test_writes_compressed_formats(DATA_DIR, tmp_dir):
+@pytest.mark.parametrize("suffix", ("gz", "bz2", "zip", "lmza", "xz"))
+def test_writes_compressed_formats(DATA_DIR, tmp_dir, suffix):
     """correctly writes / reads different compression formats"""
     fpath = DATA_DIR / "sample.tsv"
     expect = pathlib.Path(fpath).read_text()
-    for suffix in ["gz", "bz2", "zip"]:
-        outpath = tmp_dir / f"{fpath.name}.{suffix}"
-        with atomic_write(outpath, mode="wt") as f:
-            f.write(expect)
+    outpath = tmp_dir / f"{fpath.name}.{suffix}"
+    with atomic_write(outpath, mode="wt") as f:
+        f.write(expect)
 
-        with open_(outpath) as infile:
-            got = infile.read()
+    with open_(outpath) as infile:
+        got = infile.read()
 
-        assert got == expect, f"write failed for {suffix}"
+    assert got == expect, f"write failed for {suffix}"
 
 
 def test_rename(tmp_dir):
diff --git a/tests/test_util/test_table.py b/tests/test_util/test_table.py
index b66b90b08..3b4243208 100644
--- a/tests/test_util/test_table.py
+++ b/tests/test_util/test_table.py
@@ -2018,3 +2018,21 @@ def test_outer_join_col_naming(t2, t3):
     expect = list(t2.header) + [f"{col_prefix}{c}" for c in t3.header]
     assert list(got.header) == expect
     assert got.shape[0] == t2.shape[0] * t3.shape[0]
+
+
+def test_repr_html_continuation():
+    # should have an ellipsis row for every c ontinued table
+    t8_header = ["edge.name", "edge.parent", "length", "x", "y", "z"]
+    t8_rows = [
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+        ["NineBande", "root", 4.0, 1.0, 3.0, 6.0],
+    ]
+    table = make_table(header=t8_header, data=t8_rows, max_width=30, title="a title")
+    # with 30 characters wide there are 3 subtables, so we expect 3 ellipsis rows
+    table.set_repr_policy(head=2, tail=2)
+    assert table._repr_html_().count('<tr class="ellipsis">') == 3