Package: shephard
SHEPHARDSequence-based Hierarchical and Extendable Platform for High-throughput Analysis of Region of DisorderCurrent major version: 0.1.21 (January 2024)AboutSHEPHARD is a Python toolkit for integrative proteome-wide analysis. It was written by Garrett Ginell and Alex Holehouse.SHEPHARD enables you to read in protein sequence data and annotate it with different types of sequence annotations (Sites, Domains, and Tracks).InstallationCopy and paste into your terminal:pip install shephardThis installs the current stable release candidate from PyPi.Installation from GitHubCopy and paste into your terminal:pip install shephard@git+git://github.com/holehouse-lab/shephard.gitThis installs the current bleeding-edge version directly from GitHub.DocumentationOnline documentation for SHEPHARD can be found here:https://shephard.readthedocs.io/en/latest/Tutorial ExamplesExamples and Google Colab tutorials can be found here:https://github.com/holehouse-lab/shephard-colabStatusSHEPHARD is fully released, and theSHEPHARD paperis out in Bioinformatics. Please cite SHEPHARD as:Ginell, G. M., Flynn, A. J. & Holehouse, A. S. SHEPHARD: a modular and extensible software architecture for analyzing and annotating large protein datasets. Bioinformatics 39, (2023).RoadmapSHEPHARD is the base code for a large body of sequence-based bioinformatic tools developed by the Holehouse lab. These include:metapredict- high-performance disorder predictorparrot- a general tool for deep learning of sequence featuressparrow- a high-throughput tool for sequence analysis (in development)goose- a general purpose tool for the rational design of disordered protein sequences (in development)These tools together form the backbone of our informatics infrastructure, and SHEPHARD will contain direct or indirect API access to each of them (and various other tools).Change logThe Changelog below reports on changes as we updated SHEPHARD. Specific types of changes includeBUG FIXES,PERFORMANCE UPGRADES, andNEW FEATURES, and these will be tagged as such.Version 0.1.21 (January 2024)BREAKING CHANGE: We renamed shephard.apis.metapredict to shephard.apis.metapredict_api to avoid namespace clashing with metapredict the package. This is of course avoidable by aliasing one/both, but this was poor design. Going forward, we will append _api to the end of api modules.Including import of metapredict_api from apis such thatfrom shephard.apis import metapredict_apisyntax worksRemoved batch_mode as a variable to consider in the metapredict_api functions; size-collect is the only mode supported in metapredict; if this changes we'll revisit things but for now no need to add additional confusion.Version 0.1.20 (December 2023)Fixed a minor but where theshephard.interfaces.si_proteinsinterface required proteins to ALREADY be in the proteome which proteins were being added to, which makes no sense, so we removed this constraint.Version 0.1.19 (November 2023)Added version requirement (3.7 to 3.11 inclusive)PERFORMANCE UPGRADE: Improved how large annotation files are parsed so we ONLY parse lines with unique IDs matching unique IDs in the associated Proteome we're annotating - massive improvement in performance when working with large (10,000 - 100,0000) annotation datasets. This should change nothing on the frontend or any of the behavior other than making SHEPHARD much faster for large datasetsPERFORMANCE UPGRADESChanged some of the error message construction to avoid major overhead when many (1000s of sites) are added (specifically, we previously by default generated an error message that listed out all the sites in a protein when testing for a dictionary type in a Site construction line; this has been removed).Better error handling for interface classes (print only the first 10 errors if many lines are read incorrectly - avoids a situation where the wrong file causes GBs of out text)Added explicit tests for all internal Interface classes.Added documentation for Protein interface files (as missing previously)Version 0.1.18 (February 2023)Added defensive programming for writing sites and domains where if adomain_typeorsite_typevariable is passed, we check explicitly that it's a list.Added ability to write_protein_attributes_from_dictionary (new function insi_protein_attributes.py.Version 0.1.17 (September 2022)BUG FIXFixed bug in writing domains from list.Added import from apis module such thatfrom shephard import apisnow enablesapis.<module>to workVersion 0.1.16 (September 2022)Update forPyPI updateImproved documentation ahead of final release (including tools docs).Added ability to return sites as lists for all site acquisition functions in proteins and domains.Added much more detailed tests for site acquisition functionsVersion 0.1.15 (September 2022)Update forPyPI updateVersion 0.1.10 (September 2022)Major updateLots of new testsEnable sites to read/write if values = None without throwing an exceptionFixed bug in writing sites from listBREAKING CHANGE: Changedshephard.protein.get_residue()toshephard.protein.residue(), inkeeping with style for other getter functionsVersion 0.1.9 (September 2022)Major updateLots of new testsAdded ability to write lists of sites and tracks (as we can with domains)Refactoring of interface writing codeAdded explicitly checks for domain, site, and track types when writing from lists of these objectsAddedTrack.symbol()andTrack.value()functions to extract a single symbol or value at a specific position.Updated documentation to include these new functionsUpdated tests to encompass new featuresFixed bugs in exception handlingBREAKING CHANGE: Changedshephard.interfaces.si_tracks.write_track()toshephard.interfaces.si_tracks.write_tracks()(i.e. plural) to match names from other functionsVersion 0.1.8 (August 2022)Bug fix indomain_tools.pyfor identifying overlap between two domainsFixed inconsistencies in writing domains that led to trailing whitespaceFixed bugs in exception throwing codeMore testsVersion 0.1.7 (April 2022)Improved documentationAdded domain_to_track() function in tools.track_toolsVersion 0.1.5 (April 2022)First version released to PyPIVersion 0.1.4 (Feb 2022)Added ability to remove Tracks, Sites and Domains from a Protein objectsTrack number of unique domains, sites, and tracks rather than just their presence/absenceUpdated Track writingAdded Tracks MUST be either symbolic or values-based but cannot be bothVersion 0.1.3.1 (May 2021)Various bug fixesImproved performanceUpdated interfaces for reading/writing different types of filesMajor updates to internal docsThis release should be considered largely stable, although docs are lackingExpanded the test suiteVersion 0.1.2.1 (August 2020)WARNING: This version breaks backwards compatibility with prior versions!protein.get_domains_by_type()now returns a list of domains instead of a dictionary. This helps bring consistency to how domains are retrieved and moves us away from dictionary returning.Various internal updatesCopyrightCopyright (c) 2019-2023, Garrett M. Ginell and Alex S. Holehouse  -Holehouse lab