Global Alignment with Scoring Matrix and Affine Gap Penalty

Mind the Gap

In “Global Alignment with Scoring Matrix”, we considered a linear gap penalty, in which each inserted/deleted symbol contributes the exact same amount to the calculation of alignment score. However, as we mentioned in “Global Alignment with Constant Gap Penalty”, a single large insertion/deletion (due to a rearrangement is then punished very strictly, and so we proposed a constant gap penalty.
Yet large insertions occur far more rarely than small insertions and deletions. As a result, a more practical method of penalizing gaps is to use a hybrid of these two types of penalties in which we charge one constant penalty for beginning a gap and another constant penalty for every additional symbol added or deleted.

Problem

An affine gap penalty is written as a+b⋅(L−1)a+b⋅(L−1), where LL is the length of the gap, aa is a positive constant called the gap opening penalty, and bb is a positive constant called the gap extension penalty.
We can view the gap opening penalty as charging for the first gap symbol, and the gap extension penalty as charging for each subsequent symbol added to the gap.
For example, if a=11a=11 and b=1b=1, then a gap of length 1 would be penalized by 11 (for an average cost of 11 per gap symbol), whereas a gap of length 100 would have a score of 110 (for an average cost of 1.10 per gap symbol).
Consider the strings “PRTEINS” and “PRTWPSEIN”. If we use the BLOSUM62 scoring matrix and an affine gap penalty with a=11a=11 and b=1b=1, then we obtain the following optimal alignment.
PRT—-EINS ||| ||| PRTWPSEIN-
Matched symbols contribute a total of 32 to the calculation of the alignment’s score, and the gaps cost 13 and 11 respectively, yielding a total score of 8.
Given: Two protein strings ss and tt in FASTA format (each of length at most 100 aa).
Return: The maximum alignment score between ss and tt, followed by two augmented strings s′s′ and t′t′ representing an optimal alignment of ss and tt. Use:

  • The BLOSUM62 scoring matrix.
  • Gap opening penalty equal to 11.
  • Gap extension penalty equal to 1.

    Sample Dataset

    Rosalind_49 PRTEINS >Rosalind_47 PRTWPSEIN

    Sample Output

    8 PRT—-EINS PRTWPSEIN-

Solution:动态规划

本题题意就是第一次插入罚opening penalty分,之后连续的插入每次只罚extension penalty分。因此就是前一题的动态规划的变型。

  1. from typing import List
  2. ch2idx = lambda ch: ord(ch) - ord('A')
  3. BLOSUM62 = """
  4. A C D E F G H I K L M N P Q R S T V W Y
  5. A 4 0 -2 -1 -2 0 -2 -1 -1 -1 -1 -2 -1 -1 -1 1 0 0 -3 -2
  6. C 0 9 -3 -4 -2 -3 -3 -1 -3 -1 -1 -3 -3 -3 -3 -1 -1 -1 -2 -2
  7. D -2 -3 6 2 -3 -1 -1 -3 -1 -4 -3 1 -1 0 -2 0 -1 -3 -4 -3
  8. E -1 -4 2 5 -3 -2 0 -3 1 -3 -2 0 -1 2 0 0 -1 -2 -3 -2
  9. F -2 -2 -3 -3 6 -3 -1 0 -3 0 0 -3 -4 -3 -3 -2 -2 -1 1 3
  10. G 0 -3 -1 -2 -3 6 -2 -4 -2 -4 -3 0 -2 -2 -2 0 -2 -3 -2 -3
  11. H -2 -3 -1 0 -1 -2 8 -3 -1 -3 -2 1 -2 0 0 -1 -2 -3 -2 2
  12. I -1 -1 -3 -3 0 -4 -3 4 -3 2 1 -3 -3 -3 -3 -2 -1 3 -3 -1
  13. K -1 -3 -1 1 -3 -2 -1 -3 5 -2 -1 0 -1 1 2 0 -1 -2 -3 -2
  14. L -1 -1 -4 -3 0 -4 -3 2 -2 4 2 -3 -3 -2 -2 -2 -1 1 -2 -1
  15. M -1 -1 -3 -2 0 -3 -2 1 -1 2 5 -2 -2 0 -1 -1 -1 1 -1 -1
  16. N -2 -3 1 0 -3 0 1 -3 0 -3 -2 6 -2 0 0 1 0 -3 -4 -2
  17. P -1 -3 -1 -1 -4 -2 -2 -3 -1 -3 -2 -2 7 -1 -2 -1 -1 -2 -4 -3
  18. Q -1 -3 0 2 -3 -2 0 -3 1 -2 0 0 -1 5 1 0 -1 -2 -2 -1
  19. R -1 -3 -2 0 -3 -2 0 -3 2 -2 -1 0 -2 1 5 -1 -1 -3 -3 -2
  20. S 1 -1 0 0 -2 0 -1 -2 0 -2 -1 1 -1 0 -1 4 1 -2 -3 -2
  21. T 0 -1 -1 -1 -2 -2 -2 -1 -1 -1 -1 0 -1 -1 -1 1 5 0 -2 -2
  22. V 0 -1 -3 -2 -1 -3 -3 3 -2 1 1 -3 -2 -2 -3 -2 0 4 -3 -1
  23. W -3 -2 -4 -3 1 -2 -2 -3 -3 -2 -1 -4 -4 -2 -3 -3 -2 -3 11 2
  24. Y -2 -2 -3 -2 3 -3 2 -1 -2 -1 -1 -2 -3 -1 -2 -2 -2 -1 2 7
  25. """
  26. cost = [[0] * 26 for _ in range(26)]
  27. head, *nxts = (line.split() for line in BLOSUM62.splitlines() if line.strip())
  28. # print(head, nxts)
  29. # 处理表头
  30. for base2, *nums in nxts:
  31. for base1, num in zip(head, nums):
  32. cost[ch2idx(base1)][ch2idx(base2)] = int(num)
  33. openGAP, extensionGAP = -11, -1
  34. class Solution:
  35. def globalAligmment(self, s: str, t: str) -> int:
  36. """全局比对"""
  37. m, n = len(s), len(t)
  38. dp = [[[float('-inf')] * 3 for _ in range(n + 1)] for _ in range(m + 1)]
  39. dp[0][0][0] = 0
  40. # 1. 状态初始化
  41. dp[1][0][2] = openGAP
  42. for i in range(2, m + 1): # s != '', t = '', 对 s 而言是连续删除
  43. dp[i][0][2] = dp[i-1][0][2] + extensionGAP
  44. dp[0][1][1] = openGAP
  45. for j in range(2, n + 1): # s = '', t != '', 对 s 而言是连续插入
  46. dp[0][1][1] = dp[0][j-1][1] + extensionGAP
  47. # 2. 状态转移
  48. for i in range(1, m + 1):
  49. for j in range(1, n + 1):
  50. dp[i][j][0] = max(
  51. dp[i-1][j-1][0], dp[i-1][j-1][1], dp[i-1][j-1][2]
  52. ) + cost[ch2idx(s[i-1])][ch2idx(t[j-1])]
  53. # s 连续插入
  54. dp[i][j][1] = max(
  55. dp[i][j-1][0] + openGAP, # 起始罚分
  56. dp[i][j-1][1] + extensionGAP, # 延伸罚分
  57. dp[i][j-1][2] + openGAP,
  58. )
  59. # t连续插入=s连续删除
  60. dp[i][j][2] = max(
  61. dp[i-1][j][0] + openGAP, # 起始罚分
  62. dp[i-1][j][1] + openGAP, # 起始罚分
  63. dp[i-1][j][2] + extensionGAP, # 延伸罚分
  64. )
  65. def printPath(i: int, j: int, k: int, path1: List[str], path2: List[str]) -> None:
  66. if i + j == 0:
  67. print(''.join(reversed(path1)))
  68. print(''.join(reversed(path2)))
  69. print()
  70. return
  71. if 0 == k:
  72. matchScore = cost[ch2idx(s[i-1])][ch2idx(t[j-1])]
  73. for k in range(3):
  74. if dp[i][j][0] == dp[i-1][j-1][k] + matchScore:
  75. path1.append(s[i-1])
  76. path2.append(t[j-1])
  77. printPath(i - 1, j - 1, k, path1, path2)
  78. path1.pop()
  79. path2.pop()
  80. elif 1 == k:
  81. for k in range(3):
  82. if dp[i][j][1] == dp[i][j-1][k] + (openGAP if k != 1 else extensionGAP):
  83. path1.append('-')
  84. path2.append(t[j-1])
  85. printPath(i, j - 1, k, path1, path2)
  86. path1.pop()
  87. path2.pop()
  88. else:
  89. for k in range(3):
  90. if dp[i][j][2] == dp[i-1][j][k] + (openGAP if k != 2 else extensionGAP):
  91. path1.append(s[i-1])
  92. path2.append('-')
  93. printPath(i - 1, j, k, path1, path2)
  94. path1.pop()
  95. path2.pop()
  96. ans = max(dp[m][n])
  97. print(ans)
  98. for k in range(3):
  99. if dp[m][n][k] == ans:
  100. printPath(m, n, k, [], [])
  101. return max(dp[m][n])
  102. fasta = """
  103. >Rosalind_3162
  104. WSPVKMGQCASMVGVEFEWSCRMQSPVQKLGLFKYDDGEVVGFKWHRNKRVHWMDFIPLN
  105. YEYLLVQARSRSRTTKKITEKFKF
  106. >Rosalind_5885
  107. WSPVKMGQCMVGVEFDNSKYEKTNGDYDKLGCKKYDDGEHCGFKCDFRPKRFCWRWIAWE
  108. HNPIAGEYMYLLVQARSRSRTKKITEKFKL
  109. """
  110. """
  111. >Rosalind_49
  112. PRTEINS
  113. >Rosalind_47
  114. PRTWPSEIN
  115. """
  116. import re
  117. fasta = [seq.replace('\n', '') for seq in re.split(r'>.*', fasta) if seq.replace('\n', '')]
  118. print(Solution().globalAligmment(*fasta))
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int blosum62[26][26] =
  4. {
  5. {4, 0, 0, -2, -1, -2, 0, -2, -1, 0, -1, -1, -1, -2, 0, -1, -1, -1, 1, 0, 0, 0, -3, 0, -2, 0},
  6. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  7. {0, 0, 9, -3, -4, -2, -3, -3, -1, 0, -3, -1, -1, -3, 0, -3, -3, -3, -1, -1, 0, -1, -2, 0, -2, 0},
  8. {-2, 0, -3, 6, 2, -3, -1, -1, -3, 0, -1, -4, -3, 1, 0, -1, 0, -2, 0, -1, 0, -3, -4, 0, -3, 0},
  9. {-1, 0, -4, 2, 5, -3, -2, 0, -3, 0, 1, -3, -2, 0, 0, -1, 2, 0, 0, -1, 0, -2, -3, 0, -2, 0},
  10. {-2, 0, -2, -3, -3, 6, -3, -1, 0, 0, -3, 0, 0, -3, 0, -4, -3, -3, -2, -2, 0, -1, 1, 0, 3, 0},
  11. {0, 0, -3, -1, -2, -3, 6, -2, -4, 0, -2, -4, -3, 0, 0, -2, -2, -2, 0, -2, 0, -3, -2, 0, -3, 0},
  12. {-2, 0, -3, -1, 0, -1, -2, 8, -3, 0, -1, -3, -2, 1, 0, -2, 0, 0, -1, -2, 0, -3, -2, 0, 2, 0},
  13. {-1, 0, -1, -3, -3, 0, -4, -3, 4, 0, -3, 2, 1, -3, 0, -3, -3, -3, -2, -1, 0, 3, -3, 0, -1, 0},
  14. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  15. {-1, 0, -3, -1, 1, -3, -2, -1, -3, 0, 5, -2, -1, 0, 0, -1, 1, 2, 0, -1, 0, -2, -3, 0, -2, 0},
  16. {-1, 0, -1, -4, -3, 0, -4, -3, 2, 0, -2, 4, 2, -3, 0, -3, -2, -2, -2, -1, 0, 1, -2, 0, -1, 0},
  17. {-1, 0, -1, -3, -2, 0, -3, -2, 1, 0, -1, 2, 5, -2, 0, -2, 0, -1, -1, -1, 0, 1, -1, 0, -1, 0},
  18. {-2, 0, -3, 1, 0, -3, 0, 1, -3, 0, 0, -3, -2, 6, 0, -2, 0, 0, 1, 0, 0, -3, -4, 0, -2, 0},
  19. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  20. {-1, 0, -3, -1, -1, -4, -2, -2, -3, 0, -1, -3, -2, -2, 0, 7, -1, -2, -1, -1, 0, -2, -4, 0, -3, 0},
  21. {-1, 0, -3, 0, 2, -3, -2, 0, -3, 0, 1, -2, 0, 0, 0, -1, 5, 1, 0, -1, 0, -2, -2, 0, -1, 0},
  22. {-1, 0, -3, -2, 0, -3, -2, 0, -3, 0, 2, -2, -1, 0, 0, -2, 1, 5, -1, -1, 0, -3, -3, 0, -2, 0},
  23. {1, 0, -1, 0, 0, -2, 0, -1, -2, 0, 0, -2, -1, 1, 0, -1, 0, -1, 4, 1, 0, -2, -3, 0, -2, 0},
  24. {0, 0, -1, -1, -1, -2, -2, -2, -1, 0, -1, -1, -1, 0, 0, -1, -1, -1, 1, 5, 0, 0, -2, 0, -2, 0},
  25. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  26. {0, 0, -1, -3, -2, -1, -3, -3, 3, 0, -2, 1, 1, -3, 0, -2, -2, -3, -2, 0, 0, 4, -3, 0, -1, 0},
  27. {-3, 0, -2, -4, -3, 1, -2, -2, -3, 0, -3, -2, -1, -4, 0, -4, -2, -3, -3, -2, 0, -3, 11, 0, 2, 0},
  28. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
  29. {-2, 0, -2, -3, -2, 3, -3, 2, -1, 0, -2, -1, -1, -2, 0, -3, -1, -2, -2, -2, 0, -1, 2, 0, 7, 0},
  30. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
  31. };
  32. int openGAP = -11, extensionGAP = -1;
  33. void localAligmentWithAllinPenalty(string &s, string &t) {
  34. int m = s.size(), n = t.size();
  35. // 状态初始化
  36. vector<vector<vector<int>>> dp(m + 1, vector<vector<int>> (n + 1, vector<int> (3, 0)));
  37. int ii = 0, jj = 0, kk = 0;
  38. for (int i = 1; i <= m; ++i) {
  39. for (int j = 1; j <= n; ++j) {
  40. // 无删除或插入操作
  41. dp[i][j][0] = max(
  42. max({dp[i-1][j-1][0], dp[i-1][j-1][1], dp[i-1][j-1][2]}) + blosum62[s[i-1]-'A'][t[j-1]-'A'],
  43. 0
  44. );
  45. // 连续插入
  46. dp[i][j][1] = max({
  47. 0,
  48. dp[i][j-1][0] + openGAP, // 起始罚分
  49. dp[i][j-1][1] + extensionGAP, // 延伸罚分
  50. dp[i][j-1][2] + openGAP
  51. });
  52. // 连续删除
  53. dp[i][j][2] = max({
  54. 0,
  55. dp[i-1][j][0] + openGAP, // 起始罚分
  56. dp[i-1][j][1] + openGAP,
  57. dp[i-1][j][2] + extensionGAP // 延伸罚分
  58. });
  59. // 更新最大局部得分
  60. for (int k = 0; k <= 2; ++k) {
  61. if (dp[i][j][k] >= dp[ii][jj][kk]) {
  62. ii = i; jj = j; kk = k;
  63. }
  64. }
  65. }
  66. }
  67. // 回溯输出最佳路径之一
  68. cout << dp[ii][jj][kk] << endl;
  69. string path1, path2;
  70. while ((0 != ii + jj) && (0 != dp[ii][jj][kk])) {
  71. // cout << ii << " " << jj << " " << kk << endl;
  72. if (0 == kk) {
  73. int matchScore = blosum62[s[ii-1]-'A'][t[jj-1]-'A'];
  74. for (int k = 0; k <= 2; ++k) {
  75. if (dp[ii][jj][kk] == dp[ii-1][jj-1][k] + matchScore) {
  76. path1.push_back(s[ii-1]);
  77. path2.push_back(t[jj-1]);
  78. --ii, --jj; kk = k;
  79. break;
  80. }
  81. }
  82. } else if (1 == kk) {
  83. for (int k = 0; k <= 2; ++k) {
  84. if (dp[ii][jj][kk] == dp[ii][jj-1][k] + (k != kk ? openGAP : extensionGAP)) {
  85. path1.push_back('-');
  86. path2.push_back(t[jj-1]);
  87. --jj; kk = k;
  88. break;
  89. }
  90. }
  91. } else {
  92. for (int k = 0; k <= 2; ++k) {
  93. if (dp[ii][jj][kk] == dp[ii-1][jj][k] + (k != kk ? openGAP : extensionGAP)) {
  94. path1.push_back(s[ii-1]);
  95. path2.push_back('-');
  96. --ii; kk = k;
  97. break;
  98. }
  99. }
  100. }
  101. }
  102. reverse(path1.begin(), path1.end());
  103. reverse(path2.begin(), path2.end());
  104. cout << path1 << "\n" << path2 << endl;
  105. }
  106. // trim from start (in place)
  107. static inline void ltrim(string &s) {
  108. s.erase(s.begin(), find_if(s.begin(), s.end(), [](unsigned char ch) {
  109. return !isspace(ch);
  110. }));
  111. }
  112. // trim from end (in place)
  113. static inline void rtrim(string &s) {
  114. s.erase(find_if(s.rbegin(), s.rend(), [](unsigned char ch) {
  115. return !isspace(ch);
  116. }).base(), s.end());
  117. }
  118. // trim from both ends (in place)
  119. static inline void trim(string &s) {
  120. ltrim(s);
  121. rtrim(s);
  122. }
  123. vector<string> readFasta() {
  124. vector<string> seqs;
  125. string seq, line;
  126. while (cin >> line) {
  127. trim(line);
  128. if (!line.empty() && line[0] == '>') {
  129. if (!seq.empty()) {
  130. seqs.push_back(seq);
  131. seq.clear();
  132. }
  133. } else {
  134. seq += line;
  135. }
  136. }
  137. seqs.push_back(seq);
  138. return seqs;
  139. }
  140. int main() {
  141. vector<string> seqs = readFasta();
  142. // for (string &seq: seqs) cout << seq << endl;
  143. localAligmentWithAllinPenalty(seqs[0], seqs[1]);
  144. return 0;
  145. }
  146. >Rosalind_3230
  147. MYCNADFSNKVVCVRAQMLTQIQSGCSPNRRLTTCVDYTDENLTCHTGSNMAKHQGHNYY
  148. VCRAPSECNAFSIRYLYICDECPALNMKPDCCYDTPYSDSIMLTCEQSTNGRPVFCGIWY
  149. LRKHNMISICTIVWTKEAGKRIDNVHRGSPVMGQFKMYGGYYVRKMNVVLQPGDAAVNSN
  150. NQGINDSLYASWVPAMYNTYDCRDPLDLYVMPMPVPAHFIIVSAEPRHYPAKRRPRQMDY
  151. YDKAVPVKHCCITKDGLFWEMPMYSWEHMGAKQREQPFITLPCPYIPANPQVCKLAAAYF
  152. RYHKYHWMTKDRPKDWEWVRNIWCRSKNHTESFREKTHQCAQSDLQHYRYPHSCLKGIVS
  153. QDKADATMWSQKSTGTHRDRNSQNAGEMSQRQYRMNTVGGRHDQGCIPMWFAEYKMLDVL
  154. MHVATMDSIKEKPFGQNKNFPFMLRRPKGIWRRCGGFSKYEIERYAMMHDLGHIDEYWDD
  155. CQSFLDSSWYGVDVKTENTWQRAGHCTTKRPGMSTYLSWIDWMADQAWMCDMTGGAEHFY
  156. CDLLFWRIRVVVEMTGHMALDITGYAPDKDPILYNECGHTAGFVVIDEKKQMGPCWWNEK
  157. DIRISVSSKFCEKFDLCNHICKVYLDASLVWSLKIPPQVVGHDAAVELACDFLVTDRRQG
  158. ELAENRGQASTGNRHFMWDHIGYDTNRLMVWAIGAMPICWMADDTKTCNVSAEKTTPDSY
  159. NQHKNMYHCKEMDEACVLTYWAKHMTVEVGKFCNGTLLKPVPCEIMVQPHQSVHRMINLN
  160. TIKKRCRLDCMMHIKTKVTQVSYGILDTFLSVKWMVTAFHRCTLQDSWVKIPFYMSANTH
  161. PFSDHVAFSYCHARRTGDNGWTRCKSEDKDYMHNYEETHHQHESCWVHNEMSAETVIRCT
  162. KLVMMEFFDSGYDCIWAAEIMHTGFYGSAFLMHGRFAHFYKYWWHCACDVQLRGCFAQHT
  163. NDSSLPQCDVPEMPVQSTYSMPVRKHVLDSYYMVTISKCPMIFKIPRLVLVSRHTAAGFQ
  164. CSHTIQGYSSNAFQYESRLWERSSREKWEALRRGAECCNCSGHDIGGPKIINGQWAFRVY
  165. PQLFSIIGGEVREMVSNEKEHYFEFMGHVWHYWEAIHFGMMIDNDANNGWALLRLKKGAC
  166. TYQTTEESVFDDYTIPLLHHQRWMQSIWYWWSEDCKRIPWGESHGQTRDVRHRSWLFNSV
  167. TLRHVGYMDDDAGGGFAWMECIELDKLYYQNIGWHDEIKGQYWANFNPQCPCIRKQDASW
  168. GRWSTVWLMMRMSQHWCNNSVPELAQCRRINCHHAIVMWHWHDANAFNIDYCRDPVHYVA
  169. VFPQSMREAYYCMLQISYNVEITPHEFRGYEQVRSKFINTFKPGFDMDPPKEWWLMWRQT
  170. YQARCKVLACADDKKYMTYSVCMNAWIPIAGDSGKVGHFYWTWSCGCCPGDFTIHYNLTK
  171. VKWQVYHIDSWEPVEKAWIDPQYGEFVRVYDDQGEFCVISDNIRYKLPHHLRQIPFGIMY
  172. DEVYPHRECITKHKCDGCARDWWAPDPEDVTHTIPRMRNKTLMHNNKNHQAYFQCEGWEM
  173. RRFWHELCTTEGFYHTCQMLTLSHTCYFDAKCCSQCMYLEGKHPPKFARTRCERYAPCYC
  174. FIWALWTDGGYLFNENFIYENGLFHYQHLMEVCITYDTWTCYKLAEPCSKDPNAPSTFKT
  175. TWAPPPWYYTSLIISQSGYHSECVFCWMSMYNFNSRRWPTTDCLDKFNPTIEPGSDTSMG
  176. ELAPVCRWMPDEWFWSLNSIASPNDVRQFLTFVQDCGIQNFRRAEGCANTKVDRGHEQFD
  177. YNTWATIIWYDQFMSIDDQGVLHVCHVRMAYCYQFESRCVLFEIMHYTQQGPFHMEMITM
  178. ANPTPSSVQAIMTCETHATLDSDGIHKFKVMHQPWKAKKCIMNRFENDTAQDSCGYAEYR
  179. MEQFIFTACSVVAGENKCKASVDSVEVTWMCNPASKYPTWVWIQRPKTIHFTWDKMEKTQ
  180. DAIELCYACDDQECIYGAGSMQDIAYGRWTGSWEIWAWWIFNFFMFDSVDDGERRFAGFF
  181. VYASMLYFIPKMIVEYSEFEWYQHLASKFTMVYDHAIICIGKNDWEHQRLEIFMQMMNAE
  182. NENCGFGQHGTQQRMEWGLMSYRLETLMPSHKPDSDKQETGIINLRLMMSCHNGEAKHSD
  183. WRLDWQCTDFNAREKPCRVASGYIRCTFQKVWNTPRPESQCCQYIKNLCDNVSMQHSRRW
  184. KATTLSQTMSNRACKYTDKKDDNRDGYMNTPMCNFGHMQVYNEQWSHEEVDIPYVVMQSY
  185. AGITLHMVAIAWKYQGWDVPMLGWDWHWRAFCWIDCIVAAWLIGKFRGSGDRYKCCAVLD
  186. WHPHRRTIFCYDFFKYSATSRDDTRWEWKYTAIVMMGIMRINQKNNHRWTKTDQEEDQAV
  187. IEIDSWPIKKARLFSEMLMMHVNSSRVFYNQTWNFIQVGCFMEGIVVCSKDALQTQQVHR
  188. QCDALFLAAYMERAGYEYWNFTKAPDWYWDCQPVMRGCTTAPPEDNPIPKALHSEHHIQR
  189. YPYLVCRGLNLPCNTNGVDCKVQQGVYMHSCAISFCRGHIEEIEAAAHHIWRPNPHYHMV
  190. WGAVFLSKFDRAKCYTKAAYQFRCDDVWIRNPKYQQYIYAISRPKCMKSLFLMSTVANVH
  191. GCIHMMKTHWMSENWWCWMYPPFHSKKPAWFQGMIQHSRVCAGFSEVVAVGISSHRQGTT
  192. WATSSGIDVVGPCDDATQIGQMCHFAFVGQRFNDWPKFKSMRCKPKTSGAPQMHNFWCKS
  193. RPHNPQHCTIGRNPSYWHYPGLTYIIPILKLAKVQQQDYCIRYTFMCMYVFTMCAFFDHS
  194. IAIYQDANPNWPYYRLVCAPTTLQEYGRKKSKTSATQTKYFFTSCGSCSHPGEGLRNKEN
  195. WEEVGNYIDVVGHRIPVPRCNVAEHHGQPTMSYACNATDSQMTPWHAYKPTQADEQDRTN
  196. IWCLKAADNWEPEVGEKALEQYPSGLLKKFFVTHQGVIGKIVDPMLNGDEYLPWFQYSDN
  197. DERLKKVQYSKLVNDPQCWLWAVDFSKQPLQLWDHSMDLYLEAEFRSFWHGCNIEPTMNL
  198. TFCYMDIRIGHIVCGLYNNCIFMQTTPQYTYMFTIMNILLQHLISVASEQDGNWYYEDVC
  199. ASAYLQRFARANRDWWTIWHLCNRVRHYLPIVRQRMKIWDYAWMNTDIHELPLVNRWVIR
  200. MVCAWKNTVADREISAFQEQPERQYAKTHATPEHLKMRHDYMHLGPPWTDTYAWIFIEKD
  201. TCKQSMGCGCCWFWCYCAAEVCWAFCEWFNDAWEIAMATFNKEMTYIAHVHTMRIYLWKM
  202. PMETGTSMQSRNTIDDSIQVNDWRNGQLHMLPDFHPFMLAEAIWRWSLAANRLRAFAFWH
  203. SFFGLQWQRTPFEGICFVTRYEFIRSVFRGVINWHRQEAWHYCEYKGNQNYDVYTCEIQF
  204. DIEKQFCWWQMKCEFIGHQMHCCYTFIMTGFHNQIRESKITDCAIPKPCWDIYGYWVFHG
  205. ICREDQEDPVKYTEQSNHMRKIPGDVKRSIMCTGNKAPYMIRCCNDCPGLFMCSIVWAFG
  206. YQSYLQHVSTRGQKMMTHCTHWILCFGMFWSFQNPWPETFMVAHWEANWGPDLQPQFGFS
  207. DYHGDSYITASLQWYYAGPWAAIWCGLHYAIFLPHPKKKFMINNWNPQHCVGPSCRWHRH
  208. QTMLLDEKVNEHGVMPWGIVQENGYYARSFTRCLFTMEFDMCCAIISATTMRCLGCDQPE
  209. KLAQHHQTSPQVNSELCAGRKNKPVPQHNCEKSQEPPSFWRMGRPCFPIYIRCYTCMTFQ
  210. FPWNMTEATPQCAQDAGCHWKAGGKAWAEMYTNALHLGKLSDDFGIKESYTFCCTDWWPN
  211. EMQNVIFRQDSRWDKPVLVHYIFWGRCIMSGGIPAQMEQGTHTPSKHHYYAWIQSNFYYQ
  212. KWYHAPCPGQITEYQSNGSDQFCAGPACKPIMPPNCKFYIPQRWTGFAVGVSPVPNLENQ
  213. LQCMHLTWEGTTDFQKFIHRNHTNPEMDWPTRKGDCSSIITGTMKSISQWLLRMWWMSSI
  214. RGLTEVVQTNYRGMFNPGTSHFGKSFHPSSMITYINVSEACTHVCIKMVWRGNLLKEKMC
  215. FTPLMCVEYCAHCEVGPIVTLWNVFYYLNPVQMFHTCNVKEEMYVFKHATAQYEQARMDA
  216. PLKHIMDMEYHCWCCCCTQTAFRRFKDEHDCTLQLGHMVACLNAQFTMAWRKHAPFPLMA
  217. PHKAFPLCDCWTIWYNFDHHQNVQMGFVANHGERAGCYNSWCRLMILNEGCCCFRRKHLL
  218. YSTFELIQANTMTKFCDGLNRALFVYNKKKAALITAYPDPRNDCPIDWHRDFPKCIQQNN
  219. QYGIAPRSLCRSRGMDNIDLCLHHFDNDNMRMKFICSHYFGRRNGINNYEWQRDQWEKCS
  220. VTIAISFISIGSCSTLLIVSTGHFWSCEYWLRMPRGLHNMNVYCNGHHCSYGDHFDPREH
  221. YQIIYKVMKGHHTAQFEYEQGTYWQQDGSQMVTETMHAQFTAVFADKLAYNYYITEQNLW
  222. GRPKKSLDCSMGLPMDWFESVSHYEKHWPGAEVGAVADMEELFGGKMHLHDGMEFPPYTK
  223. ETINLYMYIVVCRYIFWSEEWVSKYQDILSNFHDQQWNDRDDSLLVSYHRSKMWTIFTRV
  224. GNCCLSIIVCPKHFAPSWFPALGRPHRLKTVTMNHCCNSWIIVYSQYYGVNKACMTHKKA
  225. RCHRTRTWMDSKTYKFHYTDFGSSNLFNHHLWLAEPVIGLKSMSQGMRYEQTHRKFEIEY
  226. DNVKNGICAYKNKKWFPYQFNLVNIIEFLKFWWRPSCWGHMQFVDKNGFMADHNHEMVPW
  227. QNPGQNISACHFHQHTAQICFCARLIRHNNDPAYEECYHATVLMSLILICEMDVEDAHVR
  228. WCRIRFCHNWLVMMVGGNSMAWHVWKRQATAACKQVRPNCDGENSDHAMQPYCATSYPLL
  229. FLKEQHVQTSKAHEGEDYFRSMLAETTHTNCVGHIAMDQEQRPRDCWPTDIYFGQHDKFN
  230. MNIQGEWCDIWPNKGIHFTPWFYLTIWCGDIWHECSMTTYQQEGAIFCKSPQGWQYNKPD
  231. KKPDVRADVHSYDMRLWQTPPQVDFSYGAWTFTDMGFRHQDSGSPHKKTAVYWCCDLVME
  232. WGVWDLYAHKTHVPLEFERYHCTEFKIEQRHPESLDQPGLSKKLADHLPRPRELKEMDAY
  233. DGQGFKQHETDQLTYPVTWEENRAGVFWGLLEINMPNCVEDWTCYRCDMGIEHKKRPVYY
  234. FEAYKYVTYSIGVPIFNKSRSAHNMTFYTYPTGCAPHHLWDHGTLGDAMMIRIPDTPDIQ
  235. TYVDAVWTQSDRPWLPELRWANDTTQFVECGTIYCTEIWLNNLVIGLIWFQYLVDNFQRP
  236. NSDDEEGAPSEYMWDTDTGQVTFMMDLCKTHPMARVGWKNIMWFCSEHLVTYHWLGYINF
  237. TWFFMGCTPTKIWMGEWKDLQFWYSSVWQSEMRIKCIYPQMTKYNEPPQYCKQDDNPRAD
  238. WWCYRYKFTLEAYRAMLVARLRTPASRYGNFRTPHWSVWWSEVMENVVGLYCDLVMNPYK
  239. CMLFKHNCYTTHNWNKPQHTIECQDDRLFFQYNHQATTSPYAAECRAWWPHYFCAYDNMP
  240. AKTPKMWETRGLDEEFGHHTMEKVVEEYTPLCEKVATAPRPNYSIEWGKSVHSCPNNERS
  241. PMFDRHQEKCFHTRVVFHSVNGTNLNCPYMCQKWDHVDLKRGNGAALQERDSNWHNWNWC
  242. WREPHTLCSPPMKQRINAFEIEMHSEVMEGLDRYRDYDSAFETCPIDHCFDRCGQPDGIP
  243. WEMCEPKMQCEYTRLFCIQFICHSVLHRQSVVYTDRSCNQNGLCMMRVRQWSFRNLKQFP
  244. QVVPSLPRWMTRCVKFIYTLFVCRWHCHTDYLNVFSDECFSDGKHFWVMLKWEFWFPAAW
  245. QQMETPCLWYLWLHGQSVFCYEHKWEGANYEERMLIWTYTKYEWHAHCKTLLECHNVSIW
  246. SQLHHLDYIPIADWTCQMRFESTYKTHVFPQAEAPGWKPFLINMVFPPCPLYKRGQYFPF
  247. NCGPGSPQAWLSKRKVDEGPNDAHWADSAHVSIHHHFVAMGRYDYWYKTPTHVIWYSGPK
  248. PGCPIWKHNVFVVHNHFWAIVYWEIMTKCLRFVIYPHIDFFLTSNTGRHIMKCGPWTQVE
  249. ENSQQYTRLAAGKTDLDCSYNTACRHHLLMDNGGATDWGNQHQQLSEQTKSGATPAADAI
  250. AKHFVKLNIVMPCNFWFCWVVDDFLNESIMILYYPRFTNHSNVDEIFRCLAHFDKSPTNH
  251. REAMYGFAMRDHAEHWFLAFYHPNQVWDRDLMGARWNAKHSTCIVEHPMTLPNTDWDWKF
  252. PQSVNCFNFKSAVVYDITIMNIKTKYRCKFFSTVYNMVWKQNRHSHPHECDQPYGSASKF
  253. ETQLMRYPGKVDPGCFKCDVVQMDPPQLHPMLHCKQFINLKIMTPVMGPQPMMKVRVRPV
  254. TWENYLCTQLCVGQKVKIVGYEMTWPGWAVKESKYRLFIVGMDDPSKFSPFGDNQECPYM
  255. GVCVQPCLHLVHHPKLCYYSLIMRYRQNQESLKRSDNKYMPVETCIHWHTGQEPPYWVEV
  256. FYLKFVKYGKCWVYVGFKNRSILWAKSCHWCWYMSMCLHESGASMMDMAQMWQGDDWWSH
  257. TCAAECCTRGSDHVKFNTKHYSCDCFKARPRVSLTPEPEMSMEDNWNHNADALLTLQFNF
  258. RKERERAYMHFCPGTWGHNKEWSRFHELKIVDVFNNYQMMSPAHIWQPMELDNQMNDGPT
  259. TLHNPKTSLIHPTNFHARDYCVGKKLQTEHIYRENNFPPSQVVGTMSCHGMTITSCPISD
  260. LQRQTEIKQCASQAFDKKFAVTYYFTPGLYPWPTIACKWVNVRSHRSHAGCMAHGCMNPR
  261. MTDNIRARRESNMPDFEWKIDCRYFAAEDMFEYLPKLFFWMYQSGYSCFEVVPTCYYMDQ
  262. GLMWDAEIGATHWKVWAMCRVHMEWDIQHNFGITPICSVMNYEAYDCPPDDECWFNRWFY
  263. DKGAQKRCEIMTFRTRLECAWPRHTWRRMTTYYQMKRVMPTTRAGTGRYHIQYIWKCQVF
  264. WHKFMQYDYWINNPCQNNCKVIRTAIGHARRWHDMLMTKIRRGWSVVPIRIPHPFSNYCC
  265. ANPRIKDHGESCIYVQVKNDIFYCDARFWWAMENTTRKCPHAMNEAYQSQWYQRFHAPYM
  266. CAETYLRVLLIHPWRVIHITKVQYNQVIGVPCSACNTFLDDVTACMVPVEWKDYAGYGRF
  267. LFTIVPLNMIGQMIPDQVSMRVLFKQRFPIQCYKCVEFFREQFHPINQRNICIWTECCMD
  268. TRIASDRHWLHRAYCYDPYRYDFWVDWALPQIWRNFALPGYLANFPHGDQQADQLWWETC
  269. WSARPWNCYLSFLDHEVHPNHDVLLQYKCETMKTHSPDVYLRIDPLEWFWHNENPDRPGM
  270. GPDVPFYIIVDQGDDLWCPSWFHWEVNFVYAHKAPEIMTCWDREFMESRENTHYNHLTYE
  271. HNGSIRARHCYWLRHDFKLREFGLAPQIYQFREMDKMYLFHPKYCREDDEPNKACGKKGH
  272. CCIAYHNGFCIMYYSNGRNLICEMCWPCTTSTDMRPWICLTQKFEQGCARALLAMNNIDV
  273. HYSESRNGCGQRHHTMRPNQQNMFMGVLGRWESGCVNVQYSVNRAPQWVFSLKNRHDFCL
  274. GMTMQPEAIHTVKGENNKQHRKMCQIEKMPSLAHGHNDCHLHFWVDCGDAALGHMWNGMC
  275. YESKEPQLFRMILNNQLVQGWNCTDAPAITAQKRQQLLYVKWMPPEMFISCRSMTYPIDT
  276. AIICPGFGYFRRTDLKDKDMKFPFDYMFCIGCGNMHSTSHMVCNVWFVGYCKDIDKTNDP
  277. PTADRQRKDRKAFSILMHRMFGSLAQFYVREPWFDWCEYDVRAASLFWREFCAARELWYN
  278. HNPYIYEVTGHEYGNWHIQMSYKCKQYKRITMSGRWIVKCLKALIAAPYIVGVVSMLGHG
  279. DYRECNNEDYNATETQGVSEPLMTNGTPYSAEQGYREFCPYSAWEIIANSQWHRRSYHHA
  280. CFKGNFWYCIMINEHKGHMYCYSVGQAVQANTRFHQNWTCVQNVIGHNQTRHWEMVVGMT
  281. LTWEFMCSEAEIVTKIMNETDMCDTDVLPNWAFGRRMWTLVQVLETFFCQMYKGICKDEL
  282. PACIKWKLPPYTRKSWGHNCPSADYHVWYPTIDDKKQQLDMNTPIDLCTPWNDSLAPEEH
  283. MRHTRDKDSLRKETYQLEYRGLATFKWFGKCCMMLSFNASGHHSMKWHRCKTGEHKVQFQ
  284. HPDMYKPFTIVCECRILLGDGDCQCPKQDRVMSIWHYIVTYNECMSNAGEMNAYQHWTEV
  285. NVVWRLFRFPLPPYGIVPMMIYRVFPHMGGAREFKYEVTKKMHHRYQGDSVPKTPTADFV
  286. PRFNLWAVYRRICTHASRPTYYIQGMNPHMHVHEDVYWGPSLFEIWHDPKYKLCMACGHR
  287. AGNHGNTQERFAALIKQVNEVPWHNKACTMLAKPRIGTTLPAYLVQHVFMNVIHCILENV
  288. SDLWATGSLHRIMRCGAVWKSLRSYQYNFLAGHVNHPSTVGEQWKCAHFIFCVWWGFAFH
  289. EYLQQLNCVKPGYLTNRRSVKYMDKNNAYRKIYVRMLAQLEHIKNVGRYIAVRQQIGIAL
  290. HPGHWICEYNMFCAILYPQALHPSDEFVYDTWNNCWHYYISCPWFPTVKHSYCALKLSQT
  291. MYNSSCVATDMRPYEEDALMCEQHRCFKSYHFSELVLIFDLWYHTLPESQATSCNDVDVA
  292. LAP
  293. >Rosalind_4714
  294. MYCDASCLFSLEGVPTCMITQIQSGCSPNRRMRITTTVDYTNLTAHTGSNMAKHQGHNAL
  295. LCNALWIRYLYICDACPALNMKPDSIMLTCQSTNGRPVFSMYHMVWGIWYLMRFDWKHDW
  296. KFVQTKMTISDCTIVWTSFERLTGACRIDNVHRGSPVMGQFKEDQMYGGYYVRCCEMNVV
  297. LQPGDAAVNSNNQGINDSLYASSVCAMYNMPVPFIIVSARDHEIRLPRHYPAKRGGRPGM
  298. GCECCQDQMDYYDKACDICTKPHPVKHCVITKDGLFWEMPMPTWLIDEFGAPFITLDWRA
  299. RRKPANPQVCKLAAQCSFRYHHLYQCRHYHWTKYPHKKKDWKNPPWVRNIWCRSKNHTQS
  300. FREKWLQHYRPTAIPHSCHKGIVSQDKADARMWSQKSTQTERNSQRQYRVVGRSDQGCIF
  301. SDHWHRFWGVAMLDVLMHVATMDSWPFMLYRPHHFKMIGIWRRCGGFSKMVYRTIEIHRY
  302. AMMHDLGHICMIRGSECMYWDDCQSFLDSSWYYVDWFWLDETKKTENTWQRAGPCTTPRP
  303. GMSSWIDWDQAWMCDMTGGIEHFYCDLLFWRIRWYYVREMTPHMERYITGYAFAHEEGFH
  304. LQWAGFVVIDEKKQMHQCWWNEKDIRISVTTRSDQEPWSDLCNHICKVYLDASLVWFNFE
  305. ELKIPPQVVGHDACVKLACDLVTDRRQGHLAEWRHPGFCPQAITKGNRHFLHHNANHDHI
  306. GYDTNRLMVVAIGAMPDCWMADDTKTCPVSAEKTTPDSYRQHKKEMDEACVLTWWCYNWK
  307. LKPVPSEIMVQPFCEQYPCHHRMINLNTIKKKCRLDCMMHIKTTICTEAASYGSVKWMVT
  308. AFHSNNTPPCFCTLQDSWVKKPFYMLELSHVANTHPFSDHVAASYCHARTFTDIVEHSWG
  309. HNKDYMHNYEETHHNGKHVGQAHESNEMSAEVPLITVIFFDEQCHIHGYDKNWAAKIMHT
  310. GFYGSVQLMHGRFAHYSNKYKLVQLRGTCRNVEPPHAKFEACFRHLQCDVPPMPVYFVLD
  311. SYYHVTISKAPPYEPMITSWCCEEIPRLVLASRHTAAFQYESRLWCIACHCRSSRKKWLA
  312. WAGKALRRGAECCNASGCDIGGPILNGQWCTSGFSIAGGENRYFEFMGHVWYFYWEAIHF
  313. GQMARLKKGACTSQCTEAYSVFDTIPLLHHQRWMQSIWWSEDCTRIPWGESHSDKFNSVT
  314. LRHVPILVCIGQGFAWMECIERDKLYYPKETHWGDDHSKFQGGWHLEIKGQYLEIQKWDV
  315. SPQSNSIRKQDASWGRWSTVGYVQCHMMRMSQHWCNNGECRVPELAQCRWQMSMWHDANA
  316. DYCRDPVHYVAVFPKFSSMYCMLNITCVGSYNVEIIQFKRKCPHEFRSKFIMCWHKWKDP
  317. PKEWWLMWRQTYGVLACADDKKYMTYSVCMNAWTDECPSGKVWHFYWTQHEQEKIWSCGA
  318. EFRDFTIHYNLTKPFWQIDGWEPVEKAPIDPQYGEIGYDDDNIRPKLPHHLRQIPFGIMY
  319. DEVYPHREDARDQWAPPEGRNKTLMHNRKNHQAYFQCTHIKENAGWEMRRFWYELCTTEH
  320. FYHTCQMLTLSHTCYFSQCMYVEGKVPHHIDHIKFAEPIDHTRCERYAPCYCFIWALWTD
  321. GGYTFNENFIYEMSHLRYITGLLMESCITEDRLAEFCSKDPTANFAYKGHAPDHERECTA
  322. GFTYRIPVWVKHYAIFFMFQTPQQPVIISPFYYTNLKEAFGTLIISQSGYHSNHCVFCKM
  323. SMYNFNSRRWPTCLDKFNPTIEPGRDTSMGELAPVCRWMPDEWFWSLNSIASPNDVRQFL
  324. TPVQNPTEAKCGIEGCFTHNVNEKQHFCYCSCEANEYNTWATIGWYSPSLQDGFMSIDDQ
  325. GVLVGMNHAVCHVRMAYCNLWNTAKTEDYDQFEIMHPNQQGPFITQAIMTCETCNCKFQA
  326. TLDSHKFKVMGWPWKEKACIMTFYENDMAQDSCGYAEYRMEQFIPLMEMSAPQPACSVVR
  327. AVGFHSVDSVTVTRPMVMMCNSYMRPCYPLNPPTNHKREKTMDAIITIMCLDVILCYACD
  328. DQECIYMIAYGRWKQDMFMFDSMCRQYRHVGLFAGFQVYSMLYFIPVEYSEFEWENAEAP
  329. CHLASKFTMDYAIKGDQIGKNDWEHQRQYEIFAENENHMMYRLVTLMPSHKPDSDKQETG
  330. IILRNMISYLYMRLKGCHCHSDWRLIGQCTDFNAREKPCRFPVPMCMVGIETMQGDIRCT
  331. FTNTFCGRPELQCCQYIKNLCDSVSMQHSRRQKSQTACKYTLHQGYHLEDLYFNGWDHGF
  332. GHMQVYNEQWSHEEVHDASVFGSIPYVVMQSYATYTLDVPMLGWDHAFCWIQMEIAWLIG
  333. KFRGSGDRAVLDWHPHRYQRTEWIIFCYDFFKYKATIHYMEKCKWCNIFHPWKYTMIYCN
  334. MMGIMRINQKNNHESWKKAGLMMWVNSSRVYYNQGDIVFNPWNFIQVGCFMWVIGGWAKD
  335. ALQTQQVQRLCYCNYFTDISWEQLFEAAYMERAGYEYWNFTKAPQWQPSTIQTWDCQAPS
  336. TDNPIPKALHSEHHIQRYPYLVCRGLNLCATNGVDEQAISFPFMGPWHCPGHIEEIEAAA
  337. HHIWRPNMTWGANFFSKFDRAKKYKKMQYQFRCDWVWIRYQQYTYSRPKCAYGFTSDLNL
  338. ENSLKHCVRKMLMFGSNQYIRTKANTNPSKWNGTDIGYRKTHWMSENWWSKKPAWFQGQI
  339. QDSRNCAVAVGISSHRQGTVEILPCATWPATTSGQRRPMHVIEDVVGFIGQFQYSLNTHF
  340. AFVGNDEMIWHTQREHAHGWHGNEWPKEHDRPSEVKSMRCKPDTSKDLLGEFQCESRPHN
  341. PQIEKEGESEFVTIVRIPISRNPSYWHYPFGNPILKLAKVQQQDYLICMYVFTMCAFFDQ
  342. DYVWTYHRDIAIYQDANPNWPQYRLVCAPTTYQEYQRKKSKRTSCGSCSMPGEGLRNKCN
  343. WEEVGNIIIEKIDVVGHRIPVPRCNVAIRTPVHGQGMHWFESMSYLCNETDSQMTPLNIR
  344. WHAYKHPGRYGIEYTQADEQDRTNIWCLKAADNWEPQYPSGLLLKWFVTHQIVDPMLNGQ
  345. YSDNDERKKKVQYSKLVNDPQCFQYVNWWLWAVDFSKQPLQPELWDHSMDLYLEAWFAKT
  346. FCMNLTFCYIVCGLYNWCIFMQTTPQYTYMVTHDFFIKSSYDQRGENILLQHLISWKQNH
  347. MNECYESVCAPWMTWIDIIPLQREQFKHGYARANRVWWTIWEEGETFSTYSCNRVRFKYH
  348. PIVRQRAWVNTDIHGLPLVNRWVIRMVCAWENTIAGLISSFQFNSYNHNSRQPERQGAKT
  349. KADAERKMRHDYLHLEEHGWFMTGDTIEKPSKKPEAKRGCCWFWCYYVDMDPKAHDQLVC
  350. AAFCEVQDYSEWFWEIAFLPATFPKEIYRLGEWEKNSMQWRNTIDESIQYTIKPCCINDC
  351. RNGQLHMLPDFHDDMLMDDEAIWRWSLYDNRLRAFHNHGWSRHDFWHSFFGLKWQTPFSG
  352. ICFVTRYEGVITWHRQKGNQNYDVYTCEIQFDIEKHAKWEMKCLFHCCYTFIMTGFHNQI
  353. RESKITDIRWPSPKQAIPEVPCWDIYYEIMVRETAYWVHVTGDTDPTGNTAMQEDPVKET
  354. IPGDVKRSIMCTGNKCLFRISFNPPGLFMCSIVWAFGYQSYLQSDVSTRGTCTFWSFQNP
  355. WPETFMVAWGGPVLQPQFEFSDYHGDSYYTQWYYAGPWCALWCGLHYAIFLPHPKKKFMH
  356. VISRGHQGPSCRWHPIPSHYSWTMLLDEKKNEHGVMPWGIKQETGWMFYARSFRRELFTD
  357. FKCMTCCAIISDTHVSILFNWMRCLGCDQPRKLAAHHQTMPQYNSELCAGRKNKPVPQHN
  358. CLLWGHQLCGKSVHPEPPSFWRMGRPCFWAQEHIYIRNGHYTTWNPAFYTTFQFPWENQY
  359. QRMTEATPHCAQDAGLHWKAGGKRFGANALHLGWVPKLAKLSDDKTNKHMPGGIKESYTF
  360. YCTDHTNGGHTQQDSRLFDKPVLVHYLFWGVYCWEEFCICRTGGIVNVKNPKDDAQMEQD
  361. QGVAYKTHTPSKHHYYACIQSNFYYQKWYAAPCPGQITEYGSDQFCYGPEGTRYCKPIMP
  362. PNCTGFKVGVSPVNQLQCMHLTWKGTHRNHPNPRWQRNDWETRKGDCSSIITGTMKPING
  363. HAIISQWLLRMWWKGWSSIYEWEAPQPALLRENFWVVKAPCTNYRGQDYTQSFCPGCCHT
  364. HFGKSFHRRDSSMITYINVWCYIRSEACTHVTEMKFQQIWRGNLSKWECKDTKMCFTPLA
  365. HCEVGWRIRVTCDAWEAQYEQARMDKPLKHIMDMEYHCWTCCTQTAVRLQLGHMVACLNA
  366. SFTMLWRHKLETCMNCSVMAPHKAFPLCDSWTIWRNFDHHQNDQKGFVANHGERATWCVN
  367. ATQCCNESDCDRLNCRLMILNEGCCCFHRKHLLYSTFELIFCDYLNRALFVYNKKKMGFK
  368. WYALITAYPHGPRNDCPIDWYGMTGQNAIAPRSLCRSRGMDNIDLCCRHAFDNDSLQMRM
  369. HGRSSMVAYIQGPRRNGINNYEWQRDLWEIAISFISIGSCSTLLWRPHYMVSTWHFWSCE
  370. YWLRMPRGMNVYCKGHHCSYIDHFDGPREHYQRTWAYIYGHVHKGHHTAQFEYEQGTYWI
  371. QDFYMERHMSQMVTETMHAQKIVISLDVLAYNYNIWEVPFGNIQPHTWGRPKKSLDCSMG
  372. LPMDWFESVSHYEKGYKIPWWKHADMIELFGGKMALQDGMEFPPYTKETINLYRLWLYIV
  373. EYVSKYQIILSNFHDQQWNDRDDSYNRSYMSWTGWNEFSGNCCLSIIVCPKHEDPSWEPA
  374. LGRVHRLWTMYARIHHCTCWYIPANHCCNSWIIVYSQYTHKKARPHRTRTWMFSKTYKFH
  375. YSSNLFNHCLWLAEPVIGHLKSMSQGMRYEQTHRKCLEIENDIMCENEVKNEICAWKNKK
  376. YFYYQFMTMIEFLKFWWRPSCWKALHMQFVDRYGFMADHNHEMVSWQNMFSYVFAVQQDS
  377. TEWYHWSACHFHQHIAQICFRHNNDPAYEECYHAMVLMSLILICEMDVEDAHVGQKMAVV
  378. HKCFIRFCHNNSMAWHVNVTRGKKRQATAACKYNCDGENCHAMTHWKGVPLFVLCKEQHV
  379. QTSKAHHFEDRFSSMLAEDTMTNCVAMDQEQRKRDCWPMDIYFGQHDKFNMNIQGIRCDI
  380. WPNKYLTIWCGRIWHECSGWADFSRDHTTYQQEGAIFAWHDYTQYNKPDKKPDVRADVHY
  381. YPVNIDHYDMSKDIQLTQTFSYGAWTFTDMAPHKKLAVYVCVWTLYAHKTHVPLEFERYV
  382. LPQPWIEQDWVQHPESLDKLADHLLNDPRYRPRELKMMFKMDAYDGQGFALPKEIESQHE
  383. TDQLTYPVTWEENRAGVFWGLLWGNMNYFLTHEENCVIDWTCYNCDMGIMHKKIPVYYFE
  384. AYKYVTYSIPVPILNNKAHNMTDWYTYPTGCAPHHLWDHMTLGDAMHIRAPDTPMRCIYV
  385. DPVWTQWQEYQEKDRPWLPELRWANDTMQFKTRRLKLEGTIYCTEIWLNNLVIGVNIWSP
  386. EGPWMPAECRHRENYCMAPSEYMWTGQVTFMMDLCKTHPMAVDWANFKCTLSRVTDCGLK
  387. YPRYINTTWFFMGCTPTKIWMWWWKDLQFGFSNMVGYSSVWQSEMRICCIYPQMTKYNEP
  388. PQYCIQDTNPRAYRTKFTLEAYRAMLVARFYHLVIASRYGNFSEVRELVVGLYCDLVMNP
  389. YKINVNKPVHTIAFAKFVGNRQFQYKFHQATTQAEYPYAAECRAWWPHYTRAPAKTPTYE
  390. MLDEEFMHHTMHKVVEEYTPLCEKVATMPRPNSSIDWVHSCPFDRHYHSVNGTNLNCIYM
  391. CQFLFMPDKWDDLKANGMWGWWGAALEEDPHTLFDQYDGTSPPQKVGQVKQRWNSKCACY
  392. NARMRCDFIEYVTLWGEVMEFHWQCELDRYRKYDSAFETCPIDHRCGQPDGIPWEMKTAE
  393. PKMQCEYTFWMAKYLSVLHRQDRSQCMWVPQGFNQCGFGLCAMRVRQWKKNRNLYDWHFP
  394. VIVPSLRWGTRIYTVFVCRWHFSSDGKHFDVMLPAAWQQMFTPCLWYVFCYEMVRNFWWE
  395. GACYELRIWTYTKWLFPWMMSHYAHCKTLHECHNVSIWSMTGGIIAVSLRIYVWAGKALW
  396. TCRLNCLWCMRFIPTYKTHVFPGVHIRQAEAPGNSPFLINMVFPPNPCYIRLNIETVIRG
  397. QYCPFQCGPGSPQWLSDWPNNIAPLLGKRKVDEGPNDAHWADSQWYQDCHLMVSIHHHSK
  398. FPEKHVAMGRYDYWYKTPWYSSPKPGCNVFVNWAIVYPELDRNMTDMHWCLRFIKRNMKI
  399. YPHTSNTGRQIMKCGPETQVEENSQSMYTRLAAGQTDLDCSYNTACRHHLLMDNGGATDW
  400. GNQHQQLSEQTKSGQCTSRYAHPAATIDLRRWTSAIAKHFVGLNFVMTVPTCFWPRFWFC
  401. WVVDDFLDVGGEQMILYYPRFTNHSNVDEIFICLPQGTCHDKSTTNHREAMYKVAMRDHA
  402. AHWFLAFTHPMQVWDYYQWVDRMGARWNAKHSTCIVIHPMTWDSTEKFPQSVNCKYHNFK
  403. AWHGCAGIHMGISTKYRCKHFSTVYNMVWKQNRHSHPHETDQPYGCASKFETQLMNYPGK
  404. PKMPWTPFKMDPCKQFINLKIMTPVMRCEPQPPENYENRLCVRIKGYEMTWPGWAVAESK
  405. YRPFIDDPSKPFGDNFNRDPQKSREMGVCVFPCLHGVESPPWRRHPKLCMMSLIMRYRQN
  406. CESLKRSDNKYEPVETCKHWHTGQEPPYWVFYLKFVKYCKNRSIWFANLMPWAKSFWIQG
  407. QGWRHWCQYMSMCLHGASMMAMAQMWGGDNWWSHAEGQNPACTRGDDHVKFNTKHYSCYA
  408. IGCFKLRHLGDRKTTYLLPVTEPVEELPEPEMCSFPHSCNWMHNNRTTFERLVMKNHFCP
  409. GTWGHNKEWSMFHEDMTLTKVWVFNNYWMMSCLKPANAHIWQDNQMNDYSETKWPMTHTG
  410. EEEHNPKTSYQCGKGNVHPTNFHARDYCVGKKLQTEHIERENNFPPSQWVGTMQCHCYCT
  411. SIIYTKISPRVIEMSDLQRQTEIKQCASQAIKKFWSVDDKKFAVTRAKHDIFYATPGWYS
  412. WPTIGCKCVCVVSHRSHAGCMAHGCMWRMQPNIRNKCMTAFSRRESNMPNFEWKIDCRYR
  413. KAAEDMHQGCENRFYEYLQPGYSCFEVVPTCYYMDQGLMWDAEIGAWIHWKVWAMCRVHM
  414. EWDDQHNFGITPFHEAYDCPPDDHPSSEKNMNRWRCFPGAGMTFRTTWRHIWGPPYYYLG
  415. QYQWKCQVFWIKFMQYWYNNCHVIRTAIGHARREHDMLMTKIRRGWSKSVMPIRIPHPFS
  416. NYQNFMSGQVGESCIYVQVKNKLFYEGWDFWWQSNSHTKWAMENTNKSNYACVRHAMNQR
  417. FHAPYMRKTMVFENYLRVLLIHPWRVIHIQGKVQMPQTWPDNGYKCVQPQTMQHVTSLIG
  418. VPCSACNTDVIAMHPVEWKDYAGYGRFHMTIVPLPEDWGKEIWDMRVLFKQRFPIQCYTL
  419. FRNICIWTECCMDTRIAQDRDKPWHLQWLHRAYCYDWYRNANDRADFWVQIWRQGEMAHM
  420. GMYNPPLVVQADLQLPMIPAWPWNISFLTHEVHPNHRVEKIAMKTHYPDVYLRIDPLEFQ
  421. FGHYYSPSNENPDRPGMGPDVPFYIIVDYGDDLDCWVSFRFHWEVNFCYAHKAPEGMEPQ
  422. LEEPLCWCGFFQEVDEWLIGMRHSHANHTPQICLHSTYEHNGTSTMTFMHIRARHIYWLR
  423. HDFKFYPWREFGVDYWRIAMQIYQFRFHPKKGISARSKLCGVKGVCCILYHNGFCIMYYC
  424. EMCWGCTTVTDERPWCLTHKFELYAGHRNNDAHAVLPNSDQMLYMMNNIDVHYSESRNGC
  425. DFYHCTHSVTMRPNQQNMGTQCCGVLGRWESGCVNVQYSVHQCRAPQWVFSLKNRHDLPN
  426. YCMGVVACMTVTQGIGTDAMPLQVSFHKHHRFQSTQMCQIEKMVEFCRSMGNPHGHNDCH
  427. LHFWVSFRARVTAICGDAALGHGWNGMCYESKEPCHFRMNQYWCVQFKQDVQGLNCTDAP
  428. AITAQKRQQLLYVKWRPPEMFSYTYPIDIINDRIGPLPPGFGYFRRTDLKDKDMKFPFDY
  429. MFCIDQCGCCRQHMHSTSHMHCNVWAKHWDKYVGYCKDIDQQRLETMYQGADRKASRHCK
  430. FHILMHRTFGELAQFYVRGAPWWCEYDVRLFWRERMNPGFCANRELKMTWGDYNKNPYAG
  431. DEKTGHEYGNWHIQSYLQEMRFSSNCFQYKRIMSGRNRQCILIVVSALGHGDYRNCNNED
  432. YNATEKQGVWEFGPGVHTMTPYSAPQGYREFDLYSAWEIIINSMWHERSYHSSACSYYEE
  433. HSQQWGNFSAGNYCIMINEGKGHMYCYSVGGAVQANTRFHQMWGCVQNVIGHNWNQRCGM
  434. TLTSKANRLFMCSEREIVTKIMTRVWVFKPNWAFMRRMWTLVQVLETFFCGICKDFLPAS
  435. FWMFSWKLPYWPHNCWSADYHVWYPTIDDKGSDCMMTFLMPTGPGWNDHMRICALKDETR
  436. DKDLMYELDTGQRYRGLATFKWFGKCPHEKSLILSFNASGHHSMKWHPCKTGEHGYPDGN
  437. EQFQHPDMGKPVRASDDIWKRSHQHCGECRILLGDQHVNYDCQCPKIDATVKVMSIMSYI
  438. VTYNEIWVFEADSSNAWEDWDFFEMNAYQHWTEVNVVWTRFDVLAWIEFRFPYPPYGIHP
  439. MMIMTTAGAREFKYQLLSGQSARVEKMHWRYQGDSVPKTPTCDFVPRFNCEAVYRNICTH
  440. ASRPTYYIQGMNKHMHLNPHHLAYVQEDVYWTPAGYQSHDPKYLLCMACGHRAGNHGNTQ
  441. ERFAALIQQVNEVPWHNKACCMSAKPRIGTTLQTVFMNVIHCIVAWQHASAMENVSDQVA
  442. TGSLHRIMRCRIYMDKYQHNILAGHVNHPSTVGEQWWCAHFIFKVWWGFAFHEYLQQLNF
  443. NRVVLGYLTRRSLWQNMHKPFPRPEGWAHSFVWQVWRIVRMLAQLIKNVGRYIAAATTER
  444. QQGHWICEYNMALKPTSYICAILYPQALHPSYYICCFPVVKHSYYNSSCVATDMRPYELD
  445. ALMCEQVCNWKLQSMRCFDTSRQWYHFSELVLCSWRQTIDFDLWYHHLIESEYDDGVMAT
  446. SCNDVDVGLAP