diff --git a/CHANGES b/CHANGES index e6204a5..040299c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +2021-06-28 Torbjorn Rognes + * Version 2.1.1 + * Fix for very long header strings in NCBI database files + 2018-05-04 Torbjorn Rognes * Version 2.1.0 * Fix for changes to NCBI database format diff --git a/README b/README index 9ae674d..065879d 100644 --- a/README +++ b/README @@ -1,7 +1,7 @@ SWIPE Smith-Waterman database searches with Inter-sequence Parallel Execution -Copyright (C) 2008-2014 Torbjorn Rognes, University of Oslo, +Copyright (C) 2008-2021 Torbjorn Rognes, University of Oslo, Oslo University Hospital and Sencel Bioinformatics AS This program is free software: you can redistribute it and/or modify @@ -105,7 +105,8 @@ specified organisms. SWIPE accepts only databases prepared using the formatdb or makeblastdb tools that are distributed together with NCBI BLAST and BLAST+. They can be downloaded at ftp://ftp.ncbi.nlm.nih.gov/blast/executables/ -from NCBI. +from NCBI. For makeblastdb, please use the "-blastdb_version 4" option +to make databases that are compatible with SWIPE. The SWIPE distribution includes executable binaries for 64-bit Linux and Mac. SWIPE may be compiled from sources using either the GNU g++ compiler, diff --git a/asnparse.cc b/asnparse.cc index a4ce069..8a8d6d5 100644 --- a/asnparse.cc +++ b/asnparse.cc @@ -2,7 +2,7 @@ SWIPE Smith-Waterman database searches with Inter-sequence Parallel Execution - Copyright (C) 2008-2013 Torbjorn Rognes, University of Oslo, + Copyright (C) 2008-2021 Torbjorn Rognes, University of Oslo, Oslo University Hospital and Sencel Bioinformatics AS This program is free software: you can redistribute it and/or modify @@ -194,7 +194,27 @@ void parse_visiblestring(apt p) length = (length << 8) | p->ch; nextch(p); } - else if (p->len > 0x82) + else if (p->len == 0x83) + { + length = p->ch; + nextch(p); + length = (length << 8) | p->ch; + nextch(p); + length = (length << 8) | p->ch; + nextch(p); + } + else if (p->len == 0x84) + { + length = p->ch; + nextch(p); + length = (length << 8) | p->ch; + nextch(p); + length = (length << 8) | p->ch; + nextch(p); + length = (length << 8) | p->ch; + nextch(p); + } + else if (p->len > 0x84) { fprintf(stderr, "Error: illegal string length (%02x).\n", p->len); fatal("Error parsing binary ASN.1 in database sequence definition."); diff --git a/swipe.h b/swipe.h index 831fe7b..36c9dab 100644 --- a/swipe.h +++ b/swipe.h @@ -2,7 +2,7 @@ SWIPE Smith-Waterman database searches with Inter-sequence Parallel Execution - Copyright (C) 2008-2014 Torbjorn Rognes, University of Oslo, + Copyright (C) 2008-2021 Torbjorn Rognes, University of Oslo, Oslo University Hospital and Sencel Bioinformatics AS This program is free software: you can redistribute it and/or modify @@ -55,7 +55,7 @@ #define LINE_MAX 2048 #endif -#define SWIPE_VERSION "2.1.0" +#define SWIPE_VERSION "2.1.1" // Should be 32bits integer typedef unsigned int UINT32;