Safe Haskell | None |
---|
- parse :: String -> IO (Maybe Structure)
- write :: Structure -> String -> IO ()
- data Structure = Structure {}
- data Model = Model {}
- data Chain = Chain {}
- data Residue = Residue {}
- data Atom = Atom {}
- class Iterable a b where
- numAtoms :: Iterable a Atom => a -> Int
- numResidues :: Iterable a Residue => a -> Int
- numChains :: Iterable a Chain => a -> Int
- numModels :: Iterable a Model => a -> Int
- firstModel :: Iterable a Model => a -> Maybe Model
- resname2fastacode :: String -> Char
- fastacode2resname :: Char -> String
- (*|) :: Double -> Vec3D -> Vec3D
- (|*) :: Vec3D -> Double -> Vec3D
- vnorm :: Vec3D -> Double
- type Element = ByteString
- assignElement :: Atom -> Element
- atomicNumber :: Element -> Int
- atomicMass :: Element -> Double
- covalentRadius :: (Eq a1, Fractional a, Show a1, IsString a1) => a1 -> a
- vanDerWaalsRadius :: Element -> Double
Documentation
Structure holds all data parsed from a single PDB entry
PDB entry may contain multiple models, with slight differences in coordinates etc.
Single linear polymer chain of protein, or nucleic acids
Residue groups all atoms assigned to the same aminoacid or nucleic acid base within a polymer chain.
Single atom position | NOTE: disordered atoms are now reported as multiplicates
class Iterable a b whereSource
imapM :: Monad m => (b -> m b) -> a -> m aSource
imap :: (b -> b) -> a -> aSource
ifoldM :: Monad m => (c -> b -> m c) -> c -> a -> m cSource
ifoldr :: (b -> c -> c) -> c -> a -> cSource
ifoldl :: (c -> b -> c) -> c -> a -> cSource
numResidues :: Iterable a Residue => a -> IntSource
resname2fastacode :: String -> CharSource
Dictionary mapping three-letter PDB residue code to a single-letter FASTA code.
fastacode2resname :: Char -> StringSource
Dictionary mapping single-letter FASTA standard aminoacid code to a PDB residue name
(*|) :: Double -> Vec3D -> Vec3DSource
Scalar product. (*
indicates side on which one can put a scalar.)
(|*) :: Vec3D -> Double -> Vec3DSource
Scalar product. (*
indicates side on which one can put a scalar.)
type Element = ByteStringSource
Basic elemental parameters as suggested by CSD.
TODO: May be better as a newtype, and make sure that other modules use this declaration
assignElement :: Atom -> ElementSource
atomicNumber :: Element -> IntSource
Atomic number of a given element
atomicMass :: Element -> DoubleSource
Atomic mass of a given element in g/mol
covalentRadius :: (Eq a1, Fractional a, Show a1, IsString a1) => a1 -> aSource
vanDerWaalsRadius :: Element -> DoubleSource
Van der Waals radius of the given element