Rosalind — Bioinformatics Textbook Track
The Bioinformatics Textbook Track, all 124 problems, from pattern finding through assembly graphs to alignment. See the problem list.
124 problems — 124 solved, 0 partial. 124 carry assertions that run on every commit; 0 need a network connection and are checked separately. Press Run on any block to execute it in your browser, or open the whole pack in the workbench.
Take it with you:
download this page as a notebook
(.bln — run it with bl notebook, or export it to HTML, PDF or Jupyter),
every problem as a zip,
or grab a single problem with the Download .bl link in its section.
Sections
Or read every problem on a single page — heavier to load, but one place to scroll, search and print.
Strings
29 problems — 29 solved
BA1A, BA1B, BA1D, BA9G, BA1E, BA1H, BA1I, BA1J, BA1N, BA2A, BA2B, BA2H, BA9D, BA9E, BA9I, BA9J, BA9A, BA9B, BA9H, BA9K, BA9L, BA9M, BA9Q, BA9C, BA9F, BA9N, BA9O, BA9P, BA9R
Sequence
2 problems — 2 solved
BA1C, BA1G
Kmers
4 problems — 4 solved
BA3A, BA1K, BA1L, BA1M
Translation
2 problems — 2 solved
BA4A, BA4B
Alignment
9 problems — 9 solved
BA5G, BA5E, BA5F, BA5H, BA5I, BA5J, BA5K, BA5L, BA5M
Genomics
1 problem — 1 solved
BA1F
Motifs
5 problems — 5 solved
BA2C, BA2D, BA2E, BA2F, BA2G
Assembly
9 problems — 9 solved
BA3B, BA3C, BA3D, BA3E, BA3H, BA3I, BA3J, BA3K, BA3L
Dynamic programming
4 problems — 4 solved
BA5A, BA5C, BA5B, BA5D
Clustering
5 problems — 5 solved
BA8A, BA8B, BA8C, BA8D, BA8E
Hmm
11 problems — 11 solved
BA10A, BA10B, BA10C, BA10D, BA10J, BA10H, BA10I, BA10K, BA10E, BA10F, BA10G
Graphs
4 problems — 4 solved
BA3F, BA3G, BA5N, BA3M
Mass spectrometry
21 problems — 21 solved
BA4C, BA4D, BA4E, BA4F, BA4G, BA4H, BA4I, BA4J, BA4K, BA4L, BA4M, BA11A, BA11B, BA11C, BA11D, BA11E, BA11F, BA11G, BA11H, BA11I, BA11J
Phylogeny
7 problems — 7 solved
BA7A, BA7B, BA7C, BA7D, BA7E, BA7F, BA7G
Rearrangements
11 problems — 11 solved
BA6A, BA6B, BA6C, BA6D, BA6E, BA6F, BA6G, BA6H, BA6I, BA6J, BA6K
Every problem
| Problem | Title | Status | Section | Runs in | Checked |
|---|---|---|---|---|---|
| BA1A | Compute the Number of Times a Pattern Appears in a Text | solved | Strings | browser + CLI | verified by bl test |
| BA1B | Find the Most Frequent Words in a String | solved | Strings | browser + CLI | verified by bl test |
| BA1C | Find the Reverse Complement of a String | solved | Sequence | browser + CLI | verified by bl test |
| BA1D | Find All Occurrences of a Pattern in a String | solved | Strings | browser + CLI | verified by bl test |
| BA1G | Compute the Hamming Distance Between Two Strings | solved | Sequence | browser + CLI | verified by bl test |
| BA3A | Generate the k-mer Composition of a String | solved | Kmers | browser + CLI | verified by bl test |
| BA4A | Translate an RNA String into an Amino Acid String | solved | Translation | browser + CLI | verified by bl test |
| BA5G | Compute the Edit Distance Between Two Strings | solved | Alignment | browser + CLI | verified by bl test |
| BA9G | Construct the Suffix Array of a String | solved | Strings | browser + CLI | verified by bl test |
| BA1E | Find Patterns Forming Clumps in a String | solved | Strings | browser + CLI | verified by bl test |
| BA1F | Find a Position in a Genome Minimizing the Skew | solved | Genomics | browser + CLI | verified by bl test |
| BA1H | Find All Approximate Occurrences of a Pattern | solved | Strings | browser + CLI | verified by bl test |
| BA1I | Most Frequent Words with Mismatches | solved | Strings | browser + CLI | verified by bl test |
| BA1J | Frequent Words with Mismatches and Reverse Complements | solved | Strings | browser + CLI | verified by bl test |
| BA1K | Generate the Frequency Array of a String | solved | Kmers | browser + CLI | verified by bl test |
| BA1L | Implement PatternToNumber | solved | Kmers | browser + CLI | verified by bl test |
| BA1M | Implement NumberToPattern | solved | Kmers | browser + CLI | verified by bl test |
| BA1N | Generate the d-Neighborhood of a String | solved | Strings | browser + CLI | verified by bl test |
| BA2A | Implement MotifEnumeration | solved | Strings | browser + CLI | verified by bl test |
| BA2B | Find a Median String | solved | Strings | browser + CLI | verified by bl test |
| BA2C | Find a Profile-most Probable k-mer | solved | Motifs | browser + CLI | verified by bl test |
| BA2H | Implement DistanceBetweenPatternAndStrings | solved | Strings | browser + CLI | verified by bl test |
| BA3B | Reconstruct a String from its Genome Path | solved | Assembly | browser + CLI | verified by bl test |
| BA3C | Construct the Overlap Graph of a Collection of k-mers | solved | Assembly | browser + CLI | verified by bl test |
| BA3D | Construct the De Bruijn Graph of a String | solved | Assembly | browser + CLI | verified by bl test |
| BA3E | Construct the De Bruijn Graph of a Collection of k-mers | solved | Assembly | browser + CLI | verified by bl test |
| BA5A | Find the Minimum Number of Coins Needed to Make Change | solved | Dynamic programming | browser + CLI | verified by bl test |
| BA5C | Find a Longest Common Subsequence of Two Strings | solved | Dynamic programming | browser + CLI | verified by bl test |
| BA5E | Find a Highest-Scoring Alignment of Two Strings | solved | Alignment | browser + CLI | verified by bl test |
| BA5F | Find a Highest-Scoring Local Alignment of Two Strings | solved | Alignment | browser + CLI | verified by bl test |
| BA5H | Find a Highest-Scoring Fitting Alignment of Two Strings | solved | Alignment | browser + CLI | verified by bl test |
| BA5I | Find a Highest-Scoring Overlap Alignment of Two Strings | solved | Alignment | browser + CLI | verified by bl test |
| BA5J | Align Two Strings Using Affine Gap Penalties | solved | Alignment | browser + CLI | verified by bl test |
| BA8A | Implement FarthestFirstTraversal | solved | Clustering | browser + CLI | verified by bl test |
| BA8B | Compute the Squared Error Distortion | solved | Clustering | browser + CLI | verified by bl test |
| BA8C | Implement the Lloyd Algorithm for k-Means Clustering | solved | Clustering | browser + CLI | verified by bl test |
| BA9D | Find the Longest Repeat in a String | solved | Strings | browser + CLI | verified by bl test |
| BA9E | Find the Longest Substring Shared by Two Strings | solved | Strings | browser + CLI | verified by bl test |
| BA9I | Construct the Burrows-Wheeler Transform of a String | solved | Strings | browser + CLI | verified by bl test |
| BA9J | Reconstruct a String from its Burrows-Wheeler Transform | solved | Strings | browser + CLI | verified by bl test |
| BA10A | Compute the Probability of a Hidden Path | solved | Hmm | browser + CLI | verified by bl test |
| BA10B | Compute the Probability of an Outcome Given a Hidden Path | solved | Hmm | browser + CLI | verified by bl test |
| BA10C | Implement the Viterbi Algorithm | solved | Hmm | browser + CLI | verified by bl test |
| BA10D | Compute the Probability of a String Emitted by an HMM | solved | Hmm | browser + CLI | verified by bl test |
| BA10J | Solve the Soft Decoding Problem | solved | Hmm | browser + CLI | verified by bl test |
| BA10H | Estimate the Parameters of an HMM | solved | Hmm | browser + CLI | verified by bl test |
| BA10I | Implement Viterbi Learning | solved | Hmm | browser + CLI | verified by bl test |
| BA10K | Implement Baum-Welch Learning | solved | Hmm | browser + CLI | verified by bl test |
| BA10E | Construct a Profile HMM | solved | Hmm | browser + CLI | verified by bl test |
| BA10F | Construct a Profile HMM with Pseudocounts | solved | Hmm | browser + CLI | verified by bl test |
| BA10G | Perform a Multiple Sequence Alignment with a Profile HMM | solved | Hmm | browser + CLI | verified by bl test |
| BA2D | Implement GreedyMotifSearch | solved | Motifs | browser + CLI | verified by bl test |
| BA2E | Implement GreedyMotifSearch with Pseudocounts | solved | Motifs | browser + CLI | verified by bl test |
| BA2F | Implement RandomizedMotifSearch | solved | Motifs | browser + CLI | verified by bl test |
| BA2G | Implement GibbsSampler | solved | Motifs | browser + CLI | verified by bl test |
| BA3F | Find an Eulerian Cycle in a Graph | solved | Graphs | browser + CLI | verified by bl test |
| BA3G | Find an Eulerian Path in a Graph | solved | Graphs | browser + CLI | verified by bl test |
| BA3H | Reconstruct a String from its k-mer Composition | solved | Assembly | browser + CLI | verified by bl test |
| BA3I | Find a k-Universal Circular String | solved | Assembly | browser + CLI | verified by bl test |
| BA3J | Reconstruct a String from its Paired Composition | solved | Assembly | browser + CLI | verified by bl test |
| BA4B | Find Substrings of a Genome Encoding a Given Amino Acid String | solved | Translation | browser + CLI | verified by bl test |
| BA4C | Generate the Theoretical Spectrum of a Cyclic Peptide | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4D | Compute the Number of Peptides of Given Total Mass | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4E | Find a Cyclic Peptide with Theoretical Spectrum Matching an Ideal Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4F | Compute the Score of a Cyclic Peptide Against a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4G | Implement LeaderboardCyclopeptideSequencing | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4H | Generate the Convolution of a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4I | Implement ConvolutionCyclopeptideSequencing | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4J | Generate the Theoretical Spectrum of a Linear Peptide | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4K | Compute the Score of a Linear Peptide Against a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4L | Trim a Peptide Leaderboard | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA4M | Solve the Turnpike Problem | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA5B | Find the Length of a Longest Path in a Manhattan-like Grid | solved | Dynamic programming | browser + CLI | verified by bl test |
| BA5D | Find the Longest Path in a DAG | solved | Dynamic programming | browser + CLI | verified by bl test |
| BA5K | Find a Middle Edge in an Alignment Graph in Linear Space | solved | Alignment | browser + CLI | verified by bl test |
| BA5L | Align Two Strings Using Linear Space | solved | Alignment | browser + CLI | verified by bl test |
| BA5M | Find a Highest-Scoring Multiple Sequence Alignment | solved | Alignment | browser + CLI | verified by bl test |
| BA5N | Find a Topological Ordering of a DAG | solved | Graphs | browser + CLI | verified by bl test |
| BA8D | Implement the Soft k-Means Clustering Algorithm | solved | Clustering | browser + CLI | verified by bl test |
| BA8E | Implement Hierarchical Clustering | solved | Clustering | browser + CLI | verified by bl test |
| BA7A | Compute Distances Between Leaves | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7B | Compute Limb Length | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7C | Implement AdditivePhylogeny | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7D | Implement UPGMA | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7E | Implement the Neighbor Joining Algorithm | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7F | Implement SmallParsimony | solved | Phylogeny | browser + CLI | verified by bl test |
| BA7G | Adapt SmallParsimony to Unrooted Trees | solved | Phylogeny | browser + CLI | verified by bl test |
| BA9A | Construct a Trie from a Collection of Patterns | solved | Strings | browser + CLI | verified by bl test |
| BA9B | Implement TrieMatching | solved | Strings | browser + CLI | verified by bl test |
| BA9H | Pattern Matching with the Suffix Array | solved | Strings | browser + CLI | verified by bl test |
| BA9K | Generate the Last-to-First Mapping of a String | solved | Strings | browser + CLI | verified by bl test |
| BA9L | Implement BWMatching | solved | Strings | browser + CLI | verified by bl test |
| BA9M | Implement BetterBWMatching | solved | Strings | browser + CLI | verified by bl test |
| BA9Q | Construct the Partial Suffix Array of a String | solved | Strings | browser + CLI | verified by bl test |
| BA9C | Construct the Suffix Tree of a String | solved | Strings | browser + CLI | verified by bl test |
| BA9F | Find the Shortest Non-Shared Substring of Two Strings | solved | Strings | browser + CLI | verified by bl test |
| BA9N | Find All Occurrences of a Collection of Patterns in a String | solved | Strings | browser + CLI | verified by bl test |
| BA9O | Find All Approximate Occurrences of a Collection of Patterns in a String | solved | Strings | browser + CLI | verified by bl test |
| BA9P | Implement TreeColoring | solved | Strings | browser + CLI | verified by bl test |
| BA6A | Implement GreedySorting to Sort a Permutation by Reversals | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6B | Compute the Number of Breakpoints in a Permutation | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6C | Compute the 2-Break Distance Between a Pair of Genomes | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6D | Find a Shortest Transformation of One Genome into Another by 2-Breaks | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6E | Find All Shared k-mers of a Pair of Strings | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6F | Implement ChromosomeToCycle | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6G | Implement CycleToChromosome | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6H | Implement ColoredEdges | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6I | Implement GraphToGenome | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6J | Implement 2-BreakOnGenomeGraph | solved | Rearrangements | browser + CLI | verified by bl test |
| BA6K | Implement 2-BreakOnGenome | solved | Rearrangements | browser + CLI | verified by bl test |
| BA11A | Construct the Graph of a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11B | Implement DecodingIdealSpectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11C | Convert a Peptide into a Peptide Vector | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11D | Convert a Peptide Vector into a Peptide | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11E | Sequence a Peptide | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11F | Find a Highest-Scoring Peptide in a Proteome against a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11G | Implement PSMSearch | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11H | Compute the Size of a Spectral Dictionary | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11I | Compute the Probability of a Spectral Dictionary | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA11J | Find a Highest-Scoring Modified Peptide against a Spectrum | solved | Mass spectrometry | browser + CLI | verified by bl test |
| BA3K | Generate Contigs from a Collection of Reads | solved | Assembly | browser + CLI | verified by bl test |
| BA3L | Construct a String Spelled by a Gapped Genome Path | solved | Assembly | browser + CLI | verified by bl test |
| BA3M | Generate All Maximal Non-Branching Paths in a Graph | solved | Graphs | browser + CLI | verified by bl test |
| BA9R | Construct a Suffix Tree from a Suffix Array | solved | Strings | browser + CLI | verified by bl test |