{"id":33724960,"url":"https://github.com/langbnj/ptms","last_synced_at":"2026-05-28T18:31:02.170Z","repository":{"id":318240791,"uuid":"1022206402","full_name":"langbnj/ptms","owner":"langbnj","description":"Code for manuscript: \"Protein dynamics at different timescales unlock access to hidden post-translational modification sites\"","archived":false,"fork":false,"pushed_at":"2026-05-07T22:26:27.000Z","size":466,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-08T00:25:43.919Z","etag":null,"topics":["alphafold","bioinformatics","biology","evolution","proteins","ptms"],"latest_commit_sha":null,"homepage":"https://www.biorxiv.org/content/10.1101/2025.06.25.661537","language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/langbnj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-18T16:27:14.000Z","updated_at":"2026-05-07T22:26:30.000Z","dependencies_parsed_at":"2025-10-06T02:34:21.122Z","dependency_job_id":"f1a13337-475b-40b1-915c-103e6589c7f9","html_url":"https://github.com/langbnj/ptms","commit_stats":null,"previous_names":["langbnj/ptms"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/langbnj/ptms","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langbnj%2Fptms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langbnj%2Fptms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langbnj%2Fptms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langbnj%2Fptms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/langbnj","download_url":"https://codeload.github.com/langbnj/ptms/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langbnj%2Fptms/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33622066,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-28T02:00:06.440Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alphafold","bioinformatics","biology","evolution","proteins","ptms"],"created_at":"2025-12-04T11:05:33.333Z","updated_at":"2026-05-28T18:31:02.159Z","avatar_url":"https://github.com/langbnj.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ptms\nCode for manuscript:\n\n**\"Protein dynamics at different timescales unlock access to hidden post-translational modification sites\"**\n\n**Article preprint: https://www.biorxiv.org/content/10.1101/2025.06.25.661537v1**\n\n## AlphaSync\n\nThis project also uses code and SQL tables from AlphaSync (https://alphasync.stjude.org). \n\nAlphaSync code: https://github.com/langbnj/alphasync.\n\nAlphaSync article: https://www.nature.com/articles/s41594-025-01719-x.\n\n## Contents\n\n**analyses**: R scripts used to perform statistical analyses and produce figures.\n\n**include**: Utility functions.\n\n**mysql_tables**: MySQL table structures (CREATE statements).\n\n**pipeline**: Scripts used to extract and analyse data from data tables (SQL).\n\n**scripts**: Additional utility scripts.\n\n**update**: Scripts used to fill data tables (SQL).\n\nFor \"pipeline\" and \"update\", first run \"download.py\" (or \"download.pl\") to download datasets, followed by \"run.py\" (or \"run.pl\").\n\n## Install dependencies\n\n### Python\n```bash\npip install biopython requests sqlalchemy ipdb natsort numpy pandas pymysql scipy tabulate tqdm\n```\n### Perl\n```bash\ncpan -i Bundle::CPAN Term::ReadKey Term::ReadLine::Perl CPAN::DistnameInfo XML::Parser Statistics::Descriptive Statistics::R Text::CSV List::Compare Sort::Key::Natural Carp::Always Math::Round Statistics::Robust::Scale List::Vectorize Statistics::Multtest Statistics::RankCorrelation DBD::mysql\n```\n### SQL\nA MySQL or MariaDB server.\n\n## Update sequence\n\nCreate MySQL tables using \"mysql_tables/create_statements.sql\". Then, fill MySQL tables in this sequence:\n\n- update/uniprot (UniProt version 2022_04)\n- update/ensembl (Ensembl version 108)\n- update/tax (NCBI taxonomy tables)\n- update/compara (Ensembl Compara tables)\n- update/comparanopara (Ensembl Compara tables, paralog-filtered)\n- update/evolutionary_rate_rate4site (Rate4Site evolutionary rates)\n- update/evolutionary_rate_lichtarge (real-valued Evolutionary Trace score, rvET)\n- update/evolutionary_rate_capra (Capra et al. conservation scores, Jensen-Shannon Divergence)\n- update/evolutionary_rate_sporadic_protein_removal (Remove a handful of proteins not fully covered by all conservation scoring methods)\n- update/evolutionary_rate_normalize (Normalize conservation scores)\n\n...followed by the other tables.\n\n\n## Note\n\nPlease don't hesitate to contact us for questions and assistance with these scripts (\u003cbenjamin.lang@cantab.net\u003e, \u003cmadan.babu@stjude.org\u003e). They have grown historically as these analyses grew far more complex than originally envisioned, though we have done our best to comment them well enough to follow along and use them. Thank you!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangbnj%2Fptms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flangbnj%2Fptms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flangbnj%2Fptms/lists"}