Sheffield-iGEM / syn-zeug

A modern toolbox for synthetic biology
https://sheffield-igem.github.io/syn-zeug/
GNU Affero General Public License v3.0
6 stars 3 forks source link

Implement New Tool: "Shuffle Sequence" #17

Open TheLostLambda opened 2 years ago

TheLostLambda commented 2 years ago

What should this tool do? Randomly shuffles a DNA, RNA, or Protein sequence.

Is there an existing reference implementation? There is an SMS version here, but it may be tricky to compare as this function is inherently random.

What are the tool's inputs? A sequence of any type

What is the tool's output? A shuffled sequence of the same type as the input

Other Implementation Details This shouldn't be hard to implement using the rand crate (there is a nice method for this).

It may be difficult to test this function, so we might need to rely on some statistics. Base counts and length should remain the same obviously, but I assume the hamming distance between pre and post-shuffled sequences will be normally distributed? That will need some investigation and maths.