1. From the uniprot database, download the corresponding protein sequences as fasta files. Perform a Smith-Waterman local alignment between the sequences using a suitable R library, and compute a p-value using a simulation approach. Discuss the resulting number of mismatches and the number of bases aligned, the optimal score, the p-value.
#First, I will download the associated FASTA files from the UniProt database as follows:
library("seqinr")

Attaching package: ‘seqinr’

The following object is masked from ‘package:Biostrings’:

    translate
choosebank("swissprot")
human <- query("PUSL1_HUMAN", "AC=Q8N0Z8")
humanseq <- getSequence(human$req[[1]])
mouse <- query("PUSL1_MOUSE", "AC=A2ADA5")
mouseseq <- getSequence(mouse$req[[1]])
closebank()
humanseq
  [1] "M" "S" "S" "A" "P" "A" "S" "G" "S" "V" "R" "A" "R" "Y" "L" "V" "Y" "F" "Q" "Y" "V" "G" "T" "D" "F" "N" "G" "V" "A" "A" "V"
 [32] "R" "G" "T" "Q" "R" "A" "V" "G" "V" "Q" "N" "Y" "L" "E" "E" "A" "A" "E" "R" "L" "N" "S" "V" "E" "P" "V" "R" "F" "T" "I" "S"
 [63] "S" "R" "T" "D" "A" "G" "V" "H" "A" "L" "S" "N" "A" "A" "H" "L" "D" "V" "Q" "R" "R" "S" "G" "R" "P" "P" "F" "P" "P" "E" "V"
 [94] "L" "A" "E" "A" "L" "N" "T" "H" "L" "R" "H" "P" "A" "I" "R" "V" "L" "R" "A" "F" "R" "V" "P" "S" "D" "F" "H" "A" "R" "H" "A"
[125] "A" "T" "S" "R" "T" "Y" "L" "Y" "R" "L" "A" "T" "G" "C" "H" "R" "R" "D" "E" "L" "P" "V" "F" "E" "R" "N" "L" "C" "W" "T" "L"
[156] "P" "A" "D" "C" "L" "D" "M" "V" "A" "M" "Q" "E" "A" "A" "Q" "H" "L" "L" "G" "T" "H" "D" "F" "S" "A" "F" "Q" "S" "A" "G" "S"
[187] "P" "V" "P" "S" "P" "V" "R" "T" "L" "R" "R" "V" "S" "V" "S" "P" "G" "Q" "A" "S" "P" "L" "V" "T" "P" "E" "E" "S" "R" "K" "L"
[218] "R" "F" "W" "N" "L" "E" "F" "E" "S" "Q" "S" "F" "L" "Y" "R" "Q" "V" "R" "R" "M" "T" "A" "V" "L" "V" "A" "V" "G" "L" "G" "A"
[249] "L" "A" "P" "A" "Q" "V" "K" "T" "I" "L" "E" "S" "Q" "D" "P" "L" "G" "K" "H" "Q" "T" "R" "V" "A" "P" "A" "H" "G" "L" "F" "L"
[280] "K" "S" "V" "L" "Y" "G" "N" "L" "G" "A" "A" "S" "C" "T" "L" "Q" "G" "P" "Q" "F" "G" "S" "H" "G"
# I will now create strings that contain the sequences downloaded above.
humanseqstring <- c2s(humanseq)
mouseseqstring <- c2s(mouseseq)
humanseqstring <- toupper(humanseqstring)
mouseseqstring <- toupper(mouseseqstring)
humanseqstring # Print out the content of "humanseqstring"
[1] "MSSAPASGSVRARYLVYFQYVGTDFNGVAAVRGTQRAVGVQNYLEEAAERLNSVEPVRFTISSRTDAGVHALSNAAHLDVQRRSGRPPFPPEVLAEALNTHLRHPAIRVLRAFRVPSDFHARHAATSRTYLYRLATGCHRRDELPVFERNLCWTLPADCLDMVAMQEAAQHLLGTHDFSAFQSAGSPVPSPVRTLRRVSVSPGQASPLVTPEESRKLRFWNLEFESQSFLYRQVRRMTAVLVAVGLGALAPAQVKTILESQDPLGKHQTRVAPAHGLFLKSVLYGNLGAASCTLQGPQFGSHG"
# I will now conduct a local alignment of the sequences as per Smith-Waterman algorithm.
#if (!requireNamespace("BiocManager", quietly = TRUE))
#  install.packages("BiocManager")
#BiocManager::install("Biostrings")
library(seqinr);
library(Biostrings);
data("BLOSUM50")
localAlignHumanMouse <- pairwiseAlignment(humanseqstring, mouseseqstring, substitutionMatrix = BLOSUM50, gapOpening = -8, gapExtension = -2, scoreOnly = FALSE, type="local")
localAlignHumanMouse # This should now print out the optimal local alignment and its score
Local PairwiseAlignmentsSingleSubject (1 of 1)
pattern: [1] MSSAPASGSVRARYLVYFQYVGTDFNGVAAVRGTQRAVGVQNYLEEAAERLNSVEPV...RRMTAVLVAVGLGALAPAQVKTILESQDPLGKHQTRVAPAHGLFLKSVLYGNLGAAS
subject: [1] MGSCGAVGSVRARYLVFLQYLGTDFNGVAAVRGNPRAVGVLNFLEEAAKRLNSVDPV...RRMTAVLVAVGLGILAPTQVKVILESQDPLGKYQARVAPARGLFLKSVLYDNFGPTS
score: 1542 
# However, I have to do the following so that it will print out in blocks that are easier to read:
    #The following function is from: Avril Coghlan "Little Book of R for Bioinformatics"
printPairwiseAlignment <- function(alignment, chunksize=60, returnlist=FALSE)
{
  require(Biostrings)
  seq1aln <- pattern(alignment)
  seq2aln <- subject(alignment)
  alnlen  <- nchar(seq1aln)
  starts  <- seq(1, alnlen, by=chunksize)
  n       <- length(starts)
  seq1alnresidues <- 0
  seq2alnresidues <- 0
  for (i in 1:n) {
    chunkseq1aln <- substring(seq1aln, starts[i], starts [i]+chunksize-1)
    chunkseq2aln <- substring(seq2aln, starts[i], starts [i]+chunksize-1)
    gaps1 <- countPattern("-",chunkseq1aln)
    gaps2 <- countPattern("-",chunkseq2aln)
    seq1alnresidues <- seq1alnresidues + chunksize - gaps1
    seq2alnresidues <- seq2alnresidues + chunksize - gaps2
    if (returnlist == 'FALSE')
    {
      print(paste(chunkseq1aln,seq1alnresidues))
      print(paste(chunkseq2aln,seq2alnresidues))
      print(paste(' '))
    }
  }
  if (returnlist == 'TRUE')
  {
    vector1 <- s2c(substring(seq1aln, 1, nchar(seq1aln)))
    vector2 <- s2c(substring(seq2aln, 1, nchar(seq2aln)))
    mylist <- list(vector1, vector2)
    return(mylist)
  }
}
printPairwiseAlignment(localAlignHumanMouse, 60)
[1] "MSSAPASGSVRARYLVYFQYVGTDFNGVAAVRGTQRAVGVQNYLEEAAERLNSVEPVRFT 60"
[1] "MGSCGAVGSVRARYLVFLQYLGTDFNGVAAVRGNPRAVGVLNFLEEAAKRLNSVDPVRFT 60"
[1] " "
[1] "ISSRTDAGVHALSNAAHLDVQRRSGRPPFPPEVLAEALNTHLRHPAIRVLRAFRVPSDFH 120"
[1] "ISSRTDAGVHALSNAAHLDIQRRPGQSPFSPEVVAKALNTHLKHPAIRVLKAFRVPNDFH 120"
[1] " "
[1] "ARHAATSRTYLYRLATGCHRRDELPVFERNLCWTLPADCLDMVAMQEAAQHLLGTHDFSA 180"
[1] "ARHAATSRTYQYRLATGCSWPNQLPVFEQNVCWALQTEYLDMAAMQEAAQHLLGTHDFSA 180"
[1] " "
[1] "FQSAGSPVPSPVRTLRRVSVSPGQASPLVTPEESRKLRFWNLEFESQSFLYRQVRRMTAV 240"
[1] "FQSAGSPVTNTVRTLRRVSVSPGPASPFVLPEGSRRLQFWTLEFESQSFLYRQVRRMTAV 240"
[1] " "
[1] "LVAVGLGALAPAQVKTILESQDPLGKHQTRVAPAHGLFLKSVLYGNLGAAS 300"
[1] "LVAVGLGILAPTQVKVILESQDPLGKYQARVAPARGLFLKSVLYDNFGPTS 300"
[1] " "
# In order to find the number of matches and mismatches:
summary(localAlignHumanMouse)
Local Single Subject Pairwise Alignments
Number of Alignments:  1

Scores:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1542    1542    1542    1542    1542    1542 

Number of matches:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    234     234     234     234     234     234 

Top 10 Mismatch Counts:
   SubjectPosition Subject Pattern Count Probability
