Mercurial > repos > deepakjadmin > mayatool3_test3
view mayachemtools/docs/modules/man3/PDBFileUtil.3 @ 9:ab29fa5c8c1f draft default tip
Uploaded
author | deepakjadmin |
---|---|
date | Thu, 15 Dec 2016 14:18:03 -0500 |
parents | 73ae111cf86f |
children |
line wrap: on
line source
.\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "PDBFILEUTIL 1" .TH PDBFILEUTIL 1 "2015-03-29" "perl v5.14.2" "MayaChemTools" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" PDBFileUtil .SH "SYNOPSIS" .IX Header "SYNOPSIS" use PDBFileUtil ; .PP use PDBFileUtil qw(:all); .SH "DESCRIPTION" .IX Header "DESCRIPTION" \&\fBPDBFileUtil\fR module provides the following functions: .PP GenerateAtomOrHetatmRecordLine, GenerateAtomRecordLine, GenerateConectRecordLine, GenerateEndRecordLine, GenerateHeaderRecordLine, GenerateHeaderRecordTimeStamp, GenerateHetatmRecordLine, GenerateTerRecordLine, GetAllResidues, GetChainsAndResidues, GetConectRecordLines, GetExperimentalTechnique, GetExperimentalTechniqueResolution, GetMinMaxCoords, GetPDBRecordType, GetRecordTypesCount, IsAtomRecordType, IsConectRecordType, IsEndmdlRecordType, IsHeaderRecordType, IsHetatmRecordType, IsMasterRecordType, IsModelRecordType, IsPDBFile, IsSeqresRecordType, IsTerRecordType, ParseAtomOrHetatmRecordLine, ParseAtomRecordLine, ParseConectRecordLine, ParseExpdtaRecordLine, ParseHeaderRecordLine, ParseHetatmRecordLine, ParseMasterRecordLine, ParseRemark2ResolutionRecordLine, ParseSeqresRecordLine, ParseTerRecordLine, ReadPDBFile .SH "METHODS" .IX Header "METHODS" .IP "\fBGenerateAtomOrHetatmRecordLine\fR" 4 .IX Item "GenerateAtomOrHetatmRecordLine" .Vb 5 \& $RecordLine = GenerateAtomOrHetatmRecordLine($RecordType, \& $AtomNumber, $AtomName, $AlternateLocation, $ResidueName, \& $ChainID, $ResidueNumber, $InsertionCode, $X, $Y, $Z, \& $Occupancy, $TemperatureFactor, $SegmentID, \& $ElementSymbol, $AtomCharge); .Ve .Sp Returns \s-1ATOM\s0 or \s-1HETATM\s0 record line. .IP "\fBGenerateAtomRecordLine\fR" 4 .IX Item "GenerateAtomRecordLine" .Vb 4 \& $RecordLine = GenerateAtomRecordLine($AtomNumber, \& $AtomName, $AlternateLocation, $ResidueName, $ChainID, \& $ResidueNumber, $InsertionCode, $X, $Y, $Z, $Occupancy, \& $TemperatureFactor, $SegmentID, $ElementSymbol, $AtomCharge); .Ve .Sp Returns \s-1ATOM\s0 record line. .IP "\fBGenerateConectRecordLine\fR" 4 .IX Item "GenerateConectRecordLine" .Vb 4 \& $RecordLine = GenerateConectRecordLine($AtomNum, $BondedAtomNum1, \& $BondedAtomNum2, $BondedAtomNum3, $BondedAtomNum4, \& $HBondedAtomNum1, $HBondedAtomNum2, $SaltBridgedAtomNum1, \& $HBondedAtomNum3, $HBondedAtomNum4, $SaltBridgedAtomNum2); .Ve .Sp Returns \s-1CONECT\s0 record line. .IP "\fBGenerateHeaderRecordLine\fR" 4 .IX Item "GenerateHeaderRecordLine" .Vb 2 \& $RecordLine = GenerateHeaderRecordLine($IDCode, [$Classification, \& $Date]); .Ve .Sp Returns \s-1HEADER\s0 record line. .IP "\fBGenerateHeaderRecordTimeStamp\fR" 4 .IX Item "GenerateHeaderRecordTimeStamp" .Vb 1 \& $Date = GenerateHeaderRecordTimeStamp(); .Ve .Sp Returns \s-1PDB\s0 header time stamp. .IP "\fBGenerateHetatmRecordLine\fR" 4 .IX Item "GenerateHetatmRecordLine" .Vb 4 \& $RecordLine = GenerateHetatmRecordLine($AtomNumber, $AtomName, \& $AlternateLocation, $ResidueName, $ChainID, $ResidueNumber, \& $InsertionCode, $X, $Y, $Z, $Occupancy, $TemperatureFactor, \& $SegmentID, $ElementSymbol, $AtomCharge); .Ve .Sp Returns \s-1HETATM\s0 record line. .IP "\fBGenerateEndRecordLine\fR" 4 .IX Item "GenerateEndRecordLine" .Vb 1 \& $RecordLine = GenerateEndRecordLine(); .Ve .Sp Returns \s-1END\s0 record line. .IP "\fBGenerateTerRecordLine\fR" 4 .IX Item "GenerateTerRecordLine" .Vb 2 \& $RecordLine = GenerateTerRecordLine($SerialNumber, [$ResidueName, \& $ChainID, $ResidueNumber, $InsertionCode]); .Ve .Sp Returns \s-1TER\s0 record line. .IP "\fBGetAllResidues\fR" 4 .IX Item "GetAllResidues" .Vb 1 \& $ResiduesDataRef = GetAllResidues($PDBRecordLinesRef); .Ve .Sp Gets residue information using \s-1ATOM/HETATM\s0 records and returns a reference to a hash with following key/value pairs: .Sp .Vb 9 \& $ResiduesDataRef\->{ResidueNames} \- Array of all the residues \& $ResiduesDataRef\->{ResidueCount}{$ResidueName} \- Count of residues \& $ResiduesDataRef\->{AtomResidueNames}} \- Array of all ATOM residues \& $ResiduesDataRef\->{AtomResidueCount}{$ResidueName} \- Count of \& residues in ATOM records \& $ResiduesDataRef\->{HetatomResidueNames} \- List of all HETATM \& residues \& $ResiduesDataRef\->{HetatmResidueCount}{$ResidueName} \- Count of \& residues HETATM records .Ve .Sp \&\s-1ATOM/HETATM\s0 records after the first \s-1ENDMDL\s0 records are simply ingnored. .IP "\fBGetChainsAndResidues\fR" 4 .IX Item "GetChainsAndResidues" .Vb 3 \& $ChainsDataRef = GetChainsAndResidues($PDBRecordLinesRef, \& [$RecordsSource, $GetChainResiduesBeyondTERFlag, \& $GetRecordLinesFlag]); .Ve .Sp Gets chains and residue information using \s-1ATOM/HETATM\s0 or \s-1SEQRES\s0 records and returns a reference to a hash with these keys: .Sp .Vb 6 \& $ChainsDataRef\->{ChainIDs} \- List of chain IDs with \*(AqNone\*(Aq for \& no IDs \& $ChainsDataRef\->{Residues}{$ChainID} \- List of residues in order \& of their appearance in a chain \& $ChainsDataRef\->{ResidueCount}{$ChainID}{$ResidueName} \- Count of \& residues in a chain .Ve .Sp Chains and residue data can be extacted using either \s-1ATOM/HETATM\s0 records or \s-1SEQRES\s0 records. \&\s-1ATOM/HETATM\s0 records after the first \s-1ENDMDL\s0 records are simply ingnored. .IP "\fBGetConectRecordLines\fR" 4 .IX Item "GetConectRecordLines" .Vb 2 \& $ConectRecordLinesRef = GetConectRecordLines($PDBRecordLinesRef, \& $AtomNumbersMapRef); .Ve .Sp Collects \s-1CONECT\s0 record lines for specific atom number, modified specified data to exclude any atom number not present in the list of specified atom numbers and returns a reference to list of \&\s-1CONECT\s0 record lines. .IP "\fBGetExperimentalTechnique\fR" 4 .IX Item "GetExperimentalTechnique" .Vb 1 \& $ExperimentalTechnique = GetExperimentalTechnique($PDBRecordLinesRef); .Ve .Sp Returns \fIExperimentalTechnique\fR value retrieved from \s-1EXPDATA\s0 record line. .IP "\fBGetExperimentalTechniqueResolution\fR" 4 .IX Item "GetExperimentalTechniqueResolution" .Vb 2 \& ($Resolution, $ResolutionUnits) = GetExperimentalTechniqueResolution( \& $PDBRecordLinesRef); .Ve .Sp Returns \fIResolution\fR and \fIResolutionUnits\fR values from \s-1REMARK\s0 2 \s-1RESOLUTION\s0 record line. .IP "\fBGetMinMaxCoords\fR" 4 .IX Item "GetMinMaxCoords" .Vb 2 \& ($XMin, $YMin, $ZMin, $XMax, $YMax, $ZMax) = \& GetMinMaxCoords($PDBRecordLinesRef); .Ve .Sp Returns minimum and maximum \s-1XYZ\s0 coordinates for \s-1ATOM/HETATM\s0 records. .IP "\fBGetPDBRecordType\fR" 4 .IX Item "GetPDBRecordType" .Vb 1 \& $RecordType = GetPDBRecordType($RecordLine); .Ve .Sp Returns type of \fIRecordLine\fR. .IP "\fBGetRecordTypesCount\fR" 4 .IX Item "GetRecordTypesCount" .Vb 2 \& $RecordTypeDataRef = GetRecordTypesCount($PDBRecordLinesRef, \& [$SpecifiedRecordType, $GetRecordLinesFlag]); .Ve .Sp Counts the number of each record type or a \f(CW$SpecifiedRecordType\fR and returns a reference to data type with following key/value pairs: .Sp .Vb 5 \& $RecordTypeDataRef\->{RecordTypes} \- An array of unique record types \& in order of their presence in the file \& $RecordTypeDataRef\->{Count}{$RecordType} \- Count of each record type \& $RecordTypeDataRef\->{Lines}{$RecordType} \- Optional lines data for a \& specific record type. .Ve .IP "\fBIsAtomRecordType\fR" 4 .IX Item "IsAtomRecordType" .Vb 1 \& $Status = IsAtomRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1ATOM\s0 record line. .IP "\fBIsConectRecordType\fR" 4 .IX Item "IsConectRecordType" .Vb 1 \& $Status = IsAtomConectType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1CONECT\s0 record line. .IP "\fBIsEndmdlRecordType\fR" 4 .IX Item "IsEndmdlRecordType" .Vb 1 \& $Status = IsEndmdlRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1ENDMDL\s0 a record line. .IP "\fBIsHeaderRecordType\fR" 4 .IX Item "IsHeaderRecordType" .Vb 1 \& $Status = IsHeaderRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1HEADER\s0 a record line. .IP "\fBIsHetatmRecordType\fR" 4 .IX Item "IsHetatmRecordType" .Vb 1 \& $Status = IsHetatmRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1HETATM\s0 a record line. .IP "\fBIsMasterRecordType\fR" 4 .IX Item "IsMasterRecordType" .Vb 1 \& $Status = IsMasterRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1MASTER\s0 a record line. .IP "\fBIsModelRecordType\fR" 4 .IX Item "IsModelRecordType" .Vb 1 \& $Status = IsModelRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1MODEL\s0 record line. .IP "\fBIsPDBFile\fR" 4 .IX Item "IsPDBFile" .Vb 1 \& $Status = IsPDBFile($PDBFile); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1PDB\s0 file. .IP "\fBIsSeqresRecordType\fR" 4 .IX Item "IsSeqresRecordType" .Vb 1 \& $Status = IsSeqresRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's \s-1SEQRES\s0 a record line. .IP "\fBIsTerRecordType\fR" 4 .IX Item "IsTerRecordType" .Vb 1 \& $Status = IsTerRecordType($RecordLine); .Ve .Sp Returns 1 or 0 based on whether it's a \s-1TER\s0 record line. .IP "\fBParseAtomOrHetatmRecordLine\fR" 4 .IX Item "ParseAtomOrHetatmRecordLine" .Vb 4 \& ($AtomNumber, $AtomName, $AlternateLocation, $ResidueName, $ChainID, \& $ResidueNumber, $InsertionCode, $X, $Y, $Z, $Occupancy, \& $TemperatureFactor, $SegmentID, $ElementSymbol, $AtomCharge) = \& ParseAtomOrHetatmRecordLine($RecordLine); .Ve .Sp Parses \s-1ATOM\s0 or \s-1HETATM\s0 record line. .IP "\fBParseAtomRecordLine\fR" 4 .IX Item "ParseAtomRecordLine" .Vb 4 \& ($AtomNumber, $AtomName, $AlternateLocation, $ResidueName, $ChainID, \& $ResidueNumber, $InsertionCode, $X, $Y, $Z, $Occupancy, \& $TemperatureFactor, $SegmentID, $ElementSymbol, $AtomCharge) = \& ParseAtomRecordLine($RecordLine); .Ve .Sp Parses \s-1ATOM\s0 record line. .IP "\fBParseConectRecordLine\fR" 4 .IX Item "ParseConectRecordLine" .Vb 4 \& ($AtomNum, $BondedAtomNum1, $BondedAtomNum2, $BondedAtomNum3, \& $BondedAtomNum4, $HBondedAtomNum1, $HBondedAtomNum2, \& $SaltBridgedAtomNum1, $HBondedAtomNum3, $HBondedAtomNum4, \& $SaltBridgedAtomNum2) = ParseConectRecordLine($RecordLine); .Ve .Sp Parses \s-1CONECT\s0 record line. .IP "\fBParseExpdtaRecordLine\fR" 4 .IX Item "ParseExpdtaRecordLine" .Vb 1 \& ($ContinuationNum, $ExperimentalTechnique) = ParseExpdtaRecordLine($Line); .Ve .Sp Parses \s-1EXPDTA\s0 record line. .IP "\fBParseHeaderRecordLine\fR" 4 .IX Item "ParseHeaderRecordLine" .Vb 1 \& ($Classification, $DepositionDate, $IDCode) = ParseHeaderRecordLine($RecordLine); .Ve .Sp Parses \s-1HEADER\s0 record line .IP "\fBParseHetatmRecordLine\fR" 4 .IX Item "ParseHetatmRecordLine" .Vb 4 \& ($AtomNumber, $AtomName, $AlternateLocation, $ResidueName, $ChainID, \& $ResidueNumber, $InsertionCode, $X, $Y, $Z, $Occupancy, \& $TemperatureFactor, $SegmentID, $ElementSymbol, $AtomCharge) = \& ParseHetatmRecordLine($RecordLine); .Ve .Sp Parses \s-1HETATM\s0 record line. .IP "\fBParseMasterRecordLine\fR" 4 .IX Item "ParseMasterRecordLine" .Vb 5 \& ($NumOfRemarkRecords, $NumOfHetRecords, $NumOfHelixRecords, \& $NumOfSheetRecords, $NumOfTurnRecords, $NumOfSiteRecords, \& $NumOfTransformationsRecords, $NumOfAtomAndHetatmRecords, \& $NumOfTerRecords, $NumOfConectRecords, $NumOfSeqresRecords) = \& ParseMasterRecordLine($RecordLine); .Ve .Sp Parses \s-1MASTER\s0 ecord line. .IP "\fBParseRemark2ResolutionRecordLine\fR" 4 .IX Item "ParseRemark2ResolutionRecordLine" .Vb 2 \& ($Resolution, $ResolutionUnits) = ParseRemark2ResolutionRecordLine( \& $RecordLine); .Ve .Sp Parses \s-1REMARK\s0 2 \s-1RESOLUTION\s0 record line. .IP "\fBParseSeqresRecordLine\fR" 4 .IX Item "ParseSeqresRecordLine" .Vb 2 \& ($RecordSerialNumber, $ChainID, $NumOfResidues, $ResidueNames) = \& ParseSeqresRecordLine($RecordLine); .Ve .Sp Parses \s-1SEQRES\s0 record line. .IP "\fBParseTerRecordLine\fR" 4 .IX Item "ParseTerRecordLine" .Vb 2 \& ($SerialNumber, $ResidueName, $ChainID, $ResidueNumber, $InsertionCode) = \& ParseTerRecordLine($RecordLine); .Ve .Sp Parses \s-1TER\s0 record line. .IP "\fBReadPDBFile\fR" 4 .IX Item "ReadPDBFile" .Vb 1 \& $PDBRecordLinesRef = ReadPDBFile($PDBFile); .Ve .Sp Reads \s-1PDB\s0 file and returns reference to record lines. .SH "AUTHOR" .IX Header "AUTHOR" Manish Sud <msud@san.rr.com> .SH "SEE ALSO" .IX Header "SEE ALSO" FileUtil.pm, SequenceFileUtil.pm, TextUtil.pm .SH "COPYRIGHT" .IX Header "COPYRIGHT" Copyright (C) 2015 Manish Sud. All rights reserved. .PP This file is part of MayaChemTools. .PP MayaChemTools is free software; you can redistribute it and/or modify it under the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.