Turner file parser. Returns a Turner2004 data structure. We store data in the same way it is stored in the ViennaRNA package. Pairs are tuples however.
How is stack
data stored:
AX UY -> ((A,U),(Y,X))
How iloop1x1
is stored:
X A G U C -> ((A,U),(C,G),X,Y) Y
Now iloop1x2
is stored:
X A G U C -> ((A,U),(C,G),X,C,Y), single (X) first, then 5' to 3' YC
iloop2x2
is stored:
XY A G U C -> ((A,U),(C,G),X,Y,y,x), X-->Y then x<--y xy
TODO not sure if dangle3/dangle5 are correctly split or if they should switch
Documentation
parseTurner :: [Char] -> [Char] -> [Char] -> IO (Turner2004 (Nucleotide, Nucleotide) Nucleotide Double)Source