|
NCBI Home IEB Home C Toolkit docs C++ Toolkit source browser C Toolkit source browser (2) |
NCBI C Toolkit Cross ReferenceC/biostruc/mmdbapi1.h |
source navigation diff markup identifier search freetext search file search |
1 /* mmdbapi1.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: mmdbapi1.h
27 *
28 * Author: Christopher Hogue
29 *
30 * Version Creation Date: 03/14/95
31 *
32 * $Revision: 6.32 $
33 *
34 * File Description:
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 * Addition of Features, Secondary Structure, Ensembles,
42 * PDB file generators, Kinemage file renderers.
43 * Model nodes and Dictionaries altered...
44 *
45 * $Log: mmdbapi1.h,v $
46 * Revision 6.32 2000/12/05 21:03:05 hurwitz
47 * made it neat
48 *
49 * Revision 6.31 2000/07/24 22:29:45 thiessen
50 * fix header conflict
51 *
52 * Revision 6.30 2000/07/21 18:56:41 thiessen
53 * allow dynamic slave->master transformation
54 *
55 * Revision 6.29 2000/03/13 15:51:25 thiessen
56 * added storage for PARS to each residue for Cn3D; removed unused fields
57 *
58 * Revision 6.28 2000/03/09 17:52:57 thiessen
59 * changes to MSD, MGD for feature implementation in Cn3D
60 *
61 * Revision 6.27 2000/03/01 16:16:45 thiessen
62 * modified backbone definitions, added AM_PARTIALBACKBONE
63 *
64 * Revision 6.26 1999/10/05 23:18:17 lewisg
65 * add ddv and udv to cn3d with memory management
66 *
67 * Revision 6.25 1999/06/07 21:23:36 ywang
68 * add iUserDefinedFeatureOld, FeatureOnOld to MGD
69 *
70 * Revision 6.24 1999/05/07 14:11:25 zimmerma
71 * - Modified InstallAlignedSlave(), InstallStrucFeature(), BiostrucAddFeature() and
72 * Boolean InstBSAnnotSet() for additional args: Boolean Chain, and CharPtr SlaveChain;
73 *
74 * - InstBSAnnotSet now also expects argument CharPtr JobID
75 *
76 * - Added forward DCLs for LIBCALL isBiopoly() and LIBCALL isHet()
77 *
78 * Revision 6.23 1999/04/26 20:49:59 lewisg
79 * changed arguments named list to fix visual c++ bug
80 *
81 * Revision 6.22 1999/04/15 21:36:18 ywang
82 * move iMimeType to data block for MSD
83 *
84 * Revision 6.21 1999/04/13 23:07:17 ywang
85 * move position for Byte bVisible for MOD
86 *
87 * Revision 6.20 1999/03/18 21:04:30 lewisg
88 * reverse transform for saving
89 *
90 * Revision 6.19 1999/03/17 20:11:10 lewisg
91 * fix memory overwrite in pfd
92 *
93 * Revision 6.18 1999/03/01 20:22:11 ywang
94 * add bTurnedOff flag on MGD
95 *
96 * Revision 6.17 1999/02/24 22:58:10 ywang
97 * add iMimeType to MSD node and other minor name change
98 *
99 * Revision 6.16 1999/02/02 22:27:01 ywang
100 * add bJustHighlighted flag to MGD for feature edit
101 *
102 * Revision 6.15 1998/12/16 19:30:14 ywang
103 * add flag for highlight status to MGD
104 *
105 * Revision 6.14 1998/11/06 23:02:02 ywang
106 * add FeatureOn to MGD for feature on/off control
107 *
108 * Revision 6.13 1998/11/04 00:53:41 ywang
109 * add iFeature to MGD for modeling control
110 *
111 * Revision 6.12 1998/10/21 15:43:22 ywang
112 * attach the whole vast alignment data to master structure
113 *
114 * Revision 6.11 1998/10/01 21:56:37 ywang
115 * set display flag for object
116 *
117 * Revision 6.10 1998/09/22 17:52:21 ywang
118 * add flag for display control on MM and MG level
119 *
120 * Revision 6.9 1998/05/12 21:46:24 lewisg
121 * stricter conservation coloring
122 *
123 * Revision 6.8 1998/04/28 22:51:20 lewisg
124 * created separate pointer to master in MGD
125 *
126 * Revision 6.7 1998/04/21 22:58:53 lewisg
127 * eliminate dead code
128 *
129 * Revision 6.6 1998/04/10 22:41:48 lewisg
130 * eliminated dead code and added a visible bit to MSD
131 *
132 * Revision 6.5 1998/03/26 22:43:30 lewisg
133 * added seqentry and seq annot to msd
134 *
135 * Revision 6.4 1998/03/10 04:31:05 lewisg
136 * change name of MakePDBSeqId to MakePDBSeqId2 to avoid name conflict
137 *
138 * Revision 6.3 1998/03/06 23:17:12 lewisg
139 * codewarrior fixes
140 *
141 * Revision 6.2 1998/03/06 01:15:28 lewisg
142 * merge
143 *
144 * Revision 6.0 1997/08/25 18:11:00 madden
145 * Revision changed to 6.0
146 *
147 * Revision 5.5 1997/06/19 18:40:03 vakatov
148 * [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization
149 *
150 * Revision 5.4 1997/04/18 19:18:56 hogue
151 * Int2 counters for atoms upgraded to Int4's, made ppAsnOrder alloc optional.
152 *
153 * Revision 5.3 1997/04/09 18:59:33 hogue
154 * removed redundant include of objall.h
155 *
156 * Revision 5.2 1997/01/08 21:07:51 vakatov
157 * Removed redundant declaration of NCBI_months[12]
158 *
159 * Revision 5.1 1996/07/31 18:38:22 hogue
160 * Structure feature handling structs added, and pointer from ald to graphic for composing groups of segments.
161 *
162 * Revision 5.0 1996/05/28 14:02:09 ostell
163 * Set to revision 5.0
164 *
165 * Revision 1.17 1996/05/01 14:41:26 hogue
166 * Added MakeChemGraphNodeList, and Domain support
167 *
168 * Revision 1.16 1996/04/18 17:38:36 hogue
169 * FETCH_ENTREZ flag use altered, added pdnmsSlaves to MSD for slave structures in multiple alignments
170 *
171 * Revision 1.15 1996/03/29 19:28:49 hogue
172 * Added pExtra pointer to MSD
173 *
174 * Revision 1.14 1996/01/31 21:35:00 hogue
175 * Changes to accomodate the free-ing of models, most dramatically is the
176 * encapuslation of interim free-ers to FreeSurfaceModelAsnList and
177 * FreeAtomicModelAsnLists. KEEP_ASN no longer supported. PDNSM and its
178 * kin renamed to PDNML.
179 *
180 * Revision 1.13 1995/11/09 22:54:56 hogue
181 * Added new pointers, variables to node data structures for Feature tables,
182 * rendering, coloring; added linking pointers between models and locations/objects
183 *
184 * Revision 1.12 1995/09/19 21:08:08 hogue
185 * Removed unnecessary typedefs.
186 *
187 * Revision 1.11 1995/09/18 21:25:11 hogue
188 * Het name field added in MGD
189 *
190 * Revision 1.10 1995/08/29 20:03:06 kans
191 * Entrez-like loading now enabled, models fixed
192 *
193 * Revision 1.8 1995/08/28 22:46:40 kans
194 * moved BiostrucAvail to mmdbapi1.[ch]
195 *
196 * Revision 1.7 1995/08/28 20:06:37 kans
197 * *** empty log message ***
198 *
199 * Revision 1.5 1995/08/28 19:31:53 kans
200 * version 4.1
201 *
202 * Revision 1.3 1995/08/11 20:23:09 epstein
203 * add support for VECMODEL
204 *
205 * Revision 1.2 1995/08/03 21:44:33 kans
206 * numerous changes
207 *
208 * Revision 1.1 1995/08/02 17:07:15 kans
209 * Initial revision
210 *
211 *
212 * ==========================================================================
213 */
214
215 /*****************************************************************************
216 *
217 * mmdbapi1.c
218 *
219 * UNDER CONSTRUCTION NOTICE.
220 * EVERYTHING SUBJECT TO RADICAL CHANGES!
221 *
222 * programmer C.W.V. Hogue
223 * created: 14 Mar 95
224 * last mod: 28 AUGUST 95
225 *****************************************************************************/
226
227 #ifndef _MMDBAPI1_
228 #define _MMDBAPI1_
229
230 /* GLOBAL VARIABLES */
231
232 #include <asn.h>
233 #include <objall.h>
234 #include <strimprt.h>
235 #include <objmmdb1.h>
236 #include <objmmdb2.h>
237 #include <objmmdb3.h>
238 #include <dvncode.h>
239 #include <corematx.h>
240 #include <objseq.h>
241 #include <objsset.h>
242 /*#include <mmdbapi.h>*/
243
244 #define INP_ASCII_FILE 1
245 #define INP_BINARY_FILE 0
246 #define INP_GI 2
247 #define INP_PDB_ACCESSION 3
248
249 #define DICT_DEFAULT "bstdt.val"
250 /* new version 4 ASN.1 defines */
251 #define PDBNAME_DEFAULT "1AAA"
252 #define STRING_UNK_PDB "Unknown/Non-PDB"
253 #define STRING_UNK_RES "UNK"
254 #define STRING_UNK_MOL " "
255 #define STRING_NCBI_SS "NCBI assigned secondary structure"
256 #define STRING_PDB_SS "PDB secondary structure"
257 #define STRING_NCBI_VAST "VAST Alignment"
258 #define STRING_NCBI_DOMAIN "NCBI Domains"
259 #define STRING_PDB_SITE "PDB SITE"
260 #define STRING_PDB_FOOTNOTE "PDB FOOTNOTE"
261 #define Assembly_Type_Physiological_Form 1
262 #define Assembly_Type_Crystallographic_Cell 2
263 #define Assembly_Type_Other 255
264
265 #define Molecule_type_dna 1
266 #define Molecule_type_rna 2
267 #define Molecule_type_protein 3
268 #define Molecule_type_other_biopolymer 4
269 #define Molecule_type_solvent 5
270 #define Molecule_type_other_nonpolymer 6
271 #define Molecule_type_other 255
272
273 #define Residue_deoxyribonucleotide 1
274 #define Residue_ribonucleotide 2
275 #define Residue_amino_acid 3
276 #define Residue_other 255
277
278 #define Feature_type_helix 1
279 #define Feature_type_strand 2
280 #define Feature_type_sheet 3
281 #define Feature_type_turn 4
282 #define Feature_type_site 5
283 #define Feature_type_footnote 6
284 #define Feature_type_subgraph 100
285 #define Feature_type_region 101
286 #define Feature_type_alignment 200
287 #define Feature_type_similarity 201
288 #define Feature_type_other 255
289
290 #define Feature_type_transform 153
291 #define Feature_type_camera 154
292 #define Feature_type_script 155
293 #define Feature_type_multalign 202
294 #define Feature_type_color 150
295 #define Feature_type_render 151
296 #define Feature_type_label 152
297 #define Feature_type_indirect 203
298 #define Feature_type_cn3dstate 254
299 #define Feature_type_comment 7
300
301 #define MAX_FEATURES 10
302 #define VIEW_CODE 1 /* undef to remove display specific stuff in Modelstruc*/
303 /* #define BIG_CODE 1 define to add "user" variables to a Modelstruc PFB nodes */
304
305 #define INTSTRLEN 30 /* characters in MAXINT */
306
307 #define Model_type_ncbi_vector 1
308 #define Model_type_ncbi_backbone 2
309 #define Model_type_ncbi_all_atom 3
310 #define Model_type_pdb_model 4
311 #define Model_type_other 255
312
313 #define BSEVERYTHING 5
314
315 /*bExtent settings:*/
316 /* used by Biostruc2Modelstruc */
317 /* determines how much is converted */
318 #define COORDS_DATA 0x01
319 #define TEMP_DATA 0x02 /*must have coords too*/
320 #define OCC_DATA 0x04 /* must have coords too */
321 #define ALTCNF_DATA 0x08 /* other locations */
322 #define FETCH_ENTREZ 0x20 /* Need to call EntrezInit/EntrezFini */
323 #define BD_TREE 0x40
324 /* #define FEATURE_TAB 0x80 not used */
325 #define POWER_VIEW 0xFF
326 #define CONVERT_ALL 0xFF
327
328 /*
329 * Flags for the bMe of the MBD,MAD,MGD,MMD, MSD hierarchy of structures.
330 * SHOW_ME byte is for a viewer to see if the node and its children are to be shown
331 * REG_STYLE says display using the default style palette for the node and children
332 * AM_CHANGED is a flag saying the node has been changed by last operation.
333 * AM_MDB, AM_MAD, AM_MGD, AM_MMD, AM_MSD say what kind of sub-struc this is
334 * and can be used to typecast appropriately.
335 *
336 */
337
338 /* Flags Block bUpdate byte */
339 /* these bits ARE stacked - i.e.
340 * don't set with:
341 * byte = AM_CHANGED, instead use
342 * byte = (byte | AM_CHANGED)
343 *
344 */
345 #define AM_CHANGED 0x01
346 #define SHOW_ME 0x02
347 #define REG_STYLE 0x04
348 /* define AM_ION 0x80 declared below */
349
350
351 /* Flags Block bMe byte */
352 /* these bits are NOT EVER stacked
353 * and are set by MMDBAPI
354 * you can use a switch statement
355 * on these...
356 */
357 #define AM_ALD 0x80 /* Atom Location Data */
358 #define AM_MDD 0x40 /* Model Density Data */
359 #define AM_MOD 0x20 /* Model Object Data */
360 #define AM_MBD 0x10 /* Model Bond Data */
361 #define AM_MAD 0x08 /* Model Atom Data */
362 #define AM_MGD 0x04 /* Model Graph Data */
363 #define AM_MMD 0x02 /* Model Molecule Data */
364 #define AM_MSD 0x01 /* Model Structure Data */
365 #define AM_UNK 0x00
366
367 /*
368 * Flags for the bWhat of MBD, MAD, MGD, MMD, MDS hierarchy.
369 * This says what is contained in this branch of hierarchy, i.e.
370 * a full MSD structure can be (no Nucleic acids)
371 * e.g. pMSD->bWhat = AM_POLY | AM_PROT | AM_HET | AM_SOL
372 * or, in a MMD molecule
373 * pMMD->bWhat = AM_POLY | AM_PROT
374 * etc...
375 * This way if the structure has NO HET groups, the don't invoke
376 * them from a menu...
377 */
378
379 /* Flags Block bWhat byte For Struc, Molec */
380 /* these bits ARE stacked in Struc, but NOT stacked in Molec */
381 #define AM_ION 0x80 /* not set in PDB derived data - do lookup */
382 #define AM_RNA 0x40
383 #define AM_WAT 0x20
384 #define AM_SOL 0x10
385 #define AM_HET 0x08
386 #define AM_DNA 0x04
387 #define AM_PROT 0x02
388 #define AM_POLY 0x01
389
390 /* Flags Block bWhat byte for Graph */
391 /* these bits ARE stacked */
392 #define DICT_REF 0x80
393 #define DICT_GLOBAL 0x40
394 #define DICT_LOCAL 0x20
395 #define RES_RNA 0x10
396 #define RES_DNA 0x08
397 #define RES_AA 0x04
398
399 /* Flags for bNCBISecStru or pPDBSecStru in PMGD of type RES_AA */
400 #define SS_HELIX 0x80
401 #define SS_SHEET 0x40
402 #define SS_STRAND 0x20
403 #define SS_TURN 0x10
404
405 /* Flags Block bWhat byte for MAD atom */
406 /* all these are set by traversers */
407 #define AM_BACKBONE 0x01 /* PROT & NA */
408 #define AM_CALPHA 0x02 /* PROT */
409 #define AM_PALPHA 0x04 /* RNA & DNA */
410 #define AM_PARTIALBACKBONE 0x08 /* PROT & NA - all atoms off linear backbone */
411 #define AM_CBETA 0x10 /* PROT */
412 #define AM_NBETA 0x20 /* RNA & DNA */
413 #define AM_C1RIBOSE 0x40 /* RNA & DNA */
414 #define AM_C4RIBOSE 0x80 /* RNA & DNA */
415
416 /* shorter names from the ASN.1 defines */
417 #define Bond_order_partial_double 2
418 #define Bond_order_aromatic 3
419 #define Bond_order_double 4
420 #define Bond_order_triple 5
421 #define Bond_order_other 6
422 #define Bond_order_unknown 255
423 #define Bond_order_single 1
424
425 /* Flags Block bWhat byte for MBD bond */
426 /* these bits are stacked */
427 #define BOND_VIRTUAL 0x80 /* set by traversers */
428 #define BOND_PDOUBLE 0x40
429 #define BOND_VDW 0x20 /* not set for PDB */
430 #define BOND_IONIC 0x10 /* not set for PDB */
431 #define BOND_H 0x08 /* not set for PDB */
432 #define BOND_TRIPLE 0x04
433 #define BOND_DOUBLE 0x02
434 #define BOND_SINGLE 0x01
435 #define BOND_NONE 0x00
436
437 /* if BOND_PDOUBLE & BOND_DOUBLE then aromatic */
438
439 /* Flags Block bWhat byte For Object */
440 /* these are not stacked */
441 #define OBJ_SPHERE 0x80
442 #define OBJ_CYLINDER 0x40
443 #define OBJ_BRICK 0x20
444 #define OBJ_TMESH 0x10
445 #define OBJ_TRIANGLES 0x08
446 #define OBJ_CONE 0x04
447
448 /* Pointers to the hierarchical types for Biostruc data
449 * Note the terse struct names MMx, PMMx, MMxD are used to limit the
450 * length of long pointer casts when coding and for Hungarian Notation
451 * coding. The names are broken down
452 * here in the header file for each declaration, so you can see how they
453 * are logically constructed.
454 * a PDN is a Pointer to DValNode
455 * a PVN is a Pointer to ValNode
456 */
457
458 typedef DValNodePtr PDNMS; /* Model Structure (MS) */
459 /* Node contains a PMSD - Pointer to Model Structure Data */
460 /* choice = structure no */
461
462 typedef DValNodePtr PDNMM; /* Model Molecule (MM) */
463 /* Node contains a PMMD - Pointer to Model Molecule Data */
464 /* choice = molecule id */
465
466 typedef DValNodePtr PDNMG; /* Model Residue (MG)*/
467 /* Node contains a PMGD - Pointer to Model Residue Data */
468 /* choice = residue id */
469
470 typedef ValNodePtr PVNMA; /* Model Atom (MA) */
471 /* Node contains a PMAD - Pointer to Model Atom Data */
472 /* choice = element */
473
474 typedef ValNodePtr PVNMB; /* Model Bond (MB)*/
475 /* Node contains a PMBD - Pointer to Model Bond Data */
476 /* choice = bond order */
477
478 typedef ValNodePtr PVNAL; /* Atom Location (AL) */
479 /* Node contains a PALD - Pointer to Atom Location Data */
480 /* choice = model id */
481
482 typedef ValNodePtr PVNMO; /* Model Object */
483 /* Node contains a PMOD - Pointer to Model Object Data */
484 /* choice = model id */
485
486 typedef ValNodePtr PVNMD; /* Model Density */
487 /* Node contains a PMDD - Pointer to Model Density Data */
488 /* choice = model id */
489
490 typedef DValNodePtr PDNML; /* Structure Model */
491 /* Node contains a BiostrucModelPtr */
492 /* choice = model id */
493
494 typedef DValNodePtr PDNSF; /* Structure Feature */
495 /* Node contains a BiostrucFeatureSetPtr */
496 /* choice = feature number */
497
498 /***************************/
499 /*MMDBAPI NODE DECLARATIONS*/
500 /***************************/
501
502 /**************/
503 /* Flag Block */
504 /**************/
505
506 /* COMMON TO MSD, MMD, MGD, MAD, MOD, MDD and MBD: */
507 /* if you have a PMxD, can cast as a "PFB" and get the correct type */
508
509 typedef struct nlm_flagblock {
510 struct nlm_flagblock PNTR pfbParent;
511 /* pointer to parent Data node (for MSD it is NULL) */
512 Byte bMe; /* Me byte - identifies typecast and display triage */
513 Byte bWhat; /* What is in me? */
514 Byte bUpdate; /* byte to indicate status */
515 Byte bReserved;
516 Int4Ptr pI4vFeatID; /* Feature Id */
517 PointerPtr ppvFeatData; /* vector containing pointers */
518 Int2 iNumFeats; /* number of Features registered in node */
519 #ifdef BIG_CODE
520 Byte bReserved1; /* */
521 Byte bUser1;
522 Int2 i2Reserved;
523 Int2 i2User;
524 #endif
525 }FB, *PFB, **PPFB;
526
527
528 /*************************/
529 /* Feature Handlers */
530 /*************************/
531
532 typedef DValNodePtr PDNTRN;
533
534 typedef DValNodePtr PDNSFS; /* Structure Feature Set*/
535 /* Node contains a PSFS - Pointer to Structure Feature Set */
536 /* choice = Feature Set Id - each "session" is a new feature set */
537
538 typedef void (LIBCALLBACK *PColor3DFunc)(ColorPropPtr pcpThis, Uint1 PNTR pIndex);
539
540 typedef void (LIBCALLBACK *PStrFeatFunc)(Pointer PNTR ppCUserData,
541 UserObjectPtr PNTR ppASNUserObj);
542
543 /* New uses nothing, returns NEW pointer value in pCUserData */
544 /* Free frees what is passed in ppCUserData */
545 /* ToC uses ppASNUserObj, allocates anc copies, creating NEW pointer
546 in ppCUserData - does the allocation using the New fn. if necessary */
547 /* ToASN uses ppCUserData, returns NEW pointer
548 in pASNUserObj - does the allocation of the UserData */
549 /* ToASN is automatically used upon writing to stream. - its object is Free-ed */
550 /* with UserObjectFree(*ppASNUserObj) */
551
552 /* if the feature type has registered functions, it is automatically */
553 /* appended as a C structure on each appropriate node, and the ASN.1 */
554 /* is deleted. When a call is made to save the Biostruc, it is */
555 /* reconstructed, and the features are reconstructed from the feature */
556 /* registry. Afterward, the feature ASN.1 structures are freed. */
557
558 typedef ValNodePtr PVNSFF; /* linked list of SFF */
559 /* choice = feature type code */
560
561 typedef struct Nlm_sff
562 { /* structure feature functions */
563 PStrFeatFunc pFeatNewFn;
564 PStrFeatFunc pFeatFreeFn;
565 PStrFeatFunc pFeatToASNFn;
566 PStrFeatFunc pFeatToCFn;
567 }SFF, *PSFF;
568
569 typedef struct Nlm_sfd
570 {
571 struct Nlm_sfd PNTR next;
572 PDNSFS pdnsfsSet;
573 Int4 iId;
574 Int4 iType;
575 CharPtr pcName;
576 Int2 iColor; /* table integer index */
577 Int2 iRender; /* render code from spec */
578 Byte bPFBtype; /* type of node feature applies to */
579 Pointer pData; /* transform, camera, script, align in ASN.1 format */
580 BiostrucFeaturePtr pbsfFeat; /* stub for ASN.1 used only for write */
581 }SFD, *PSFD;
582
583 typedef struct Nlm_sfs
584 {
585 Int4 iId;
586 PDNSFS pdnsfsSet;
587 Boolean SetisOn;
588 CharPtr pcName;
589 PSFD psfdFeats;
590 ValNodePtr pvnDescr;
591 BiostrucFeatureSetPtr pbsfsFeatSet; /* ASN.1 stub only for write */
592 }SFS, *PSFS;
593
594
595 /************************/
596 /* Model Structure Data */
597 /************************/
598 typedef struct Nlm_msd
599 {
600 /* flag block */
601 PFB pfbParent;
602 Byte bMe;
603 Byte bWhat;
604 Byte bUpdate;
605 Byte bReserved;
606 Int4Ptr pI4vFeatID;
607 PointerPtr ppvFeatData;
608 Int2 iNumFeats;
609 #ifdef BIG_CODE
610 Byte bReserved1; /* */
611 Byte bUser1;
612 Int2 i2Reserved;
613 Int2 i2User;
614 #endif
615 /* bookkeeping block */
616 Byte bVisible; /* can it be seen? */
617 Byte bMaster; /* am I a master struct? */
618 Byte bAligned; /* master: how many slaves? */
619 BytePtr pbAligned; /* slave: pointer to master bAligned */
620 PDNMS pdnmsLink;
621 CharPtr pcSName; /* the "retrieval" string */
622 Int2 iType; /* encodes pcSName as net id or filename for retrieve */
623 BiostrucPtr pbsBS; /* the ASN.1 Biostruc is kept here, usually */
624 /* "header" with {id, desc, history} only */
625 /* but during write operations it is to be */
626 /* fully reconstructed. */
627 ResidueGraphPtr pDictLocal; /* the local ASN.1 dictionary */
628 /* make this into a linked-list of dictionaries with id's */
629 BiomolDescrPtr pGraphDescr; /* The chemical graph ASN.1 descr (ValNode) */
630 CharPtr pcPDBName; /* from ASN.1 Biostruc descr field */
631 Int4 iMMDBid; /* MMDB unique number */
632 CharPtr pcChemName; /* from ASN.1 chem graph descr field */
633 CharPtr pcPdbClass;
634 CharPtr pcPdbSource;
635 Int2 iModels; /* Number of Models present */
636 Int2 iActiveModel; /* Index of Active Model */
637 Int2 iFeatures;
638 Int2 iPDBType; /* enum from ASN.1 */
639 Int4 iMolCount; /* number of molecules */
640 Int4 iObjCount; /* number of objects */
641 Int4 iDensCount; /* number of densities */
642 Int4 iIMBCount; /* number of inter-molecule bonds */
643 Int4 iHashChange; /* iModels+iFeatures+iObjCount+iDensCount + #ALD's */
644 /* data block */
645 Int2 iMimeType;
646 PDNML pdnmlModels; /* contains PMLD with Models that are */
647 /* PDNSF pdnsfFeatures; */ /* BiostrucFeatureSetPtrs */
648 /* moved to psastrucAlignment */
649 PDNSFS pdnsfsHead; /* the feature registry for this structure */
650 PDNMM pdnmmHead; /* the list of molecules (children) */
651 PVNMB pvnmbIMBHead; /* Inter-molecule bonds in structure (children) */
652 PVNMO pvnmoHead; /* the list of model objects */
653 PVNMD pvnmdHead; /* the list of model densities */
654 FloatLoPtr PNTR ppflBoundBox; /* matrix 2x3 with max & min XYZs */
655 /* When needed, Allocated with: ppflBoundBox = FLMatrix(0,2,0,3); */
656 FloatLoPtr PNTR ppflRotate; /* matrix 3x3 with rotations for structure */
657 FloatLoPtr pflTranslate; /* 3 - vector with translations for structure */
658 PDNMS pdnmsSlaves; /* slave structures in multiple alignments */
659 BiostrucAnnotSetPtr psaStrucAlignment;
660 VoidPtr pGlobalPARS; /* will hold pointer to default "global" PARS for this structure */
661 ValNodePtr pdnSlaveToMasterTransforms; /* store transformation for slave onto master */
662 } MSD, *PMSD;
663
664
665 /***********************/
666 /* Model Molecule Data */
667 /***********************/
668 typedef struct Nlm_mmd
669 {
670 /* flag block */
671 PFB pfbParent;
672 Byte bMe;
673 Byte bWhat;
674 Byte bUpdate;
675 Byte bReserved;
676 Int4Ptr pI4vFeatID;
677 PointerPtr ppvFeatData;
678 Int2 iNumFeats;
679 #ifdef BIG_CODE
680 Byte bReserved1; /* */
681 Byte bUser1;
682 Int2 i2Reserved;
683 Int2 i2User;
684 #endif
685 /* bookkeeping block */
686 Byte bVisible; /* to control show/off on MM level -- Yanli */
687 PDNMM pdnmmLink;
688 ValNodePtr pMolDescr; /* the ASN.1 molecule descr */
689 ValNodePtr pSeqId;
690 CharPtr pcMolName; /* from ASN.1 "chain" descr field */
691 Int4 iChainId;
692 Int4 iGi;
693 Int4 iResCount; /* number of graphs */
694 Int4 iIRBCount; /* number of inter-res bonds */
695 CharPtr pcSeqId;
696 CharPtr pcSequence;
697 PDNMG pdnmgStartSelect, pdnmgEndSelect; /* used to select a range of residues in the molecule. lyg */
698 Int4 iTargetRow; /* corresponding row in the original ASN1 alignment */
699 /* data block */
700 PDNMG pdnmgHead; /* the list of model graphs (children) */
701 PVNMB pvnmbIRBHead; /* Inter-residue bonds in molecule (children) */
702 FloatLoPtr PNTR ppflBoundBox; /* matrix 2x3 with max & min XYZs */
703 ValNodePtr pvnContainedBy;
704 } MMD, *PMMD;
705
706
707 /********************/
708 /* Model Graph Data */
709 /********************/
710 typedef struct Nlm_mgd
711 {
712 /* flag block */
713 PFB pfbParent;
714 Byte bMe;
715 Byte bWhat;
716 Byte bUpdate;
717 Byte bReserved;
718 Int4Ptr pI4vFeatID;
719 PointerPtr ppvFeatData;
720 Int2 iNumFeats;
721 #ifdef BIG_CODE
722 Byte bReserved1; /* */
723 Byte bUser1;
724 Int2 i2Reserved;
725 Int2 i2User;
726 #endif
727 /* bookkeeping block */
728 Byte bVisible; /* control display at residue level */
729 Byte bHighlighted;
730 Byte bNCBISecStru;
731 Byte bPDBSecStru;
732 PDNMG pdnmgLink;
733 Int2 iDomain; /* NCBI assigned domain number */
734 CharPtr pcGraphName; /* PDB 3-letter code */
735 CharPtr pcGraphNum; /* the PDB numbering string e.g . 38A */
736 Int4 iIDict; /* index into dictionary */
737 CharPtr pcIUPAC; /* IUPAC name X = invalid graph code */
738 CharPtr pcNCBISS; /* pointer into the NCBI ss features string */
739 CharPtr pcPDBSS; /* pointer into the PDB ss features string */
740 CharPtr pcPDBComment; /* pointer into name of heterogen in dict */
741 Int4 iAtomCount;
742 Int4 iBondCount;
743 /* data block */
744 PVNMA pvnmaAHead; /* the atom list (children) */
745 PVNMB pvnmbBHead; /* the bond list (children) */
746 FloatLoPtr PNTR ppflBoundBox; /* matrix 2x3 with max & min XYZs */
747 ValNodePtr pvnContainedBy;
748 BytePtr pbMasterReserved;
749 /* will contain list of pointers to PARS structures - "global" has choice = 0,
750 * "special style" has choice >= 1 */
751 ValNodePtr pvnPARSList;
752 } MGD, *PMGD;
753
754
755 /*******************/
756 /* Model Atom Data */
757 /*******************/
758 typedef struct Nlm_mad
759 {
760 /* flag block */
761 PFB pfbParent;
762 Byte bMe;
763 Byte bWhat;
764 Byte bUpdate;
765 Byte bReserved;
766 Int4Ptr pI4vFeatID;
767 PointerPtr ppvFeatData;
768 Int2 iNumFeats;
769 #ifdef BIG_CODE
770 Byte bReserved1; /* */
771 Byte bUser1;
772 Int2 i2Reserved;
773 Int2 i2User;
774 #endif
775 /* bookkeeping block */
776 PVNMA pvnmaLink; /* element number is pvnmaLink->choice */
777 CharPtr pcAName; /* PDB name in the DICTIONARY!! */
778 Int2 iIndex; /* MMDB index */
779 /* data block */
780 ValNodePtr pvnBonds;
781 ValNodePtr pvnContainedBy;
782 PVNAL pvnalLocate;
783 }MAD, *PMAD;
784
785
786 /**********************/
787 /* Atom Location Data */
788 /**********************/
789 typedef struct Nlm_ald
790 {
791 /* flag block */
792 PFB pfbParent;
793 Byte bMe;
794 Byte bWhat;
795 Byte bUpdate;
796 Byte bReserved;
797 Int4Ptr pI4vFeatID;
798 PointerPtr ppvFeatData;
799 Int2 iNumFeats;
800 #ifdef BIG_CODE
801 Byte bReserved1; /* */
802 Byte bUser1;
803 Int2 i2Reserved;
804 Int2 i2User;
805 #endif
806 struct Nlm_ald PNTR next;
807 PVNAL pvnalLink; /* link to get model id */
808 Int4 iUniqueId;
809 Char cAltConf; /* if = " " */
810 Int1 iCoordSet; /* index from ASN.1 model coord set */
811 Int1 iFloatNo;
812 FloatLoPtr pflvData;
813 Pointer pGraphic; /* pointer to graphic segment */
814 } ALD, *PALD;
815
816
817 /* pflvData is a vector containing...
818 its size is dependent on the amount of data
819 i.e. 3 = XYZ only
820 4 = XYZ + occupancy
821 5 = XYZ + occupancy + isotropic Temp
822 10 = XYZ + occupancy + anisotropic Temp
823 Indexed as follows...
824 [0] X;
825 [1] Y;
826 [2] Z;
827 [3] Occ;
828 [4] B11;
829 [5] B12;
830 [6] B13;
831 [7] B22;
832 [8] B23;
833 [9] B33;
834 */
835
836
837 /*******************/
838 /* Model Bond Data */
839 /*******************/
840 typedef struct Nlm_mbd
841 {
842 /* flag block */
843 PFB pfbParent;
844 Byte bMe;
845 Byte bWhat;
846 Byte bUpdate;
847 Byte bReserved;
848 Int4Ptr pI4vFeatID;
849 PointerPtr ppvFeatData;
850 Int2 iNumFeats;
851 #ifdef BIG_CODE
852 Byte bReserved1; /* */
853 Byte bUser1;
854 Int2 i2Reserved;
855 Int2 i2User;
856 #endif
857 /* bookkeeping block */
858 PVNMB pvnmbLink; /* ASN.1 defined types is in pvnmbLink->choice */
859 /* data block */
860 PMAD pmadFrom;
861 PMAD pmadTo;
862 }MBD, *PMBD;
863
864
865 /*********************/
866 /* Model Object Data */
867 /*********************/
868 typedef struct Nlm_mod
869 {
870 /* flag block */
871 PFB pfbParent;
872 Byte bMe;
873 Byte bWhat;
874 Byte bUpdate;
875 Byte bReserved;
876 Int4Ptr pI4vFeatID;
877 PointerPtr ppvFeatData;
878 Int2 iNumFeats;
879 #ifdef BIG_CODE
880 Byte bReserved1; /* */
881 Byte bUser1;
882 Int2 i2Reserved;
883 Int2 i2User;
884 #endif
885 /* bookkeeping block */
886 PVNMO pvnmoLink;
887 ValNodePtr pvnContains;
888 struct Nlm_mld PNTR pmldCoordSet;
889 Byte bVisible; /* control object display to synchronize with its partner display -- Yanli */
890 /* data block */
891 Int4 iCoordNo;
892 FloatLoPtrPtr ppflObject; /* coordinate lists */
893 UcharPtr pucSwap; /* same length as coord list */
894 Int4 iTriNo;
895 Int4PtrPtr ppi4Triangles; /* triangles list */
896 FloatLo flRadius;
897 Int2Ptr pi2vColor; /* colors for each triangle */
898 /* cast a matrix Floating pt N x 3 for data */
899 /* length 0 for sphere */
900 /* 1 for cylinder */
901 /* 7 for brick */
902 /* n for surface */
903 #ifdef VIEW_CODE
904 /* logic to pass surface as optimized t-mesh */
905 /* regardless of order of points */
906 /* can view surface as dots or as t-mesh */
907 /* display block */
908 #endif
909 }MOD, *PMOD;
910
911
912 /**********************/
913 /* Model Density Data */
914 /**********************/
915 typedef struct Nlm_mdd
916 {
917 /* flag block */
918 PFB pfbParent;
919 Byte bMe;
920 Byte bWhat;
921 Byte bUpdate;
922 Byte bReserved;
923 Int4Ptr pI4vFeatID;
924 PointerPtr ppvFeatData;
925 Int2 iNumFeats;
926 #ifdef BIG_CODE
927 Byte bReserved1; /* */
928 Byte bUser1;
929 Int2 i2Reserved;
930 Int2 i2User;
931 #endif
932 /* bookkeeping block */
933 PVNMD pvnmdLink;
934 struct Nlm_mld PNTR pmldCoordSet;
935 /* pointer to the ASN.1 data */
936 /* data block */
937 /* put the floating point Brick values into a matrix */
938 /* cast the density matrix into XYZ points in a n x 3 matrix */
939 /* make a connectivity matrix m x 2 of integer array indices */
940 /* cast the contents into a ValNode matrix containing PFB's */
941 ValNodePtr pvnContains;
942 #ifdef VIEW_CODE
943 /* display the Brick as lines */
944 /* display the intensity as dots or connected lines */
945 /* cast the intensity value into colors in an Int2 n-vector */
946 /* cast the intensities into display layers - and Int2 n-vector */
947
948 /* display block */
949 #endif
950 }MDD, *PMDD;
951
952
953 /**********************/
954 /*Model Location Data */
955 /**********************/
956 /* these hold each coordset's data
957 * can be either atomic, object or density data
958 * if Atomic, there needs to be a vector of
959 * pointers to each and every ALD in the model
960 * This vector allows indexing features to atom locs
961 */
962 typedef struct Nlm_mld
963 {
964 /* tiny flag block */
965 PMSD pmsdParent; /* Parent Structure*/
966 struct Nlm_mld PNTR next;
967 Byte bSelected; /* for saving/conversion to other file formats */
968 Byte bReserved;
969 Int2 iType;
970 Int2 iId;
971 CharPtr pcModelName;
972 CharPtr pcAltConf; /* A string of all AltConfs in model */
973 Int2 iNoCoordSet; /* index from ASN.1 model coord set */
974 PointerPtr ppAsnOrder; /* vector containing all PALD's if atomic data */
975 PMOD pmodObject; /* if model coord set is object */
976 PMDD pmddDensity; /* if model coord set is density */
977 BiostrucModelPtr pbsmModel;
978 } MLD, *PMLD;
979
980
981 typedef BiostrucResidueGraphSetPtr PRGD;
982 typedef void (LIBCALLBACK * pNodeFunc) PROTO((PFB pfbThis,Int4 iModel, Int4 iIndex, Pointer ptr));
983
984 /***********************/
985 /* MMDBAPI */
986 /* Function Prototypes */
987 /***********************/
988
989 #undef NLM_EXTERN
990 #ifdef NLM_IMPORT
991 #define NLM_EXTERN NLM_IMPORT
992 #else
993 #define NLM_EXTERN extern
994 #endif
995
996 #ifdef __cplusplus
997 extern "C" {
998 #endif
999
1000 PMBD LIBCALL NewMBD(void);
1001 PMAD LIBCALL NewMAD(void);
1002 PMLD LIBCALL NewMLD(void);
1003 PALD LIBCALL NewALD(void);
1004 PMGD LIBCALL NewMGD(void);
1005 PMMD LIBCALL NewMMD(void);
1006 PMSD LIBCALL NewMSD(void);
1007 PMOD LIBCALL NewMOD(void);
1008 PMDD LIBCALL NewMDD(void);
1009 PSFF LIBCALL NewSFF PROTO((void));
1010 PSFD LIBCALL NewSFD PROTO((void));
1011 PSFS LIBCALL NewSFS PROTO((void));
1012 void LIBCALL FreeSFS PROTO((PSFS psfsThis));
1013 void LIBCALL FreeSFF PROTO((PSFF psffThis));
1014 void LIBCALL FreeSFD PROTO((PSFD psfdThis));void LIBCALL FreeMBD(PMBD pmbdThis);
1015 void LIBCALL FreeMAD(PMAD pmadThis);
1016 void LIBCALL FreeALD(PALD paldThis);
1017 void LIBCALL FreeMGD(PMGD pmgdThis);
1018 void LIBCALL FreeMMD(PMMD pmmdThis);
1019 void LIBCALL FreeMSD(PMSD pmsdThis);
1020 void LIBCALL FreeMOD(PMOD pmodThis);
1021 void LIBCALL FreeMDD(PMDD pmddThis);
1022 void LIBCALL FreeMLD(PMLD pmldThis);
1023 void LIBCALL FreeKeptModel(PMLD pmldThis);
1024 void LIBCALL FreeKeptFeature(BiostrucFeatureSetPtr pbsfsThis);
1025 PVNMB LIBCALL NewVNMB(PVNMB PNTR ppvnmbList, Int2 choice);
1026 PVNMO LIBCALL NewVNMO(PVNMO PNTR ppvnmoList, Int2 choice);
1027 PVNMD LIBCALL NewVNMD(PVNMD PNTR ppvnmdList, Int2 choice);
1028 PVNMA LIBCALL NewVNMA(PVNMA PNTR ppvnmaList, Int2 choice);
1029 PVNAL LIBCALL NewVNAL(PVNAL PNTR ppvnalList, Int2 choice);
1030 PDNMG LIBCALL NewDNMG(PDNMG PNTR ppdnmgList, Int2 choice);
1031 PDNMM LIBCALL NewDNMM(PDNMM PNTR ppdnmmList, Int2 choice);
1032 PDNMS LIBCALL NewDNMS(PDNMS PNTR ppdnmsList, Int2 choice);
1033 ValNodePtr LIBCALL FreeVNDataFn (ValNodePtr vnp, pFreeFunc freefn);
1034 void LIBCALL FreeListVNAL(PVNAL pvnalList);
1035 void LIBCALL FreeListDNML(PDNML pdnmlList);
1036
1037 PVNSFF LIBCALL NewVNSFF(PVNSFF PNTR ppvnsffList, Int2 choice);
1038 PDNSFS LIBCALL NewDNSFS(PDNSFS PNTR ppdnsfsList, Int2 choice);
1039 void LIBCALL FreeListDNSFS(PDNSFS pdnsfsList);
1040 void LIBCALL FreeListVNSFF(PVNSFF pvnsffList);
1041
1042 void LIBCALL FreeListDNSF(PDNSF pdnsfList);
1043 void LIBCALL FreeListVNMB(PVNMB pvnmbList);
1044 void LIBCALL FreeListVNMO(PVNMO pvnmoList);
1045 void LIBCALL FreeListVNMD(PVNMD pvnmdList);
1046 void LIBCALL FreeListVNMA(PVNMA pvnmaList);
1047 PDNMG LIBCALL FreeDNMG(PDNMG pdnmgList, PDNMG pdnmgThis);
1048 void LIBCALL FreeListDNMG(PDNMG pdnmgList);
1049 PDNMM LIBCALL FreeDNMM(PDNMM pdnmmList, PDNMM pdnmmThis);
1050 void LIBCALL FreeListDNMM(PDNMM pdnmmList);
1051 PDNMS LIBCALL FreeDNMS(PDNMS pdnmsList, PDNMS pdnmsThis);
1052 NLM_EXTERN void LIBCALL FreeListDNMS(PDNMS pdnmsList);
1053 void LIBCALL FreeAtomicModelAsnLists(AtomicCoordinatesPtr pacThis);
1054 NLM_EXTERN PRGD LIBCALL LoadDict(CharPtr pcDictName);
1055
1056 PMAD LIBCALL AtomFromMMDBIndex(PDNMS pdnmsList, Int2 iStru, Int2 iMol, Int2 iGraph, Int4 iAtom);
1057 CharPtr MyType(PFB pfbThis);
1058 PMGD LIBCALL GraphFromMMDBIndex(PDNMS pdnmsList, Int2 iStru, Int2 iMol, Int2 iGraph );
1059 PMMD LIBCALL MolFromMMDBIndex(PDNMS pdnmsList, Int2 iStru, Int2 iMol);
1060
1061 BiostrucPtr LIBCALL FetchBS(CharPtr pcFetch, Int2 iType, Int4 mdlLvl,
1062 Int4 maxModels, Byte bExtent);
1063 Boolean LIBCALL AssignSurfaceContents(PDNMS pdnmsList, Int2 iModel, PFB pfbThis, ChemGraphPntrsPtr pcgpContents);
1064 void LIBCALL FreeSurfaceModelAsnList(SurfaceCoordinatesPtr pscThis);
1065 Boolean LIBCALL FillSurface(SurfaceCoordinatesPtr pscThis, PMOD pmodThis);
1066 Int2 LIBCALL BiostrucModel2ModelStruc( BiostrucModelPtr pbsmThis, PDNMS pdnmsThis,
1067 Int2 iChoice, Int2 iModelCount, Byte bExtent);
1068 ValNodePtr LIBCALL MakeChemGraphNodeList(PDNMS pdnmsThis, ChemGraphPntrsPtr pcgpThis);
1069
1070 ValNodePtr LIBCALL MakeRegionNodeList(PDNMS pdnmsThis, RegionPntrsPtr prgpThis);
1071 void LIBCALL ResolveAlignChain(PDNMS pdnmsThis);
1072 Boolean LIBCALL SetNodeFeatureData(PFB pfbThis, PSFD psfdThis);
1073
1074 /***************** modified 4/26/99 KA to handle VAST chains **************/
1075 void LIBCALL InstallAlignedSlave(PDNMS pdnmsMaster, ChemGraphAlignmentPtr pcgaAlign,
1076 PSFD psfdThis, Boolean Chain, CharPtr SlaveChain);
1077
1078 PSFD LIBCALL InstallStrucFeature(PDNMS pdnmsThis, PDNSFS pdnsfsThis, BiostrucFeaturePtr pbsfThis,
1079 Boolean Chain, CharPtr SlaveChain);
1080
1081 Int2 LIBCALL BiostrucAddFeature(BiostrucFeatureSetPtr pbsfsThis, PDNMS pdnmsThis,
1082 Boolean Chain, CharPtr SlaveChain);
1083 /*************************************************************************/
1084
1085 PDNTRN LIBCALL NewDNTRN(PDNTRN PNTR ppdntrnList, Int2 choice);
1086 void LIBCALL FreeDNTRN(PDNTRN pdntrnList);
1087 void LIBCALL TransformToDNTRN(PDNTRN PNTR pplist, TransformPtr transform);
1088 void LIBCALLBACK DoApplyTransform(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr);
1089 void LIBCALLBACK DoReverseTransform(PFB pfbThis, Int4 iModel, Int4 iIndex, Pointer ptr);
1090 BiostrucAnnotSetPtr LIBCALL BiostrucAnnotSetGetByFid (BiostrucAnnotSetPtr basp, Int4 feature_id, Int4 feature_set_id);
1091 PDNMS LIBCALL FindLoadedBiostruc(CharPtr pcPDBID, Int4 iId);
1092
1093 /***************** modified 4/26/99 KA to handle VAST chains **************/
1094 Boolean InstBSAnnotSet(BiostrucAnnotSetPtr pbsasThis, CharPtr JobID, Boolean Chain, CharPtr Path);
1095
1096 /****** DZ: moved from mkbioseqB.c 4/27/99 KA to support PruneBiostruc ******/
1097
1098 Boolean LIBCALL isBiopoly(Int4 molecule_id, MoleculeGraphPtr currentbp);
1099 Boolean LIBCALL isHet(Int4 molecule_id, MoleculeGraphPtr currenthet);
1100
1101 /*************************************************************************/
1102
1103 SeqAnnotPtr LIBCALL BiosToSeq (BiostrucAnnotSetPtr set, Boolean usePValue,
1104 Char* pdbname_master, Char* pdbname_slave);
1105 SeqAnnotPtr LIBCALL BiostrToSeqAnnotSet (BiostrucAnnotSetPtr set,
1106 Boolean usePValue, Char* pdbname_master);
1107 int LIBCALLBACK CompareScores(VoidPtr vp1, VoidPtr vp2);
1108 void LIBCALL VastTableSort(BiostrucFeatureSetPtr pbsfs, Int2 iSort);
1109 SeqAnnotPtr LIBCALL fnPBSFtoPSA (BiostrucFeaturePtr pbsfSelected);
1110
1111 Byte LIBCALL SetBondOrder(Byte bThis, Int2 iType);
1112 NLM_EXTERN PDNMS LIBCALL Biostruc2Modelstruc(PDNMS PNTR ppdnmsList, BiostrucPtr pbsBS,
1113 PRGD prgdDict, Byte bExtent, Int2 iChoice,
1114 CharPtr pcFetch, Int2 iType );
1115 Int2 LIBCALL TraverseAll( DValNodePtr pdnModel, Int4 iModel, Int4 iIndex,
1116 Pointer ptr, pNodeFunc pfnCallMe);
1117 AlternateConformationIdsPtr LIBCALL AlternateConformationIdsFree (AlternateConformationIdsPtr );
1118
1119 /* Function to retrieve Biostrucs from ASN.1 files */
1120 NLM_EXTERN BiostrucPtr LIBCALL BiostrucAsnGet(AsnIoPtr aip, AsnTypePtr atp, Int4 mdlLvl, Int4 maxModels);
1121
1122 NLM_EXTERN Boolean LIBCALL BiostrucAvail (void);
1123
1124 #ifdef __cplusplus
1125 }
1126 #endif
1127
1128 #undef NLM_EXTERN
1129 #ifdef NLM_EXPORT
1130 #define NLM_EXTERN NLM_EXPORT
1131 #else
1132 #define NLM_EXTERN
1133 #endif
1134
1135 #endif
1136 |
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more information. |