Skip to content
rcedgarPublic

Repository files navigation

Reseek

Reseek is a protein structure search and alignment algorithm which improves sensitivity in protein homolog detection compared to state-of-the-art methods including DALI, TM-align and Foldseek. Speed is often similar to Foldseek while memory requirements are often much less, though scaling trade-offs are different.

Online structure search

Search a protein structure against AFDB, PDB or BFVD with typical results in 2 to 5 minutes.


https://reseek.online


What's new in version 3

Search accuracy is substantially improved over previous releases, and search is faster with large databases.

The underlying statistical model is enhanced, now offering three sets of parameters optimized for SCOP family, superfamily and fold relationships, respectively

Families are somewhat arbitrary groups with similar functions and clear amino acid sequence similarity.

Superfamilies are groups of families which are probably homologous.

Folds are groups of families with similar tertiary structure.

For more information about these categories, see this SCOP documentation page.

The -stats MODEL option is required in version 3, MODEL is family, superfamily or fold. For example, the family model has a larger weight for amino acid sequence similarity, while the fold model has higher weights for tertiary structure features.

The preferred measure of statistical significance is P-value, specified by the pvalue column. E-values are deprecated because they are misleading for structure searches. P-values are adjusted according to a null model tuned to the chosen truth standard, i.e. family, superfamily or fold.

Reseek achieves highest accuracy in homolog detection and statistical significance estimate

On the SCOP40 benchmark test (see results later below), Reseek has substantially higher ability to discriminate homologs compared to previous algorithms including DALI, TM-align and Foldseek.

Reseek also provides a more accurate estimate of statistical significance, enabling users to set a cutoff based on an acceptable number of false positives for a given search, while Foldseek E-values may over-estimate significance by 5 to 6 orders of magnitude (reference below).

Paper is here: https://drive5.com/reseek/Reseek3-2026-07-16_preprint.pdf.

YouTube talk describing the algorithm

Reseek is based on sequence alignment where each residue in the protein backbone is represented by a letter in a novel “mega-alphabet” of 85,899,345,920 (∼1011) distinct structure states. This talk explains how it works.

Command line

Commands
  -search        # Alignment (e.g. DB search, pairwise, all-vs-all)
  -convert       # Convert file formats (e.g. create DB)
  -alignpair     # Pair-wise alignment and superposition

Search against database
    reseek -search STRUCTS -db db.bcb -output hits.tsv
                 # use -convert to create .bcb files (below)

Align and superpose two structures
    reseek -alignpair 1XYZ.pdb -input2 2ABC.pdb
           -aln FILE     # Sequence alignment (text)
           -output FILE  # Rotated 1XYZ (PDB format)

Output options for -search
   -aln FILE     # Alignments in human-readable format
   -output FILE  # Hits in tabbed text format
   -columns name1+name2+name3...
                 # Output columns, names are:
                 #   query   Query label
                 #   target  Target label
                 #   qlo     Start of aligment in query
                 #   qhi     End of aligment in query
                 #   tlo     Start of aligment in target
                 #   thi     End of aligment in target
                 #   ql      Query length
                 #   tl      Target length
                 #   pctid   Percent identity of alignment
                 #   cigar   CIGAR string
                 #   pvalue  P-value
                 #   qrow    Aligned query sequence with gaps (local)
                 #   trow    Aligned target sequence with gaps (local)
                 #   qrowg   Aligned query sequence with gaps (global)
                 #   trowg   Aligned target sequence with gaps (global)
                 #   qcovpct Query coverage (percent)
                 #   tcovpct Target coverage (percent)
                 #   std     query+target+qlo+qhi+ql+tlo+thi+tl+pctid+pvalue (default)

Search and alignment options
  -fast or -sensitive  # Required
  -pvalue P            # Max P-value (default 0.001)

Convert between file formats
    reseek -convert STRUCTS [one or more output options]
           -cal FILENAME    # .cal format, text with a.a. and C-alpha x,y,z
           -bca FILENAME    # .bca format, binary .cal
           -bcb FILENAME    # .bca format, binary .cal with nu, required for db
           -fasta FILENAME  # FASTA format

