▶ this video is the best visualization of how the most popular type of DNA sequencer works (that I've found). Imagine you have a string of length 3 billion made by randomly choosing from 4 characters. Like this dna = ''.join(random.choices('atgc', weights=[30.9, 29.4, 19.9, 19.8], k=3_234_830_000)) you get to randomly sample 1 billion[3, page 7] overlapping substrings of length 200[3, page 7] with .1% of the characters randomly changed[3, page 8]. Trying to find the original string from this is technically an undecidable problem. If there's a sequence 400 characters long that repeats multiple times, how could you know if it repeats 5 times or 50 times? (this would be unlikely to happen with random.choices() but DNA isn't random). This is called sequence alignment and it's one of the hard problems in bioinformatics[4]. [0] [link] random.choices() was added in Python 3.6 [1] [link] source for `weights` [2] [link] source for 3_234_830_000 (python ignores underscores in numbers) [3] [link] illumina is the most popular producer of genome sequencers [4] [link]
in “No human genome has ever been completely sequenced” · View on HN