1 /* mmdbapi2.h 2 * =========================================================================== 3 * 4 * PUBLIC DOMAIN NOTICE 5 * National Center for Biotechnology Information (NCBI) 6 * 7 * This software/database is a "United States Government Work" under the 8 * terms of the United States Copyright Act. It was written as part of 9 * the author's official duties as a United States Government employee and 10 * thus cannot be copyrighted. This software/database is freely available 11 * to the public for use. The National Library of Medicine and the U.S. 12 * Government do not place any restriction on its use or reproduction. 13 * We would, however, appreciate having the NCBI and the author cited in 14 * any work or product based on this material 15 * 16 * Although all reasonable efforts have been taken to ensure the accuracy 17 * and reliability of the software and data, the NLM and the U.S. 18 * Government do not and cannot warrant the performance or results that 19 * may be obtained by using this software or data. The NLM and the U.S. 20 * Government disclaim all warranties, express or implied, including 21 * warranties of performance, merchantability or fitness for any particular 22 * purpose. 23 * 24 * =========================================================================== 25 * 26 * File Name: mmdbapi2.h 27 * 28 * Author: Christopher Hogue 29 * 30 * Version Creation Date: 07/24/95 31 * 32 * $Revision: 6.2 $ 33 * 34 * File Description: Traversers & Data Lookup 35 * 36 * Modifications: 37 * -------------------------------------------------------------------------- 38 * Date Name Description of modification 39 * ------- ---------- ----------------------------------------------------- 40 * 95/08/28 C. Hogue Major change to new Biostruc ASN.1 v4.0, 41 * PDB file generators, Kinemage file moved to 42 * mmdbapi3.h 43 * Model nodes and Dictionaries altered... 44 * 45 * 95/08/30 C. Hogue Moved globals into mmdbapi2.c 46 * 47 * 48 * $Log: mmdbapi2.h,v $ 49 * Revision 6.2 2000/03/31 22:30:47 lewisg 50 * fix output of CONECT, create intrabond traverser, misc bugs 51 * 52 * Revision 6.1 1999/03/30 22:31:12 ywang 53 * add GetMGFromMM & GetMMFromMSDBySeqId 54 * 55 * Revision 6.0 1997/08/25 18:11:06 madden 56 * Revision changed to 6.0 57 * 58 * Revision 5.4 1997/06/19 18:40:05 vakatov 59 * [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization 60 * 61 * Revision 5.3 1997/03/19 16:48:40 hogue 62 * Added fn SeqStringFromMol. 63 * 64 * Revision 5.2 1997/01/31 21:41:12 hogue 65 * removed a static function that Denis complained about. 66 * 67 * Revision 5.1 1997/01/27 21:41:10 hogue 68 * Added function to find a chain based on PDB chain code (char) 69 * 70 * Revision 5.0 1996/05/28 14:02:09 ostell 71 * Set to revision 5.0 72 * 73 * Revision 1.7 1996/05/22 20:43:48 hogue 74 * Added new API functions GetFirstGraph, GetNextGraph, GetPrevGraph, GetMainAtom 75 * 76 * Revision 1.6 1995/10/07 15:31:31 hogue 77 * Selenium not an ion... 78 * 79 * Revision 1.5 1995/09/05 19:11:08 hogue 80 * Enlarged virtual bond size for old 1HDS sizes, unknown elements fix. 81 * 82 * Revision 1.4 1995/08/30 19:36:44 kans 83 * numerous changes 84 * 85 * Revision 1.3 1995/08/28 19:31:53 kans 86 * version 4.1 87 * 88 * Revision 1.1 1995/08/02 17:07:15 kans 89 * Initial revision 90 * 91 * 92 * ========================================================================== 93 */ 94 /***************************************************************************** 95 * 96 * mmdbapi2.h 97 * 98 * UNDER CONSTRUCTION NOTICE. 99 * SUBJECT TO RADICAL CHANGES... 100 * 101 * programmer C.W.V. Hogue 102 * created: 24 JULY 95 103 * last mod: 28 AUGUST 95 104 *****************************************************************************/ 105 106 #ifndef _MMDBAPI2_ 107 #define _MMDBAPI2_ 108 109 110 #define TRAVERSE_ALL 0 111 #define TRAVERSE_MOLECULE 1 112 #define TRAVERSE_GRAPH 2 113 #define TRAVERSE_ATOM 3 114 #define TRAVERSE_BOND 4 115 #define TRAVERSE_SOLID 5 116 #define TRAVERSE_IBOND 6 117 /* traverse all intraresidue bonds for a structure */ 118 #define TRAVERSE_INTRABOND 7 119 120 #define VIRTUAL_BOND_CHOICE 7 121 122 #define VIRTUAL_BOND_AA_MAX 4.5 123 #define VIRTUAL_BOND_AA_MAX_SQ 20.25 124 125 #define VIRTUAL_BOND_NA_MAX 7.8 126 #define VIRTUAL_BOND_NA_MAX_SQ 60.84 127 128 #define MAX_NCBIstdaa 26 129 #define MAX_NCBI4na 17 130 #define USE_UPPERCASE 1 131 #define USE_LOWERCASE 2 132 #define USE_MIXCASE 3 133 #define USE_FULLNAME 4 134 135 #define MAX_ELEMENTS 105 136 #define MAX_NOT_ION 17 137 138 139 140 /* FUNCTION PROTOTYPES */ 141 142 #undef NLM_EXTERN 143 #ifdef NLM_IMPORT 144 #define NLM_EXTERN NLM_IMPORT 145 #else 146 #define NLM_EXTERN extern 147 #endif 148 149 #ifdef __cplusplus 150 extern "C" { 151 #endif 152 153 Int2 LIBCALL TraverseSolids( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 154 Pointer ptr, pNodeFunc pfnCallMe); 155 Int2 LIBCALL TraverseIntraBonds( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 156 Pointer ptr, pNodeFunc pfnCallMe); 157 Int2 LIBCALL TraverseBonds( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 158 Pointer ptr, pNodeFunc pfnCallMe); 159 Int2 LIBCALL TraverseIBonds( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 160 Pointer ptr, pNodeFunc pfnCallMe); 161 Int2 LIBCALL TraverseAtoms( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 162 Pointer ptr, pNodeFunc pfnCallMe); 163 Int2 LIBCALL TraverseGraphs( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 164 Pointer ptr, pNodeFunc pfnCallMe); 165 Int2 LIBCALL TraverseMolecules( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex, 166 Pointer ptr, pNodeFunc pfnCallMe); 167 Int2 LIBCALL TraverseModels(DValNodePtr pdnModel, Int2 iTraverse, 168 Int4 iIndex, Pointer ptr, pNodeFunc pfnCallMe); 169 Int2 LIBCALL TraverseOneModel(DValNodePtr pdnModel, Int2 iTraverse, Int2 iModel, 170 Int4 iIndex, Pointer ptr, pNodeFunc pfnCallMe); 171 Int2 LIBCALL IndexFromNode(PFB pfbNode); 172 PMSD LIBCALL ToMSDParent(PFB pfbThis); 173 CharPtr LIBCALL ParentStrucName(PFB pfbThis); 174 PMGD LIBCALL GetParentGraph(PFB pfbThis); 175 CharPtr LIBCALL ParentGraphPDBNo(PFB pfbThis); 176 CharPtr LIBCALL ParentGraphPDBName(PFB pfbThis); 177 CharPtr LIBCALL ParentGraphIUPAC1(PFB pfbThis); 178 Int2 LIBCALL ParentGraphNum(PFB pfbThis); 179 PMMD LIBCALL GetParentMol(PFB pfbThis); 180 CharPtr LIBCALL ParentMolName(PFB pfbThis); 181 Int2 LIBCALL ParentMolNum(PFB pfbThis); 182 PFB LIBCALL PFBFromVN(ValNodePtr pvnModel); 183 PFB LIBCALL PFBFromDN(DValNodePtr pdnModel); 184 DValNodePtr DNFromPFB(PFB pfbThis); 185 Int2 LIBCALL SetActiveModel(PFB pfbThis, Int2 iModel); 186 Int2 LIBCALL GetActiveModel(PFB pfbThis); 187 PALD LIBCALL GetAtomLocs(PMAD pmadThis, Int2 iModel); 188 PALD LIBCALL GetLocation(PALD paldList, Int2 iCoord, Char cAlt); 189 NLM_EXTERN Int4 LIBCALL AssignAtomLocId(PDNMS pdnmsThis); 190 CharPtr LIBCALL ElementName(Int1 iAtomicNo); 191 FloatLo LIBCALL ElementSize(Int1 iAtomicNo); 192 CharPtr LIBCALL AminoAcidName(Char cThis, Int2 iRetCode); 193 CharPtr LIBCALL AminoAcidNameFromIdx(Int2 iIndex, Int2 iRetCode); 194 void LIBCALLBACK SetBackBone(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr); 195 NLM_EXTERN void LIBCALL AssignBackBone(PDNMS pdnmsThis); 196 FloatLo LIBCALL AtomDistanceSq(PMAD pmadFrom, PMAD pmadTo, Int2 iModel, Char cAlt); 197 void LIBCALLBACK LinkAlpha(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr); 198 void LIBCALLBACK SetVirtualBB(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr); 199 NLM_EXTERN void LIBCALL AssignVirtual(PDNMS pdnmsThis); 200 void LIBCALLBACK SetIons(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr); 201 NLM_EXTERN void LIBCALL AssignIons(PDNMS pdnmsThis); 202 PDNMG LIBCALL GetFirstGraph(PMMD pmmdThis); 203 PDNMG LIBCALL GetLastGraph(PMMD pmmdThis); 204 PDNMG LIBCALL GetNextGraph(PDNMG pdnmgThis); 205 PDNMG LIBCALL GetPrevGraph(PDNMG pdnmgThis); 206 PMAD LIBCALL GetMainAtom(PDNMG pdnmgThis); 207 void LIBCALLBACK FindMolByChar(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr); 208 PDNMM LIBCALL MolFromPDBChain(PDNMS pdnmsThis, char c); 209 CharPtr LIBCALL SeqStringFromMol(PDNMM pdnmmThis); 210 PMGD LIBCALL GetMGFromMM(PMMD pmmdThis, Int4 iRes); 211 PMMD LIBCALL GetMMFromMSDBySeqId(PMSD pmsdThis, SeqIdPtr sip); 212 213 214 #ifdef __cplusplus 215 } 216 #endif 217 218 #undef NLM_EXTERN 219 #ifdef NLM_EXPORT 220 #define NLM_EXTERN NLM_EXPORT 221 #else 222 #define NLM_EXTERN 223 #endif 224 225 #endif 226