StringZilla v5 icon

StringZilla v5

(5.0.0)

Hardware-accelerated edit distances and global or local sequence scores Learn more

StringZilla v5 icon

StringZilla v5

(5.0.0)

Hardware-accelerated edit distances and global or local sequence scores Learn more

Related tools

MAFFT

MAFFT

Perform multiple sequence alignment using MAFFT (Multiple Alignment using Fast Fourier Transform). Supports multiple algorithms from fast progressive to highly accurate iterative methods.

sequence-analysisalignment+5
MUSCLE5

MUSCLE5

Align protein, DNA, or RNA sequences with MUSCLE v5.3 using the native PPP or Super5 algorithm, with optional stratified and diversified ensembles.

sequence-analysisalignment+5
USAlign

USAlign

USAlign (Universal Structure Alignment) aligns protein, RNA, and DNA structures to compute TM-scores and generate superposed structures. Compare 3D structures to assess structural similarity.

structure-analysisalignment+4
Clustal Omega

Clustal Omega

Perform multiple sequence alignment on protein or nucleotide sequences using the Clustal Omega algorithm.

sequence-analysisalignment+3
FastTree

FastTree

Infer approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide or protein sequences.

sequence-analysisalignment+3
IQ-TREE

IQ-TREE

Build phylogenetic trees using maximum likelihood with automatic model selection (ModelFinder) and ultrafast bootstrap support.

sequence-analysisalignment+3
MMseqs2

MMseqs2

Ultra-fast sequence search and clustering. 10,000x faster than BLAST for database searches, with powerful sequence clustering capabilities for proteins and nucleotides.

sequence-analysiscomparison+4
MUMmer4

MUMmer4

Rapidly align and compare DNA sequences using MUMmer4 nucmer. Perform pairwise genome comparisons to identify SNPs, indels, and structural variants between reference and query genomes.

sequence-analysisalignment+3
IgBLAST

IgBLAST

Analyze immunoglobulin (antibody) and T cell receptor variable domain sequences. Identifies V/D/J gene segments, delineates CDR regions, and analyzes rearrangement junctions.

sequence-analysisdatabase-search+5
FoldSeek

FoldSeek

Fast protein structure search, comparison, and clustering. Search your structure against 200M+ AlphaFold predictions, compare 2 structures, or cluster up to 2500.

structure-analysisalignment+3
ProteinIQ
DashboardMy resultsProjectsNew
ToolsWorkflowsFiles

  • PDB Viewer
  • MSA Viewer
  • Molecule Drawer
AI Assistant
UsageSettingsSupport

Related tools

MAFFT

MAFFT

Perform multiple sequence alignment using MAFFT (Multiple Alignment using Fast Fourier Transform). Supports multiple algorithms from fast progressive to highly accurate iterative methods.

sequence-analysisalignment+5
MUSCLE5

MUSCLE5

Align protein, DNA, or RNA sequences with MUSCLE v5.3 using the native PPP or Super5 algorithm, with optional stratified and diversified ensembles.

sequence-analysisalignment+5
USAlign

USAlign

USAlign (Universal Structure Alignment) aligns protein, RNA, and DNA structures to compute TM-scores and generate superposed structures. Compare 3D structures to assess structural similarity.

structure-analysisalignment+4
Clustal Omega

Clustal Omega

Perform multiple sequence alignment on protein or nucleotide sequences using the Clustal Omega algorithm.

sequence-analysisalignment+3
FastTree

FastTree

Infer approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide or protein sequences.

sequence-analysisalignment+3
IQ-TREE

IQ-TREE

Build phylogenetic trees using maximum likelihood with automatic model selection (ModelFinder) and ultrafast bootstrap support.

sequence-analysisalignment+3
MMseqs2

MMseqs2

Ultra-fast sequence search and clustering. 10,000x faster than BLAST for database searches, with powerful sequence clustering capabilities for proteins and nucleotides.

sequence-analysiscomparison+4
MUMmer4

MUMmer4

Rapidly align and compare DNA sequences using MUMmer4 nucmer. Perform pairwise genome comparisons to identify SNPs, indels, and structural variants between reference and query genomes.

sequence-analysisalignment+3
IgBLAST

IgBLAST

Analyze immunoglobulin (antibody) and T cell receptor variable domain sequences. Identifies V/D/J gene segments, delineates CDR regions, and analyzes rearrangement junctions.

sequence-analysisdatabase-search+5
FoldSeek

FoldSeek

Fast protein structure search, comparison, and clustering. Search your structure against 200M+ AlphaFold predictions, compare 2 structures, or cluster up to 2500.

structure-analysisalignment+3

Input

0/100,000

Configuration

5 credits

Output

Configure inputs to begin

Set options on the left, then click “Submit job” — or start from an example.

DNA construct variants · weighted edit distances

Ubiquitin variants · global similarity scores

