module Bio.PDB.EventParser.PDBEvents(
String,Vector3(..),ATID(..),RESID(..),PDBEvent(..),
StrandSenseT(..),HelixT(..),ExpMethod(..))
where
import Prelude hiding (String)
import qualified Data.ByteString.Char8 as BS
import Bio.PDB.EventParser.ExperimentalMethods
import Bio.PDB.EventParser.HelixTypes
import Bio.PDB.EventParser.StrandSense
import Bio.PDB.Common(String,Vector3(..))
newtype ATID = ATID (String, String, Char, Int, Char)
deriving(Show, Ord, Eq)
newtype RESID = RESID (String, Char, Int, Char)
deriving(Show, Ord, Eq)
data PDBEvent = ATOM { no :: !Int,
atomtype :: !String,
restype :: !String,
chain :: !Char,
resid :: !Int,
resins :: !Char,
altloc :: !Char,
coords :: !Vector3,
occupancy :: !Double,
bfactor :: !Double,
segid :: !String,
elt :: !String,
charge :: !String,
hetatm :: !Bool
} |
SIGATM { no :: !Int,
atomtype :: !String,
restype :: !String,
chain :: !Char,
resid :: !Int,
resins :: !Char,
altloc :: !Char,
coords :: !Vector3,
occupancy :: !Double,
bfactor :: !Double,
segid :: !String,
elt :: !String,
charge :: !String
} |
ANISOU { no :: !Int,
atomtype :: !String,
restype :: !String,
chain :: !Char,
resid :: !Int,
resins :: !Char,
altloc :: !Char,
u_1_1 :: !Int,
u_2_2 :: !Int,
u_3_3 :: !Int,
u_1_2 :: !Int,
u_1_3 :: !Int,
u_2_3 :: !Int,
segid :: !String,
elt :: !String,
charge :: !String
} |
SIGUIJ { no :: !Int,
atomtype :: !String,
restype :: !String,
chain :: !Char,
resid :: !Int,
resins :: !Char,
altloc :: !Char,
u_1_1 :: !Int,
u_2_2 :: !Int,
u_3_3 :: !Int,
u_1_2 :: !Int,
u_1_3 :: !Int,
u_2_3 :: !Int,
segid :: !String,
elt :: !String,
charge :: !String
} |
SEQRES { serial :: !Int,
chain :: !Char,
num :: !Int,
resList :: ![String] } |
HEADER { classification :: !String,
depDate :: !String,
idCode :: !String } |
TITLE { continuation :: !Int,
title :: !String } |
KEYWDS { continuation :: !Int,
aList :: ![String] } |
AUTHOR { continuation :: !Int,
aList :: ![String] } |
REMARK { num :: !Int,
text :: ![String] } |
EXPDTA { continuation :: !Int,
expMethods :: ![ExpMethod] } |
MDLTYP { continuation :: !Int,
aList :: ![String] } |
NUMMDL { num :: !Int } |
MODEL { num :: !Int } |
CONECT { atoms :: ![Int] } |
CAVEAT { cont :: !Int,
pdbid :: !String,
comment :: !String } |
DBREF { idCode :: !String,
chain :: !Char,
iniSeqNumPDB :: !Int,
iniInsCodePDB :: !Char,
endSeqNumPDB :: !Int,
endInsCodePDB :: !Char,
seqDbName :: !String,
seqDbAccCode :: !String,
seqDbIdCode :: !String,
iniSeqNumInDb :: !Int,
iniInsCodeInPDBRef :: !Char,
endSeqNumInDb :: !Int,
endInsCodeInPDBRef :: !Char } |
REVDAT { modNum :: !Int,
cont :: !Int,
modDat :: !String,
modId :: !String,
modTyp :: !Int,
details :: ![String] } |
HETNAM { cont :: !Int,
hetId :: !String,
name :: !String,
notSynonym :: !Bool } |
HET { hetId :: !String,
chain :: !Char,
seqNum :: !Int,
insCode :: !Char,
atmNum :: !Int,
description :: !String } |
FORMUL { compNum :: !Int,
hetId :: !String,
cont :: !Int,
isWater :: !Bool,
formula :: ![String] } |
CISPEP { serial :: !Int,
res1 :: !RESID,
res2 :: !RESID,
modNum :: !Int,
angle :: Maybe Double } |
HELIX { serial :: Int,
iniRes :: RESID,
endRes :: RESID,
helixClass :: HelixT,
comment :: String,
len :: Int } |
SHEET { strandId :: Int,
sheetId :: String,
numStrands :: Int,
sense :: Maybe StrandSenseT,
iniRes :: RESID,
endRes :: RESID,
curAt :: Maybe ATID,
prevAt :: Maybe ATID } |
ORIGXn { n :: Int,
o :: [Vector3],
t :: [Double] } |
SCALEn { n :: Int,
o :: [Vector3],
t :: [Double] } |
MTRIXn { serial :: !Int,
relMol :: !Bool,
n :: !Int,
o :: ![Vector3],
t :: ![Double] } |
CRYST1 { a :: !Double,
b :: !Double,
c :: !Double,
alpha :: !Double,
beta :: !Double,
gamma :: !Double,
spcGrp :: !String,
zValue :: !Int } |
COMPND { cont :: !Int,
tokens :: ![(String, String)]} |
SOURCE { cont :: !Int,
tokens :: ![(String, String)]} |
TER { num :: !Int,
resname :: !String,
chain :: !Char,
resid :: !Int,
insCode :: !Char } |
MASTER { numRemark :: !Int,
numHet :: !Int,
numHelix :: !Int,
numSheet :: !Int,
numTurn :: !Int,
numSite :: !Int,
numXform :: !Int,
numAts :: !Int,
numMaster :: !Int,
numConect :: !Int,
numSeqres :: !Int } |
END |
ENDMDL |
SITE { serial :: !Int,
siteid :: !String,
numres :: !Int,
residues :: ![RESID] } |
OBSLTE { cont :: !Int,
date :: !String,
this :: !String,
entries :: ![String] } |
SPRSDE { cont :: !Int,
date :: !String,
this :: !String,
entries :: ![String] } |
SPLIT { cont :: !Int,
codes :: ![String] } |
SSBOND { serial :: !Int,
res1 :: RESID,
res2 :: RESID,
symOp1 :: !String,
symOp2 :: !String,
bondLen :: !Double } |
LINK { at1 :: !ATID,
altloc1 :: !Char,
at2 :: !ATID,
altloc2 :: !Char,
symop1 :: !String,
symop2 :: !String,
linkdist :: Maybe Double } |
SLTBRG { at1 :: !ATID,
altloc1 :: !Char,
at2 :: !ATID,
altloc2 :: !Char,
symOp1 :: !String,
symOp2 :: !String } |
HYDBND { at1 :: !ATID,
altloc1 :: !Char,
atH :: !ATID,
altlocH :: !Char,
at2 :: !ATID,
altloc2 :: !Char,
symOp1 :: !String,
symOp2 :: !String } |
TVECT { serial :: !Int,
vec :: Vector3 } |
JRNL { cont :: !Int,
content :: ![(String, String)],
isFirst :: !Bool } |
MODRES { pdbCode :: !String,
residue :: !RESID,
stdRes :: !String,
comment :: !String } |
SEQADV { pdbId :: !String,
advResidue :: Maybe RESID,
database :: !String,
accessionCode :: !String,
dbResname :: !String,
dbSeqNum :: Maybe Int,
comment :: !String } |
PDBParseError !Int !Int !String |
PDBIgnoredLine BS.ByteString
deriving (Show, Eq)