STRUCTS argument is one of:
   NAME.cif or NAME.mmcif     # PDBx/mmCIF file
   NAME.pdb                   # Legacy format PDB file
   NAME.cal                   # C-alpha tabbed text format with chain(s)
   NAME.bcb                   # Binary C-alpha with nu, required for db
   NAME.bca                   # Binary C-alpha (used by earlier reseek versions)
   NAME.files                 # Text file with one STRUCT per line,
                              #   may be filename, directory or .files
   DIRECTORYNAME              # Directory (and its sub-directories) is searched
                              #   for known file types including .pdb, .files etc.

Other options:
   -log FILENAME              # Log file with errors, warnings, time and memory.
   -threads N                 # Number of threads, default number of CPU cores.

More documentation at https://drive5.com/reseek

Build from source on Linux x86

cd src/; chmod +x build_linux_x86.bash ; ./build_linux_x86.bash

Build from source on Windows

Load reseek.vcxproj into Microsoft Visual Studio and use the Build command.

Ignore static link warning

Don't worry about a warning something like this, it's expected:

warning: Using 'dlopen' in statically linked applications requires
  at runtime the shared libraries from the glibc version used for linking

More documentation

https://drive5.com/reseek

Searching very large databases

Reseek and Foldseek achieve orders of magnitude faster searches of large database such as AFDB compared to previous state-of-the-art methods DALI and TM-align. In terms of accuracy, my benchmark results show that Reseek-fast (i.e., with the -fast) option has higher accuracy than all other algorithms by most metrics, but scaling compared to Foldseek involves quite different trade-offs (preprint in preparation). Foldseek indexes the whole database in memory, which sometimes enables sub-linear scaling with number of query structures but requires a large amount of RAM. Reseek indexes the query, thereby using much less RAM with linear scaling in query size. With more than ~1,000 query structures, for Reseek it is recommended to split the query into subsets of ~1k and search these separately. The results below illustrate the point. Random subsets of the PDB with 100, 1,100 and 10,000 structures were searched against a subset of AFDB which was clustered at 50% aa similarity. Experiments were run on a machine with 780Gb RAM using 64 threads. Results are shown below. With 100 structures, reseek is faster, but with 1,000+ structures Foldseek is faster.

  query   ____________Elapsed time_______________
structs   foldseek  reseek-fast  reseek-sensitive
    100         9m          6m                23m
   1000        19m         61m             4h:45m  
  10000      2h33m         12h                60h

  query   _____________Max memory________________
structs   foldseek  reseek-fast  reseek-sensitive
    100      227Gb        4.4Gb             4.5Gb
   1000      284Gb        6.6Gb             6.7Gb
  10000      289Gb            -                 -

Database downloads

abdb50.bcb   AFBD50 AFDB clustered at 50% aa identity 53.7M structures (107Gb)

esmdb30.bcb   ESMDB30 ESM Altas clustered at 30% aa identity 34.6M structures (55Gb)

bfvd.bcb   Big Fine Virus DB 347k structures (486Mb)

pdb.bcb   PDB 900k structures (1.7Gb)

scop40.bcb   SCOP40 11,211 structures (16Mb)

scop40x.bcb   Curated SCOP40 8,291 structures (13Mb)

cath40.bcb   CATH40 34,647 structures (41Mb)

SCOP40 benchmark code and results

https://github.com/rcedgar/reseek_bench

Reseek

Accuracy plots for SCOP40c superfamily and fold.
The figure gives CVE, PR and ROC plots for the tested algorithm using SCOP40c (curated SCOP40, https://github.com/rcedgar/scop40c) as reference and superfamily and fold as truth standards. For a CVE plot, a lower curve is better while for PR and ROC a higher curve is better. These curves show that Reseek-sensitive has higher accuracy than other tested methods in the high-scoring regime (up to 10 errors per query for CVE, ≥ 70% precision for PR and < 10−4 FPR for ROC).

References

Edgar RC. "Protein structure alignment by Reseek improves sensitivity to remote homologs" (Bioinformatics 2024) Nov;40(11):btae687. https://academic.oup.com/bioinformatics/article/40/11/btae687/7901215

Edgar RC. and Sahakyan S. "Protein structure alignment significance is often exaggerated" (bioRxiv 2025) https://www.biorxiv.org/content/10.1101/2025.07.17.665375v1

Edgar RC. Rich structure alphabets enable highest accuracy protein search (bioRxiv 2026) https://www.biorxiv.org/cgi/content/short/2026.07.24.740611v1

Releases

Packages

Used by

Contributors

Languages