Anonymous user
Bioinformatics/Sequence mutation: Difference between revisions
m
→{{header|Haskell}}
Line 911:
type DNASequence = [DNABase]
data Result =
| InsertDeleted Mutation Int DNABase
instance Random DNABase where
Line 942 ⟶ 943:
mutateSequence :: DNASequence -> IO (Result, DNASequence)
mutateSequence [] = fail "empty dna sequence"
mutateSequence ds =
where
randomMutation = head . randoms <$> newStdGen
Line 948 ⟶ 949:
i <- randomIndex (length xs)
case m of
Swap -> randomDNA >>= \d -> pure (
Insert -> randomDNA >>= \d -> pure (
Delete -> pure (
where
dropElement i xs = take (pred i) xs <> drop i xs
Line 961 ⟶ 962:
mutate 0 s = pure s
mutate n s = do
(
case
mutate (pred n) ms
|