BiobaseBlast-0.0.0.1: Biobase/SubstMatrix/Import.hs
module Biobase.SubstMatrix.Import where
import qualified Data.Array.IArray as A
import Control.Applicative
import Biobase.SubstMatrix
fromFile :: FilePath -> IO SubstMatrix
fromFile fname = do
(x:xs) <- dropWhile (("#"==).take 1) . lines <$> readFile fname
let cs = map head . words $ x -- should give us the characters encoding an amino acid
let ss = map (map read . drop 1 . words) $ xs
return $ A.accumArray (\_ z -> z) (-10) (('*','*'),('Z','Z')) [ ((k1,k2),z) | (k1,s) <- zip cs ss, (k2,z) <- zip cs s ]