σ70 promoter motifs · local cross-comparison

What is StringZilla v5?

StringZilla v5 is an open-source, high-performance string-processing library developed by Ash Vardanian. It accelerates search, hashing, sorting, edit distances, and biological sequence scoring by using hardware-specific SIMD, SWAR, and GPU backends across modern processor architectures.

ProteinIQ runs StringZilla's CPU-accelerated batch engines for Levenshtein distance, Needleman-Wunsch global scoring, and Smith-Waterman local scoring. These methods are designed for questions that need every comparison in a sequence set or every query-by-candidate combination, such as finding near-duplicate constructs, comparing variant libraries, or building a similarity matrix before clustering.

The result is a numeric matrix, not a set of aligned sequences. StringZilla does not return traceback paths, gap placement, percent identity, E-values, or statistical significance. For an inspectable multiple sequence alignment, use MAFFT or Clustal Omega. For searching a large database while reporting only meaningful hits, MMseqs2 avoids materializing the full cross-product matrix.

How to use StringZilla online

Run StringZilla online by submitting FASTA records as one self-comparison set or as separate query and candidate sets. Choose Levenshtein distance, Needleman-Wunsch global scoring, or Smith-Waterman local scoring. ProteinIQ returns every pair in a searchable table, a rectangular matrix CSV, a long-form CSV, and an execution log.

Inputs and comparison modes

FASTA headers become the sequence identifiers in the output. Sequence lines must be non-empty and cannot contain internal whitespace.

ModeInputComparisons returned
All pairs within one sequence setOne FASTA set containing one or more recordsA square N×NN \times NN×N matrix, including the diagonal and both directions of each pair
Queries against candidatesOne query FASTA set and one candidate FASTA setA rectangular Q×CQ \times CQ×C matrix containing every query-candidate combination

Accepted file extensions are .fasta, .fa, .fas, and .txt. A run may contain at most 100,000 sequence symbols across the active inputs and at most 100,000 matrix cells. A self comparison of 100 sequences therefore returns 10,000 rows, while 500 queries against 200 candidates reaches the 100,000-cell limit.

StringZilla treats the submitted sequence characters as symbols. Protein, DNA, and RNA records can be compared in the same tool, but molecule type is not inferred and biologically incompatible alphabets are not rejected. Mixed alphabets produce numeric results that usually have no useful biological interpretation.

Choosing an algorithm

AlgorithmWhat it measuresBest suited toDirection
Levenshtein edit distanceMinimum cost of substitutions, insertions, and deletions needed to transform one sequence into anotherNear-duplicate detection, construct verification, barcode comparison, and short variant setsLower is more similar
Needleman-Wunsch global scoreBest end-to-end alignment score under the selected match, mismatch, and affine-gap valuesSequences expected to correspond across their full lengthsHigher is more similar
Smith-Waterman local scoreBest-scoring pair of local subsequencesShared motifs or domains within otherwise different sequencesHigher is more similar

Levenshtein distance is the easiest choice when each change should have a direct cost. Needleman-Wunsch is more appropriate when terminal differences and internal gaps must affect a full-length comparison. Smith-Waterman ignores poorly matching flanks by selecting the strongest local region, so a high score can reflect one shared segment rather than overall sequence similarity.

Levenshtein costs

SettingRangeDefaultEffect
Match cost-128 to 1270Cost assigned when the two symbols are equal
Mismatch cost-128 to 1271Cost of substituting one symbol for another
Gap-open cost-128 to 1271Cost of starting an insertion or deletion run
Gap-extension cost-128 to 1271Cost of extending an insertion or deletion run

All four costs must be integers because the StringZilla engine stores them as signed 8-bit values.

The defaults produce the familiar unit-cost edit distance: identical sequences have distance 0, and each substitution, insertion, or deletion increases the distance. Changing the four values creates a weighted edit cost. Negative costs are accepted by the engine, but the result no longer behaves like a conventional mathematical distance, so zero and lower values no longer have their usual interpretation.

Global and local alignment scoring

SettingRangeDefaultEffect
Match score-128 to 1271Score on the diagonal of the identity-style substitution table
Mismatch score-128 to 1270Score for every unequal symbol pair
Gap-open score-128 to 127-1Penalty for starting a gap
Gap-extension score-128 to 127-1Penalty for extending a gap

All four scores must be integers because the StringZilla engine stores them as signed 8-bit values.

These controls define a compact identity-style substitution table. Every exact symbol match receives the same score, and every mismatch receives the same score. Protein substitutions therefore do not receive BLOSUM or PAM values, and transitions and transversions in nucleotide sequences are not distinguished. Needleman-Wunsch and Smith-Waterman runs support at most 32 distinct encoded symbols across all submitted sequences.