1                2       G       S     1           1
2                4       C       A     1           1
3                5       G       P     1           1
4                7       V       S     1           1
5               17       F       Y     1           1
6               18       L       F     1           1
7               21       L       V     1           1
8               34       N       T     1           1
9               35       P       Q     1           1
10              41       L       Q     1           1
# Now I want to determine the P-value using a simulation technique and generate random null hypothesis sequences.
generateSeqsWithMultinomialModel <- function(inputsequence, X)
{require("seqinr")
  inputsequencevector <- s2c(inputsequence)
  mylength <- length(inputsequencevector)
  mytable <- table(inputsequencevector)
  letters <- rownames(mytable)
  numletters <- length(letters)
  probabilities <- numeric ()
  for (i in 1:numletters)
  {
    letter <- letters[i]
    count <- mytable [[i]]
    probabilities[i] <- count/mylength
  }
  seqs <- numeric(X)
  for (j in 1:X)
  {
    seq <- sample(letters, mylength, rep=TRUE, prob=probabilities)
    seq <- c2s(seq)
    seqs[j] <- seq
  }
  return(seqs)
  }
randomseqs <- generateSeqsWithMultinomialModel(humanseqstring,1000)
pairwiseAlignment(mouseseqstring, randomseqs[1], substitutionMatrix = "BLOSUM50", gapOpening = -8, gapExtension = -2, scoreOnly = FALSE)
Global PairwiseAlignmentsSingleSubject (1 of 1)
pattern: MGSCGAVGSVRARYLVFLQYLGTDFNGVAAVRGNPRAVGVLNFLEEAAKRLNSVDPVRF...ILAPTQVKVILESQDP---------LGKYQARVAPARG------LFLKSVLYDNFGPTS
subject: THTARAVRNASFPHCD-LKILERTINGVTL------AVPTMHLVKSVSPHMH----LGF...VSFTSGQRPTLVQSSPGWRLVAAAYVENYPQRVF-AHGNENFHRLRQHALAWDETDAEL
score: -15 
pairwiseAlignment(mouseseqstring, randomseqs[1], substitutionMatrix = "BLOSUM50", gapOpening = -8,gapExtension = -2, scoreOnly = TRUE)
[1] -15
pairwiseAlignment(mouseseqstring, humanseqstring, substitutionMatrix = "BLOSUM50", gapOpening = -8,gapExtension = -2, scoreOnly = TRUE)
[1] 1510
randomscores <- double(1000) 
for (i in 1:1000)
{
  score <- pairwiseAlignment(mouseseqstring, randomseqs[i], substitutionMatrix = "BLOSUM50",gapOpening = -8, gapExtension = -2, scoreOnly = TRUE)
  randomscores[i] <- score
}
sum(randomscores >= 1542)/1000
[1] 0

The result of this analysis is that:

Optimal Score = 1542

Matches = 234/300

Mismatches = 66/300

P-value = 0

It seems that this is a pretty good match - 78% of the sequence matched and a p-value of 0 is strong enough evidence to reject the null hypothesis.

  1. Show a dot plot of the homology between the two genes.
dotPlot(humanseq, mouseseq)

  1. Perform a BLAST search of the human protein sequence against a non-redundant database using either the web or commandline version of BLAST. a) Does the mouse ortholog from (1) show up in the set of all hits? What score (both raw score and bitscore) and E-value does it have and compare with the results from (1) (give the definitions and compare E-values and p-values in your answer). b) Show the top 10 hits and add that to your report. c) Try psi-blast. Do you get similar results? d) Describe briefly the difference between blastp and psi- blast. Note: set the same parameters for your BLAST search as you used in Q1 so the results are comparable between Q1 and Q2.
  1. Upon completing a BLAST search of PUSL1_Human, I found that the PUSL1_Mouse ortholog does not show up in my list of results.
  2. For the Top 10 results with Blast, refer to accompanying figure file #1.
  3. Upon running a PSI-blast, however, the PUSL1_Mouse ortholog does come up and is, in fact, the first hit/best match. Please refer to accompanying figure file #2.
  4. The reason for this is likely the difference between BLASTp and PSI-BLAST. BLASTp is a basic search of a protein’s sequence against a protein database to find regions of local alignment. PSI-BLAST, as the name suggests, is position-specific and conducts many iterations of the original BLASTp search in order to find even distant sequence matches by creating a multiple alignment of the highest scoring pairs to capture the conservation pattern and create a position-specific score matrix.
  1. Display the human gene in the UCSC genome browser (using the hg38 reference sequence) and save a screenshot as a pdf.

Please refer to accompanying figure files #3 and #4. (UCSC exports the screen as two separate files - one for the graphic and one for the chromosome ideogram.)

  1. Use HMMER to perform a pairwise sequence alignment of your assigned human and mouse orthologous genes. Compare with your result using BLAST.
#Now, HMMER
#install.packages("bio3d")
#install.packages("devtools")
#devtools::install_bitbucket("Grantlab/bio3d", subdir = "ver_devel/bio3d/")
library("bio3d")
library("seqinr")
library("msa")
#install.packages("XML")
#install.packages("RCurl")
#5a - phmmer pairwise alignment HUMAN
humanhmm <- hmmer(humanseqstring, type="phmmer", db="pdb")
*   Trying 193.62.193.80...
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: www.ebi.ac.uk
* Server certificate: QuoVadis EV SSL ICA G3
* Server certificate: QuoVadis Root CA 2 G3
> POST /Tools/hmmer/search/phmmer HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml
Content-Length: 324
Content-Type: application/x-www-form-urlencoded

* upload completely sent off: 324 out of 324 bytes
< HTTP/1.1 302 Found
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Sun, 03 Nov 2019 17:42:33 GMT
< Access-Control-Max-Age: 1000
< Location: https://www.ebi.ac.uk/Tools/hmmer/results/50F5FE38-FE61-11E9-B6FF-C1A9F75AEC3D/score
< Expires: Sun, 03 Nov 2019 17:42:33 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=be650e7fc99fccb1be9487fcd3d4f0be4d1af646; path=/; expires=Mon, 11-Nov-2019 17:42:33 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 68
< 
* Ignoring the response-body
* Connection #0 to host www.ebi.ac.uk left intact
* Issue another request to this URL: 'https://www.ebi.ac.uk/Tools/hmmer/results/50F5FE38-FE61-11E9-B6FF-C1A9F75AEC3D/score'
* Switch from POST to GET
* Found bundle for host www.ebi.ac.uk: 0x10debc870 [can pipeline]
* Re-using existing connection! (#0) with host www.ebi.ac.uk
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
> GET /Tools/hmmer/results/50F5FE38-FE61-11E9-B6FF-C1A9F75AEC3D/score HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml

< HTTP/1.1 200 OK
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Sun, 03 Nov 2019 17:42:34 GMT
< Access-Control-Max-Age: 1000
< Expires: Sun, 03 Nov 2019 17:42:34 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=2df7588c6313091cf449b499513f71d56b70b8e7; path=/; expires=Mon, 11-Nov-2019 17:42:34 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 14941
< 
* Connection #0 to host www.ebi.ac.uk left intact
humanhmm #Print
$hit.tbl
     name    acc                  arch archScore             archindex bias                                         desc  evalue
1  1vs3_A 1vs3_A            PF01416.20         1 95384513504956 300852  0.8                tRNA pseudouridine synthase A 3.6e-24
3  1vs3_A 1vs3_B            PF01416.20         1 95384513504956 300852  0.8                tRNA pseudouridine synthase A 3.6e-24
4  2nqp_A 2nqp_A PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
5  2nqp_A 2nr0_D PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
6  2nqp_A 2nr0_C PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
7  2nqp_A 2nqp_B PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
8  2nqp_A 1dj0_B PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
9  2nqp_A 2nqp_D PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
10 2nqp_A 2nqp_C PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
12 2nqp_A 2nre_A PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
13 2nqp_A 1dj0_A PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
14 2nqp_A 2nr0_B PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
15 2nqp_A 2nr0_A PF01416.20 PF01416.20         2  11388454935887 83333  0.1                tRNA pseudouridine synthase A 5.0e-13
19 4nz6_A 4nz6_A            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 2.2e-08
20 4nz6_A 4nz6_B            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 2.2e-08
22 4iqm_A 4iqm_A            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 2.5e-08
23 4iqm_A 4its_A            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 2.5e-08
24 4iqm_A 4j37_A            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 2.5e-08
26 4nz7_A 4nz7_A            PF01416.20         1   95384513504956 9606  0.0 tRNA pseudouridine synthase A, mitochondrial 7.2e-08
                                       extlink flags        kg ndom nincluded niseqs nregions nreported                  ph
1  https://www.ebi.ac.uk/pdbe/entry/pdb/1vs3_A     3  Bacteria    1         1     13        1         1 Deinococcus-Thermus
3  https://www.ebi.ac.uk/pdbe/entry/pdb/1vs3_A     3  Bacteria    1         1     13        1         1 Deinococcus-Thermus
4  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
5  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
6  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
7  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
8  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
9  https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
10 https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
12 https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
13 https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
14 https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
15 https://www.ebi.ac.uk/pdbe/entry/pdb/2nqp_A     3  Bacteria    1         1     13        1         1      Proteobacteria
19 https://www.ebi.ac.uk/pdbe/entry/pdb/4nz6_A     3 Eukaryota    1         1     13        1         1            Chordata
20 https://www.ebi.ac.uk/pdbe/entry/pdb/4nz6_A     3 Eukaryota    1         1     13        1         1            Chordata
22 https://www.ebi.ac.uk/pdbe/entry/pdb/4iqm_A     3 Eukaryota    1         1     13        1         1            Chordata
23 https://www.ebi.ac.uk/pdbe/entry/pdb/4iqm_A     3 Eukaryota    1         1     13        1         1            Chordata
24 https://www.ebi.ac.uk/pdbe/entry/pdb/4iqm_A     3 Eukaryota    1         1     13        1         1            Chordata
26 https://www.ebi.ac.uk/pdbe/entry/pdb/4nz7_A     3 Eukaryota    1         1     13        1         1            Chordata
      pvalue score    sindex                       species  taxid
1  -66.96666  90.2 140796028      Thermus thermophilus HB8 300852
3  -66.96666  90.2 140796028      Thermus thermophilus HB8 300852
4  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
5  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
6  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
7  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
8  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
9  -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
10 -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
12 -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
13 -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
14 -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
15 -41.30669  53.7  53684297 Escherichia coli (strain K12)  83333
19 -30.62630  38.4 225010333                  Homo sapiens   9606
20 -30.62630  38.4 225010333                  Homo sapiens   9606
22 -30.47657  38.2 225135716                  Homo sapiens   9606
23 -30.47657  38.2 225135716                  Homo sapiens   9606
24 -30.47657  38.2 225135716                  Homo sapiens   9606
26 -29.43056  36.7 225076902                  Homo sapiens   9606
                                                                 taxlink pdb.id bitscore mlog.evalue
1  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 1vs3_A     90.2    53.98111
3  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 1vs3_B     90.2    53.98111
4  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nqp_A     53.7    28.32417
5  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nr0_D     53.7    28.32417
6  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nr0_C     53.7    28.32417
7  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nqp_B     53.7    28.32417
8  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 1dj0_B     53.7    28.32417
9  http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nqp_D     53.7    28.32417
10 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nqp_C     53.7    28.32417
12 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nre_A     53.7    28.32417
13 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 1dj0_A     53.7    28.32417
14 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nr0_B     53.7    28.32417
15 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 2nr0_A     53.7    28.32417
19 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4nz6_A     38.4    17.63222
20 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4nz6_B     38.4    17.63222
22 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4iqm_A     38.2    17.50439
23 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4its_A     38.2    17.50439
24 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4j37_A     38.2    17.50439
26 http://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Info&id= 4nz7_A     36.7    16.44660

$url
[1] "http://www.ebi.ac.uk/Tools/hmmer/results/50F5FE38-FE61-11E9-B6FF-C1A9F75AEC3D"

attr(,"class")
[1] "hmmer"  "phmmer"

When I conducted my BLAST search, the matches with the lowest (and best) E-values came from humans and non-human primates. Surprisingly, however, when using HMMER, the matches with the lowest (and best) E-values come from bacteria and then humans.

#5b - phmmer pairwise alignment MOUSE
mousehmm <- hmmer(mouseseqstring, type="phmmer", db="pdb")
mousehmm #Print
  1. Search for and report any known domains in your assigned human gene against the PFAM database. Use both a) R code and b) the PFAM web interface to find these. Include a screenshot of the PFAM report page and the list of domains, if any, produced by your R code.
