{-# LANGUAGE DuplicateRecordFields #-}
module Bio.PDB.Type where
import Data.Text ( Text )
import Data.Array ( Array )
data Header = Header { classification :: Text
, depDate :: Text
, idCode :: Text
}
data Obsoleted = Obsoleted { repDate :: Text
, idCode :: Text
, rIdCode :: Array Int Text
}
data Caveat = Caveat { idCode :: Text
, comment :: Text
}
data Compound = Compound { molId :: Text
, molecule :: Text
, chain :: Array Int Text
, fragment :: Text
, synonym :: Array Int Text
, enzymeCommission :: Array Int Int
, engineered :: Bool
, mutation :: Bool
, otherDetails :: Array Int Text
}
data Organism = Organism { scientific :: Text
, common :: Text
, taxId :: Text
}
data ExpressionSystem = ExpressionSystem { name :: Text
, common :: Text
, taxId :: Text
, strain :: Text
, variant :: Text
, cellLine :: Text
, atcc :: Text
, organ :: Text
, tissue :: Text
, cell :: Text
, organelle :: Text
, cellularLocation :: Text
, vectorType :: Text
, vector :: Text
, plasmid :: Text
, gene :: Text
, otherDetails :: Text
}
data Source = Source { molId :: Text
, synthetic :: Text
, fragment :: Text
, organism :: Organism
, strain :: Text
, variant :: Text
, cellLine :: Text
, atcc :: Text
, tissue :: Text
, cell :: Text
, organelle :: Text
, secretion :: Text
, cellularLocation :: Text
, plasmid :: Text
, gene :: Text
, expressionSystem :: ExpressionSystem
, otherDetails :: Text
}
data Title = Title { header :: Header
, obsoleted :: Obsoleted
, title :: Text
, split :: Array Int Text
, caveat :: Caveat
, compound :: Array Int Compound
}
data PrimaryStructure = PrimaryStructure
data Heterogen = Heterogen
data Helix = Helix {
}
data Sheet = Sheet {
}
data Secondary = Secondary { helixes :: Array Int Helix
, sheets :: Array Int Sheet
}
data ConnectivityAnnotation = ConnectivityAnnotation
data Miscellaneous = Miscellaneous
data Transformation = Transformation
data Coordinate = Coordinate {
}
data Connectivity = Connectivity
data Bookkeeping = Bookkeeping
data PDB = PDB { title :: Title
, primaryStructure :: PrimaryStructure
, heterogen :: Heterogen
, secondary :: Secondary
, connectivityAnnotation :: ConnectivityAnnotation
, miscellaneous :: Miscellaneous
, transformation :: Transformation
, coordinate :: Coordinate
, connectivity :: Connectivity
, bookkeeping :: Bookkeeping
}