NCBI C Toolkit Cross Reference

C/sequin/sequin.h


  1 /*   sequin.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:  sequin.h
 27 *
 28 * Author:  Jonathan Kans
 29 *
 30 * Version Creation Date:   1/22/95
 31 *
 32 * $Revision: 6.593 $
 33 *
 34 * File Description: 
 35 *
 36 * Modifications:  
 37 * --------------------------------------------------------------------------
 38 * Date     Name        Description of modification
 39 * -------  ----------  -----------------------------------------------------
 40 *
 41 *
 42 * ==========================================================================
 43 */
 44 
 45 #ifndef _SEQUIN_
 46 #define _SEQUIN_
 47 
 48 #ifdef INTERNAL_NCBI_SEQUIN
 49 #ifndef EXTRA_SERVICES
 50 #define EXTRA_SERVICES
 51 #endif
 52 #ifndef NETWORK_SAVVY_SEQUIN
 53 #define NETWORK_SAVVY_SEQUIN
 54 #endif
 55 #ifndef USE_SPELL
 56 #define USE_SPELL
 57 #endif
 58 #endif
 59 
 60 #ifdef EXTRA_SERVICES
 61 #define USE_DESKTOP
 62 #define REPLACE_THIS
 63 #define EDIT_LOCUS
 64 #endif
 65 
 66 #ifdef NETWORK_SAVVY_SEQUIN
 67 #define USE_ENTREZ
 68 #define USE_LOCAL
 69 #define USE_BLAST
 70 #define USE_MEDARCH
 71 #define USE_TAXON
 72 #define ALLOW_DOWNLOAD
 73 #endif
 74 
 75 #ifdef PUBLIC_NETWORK_SEQUIN
 76 #define USE_DESKTOP
 77 #define USE_ENTREZ
 78 #define USE_LOCAL
 79 #define USE_BLAST
 80 #define USE_MEDARCH
 81 #define USE_TAXON
 82 #define ALLOW_DOWNLOAD
 83 #endif
 84 
 85 #include <dlogutil.h>
 86 #include <bspview.h>
 87 #include <objproj.h>
 88 #include <urlquery.h>
 89 
 90 
 91 #ifdef __cplusplus
 92 extern "C" {
 93 #endif
 94 
 95 
 96 #define SEQ_PKG_SINGLE        1
 97 #define SEQ_PKG_SEGMENTED     2
 98 #define SEQ_PKG_GAPPED        3
 99 #define SEQ_PKG_GENOMICCDNA   4
100 #define SEQ_PKG_POPULATION    5
101 #define SEQ_PKG_PHYLOGENETIC  6
102 #define SEQ_PKG_MUTATION      7
103 #define SEQ_PKG_ENVIRONMENT   8
104 #define SEQ_PKG_GENBANK       9
105 #define NUM_SEQ_PKG           9
106 
107 #define SEQ_FMT_FASTA         1
108 #define SEQ_FMT_ALIGNMENT     2 
109 #define NUM_SEQ_FMT           2 
110   
111 /*
112 #define SEQ_FMT_FASTAGAP      2
113 #define SEQ_FMT_PHYLIP        3
114 #define SEQ_FMT_NEXUS         4
115 #define SEQ_FMT_PAUP          5
116 */
117 
118 #define SEQ_ORIG_SUBMISSION   1
119 #define SEQ_TPA_SUBMISSION    2
120 
121 typedef struct fmtblk {
122   Int2         seqPackage;
123   Int2         seqFormat;
124   Int2         numSeqs;
125   Int2         submType;
126 } FormatBlock, PNTR FormatBlockPtr;
127 
128 typedef struct sqnblk {
129   AuthorPtr    contactperson;
130   AuthListPtr  citsubauthors;
131   AffilPtr     citsubaffil;
132   CharPtr      citsubtitle;
133   DatePtr      releasedate;
134   Boolean      holduntilpublished;
135 } SequinBlock, PNTR SequinBlockPtr;
136 
137 extern CharPtr SEQUIN_APPLICATION;
138 extern CharPtr SEQUIN_SERVICES;
139 extern CharPtr SEQUIN_VERSION;
140 
141 extern ForM  helpForm;
142 
143 extern Boolean  useDesktop;
144 extern Boolean  useEntrez;
145 extern Boolean  useLocal;
146 extern Boolean  useBlast;
147 extern Boolean  useMedarch;
148 extern Boolean  useTaxon;
149 extern Boolean  allowDownload;
150 extern Boolean  extraServices;
151 extern Boolean  indexerVersion;
152 extern CharPtr  genomeCenter;
153 
154 extern Boolean  leaveAsOldAsn;
155 extern Boolean  newAlignReader;
156 
157 #ifdef WIN_MAC
158 extern Boolean  termListUp;
159 extern Boolean  docSumUp;
160 extern Boolean  bioseqViewUp;
161 #endif
162 
163 extern void SwapQualifiers (IteM i);
164 extern void PrefixAuthorityWithOrganism (IteM i);
165 extern void UpdateFastaSet (IteM i);
166 extern void ExtendFastaSet (IteM i);
167 extern void ExtendAllSequencesInSet (IteM i);
168 extern void SeqLocAdjustByOffset (SeqLocPtr slp, Int4 offset);
169 extern void SplitSegmentedFeatsMenuItem (IteM i);
170 extern SeqFeatPtr SeqFeatCopy (SeqFeatPtr sfp);
171 extern SeqLocPtr SeqLocReplaceLocalID (SeqLocPtr slp,
172                                        SeqIdPtr  new_sip);
173 extern SequinBlockPtr SequinBlockFree (SequinBlockPtr sbp);
174 
175 extern ForM CreateStartupForm (Int2 left, Int2 top, CharPtr title,
176                                BtnActnProc startFa2htgs,
177                                BtnActnProc startPhrap,
178                                BtnActnProc buildContig,
179                                BtnActnProc startNew,
180                                BtnActnProc readExisting,
181                                BtnActnProc fetchFromNet,
182                                BtnActnProc showHelp,
183                                BtnActnProc createSubmissionTemplate,
184                                BtnActnProc quitProgram,
185                                WndActnProc activateForm);
186 
187 extern void DrawAbout (PaneL p);
188 extern Int2 AboutBoxWidth (void);
189 extern Int2 AboutBoxHeight (void);
190 
191 extern ForM CreateFormatForm (Int2 left, Int2 top, CharPtr title,
192                               BtnActnProc goToNext,
193                               BtnActnProc goBack,
194                               WndActnProc activateForm);
195 
196 extern ForM CreateInitSubmitterForm (Int2 left, Int2 top, CharPtr title,
197                                      BtnActnProc goToNext,
198                                      BtnActnProc goBack,
199                                      WndActnProc activateForm);
200 
201 extern DialoG CreateFastaDialog (GrouP h, CharPtr title, Boolean is_na, Boolean is_mrna,
202                                  CharPtr text, Boolean single, Int2Ptr seqPackagePtr);
203 
204 extern ForM CreateInitOrgNucProtForm (Int2 left, Int2 top, CharPtr title,
205                                       FormatBlockPtr format,
206                                       BtnActnProc goToNext,
207                                       BtnActnProc goBack,
208                                       WndActnProc activateForm);
209 
210 extern ForM CreateGenomeCenterForm (Int2 left, Int2 top, CharPtr title,
211                                     BtnActnProc finish,
212                                     BtnActnProc cancel,
213                                     Boolean readPhrap,
214                                     Boolean buildContig,
215                                     WndActnProc activateForm);
216 
217 extern SeqEntryPtr ImportOneGappedSequence (FILE *fp);
218 
219 extern Boolean HasZeroLengthSequence (ForM newForm);
220 extern Boolean SequencesFormHasProteins (ForM f);
221 extern SeqEntryPtr GetSequencesFormProteinList (ForM f);
222 extern SeqEntryPtr GetSequencesFormNucleotideList (ForM f);
223 extern Boolean SequencesFormHasTooManyNucleotides (ForM f);
224 
225 extern void AppendOrReplaceString (
226   CharPtr PNTR string_loc,
227   CharPtr new_value,
228   Boolean PNTR asked_question,
229   Boolean PNTR do_replace,
230   Boolean PNTR use_semicolon
231 );
232 
233 extern void ConsolidateOrganismNotes (IteM i);
234 extern void ConsolidateLikeModifiersWithSemicolons (IteM i);
235 extern void ConsolidateLikeModifiersWithoutSemicolons (IteM i);
236 
237 extern void CountryLookupWithoutCapFix (IteM i);
238 extern void CountryLookupWithCapFix (IteM i);
239 extern void ExtractProteinFeaturesFromNote (IteM i);
240 extern void ConvertPseudoCDSToMiscFeat (IteM i);
241 extern void ProcessPseudoMiscFeat (IteM i);
242 extern void ParseInfluenzaAVirusNames (IteM i);
243 extern void AddStrainAndSerotypeToInfluenzaAVirusNames (IteM i);
244 extern void FixupInfluenzaAVirusNames(IteM i);
245 extern void EditPubs (IteM i);
246 extern void EditPubsEx (BaseFormPtr bfp);
247 extern void RemovePubConsortiums (IteM i);
248 
249 extern void ExtendPartialFeatures (IteM i);
250 extern void ExtendPartialFeaturesWithConstraint (IteM i);
251 extern void TrimOrganismName (IteM i);
252 extern void SUCSubmitterProc (IteM i);
253 
254 extern CharPtr FixInfluenzaVirusName (CharPtr orig_name);
255 
256 extern void ConfirmSequencesFormParsing (ForM f, FormActnFunc putItAllTogether);
257 
258 extern ForM CreateHelpForm (Int2 left, Int2 top, CharPtr title,
259                             CharPtr file, BtnActnProc closeForm,
260                             WndActnProc activateForm);
261 
262 extern void SendHelpScrollMessage (ForM f, CharPtr heading, CharPtr section);
263 
264 extern void ApplyCDSFrame (IteM i);
265 
266 /* The next pointer in NewObject is not used in freeing the list.  Each
267 block is attached individually as extra data to the appropriate menu item.
268 The linked list is used solely to enable and disable new feature menu items
269 by the target bsp->mol, or to enable and disable analysis menu items by the
270 ability to produce FASTA (bioseq viewer or docsum window). */
271 
272 typedef struct urlparamdata {
273   Uint1          type;     /* 1 = text, 2 = checkbox, 3 = popup, 4 = radio, 5 = list */
274   CharPtr        param;
275   CharPtr        prompt;   /* if no prompt, use param */
276   CharPtr        dfault;
277   CharPtr        choices;  /* choices if param is popup */
278   CharPtr        group;    /* used for grouping related controls */
279   CharPtr        descr;
280   CharPtr        help;
281 } UrlParamData, PNTR UrlParamPtr;
282 
283 typedef struct newobjectdata {
284   Int2             kind;   /* 1 = feature creation, 2 = analysis */
285   ObjMgrProcPtr    ompp;
286   BaseFormPtr      bfp;
287   IteM             item;
288   Uint1            molgroup;
289   Uint2            descsubtype;
290   Boolean          bspOK;
291   Boolean          dsmOK;
292   Boolean          fastaNucOK;
293   Boolean          fastaProtOK;
294   Boolean          onlyBspTarget;
295   /* the next eight fields are for the analysis menu only, for remote URLs */
296   CharPtr          host_machine;
297   Uint2            host_port;
298   CharPtr          host_path;
299   CharPtr          query;
300   Uint4            timeoutsec;
301   Int2             format;     /* 1 = FASTA, 2 = ASN.1 */
302   Boolean          demomode;
303   QueryResultProc  resultproc;
304   ValNodePtr       paramlist; /* data.ptrvalue points to UrlParamData block */
305   CharPtr          prefix;
306   CharPtr          suffix;
307   CharPtr          homepage;
308   CharPtr          credits;
309   CharPtr          authors;
310   CharPtr          disclaimer;
311   CharPtr          reference;
312   Uint4            pmid;
313   CharPtr          blurb;
314   struct newobjectdata PNTR next;
315 } NewObjectData, PNTR NewObjectPtr;
316 
317 #ifdef WIN_MAC
318 extern VoidPtr macUserDataPtr;
319 #endif
320 
321 extern void SetupSpecialMenu (MenU m, BaseFormPtr bfp);
322 extern void SetupNewFeaturesMenu (MenU m, BaseFormPtr bfp);
323 extern void SetupNewDescriptorsMenu (MenU m, BaseFormPtr bfp);
324 extern void SetupNewPublicationsMenu (MenU m, BaseFormPtr bfp);
325 extern void SetupBatchApplyMenu (MenU s, BaseFormPtr bfp);
326 extern void SetupBatchEditMenu (MenU s, BaseFormPtr bfp);
327 extern MenU CreateAnalysisMenu (WindoW w, BaseFormPtr bfp, Boolean bspviewOK, Boolean docsumOK);
328 extern void SetupSequinFilters (void);
329 extern void SetupBioseqPageList (void);
330 
331 extern Boolean LIBCALLBACK SequinOpenMimeFile (CharPtr filename);
332 extern Boolean LIBCALLBACK SequinOpenResultFile (CharPtr filename);
333 extern Boolean LIBCALLBACK SequinHandleNetResults (CharPtr filename);
334 
335 extern void SequinCheckSocketsProc (void);
336 
337 extern Int4 MySeqEntryToAsn3 (SeqEntryPtr sep, Boolean strip, Boolean correct, Boolean force);
338 extern void ValSeqEntryForm (ForM f);
339 
340 extern void InitSequinExtras (void);
341 extern void FiniSequinExtras (void);
342 
343 /* This function destroys the SequinBlockPtr */
344 
345 extern Uint2 PackageFormResults (SequinBlockPtr sbp, SeqEntryPtr sep,
346                                  Boolean makePubAndDefLine);
347 
348 extern void EnableFeaturesPerTarget (BaseFormPtr bfp);
349 extern void EnableAnalysisItems (BaseFormPtr bfp, Boolean isDocSum);
350 
351 extern void ExtendSeqLocToPosition (SeqLocPtr slp, Boolean end5, Int4 pos);
352 
353 #define REGISTER_BIOSEQ_SEG_EDIT ObjMgrProcLoad(OMPROC_EDIT,"Edit Bioseq Seg","BioseqSegEditor",OBJ_BIOSEQ_SEG,0,OBJ_BIOSEQ_SEG,0,NULL,BioseqSegEditFunc,PROC_PRIORITY_DEFAULT)
354 extern Int2 LIBCALLBACK BioseqSegEditFunc (Pointer data);
355 
356 #define REGISTER_BIOSEQ_SET_EDIT ObjMgrProcLoad(OMPROC_EDIT,"Edit Bioseq Set","BioseqSetEditor",OBJ_BIOSEQSET,0,OBJ_BIOSEQSET,0,NULL,BioseqSetEditFunc,PROC_PRIORITY_DEFAULT)
357 extern Int2 LIBCALLBACK BioseqSetEditFunc (Pointer data);
358 
359 extern void LaunchOrfViewer (BioseqPtr bsp, Uint2 entityID, Uint4 itemID, Boolean standAlone);
360 
361 extern Int2 ApplyAnnotationToAll (Int2 type, SeqEntryPtr sep,
362                                   ButtoN partialLft, ButtoN partialRgt,
363                                   TexT geneName, TexT protName, 
364                                   TexT protDesc, TexT rnaName,
365                                   TexT featcomment, TexT defline);
366 
367 extern SeqFeatPtr FindBestCds (Uint2 entityID, SeqLocPtr loc, SeqLocPtr prod, SeqEntryPtr scope);
368 
369 NLM_EXTERN SeqEntryPtr SequinFastaToSeqEntryEx 
370   (
371     FILE *fp, Boolean is_na, CharPtr PNTR errormsg,
372     Boolean parseSeqId, CharPtr special_symbol
373   );
374 
375 NLM_EXTERN SeqEntryPtr SequinFastaToSeqEntryExEx
376   (
377     FILE *fp,               /* file to get sequence from */ 
378     Boolean is_na,          /* type of sequence */
379     CharPtr PNTR errormsg,  /* error message for debugginq */
380     Boolean parseSeqId,     /* Parse SeqID from def line */
381     CharPtr special_symbol, /* Returns special symbol if no SeqEntry */
382     BoolPtr chars_stripped  /* set to TRUE if characters other than digits
383                              * were stripped from the FASTA sequence data */
384   );
385 
386 /* Many miscellaneous extern functions within sequin source files */
387 
388 extern Boolean WriteSequinAppParam (CharPtr section, CharPtr type, CharPtr value);
389 
390 extern Boolean PropagateFromGenBankBioseqSet (SeqEntryPtr sep, Boolean ask);
391 
392 extern Uint2 SmartAttachSeqAnnotToSeqEntry (Uint2 entityID, SeqAnnotPtr sap, ValNodePtr PNTR err_list);
393 extern void HandleProjectAsn (ProjectPtr proj, Uint2 entityID);
394 
395 extern CharPtr CompressSpaces (CharPtr str);
396 extern CharPtr SearchForString (CharPtr str, CharPtr sub, Boolean case_counts, Boolean whole_word);
397 extern void AddAboutAndHelpMenuItems (MenU m);
398 extern void NetConfigureProc (IteM i);
399 extern void EntrezQueryProc (IteM i);
400 extern void Entrez2QueryProc (IteM i);
401 extern void SetupEditSecondary (MenU m, BaseFormPtr bfp);
402 extern void SimpleCDDBlastProc (IteM i);
403 extern void SimpleCDDSearchFeatProc (IteM i);
404 extern void SimpleCDDSearchAlignProc (IteM i);
405 extern void ForceCleanupEntityID (Uint2 entityID);
406 extern void ForceTaxonFixupBtn (IteM i, ButtoN b);
407 extern void CommonAddOrgOrModsToDefLines (IteM i, Int2 orgmod, Int2 subsource, ButtoN b);
408 extern void PrefixDefLines (IteM i);
409 extern void MRnaFromCdsProc (Uint2 entityID);
410 extern void BioseqViewFormToolBar (GrouP h);
411 extern void BioseqViewFormWGSToolBar (GrouP h);
412 extern Boolean DoBuildContig (void);
413 extern void SetGenome (PopuP p);
414 extern PopuP ReplaceBioSourceGencodePopup (DialoG d, PopuP gencode);
415 extern CharPtr NameStdPtrToAuthorSpreadsheetString (NameStdPtr nsp);
416 extern NameStdPtr AuthorSpreadsheetStringToNameStdPtr (CharPtr txt);
417 extern Boolean ExtendGene (GeneRefPtr grp, SeqEntryPtr nsep, SeqLocPtr slp);
418 extern void CommonAddOrgOrModsToDefLines (IteM i, Int2 orgmod, Int2 subsource, ButtoN b);
419 extern void CorrectGenCodes (SeqEntryPtr sep, Uint2 entityID);
420 extern void PrepareToConvertToCDS (SeqEntryPtr sep, Uint2 entityID,
421                                    Uint2 subtype, CharPtr findthis);
422 extern void EditGenbankElements (Handle i);
423 extern void EditSequenceHistory (IteM i);
424 extern void InsertGeneLocusTagPrefix (IteM i);
425 extern void ReplaceRepeatRegionLocusTagWithDbxref (IteM i);
426 extern void FindGeneAndProtForCDS (Uint2 entityID, SeqFeatPtr cds,
427                                    SeqFeatPtr PNTR gene, SeqFeatPtr PNTR prot);
428 extern void ExportAlignmentInterleave (IteM i);
429 extern void ExportAlignmentContiguous (IteM i);
430 extern void FixFeatureIntervals (IteM i);
431 extern void CombineMultipleCDS (IteM i);
432 
433 extern void NewDescriptorMenuFunc (ObjMgrProcPtr ompp, BaseFormPtr bfp, Uint2 descsubtype);
434 extern Boolean PropagateFromGenBankBioseqSet (SeqEntryPtr sep, Boolean ask);
435 extern int LIBCALLBACK SortByVnpChoice (VoidPtr ptr1, VoidPtr ptr2);
436 extern void PrepareToConvertToCDS (SeqEntryPtr sep, Uint2 entityID,
437                                    Uint2 subtype, CharPtr findthis);
438 extern void ConvertToLocalProcOnlyNucs (IteM i);
439 extern void ConvertToLocalProcOnlyProts (IteM i);
440 extern void ConvertToLocalProcAll (IteM i);
441 
442 extern void PromoteToBestIDProc (IteM i);
443 extern void PromoteToWorstIDProc (IteM i);
444 extern void ChangeGenBankNameToLocal (IteM i);
445 extern void RemoveGBIDsFromBioseqs (IteM i);
446 extern void RemoveGBIDsFromProteins (IteM i);
447 extern void RemoveGIsFromBioseqs (IteM i);
448 
449 extern void CommonApplyToAllProc (BaseFormPtr bfp, Int2 type);
450 extern void ApplyTitle (IteM i);
451 extern void ApplyCDS (IteM i);
452 extern void ApplyRRNA (IteM i);
453 extern void ApplyImpFeat (IteM i);
454 extern void AdjustCDSLocationsForKnownAndUnknownGapsCallback (SeqFeatPtr sfp, Pointer userdata);
455 extern void AdjustFeaturesForGaps (IteM i);
456 extern void LoadTPAAccessionNumbersFromFile (IteM i);
457 extern void LoadSecondaryAccessionNumbersFromFile (IteM i);
458 extern void LoadHistoryAccessionNumbersFromFile (IteM i);
459 extern void LoadOrganismModifierTable (IteM i);
460 extern void LoadTaxConsult (IteM i);
461 extern void ExportOrganismTable (IteM i);
462 extern void LoadFeatureQualifierTable (IteM i);
463 
464 extern void AddCodonListTotRNA (tRNAPtr trna, ValNodePtr codons);
465 
466 extern void RemoveRedundantProproteinMiscFeats (IteM i);
467 extern void AddTypeStrainCommentsToAll (IteM i);
468 extern void AddTypeStrainCommentsWithConstraint (IteM i);
469 extern void RemoveSequencesFromAlignment (IteM i);
470 extern void RemoveSequencesFromRecord (IteM i);
471 
472 extern void ParseFileToSource (IteM i);
473 extern void AddModToOrg (IteM i);
474 extern void AddModToOrgBaseForm (BaseFormPtr bfp);
475 extern void ChangeTargetBaseForm (BaseFormPtr bfp);
476 
477 
478 extern void ParseInMoreProteins (IteM i);
479 extern void ParseInNucUpdates (IteM i);
480 extern void ParseInOligoPrimers (IteM i);
481 extern void ParseInMoreMRNAs (IteM i);
482 
483 extern void RecomputeSuggestEx (Uint2 entityID, Boolean fix_genes, Boolean recompute_all);
484 extern void RecomputeSuggest (IteM i);
485 extern void RecomputeSuggestFixGenes (IteM i);
486 extern void RetranslateCdRegionsEx (
487   Uint2   entityID,
488   Boolean include_stop,
489   Boolean no_stop_at_end_of_complete_cds );
490 extern void RetranslateCdRegionsNoStop (IteM i);
491 extern void RetranslateCdRegionsDoStop (IteM i);
492 extern void RetranslateCdRegionsNoStopExceptEndCompleteCDS (IteM i);
493 extern void AddGlobalCodeBreak (IteM i);
494 extern void ParseCodonQualToCodeBreak (IteM i);
495 extern void CorrectCDSGenCodes (IteM i);
496 /* extern void CorrectCDSStartCodon (IteM i); */
497 /* extern Boolean RetranslateOneCDS (SeqFeatPtr sfp, Uint2 entityID, Boolean include_stop); */
498 extern void UpdateProteinsFromCDS (IteM i);
499 
500 extern void AutoDef (IteM i);
501 extern void AutoDefWithOptions (IteM i);
502 extern void AutoDefWithoutModifiers (IteM i);
503 extern void AutoDefBaseFormCommon (BaseFormPtr bfp, Boolean use_form, Boolean use_modifiers);
504 extern void AutoDefStrain (BaseFormPtr bfp);
505 extern void AutoDefMiscFeat (BaseFormPtr bfp);
506 extern void AutoDefToolBtn (ButtoN b);
507 extern void AutoDefOptionsToolBtn (ButtoN b);
508 extern void AutoDefStrainToolBtn (ButtoN b);
509 extern void AutoDefMiscFeatToolBtn (ButtoN b);
510 extern void AutoDefEntityIDNoOptions (Uint2 entityID, Boolean use_modifiers);
511 extern void AutoDefId (Uint2 entityID);
512 
513 extern void RemoveDefLinesToolBtn (ButtoN b);
514 extern void FindStringProcToolBtn (ButtoN b);
515 extern void FindFlatfileProcToolBtn (ButtoN b);
516 extern void ResolveExistingLocalIDsToolBtn (ButtoN b);
517 extern void GroupExplodeToolBtn (ButtoN b);
518 
519 extern Int2 LIBCALLBACK MakeGroupsOf200 (Pointer data);
520 
521 extern void SetBestFrame (SeqFeatPtr sfp);
522 extern Boolean SetBestFrameByLocation (SeqFeatPtr sfp);
523 
524 extern void ViewAlignmentSummary (IteM i);
525 
526 extern void SetupEditSecondary (MenU m, BaseFormPtr bfp);
527 extern void EditLocusProc (IteM i);
528 
529 extern ValNodePtr BuildDescriptorValNodeList (void);
530 
531 extern void RemoveDescriptor (IteM i);
532 
533 extern void SelectDescriptor (IteM i);
534 extern void SelectBioseq (IteM i);
535 extern void SelectPubs (IteM i);
536 
537 extern void FuseFeature (IteM i);
538 
539 extern void MakeExonsFromCDSIntervals (IteM i);
540 extern void MakeExonsFromMRNAIntervals (IteM i);
541 
542 extern Int2 LIBCALLBACK CreateDeleteByTextWindow (Pointer data);
543 extern Int2 LIBCALLBACK CreateSegregateByTextWindow (Pointer data);
544 extern Int2 LIBCALLBACK SegregateSetsByField (Pointer data);
545 extern Int2 LIBCALLBACK CreateSegregateByFeatureWindow (Pointer data);
546 extern Int2 LIBCALLBACK CreateSegregateByDescriptorWindow (Pointer data);
547 extern Int2 LIBCALLBACK CreateSegregateByMoleculeTypeWindow (Pointer data);
548 extern Int2 LIBCALLBACK CreateSegregateByIdWindow (Pointer data);
549 extern Int2 LIBCALLBACK SequesterSequences (Pointer data);
550 extern Int2 LIBCALLBACK RemoveExtraneousSets (Pointer data);
551 extern void ReverseComplementBioseqAndFeats (BioseqPtr bsp, Uint2 entityID);
552 extern void RemoveOrphanProteins (Uint2 entityID, SeqEntryPtr sep);
553 extern void RemoveTextInsideString (IteM i);
554 extern void RemoveTextOutsideString (IteM i);
555 
556 extern void BioseqViewFormToolBar (GrouP h);
557 
558 extern void FindStringProc (IteM i);
559 extern void FindFlatfileProc (IteM i);
560 extern void FindGeneProc (IteM i);
561 extern void FindProtProc (IteM i);
562 extern void FindPosProc (IteM i);
563 
564 extern void SimpleUniVecScreenProc (IteM i);
565 extern void SimpleUniVecCoreScreenProc (IteM i);
566 
567 extern Boolean MeetsStringConstraint (SeqFeatPtr sfp, CharPtr str, Boolean case_insensitive);
568 
569 extern Boolean SaveSeqSubmitProc (BaseFormPtr bfp, Boolean saveAs);
570 
571 extern void ExciseString (CharPtr str, CharPtr from, CharPtr to);
572 extern void MakeSearchStringFromAlist (CharPtr str, CharPtr name);
573 extern void AddToSubSource (BioSourcePtr biop, CharPtr title, CharPtr label, Uint1 subtype);
574 extern void AddToOrgMod (BioSourcePtr biop, CharPtr title, CharPtr label, Uint1 subtype);
575 extern Boolean AutomaticProteinProcess (SeqEntryPtr esep, SeqEntryPtr psep,
576                                         Int2 code, Boolean makeMRNA, 
577                                         SeqLocPtr use_this);
578 
579 extern CharPtr repackageMsg;
580 extern BioseqPtr  updateTargetBspKludge;
581 extern SeqEntryPtr     globalsep;
582 extern Uint2           globalEntityID;
583 extern Char            globalPath [PATH_MAX];
584 extern ForM  startupForm;
585 extern SeqViewProcs        seqviewprocs;
586 
587 extern void CommonFetchFromNet (BtnActnProc actn, BtnActnProc cancel);
588 extern void FetchFromNet (ButtoN b);
589 extern Boolean SequinEntrezInit (CharPtr appl_id, Boolean no_warnings, BoolPtr is_network);
590 extern void JustRegisterSeqEntry (BaseFormPtr bfp, Boolean freeit);
591 extern void JustRegisterSeqEntryBtn (ButtoN b);
592 extern void AddSubmitBlockToSeqEntry (ForM f);
593 
594 extern void SqnReadAlignView (BaseFormPtr bfp, BioseqPtr target_bsp, SeqEntryPtr source_sep, Boolean do_update);
595 extern void DownloadAndUpdateProc (ButtoN b);
596 extern void DownloadAndExtendProc (ButtoN b);
597 extern void UpdateSeqAfterDownload (BaseFormPtr bfp, BioseqPtr oldbsp, BioseqPtr newbsp);
598 extern void ExtendSeqAfterDownload (BaseFormPtr bfp, BioseqPtr oldbsp, BioseqPtr newbsp);
599 extern void NewUpdateSequence (IteM i);
600 extern void NewExtendSequence (IteM i);
601 
602 extern void FastaNucDirectToSeqEdProc (IteM i);
603 
604 extern void ParseCodonsFromtRNAComment (IteM i);
605 extern void ParseAntiCodonsFromtRNAComment (IteM i);
606 
607 extern void RemoveAlignment (IteM i);
608 extern void RemoveGraph (IteM i);
609 extern void RemoveSeqAnnotIDs (IteM i);
610 extern void RemoveSeqAnnotLOCs (IteM i);
611 
612 extern void RemoveProteins (IteM i);
613 extern void RemoveProteinsAndRenormalize (IteM i);
614 
615 extern void GlobalAddTranslExcept (IteM i);
616 extern void AddTranslExceptWithComment (IteM i);
617 
618 extern const char *nucleotide_alphabet;
619 extern const char *protein_alphabet;
620 extern void ReadAlignment (IteM i);
621 extern SeqEntryPtr SeqEntryFromAlignmentFile (FILE *fp, TSequenceInfoPtr sequence_info, Uint1 moltype,
622                                               CharPtr no_org_err_msg);
623 
624 extern SeqAlignPtr Sqn_GlobalAlignTwoSeq (BioseqPtr bsp1, BioseqPtr bsp2, BoolPtr revcomp);
625 
626 extern void SqnNewAlign (BioseqPtr bsp1, BioseqPtr bsp2, SeqAlignPtr PNTR salp);
627 
628 extern void ProduceAlignmentNotes (TAlignmentFilePtr afp, TErrorInfoPtr error_list);
629 
630 extern void RemoveAlignmentsWithSequence (BioseqPtr bsp, Uint2 input_entityID);
631 extern void FlipEntireAlignmentIfAllSequencesFlipped (SeqAnnotPtr sap, Pointer userdata);
632 
633 #ifndef WIN_MAC
634 extern void CreateSqnInitialFormMenus (WindoW w);
635 #endif
636 
637 #define NUM_PAGES  8
638 
639 typedef struct nucprotassoc {
640   Int4 position;
641   SeqLocPtr loc;
642   struct nucprotassoc PNTR  next;
643 } NucProtAssocData, PNTR NucProtAssocPtr;
644 
645 typedef struct sequencesform {
646   FORM_MESSAGE_BLOCK
647   GrouP           pages [NUM_PAGES];
648   Int2            currentPage;
649   Int2            tagFromPage [NUM_PAGES];
650   Int2            numPages;
651   DialoG          tbs;
652 
653   Uint1           dnamolfrommolinfo;
654   EnumFieldAssoc  PNTR moltypeAlist;
655   ButtoN          makeAlign;
656   DialoG          dnaseq;
657 
658   Int2            seqPackage;
659   Int2            seqFormat;
660   Int2            numSeqs;
661   Int2            submType;
662 
663   ButtoN          protTechBoth;
664   ButtoN          partialN;
665   ButtoN          partialC;
666   Boolean         makeMRNA;
667   DialoG          protseq;
668 
669   DialoG          mrnaseq;
670   ButtoN          partialmRNA5;
671   ButtoN          partialmRNA3;
672 
673   GrouP           annotType;
674   GrouP           annotGrp;
675   ButtoN          partialLft;
676   ButtoN          partialRgt;
677   TexT            geneName;
678   PrompT          protOrRnaPpt;
679   TexT            protOrRnaName;
680   PrompT          protDescPpt;
681   TexT            protDesc;
682   TexT            featcomment;
683   TexT            defline;
684   ButtoN          orgPrefix;
685 
686   ButtoN          nextBtn;
687   ButtoN          prevBtn;
688   BtnActnProc     goToNext;
689   BtnActnProc     goToPrev;
690 
691   /* These are added to add modifiers on the source tab */  
692   ButtoN          import_mod_btn;
693   ButtoN          source_assist_btn;
694   ButtoN          specify_orgs_btn;
695   ButtoN          specify_locs_btn;
696   ButtoN          specify_gcode_btn;
697   ButtoN          specify_mgcode_btn;
698   ButtoN          clear_mods_btn;
699   DoC             org_doc;
700   GrouP           ident_org_grp;
701   DialoG          summary_dlg;
702   
703   /* These allow the user to specify topology and molecule */
704   ButtoN          topology_btn;
705   ButtoN          molecule_btn;
706   
707   /* This list pairs the proteins and nucleotides. */
708   /* It must be freed using FreeAssociationList. */
709   NucProtAssocPtr nuc_prot_assoc_list;
710 
711 } SequencesForm, PNTR SequencesFormPtr;
712 
713 extern ValNodePtr InsertMostUsedFeatureValNodes (ValNodePtr old_list);
714 
715 extern ValNodePtr FindExactStringInStrings ( ValNodePtr strings, CharPtr value);
716 
717 extern EnumFieldAssocPtr InsertMostUsedFeatureEnumFieldAssoc (
718   EnumFieldAssocPtr alist
719 );
720 
721 extern ValNodePtr BuildFeatureValNodeList (
722   Boolean prefer_most_used,
723   CharPtr wild_card_name,
724   Int4 wild_card_value,
725   Boolean skip_unusual,
726   Boolean skip_import
727 );
728 
729 extern void RemoveOldName (OrgRefPtr orp);
730 extern void SetTaxNameAndRemoveTaxRef (OrgRefPtr orp, CharPtr taxname);
731 
732 extern void MergeToPartsJoin (IteM i);
733 extern void MergeToPartsOrdered (IteM i);
734 
735 extern void InitValNodePopup (ValNodePtr list, PopuP p);
736 extern Int2 GetValNodePopup (PopuP p, ValNodePtr list);
737 extern void SetValNodePopupValue (ValNodePtr list, PopuP p, CharPtr val);
738 
739 extern Uint1 FindTypeForModNameText (CharPtr cp);
740 
741 typedef struct featureswithtextdata 
742 {
743   Uint1             seqFeatChoice;
744   Uint1             featDefChoice;
745   CharPtr           search_text;
746   Boolean           case_insensitive;
747   Boolean           whole_word;
748   Boolean           no_text;
749   Boolean           act_when_string_not_present;
750   VisitFeaturesFunc callback;
751   Pointer           userdata;
752 } FeaturesWithTextData, PNTR FeaturesWithTextPtr;
753 
754 typedef struct descriptorswithtextdata 
755 {
756   CharPtr           search_text;
757   Boolean           case_insensitive;
758   Boolean           whole_word;
759   Boolean           no_text;
760   Boolean           act_when_string_not_present;
761   VisitDescriptorsFunc callback;
762   Pointer           userdata;
763 } DescriptorsWithTextData, PNTR DescriptorsWithTextPtr;
764 
765 
766 extern void OperateOnBioseqFeaturesWithText 
767 (BioseqPtr         bsp,
768  Pointer           userdata);
769 
770 extern void OperateOnSeqEntryFeaturesWithText (SeqEntryPtr sep, FeaturesWithTextPtr fdp);
771 extern void OperateOnSeqEntryDescriptorsWithText (SeqEntryPtr sep, DescriptorsWithTextPtr ddp);
772 
773 extern LisT 
774 MakeSequenceListControl 
775 (GrouP g,
776  SeqEntryPtr sep,
777  Nlm_LstActnProc actn, 
778  Pointer userdata, 
779  Boolean show_nucs, 
780  Boolean show_prots);
781 extern ValNodePtr GetSelectedSequenceList (LisT l);
782 extern void SelectAllSequencesInListCtrl (LisT l);
783 extern void UnSelectAllSequencesInListCtrl (LisT l);
784 extern void OffsetLocation (SeqLocPtr loc, Int4 offset, SeqIdPtr sip);
785 
786 extern CharPtr kSubmitterUpdateText;
787 extern CharPtr kIndexerUpdateVecScreenText;
788 extern Boolean CreateUpdateCitSubFromBestTemplate (SeqEntryPtr top_sep, SeqEntryPtr upd_sep, CharPtr update_txt);
789 extern void AddCitSubToUpdatedSequence (BioseqPtr upd_bsp, Uint2 input_entityID, CharPtr update_txt);
790 
791 extern Boolean AlistMessage (EnumFieldAssocPtr al, UIEnumPtr val, UIEnum dflt, CharPtr mssg);
792 
793 extern void LogCDSAmbiguousFrame (LogInfoPtr lip, SeqFeatPtr sfp);
794 
795 extern void LoadGenomeProjectIDsFromFile (IteM i);
796 extern void RemoveEmptyGenomeProjectIDs (IteM i);
797 extern void RemoveGenomeProjectIDs (IteM i);
798 
799 extern CharPtr SourceQualValNodeName (ValNodePtr vnp);
800 extern ValNodePtr SourceQualValNodeDataCopy (ValNodePtr vnp);
801 extern Boolean SourceQualValNodeMatch (ValNodePtr vnp1, ValNodePtr vnp2);
802 
803 extern ValNodePtr GetSourceQualDescList (Boolean get_subsrc, Boolean get_orgmod, Boolean get_discouraged, Boolean get_discontinued);
804 
805 extern void FeatureRemove (IteM i);
806 extern void ConvertFeatures (IteM i);
807 extern void SelectFeatures (IteM i);
808 extern void ReverseFeatureIntervals (IteM i);
809 extern void ParseDefLineToSourceQual (IteM i);
810 extern void ParseTaxnameToSourceQual (IteM i);
811 extern void ParseFlatfileToSourceQual (IteM i);
812 extern void ParseLocalIDToSourceQual (ButtoN b);
813 extern void FeatureEvidenceEditor (IteM i);
814 extern void FeatureExceptionEditor (IteM i);
815 extern void FeaturePartialEditor (IteM i);
816 extern void FeatureStrandEditor (IteM i);
817 extern void FeatureCitationEditor (IteM i);
818 extern void FeatureExperimentEditor (IteM i);
819 extern void FeatureInferenceEditor (IteM i);
820 extern void FeaturePseudoEditor (IteM i);
821 extern void ApplySourceQual (IteM i);
822 extern void PublicApplySourceQual (IteM i);
823 extern void EditSourceQual (IteM i);
824 extern void PublicEditSourceQual (IteM i);
825 extern void ConvertSourceQual (IteM i);
826 extern void SwapSourceQual (IteM i);
827 extern void RemoveSourceQual (IteM i);
828 extern void ApplyCDSGeneProt (IteM i);
829 extern void PublicApplyCDSGeneProt (IteM i);
830 extern void EditCDSGeneProt (IteM i);
831 extern void PublicEditCDSGeneProt (IteM i);
832 extern void ConvertCDSGeneProt (IteM i);
833 extern void SwapCDSGeneProt (IteM i);
834 extern void RemoveCDSGeneProt (IteM i);
835 extern void ApplyRNAQual (IteM i);
836 extern void PublicApplyRNAQual (IteM i);
837 extern void EditRNAQual (IteM i);
838 extern void PublicEditRNAQual (IteM i);
839 extern void ConvertRNAQual (IteM i);
840 extern void SwapRNAQual (IteM i);
841 extern void RemoveRNAQual (IteM i);
842 extern void ApplyGBQual (IteM i);
843 extern void PublicApplyGBQual (IteM i);
844 extern void EditGBQual (IteM i);
845 extern void PublicEditGBQual (IteM i);
846 extern void ConvertGBQual (IteM i);
847 extern void SwapGBQual (IteM i);
848 extern void RemoveGBQual (IteM i);
849 extern void ConvertLocusTagToOldLocusTag (IteM i);
850 extern void ExportLastLineage (IteM i);
851 
852 extern void MacroApplyGBQual (IteM i);
853 extern void MacroApplySourceQual (IteM i);
854 extern void MacroApplyCDSGeneProt (IteM i);
855 extern void PublicMacroApplyCDSGeneProt (IteM i);
856 extern void MacroApplyRNAQual (IteM i);
857 
858 extern void MacroRemoveGBQual (IteM i);
859 extern void MacroRemoveSourceQual (IteM i);
860 extern void MacroRemoveCDSGeneProt (IteM i);
861 extern void MacroRemoveRNAQual (IteM i);
862 
863 extern void MacroConvertGBQual (IteM i);
864 extern void MacroConvertSourceQual (IteM i);
865 extern void MacroConvertCDSGeneProt (IteM i);
866 extern void MacroConvertRNAQual (IteM i);
867 
868 extern void MacroSwapGBQual (IteM i);
869 extern void MacroSwapSourceQual (IteM i);
870 extern void MacroSwapCDSGeneProt (IteM i);
871 extern void MacroSwapRNAQual (IteM i);
872 
873 extern void MacroEditGBQual (IteM i);
874 extern void MacroEditSourceQual (IteM i);
875 extern void MacroEditCDSGeneProt (IteM i);
876 extern void PublicMacroEditCDSGeneProt (IteM i);
877 extern void MacroEditRNAQual (IteM i);
878 
879 extern void MacroApplyStructuredComment (IteM i);
880 extern void MacroEditStructuredComment (IteM i);
881 extern void MacroRemoveStructuredComment (IteM i);
882 
883 extern void PublicMacroApplyStructuredComment (IteM i);
884 extern void PublicMacroEditStructuredComment (IteM i);
885 
886 
887 /* constraint values */
888 #define LOCATION_CONSTRAINT_WHOLE_INTERVAL  1
889 #define LOCATION_CONSTRAINT_START_ENDPOINT  2
890 #define LOCATION_CONSTRAINT_STOP_ENDPOINT   3
891 
892 #define LOCATION_CONSTRAINT_ANY        1
893 #define LOCATION_CONSTRAINT_UPSTREAM   2
894 #define LOCATION_CONSTRAINT_DOWNSTREAM 3
895 #define LOCATION_CONSTRAINT_CONTAINED  4
896 #define LOCATION_CONSTRAINT_NOT_IN     5
897 #define LOCATION_CONSTRAINT_OVERLAP    6
898 #define LOCATION_CONSTRAINT_EQUAL      7
899 
900 #define LOCATION_CONSTRAINT_ANY_STRAND   1
901 #define LOCATION_CONSTRAINT_PLUS_STRAND  2
902 #define LOCATION_CONSTRAINT_MINUS_STRAND 3
903 
904 #define LOCATION_CONSTRAINT_ANY_SEQ      1
905 #define LOCATION_CONSTRAINT_NUC_SEQ      2
906 #define LOCATION_CONSTRAINT_PROT_SEQ     3
907 
908 typedef struct LocationConstraintX
909 {
910   Int4      left;
911   Int4      right;
912   Int4      interval_end_choice;
913   Int4      match_choice;
914   Int4      strand;
915   Int4      sequence_type;
916 } LocationConstraintXData, PNTR LocationConstraintXPtr;
917 
918 typedef enum
919 {
920   eStringConstraintContains = 1,
921   eStringConstraintEquals,
922   eStringConstraintStarts,
923   eStringConstraintEnds,
924   eStringConstraintInList 
925 } EStringConstraintMatchLocation;
926 
927 typedef struct stringconstraint
928 {
929   CharPtr match_text;
930   Int4    match_location;
931   Boolean insensitive;
932   Boolean whole_word;
933   Boolean not_present;
934 } StringConstraintData, PNTR StringConstraintXPtr;
935 
936 extern StringConstraintXPtr StringConstraintXFree (StringConstraintXPtr scp);
937 
938 typedef struct pseudoconstraint
939 {
940   Boolean is_pseudo;
941   Int4    featdef_type;
942 } PseudoConstraintData, PNTR PseudoConstraintPtr;
943 
944 #define CHOICE_CONSTRAINT_ANY          1
945 #define CHOICE_CONSTRAINT_QUAL_PRESENT 3
946 #define CHOICE_CONSTRAINT_STRING       5
947 #define CHOICE_CONSTRAINT_MATCH        7
948 #define CHOICE_CONSTRAINT_PSEUDO       9
949 
950 typedef struct choiceconstraint
951 {
952   Int4                constraint_type;
953   ValNodePtr          qual_choice;
954   ValNodePtr          qual_choice_match;
955   StringConstraintXPtr string_constraint;
956   PseudoConstraintPtr pseudo_constraint;
957   FreeValNodeProc     free_vn_proc;
958   CopyValNodeDataProc copy_vn_proc;
959 } ChoiceConstraintData, PNTR ChoiceConstraintPtr;
960 
961 extern ChoiceConstraintPtr ChoiceConstraintFree (ChoiceConstraintPtr scp);
962 
963 typedef struct sequenceconstraint 
964 {
965   Boolean nucs_ok;
966   Boolean prots_ok;
967   
968   Int4                other_constraint_type;
969   StringConstraintXPtr string_constraint;
970   ChoiceConstraintPtr source_constraint;
971   ValNodePtr          feature_list;
972   
973 } SequenceConstraintXData, PNTR SequenceConstraintXPtr;
974 
975 extern SequenceConstraintXPtr SequenceConstraintXFree (SequenceConstraintXPtr scp);
976 extern DialoG SequenceConstraintXDialog (GrouP g);
977 extern Boolean DoesSequenceMatchSequenceConstraintX (BioseqPtr bsp, SequenceConstraintXPtr scp);
978 
979 
980 
981 typedef struct filterset 
982 {
983   StringConstraintXPtr   scp;
984   ChoiceConstraintPtr   ccp;
985   LocationConstraintXPtr lcp;
986   ChoiceConstraintPtr   cgp;
987   StringConstraintXPtr   id_list;
988 } FilterSetData, PNTR FilterSetPtr;
989 
990 extern void FilterSetClearText (FilterSetPtr fsp);
991 extern FilterSetPtr FilterSetNew (void);
992 extern FilterSetPtr FilterSetFree (FilterSetPtr fsp);
993 
994 extern Boolean DoesStringMatchConstraintX (CharPtr pchSource, StringConstraintXPtr scp);
995 
996 typedef CharPtr (*GetFeatureFieldString) PROTO ((SeqFeatPtr, ValNodePtr, FilterSetPtr));
997 typedef void (*SetFeatureFieldString) PROTO ((SeqFeatPtr, Pointer, FilterSetPtr));
998 typedef void (*RemoveFeatureFieldString) PROTO ((SeqFeatPtr, Pointer, FilterSetPtr));
999 typedef CharPtr (*GetDescriptorFieldString) PROTO ((SeqDescrPtr, ValNodePtr, FilterSetPtr));
1000 typedef void (*SetDescriptorFieldString) PROTO ((SeqDescrPtr, Pointer, FilterSetPtr));
1001 typedef void (*RemoveDescriptorFieldString) PROTO ((SeqDescrPtr, Pointer, FilterSetPtr));
1002 typedef void (*FeatureActionProc) PROTO ((SeqFeatPtr, Pointer, FilterSetPtr));
1003 typedef void (*DescriptorActionProc) PROTO ((SeqDescrPtr, Pointer, FilterSetPtr));
1004 typedef Boolean (*OkToPreSample) PROTO ((Uint2 entityID));
1005 
1006 extern void 
1007 OperateOnSeqEntryConstrainedObjects 
1008 (SeqEntryPtr           sep,
1009  FilterSetPtr          fsp,
1010  FeatureActionProc     feature_action,
1011  DescriptorActionProc  descriptor_action,
1012  Uint1                 seqFeatChoice,
1013  Uint1                 featDefChoice,
1014  Uint1                 descriptorChoice,
1015  Pointer               userdata);
1016 
1017 extern CharPtr HandleApplyValue (CharPtr orig_text, ApplyValuePtr avp);
1018 extern ValNodePtr 
1019 ApplyValueToValNodeStringList 
1020 (ValNodePtr list, Int2 choice, ApplyValuePtr avp);
1021 
1022 typedef  Boolean (*Nlm_AcceptActnProc) PROTO((Pointer));
1023 typedef  void  (*Nlm_CancelActnProc) PROTO ((Pointer));
1024 typedef  void  (*Nlm_ClearActnProc) PROTO ((Pointer));
1025 typedef  void  (*Nlm_ClearTextActnProc) PROTO ((Pointer));
1026 
1027 extern ValNodePtr ValNodeFuncFree (ValNodePtr vnp, FreeValNodeProc free_vn_proc);
1028 
1029 typedef struct textportion
1030 {
1031   Int4    start_choice;
1032   CharPtr start_text;
1033   Int4    end_choice;
1034   CharPtr end_text;
1035   Boolean insensitive;
1036   Boolean whole_word;
1037 } TextPortionXData, PNTR TextPortionXPtr;
1038 
1039 extern TextPortionXPtr TextPortionXFree (TextPortionXPtr tp);
1040 extern void 
1041 FindTextPortionXInString 
1042 (CharPtr        str, 
1043  TextPortionXPtr tp, 
1044  CharPtr PNTR   ploc, 
1045  Int4Ptr        plen);
1046 
1047 extern DialoG TextPortionXDialogEx (GrouP h, Boolean inside, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
1048 extern DialoG TextPortionXDialog (GrouP h);
1049 
1050 #define CONVERT_TYPE_MOVE  0
1051 #define CONVERT_TYPE_COPY  1
1052 #define CONVERT_TYPE_SWAP  2
1053 #define CONVERT_TYPE_PARSE 3
1054 
1055 typedef struct convertfield
1056 {
1057   ValNodePtr                  src_field_list;
1058   ValNodePtr                  dst_field_list;
1059   ExistingTextPtr             etp;
1060   Int2                        convert_type;
1061   GetFeatureFieldString       get_str_func;
1062   SetFeatureFieldString       set_str_func;
1063   RemoveFeatureFieldString    remove_str_func;
1064   GetDescriptorFieldString    get_d_str_func;
1065   SetDescriptorFieldString    set_d_str_func;
1066   RemoveDescriptorFieldString remove_d_str_func;
1067   NameFromValNodeProc         name_field_func;
1068   FilterSetPtr                fsp;
1069   TextPortionXPtr              text_portion;
1070   Boolean                     strip_name_from_text;
1071   Boolean                     remove_parsed;
1072 } ConvertFieldData, PNTR ConvertFieldPtr;
1073 
1074 extern DialoG StringConstraintDialogX (GrouP h, CharPtr label, Boolean clear_btn);
1075 extern DialoG LocationConstraintXDialog (GrouP h, Boolean show_interval_controls, Boolean clear_btn);
1076 
1077 enum pub_field_nums 
1078 {
1079   PUB_FIELD_ANY = 0,
1080   PUB_FIELD_TITLE,
1081   PUB_FIELD_FIRST_NAME,
1082   PUB_FIELD_MIDDLE_INITIAL,
1083   PUB_FIELD_LAST_NAME,
1084   PUB_FIELD_SUFFIX,
1085   PUB_FIELD_CONSORTIUM,
1086   PUB_FIELD_INSTITUTION,
1087   PUB_FIELD_DEPARTMENT,
1088   PUB_FIELD_ADDRESS,
1089   PUB_FIELD_CITY,
1090   PUB_FIELD_STATE,
1091   PUB_FIELD_COUNTRY,
1092   PUB_FIELD_ZIP,
1093   PUB_FIELD_EMAIL,
1094   PUB_FIELD_PHONE,
1095   PUB_FIELD_FAX
1096 };
1097 
1098 enum pub_status
1099 {
1100   PUB_STAT_ANY = 0,
1101   PUB_STAT_PUBLISHED,
1102   PUB_STAT_UNPUBLISHED,
1103   PUB_STAT_INPRESS,
1104   PUB_STAT_PUBLISHED_SUBMISSION
1105 };
1106 
1107 typedef struct pubconstraint
1108 {
1109   CharPtr find_str;
1110   Int4    field_for_find;
1111   Boolean insensitive_to_case;
1112   Int4    pub_status;
1113 } PubConstraintData, PNTR PubConstraintPtr;
1114 
1115 extern PubConstraintPtr PubConstraintFree (PubConstraintPtr pcp);
1116 extern DialoG PubConstraintDialog (GrouP h);
1117 
1118 extern DialoG AcceptCancelDialog 
1119 (GrouP                 parent,
1120  Nlm_AcceptActnProc    accept_actn,
1121  Nlm_CancelActnProc    cancel_actn,
1122  Nlm_ClearActnProc     clear_actn,
1123  Nlm_ClearTextActnProc clear_text_actn,
1124  Pointer               userdata,
1125  WindoW                w);
1126 extern void EnableAcceptCancelDialogAccept (DialoG d);
1127 extern void DisableAcceptCancelDialogAccept (DialoG d);
1128 
1129 /* note - set sep to NULL if you don't want to limit the list to the features present */
1130 extern ValNodePtr BuildFeatureDialogList (Boolean list_most_used_first, SeqEntryPtr sep);
1131 
1132 extern DialoG 
1133 FeatureSelectionDialog 
1134 (GrouP                    h,
1135  Boolean                  allow_multi,
1136  Nlm_ChangeNotifyProc     change_notify,
1137  Pointer                  change_userdata);
1138 
1139 extern DialoG 
1140 FeatureSelectionDialogEx 
1141 (GrouP                    h,
1142  Boolean                  allow_multi,
1143  SeqEntryPtr              sep,
1144  Nlm_ChangeNotifyProc     change_notify,
1145  Pointer                  change_userdata);
1146 
1147 extern DialoG
1148 DescriptorSelectionDialog
1149 (GrouP                    h,
1150  Boolean                  allow_multi,
1151  Nlm_ChangeNotifyProc     change_notify,
1152  Pointer                  change_userdata);
1153 
1154 extern DialoG SourceQualTypeSelectionDialog 
1155 (GrouP h,
1156  Boolean                  allow_multi,
1157  Nlm_ChangeNotifyProc     change_notify,
1158  Pointer                  change_userdata);
1159 
1160 extern DialoG 
1161 FeatureFieldSelectionDialog
1162 (GrouP                    h,
1163  Boolean                  allow_none,
1164  Int4                     num_fields,
1165  CharPtr PNTR             field_names,
1166  Nlm_ChangeNotifyProc     change_notify,
1167  Pointer                  change_userdata);
1168 
1169 extern DialoG 
1170 GeneFieldSelectionDialog
1171 (GrouP                    h,
1172  Boolean                  allow_none,
1173  Nlm_ChangeNotifyProc     change_notify,
1174  Pointer                  change_userdata);
1175 extern CharPtr GetGeneFieldString (SeqFeatPtr sfp, ValNodePtr gene_field, FilterSetPtr fsp);
1176 extern void RemoveGeneFieldString (SeqFeatPtr sfp, ValNodePtr gene_field);
1177 
1178 extern DialoG 
1179 MRNAFieldSelectionDialog
1180 (GrouP                    h,
1181  Boolean                  allow_none,
1182  Nlm_ChangeNotifyProc     change_notify,
1183  Pointer                  change_userdata);
1184 extern CharPtr GetmRNAFieldString (SeqFeatPtr sfp, ValNodePtr mrna_field, FilterSetPtr fsp);
1185 extern void RemovemRNAFieldString (SeqFeatPtr sfp, ValNodePtr mrna_field);
1186 extern CharPtr GetCDSFieldString (SeqFeatPtr sfp, ValNodePtr cds_field, FilterSetPtr fsp);
1187 extern void RemoveCDSFieldString (SeqFeatPtr sfp, ValNodePtr cds_field);
1188 extern CharPtr GetProteinFieldString (SeqFeatPtr sfp, ValNodePtr protein_field, FilterSetPtr fsp);
1189 
1190 extern DialoG 
1191 ProteinFieldSelectionDialog
1192 (GrouP                    h,
1193  Boolean                  allow_none,
1194  Nlm_ChangeNotifyProc     change_notify,
1195  Pointer                  change_userdata);
1196 
1197 extern DialoG 
1198 CDSGeneProtFieldSelectionDialog
1199 (GrouP                    h,
1200  Boolean                  allow_none,
1201  Nlm_ChangeNotifyProc     change_notify,
1202  Pointer                  change_userdata);  
1203 extern CharPtr GetCDSGeneProtField (SeqFeatPtr sfp, ValNodePtr vnp, FilterSetPtr fsp);
1204 extern Boolean 
1205 SetCDSGeneProtField 
1206 (SeqFeatPtr      sfp,
1207  ValNodePtr      vnp, 
1208  ApplyValuePtr   avp,
1209  FilterSetPtr    fsp);
1210 extern void RemoveCDSGeneProtField (SeqFeatPtr sfp, ValNodePtr vnp, FilterSetPtr fsp);
1211 extern Uint2 FeatDefTypeFromFieldList (ValNodePtr vnp);
1212 extern Boolean IsCDSetProteinProductChoice (ValNodePtr vnp);
1213 extern CharPtr GetCDSGeneProtFieldName (ValNodePtr vnp);
1214 
1215 extern DialoG
1216 RNAAddFieldSelectionDialog
1217 (GrouP                    h,
1218  Boolean                  allow_multi,
1219  Nlm_ChangeNotifyProc     change_notify,
1220  Pointer                  change_userdata);
1221  
1222 extern DialoG
1223 RNARemoveFieldSelectionDialog
1224 (GrouP                    h,
1225  Boolean                  allow_multi,
1226  Nlm_ChangeNotifyProc     change_notify,
1227  Pointer                  change_userdata);
1228 
1229 extern DialoG
1230 RNAFieldSelectionDialog
1231 (GrouP                    h,
1232  Boolean                  allow_multi,
1233  Nlm_ChangeNotifyProc     change_notify,
1234  Pointer                  change_userdata);
1235  
1236 extern CharPtr GetRNAFieldString (SeqFeatPtr sfp, ValNodePtr vnp, FilterSetPtr fsp);
1237 
1238 extern DialoG 
1239 ExonFieldSelectionDialog
1240 (GrouP                    h,
1241  Boolean                  allow_none,
1242  Nlm_ChangeNotifyProc     change_notify,
1243  Pointer                  change_userdata);
1244 extern CharPtr GetExonFieldString (SeqFeatPtr sfp, ValNodePtr exon_field);
1245 extern void RemoveExonFieldString (SeqFeatPtr sfp, ValNodePtr exon_field);
1246 
1247 typedef  DialoG  (*FeatureFieldSelectionProc) PROTO((GrouP, Boolean, Nlm_ChangeNotifyProc, Pointer));
1248 
1249 extern DialoG FeatureFieldChoiceDialog 
1250 (GrouP h,
1251  FeatureFieldSelectionProc make_fieldlist_dlg,
1252  Boolean                   offer_to_remove,
1253  Nlm_ChangeNotifyProc      change_notify,
1254  Pointer                   change_userdata);
1255 
1256 extern DialoG BioSourceStringDialog 
1257 (GrouP                    h,
1258  Boolean                  allow_multi,
1259  Nlm_ChangeNotifyProc     change_notify,
1260  Pointer                  change_userdata);
1261 
1262 extern DialoG 
1263 ConstraintChoiceDialog 
1264 (GrouP                     h, 
1265  FeatureFieldSelectionProc present_func,
1266  FeatureFieldSelectionProc string_func,
1267  FreeValNodeProc           free_vn_proc,
1268  CopyValNodeDataProc       copy_vn_proc,
1269  CharPtr                   present_name,
1270  CharPtr                   text_name,
1271  Boolean                   clear_btn,
1272  Boolean                   use_pseudo);
1273 extern DialoG SourceConstraintDialogX (GrouP h, Boolean clear_btn);
1274 extern Boolean DoesOneSourceMatchConstraint (BioSourcePtr biop, ChoiceConstraintPtr scp);
1275 extern DialoG CDSGeneProtConstraintDialog (GrouP h, Boolean clear_btn);
1276 extern DialoG 
1277 FilterGroup 
1278 (GrouP h,
1279  Boolean has_string_constraint,
1280  Boolean has_source_constraint,
1281  Boolean has_location_constraint,
1282  Boolean has_cds_gene_prot_constraint, 
1283  Boolean has_id_list_constraint,
1284  CharPtr string_constraint_label);
1285  
1286 typedef struct parsefield
1287 {
1288   Int4        parse_field_type;
1289   ValNodePtr  feature_field;
1290   ValNodePtr  feature_subtype;
1291   Boolean     do_feat;
1292   Boolean     do_desc;
1293 } ParseFieldData, PNTR ParseFieldPtr;
1294 
1295 extern ParseFieldPtr ParseFieldFree (ParseFieldPtr pfp);
1296  
1297 extern DialoG ParseFieldDestDialogEx 
1298 (GrouP                    h,
1299  Nlm_ChangeNotifyProc     change_notify,
1300  Pointer                  change_userdata,
1301  Boolean                  is_search_field,
1302  Boolean                  include_dbxref);
1303 extern DialoG ParseFieldDestDialog 
1304 (GrouP                    h, 
1305  Nlm_ChangeNotifyProc     change_notify,
1306  Pointer                  change_userdata);
1307 extern DialoG ParseFieldSourceDialog
1308 (GrouP                    h,
1309  SeqEntryPtr              sep,
1310  Nlm_ChangeNotifyProc     change_notify,
1311  Pointer                  change_userdata);
1312 
1313 extern DialoG SampleDialog (GrouP h);
1314 
1315 extern NucProtAssocPtr FreeAssociationList (NucProtAssocPtr assoc_list);
1316 extern NucProtAssocPtr 
1317 AssignProteinsForSequenceSet 
1318 (SeqEntryPtr nuc_list,
1319  SeqEntryPtr prot_list,
1320  Boolean always_review);
1321 
1322 extern CharPtr 
1323 CreateListMessage 
1324 (CharPtr    msg_before,
1325  CharPtr    msg_after, 
1326  ValNodePtr id_list);
1327 
1328 extern void StringToLower (CharPtr str);
1329 
1330 extern Boolean ExportSubmitterBlockTemplate (SeqEntryPtr sep, SeqDescrPtr sdp);
1331 extern DialoG OrganismSelectionDialog (GrouP parent, CharPtr org_name);
1332 
1333 typedef struct getsample
1334 {
1335   GetFeatureFieldString    fieldstring_func;
1336   GetDescriptorFieldString descrstring_func;
1337   
1338   ValNodePtr               feat_dest_list;
1339   ValNodePtr               descr_dest_list;
1340   
1341   ValNodePtr               requested_field;
1342   FreeValNodeProc          free_vn_proc;
1343   CopyValNodeDataProc      copy_vn_proc;
1344 
1345   CharPtr                  sample_text;
1346   Int4                     num_found;
1347   Boolean                  all_same;
1348 } GetSampleData, PNTR GetSamplePtr;
1349 
1350 extern GetSamplePtr GetSampleNew (void);
1351 extern GetSamplePtr GetSampleFree (GetSamplePtr gsp);
1352 
1353 
1354 extern GetSamplePtr
1355 GetSampleForSeqEntry
1356 (SeqEntryPtr   sep,
1357  Uint2         entityID, 
1358  ParseFieldPtr dst_field_data,
1359  FilterSetPtr  fsp);
1360 
1361 
1362 extern void ApplyGDSKeyword (IteM i);
1363 extern void ApplyTPAInferentialKeyword (IteM i);
1364 extern void ApplyTPAExperimentalKeyword (IteM i);
1365 extern void ApplyTPAReassemblyKeyword (IteM i);
1366 extern void RemoveKeywordWithStringConstraint (IteM i);
1367 
1368 #if defined(OS_UNIX) || defined(OS_MSWIN)
1369 extern Int2 LIBCALLBACK CorrectRNAStrandedness (Pointer data);
1370 extern Int2 LIBCALLBACK CorrectRNAStrandednessUseSmart (Pointer data);
1371 #endif
1372 
1373 extern void AddGeneFeatureFromTitle (SeqEntryPtr nucsep, CharPtr ttl,  SeqLocPtr slp);
1374 extern SeqFeatPtr AddProteinFeatureFromDefline (SeqEntryPtr psep, CharPtr title);
1375 extern void AddCodingRegionFieldsFromProteinTitle (CdRegionPtr crp, CharPtr title, CharPtr PNTR pcomment);
1376 extern Boolean ReplaceImportModifierName (CharPtr PNTR orig_name, Int4 col_num);
1377 
1378 extern SeqEntryPtr 
1379 ImportSequencesFromFileEx
1380 (FILE           *fp, 
1381  SeqEntryPtr     sep_list,
1382  Boolean         is_na, 
1383  Boolean         parse_id,
1384  CharPtr         supplied_id_txt,
1385  ValNodePtr PNTR err_msg_list,
1386  BoolPtr         chars_stripped,
1387  Boolean         allow_char_stripping);
1388 
1389 extern SeqEntryPtr 
1390 ImportSequencesFromFile
1391 (FILE           *fp, 
1392  SeqEntryPtr     sep_list,
1393  Boolean         is_na, 
1394  Boolean         parse_id,
1395  CharPtr         supplied_id_txt,
1396  ValNodePtr PNTR err_msg_list,
1397  BoolPtr         chars_stripped);
1398 
1399 extern void TestUpdateSequenceIndexer (IteM i);
1400 extern void TestUpdateSequenceSubmitter (IteM i);
1401 extern void TestExtendSequenceIndexer (IteM i);
1402 extern void TestExtendSequenceSubmitter (IteM i);
1403 extern void TestUpdateSequenceSetIndexer (IteM i);
1404 extern void TestUpdateSequenceSetSubmitter (IteM i);
1405 extern void TestExtendSequenceSetIndexer (IteM i);
1406 extern void TestExtendSequenceSetSubmitter (IteM i);
1407 extern void UpdateSequenceViaDownloadIndexer (IteM i);
1408 extern void UpdateSequenceViaDownloadSubmitter (IteM i);
1409 
1410 extern void 
1411 ListBioseqsInSeqEntry 
1412 (SeqEntryPtr     sep, 
1413  Boolean         is_na,
1414  Int4Ptr         seq_num, 
1415  ValNodePtr PNTR bioseq_list);
1416 
1417 extern void RecomputeSuggestedIntervalsForCDS 
1418 (Uint2          entityID,
1419  BioseqPtr PNTR batchbsp,
1420  Int4Ptr        count,
1421  MonitorPtr     mon,
1422  SeqFeatPtr     sfp);
1423  
1424  typedef struct recompdata {
1425   Int4        count;
1426   MonitorPtr  mon;
1427   BioseqPtr   batchbsp;
1428   Boolean     include_stop;
1429   Boolean     no_stop_at_end_of_complete_cds;
1430   Boolean     fix_genes;
1431   Uint2       entityID;
1432 } RecompData, PNTR RecompDataPtr;
1433 
1434 extern void RecomputeIntervalsForOneCDS (SeqFeatPtr sfp, RecompDataPtr rdp);
1435 
1436  
1437 extern CharPtr ExtendProtein3 
1438 (SeqFeatPtr sfp,
1439  Uint2      input_entityID,
1440  Boolean    force_partial);
1441 
1442 extern SeqLocPtr 
1443 ExpandSeqLoc 
1444 (Int4 start,
1445  Int4 stop,
1446  Uint1 strand,
1447  BioseqPtr bsp,
1448  SeqLocPtr slp);
1449 
1450 extern void SetSeqLocStrand (SeqLocPtr location, Uint1 strand);
1451 extern void SetPrimerBindPairStrands (IteM i);
1452 extern Boolean IsBioseqInAnyAlignment (BioseqPtr bsp, Uint2 input_entityID);
1453 extern void RemoveAlignmentsWithSequence (BioseqPtr bsp, Uint2 input_entityID);
1454 extern void FlipEntireAlignmentIfAllSequencesFlipped (SeqAnnotPtr sap, Pointer userdata);
1455 
1456 extern void ConvertSelectedGapFeaturesToKnown (IteM i);
1457 extern void ConvertSelectedGapFeaturesToUnknown (IteM i);
1458 extern void CombineAdjacentGaps (IteM i);
1459 
1460 extern void CombineAdjacentGapsOnBioseq (BioseqPtr bsp, Pointer userdata);
1461 
1462 extern void MarkGenesWithPseudoFeaturesPseudo (IteM i);
1463 
1464 typedef struct gaplocinfo 
1465 {
1466   Int4    start_pos;
1467   Boolean is_known;
1468   Int4    length;
1469   Boolean replace;
1470 } GapLocInfoData, PNTR GapLocInfoPtr;
1471 
1472 extern void 
1473 PrepareCodingRegionLocationsForDeltaConversionCallback
1474 (BioseqPtr bsp, Pointer userdata);
1475 
1476 extern void RemoveNomenclature (IteM i);
1477 
1478 extern void ParseCollectionDateMonthFirst (IteM i);
1479 extern void ParseCollectionDateDayFirst (IteM i);
1480 extern void RemoveUnpublishedPublications (IteM i);
1481 extern void RemovePublishedPublications (IteM i);
1482 extern void RemoveUnindexedFeatures (IteM i);
1483 extern void CopyLocusToLocusTag (IteM i);
1484 
1485 typedef struct cdsconversionopts {
1486   Boolean all_are_pseudo;
1487   Boolean remove_mrna;
1488   Boolean remove_gene;
1489   Boolean remove_transcript_id;
1490   Boolean only_pseudo;
1491 } CDSConversionOptsData, PNTR CDSConversionOptsPtr;
1492 
1493 extern Boolean IsFeatInGPS (SeqFeatPtr sfp);
1494 
1495 typedef struct cdstomiscfeat {
1496   Boolean              viral;
1497   Boolean              must_have_stops;
1498   CDSConversionOptsPtr opts;
1499 } CDStoMiscFeatData, PNTR CDStoMiscFeatPtr;
1500 
1501 extern void ConvertCDSToMiscFeat (SeqFeatPtr sfp, Pointer userdata);
1502 extern void AdjustCodingRegionsEndingInGap (IteM i);
1503 
1504 extern void ConvertCodingRegionsWithInternalKnownGapToMiscFeat (IteM i);
1505 
1506 extern void FixOneAlignmentOverGaps (SeqAlignPtr salp, Uint2 entityID);
1507 extern void ConsolidateSegmentsOverKnownLengthGaps (SeqAlignPtr salp);
1508 
1509 extern void CreateReportWindow (EDiscrepancyReportType report_type);
1510 extern void ScrollToDiscrepancyItem (ValNodePtr vnp, Pointer userdata);
1511 extern void EditDiscrepancyItem (ValNodePtr vnp, Pointer userdata);
1512 extern void WriteClickableListReport (FILE *fp, ValNodePtr discrepancy_list, Boolean show_all, Boolean use_feature_table_fmt);
1513 
1514 extern void ConvertGapFeaturesToUnknown (IteM i);
1515 extern void ChangeKnownGapLength (IteM i);
1516 extern void AddFlankingNsToKnownLengthGaps (IteM i);
1517 
1518 extern Int2 GetSequinAppParam (CharPtr section, CharPtr type, CharPtr dflt, CharPtr buf, Int2 buflen);
1519 extern Boolean DoBioseqFeaturesMatchSequenceConstraintX (BioseqPtr bsp, ValNodePtr feat_list, StringConstraintXPtr scp);
1520 extern Boolean DoesIDListMeetStringConstraint (SeqIdPtr sip, StringConstraintXPtr string_constraint);
1521 extern Int2 LIBCALLBACK ReorderSetByAccession (Pointer data);
1522 
1523 extern Int2 LIBCALLBACK CopyDescriptorToList (Pointer data);
1524  
1525 extern void MapFeaturesToProteinSequence(IteM i);
1526 
1527 extern void FindContig (IteM i);
1528 extern ValNodePtr FreeSeqIdList (ValNodePtr id_list);
1529 extern void DownloadAndDisplay (Int4 uid);
1530 extern void LaunchDisplay (Uint2 entityID);
1531 extern void SetBioseqViewTargetByBioseq (BaseFormPtr bfp, BioseqPtr bsp);
1532 
1533 extern Boolean ShowDeltaReport (SeqEntryPtr sep);
1534 extern void DeltaReport (IteM  i);
1535 
1536 extern void ParseModifiersFromDefline (IteM i);
1537 extern void ConvertLocalToGeneral(IteM i);
1538 
1539 extern void FixLocusTagGeneXrefs (IteM i);
1540 extern void FixLastExonLocNoPartial (IteM i);
1541 extern void FixLastExonLocMakePartial (IteM i);
1542 
1543 extern void RemoveGeneByUnderlyingFeatureType(IteM i);
1544 
1545 extern void RemoveIntronLocationsFromCDS (IteM i);
1546 extern void RemoveIntronLocationsFromrRNA (IteM i);
1547 extern void RemoveIntronLocationsFromtRNA (IteM i);
1548 extern void RemoveIntronLocationsFrommRNA (IteM i);
1549 
1550 extern void ReverseBioseqInAlignment (SeqAlignPtr salp, Pointer userdata);
1551 
1552 extern Int2 AddSeqAlignForSeqEntry (SeqEntryPtr sep, Uint2 entityID, Boolean choose_master, Boolean use_new_blast);
1553 
1554 extern ValNodePtr ChooseFeaturesForConversion (ValNodePtr clickable_list, BaseFormPtr bfp, CharPtr label1, CharPtr label2);
1555 extern void RemoveBadPubs (IteM i);
1556 extern void VecScreenTool (IteM i);
1557 extern void LogTrimmedLocation (LogInfoPtr lip, SeqLocPtr slp);
1558 extern void CalculateVectorDescription (ClickableItemPtr cip);
1559 
1560 extern void BarcodeTestTool (IteM i);
1561 
1562 extern Boolean RelaxedSeqIdIn (SeqIdPtr sip, SeqIdPtr sip_list);
1563 
1564 extern void NewSUC (ValNodePtr suc_list, Uint2 entityID, Boolean reverse, Boolean byblock, Boolean showsequence);
1565 extern ValNodePtr GetSUCCommonList (SeqEntryPtr sep, Boolean reverse, Boolean byblock, Boolean showsequence, Boolean byqual);
1566 extern ValNodePtr CategorizeSUCBlocks (ValNodePtr head);
1567 
1568 extern void MakeGeneralIDsFromLocusTags (IteM i);
1569 
1570 extern void ShowClickableItemList (ValNodePtr clickable_list, BaseFormPtr bfp, CharPtr win_title, CharPtr label1, CharPtr label2);
1571 
1572 extern Int4 CountChosenDiscrepancies (ValNodePtr discrepancy_list, Boolean count_all);
1573 extern void AddTranslExcept (SeqFeatPtr sfp, CharPtr cds_comment, Boolean use_strict, Boolean extend, Boolean adjust_gene);
1574 
1575 enum table_data_errors 
1576 {
1577   TABLE_DATA_NO_ERROR = 0,
1578   TABLE_DATA_ALREADY_HAS,
1579   TABLE_DATA_CELL_BLANK,
1580   TABLE_DATA_MULTIPLE_VALUES,
1581   TABLE_DATA_NOT_FOUND
1582 };
1583 
1584 extern Boolean 
1585 GetTableOptions 
1586 (BaseFormPtr bfp,
1587  ValNodePtr clickable_list,
1588  CharPtr win_title,
1589  CharPtr label1,
1590  CharPtr label2,
1591  CharPtr skip_already_txt,
1592  CharPtr blanks_erase_txt,
1593  BoolPtr skip_already_has,
1594  BoolPtr blanks_erase);
1595 
1596 extern void MakeCDSmRNAPairs (IteM i);
1597 
1598 extern void Apply16SRNA (IteM i);
1599 extern void Apply23SRNA (IteM i);
1600 extern void Apply18SRNA (IteM i);
1601 extern void Apply28SRNA (IteM i);
1602 extern void Apply26SRNA (IteM i);
1603 extern void Apply12SRNA (IteM i);
1604 extern void ApplySmallRNA (IteM i);
1605 extern void ApplyLargeRNA (IteM i);
1606 
1607 /* capitalization */
1608 extern void GetOrgNamesInRecordCallback (BioSourcePtr biop, Pointer userdata);
1609 extern void FixCapitalizationInTitle (CharPtr PNTR pTitle, Boolean first_is_upper, ValNodePtr org_names);
1610 
1611 extern void ApplyRNA_ITS (IteM i);
1612 
1613 extern BioSourcePtr ExtractFromDeflineToBioSource (CharPtr defline, BioSourcePtr biop);
1614 extern BioSourcePtr 
1615 ExtractFromTitleToBioSourceOrgMod 
1616 (CharPtr      title,
1617  BioSourcePtr biop, 
1618  CharPtr      mod_name,
1619  Int4         subtype);
1620 extern BioSourcePtr 
1621 ExtractFromTitleToBioSourceSubSource 
1622 (CharPtr      title,
1623  BioSourcePtr biop, 
1624  CharPtr      mod_name,
1625  Int4         subtype);
1626 extern BioSourcePtr 
1627 ExtractFromTitleToBioSourceCommonName 
1628 (CharPtr      title,
1629  BioSourcePtr biop);
1630 
1631 extern void CDSmRNALinkTool (IteM i);
1632 extern void RemoveFeatureLink (SeqFeatPtr sfp1, SeqFeatPtr sfp2);
1633 extern void LinkTwoFeatures (SeqFeatPtr dst, SeqFeatPtr sfp);
1634 
1635 extern void CombineToCreatePseudoGene (IteM i);
1636 
1637 extern void BulkEditCDS (IteM i);
1638 extern void BulkEditGene (IteM i);
1639 extern void BulkEditRNA (IteM i);
1640 
1641 extern void BulkEditorFeatList (Uint2 entityID, ValNodePtr feat_list);
1642 extern void BulkEditorDescrList (Uint2 entityID, ValNodePtr descr_list);
1643 extern void BulkEditDiscrepancy (ValNodePtr vnp, Pointer userdata);
1644 extern void BulkEditorCheckAllDialog (DialoG dlg);
1645 
1646 extern Uint1 GetSubtypeForBulkEdit (ValNodePtr feat_list);
1647 
1648 extern CDSConversionOptsPtr 
1649 GetCDSConversionOptions (Boolean all_are_pseudo, Boolean any_pseudo, Boolean any_gps, BoolPtr cancel);
1650 
1651 extern Boolean 
1652 ConvertOneCDSToMiscFeat 
1653 (SeqFeatPtr sfp,
1654  Boolean viral,
1655  Boolean must_have_stops,
1656  CDSConversionOptsPtr opts);
1657 
1658 extern void SuppressGenesOnFeaturesInsideMobileElements (IteM i);
1659 
1660 extern BaseFormPtr GetBaseFormForEntityID (Uint2 entityID);
1661 
1662 extern ValNodePtr ParseAccessionNumberListFromString (CharPtr list_str, SeqEntryPtr sep);
1663 
1664 extern SubSourcePtr FindBadLatLon (BioSourcePtr biop);
1665 extern DialoG LatLonTestResultsDisplay (GrouP h);
1666 extern void LatLonTool (IteM i);
1667 extern DialoG SpecificHostResultsDisplay (GrouP h);
1668 extern void FixSpecificHostValues (IteM i);
1669 extern DialoG LatLonCountryResultsDisplay (GrouP h);
1670 extern Pointer GetLatLonCountryCorrection (Uint1 data_choice, Pointer data, Pointer metadata);
1671 extern void LatLonCountryTool (IteM i);
1672 extern DialoG CountryTestResultsDisplay (GrouP h, Pointer metadata);
1673 extern void CountryFixupTool (IteM i);
1674 
1675 extern DialoG TaxFixDisplay (GrouP h);
1676 extern Boolean IsTaxNameBad (OrgRefPtr org);
1677 extern void TaxFixTool (IteM i);
1678 
1679 extern void SetTransgenicOnSourceDescWhenSourceFeatPresent (IteM i);
1680 extern void SetFocusOnSourceDescWhenSourceFeatPresent (IteM i);
1681 
1682 extern void MakeBadSpecificHostValueTable (IteM i);
1683 
1684 extern const char *nucleotide_alphabet;
1685 extern const char *protein_alphabet;
1686 
1687 extern DialoG AlnSettingsDlg (GrouP h, Boolean allow_sequence_type);
1688 extern TSequenceInfoPtr GetDefaultSequenceInfo (void);
1689 extern TSequenceInfoPtr GetAlignmentOptions (Uint1Ptr moltype, TSequenceInfoPtr sequence_info);
1690 
1691 
1692 extern void tRNAScanUpdate (IteM i);
1693 extern void ListFailedTaxonomyLookups (IteM i);
1694 extern SeqFeatPtr GetGeneForFeature (SeqFeatPtr sfp);
1695 
1696 extern void LoadFeatureFieldTable (IteM i);
1697 
1698 /* structure used for taxname options for loading values froma table or the Apply/Edit/Convert/Remove dialogs */
1699 typedef struct taxnameoptions {
1700  Boolean remove_taxref;
1701  Boolean remove_old_name;
1702  Boolean remove_common;
1703 } TaxnameOptionsData, PNTR TaxnameOptionsPtr;
1704 
1705 extern void ApplyTaxnameOptionsToBioSource (BioSourcePtr biop, TaxnameOptionsPtr top);
1706 extern DialoG TaxnameOptionsDialog (GrouP h, Nlm_ChangeNotifyProc change_notify, Pointer change_userdata);
1707 
1708 extern void CleanTableLine (CharPtr line);
1709 
1710 extern void ApplyTagToCodingRegionsInSourceFeatures (IteM i);
1711 extern Boolean EntityIDAlreadyInList (Uint2 entityID, ValNodePtr entityIDList);
1712 
1713 extern void ResolveFeatureOverlaps (IteM i);
1714 extern void ConvertGeneralIdToLocalID (IteM i);
1715 
1716 extern void UpdateFeatures (IteM i);
1717 
1718 NLM_EXTERN void RemoveDupGenBankSets (SeqEntryPtr sep);
1719 NLM_EXTERN BioseqSetPtr InsetNewSet (BioseqSetPtr bssp, Uint1 _class);
1720 
1721 extern void AbbreviateCitSubAffilStates (IteM i);
1722 extern void RemoveQualityScores (BioseqPtr bsp, FILE *log_fp, BoolPtr data_in_log);
1723 extern void NewLoadFeatureQualifierTable (IteM i);
1724 extern void NewLoadSourceQualifierTable (IteM i);
1725 extern void ListAllSequences (BioseqPtr bsp, Pointer userdata);
1726 extern void ChooseCategories (ValNodePtr value_list, Boolean do_choose);
1727 extern void ChooseCategoriesByStringConstraint (ValNodePtr value_list, StringConstraintXPtr scp, Boolean do_choose);
1728 extern void CapitalizeFirstLetterOfEveryWord (CharPtr pString);
1729 
1730 typedef void (*BulkSetFieldFunc) PROTO ((Pointer, Pointer));
1731 typedef Pointer (*BulkSetFieldStringFunc) PROTO ((Pointer, ApplyValuePtr));
1732 typedef Pointer (*BulkGetFieldFunc) PROTO ((Uint1, Pointer, Pointer));
1733 typedef CharPtr (*BulkDisplayFieldFunc) PROTO ((Pointer));
1734 typedef void (*BulkFreeFieldFunc) PROTO ((Pointer));
1735 typedef DialoG (*BulkCreateDlgFunc) PROTO ((GrouP, CharPtr, SeqEntryPtr));
1736 typedef Int4 (*BulkFormatColumnFunc) PROTO ((ColPtr, CharPtr));
1737 typedef void (*BulkDrawColumnFunc) PROTO ((Pointer, RectPtr));
1738 typedef Pointer (*BulkReleaseCellFunc) PROTO ((Pointer));
1739 typedef Pointer (*BulkCopyFieldFunc) PROTO ((Pointer));
1740 
1741 typedef struct bulkedfield {
1742   CharPtr name;
1743   BulkSetFieldFunc set_func;
1744   BulkSetFieldStringFunc set_str_func;
1745   BulkGetFieldFunc get_func;
1746   BulkDisplayFieldFunc display_func;
1747   BulkFreeFieldFunc free_func;
1748   BulkCreateDlgFunc create_dlg_func;
1749   BulkFormatColumnFunc format_col_func;
1750   BulkDrawColumnFunc  draw_col_func;
1751   BulkReleaseCellFunc release_cell_func;
1752   BulkCopyFieldFunc   copy_func;
1753 } BulkEdFieldData, PNTR BulkEdFieldPtr;
1754 
1755 NLM_EXTERN Pointer BulkSetSimpleTextString (Pointer curr_val, ApplyValuePtr avp);
1756 NLM_EXTERN CharPtr BulkDisplaySimpleText (Pointer data);
1757 NLM_EXTERN void BulkFreeSimpleText (Pointer data);
1758 NLM_EXTERN Int4 BulkFormatSimpleText (ColPtr col, CharPtr name);
1759 NLM_EXTERN Pointer BulkSimpleTextCopy (Pointer data);
1760 NLM_EXTERN DialoG BulkSimpleTextDialog (GrouP g, CharPtr name, SeqEntryPtr sep);
1761 
1762 NLM_EXTERN void BulkEditorObjectList (Uint2 entityID, CharPtr title, ValNodePtr feat_list, BulkEdFieldPtr field_list);
1763 NLM_EXTERN DialoG 
1764 CreateBulkEditorDialog 
1765 (GrouP               h,
1766  BulkEdFieldPtr      field_list,
1767  ValNodePtr          feat_list,
1768  SeqEntryPtr         sep, 
1769  Boolean             collapse_by_default,
1770  ClickableCallback   single_click_func,
1771  ClickableCallback   double_click_func);
1772 
1773 NLM_EXTERN void ApplyBulkEditorToObjectList (DialoG d);
1774 
1775 NLM_EXTERN void FlipSequenceIntervals (IteM i);
1776 
1777 NLM_EXTERN void CreateRefSeqProteinIDs (IteM i);
1778 
1779 extern void ConvertBioSourceDbxrefToFeatureDbxref (IteM i);
1780 
1781 NLM_EXTERN void AddFluComments (IteM i);
1782 NLM_EXTERN void CreateStructuredCommentsItem (IteM i);
1783 NLM_EXTERN void SubmitterCreateStructuredComments (IteM i);
1784 
1785 NLM_EXTERN SeqAlignPtr GetSeqAlignTSA (BioseqPtr bsp1, BioseqPtr bsp2);
1786 NLM_EXTERN void EditTSAAssembly (IteM i);
1787 
1788 NLM_EXTERN void MergeBiosources (IteM i);
1789 NLM_EXTERN Boolean FixIDsAndTitles (SeqEntryPtr new_list, SeqEntryPtr current_list, Boolean is_nuc);
1790 
1791 NLM_EXTERN void ExportQualifiers (IteM i);
1792 
1793 extern Boolean IsUnwantedFeatureType (Uint1 key);
1794 extern void ExportBankitComments (IteM i);
1795 
1796 extern void ImportAlignmentForSeqHistInterval (IteM i);
1797 extern void AdvancedAssemblyAlignmentEditor (IteM i);
1798 extern void AssemblyAlignmentIntervalResolution (IteM i);
1799 
1800 extern void ExternalSourceQualifierTableReader (IteM i);
1801 
1802 extern void TrimPrimerSeqJunk (IteM i);
1803 
1804 extern void SequinSeqViewFormMessage (ForM f, Int2 mssg);
1805 extern Boolean WriteTheEntityID (Uint2 entityID, CharPtr path, Boolean binary);
1806 
1807 extern BioseqSetPtr FindTopLevelSetForDesktopFunction (BioseqSetPtr bssp);
1808 extern void ReorderSetByAccessionMenuItem (IteM i);
1809 extern void DescriptorPropagateMenuItem (IteM i);
1810 NLM_EXTERN void RepackagePartsMenuItem (IteM i);
1811 extern void NewSegregateBioseqSetMenuItem (IteM i);
1812 extern void SequesterSequencesMenuItem (IteM i);
1813 extern void GetRidOfSegGapMenuItem (IteM i);
1814 extern void GenerateSeqAlignMenuItem (IteM i);
1815 extern void UpdateSeqAlignMenuItem (IteM i);
1816 extern void CorrectRNAStrandednessMenuItem (IteM i);
1817 extern void BioseqRevCompByIDMenuItem (IteM i);
1818 extern void RemoveSetsInSetMenuItem (IteM i);
1819 
1820 extern void LoadTaxTableReader (IteM i);
1821 extern void RemoveContigFromScaffoldMenuItem (IteM i);
1822 
1823 NLM_EXTERN void LIBCALLBACK SequesterSequenceList (Uint2 entityID, ValNodePtr bsp_list);
1824 NLM_EXTERN Boolean OkToSequester (void);
1825 
1826 extern void ConvertRptUnitRangeToLocation (IteM i);
1827 extern void RetranscribemRNA (IteM i);
1828 extern void 
1829 ReplaceComplexLocation 
1830 (SeqLocPtr   slp,
1831  SeqAlignPtr salp,
1832  Int4        new_len,
1833  Int4        begin,
1834  Int4        fin);
1835 
1836 NLM_EXTERN void CleanupCDD (IteM i);
1837 
1838 NLM_EXTERN void ReportNonTSABioseqs (BioseqPtr bsp, Pointer userdata);
1839 
1840 NLM_EXTERN void FindBestNTrimSites (IteM i);
1841 extern void ScrollToTrimSequenceItem (ValNodePtr vnp, Pointer userdata);
1842 extern DialoG TrimSequenceResultsDisplay (GrouP h);
1843 extern DialoG TrimSequenceEndDisplay (GrouP h);
1844 extern Pointer GetCurrentPercentN (Uint1 data_choice, Pointer data, Pointer metadata);
1845 extern Pointer GetTrimInterval (Uint1 data_choice, Pointer data, Pointer metadata);
1846 extern Pointer GetTrimRemaining (Uint1 data_choice, Pointer data, Pointer metadata);
1847 extern Pointer GetTrimRemove (Uint1 data_choice, Pointer data, Pointer metadata);
1848 extern Boolean TrimShouldDelete (Uint1 data_choice, Pointer data, Pointer metadata);
1849 extern Pointer GetTrimAccession (Uint1 data_choice, Pointer data, Pointer metadata);
1850 extern Pointer GetTrim5 (Uint1 data_choice, Pointer data, Pointer metadata);
1851 extern Pointer GetTrim3 (Uint1 data_choice, Pointer data, Pointer metadata);
1852 extern void DefaultCheckTrimSequenceResultsDisplay (DialoG d);
1853 
1854 extern void MakeSpecialProjectsMenu (MenU m, BaseFormPtr bfp);
1855 
1856 NLM_EXTERN void TrimSequencesByAlignment (IteM i);
1857 extern void RemoveGenomeProjectIdsBaseForm (BaseFormPtr bfp);
1858 
1859 NLM_EXTERN void MakeCommonFeatureMicrosatellite (IteM i);
1860 NLM_EXTERN void MakeCommonFeatureControlRegion (IteM i);
1861 
1862 NLM_EXTERN void RemoveNonNIslands (IteM i);
1863 NLM_EXTERN void RemoveUTRsFromCDSs (IteM i);
1864 NLM_EXTERN void AddFeatureBetween (IteM i);
1865 NLM_EXTERN void ChangeQualifierCase (IteM i);
1866 
1867 
1868 #ifdef OS_MSWIN
1869 NLM_EXTERN Int4 RunSilent(const char *cmdline);
1870 #endif
1871 
1872 
1873 #ifdef __cplusplus
1874 }
1875 #endif
1876 
1877 #endif /* ndef _SEQUIN_ */
1878 
1879 

source navigation ]   [ diff markup ]   [ identifier search ]   [ freetext search ]   [ file search ]  

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.