Skip to content

Commit

Permalink
Update handling of duplicates
Browse files Browse the repository at this point in the history
  • Loading branch information
mooreryan committed May 16, 2017
1 parent 4cb98fe commit b9330ed
Show file tree
Hide file tree
Showing 6 changed files with 77 additions and 40 deletions.
1 change: 1 addition & 0 deletions src/aln.c
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
#include <pthread.h>
#include <stdio.h>
#include <string.h>
#include <sys/wait.h>
#include <unistd.h>

#include "aln.h"
Expand Down
78 changes: 53 additions & 25 deletions src/pasv.c
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ get_aln_posns(char* aln_outfile,
PANIC_IF(first_ref_seq_found > 1,
STD_ERR,
stderr,
"Found more than one key ref seq (%s) in file '%s'\n",
"Found more than one key ref seq '%s' in file '%s'\n",
seq->name.s,
aln_outfile);

Expand All @@ -123,11 +123,11 @@ get_aln_posns(char* aln_outfile,
if (tmp_rseq->query_seq == 1) {
++query_seq_found;

PANIC_IF((query_seq_found > 1 && first_ref_seq_found == 0) ||
(query_seq_found > 2 && first_ref_seq_found == 1),
/* with the naming scheme there should only be one */
PANIC_IF(query_seq_found > 1,
STD_ERR,
stderr,
"Found more than one query seq (%s) in file '%s'\n",
"Found more than one pseudo query seq '%s' in file '%s'\n",
seq->name.s,
aln_outfile);

Expand Down Expand Up @@ -213,6 +213,7 @@ get_aln_posns(char* aln_outfile,
int
main(int argc, char *argv[])
{
int ret_code = 0;
tommy_hashlin* header2rseq = NULL;
tommy_hashlin* type2fs = NULL;
t2fs_t* t2fs = NULL;
Expand All @@ -232,11 +233,11 @@ main(int argc, char *argv[])
char* query_fname = NULL;

static char version_banner[] =
" Version: 0.0.4\n"
" Version: 0.0.5\n"
" Copyright: 2017 Ryan Moore\n"
" Contact: [email protected]\n"
" Website: https://github.com/mooreryan/pasv\n"
" License: GPLv3\n";
" Contact: [email protected]\n"
" Website: https://github.com/mooreryan/pasv\n"
" License: GPLv3\n";

static char intro[] =
"Trust the Process. Trust the PASV PVCpipe.";
Expand Down Expand Up @@ -265,7 +266,7 @@ main(int argc, char *argv[])
/* TODO base this on actual doc str len */
char doc_str[10000];
snprintf(doc_str,
9999,
10000,
"\n\n%s\n\n%s\n\nusage: %s %s\n\noptions:\n\n%s\n\n",
intro,
version_banner,
Expand Down Expand Up @@ -486,22 +487,42 @@ main(int argc, char *argv[])
while ((l = kseq_read(ref_seq)) >= 0) {

tmp_rseq = rseq_init(ref_seq);

PANIC_IF(tmp_rseq == NULL,
STD_ERR,
stderr,
"Couldn't make rseq");

/* one for the null and 6 for the ref___ */
int new_header_size = tmp_rseq->head_len + 1 + 6;
char* new_header = malloc(sizeof *new_header * new_header_size);
PANIC_MEM(new_header, stderr);
snprintf(new_header,
new_header_size,
"ref___%s",
tmp_rseq->head);

free(tmp_rseq->head);
tmp_rseq->head = new_header;
tmp_rseq->head_len = new_header_size - 1;

if (seq_number++ == 0) { /* this is the first seq */
tmp_rseq->first_ref_seq = 1;
} else {
tmp_rseq->first_ref_seq = 0;
}
tmp_rseq->query_seq = 0;

rseq_try_insert_hashlin(tmp_rseq, header2rseq);
tmp_rseq->ref_seq = 1;

tommy_array_insert(ref_seqs, tmp_rseq);
ret_code = rseq_try_insert_hashlin(tmp_rseq, header2rseq);
if (ret_code == 1) {
tommy_array_insert(ref_seqs, tmp_rseq);
} else if (ret_code == 0) {
rseq_destroy(tmp_rseq);
} else {
PANIC_IF(1,
STD_ERR,
stderr,
"Something weird happened...");
}
}

while ((l = kseq_read(query_seq)) >= 0) {
Expand All @@ -511,12 +532,19 @@ main(int argc, char *argv[])
stderr,
"Couldn't make rseq");

tmp_rseq->first_ref_seq = 0;
tmp_rseq->query_seq = 1;

rseq_try_insert_hashlin(tmp_rseq, header2rseq);

tommy_array_insert(query_seqs, tmp_rseq);
ret_code = rseq_try_insert_hashlin(tmp_rseq, header2rseq);
if (ret_code == 1) {
tommy_array_insert(query_seqs, tmp_rseq);
} else if (ret_code == 0) {
rseq_destroy(tmp_rseq);
} else {
PANIC_IF(1,
STD_ERR,
stderr,
"Something weird happened...");
}
}

for (i = 0; i < num_threads; ++i) {
Expand Down Expand Up @@ -586,7 +614,7 @@ main(int argc, char *argv[])

char outfname[1000];
snprintf(outfname,
999,
1000,
"%s/%s.type_info.txt",
opt_tmp_dir,
opt_out_base);
Expand Down Expand Up @@ -621,22 +649,22 @@ main(int argc, char *argv[])

switch(rseq->spans_region) {
case -1:
snprintf(spans, 9, "NA");
snprintf(spans, 10, "NA");
break;
case 0:
snprintf(spans, 9, "No");
snprintf(spans, 10, "No");
break;
case 1:
snprintf(spans, 9, "Yes");
snprintf(spans, 10, "Yes");
break;
default:
assert(0);
}

if (rseq->spans_region == -1) {
snprintf(type, 19, "%s", rseq->key_chars);
snprintf(type, 20, "%s", rseq->key_chars);
} else {
snprintf(type, 19, "%s_%s", rseq->key_chars, spans);
snprintf(type, 20, "%s_%s", rseq->key_chars, spans);
}

/* check if type has a fs */
Expand All @@ -651,7 +679,7 @@ main(int argc, char *argv[])
char fname[1000];
/* TODO validate */
snprintf(fname,
999,
1000,
"%s/%s.type.%s.fa",
opt_tmp_dir,
opt_out_base,
Expand Down
21 changes: 7 additions & 14 deletions src/rseq.c
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ rseq_init(kseq_t* kseq)
rseq->type = NULL;
rseq->spans_region = 0;
rseq->first_ref_seq = 0;
rseq->ref_seq = 0;
rseq->query_seq = 0;

return rseq;
Expand Down Expand Up @@ -150,7 +151,8 @@ rseq_hash_head(rseq_t* rseq)
return tommy_strhash_u32(0, rseq->head);
}

void
/* Returns 0 if the seq was NOT added, and 1 if it WAS added */
int
rseq_try_insert_hashlin(rseq_t* rseq, tommy_hashlin* hash)
{
rseq_t* tmp = NULL;
Expand All @@ -172,23 +174,14 @@ rseq_try_insert_hashlin(rseq_t* rseq, tommy_hashlin* hash)
"represents are not equal.",
rseq->head);

/* Sometimes a seq can be repeated in both the ref and query
files. In this case it's possible that it could be the first
ref seq AND a query seq. */
/* Now, check if the first_ref_seq and query_seq flags match. If
not, the rseq flag will be added to the tmp seq's flag */
if (rseq->first_ref_seq == 1 && tmp->first_ref_seq == 0) {
tmp->first_ref_seq = 1; /* set it to match the incoming rseq */
}

if (rseq->query_seq == 1 && tmp->query_seq == 0) {
tmp->query_seq = 1;
}

/* TODO validate the flags */
return 0;
} else {
tommy_hashlin_insert(hash,
&rseq->node,
rseq,
hashed_head);

return 1;
}
}
3 changes: 2 additions & 1 deletion src/rseq.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ typedef struct rseq_t {
int seq_len;
int spans_region;
int first_ref_seq;
int ref_seq;
int query_seq;

} rseq_t;
Expand Down Expand Up @@ -53,7 +54,7 @@ rseq_compare(const void* arg, const void* rseq);
tommy_uint32_t
rseq_hash_head(rseq_t* rseq);

void
int
rseq_try_insert_hashlin(rseq_t* rseq, tommy_hashlin* hash);


Expand Down
6 changes: 6 additions & 0 deletions test_files/queries.fa
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,9 @@ MVQIPQNPLILVDGSSYLYRAYHAFPPLTNSAGEPTGAMYGVLNMLRSLIMQYKPTHAAVVFDAKGKTFRDELFEHYKSH
MLYPWENMYASDIETTGLLEQMRKQAAPRLHNIGYIDVLTREETVIEWTDRKSIQAFLDTGPTLIMHNGATFDFEALRFLGYDVSKCTLIDTLFISWYLQPRRVKHGLEGYGEEFGVPKPVIEDWENQTQEEYNHRVMEDCKIQLKLWEQQYIQLLKIYKSPSEVKRFVEYLMTKARQQVIQQRTRWKLNIEKALAFKAKLEPMIKEKTDALEASMPRIPEYVIKTRPAKCHKMNGQLSATGIKWKAVCDANGLDWKDPDLAIKVLKGYKEPNAGSHVQIKDWLFSLGWEPETFKFDRNKETGETRQIPQITVKDEDGNPEICPSLHKLAERNPESGIQHLIGMGVYKHRLSVVNGFLRDVDEDGYLTARCGGLTNTLRLKHRELVNLPSIRVFGGEELRSMLEAWREDYEQLGSDLCSLEDRCKHHFQWMYDPEYVKKQLAPDYDAHLAIGVIGGFITEQESQDHKDGIKKCKQRPMFKTTNYACQYGAGVPTVARSAGCDQTTAARLHKAYWDLNWSIKEIAANTKVITVDGQMWQQNPVNKFWYSLRTEKDRFSTLCQGTGAYVFDIWCNNIIAICNERWGCDPLLSGQFHDELILQVKKGFRDLWTDLLNEAMDRTNKELKLNRDCACDVQFGDNYAEIH
>1 query
MIVSDIEANALLESVTKFHCGVIYDYSTAEYVSYRPSDFGAYLDALEAEVARGGLIVFHNGHKYDVPALTKLAKLQLNREFHLPRENCIDTLVLSRLIHSNLKDTDMGLLRSGKLPGKRFGSHALEAWGYRLGEMKGEYKDDFKRMLEEQGEEYVDGMEWWNFNEEMMDYNVQDVVVTKALLEKLLSDKHYFPPEIDFTDVGYTTFWSESLEAVDIEHRAAWLLAKQERNGFPFDTKAIEELYVELAARRSELLRKLTETFGSWYQPKGGTEMFCHPRTGKPLPKYPRIKTPKVGGIFKKPKNKAQREGREPCELDTREYVAGAPYTPVEHVVFNPSSRDHIQKKLQEAGWVPTKYTDKGAPVVDDEVLEGVRVDDPEKQAAIDLIKEYLMIQKRIGQSAEGDKAWLRYVAEDGKIHGSVNPNGAVTGRATHAFPNLAQIPGVRSPYGEQCRAAFGAEHHLDGITGKPWVQAGIDASGLELRCLAHFMARFDNGEYAHEILNGDIHTKNQIAAELPTRDNAKTFIYGFLYGAGDEKIGQIVGAGKERGKELKKKFLENTPAIAALRESIQQTLVESSQWVAGEQQVKWKRRWIKGLDGRKVHVRSPHAALNTLLQSAGALICKLWIIKTEEMLVEKGLKHGWDGDFAYMAWVHDEIQVGCRTEEIAQVVIETAQEAMRWVGDHWNFRCLLDTEGKMGPNWAICH
>2 query
MSNNRPLLLLIDGHALAYRAFHALAEAGLRSSTGEPTYAVFGFTSAMLNAIEEYHPDYAAVAFDVGKTFRDDLYAEYKANRAETPAEFEQQLERIKQVLAAFDIPIYTADGYEADDVIGTLARQATERGVDVLILTGDTDTLQLVDEHVTVLLNNPYVRGSKNTTRYGVADVCARYKGLRPDQLADLRGLKGDPSDNIPGVKGIGEAGAIALLNQFGSIENLYDHLDEAPKRYQKHLEGQRDAALFSKKLATIVRDAPVTLDLPAATLADYDRSRVIAVFQELEFGASLVRRLPPSQTIAAPQALPPVEPPAPLQVDMFAPATPGPDDGPQQLTLFNDMPTPVAPVVEPPAHDAPGEYRAACNDADLEAIVTELKHASLFAFDTETRGTNPLRDDLVGIALATIPGSGWYVPLGHTTGEAQLPRERVIAALRPFFADPARSRIAHNAKFDIEVLERAGIPVAGVAFDTMLAAALLDKRRNLKDLAFYELNLAAPLESIEALIGKGKNQVTFADVPIARATPYAAADADMTLRLKPALEAKLRAAGSVADVFYRLEMPLVPVLVRMEQAGILLDVPYMRALGERMGRELEQIEQQIYAIAGQTFNINSGDQLSEVLFGPKINLPTTGLDRTRTGRYSLTAQALEELQASDTTGIIELILRHRRLSKLKSTYVDELPALVNPETGRVHTDYNQLGAATGRLSSNSPNLQNIPTRTEEGREVRRGFIAAPGHLLIAADYSQIELRVLAHMTGDPNLIQTFIEGRDIHAATAARLFGVGFSAVDKNQRRIAKTVVFGVIYGISPFGLAQRLGISREQARGLIDSLFDQFPRIRDYIDRTLDIGRSEGYVQSLFGRRRPMFDLRVSGPRRQAAEREAINHPIQSTAADIMKLAMIAVDAELQRRQMRTRMLLQVHDELIFEAPEAEVDDVVALVRERMEGVLHGMEPPFAVPLRVEIETGPNWEELTPAG
>1_e_coli ref
MVQIPQNPLILVDGSSYLYRAYHAFPPLTNSAGEPTGAMYGVLNMLRSLIMQYKPTHAAVVFDAKGKTFRDELFEHYKSHRPPMPDDLRAQIEPLHAMVKAMGLPLLAVSGVEADDVIGTLAREAEKAGRPVLISTGDKDMAQLVTPNITLINTMTNTILGPEEVVNKYGVPPELIIDFLALMGDSSDNIPGVPGVGEKTAQALLQGLGGLDTLYAEPEKIAGLSFRGAKTMAAKLEQNKEVAYLSYQLATIKTDVELELTCEQLEVQPPAAEELLGLFKKYEFKRWTADVEAGKWLQAKGVKPAARPQETSVADEAPEVTATVISYDNYVTILDEETLKEWIAKLEKAPVFAFDTETDSLDNISANLVGLSFAIEPGVAAYIPVAHDYLDAPDQISRERALELLKPLLEDEKALKVGQNLKYDRGILANYGIELRGIAFDTMLESYILNSVAGRHDMDSLAERWLKHKTITFEEIAGKGKNQLTFNQIALEEAGRYAAEDADVTLQLHLKMWPDLQKHKGPLNVFENIEMPLVPVLSRIERNGVKIDPKVLHNHSEELTLRLAELEKKAHEIAGEEFNLSSTKQLQTILFEKQGIKPLKKTPGGAPSTSEEVLEELALDYPLPKVILEYRGLAKLKSTYTDKLPLMINPKTGRVHTSYHQAVTATGRLSSTDPNLQNIPVRNEEGRRIRQAFIAPEDYVIVSADYSQIELRIMAHLSRDKGLLTAFAEGKDIHRATAAEVFGLPLETVTSEQRRSAKAINFGLIYGMSAFGLARQLNIPRKEAQKYMDLYFERYPGVLEYMERTRAQAKEQGYVETLDGRRLYLPDIKSSNGARRAAAERAAINAPMQGTAADIIKRAMIAVDAWLQAEQPRVRMIMQVHDELVFEVHKDDVDAVAKQIHQLMENCTRLDVPLLVEVGSGENWDQAH
>2_phage ref
MLYPWENMYASDIETTGLLEQMRKQAAPRLHNIGYIDVLTREETVIEWTDRKSIQAFLDTGPTLIMHNGATFDFEALRFLGYDVSKCTLIDTLFISWYLQPRRVKHGLEGYGEEFGVPKPVIEDWENQTQEEYNHRVMEDCKIQLKLWEQQYIQLLKIYKSPSEVKRFVEYLMTKARQQVIQQRTRWKLNIEKALAFKAKLEPMIKEKTDALEASMPRIPEYVIKTRPAKCHKMNGQLSATGIKWKAVCDANGLDWKDPDLAIKVLKGYKEPNAGSHVQIKDWLFSLGWEPETFKFDRNKETGETRQIPQITVKDEDGNPEICPSLHKLAERNPESGIQHLIGMGVYKHRLSVVNGFLRDVDEDGYLTARCGGLTNTLRLKHRELVNLPSIRVFGGEELRSMLEAWREDYEQLGSDLCSLEDRCKHHFQWMYDPEYVKKQLAPDYDAHLAIGVIGGFITEQESQDHKDGIKKCKQRPMFKTTNYACQYGAGVPTVARSAGCDQTTAARLHKAYWDLNWSIKEIAANTKVITVDGQMWQQNPVNKFWYSLRTEKDRFSTLCQGTGAYVFDIWCNNIIAICNERWGCDPLLSGQFHDELILQVKKGFRDLWTDLLNEAMDRTNKELKLNRDCACDVQFGDNYAEIH
8 changes: 8 additions & 0 deletions test_files/refs.fa
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,15 @@
MVQIPQNPLILVDGSSYLYRAYHAFPPLTNSAGEPTGAMYGVLNMLRSLIMQYKPTHAAVVFDAKGKTFRDELFEHYKSHRPPMPDDLRAQIEPLHAMVKAMGLPLLAVSGVEADDVIGTLAREAEKAGRPVLISTGDKDMAQLVTPNITLINTMTNTILGPEEVVNKYGVPPELIIDFLALMGDSSDNIPGVPGVGEKTAQALLQGLGGLDTLYAEPEKIAGLSFRGAKTMAAKLEQNKEVAYLSYQLATIKTDVELELTCEQLEVQPPAAEELLGLFKKYEFKRWTADVEAGKWLQAKGVKPAARPQETSVADEAPEVTATVISYDNYVTILDEETLKEWIAKLEKAPVFAFDTETDSLDNISANLVGLSFAIEPGVAAYIPVAHDYLDAPDQISRERALELLKPLLEDEKALKVGQNLKYDRGILANYGIELRGIAFDTMLESYILNSVAGRHDMDSLAERWLKHKTITFEEIAGKGKNQLTFNQIALEEAGRYAAEDADVTLQLHLKMWPDLQKHKGPLNVFENIEMPLVPVLSRIERNGVKIDPKVLHNHSEELTLRLAELEKKAHEIAGEEFNLSSTKQLQTILFEKQGIKPLKKTPGGAPSTSEEVLEELALDYPLPKVILEYRGLAKLKSTYTDKLPLMINPKTGRVHTSYHQAVTATGRLSSTDPNLQNIPVRNEEGRRIRQAFIAPEDYVIVSADYSQIELRIMAHLSRDKGLLTAFAEGKDIHRATAAEVFGLPLETVTSEQRRSAKAINFGLIYGMSAFGLARQLNIPRKEAQKYMDLYFERYPGVLEYMERTRAQAKEQGYVETLDGRRLYLPDIKSSNGARRAAAERAAINAPMQGTAADIIKRAMIAVDAWLQAEQPRVRMIMQVHDELVFEVHKDDVDAVAKQIHQLMENCTRLDVPLLVEVGSGENWDQAH
>2_phage ref
MLYPWENMYASDIETTGLLEQMRKQAAPRLHNIGYIDVLTREETVIEWTDRKSIQAFLDTGPTLIMHNGATFDFEALRFLGYDVSKCTLIDTLFISWYLQPRRVKHGLEGYGEEFGVPKPVIEDWENQTQEEYNHRVMEDCKIQLKLWEQQYIQLLKIYKSPSEVKRFVEYLMTKARQQVIQQRTRWKLNIEKALAFKAKLEPMIKEKTDALEASMPRIPEYVIKTRPAKCHKMNGQLSATGIKWKAVCDANGLDWKDPDLAIKVLKGYKEPNAGSHVQIKDWLFSLGWEPETFKFDRNKETGETRQIPQITVKDEDGNPEICPSLHKLAERNPESGIQHLIGMGVYKHRLSVVNGFLRDVDEDGYLTARCGGLTNTLRLKHRELVNLPSIRVFGGEELRSMLEAWREDYEQLGSDLCSLEDRCKHHFQWMYDPEYVKKQLAPDYDAHLAIGVIGGFITEQESQDHKDGIKKCKQRPMFKTTNYACQYGAGVPTVARSAGCDQTTAARLHKAYWDLNWSIKEIAANTKVITVDGQMWQQNPVNKFWYSLRTEKDRFSTLCQGTGAYVFDIWCNNIIAICNERWGCDPLLSGQFHDELILQVKKGFRDLWTDLLNEAMDRTNKELKLNRDCACDVQFGDNYAEIH
>1 query
MIVSDIEANALLESVTKFHCGVIYDYSTAEYVSYRPSDFGAYLDALEAEVARGGLIVFHNGHKYDVPALTKLAKLQLNREFHLPRENCIDTLVLSRLIHSNLKDTDMGLLRSGKLPGKRFGSHALEAWGYRLGEMKGEYKDDFKRMLEEQGEEYVDGMEWWNFNEEMMDYNVQDVVVTKALLEKLLSDKHYFPPEIDFTDVGYTTFWSESLEAVDIEHRAAWLLAKQERNGFPFDTKAIEELYVELAARRSELLRKLTETFGSWYQPKGGTEMFCHPRTGKPLPKYPRIKTPKVGGIFKKPKNKAQREGREPCELDTREYVAGAPYTPVEHVVFNPSSRDHIQKKLQEAGWVPTKYTDKGAPVVDDEVLEGVRVDDPEKQAAIDLIKEYLMIQKRIGQSAEGDKAWLRYVAEDGKIHGSVNPNGAVTGRATHAFPNLAQIPGVRSPYGEQCRAAFGAEHHLDGITGKPWVQAGIDASGLELRCLAHFMARFDNGEYAHEILNGDIHTKNQIAAELPTRDNAKTFIYGFLYGAGDEKIGQIVGAGKERGKELKKKFLENTPAIAALRESIQQTLVESSQWVAGEQQVKWKRRWIKGLDGRKVHVRSPHAALNTLLQSAGALICKLWIIKTEEMLVEKGLKHGWDGDFAYMAWVHDEIQVGCRTEEIAQVVIETAQEAMRWVGDHWNFRCLLDTEGKMGPNWAICH
>2 query
MSNNRPLLLLIDGHALAYRAFHALAEAGLRSSTGEPTYAVFGFTSAMLNAIEEYHPDYAAVAFDVGKTFRDDLYAEYKANRAETPAEFEQQLERIKQVLAAFDIPIYTADGYEADDVIGTLARQATERGVDVLILTGDTDTLQLVDEHVTVLLNNPYVRGSKNTTRYGVADVCARYKGLRPDQLADLRGLKGDPSDNIPGVKGIGEAGAIALLNQFGSIENLYDHLDEAPKRYQKHLEGQRDAALFSKKLATIVRDAPVTLDLPAATLADYDRSRVIAVFQELEFGASLVRRLPPSQTIAAPQALPPVEPPAPLQVDMFAPATPGPDDGPQQLTLFNDMPTPVAPVVEPPAHDAPGEYRAACNDADLEAIVTELKHASLFAFDTETRGTNPLRDDLVGIALATIPGSGWYVPLGHTTGEAQLPRERVIAALRPFFADPARSRIAHNAKFDIEVLERAGIPVAGVAFDTMLAAALLDKRRNLKDLAFYELNLAAPLESIEALIGKGKNQVTFADVPIARATPYAAADADMTLRLKPALEAKLRAAGSVADVFYRLEMPLVPVLVRMEQAGILLDVPYMRALGERMGRELEQIEQQIYAIAGQTFNINSGDQLSEVLFGPKINLPTTGLDRTRTGRYSLTAQALEELQASDTTGIIELILRHRRLSKLKSTYVDELPALVNPETGRVHTDYNQLGAATGRLSSNSPNLQNIPTRTEEGREVRRGFIAAPGHLLIAADYSQIELRVLAHMTGDPNLIQTFIEGRDIHAATAARLFGVGFSAVDKNQRRIAKTVVFGVIYGISPFGLAQRLGISREQARGLIDSLFDQFPRIRDYIDRTLDIGRSEGYVQSLFGRRRPMFDLRVSGPRRQAAEREAINHPIQSTAADIMKLAMIAVDAELQRRQMRTRMLLQVHDELIFEAPEAEVDDVVALVRERMEGVLHGMEPPFAVPLRVEIETGPNWEELTPAG
>1_e_coli ref
MVQIPQNPLILVDGSSYLYRAYHAFPPLTNSAGEPTGAMYGVLNMLRSLIMQYKPTHAAVVFDAKGKTFRDELFEHYKSHRPPMPDDLRAQIEPLHAMVKAMGLPLLAVSGVEADDVIGTLAREAEKAGRPVLISTGDKDMAQLVTPNITLINTMTNTILGPEEVVNKYGVPPELIIDFLALMGDSSDNIPGVPGVGEKTAQALLQGLGGLDTLYAEPEKIAGLSFRGAKTMAAKLEQNKEVAYLSYQLATIKTDVELELTCEQLEVQPPAAEELLGLFKKYEFKRWTADVEAGKWLQAKGVKPAARPQETSVADEAPEVTATVISYDNYVTILDEETLKEWIAKLEKAPVFAFDTETDSLDNISANLVGLSFAIEPGVAAYIPVAHDYLDAPDQISRERALELLKPLLEDEKALKVGQNLKYDRGILANYGIELRGIAFDTMLESYILNSVAGRHDMDSLAERWLKHKTITFEEIAGKGKNQLTFNQIALEEAGRYAAEDADVTLQLHLKMWPDLQKHKGPLNVFENIEMPLVPVLSRIERNGVKIDPKVLHNHSEELTLRLAELEKKAHEIAGEEFNLSSTKQLQTILFEKQGIKPLKKTPGGAPSTSEEVLEELALDYPLPKVILEYRGLAKLKSTYTDKLPLMINPKTGRVHTSYHQAVTATGRLSSTDPNLQNIPVRNEEGRRIRQAFIAPEDYVIVSADYSQIELRIMAHLSRDKGLLTAFAEGKDIHRATAAEVFGLPLETVTSEQRRSAKAINFGLIYGMSAFGLARQLNIPRKEAQKYMDLYFERYPGVLEYMERTRAQAKEQGYVETLDGRRLYLPDIKSSNGARRAAAERAAINAPMQGTAADIIKRAMIAVDAWLQAEQPRVRMIMQVHDELVFEVHKDDVDAVAKQIHQLMENCTRLDVPLLVEVGSGENWDQAH
>2_phage ref
MLYPWENMYASDIETTGLLEQMRKQAAPRLHNIGYIDVLTREETVIEWTDRKSIQAFLDTGPTLIMHNGATFDFEALRFLGYDVSKCTLIDTLFISWYLQPRRVKHGLEGYGEEFGVPKPVIEDWENQTQEEYNHRVMEDCKIQLKLWEQQYIQLLKIYKSPSEVKRFVEYLMTKARQQVIQQRTRWKLNIEKALAFKAKLEPMIKEKTDALEASMPRIPEYVIKTRPAKCHKMNGQLSATGIKWKAVCDANGLDWKDPDLAIKVLKGYKEPNAGSHVQIKDWLFSLGWEPETFKFDRNKETGETRQIPQITVKDEDGNPEICPSLHKLAERNPESGIQHLIGMGVYKHRLSVVNGFLRDVDEDGYLTARCGGLTNTLRLKHRELVNLPSIRVFGGEELRSMLEAWREDYEQLGSDLCSLEDRCKHHFQWMYDPEYVKKQLAPDYDAHLAIGVIGGFITEQESQDHKDGIKKCKQRPMFKTTNYACQYGAGVPTVARSAGCDQTTAARLHKAYWDLNWSIKEIAANTKVITVDGQMWQQNPVNKFWYSLRTEKDRFSTLCQGTGAYVFDIWCNNIIAICNERWGCDPLLSGQFHDELILQVKKGFRDLWTDLLNEAMDRTNKELKLNRDCACDVQFGDNYAEIH
>1 query
MIVSDIEANALLESVTKFHCGVIYDYSTAEYVSYRPSDFGAYLDALEAEVARGGLIVFHNGHKYDVPALTKLAKLQLNREFHLPRENCIDTLVLSRLIHSNLKDTDMGLLRSGKLPGKRFGSHALEAWGYRLGEMKGEYKDDFKRMLEEQGEEYVDGMEWWNFNEEMMDYNVQDVVVTKALLEKLLSDKHYFPPEIDFTDVGYTTFWSESLEAVDIEHRAAWLLAKQERNGFPFDTKAIEELYVELAARRSELLRKLTETFGSWYQPKGGTEMFCHPRTGKPLPKYPRIKTPKVGGIFKKPKNKAQREGREPCELDTREYVAGAPYTPVEHVVFNPSSRDHIQKKLQEAGWVPTKYTDKGAPVVDDEVLEGVRVDDPEKQAAIDLIKEYLMIQKRIGQSAEGDKAWLRYVAEDGKIHGSVNPNGAVTGRATHAFPNLAQIPGVRSPYGEQCRAAFGAEHHLDGITGKPWVQAGIDASGLELRCLAHFMARFDNGEYAHEILNGDIHTKNQIAAELPTRDNAKTFIYGFLYGAGDEKIGQIVGAGKERGKELKKKFLENTPAIAALRESIQQTLVESSQWVAGEQQVKWKRRWIKGLDGRKVHVRSPHAALNTLLQSAGALICKLWIIKTEEMLVEKGLKHGWDGDFAYMAWVHDEIQVGCRTEEIAQVVIETAQEAMRWVGDHWNFRCLLDTEGKMGPNWAICH
>2 query
MSNNRPLLLLIDGHALAYRAFHALAEAGLRSSTGEPTYAVFGFTSAMLNAIEEYHPDYAAVAFDVGKTFRDDLYAEYKANRAETPAEFEQQLERIKQVLAAFDIPIYTADGYEADDVIGTLARQATERGVDVLILTGDTDTLQLVDEHVTVLLNNPYVRGSKNTTRYGVADVCARYKGLRPDQLADLRGLKGDPSDNIPGVKGIGEAGAIALLNQFGSIENLYDHLDEAPKRYQKHLEGQRDAALFSKKLATIVRDAPVTLDLPAATLADYDRSRVIAVFQELEFGASLVRRLPPSQTIAAPQALPPVEPPAPLQVDMFAPATPGPDDGPQQLTLFNDMPTPVAPVVEPPAHDAPGEYRAACNDADLEAIVTELKHASLFAFDTETRGTNPLRDDLVGIALATIPGSGWYVPLGHTTGEAQLPRERVIAALRPFFADPARSRIAHNAKFDIEVLERAGIPVAGVAFDTMLAAALLDKRRNLKDLAFYELNLAAPLESIEALIGKGKNQVTFADVPIARATPYAAADADMTLRLKPALEAKLRAAGSVADVFYRLEMPLVPVLVRMEQAGILLDVPYMRALGERMGRELEQIEQQIYAIAGQTFNINSGDQLSEVLFGPKINLPTTGLDRTRTGRYSLTAQALEELQASDTTGIIELILRHRRLSKLKSTYVDELPALVNPETGRVHTDYNQLGAATGRLSSNSPNLQNIPTRTEEGREVRRGFIAAPGHLLIAADYSQIELRVLAHMTGDPNLIQTFIEGRDIHAATAARLFGVGFSAVDKNQRRIAKTVVFGVIYGISPFGLAQRLGISREQARGLIDSLFDQFPRIRDYIDRTLDIGRSEGYVQSLFGRRRPMFDLRVSGPRRQAAEREAINHPIQSTAADIMKLAMIAVDAELQRRQMRTRMLLQVHDELIFEAPEAEVDDVVALVRERMEGVLHGMEPPFAVPLRVEIETGPNWEELTPAG

0 comments on commit b9330ed

Please sign in to comment.