The default scoring rewards exact matches, leaves mismatches neutral, and penalizes gaps. Raising Match score increases the influence of exact identity. Making Mismatch score more negative discourages mismatched regions, while stronger negative gap values make insertions and deletions less favorable. The current tool does not accept a custom substitution matrix.

Results and downloads

The Pairwise results table preserves query-major, candidate-minor order. It is not sorted by similarity, because every cell in the matrix is returned.

ColumnDescription
Query #One-based position of the query record in the submitted FASTA
Query IDText following the query FASTA header marker
Candidate #One-based position of the candidate record
Candidate IDCandidate FASTA identifier
Edit distanceWeighted Levenshtein distance, present for Levenshtein runs
Alignment scoreGlobal or local alignment score, present for Needleman-Wunsch and Smith-Waterman runs

Three files accompany the table:

  • stringzilla-distances.csv or stringzilla-scores.csv: Long-form rows matching the displayed results table
  • stringzilla-matrix.csv: The same values arranged with queries as rows and candidates as columns
  • stringzilla-run.log: Algorithm, comparison mode, sequence counts, matrix size, runtime, and detected CPU capabilities

Interpreting StringZilla results

Levenshtein distance

With the default costs, a distance of 0 means the two sequences are identical. A distance of 1 means that one substitution, insertion, or deletion separates them. Raw distance grows with sequence length, so distance 5 is a much larger difference for a 20-residue peptide than for a 1,000-residue protein.

For default unit costs, a useful length-adjusted summary is:

normalized edit similarity=1−dmax⁡(Lq,Lc)\text{normalized edit similarity} = 1 - \frac{d}{\max(L_q, L_c)}normalized edit similarity=1−max(Lq​,Lc​)

Here, ddd is Edit distance, and LqL_qLq​ and LcL_cLc​ are the two sequence lengths. The value ranges from 0 to 1 for standard unit-cost comparisons, with 1 indicating identical sequences. It should not be applied unchanged after assigning unusual or negative costs.

Needleman-Wunsch score

Needleman-Wunsch compares both sequences end to end. A high score indicates that many symbols can be matched while paying relatively few mismatch and gap penalties. Length strongly affects the result, so raw scores are most useful when all sequences have similar lengths and every run uses the same settings.

The diagonal of a self-comparison matrix gives each sequence scored against itself. Comparing an off-diagonal score with the corresponding diagonal values can provide context, but it is not a calibrated probability or percent identity. A lower score can result from substitutions, terminal length differences, internal indels, or a combination of all three.

Smith-Waterman score

Smith-Waterman reports the best local score. Unrelated flanking regions do not need to participate, which makes the method useful for detecting a shared motif or domain. The score alone does not reveal where that region occurs or how long it is. Two pairs can receive the same score from very different local segments.

Because StringZilla returns no traceback, a promising pair should be aligned with a method that reports aligned residues before making positional or mechanistic claims. MAFFT is suitable when the selected sequences belong in a common multiple alignment; Clustal Omega is another scalable option for homologous sets.

How StringZilla works

StringZilla was developed by Ash Vardanian as a high-performance string-processing library. Its StringZillas batch engines calculate Levenshtein matrices and Needleman-Wunsch or Smith-Waterman score matrices across collections of sequences. ProteinIQ runs the CPU backend and lets the library select the available SIMD or SWAR capabilities automatically.

Dynamic-programming sequence comparison normally fills a matrix whose cells depend on neighboring cells. StringZilla traverses independent anti-diagonals so multiple cells can be evaluated together with vector instructions. The batch interface also parallelizes work across many sequence pairs, which is particularly useful for complete self and cross comparisons.

Acceleration changes how quickly the score matrix is computed, not what the score means. Levenshtein still minimizes edit cost, Needleman-Wunsch still scores a global comparison, and Smith-Waterman still selects a local one. The output contains the final value for every sequence pair rather than each algorithm's internal dynamic-programming matrix.

When to use StringZilla instead of an alignment or search tool

GoalBetter starting pointReason
Compare every member of a moderate sequence setStringZillaReturns the complete pairwise matrix with no hit filtering
Find near-identical constructs or barcodesStringZilla with LevenshteinEdit counts have a direct interpretation under unit costs
Score full-length correspondenceStringZilla with Needleman-WunschBoth sequence ends participate in the global score
Detect a shared local segmentStringZilla with Smith-WatermanPoorly matching flanks can be excluded from the score
Inspect residue correspondence and gap placementMAFFT or Clustal OmegaThese tools return aligned sequences rather than scores alone
Search a large sequence database for homologsMMseqs2Prefiltering avoids calculating and storing every possible pair and adds hit statistics

Complete matrices scale as N2N^2N2 in self mode and Q×CQ \times CQ×C in cross mode. StringZilla is therefore most useful when every cell is genuinely needed. For a million-sequence database search, a filtered search method is both more practical and more informative than a full matrix.

Table of contents

d
​