humanfam <- hmmer(humanseqstring, type="hmmscan", db="pfam")
*   Trying 193.62.193.80...
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: www.ebi.ac.uk
* Server certificate: QuoVadis EV SSL ICA G3
* Server certificate: QuoVadis Root CA 2 G3
> POST /Tools/hmmer/search/hmmscan HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml
Content-Length: 325
Content-Type: application/x-www-form-urlencoded

* upload completely sent off: 325 out of 325 bytes
< HTTP/1.1 302 Found
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Fri, 01 Nov 2019 21:15:22 GMT
< Access-Control-Max-Age: 1000
< Location: https://www.ebi.ac.uk/Tools/hmmer/results/B7552CE2-FCEC-11E9-A486-210BDCC3747A/score
< Expires: Fri, 01 Nov 2019 21:15:22 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=060e5cb5e372d4ca0b573bfefe88c85f1464f92a; path=/; expires=Sat, 09-Nov-2019 21:15:22 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 68
< 
* Ignoring the response-body
* Connection #0 to host www.ebi.ac.uk left intact
* Issue another request to this URL: 'https://www.ebi.ac.uk/Tools/hmmer/results/B7552CE2-FCEC-11E9-A486-210BDCC3747A/score'
* Switch from POST to GET
* Found bundle for host www.ebi.ac.uk: 0x116a37520 [can pipeline]
* Re-using existing connection! (#0) with host www.ebi.ac.uk
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
> GET /Tools/hmmer/results/B7552CE2-FCEC-11E9-A486-210BDCC3747A/score HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml

< HTTP/1.1 200 OK
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Fri, 01 Nov 2019 21:15:23 GMT
< Access-Control-Max-Age: 1000
< Expires: Fri, 01 Nov 2019 21:15:23 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=30122187991d08625edb1de48d814ecac3c36c99; path=/; expires=Sat, 09-Nov-2019 21:15:23 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 3073
< 
* Connection #0 to host www.ebi.ac.uk left intact
humanfam
$hit.tbl
             name        acc bias                        desc evalue flags hindex ndom nincluded nregions nreported    pvalue
1 PseudoU_synth_1 PF01416.20  0.1 tRNA pseudouridine synthase  3e-36     3  13691    2         2        2         2 -91.59633
  score      taxid     pdb.id bitscore mlog.evalue
1 124.2 PF01416.20 PF01416.20    124.2    81.79445

$url
[1] "http://www.ebi.ac.uk/Tools/hmmer/results/B7552CE2-FCEC-11E9-A486-210BDCC3747A"

attr(,"class")
[1] "hmmer"   "hmmscan"
  1. Please refer to accompanying figure file #5.
  1. In the attached fasta file “fly_protein_unaligned.fasta” are several examples of the protein sequence for a conserved motif found in fly from chip-seq data (note these are unaligned sequences). Build a multiple sequence alignment (MSA) and profile HMM and then search for additional examples of this motif across additional species using the profile HMM. Report the most significant human hit, giving its E-value and description (desc column).
library(msa)
setwd("~/Documents/Bioinformatics/bioinfo_genomes_project_part1")
flyprotein <- readAAStringSet("fly_protein_unaligned.fasta")
flymsa <- msa(flyprotein)
use default substitution matrix
flymsaconvert <- msaConvert(flymsa,type="bio3d::fasta")
typeof(flymsaconvert)
[1] "list"
flyfam <- hmmer(flymsaconvert, type="hmmsearch", db="swissprot")
*   Trying 193.62.193.80...
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate: www.ebi.ac.uk
* Server certificate: QuoVadis EV SSL ICA G3
* Server certificate: QuoVadis Root CA 2 G3
> POST /Tools/hmmer/search/hmmsearch HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml
Content-Length: 577
Content-Type: application/x-www-form-urlencoded

* upload completely sent off: 577 out of 577 bytes
< HTTP/1.1 302 Found
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Fri, 01 Nov 2019 21:17:21 GMT
< Access-Control-Max-Age: 1000
< Location: https://www.ebi.ac.uk/Tools/hmmer/results/FE465AAE-FCEC-11E9-8F40-DD6E53F04F9B/score
< Expires: Fri, 01 Nov 2019 21:17:21 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=e15afffa559bb3cfac36b4be7281149581811bfa; path=/; expires=Sat, 09-Nov-2019 21:17:22 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 68
< 
* Ignoring the response-body
* Connection #0 to host www.ebi.ac.uk left intact
* Issue another request to this URL: 'https://www.ebi.ac.uk/Tools/hmmer/results/FE465AAE-FCEC-11E9-8F40-DD6E53F04F9B/score'
* Switch from POST to GET
* Found bundle for host www.ebi.ac.uk: 0x11a8d7b60 [can pipeline]
* Re-using existing connection! (#0) with host www.ebi.ac.uk
* Connected to www.ebi.ac.uk (193.62.193.80) port 443 (#0)
> GET /Tools/hmmer/results/FE465AAE-FCEC-11E9-8F40-DD6E53F04F9B/score HTTP/1.1
Host: www.ebi.ac.uk
Accept:text/xml

< HTTP/1.1 200 OK
< Server: Apache/2.2.15 (Red Hat)
< Vary: Content-Type
< Cache-Control: max-age=0
< Content-Type: text/xml
< Strict-Transport-Security: max-age=0
< Date: Fri, 01 Nov 2019 21:17:22 GMT
< Access-Control-Max-Age: 1000
< Expires: Fri, 01 Nov 2019 21:17:22 GMT
< Access-Control-Allow-Origin: *
< Connection: Keep-Alive
< Set-Cookie: hmmerserver_session=a93fcaaa4ef51ff7accc62710fdfaf3fb18d48ac; path=/; expires=Sat, 09-Nov-2019 21:17:22 GMT; HttpOnly
< Access-Control-Allow-Methods: HEAD, POST, GET, OPTIONS, DELETE, PUT
< Access-Control-Allow-Headers: x-requested-with, Content-Type, origin, authorization, accept, client-security-token
< Content-Length: 1549657
< 
* Connection #0 to host www.ebi.ac.uk left intact
flyfam$hit.tbl
          name         acc   acc2
1   ZG26_XENLA  ZG26_XENLA P18715
2  ZN346_DANRE ZN346_DANRE A2RV29
3  ZMAT3_BOVIN ZMAT3_BOVIN Q0IIC4
4  ZMAT3_HUMAN ZMAT3_HUMAN Q9HA38
5  ZN346_XENLA ZN346_XENLA Q8AVN9
6    ZMAT3_RAT   ZMAT3_RAT O08781
7  ZMAT3_MOUSE ZMAT3_MOUSE O54836
8  ZMAT4_HUMAN ZMAT4_HUMAN Q9H898
9  ZMAT4_BOVIN ZMAT4_BOVIN Q0VD35
10 ZMAT4_MOUSE ZMAT4_MOUSE Q8BZ94
11 Z652B_XENLA Z652B_XENLA Q6INV8
12 Z652A_XENLA Z652A_XENLA Q6GNP2
13  ZO15_XENLA  ZO15_XENLA P18741
14 DJC21_DANRE DJC21_DANRE Q6PGY5
15 ZN593_DROME ZN593_DROME Q9W3Y0
16 Z385B_MOUSE Z385B_MOUSE Q8BXJ8
17 ZN622_CHICK ZN622_CHICK Q90Y35
18 DJC21_BOVIN DJC21_BOVIN Q0II91
19 PRDM5_HUMAN PRDM5_HUMAN Q9NQX1
20 Z385B_HUMAN Z385B_HUMAN Q569K4
21 DJC21_MOUSE DJC21_MOUSE E9Q8D0
22 DJC21_HUMAN DJC21_HUMAN Q5F1R6
23  REI1_SCHPO  REI1_SCHPO O59811
24 ZN652_HUMAN ZN652_HUMAN Q9Y2D9
25 ZN652_MOUSE ZN652_MOUSE Q5DU09
26   ZN652_RAT   ZN652_RAT A1L1J6
27 PRDM5_MOUSE PRDM5_MOUSE Q9CXE0
28  ZAT1_ARATH  ZAT1_ARATH Q39092
29 ZBT49_HUMAN ZBT49_HUMAN Q6ZSB9
30 ZN346_XENTR ZN346_XENTR B0JZ85
31 Z385B_DANRE Z385B_DANRE Q6PBT9
32 ZN593_XENTR ZN593_XENTR B0BLT0
33 SALL1_HUMAN SALL1_HUMAN Q9NSC2
34 ZN346_HUMAN ZN346_HUMAN Q9UL40
35 ZN346_PONAB ZN346_PONAB Q5R4W8
36  ZAT9_ARATH  ZAT9_ARATH Q9M202
37 REIL1_ARATH REIL1_ARATH Q8H1G5
                                                                                                                                                    arch
1                                          PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26
2                                                                                                                PF12874.7 PF12874.7 PF12874.7 PF12171.8
3                                                                                                                          PF12874.7 PF12874.7 PF12171.8
4                                                                                                                          PF12874.7 PF12874.7 PF12171.8
5                                                                                  PF12874.7 PF12874.7 PF12874.7 PF12874.7 PF12874.7 PF12874.7 PF12874.7
6                                                                                                                          PF12874.7 PF12874.7 PF12171.8
7                                                                                                                          PF12874.7 PF12874.7 PF12171.8
8                                                                                                                PF12874.7 PF12874.7 PF12171.8 PF12874.7
9                                                                                                                PF12874.7 PF12874.7 PF12171.8 PF12874.7
10                                                                                                               PF12874.7 PF12874.7 PF12171.8 PF12874.7
11                                                                                                 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
12                                                                                                 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
13                                                                                                 PF00096.26 PF00096.26 PF00096.26 PF13912.6 PF00096.26
14                                                                                                                        PF00226.31 PF12171.8 PF12756.7
15                                                                                                                                             PF12171.8
16                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
17                                                                                                                                   PF12171.8 PF12756.7
18                                                                                                                                  PF00226.31 PF12171.8
19 PF00096.26 PF12874.7 PF12874.7 PF00096.26 PF13912.6 PF12874.7 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26
20                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
21                                                                                                                                  PF00226.31 PF12171.8
22                                                                                                                                  PF00226.31 PF12171.8
23                                                                                                                                   PF12874.7 PF12756.7
24                                                                                                 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
25                                                                                                 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
26                                                                                                 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
27            PF13912.6 PF00096.26 PF12874.7 PF00096.26 PF13912.6 PF12874.7 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26 PF00096.26
28                                                                                                                         PF13912.6 PF13912.6 PF13912.6
29                                                                 PF00651.31 PF00096.26 PF00096.26 PF00096.26 PF13912.6 PF13912.6 PF00096.26 PF00096.26
30                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
31                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
32                                                                                                                                             PF12171.8
33                                                                           PF00096.26 PF00096.26 PF00096.26 PF12874.7 PF00096.26 PF00096.26 PF00096.26
34                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
35                                                                                                               PF12874.7 PF12874.7 PF12874.7 PF12874.7
36                                                                                                                         PF13912.6 PF13912.6 PF13912.6
37                                                                                                                                             PF12756.7
   archScore              archindex bias                                                     desc  evalue
1         20   164047198111537 8355 62.3        Gastrula zinc finger protein XlCGF26.1 (Fragment) 7.2e-17
2          4    50465658749017 7955  9.5                                  Zinc finger protein 346 1.4e-13
3          5   263607227696879 9913  9.1                        Zinc finger matrin-type protein 3 3.5e-12
4          5   263607227696879 9606 10.1                        Zinc finger matrin-type protein 3 4.6e-12
5         11    56408034417382 8355 27.8                                  Zinc finger protein 346 5.8e-12
6          4  263607227696879 10116  8.9                        Zinc finger matrin-type protein 3 1.4e-11
7          4  263607227696879 10090  8.9                        Zinc finger matrin-type protein 3 1.5e-11
8          5    42031258053773 9606 16.5                        Zinc finger matrin-type protein 4 2.6e-11
9          5    42031258053773 9913 17.5                        Zinc finger matrin-type protein 4 2.9e-11
10         5   42031258053773 10090 16.8                        Zinc finger matrin-type protein 4 3.0e-11
11         8   251598319793297 8355 47.7                                Zinc finger protein 652-B 5.5e-11
12         8   251598319793297 8355 47.7                                Zinc finger protein 652-A 7.6e-11
13         8   150913338124040 8355 18.8            Oocyte zinc finger protein XlCOF15 (Fragment) 9.2e-11
14         2   156943019895704 7955  9.5                       DnaJ homolog subfamily C member 21 1.2e-10
15         2   245474124509805 7227  4.2                          Zinc finger protein 593 homolog 6.1e-10
16         6   89370881801075 10090 14.4                                 Zinc finger protein 385B 2.1e-09
17         0     1918899866002 9031 16.9                                  Zinc finger protein 622 3.1e-09
18         2   121989089935254 9913  2.0                       DnaJ homolog subfamily C member 21 4.1e-09
19        19   167312706421767 9606 95.9                          PR domain zinc finger protein 5 4.6e-09
20         6    89370881801075 9606 14.2                                 Zinc finger protein 385B 8.9e-09
21         2  121989089935254 10090  3.3                       DnaJ homolog subfamily C member 21 9.5e-09
22         2   121989089935254 9606  3.3                       DnaJ homolog subfamily C member 21 9.5e-09
23         1 234726944829897 284812 34.9    Cytoplasmic 60S subunit biogenesis factor SPCC550.15c 1.2e-08
24         8   251598319793297 9606 49.8                                  Zinc finger protein 652 1.8e-08
25         8  251598319793297 10090 50.4                                  Zinc finger protein 652 1.9e-08
26         8  251598319793297 10116 50.4                                  Zinc finger protein 652 1.9e-08
27        17  223512042911582 10090 88.5                          PR domain zinc finger protein 5 2.3e-08
28         2    12583640239127 3702  9.2                                 Zinc finger protein ZAT1 2.6e-08
29        12    77231412363883 9606 29.3         Zinc finger and BTB domain-containing protein 49 7.8e-08
30         5    89370881801075 8364 16.6                                  Zinc finger protein 346 8.6e-08
31         6    89370881801075 7955 15.8                                 Zinc finger protein 385B 9.6e-08
32         2   245474124509805 8364  7.4                                  Zinc finger protein 593 1.8e-07
33        12   105200520770697 9606 50.4                                       Sal-like protein 1 1.9e-07
34         4    89370881801075 9606 17.6                                  Zinc finger protein 346 2.4e-07
35         4    89370881801075 9601 17.6                                  Zinc finger protein 346 2.7e-07
36         1    12583640239127 3702  4.6                                 Zinc finger protein ZAT9 3.0e-07
37         0   278377058606600 3702  1.3 Cytoplasmic 60S subunit biogenesis factor REI1 homolog 1 3.1e-07
                                      extlink flags        kg ndom nincluded niseqs nregions nreported           ph    pvalue
1   http://www.uniprot.org/uniprot/ZG26_XENLA     3 Eukaryota   12         4     13       12         9     Chordata -50.41222
2  http://www.uniprot.org/uniprot/ZN346_DANRE     3 Eukaryota    4         3     13        4         4     Chordata -42.84009
3  http://www.uniprot.org/uniprot/ZMAT3_BOVIN     3 Eukaryota    3         3     13        3         3     Chordata -39.62717
4  http://www.uniprot.org/uniprot/ZMAT3_HUMAN     3 Eukaryota    3         3     13        3         3     Chordata -39.33545
5  http://www.uniprot.org/uniprot/ZN346_XENLA     3 Eukaryota    7         5     13        7         7     Chordata -39.10982
6    http://www.uniprot.org/uniprot/ZMAT3_RAT     3 Eukaryota    3         3     13        3         3     Chordata -38.20018
7  http://www.uniprot.org/uniprot/ZMAT3_MOUSE     3 Eukaryota    3         3     13        3         3     Chordata -38.17388
8  http://www.uniprot.org/uniprot/ZMAT4_HUMAN     3 Eukaryota    4         3     13        4         4     Chordata -37.60570
9  http://www.uniprot.org/uniprot/ZMAT4_BOVIN     3 Eukaryota    4         3     13        4         4     Chordata -37.50176
10 http://www.uniprot.org/uniprot/ZMAT4_MOUSE     3 Eukaryota    4         3     13        4         3     Chordata -37.45136
11 http://www.uniprot.org/uniprot/Z652B_XENLA     3 Eukaryota    9         4     13        9         8     Chordata -36.85789
12 http://www.uniprot.org/uniprot/Z652A_XENLA     3 Eukaryota    9         4     13        9         8     Chordata -36.53950
13  http://www.uniprot.org/uniprot/ZO15_XENLA     3 Eukaryota    5         4     13        5         5     Chordata -36.35096
14 http://www.uniprot.org/uniprot/DJC21_DANRE     3 Eukaryota    2         2     13        2         2     Chordata -36.05331
15 http://www.uniprot.org/uniprot/ZN593_DROME     3 Eukaryota    1         1     13        1         1   Arthropoda -34.45634
16 http://www.uniprot.org/uniprot/Z385B_MOUSE     3 Eukaryota    4         3     13        4         3     Chordata -33.20573
17 http://www.uniprot.org/uniprot/ZN622_CHICK     3 Eukaryota    3         2     13        3         2     Chordata -32.82649
18 http://www.uniprot.org/uniprot/DJC21_BOVIN     3 Eukaryota    2         1     13        2         1     Chordata -32.55756
19 http://www.uniprot.org/uniprot/PRDM5_HUMAN     3 Eukaryota   16         4     13       16        10     Chordata -32.44263
20 http://www.uniprot.org/uniprot/Z385B_HUMAN     3 Eukaryota    4         3     13        4         3     Chordata -31.77554
21 http://www.uniprot.org/uniprot/DJC21_MOUSE     3 Eukaryota    2         1     13        2         1     Chordata -31.70495
22 http://www.uniprot.org/uniprot/DJC21_HUMAN     3 Eukaryota    2         1     13        2         1     Chordata -31.70495
23  http://www.uniprot.org/uniprot/REI1_SCHPO     3 Eukaryota    5         3     13        5         3   Ascomycota -31.51242
24 http://www.uniprot.org/uniprot/ZN652_HUMAN     3 Eukaryota    9         4     13        9         8     Chordata -31.09766
25 http://www.uniprot.org/uniprot/ZN652_MOUSE     3 Eukaryota    9         4     13        9         8     Chordata -31.03246
26   http://www.uniprot.org/uniprot/ZN652_RAT     3 Eukaryota    9         4     13        9         8     Chordata -31.02721
27 http://www.uniprot.org/uniprot/PRDM5_MOUSE     3 Eukaryota   15         4     13       15        10     Chordata -30.82413
28  http://www.uniprot.org/uniprot/ZAT1_ARATH     3 Eukaryota    3         3     13        3         3 Streptophyta -30.68926
29 http://www.uniprot.org/uniprot/ZBT49_HUMAN     3 Eukaryota    7         3     13        7         6     Chordata -29.60682
30 http://www.uniprot.org/uniprot/ZN346_XENTR     3 Eukaryota    4         3     13        4         4     Chordata -29.50215
31 http://www.uniprot.org/uniprot/Z385B_DANRE     3 Eukaryota    4         3     13        4         3     Chordata -29.40031
32 http://www.uniprot.org/uniprot/ZN593_XENTR     3 Eukaryota    2         1     13        2         1     Chordata -28.76750
33 http://www.uniprot.org/uniprot/SALL1_HUMAN     3 Eukaryota    9         5     13        9         5     Chordata -28.71133
34 http://www.uniprot.org/uniprot/ZN346_HUMAN     3 Eukaryota    4         2     13        4         3     Chordata -28.49192
35 http://www.uniprot.org/uniprot/ZN346_PONAB     3 Eukaryota    4         2     13        4         3     Chordata -28.35292
36  http://www.uniprot.org/uniprot/ZAT9_ARATH     3 Eukaryota    3         3     13        3         3 Streptophyta -28.24830
37 http://www.uniprot.org/uniprot/REIL1_ARATH     3 Eukaryota    4         2     13        4         3 Streptophyta -28.22801
   score    sindex                                             species  taxid                          taxlink      pdb.id
1   65.9 228164911                                      Xenopus laevis   8355 http://www.uniprot.org/taxonomy/  ZG26_XENLA
2   55.5 221608088                                         Danio rerio   7955 http://www.uniprot.org/taxonomy/ ZN346_DANRE
3   51.0 226348344                                          Bos taurus   9913 http://www.uniprot.org/taxonomy/ ZMAT3_BOVIN
4   50.6 225040474                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ ZMAT3_HUMAN
5   50.3 228170135                                      Xenopus laevis   8355 http://www.uniprot.org/taxonomy/ ZN346_XENLA
6   49.0 227029431                                   Rattus norvegicus  10116 http://www.uniprot.org/taxonomy/   ZMAT3_RAT
7   49.0 226650381                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ ZMAT3_MOUSE
8   48.2 225164649                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ ZMAT4_HUMAN
9   48.1 226317239                                          Bos taurus   9913 http://www.uniprot.org/taxonomy/ ZMAT4_BOVIN
10  48.0 226739240                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ ZMAT4_MOUSE
11  47.2 228200569                                      Xenopus laevis   8355 http://www.uniprot.org/taxonomy/ Z652B_XENLA
12  46.7 228174532                                      Xenopus laevis   8355 http://www.uniprot.org/taxonomy/ Z652A_XENLA
13  46.5 228180953                                      Xenopus laevis   8355 http://www.uniprot.org/taxonomy/  ZO15_XENLA
14  46.1 221609927                                         Danio rerio   7955 http://www.uniprot.org/taxonomy/ DJC21_DANRE
15  43.9 215811161                             Drosophila melanogaster   7227 http://www.uniprot.org/taxonomy/ ZN593_DROME
16  42.1 226701812                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ Z385B_MOUSE
17  41.6 229576006                                       Gallus gallus   9031 http://www.uniprot.org/taxonomy/ ZN622_CHICK
18  41.2 226337393                                          Bos taurus   9913 http://www.uniprot.org/taxonomy/ DJC21_BOVIN
19  41.1 225022542                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ PRDM5_HUMAN
20  40.2 225110917                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ Z385B_HUMAN
21  40.1 226680582                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ DJC21_MOUSE
22  40.1 225162171                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ DJC21_HUMAN
23  39.8 238935867 Schizosaccharomyces pombe (strain 972 / ATCC 24843) 284812 http://www.uniprot.org/taxonomy/  REI1_SCHPO
24  39.2 225106324                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ ZN652_HUMAN
25  39.1 226662227                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ ZN652_MOUSE
26  39.1 227042473                                   Rattus norvegicus  10116 http://www.uniprot.org/taxonomy/   ZN652_RAT
27  38.8 226600741                                        Mus musculus  10090 http://www.uniprot.org/taxonomy/ PRDM5_MOUSE
28  38.7 202489469                                Arabidopsis thaliana   3702 http://www.uniprot.org/taxonomy/  ZAT1_ARATH
29  37.2 225147318                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ ZBT49_HUMAN
30  37.0 228235075                                  Xenopus tropicalis   8364 http://www.uniprot.org/taxonomy/ ZN346_XENTR
31  36.9 221631392                                         Danio rerio   7955 http://www.uniprot.org/taxonomy/ Z385B_DANRE
32  36.0 228225167                                  Xenopus tropicalis   8364 http://www.uniprot.org/taxonomy/ ZN593_XENTR
33  35.9 225182929                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ SALL1_HUMAN
34  35.6 225163044                                        Homo sapiens   9606 http://www.uniprot.org/taxonomy/ ZN346_HUMAN
35  35.4 224931701                                        Pongo abelii   9601 http://www.uniprot.org/taxonomy/ ZN346_PONAB
36  35.3 202533307                                Arabidopsis thaliana   3702 http://www.uniprot.org/taxonomy/  ZAT9_ARATH
37  35.2 202497214                                Arabidopsis thaliana   3702 http://www.uniprot.org/taxonomy/ REIL1_ARATH
   bitscore mlog.evalue
1      65.9    37.16987
2      55.5    29.59713
3      51.0    26.37826
4      50.6    26.10496
5      50.3    25.87316
6      49.0    24.99196
7      49.0    24.92297
8      48.2    24.37292
9      48.1    24.26373
10     48.0    24.22982
11     47.2    23.62369
12     46.7    23.30029
13     46.5    23.10923
14     46.1    22.84353
15     43.9    21.21756
16     42.1    19.98133
17     41.6    19.59186
18     41.2    19.31228
19     41.1    19.19721
20     40.2    18.53721
21     40.1    18.47197
22     40.1    18.47197
23     39.8    18.23836
24     39.2    17.83289
25     39.1    17.77883
26     39.1    17.77883
27     38.8    17.58777
28     38.7    17.46517
29     37.2    16.36656
30     37.0    16.26892
31     36.9    16.15892
32     36.0    15.53031
33     35.9    15.47624
34     35.6    15.24263
35     35.4    15.12484
36     35.3    15.01948
37     35.2    14.98669
 [ reached 'max' / getOption("max.print") -- omitted 308 rows ]

The most significant human hit is: ZMAT3_HUMAN (Accession ID: Q9HA38), with an e-value of 4.6e-12 and description as follows: Zinc finger matrin-type protein 3.

LS0tCnRpdGxlOiAiQmlvaW5mb3JtYXRpY3MgTWlkdGVybSBQcm9qZWN0IgpzdWJ0aXRsZTogIk51cHVyIEpvc2hpIChua2oyMTkpIC0gRmFsbCAyMDE5IiAgCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCjEuIEZyb20gdGhlIHVuaXByb3QgZGF0YWJhc2UsIGRvd25sb2FkIHRoZSBjb3JyZXNwb25kaW5nIHByb3RlaW4gc2VxdWVuY2VzIGFzIGZhc3RhIGZpbGVzLiBQZXJmb3JtIGEgU21pdGgtV2F0ZXJtYW4gbG9jYWwgYWxpZ25tZW50IGJldHdlZW4gdGhlIHNlcXVlbmNlcyB1c2luZyBhIHN1aXRhYmxlIFIgbGlicmFyeSwgYW5kIGNvbXB1dGUgYSBwLXZhbHVlIHVzaW5nIGEgc2ltdWxhdGlvbiBhcHByb2FjaC4gRGlzY3VzcyB0aGUgcmVzdWx0aW5nIG51bWJlciBvZiBtaXNtYXRjaGVzIGFuZCB0aGUgbnVtYmVyIG9mIGJhc2VzIGFsaWduZWQsIHRoZSBvcHRpbWFsIHNjb3JlLCB0aGUgcC12YWx1ZS4gCgpgYGB7cn0KI0ZpcnN0LCBJIHdpbGwgZG93bmxvYWQgdGhlIGFzc29jaWF0ZWQgRkFTVEEgZmlsZXMgZnJvbSB0aGUgVW5pUHJvdCBkYXRhYmFzZSBhcyBmb2xsb3dzOgpsaWJyYXJ5KCJzZXFpbnIiKQpjaG9vc2ViYW5rKCJzd2lzc3Byb3QiKQpodW1hbiA8LSBxdWVyeSgiUFVTTDFfSFVNQU4iLCAiQUM9UThOMFo4IikKaHVtYW5zZXEgPC0gZ2V0U2VxdWVuY2UoaHVtYW4kcmVxW1sxXV0pCm1vdXNlIDwtIHF1ZXJ5KCJQVVNMMV9NT1VTRSIsICJBQz1BMkFEQTUiKQptb3VzZXNlcSA8LSBnZXRTZXF1ZW5jZShtb3VzZSRyZXFbWzFdXSkKY2xvc2ViYW5rKCkKaHVtYW5zZXEKCiMgSSB3aWxsIG5vdyBjcmVhdGUgc3RyaW5ncyB0aGF0IGNvbnRhaW4gdGhlIHNlcXVlbmNlcyBkb3dubG9hZGVkIGFib3ZlLgpodW1hbnNlcXN0cmluZyA8LSBjMnMoaHVtYW5zZXEpCm1vdXNlc2Vxc3RyaW5nIDwtIGMycyhtb3VzZXNlcSkKCmh1bWFuc2Vxc3RyaW5nIDwtIHRvdXBwZXIoaHVtYW5zZXFzdHJpbmcpCm1vdXNlc2Vxc3RyaW5nIDwtIHRvdXBwZXIobW91c2VzZXFzdHJpbmcpCmh1bWFuc2Vxc3RyaW5nICMgUHJpbnQgb3V0IHRoZSBjb250ZW50IG9mICJodW1hbnNlcXN0cmluZyIKCiMgSSB3aWxsIG5vdyBjb25kdWN0IGEgbG9jYWwgYWxpZ25tZW50IG9mIHRoZSBzZXF1ZW5jZXMgYXMgcGVyIFNtaXRoLVdhdGVybWFuIGFsZ29yaXRobS4KI2lmICghcmVxdWlyZU5hbWVzcGFjZSgiQmlvY01hbmFnZXIiLCBxdWlldGx5ID0gVFJVRSkpCiMgIGluc3RhbGwucGFja2FnZXMoIkJpb2NNYW5hZ2VyIikKI0Jpb2NNYW5hZ2VyOjppbnN0YWxsKCJCaW9zdHJpbmdzIikKCmxpYnJhcnkoc2VxaW5yKTsKbGlicmFyeShCaW9zdHJpbmdzKTsKZGF0YSgiQkxPU1VNNTAiKQpsb2NhbEFsaWduSHVtYW5Nb3VzZSA8LSBwYWlyd2lzZUFsaWdubWVudChodW1hbnNlcXN0cmluZywgbW91c2VzZXFzdHJpbmcsIHN1YnN0aXR1dGlvbk1hdHJpeCA9IEJMT1NVTTUwLCBnYXBPcGVuaW5nID0gLTgsIGdhcEV4dGVuc2lvbiA9IC0yLCBzY29yZU9ubHkgPSBGQUxTRSwgdHlwZT0ibG9jYWwiKQpsb2NhbEFsaWduSHVtYW5Nb3VzZSAjIFRoaXMgc2hvdWxkIG5vdyBwcmludCBvdXQgdGhlIG9wdGltYWwgbG9jYWwgYWxpZ25tZW50IGFuZCBpdHMgc2NvcmUKCiMgSG93ZXZlciwgSSBoYXZlIHRvIGRvIHRoZSBmb2xsb3dpbmcgc28gdGhhdCBpdCB3aWxsIHByaW50IG91dCBpbiBibG9ja3MgdGhhdCBhcmUgZWFzaWVyIHRvIHJlYWQ6CgogICAgI1RoZSBmb2xsb3dpbmcgZnVuY3Rpb24gaXMgZnJvbTogQXZyaWwgQ29naGxhbiAiTGl0dGxlIEJvb2sgb2YgUiBmb3IgQmlvaW5mb3JtYXRpY3MiCgpwcmludFBhaXJ3aXNlQWxpZ25tZW50IDwtIGZ1bmN0aW9uKGFsaWdubWVudCwgY2h1bmtzaXplPTYwLCByZXR1cm5saXN0PUZBTFNFKQp7CiAgcmVxdWlyZShCaW9zdHJpbmdzKQogIHNlcTFhbG4gPC0gcGF0dGVybihhbGlnbm1lbnQpCiAgc2VxMmFsbiA8LSBzdWJqZWN0KGFsaWdubWVudCkKICBhbG5sZW4gIDwtIG5jaGFyKHNlcTFhbG4pCiAgc3RhcnRzICA8LSBzZXEoMSwgYWxubGVuLCBieT1jaHVua3NpemUpCiAgbiAgICAgICA8LSBsZW5ndGgoc3RhcnRzKQogIHNlcTFhbG5yZXNpZHVlcyA8LSAwCiAgc2VxMmFsbnJlc2lkdWVzIDwtIDAKICBmb3IgKGkgaW4gMTpuKSB7CiAgICBjaHVua3NlcTFhbG4gPC0gc3Vic3RyaW5nKHNlcTFhbG4sIHN0YXJ0c1tpXSwgc3RhcnRzIFtpXStjaHVua3NpemUtMSkKICAgIGNodW5rc2VxMmFsbiA8LSBzdWJzdHJpbmcoc2VxMmFsbiwgc3RhcnRzW2ldLCBzdGFydHMgW2ldK2NodW5rc2l6ZS0xKQogICAgZ2FwczEgPC0gY291bnRQYXR0ZXJuKCItIixjaHVua3NlcTFhbG4pCiAgICBnYXBzMiA8LSBjb3VudFBhdHRlcm4oIi0iLGNodW5rc2VxMmFsbikKICAgIHNlcTFhbG5yZXNpZHVlcyA8LSBzZXExYWxucmVzaWR1ZXMgKyBjaHVua3NpemUgLSBnYXBzMQogICAgc2VxMmFsbnJlc2lkdWVzIDwtIHNlcTJhbG5yZXNpZHVlcyArIGNodW5rc2l6ZSAtIGdhcHMyCiAgICBpZiAocmV0dXJubGlzdCA9PSAnRkFMU0UnKQogICAgewogICAgICBwcmludChwYXN0ZShjaHVua3NlcTFhbG4sc2VxMWFsbnJlc2lkdWVzKSkKICAgICAgcHJpbnQocGFzdGUoY2h1bmtzZXEyYWxuLHNlcTJhbG5yZXNpZHVlcykpCiAgICAgIHByaW50KHBhc3RlKCcgJykpCiAgICB9CiAgfQogIGlmIChyZXR1cm5saXN0ID09ICdUUlVFJykKICB7CiAgICB2ZWN0b3IxIDwtIHMyYyhzdWJzdHJpbmcoc2VxMWFsbiwgMSwgbmNoYXIoc2VxMWFsbikpKQogICAgdmVjdG9yMiA8LSBzMmMoc3Vic3RyaW5nKHNlcTJhbG4sIDEsIG5jaGFyKHNlcTJhbG4pKSkKICAgIG15bGlzdCA8LSBsaXN0KHZlY3RvcjEsIHZlY3RvcjIpCiAgICByZXR1cm4obXlsaXN0KQogIH0KfQoKcHJpbnRQYWlyd2lzZUFsaWdubWVudChsb2NhbEFsaWduSHVtYW5Nb3VzZSwgNjApCgojIEluIG9yZGVyIHRvIGZpbmQgdGhlIG51bWJlciBvZiBtYXRjaGVzIGFuZCBtaXNtYXRjaGVzOgoKc3VtbWFyeShsb2NhbEFsaWduSHVtYW5Nb3VzZSkKCiMgTm93IEkgd2FudCB0byBkZXRlcm1pbmUgdGhlIFAtdmFsdWUgdXNpbmcgYSBzaW11bGF0aW9uIHRlY2huaXF1ZSBhbmQgZ2VuZXJhdGUgcmFuZG9tIG51bGwgaHlwb3RoZXNpcyBzZXF1ZW5jZXMuCgpnZW5lcmF0ZVNlcXNXaXRoTXVsdGlub21pYWxNb2RlbCA8LSBmdW5jdGlvbihpbnB1dHNlcXVlbmNlLCBYKQp7cmVxdWlyZSgic2VxaW5yIikKICBpbnB1dHNlcXVlbmNldmVjdG9yIDwtIHMyYyhpbnB1dHNlcXVlbmNlKQogIG15bGVuZ3RoIDwtIGxlbmd0aChpbnB1dHNlcXVlbmNldmVjdG9yKQogIG15dGFibGUgPC0gdGFibGUoaW5wdXRzZXF1ZW5jZXZlY3RvcikKICBsZXR0ZXJzIDwtIHJvd25hbWVzKG15dGFibGUpCiAgbnVtbGV0dGVycyA8LSBsZW5ndGgobGV0dGVycykKICBwcm9iYWJpbGl0aWVzIDwtIG51bWVyaWMgKCkKICBmb3IgKGkgaW4gMTpudW1sZXR0ZXJzKQogIHsKICAgIGxldHRlciA8LSBsZXR0ZXJzW2ldCiAgICBjb3VudCA8LSBteXRhYmxlIFtbaV1dCiAgICBwcm9iYWJpbGl0aWVzW2ldIDwtIGNvdW50L215bGVuZ3RoCiAgfQogIHNlcXMgPC0gbnVtZXJpYyhYKQogIGZvciAoaiBpbiAxOlgpCiAgewogICAgc2VxIDwtIHNhbXBsZShsZXR0ZXJzLCBteWxlbmd0aCwgcmVwPVRSVUUsIHByb2I9cHJvYmFiaWxpdGllcykKICAgIHNlcSA8LSBjMnMoc2VxKQogICAgc2Vxc1tqXSA8LSBzZXEKICB9CiAgcmV0dXJuKHNlcXMpCiAgfQoKcmFuZG9tc2VxcyA8LSBnZW5lcmF0ZVNlcXNXaXRoTXVsdGlub21pYWxNb2RlbChodW1hbnNlcXN0cmluZywxMDAwKQpwYWlyd2lzZUFsaWdubWVudChtb3VzZXNlcXN0cmluZywgcmFuZG9tc2Vxc1sxXSwgc3Vic3RpdHV0aW9uTWF0cml4ID0gIkJMT1NVTTUwIiwgZ2FwT3BlbmluZyA9IC04LCBnYXBFeHRlbnNpb24gPSAtMiwgc2NvcmVPbmx5ID0gRkFMU0UpCnBhaXJ3aXNlQWxpZ25tZW50KG1vdXNlc2Vxc3RyaW5nLCByYW5kb21zZXFzWzFdLCBzdWJzdGl0dXRpb25NYXRyaXggPSAiQkxPU1VNNTAiLCBnYXBPcGVuaW5nID0gLTgsZ2FwRXh0ZW5zaW9uID0gLTIsIHNjb3JlT25seSA9IFRSVUUpCnBhaXJ3aXNlQWxpZ25tZW50KG1vdXNlc2Vxc3RyaW5nLCBodW1hbnNlcXN0cmluZywgc3Vic3RpdHV0aW9uTWF0cml4ID0gIkJMT1NVTTUwIiwgZ2FwT3BlbmluZyA9IC04LGdhcEV4dGVuc2lvbiA9IC0yLCBzY29yZU9ubHkgPSBUUlVFKQpyYW5kb21zY29yZXMgPC0gZG91YmxlKDEwMDApIApmb3IgKGkgaW4gMToxMDAwKQp7CiAgc2NvcmUgPC0gcGFpcndpc2VBbGlnbm1lbnQobW91c2VzZXFzdHJpbmcsIHJhbmRvbXNlcXNbaV0sIHN1YnN0aXR1dGlvbk1hdHJpeCA9ICJCTE9TVU01MCIsZ2FwT3BlbmluZyA9IC04LCBnYXBFeHRlbnNpb24gPSAtMiwgc2NvcmVPbmx5ID0gVFJVRSkKICByYW5kb21zY29yZXNbaV0gPC0gc2NvcmUKfQpzdW0ocmFuZG9tc2NvcmVzID49IDE1NDIpLzEwMDAKYGBgCgpUaGUgcmVzdWx0IG9mIHRoaXMgYW5hbHlzaXMgaXMgdGhhdDoKCk9wdGltYWwgU2NvcmUgPSAxNTQyCgpNYXRjaGVzID0gMjM0LzMwMAoKTWlzbWF0Y2hlcyA9IDY2LzMwMAoKUC12YWx1ZSA9IDAKCkl0IHNlZW1zIHRoYXQgdGhpcyBpcyBhIHByZXR0eSBnb29kIG1hdGNoIC0gNzglIG9mIHRoZSBzZXF1ZW5jZSBtYXRjaGVkIGFuZCBhIHAtdmFsdWUgb2YgMCBpcyBzdHJvbmcgZW5vdWdoIGV2aWRlbmNlIHRvIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzLgoKMi4gU2hvdyBhIGRvdCBwbG90IG9mIHRoZSBob21vbG9neSBiZXR3ZWVuIHRoZSB0d28gZ2VuZXMuIAoKYGBge3J9CmRvdFBsb3QoaHVtYW5zZXEsIG1vdXNlc2VxKQpgYGAKCjMuIFBlcmZvcm0gYSBCTEFTVCBzZWFyY2ggb2YgdGhlIGh1bWFuIHByb3RlaW4gc2VxdWVuY2UgYWdhaW5zdCBhIG5vbi1yZWR1bmRhbnQgZGF0YWJhc2UgdXNpbmcgZWl0aGVyIHRoZSB3ZWIgb3IgY29tbWFuZGxpbmUgdmVyc2lvbiBvZiBCTEFTVC4gYSkgRG9lcyB0aGUgbW91c2Ugb3J0aG9sb2cgZnJvbSAoMSkgc2hvdyB1cCBpbiB0aGUgc2V0IG9mIGFsbCBoaXRzPyBXaGF0IHNjb3JlIChib3RoIHJhdyBzY29yZSBhbmQgYml0c2NvcmUpIGFuZCBFLXZhbHVlIGRvZXMgaXQgaGF2ZSBhbmQgY29tcGFyZSB3aXRoIHRoZSByZXN1bHRzIGZyb20gKDEpIChnaXZlIHRoZSBkZWZpbml0aW9ucyBhbmQgY29tcGFyZSBFLXZhbHVlcyBhbmQgcC12YWx1ZXMgaW4geW91ciBhbnN3ZXIpLiBiKSBTaG93IHRoZSB0b3AgMTAgaGl0cyBhbmQgYWRkIHRoYXQgdG8geW91ciByZXBvcnQuIGMpIFRyeSBwc2ktYmxhc3QuIERvIHlvdSBnZXQgc2ltaWxhciByZXN1bHRzPyBkKSBEZXNjcmliZSBicmllZmx5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYmxhc3RwIGFuZCBwc2ktIGJsYXN0LiBOb3RlOiBzZXQgdGhlIHNhbWUgcGFyYW1ldGVycyBmb3IgeW91ciBCTEFTVCBzZWFyY2ggYXMgeW91IHVzZWQgaW4gUTEgc28gdGhlIHJlc3VsdHMgYXJlIGNvbXBhcmFibGUgYmV0d2VlbiBRMSBhbmQgUTIuIAoKICBhKSBVcG9uIGNvbXBsZXRpbmcgYSBCTEFTVCBzZWFyY2ggb2YgUFVTTDFfSHVtYW4sIEkgZm91bmQgdGhhdCB0aGUgUFVTTDFfTW91c2Ugb3J0aG9sb2cgZG9lcyBub3Qgc2hvdyB1cCBpbiBteSBsaXN0IG9mIHJlc3VsdHMuCiAgYikgRm9yIHRoZSBUb3AgMTAgcmVzdWx0cyB3aXRoIEJsYXN0LCByZWZlciB0byBhY2NvbXBhbnlpbmcgZmlndXJlIGZpbGUgIzEuCiAgYykgVXBvbiBydW5uaW5nIGEgUFNJLWJsYXN0LCBob3dldmVyLCB0aGUgUFVTTDFfTW91c2Ugb3J0aG9sb2cgZG9lcyBjb21lIHVwIGFuZCBpcywgaW4gZmFjdCwgdGhlIGZpcnN0IGhpdC9iZXN0IG1hdGNoLiBQbGVhc2UgcmVmZXIgdG8gYWNjb21wYW55aW5nIGZpZ3VyZSBmaWxlICMyLgogIGQpIFRoZSByZWFzb24gZm9yIHRoaXMgaXMgbGlrZWx5IHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQkxBU1RwIGFuZCBQU0ktQkxBU1QuIEJMQVNUcCBpcyBhIGJhc2ljIHNlYXJjaCBvZiBhIHByb3RlaW7igJlzIHNlcXVlbmNlIGFnYWluc3QgYSBwcm90ZWluIGRhdGFiYXNlIHRvIGZpbmQgcmVnaW9ucyBvZiBsb2NhbCBhbGlnbm1lbnQuIFBTSS1CTEFTVCwgYXMgdGhlIG5hbWUgc3VnZ2VzdHMsIGlzIHBvc2l0aW9uLXNwZWNpZmljIGFuZCBjb25kdWN0cyBtYW55IGl0ZXJhdGlvbnMgb2YgdGhlIG9yaWdpbmFsIEJMQVNUcCBzZWFyY2ggaW4gb3JkZXIgdG8gZmluZCBldmVuIGRpc3RhbnQgc2VxdWVuY2UgbWF0Y2hlcyBieSBjcmVhdGluZyBhIG11bHRpcGxlIGFsaWdubWVudCBvZiB0aGUgaGlnaGVzdCBzY29yaW5nIHBhaXJzIHRvIGNhcHR1cmUgdGhlIGNvbnNlcnZhdGlvbiBwYXR0ZXJuIGFuZCBjcmVhdGUgYSBwb3NpdGlvbi1zcGVjaWZpYyBzY29yZSBtYXRyaXguCgo0LiBEaXNwbGF5IHRoZSBodW1hbiBnZW5lIGluIHRoZSBVQ1NDIGdlbm9tZSBicm93c2VyICh1c2luZyB0aGUgaGczOCByZWZlcmVuY2Ugc2VxdWVuY2UpIGFuZCBzYXZlIGEgc2NyZWVuc2hvdCBhcyBhIHBkZi4KClBsZWFzZSByZWZlciB0byBhY2NvbXBhbnlpbmcgZmlndXJlIGZpbGVzICMzIGFuZCAjNC4gKFVDU0MgZXhwb3J0cyB0aGUgc2NyZWVuIGFzIHR3byBzZXBhcmF0ZSBmaWxlcyAtIG9uZSBmb3IgdGhlIGdyYXBoaWMgYW5kIG9uZSBmb3IgdGhlIGNocm9tb3NvbWUgaWRlb2dyYW0uKQoKNS4gVXNlIEhNTUVSIHRvIHBlcmZvcm0gYSBwYWlyd2lzZSBzZXF1ZW5jZSBhbGlnbm1lbnQgb2YgeW91ciBhc3NpZ25lZCBodW1hbiBhbmQgbW91c2Ugb3J0aG9sb2dvdXMgZ2VuZXMuIENvbXBhcmUgd2l0aCB5b3VyIHJlc3VsdCB1c2luZyBCTEFTVC4KCmBgYHtyfQojTm93LCBITU1FUgojaW5zdGFsbC5wYWNrYWdlcygiYmlvM2QiKQojaW5zdGFsbC5wYWNrYWdlcygiZGV2dG9vbHMiKQojZGV2dG9vbHM6Omluc3RhbGxfYml0YnVja2V0KCJHcmFudGxhYi9iaW8zZCIsIHN1YmRpciA9ICJ2ZXJfZGV2ZWwvYmlvM2QvIikKCmxpYnJhcnkoImJpbzNkIikKbGlicmFyeSgic2VxaW5yIikKbGlicmFyeSgibXNhIikKCiNpbnN0YWxsLnBhY2thZ2VzKCJYTUwiKQojaW5zdGFsbC5wYWNrYWdlcygiUkN1cmwiKQoKIzVhIC0gcGhtbWVyIHBhaXJ3aXNlIGFsaWdubWVudCBIVU1BTgpodW1hbmhtbSA8LSBobW1lcihodW1hbnNlcXN0cmluZywgdHlwZT0icGhtbWVyIiwgZGI9InBkYiIpCmh1bWFuaG1tICNQcmludAoKYGBgCgpXaGVuIEkgY29uZHVjdGVkIG15IEJMQVNUIHNlYXJjaCwgdGhlIG1hdGNoZXMgd2l0aCB0aGUgbG93ZXN0IChhbmQgYmVzdCkgRS12YWx1ZXMgY2FtZSBmcm9tIGh1bWFucyBhbmQgbm9uLWh1bWFuIHByaW1hdGVzLiBTdXJwcmlzaW5nbHksIGhvd2V2ZXIsIHdoZW4gdXNpbmcgSE1NRVIsIHRoZSBtYXRjaGVzIHdpdGggdGhlIGxvd2VzdCAoYW5kIGJlc3QpIEUtdmFsdWVzIGNvbWUgZnJvbSBiYWN0ZXJpYSBhbmQgdGhlbiBodW1hbnMuCgpgYGB7cn0KIzViIC0gcGhtbWVyIHBhaXJ3aXNlIGFsaWdubWVudCBNT1VTRQptb3VzZWhtbSA8LSBobW1lcihtb3VzZXNlcXN0cmluZywgdHlwZT0icGhtbWVyIiwgZGI9InBkYiIpCm1vdXNlaG1tICNQcmludApgYGAKCjYuIFNlYXJjaCBmb3IgYW5kIHJlcG9ydCBhbnkga25vd24gZG9tYWlucyBpbiB5b3VyIGFzc2lnbmVkIGh1bWFuIGdlbmUgYWdhaW5zdCB0aGUgUEZBTSBkYXRhYmFzZS4gVXNlIGJvdGggYSkgUiBjb2RlIGFuZCBiKSB0aGUgUEZBTSB3ZWIgaW50ZXJmYWNlIHRvIGZpbmQgdGhlc2UuIEluY2x1ZGUgYSBzY3JlZW5zaG90IG9mIHRoZSBQRkFNIHJlcG9ydCBwYWdlIGFuZCB0aGUgbGlzdCBvZiBkb21haW5zLCBpZiBhbnksIHByb2R1Y2VkIGJ5IHlvdXIgUiBjb2RlLiAKICBhKSAKICAKYGBge3J9Cmh1bWFuZmFtIDwtIGhtbWVyKGh1bWFuc2Vxc3RyaW5nLCB0eXBlPSJobW1zY2FuIiwgZGI9InBmYW0iKQpodW1hbmZhbQpgYGAKICBiKSBQbGVhc2UgcmVmZXIgdG8gYWNjb21wYW55aW5nIGZpZ3VyZSBmaWxlICM1LiAKCjcuIEluIHRoZSBhdHRhY2hlZCBmYXN0YSBmaWxlICJmbHlfcHJvdGVpbl91bmFsaWduZWQuZmFzdGEiIGFyZSBzZXZlcmFsIGV4YW1wbGVzIG9mIHRoZSBwcm90ZWluIHNlcXVlbmNlIGZvciBhIGNvbnNlcnZlZCBtb3RpZiBmb3VuZCBpbiBmbHkgZnJvbSBjaGlwLXNlcSBkYXRhIChub3RlIHRoZXNlIGFyZSB1bmFsaWduZWQgc2VxdWVuY2VzKS4gQnVpbGQgYSBtdWx0aXBsZSBzZXF1ZW5jZSBhbGlnbm1lbnQgKE1TQSkgYW5kIHByb2ZpbGUgSE1NIGFuZCB0aGVuIHNlYXJjaCBmb3IgYWRkaXRpb25hbCBleGFtcGxlcyBvZiB0aGlzIG1vdGlmIGFjcm9zcyBhZGRpdGlvbmFsIHNwZWNpZXMgdXNpbmcgdGhlIHByb2ZpbGUgSE1NLiBSZXBvcnQgdGhlIG1vc3Qgc2lnbmlmaWNhbnQgaHVtYW4gaGl0LCBnaXZpbmcgaXRzIEUtdmFsdWUgYW5kIGRlc2NyaXB0aW9uIChkZXNjIGNvbHVtbikuCgpgYGB7cn0KbGlicmFyeShtc2EpCnNldHdkKCJ+L0RvY3VtZW50cy9CaW9pbmZvcm1hdGljcy9iaW9pbmZvX2dlbm9tZXNfcHJvamVjdF9wYXJ0MSIpCmZseXByb3RlaW4gPC0gcmVhZEFBU3RyaW5nU2V0KCJmbHlfcHJvdGVpbl91bmFsaWduZWQuZmFzdGEiKQpmbHltc2EgPC0gbXNhKGZseXByb3RlaW4pCmZseW1zYWNvbnZlcnQgPC0gbXNhQ29udmVydChmbHltc2EsdHlwZT0iYmlvM2Q6OmZhc3RhIikKdHlwZW9mKGZseW1zYWNvbnZlcnQpCmZseWZhbSA8LSBobW1lcihmbHltc2Fjb252ZXJ0LCB0eXBlPSJobW1zZWFyY2giLCBkYj0ic3dpc3Nwcm90IikKZmx5ZmFtJGhpdC50YmwKYGBgCgpUaGUgbW9zdCBzaWduaWZpY2FudCBodW1hbiBoaXQgaXM6IFpNQVQzX0hVTUFOIChBY2Nlc3Npb24gSUQ6IFE5SEEzOCksIHdpdGggYW4gZS12YWx1ZSBvZiA0LjZlLTEyIGFuZCBkZXNjcmlwdGlvbiBhcyBmb2xsb3dzOiBaaW5jIGZpbmdlciBtYXRyaW4tdHlwZSBwcm90ZWluIDMuCg==