# RCSB_UTILS_SEQ HISTORY
  11-Dec-2018  - V0.10 Created module supporting PDB - UniProt mapping using SIFTS
  19-Mar-2019    V0.11 Incorporate UniProt feature extraction tools.
  22-Apr-2019    V0.12 Improve cache management, broaden test coverage
  24-Jun-2019    V0.13 Update development workflow
  14-Jul-2019    V0.14 Fix py27 minidom issue with 'in' operation.
   9-Sep-2019    V0.15 Add SiftsUtils() -> SiftsSummaryProvider()
  10-Sep-2019    V0.16 Convert case on PDB accession codes
  18-Sep-2019    V0.17 Add alignment details to the cache file
  18-Sep-2019    V0.18 Address Py27 dependency issue
  19-Sep-2019    V0.19 Move SeqAlign() utility class to this module
  23-Sep-2019    V0.20 Guarantee order and uniqueness from SiftsProvider.getIndentifiers()
   6-Oct-2019    V0.21 Include GO in the abbreviated set
   6-Oct-2019    V0.22 Make the content extracted subject to an API control to avoid Azure testing issues
  12-Oct-2019    V0.23 Add method SiftsSummaryProvider.getLongestAlignments()
  16-Oct-2019    V0.24 Address variable record length in reading SIFTS GO data.
  16-Oct-2019    V0.25 Update handling of secondary reference assignment mapping
  17-Oct-2019    V0.26 Include taxonomy with accession code mapping
  23-Nov-2019    V0.27 Move pipeline to py38
   6-Dec-2019    V0.28 Add rebuildMatchResultIndex() to refresh the match index.
   9-Dec-2019    V0.29 Add reformat method to support ExDB schema spec.
  14-Dec-2019    V0.30 Add method to provide unique UniProt accessions.
  15-Dec-2019    V0.31 Add method to provide unique UniProt accessions for an entry subset
  16-Dec-2019    V0.32 Correction in parser for feature sequence positions
  16-Dec-2019    V0.33 Improved error handling for failed fetches.
  16-Dec-2019    V0.34 Suppress tracebacks for some connection issues.
   3-Feb-2020    V0.35 Update dependencies
   4-Feb-2020    V0.36 Add stricter tests for failed lookup requests.
   8-Feb-2020    V0.37 Add independent tests for failover, expose more parameter
                       controls to public methods.
  13-Feb-2020    V0.38 Add further uniqueness checks in reformatting Uniprot features.
  18-Feb-2020    V0.39 Add Pfam and InterPro annotation providers
  18-Feb-2020    V0.40 Handle encoding issues for Py27
   5-Apr-2020    V0.41 Adjust logging details for UniProt fetchlist
  20-Jun-2020    V0.42 Add method fetchSequenceList() to fetch fasta sequences
  22-Jun-2020    V0.43 Add methods to return SeqAlign() from SIFTS data.
  23-Aug-2020    V0.43 Adjust InterPro ftp URL references.
   9-Oct-2020    V0.44 Add organism host taxonomy
  24-Oct-2020    V0.46 Adjust tests to handle Ubuntu 20.04 issues
  30-Nov-2020    V0.47 add UniProtIdMappingProvider() and tests.
   1-Dec-2020    V0.48 make UniProtIdMappingProvider() a singleton.
   2-Dec-2020    V0.49 Add legacy id mapping data in UniProtIdMappingProvider()
  10-Dec-2020    V0.50 Add 'tdd' format in UniProtIdMappingProvider() and improve save and load performance
  10-Dec-2020    V0.51 Add to and from stash methods in UniProtIdMappingProvider()
  22-Mar-2020    V0.52 Add backup and restore methods in  UniProtIdMappingProvider()
  23-Mar-2020    V0.53 Add clearCache methods and preserve loaded state across multiple instances of UniProtIdMappingProvider()
  10-May-2021    V0.54 Add feature and gene lookup method in UniProtUtils()
  10-May-2021    V0.55 Adjust return prototype for lookup functions
  10-May-2021    V0.56 Add review option for doGeneLookup()
  10-May-2021    V0.57 Adjustments to UniProt FASTA comment line parser
  26-May-2021    V0.58 Add Pfam mapping methods and GlyGenProvider() and associated tests
  27-May-2021    V0.59 Tweaking diagnostic output in GlyGenProvider()
  28-May-2021    V0.60 Add read-only version of GlycanProvider() and associated tests
  30-May-2021    V0.61 Add getVersion() method in PfamProvider().
  30-Jun-2021    V0.62 Make GlycanProvider() a subclass of StashableBase(), update __docformat__
  24-Jul-2021    V0.63 Make SiftsSummaryProvider() a subclass of StashableBase()
  14-Mar-2022    V0.64 Adjust parsing logic of ParentChildTreeFile.txt in InterProProvider.__getInterProParents()
  16-May-2022    V0.65 Update GlyGenProvider resource URL location
  25-Jul-2022    V0.66 Adjust UniProtUtils to temporarily use the legacy baseUrl (legacy.uniprot.org) for API calls
   4-Oct-2022    V0.67 Update UniProtUtils code to use new UniProt API
  10-Oct-2022    V0.68 Update URLs to InterPro data, and add better error catching for InterPro provider tests
  11-Oct-2022    V0.69 Only use secondary service site (EBI) for bulk UniProt XML requests
  26-Nov-2022    V0.70 Fix UniProtUtils primary API fetching method
  28-Nov-2022    V0.71 Add functionality to search primary service using secondary accession IDs (in case of obsoleted IDs)
   9-Jan-2023    V0.72 Configuration changes to support tox 4
   6-Feb-2023    V0.73 Resolve pylint issues
  23-Feb-2023    V0.74 Fix UniProtUtils primary fetching service to handle cases with invalid UniProt IDs
   9-Mar-2023    V0.75 Lower default maxChunkSize to 10 for UniProt requests (UniProt API having trouble streaming XML responses)
  19-Sep-2023    V0.76 Use HTTP instead of FTP for InterPro and Pfam downloads;
                       RO-4033: Adjust logic used for processing and assigning sequence alignment details
   3-Oct-2023    V0.77 Update PfamProvider to use new Pfam mapping file
  14-Nov-2023    V0.78 Add SPARQL functionality and version information to GlyGenProvider
  18-Mar-2024    V0.79 Add yeast and fruitfly datasets to GlyGenProvider