{"id":161569,"name":null,"description":"Viral genomics analysis pipelines","url":"https://github.com/broadinstitute/viral-ngs","last_synced_at":"2025-09-09T18:28:50.533Z","repository":{"id":21167707,"uuid":"24471201","full_name":"broadinstitute/viral-ngs","owner":"broadinstitute","description":"Viral genomics analysis pipelines","archived":false,"fork":false,"pushed_at":"2024-09-20T13:22:01.000Z","size":67652,"stargazers_count":192,"open_issues_count":64,"forks_count":68,"subscribers_count":29,"default_branch":"master","last_synced_at":"2025-03-23T00:36:30.583Z","etag":null,"topics":["bam","fastq","genome","genome-assembly","genome-sequencing","genomics","illumina","variant-annotations","variant-calling","viral","viral-ngs"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/broadinstitute.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}},"created_at":"2014-09-25T19:00:24.000Z","updated_at":"2025-02-15T07:59:53.000Z","dependencies_parsed_at":"2022-08-22T18:10:51.543Z","dependency_job_id":null,"html_url":"https://github.com/broadinstitute/viral-ngs","commit_stats":null,"previous_names":[],"tags_count":96,"template":false,"template_full_name":null,"purl":"pkg:github/broadinstitute/viral-ngs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broadinstitute","download_url":"https://codeload.github.com/broadinstitute/viral-ngs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274340949,"owners_count":25267296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"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"}},"owner":{"login":"broadinstitute","name":"Broad Institute","uuid":"393552","kind":"organization","description":"Broad Institute of MIT and Harvard","email":null,"website":"http://www.broadinstitute.org/","location":"Cambridge, MA","twitter":"broadinstitute","company":null,"icon_url":"https://avatars.githubusercontent.com/u/393552?v=4","repositories_count":1083,"last_synced_at":"2023-04-09T09:48:11.262Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/broadinstitute","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T16:23:28.278Z","updated_at":"2023-04-09T09:48:11.836Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broadinstitute","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/broadinstitute/repositories"},"packages":[],"commits":{"id":1409499,"full_name":"broadinstitute/viral-ngs","default_branch":"master","committers":[{"name":"Danny Park","email":"dpark@broadinstitute.org","login":null,"count":1179},{"name":"Christopher Tomkins-Tinch","email":"tomkinsc@broadinstitute.org","login":null,"count":594},{"name":"Chris Tomkins-Tinch","email":"tomkinsc@gmail.com","login":null,"count":169},{"name":"Irwin Jungreis","email":"iljungr@csail.mit.edu","login":null,"count":159},{"name":"Simon Ye","email":"mail@yesimon.com","login":null,"count":90},{"name":"Ilya Shlyakhter","email":"ilya_shl@alum.mit.edu","login":null,"count":52},{"name":"Simon Ye","email":"sye737@gmail.com","login":null,"count":45},{"name":"Hayden Metsky","email":"hmetsky@gmail.com","login":null,"count":41},{"name":"Hanna Mendes Levitin","email":"h.mendes.levitin@gmail.com","login":null,"count":19},{"name":"Mike Lin","email":"mlin@mlin.net","login":null,"count":9},{"name":"Aaron Lin","email":"09aaronl@gmail.com","login":null,"count":3},{"name":"biocyberman","email":"biocyberman@gmail.com","login":null,"count":3},{"name":"Christopher Tomkins-Tinch","email":"tomkinsc@ztest2001.broadinstitute.org","login":null,"count":2},{"name":"Christopher Tomkins-Tinch","email":"tomkinsc@platinum.broadinstitute.org","login":null,"count":2},{"name":"Lydia Andreyevna Krasilnikova","email":"lakras@mit.edu","login":null,"count":1},{"name":"Christopher Tomkins-Tinch","email":"tomkinsc@hw-uger-1000.broadinstitute.org","login":null,"count":1},{"name":"pvanheus","email":"pvh@webbedfeet.co.za","login":null,"count":1},{"name":"Brett T. Hannigan","email":"bhannigan@dnanexus.com","login":null,"count":1},{"name":"Katrin Leinweber","email":"9948149+katrinleinweber","login":"katrinleinweber","count":1}],"total_commits":2372,"total_committers":19,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":124.84210526315789,"dds":0.5029510961214165,"past_year_committers":[],"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2023-10-25T16:47:35.854Z","last_synced_commit":"e144969e4c57060d53f38a4c3a270e8227feace1","created_at":"2023-10-25T16:47:22.815Z","updated_at":"2023-10-25T16:47:35.855Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:17:06.873Z","repositories_count":5533016,"commits_count":871413133,"contributors_count":32103352,"owners_count":918325,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"broadinstitute/viral-ngs","html_url":"https://github.com/broadinstitute/viral-ngs","last_synced_at":null,"status":null,"issues_count":null,"pull_requests_count":null,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":null,"issues_closed_count":null,"pull_requests_closed_count":null,"pull_request_authors_count":null,"issue_authors_count":null,"avg_comments_per_issue":null,"avg_comments_per_pull_request":null,"merged_pull_requests_count":null,"bot_issues_count":null,"bot_pull_requests_count":null,"past_year_issues_count":null,"past_year_pull_requests_count":null,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":null,"past_year_pull_requests_closed_count":null,"past_year_pull_request_authors_count":null,"past_year_issue_authors_count":null,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":null,"past_year_bot_pull_requests_count":null,"past_year_merged_pull_requests_count":null,"created_at":"2025-09-02T08:25:47.914Z","updated_at":"2025-09-02T08:30:58.706Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/broadinstitute%2Fviral-ngs/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":1},"pull_request_author_associations_count":{},"issue_authors":{"wwhwwxlz":1},"pull_request_authors":{},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-09T00:00:11.778Z","repositories_count":10196326,"issues_count":32268893,"pull_requests_count":101840123,"authors_count":10740909,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"wwhwwxlz":1},"past_year_pull_request_authors":{},"maintainers":[],"active_maintainers":[]},"events":{"total":{"WatchEvent":7,"ForkEvent":1},"last_year":{"WatchEvent":7,"ForkEvent":1}},"keywords":["bam","fastq","genome","genome-assembly","genome-sequencing","genomics","illumina","variant-annotations","variant-calling","viral","viral-ngs"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements-conda-tests.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T18:10:50.921Z","updated_at":"2022-08-22T18:10:50.921Z","repository_link":"https://github.com/broadinstitute/viral-ngs/blob/master/requirements-conda-tests.txt","dependencies":[{"id":2295128367,"package_name":"coveralls","ecosystem":"pypi","requirements":"=1.3.0","direct":true,"kind":"test","optional":false},{"id":2295128368,"package_name":"flake8","ecosystem":"pypi","requirements":"\u003e=3.2.1","direct":true,"kind":"test","optional":false},{"id":2295128369,"package_name":"lxml","ecosystem":"pypi","requirements":"=4.3.3","direct":true,"kind":"test","optional":false},{"id":2295128370,"package_name":"mock","ecosystem":"pypi","requirements":"=2.0.0","direct":true,"kind":"test","optional":false},{"id":2295128371,"package_name":"pycodestyle","ecosystem":"pypi","requirements":"=2.2.0","direct":true,"kind":"test","optional":false},{"id":2295128372,"package_name":"pytest","ecosystem":"pypi","requirements":"=4.2.0","direct":true,"kind":"test","optional":false},{"id":2295128373,"package_name":"attrs","ecosystem":"pypi","requirements":"=19.1.0","direct":true,"kind":"test","optional":false},{"id":2295128374,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"==2.6.1","direct":true,"kind":"test","optional":false},{"id":2295128375,"package_name":"pytest-mock","ecosystem":"pypi","requirements":"=1.10.0","direct":true,"kind":"test","optional":false},{"id":2295128376,"package_name":"pytest-xdist","ecosystem":"pypi","requirements":"=1.26.1","direct":true,"kind":"test","optional":false},{"id":2295128377,"package_name":"coverage","ecosystem":"pypi","requirements":"=4.5.2","direct":true,"kind":"test","optional":false},{"id":2295128378,"package_name":"six","ecosystem":"pypi","requirements":"=1.10.0","direct":true,"kind":"test","optional":false}]},{"ecosystem":"pypi","filepath":"requirements-conda.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T18:10:51.048Z","updated_at":"2022-08-22T18:10:51.048Z","repository_link":"https://github.com/broadinstitute/viral-ngs/blob/master/requirements-conda.txt","dependencies":[{"id":2295128505,"package_name":"blast","ecosystem":"pypi","requirements":"=2.7.1","direct":true,"kind":"runtime","optional":false},{"id":2295128506,"package_name":"bbmap","ecosystem":"pypi","requirements":"=38.56","direct":true,"kind":"runtime","optional":false},{"id":2295128507,"package_name":"bmtagger","ecosystem":"pypi","requirements":"=3.101","direct":true,"kind":"runtime","optional":false},{"id":2295128508,"package_name":"bwa","ecosystem":"pypi","requirements":"=0.7.17","direct":true,"kind":"runtime","optional":false},{"id":2295128509,"package_name":"cd-hit","ecosystem":"pypi","requirements":"=4.6.8","direct":true,"kind":"runtime","optional":false},{"id":2295128510,"package_name":"cd-hit-auxtools","ecosystem":"pypi","requirements":"=4.6.8","direct":true,"kind":"runtime","optional":false},{"id":2295128511,"package_name":"diamond","ecosystem":"pypi","requirements":"=0.9.10","direct":true,"kind":"runtime","optional":false},{"id":2295128512,"package_name":"kmc","ecosystem":"pypi","requirements":"=3.1.1rc1","direct":true,"kind":"runtime","optional":false},{"id":2295128513,"package_name":"gatk","ecosystem":"pypi","requirements":"=3.8","direct":true,"kind":"runtime","optional":false},{"id":2295128514,"package_name":"kaiju","ecosystem":"pypi","requirements":"=1.6.3_yesimon","direct":true,"kind":"runtime","optional":false},{"id":2295128515,"package_name":"krakenuniq","ecosystem":"pypi","requirements":"=0.5.7_yesimon","direct":true,"kind":"runtime","optional":false},{"id":2295128516,"package_name":"krona","ecosystem":"pypi","requirements":"=2.7.1","direct":true,"kind":"runtime","optional":false},{"id":2295128517,"package_name":"last","ecosystem":"pypi","requirements":"=876","direct":true,"kind":"runtime","optional":false},{"id":2295128518,"package_name":"lbzip2","ecosystem":"pypi","requirements":"=2.5","direct":true,"kind":"runtime","optional":false},{"id":2295128519,"package_name":"lz4-c","ecosystem":"pypi","requirements":"=1.9.1","direct":true,"kind":"runtime","optional":false},{"id":2295128520,"package_name":"fastqc","ecosystem":"pypi","requirements":"=0.11.7","direct":true,"kind":"runtime","optional":false},{"id":2295128521,"package_name":"gap2seq","ecosystem":"pypi","requirements":"=3.1.1a2","direct":true,"kind":"runtime","optional":false},{"id":2295128523,"package_name":"mafft","ecosystem":"pypi","requirements":"=7.402","direct":true,"kind":"runtime","optional":false},{"id":2295128524,"package_name":"mummer4","ecosystem":"pypi","requirements":"=4.0.0beta2","direct":true,"kind":"runtime","optional":false},{"id":2295128526,"package_name":"muscle","ecosystem":"pypi","requirements":"=3.8.1551","direct":true,"kind":"runtime","optional":false},{"id":2295128528,"package_name":"mvicuna","ecosystem":"pypi","requirements":"=1.0","direct":true,"kind":"runtime","optional":false},{"id":2295128531,"package_name":"novoalign","ecosystem":"pypi","requirements":"=3.07.00","direct":true,"kind":"runtime","optional":false},{"id":2295128533,"package_name":"parallel","ecosystem":"pypi","requirements":"=20160622","direct":true,"kind":"runtime","optional":false},{"id":2295128536,"package_name":"picard-slim","ecosystem":"pypi","requirements":"=2.21.1","direct":true,"kind":"runtime","optional":false},{"id":2295128539,"package_name":"pigz","ecosystem":"pypi","requirements":"=2.4","direct":true,"kind":"runtime","optional":false},{"id":2295128542,"package_name":"prinseq","ecosystem":"pypi","requirements":"=0.20.4","direct":true,"kind":"runtime","optional":false},{"id":2295128544,"package_name":"samtools","ecosystem":"pypi","requirements":"=1.9","direct":true,"kind":"runtime","optional":false},{"id":2295128547,"package_name":"snpeff","ecosystem":"pypi","requirements":"=4.3.1t","direct":true,"kind":"runtime","optional":false},{"id":2295128550,"package_name":"spades","ecosystem":"pypi","requirements":"=3.12.0","direct":true,"kind":"runtime","optional":false},{"id":2295128553,"package_name":"tbl2asn","ecosystem":"pypi","requirements":"=25.6","direct":true,"kind":"runtime","optional":false},{"id":2295128555,"package_name":"trimmomatic","ecosystem":"pypi","requirements":"=0.38","direct":true,"kind":"runtime","optional":false},{"id":2295128557,"package_name":"trinity","ecosystem":"pypi","requirements":"=date.2011_11_26","direct":true,"kind":"runtime","optional":false},{"id":2295128559,"package_name":"unzip","ecosystem":"pypi","requirements":"=6.0","direct":true,"kind":"runtime","optional":false},{"id":2295128561,"package_name":"vphaser2","ecosystem":"pypi","requirements":"=2.0","direct":true,"kind":"runtime","optional":false},{"id":2295128564,"package_name":"r-base","ecosystem":"pypi","requirements":"=3.5.1","direct":true,"kind":"runtime","optional":false},{"id":2295128566,"package_name":"arrow","ecosystem":"pypi","requirements":"=0.12.1","direct":true,"kind":"runtime","optional":false},{"id":2295128569,"package_name":"bedtools","ecosystem":"pypi","requirements":"=2.28.0","direct":true,"kind":"runtime","optional":false},{"id":2295128572,"package_name":"biopython","ecosystem":"pypi","requirements":"=1.72","direct":true,"kind":"runtime","optional":false},{"id":2295128575,"package_name":"future","ecosystem":"pypi","requirements":"==0.16.0","direct":true,"kind":"runtime","optional":false},{"id":2295128578,"package_name":"matplotlib","ecosystem":"pypi","requirements":"=2.2.4","direct":true,"kind":"runtime","optional":false},{"id":2295128580,"package_name":"pysam","ecosystem":"pypi","requirements":"=0.15.0","direct":true,"kind":"runtime","optional":false},{"id":2295128583,"package_name":"pybedtools","ecosystem":"pypi","requirements":"=0.7.10","direct":true,"kind":"runtime","optional":false},{"id":2295128586,"package_name":"PyYAML","ecosystem":"pypi","requirements":"=5.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements-minimal.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T18:10:51.151Z","updated_at":"2022-08-22T18:10:51.151Z","repository_link":"https://github.com/broadinstitute/viral-ngs/blob/master/requirements-minimal.txt","dependencies":[{"id":2295128691,"package_name":"lbzip2","ecosystem":"pypi","requirements":"=2.5","direct":true,"kind":"runtime","optional":false},{"id":2295128692,"package_name":"lz4-c","ecosystem":"pypi","requirements":"=1.9.1","direct":true,"kind":"runtime","optional":false},{"id":2295128693,"package_name":"fastqc","ecosystem":"pypi","requirements":"=0.11.7","direct":true,"kind":"runtime","optional":false},{"id":2295128694,"package_name":"picard-slim","ecosystem":"pypi","requirements":"=2.21.1","direct":true,"kind":"runtime","optional":false},{"id":2295128695,"package_name":"pigz","ecosystem":"pypi","requirements":"=2.4","direct":true,"kind":"runtime","optional":false},{"id":2295128696,"package_name":"samtools","ecosystem":"pypi","requirements":"=1.9","direct":true,"kind":"runtime","optional":false},{"id":2295128697,"package_name":"unzip","ecosystem":"pypi","requirements":"=6.0","direct":true,"kind":"runtime","optional":false},{"id":2295128698,"package_name":"biopython","ecosystem":"pypi","requirements":"=1.72","direct":true,"kind":"runtime","optional":false},{"id":2295128699,"package_name":"future","ecosystem":"pypi","requirements":"==0.16.0","direct":true,"kind":"runtime","optional":false},{"id":2295128700,"package_name":"matplotlib","ecosystem":"pypi","requirements":"=2.2.4","direct":true,"kind":"runtime","optional":false},{"id":2295128701,"package_name":"pysam","ecosystem":"pypi","requirements":"=0.15.0","direct":true,"kind":"runtime","optional":false},{"id":2295128702,"package_name":"pybedtools","ecosystem":"pypi","requirements":"=0.7.10","direct":true,"kind":"runtime","optional":false},{"id":2295128703,"package_name":"PyYAML","ecosystem":"pypi","requirements":"=5.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements-py-docs.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T18:10:51.224Z","updated_at":"2022-08-22T18:10:51.224Z","repository_link":"https://github.com/broadinstitute/viral-ngs/blob/master/requirements-py-docs.txt","dependencies":[{"id":2295128772,"package_name":"Sphinx","ecosystem":"pypi","requirements":"==1.4.4","direct":true,"kind":"runtime","optional":false},{"id":2295128773,"package_name":"sphinx-argparse","ecosystem":"pypi","requirements":"==0.1.15","direct":true,"kind":"runtime","optional":false},{"id":2295128774,"package_name":"sphinx_rtd_theme","ecosystem":"pypi","requirements":"==0.1.9","direct":true,"kind":"runtime","optional":false},{"id":2295128775,"package_name":"matplotlib","ecosystem":"pypi","requirements":"==2.2.4","direct":true,"kind":"runtime","optional":false},{"id":2295128776,"package_name":"PyYAML","ecosystem":"pypi","requirements":"==5.1","direct":true,"kind":"runtime","optional":false},{"id":2295128777,"package_name":"mock","ecosystem":"pypi","requirements":"\u003e=2.0.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements-py3.txt","sha":null,"kind":"manifest","created_at":"2022-08-22T18:10:51.388Z","updated_at":"2022-08-22T18:10:51.388Z","repository_link":"https://github.com/broadinstitute/viral-ngs/blob/master/requirements-py3.txt","dependencies":[{"id":2295128799,"package_name":"filechunkio","ecosystem":"pypi","requirements":"\u003e=1.8","direct":true,"kind":"runtime","optional":false},{"id":2295128800,"package_name":"snakemake","ecosystem":"pypi","requirements":"==5.6.0","direct":true,"kind":"runtime","optional":false},{"id":2295128801,"package_name":"google-cloud-storage","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":2295128802,"package_name":"pysftp","ecosystem":"pypi","requirements":"\u003e=0.2.8","direct":true,"kind":"runtime","optional":false},{"id":2295128803,"package_name":"boto3","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":8.489616423646002,"created_at":"2025-09-09T00:57:04.233Z","updated_at":"2025-10-07T08:38:38.101Z","avatar_url":"https://github.com/broadinstitute.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":["https://doi.org/10.5281/zenodo.252549"],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["bioinformatics","workflow-management","carpentries"],"project_url":"https://science.ecosyste.ms/api/v1/projects/161569","html_url":"https://science.ecosyste.ms/projects/161569"}