1656
NLM_EXTERN int LIBCALLBACK SortVnpByStringCS (VoidPtr ptr1, VoidPtr ptr2)
1664
if (ptr1 != NULL && ptr2 != NULL) {
1665
vnp1 = *((ValNodePtr PNTR) ptr1);
1666
vnp2 = *((ValNodePtr PNTR) ptr2);
1667
if (vnp1 != NULL && vnp2 != NULL) {
1668
str1 = (CharPtr) vnp1->data.ptrvalue;
1669
str2 = (CharPtr) vnp2->data.ptrvalue;
1670
if (str1 != NULL && str2 != NULL) {
1671
return StringCmp (str1, str2);
1678
NLM_EXTERN int LIBCALLBACK SortVnpByStringCI (VoidPtr ptr1, VoidPtr ptr2)
1686
if (ptr1 != NULL && ptr2 != NULL) {
1687
vnp1 = *((ValNodePtr PNTR) ptr1);
1688
vnp2 = *((ValNodePtr PNTR) ptr2);
1689
if (vnp1 != NULL && vnp2 != NULL) {
1690
str1 = (CharPtr) vnp1->data.ptrvalue;
1691
str2 = (CharPtr) vnp2->data.ptrvalue;
1692
if (str1 != NULL && str2 != NULL) {
1693
return StringCmp (str1, str2);
1700
NLM_EXTERN int LIBCALLBACK SortVnpByStringCIUCFirst (VoidPtr ptr1, VoidPtr ptr2)
1709
if (ptr1 != NULL && ptr2 != NULL) {
1710
vnp1 = *((ValNodePtr PNTR) ptr1);
1711
vnp2 = *((ValNodePtr PNTR) ptr2);
1712
if (vnp1 != NULL && vnp2 != NULL) {
1713
str1 = (CharPtr) vnp1->data.ptrvalue;
1714
str2 = (CharPtr) vnp2->data.ptrvalue;
1715
if (str1 != NULL && str2 != NULL) {
1716
comp = StringICmp (str1, str2);
1717
if (comp != 0) return comp;
1718
return StringCmp (str1, str2);
1725
NLM_EXTERN int LIBCALLBACK SortVnpByStringCILCFirst (VoidPtr ptr1, VoidPtr ptr2)
1734
if (ptr1 != NULL && ptr2 != NULL) {
1735
vnp1 = *((ValNodePtr PNTR) ptr1);
1736
vnp2 = *((ValNodePtr PNTR) ptr2);
1737
if (vnp1 != NULL && vnp2 != NULL) {
1738
str1 = (CharPtr) vnp1->data.ptrvalue;
1739
str2 = (CharPtr) vnp2->data.ptrvalue;
1740
if (str1 != NULL && str2 != NULL) {
1741
comp = StringICmp (str1, str2);
1742
if (comp != 0) return comp;
1743
return StringCmp (str2, str1);
1750
NLM_EXTERN ValNodePtr UniqueValNode (ValNodePtr list)
1759
if (list == NULL) return NULL;
1760
last = (CharPtr) list->data.ptrvalue;
1762
prev = (Pointer PNTR) &(list->next);
1763
while (vnp != NULL) {
1765
str = (CharPtr) vnp->data.ptrvalue;
1766
if (StringICmp (last, str) == 0) {
1769
ValNodeFreeData (vnp);
1771
last = (CharPtr) vnp->data.ptrvalue;
1772
prev = (Pointer PNTR) &(vnp->next);
1780
NLM_EXTERN ValNodePtr UniqueStringValNodeCS (ValNodePtr list)
1789
if (list == NULL) return NULL;
1790
last = (CharPtr) list->data.ptrvalue;
1792
prev = (Pointer PNTR) &(list->next);
1793
while (vnp != NULL) {
1795
str = (CharPtr) vnp->data.ptrvalue;
1796
if (StringCmp (last, str) == 0) {
1799
ValNodeFreeData (vnp);
1801
last = (CharPtr) vnp->data.ptrvalue;
1802
prev = (Pointer PNTR) &(vnp->next);
1810
NLM_EXTERN ValNodePtr UniqueStringValNodeCI (ValNodePtr list)
1819
if (list == NULL) return NULL;
1820
last = (CharPtr) list->data.ptrvalue;
1822
prev = (Pointer PNTR) &(list->next);
1823
while (vnp != NULL) {
1825
str = (CharPtr) vnp->data.ptrvalue;
1826
if (StringICmp (last, str) == 0) {
1829
ValNodeFreeData (vnp);
1831
last = (CharPtr) vnp->data.ptrvalue;
1832
prev = (Pointer PNTR) &(vnp->next);
1656
1840
NLM_EXTERN int LIBCALLBACK SortByIntvalue (VoidPtr ptr1, VoidPtr ptr2)
4433
4625
nextqual = gbq->next;
4435
if (StringICmp (gbq->qual, "rpt_type") == 0 ||
4627
if (StringICmp (gbq->qual, "rpt_unit_seq") == 0) {
4629
len = StringLen (str);
4630
if (len > 1 && *str == '{' && str [len - 1] == '}') {
4632
str [len - 1] = ')';
4634
if (len > 1 && *str == '(' && str [len - 1] == ')' /* && StringChr (str + 1, '(') == NULL */) {
4635
if (ExpandParenGroup (gbq)) {
4636
nextqual = gbq->next;
4637
/* individual parsed out (xxx,xxx) qualifiers will be processed next, now get rid of original */
4645
} else if (StringICmp (gbq->qual, "rpt_type") == 0 ||
4436
4646
StringICmp (gbq->qual, "rpt_unit") == 0 ||
4437
4647
StringICmp (gbq->qual, "rpt_unit_range") == 0 ||
4438
4648
StringICmp (gbq->qual, "rpt_unit_seq") == 0 ||
8618
CleanVisStringList (&(grp->syn));
8619
grp->syn = ValNodeSort (grp->syn, SortVnpByString);
8620
grp->syn = UniqueValNode (grp->syn);
8902
CleanVisStringListCaseSensitive (&(grp->syn));
8903
grp->syn = ValNodeSort (grp->syn, SortVnpByStringCS);
8904
grp->syn = UniqueStringValNodeCS (grp->syn);
8905
grp->syn = ValNodeSort (grp->syn, SortVnpByStringCILCFirst);
8621
8906
CleanDoubleQuote (grp->locus);
8622
8907
CleanDoubleQuote (grp->allele);
8623
8908
CleanDoubleQuote (grp->desc);
8624
8910
if (isJscan && StringDoesHaveText (grp->desc)) {
8625
8911
ptr = CleanUpSgml (grp->desc);
8626
8912
if (ptr != NULL) {
10343
10632
ifp->key = MemFree (ifp->key);
10344
10633
ifp->key = StringSave ("repeat_region");
10345
10634
sfp->idx.subtype = FEATDEF_repeat_region;
10635
} else if (StringCmp (ifp->key, "misc_bind") == 0) {
10636
ifp->key = MemFree (ifp->key);
10637
ifp->key = StringSave ("misc_binding");
10638
sfp->idx.subtype = FEATDEF_misc_binding;
10346
10639
} else if (StringCmp (ifp->key, "satellite") == 0 ) {
10347
10640
ifp->key = MemFree (ifp->key);
10348
10641
ifp->key = StringSave ("repeat_region");
10671
11000
SeqAnnotPtr sap = NULL;
10672
11001
ValNodePtr sdp = NULL;
10673
11002
SeqFeatPtr sfp;
10674
11004
SeqEntryPtr tmp;
10676
11006
if (sep == NULL) return;
10677
11007
if (IS_Bioseq (sep)) {
10678
11008
bsp = (BioseqPtr) sep->data.ptrvalue;
10679
11009
if (bsp == NULL) return;
11010
/* remove duplicate SeqIds on the same Bioseq */
11011
RemoveDuplicateSeqIds (bsp);
10680
11013
/* repair damaged delta sequences */
10681
11014
RemoveZeroLengthSeqLits (bsp);
10683
11016
sap = bsp->annot;
10684
11017
sdp = bsp->descr;
10685
/* repair if bsp.mol is not-set */
10686
if (bsp->mol == 0) {
10687
desc = GetNextDescriptorUnindexed (bsp, Seq_descr_molinfo, NULL);
10688
if (desc != NULL && desc->choice == Seq_descr_molinfo) {
10689
mip = (MolInfoPtr) desc->data.ptrvalue;
11018
desc = GetNextDescriptorUnindexed (bsp, Seq_descr_molinfo, NULL);
11019
if (desc != NULL && desc->choice == Seq_descr_molinfo) {
11020
mip = (MolInfoPtr) desc->data.ptrvalue;
11022
/* repair if bsp.mol is not-set */
11023
if (bsp->mol == 0) {
10691
11024
switch (mip->biomol) {
10692
11025
case MOLECULE_TYPE_GENOMIC :
10693
11026
bsp->mol = Seq_mol_na;
13869
14230
return index;
13873
NLM_EXTERN Int4 ScanEntrezgeneSetRelease (CharPtr inputFile, Boolean binary, Boolean compressed, Pointer userdata, ScanEntrezgeneSetFunc callback)
14233
NLM_EXTERN Int4 ScanBioseqSetRelease (
14236
Boolean compressed,
14238
ScanBioseqSetFunc callback
14242
return ScanBioseqSetReleaseInt (inputFile, binary, compressed, userdata, callback, TRUE, NULL);
14245
static TNlmMutex scan_bioseq_set_release_mutex = NULL;
14247
NLM_EXTERN Int4 ScanBioseqSetReleaseMT (
14250
Boolean compressed,
14252
ScanBioseqSetFunc callback
14256
return ScanBioseqSetReleaseInt (inputFile, binary, compressed, userdata, callback, FALSE, &scan_bioseq_set_release_mutex);
14259
NLM_EXTERN SeqEntryPtr LIBCALL FreeScanSeqEntryMT (
14264
if (sep == NULL) return NULL;
14266
NlmMutexLockEx (&scan_bioseq_set_release_mutex);
14268
SeqMgrHoldIndexing (TRUE);
14269
SeqEntryFree (sep);
14270
SeqMgrHoldIndexing (FALSE);
14272
NlmMutexUnlock (scan_bioseq_set_release_mutex);
14277
NLM_EXTERN Int4 ScanEntrezgeneSetRelease (
14280
Boolean compressed,
14282
ScanEntrezgeneSetFunc callback
13876
14286
AsnIoPtr aip;