{"id":33051345,"url":"https://github.com/simonhmartin/asynt","last_synced_at":"2026-04-18T15:14:34.983Z","repository":{"id":37658911,"uuid":"413870660","full_name":"simonhmartin/asynt","owner":"simonhmartin","description":"Genome alignment and synteny plots","archived":false,"fork":false,"pushed_at":"2023-06-05T16:32:04.000Z","size":829,"stargazers_count":13,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-06-05T17:30:06.256Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"R","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/simonhmartin.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":"2021-10-05T15:16:30.000Z","updated_at":"2023-04-21T18:33:29.000Z","dependencies_parsed_at":"2023-01-19T12:02:51.353Z","dependency_job_id":null,"html_url":"https://github.com/simonhmartin/asynt","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/simonhmartin/asynt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonhmartin%2Fasynt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonhmartin%2Fasynt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonhmartin%2Fasynt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonhmartin%2Fasynt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/simonhmartin","download_url":"https://codeload.github.com/simonhmartin/asynt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/simonhmartin%2Fasynt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285138471,"owners_count":27121052,"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-11-18T02:00:05.759Z","response_time":61,"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":[],"created_at":"2025-11-14T03:00:27.111Z","updated_at":"2025-11-18T21:01:03.666Z","avatar_url":"https://github.com/simonhmartin.png","language":"R","funding_links":[],"categories":["Comparative"],"sub_categories":[],"readme":"\n# Asynt: R functions for exploring synteny using whole genome alignments\n\n* Make diagonal 'dot' plots\n* Plot alignment tracts between a pair of genomes\n* Merge adjacent alignments into synteny 'blocks' for cleaner plots\n\nSee our [paper](https://doi.org/10.1098/rstb.2021.0207) for examples of the plots you can make (see Figures 1 and S1)\n\n## How to use this code\n\nMake sure you have the R package \"Intervals\" installed.\n\nIf you already have alignment coordinate files from minimap2 (recommended) or mummer (using nucmer and show-coords), you are ready to go.\nOpen the script `asynt_example_plots.R` in an interactive R session (e.g. Rstudio) and work through it line by line to explore the kinds of plots you can make.\n\n## Where do I get alignments from?\n\nMake alignemnts between two assemblies (or a single assembly) using [minimap2](https://github.com/lh3/minimap2) or [mummer](https://mummer4.github.io/)\n\nHere is an example command for minimap2:\n\n`minimap2 -x asm20 reference.fa query.fasta | gzip \u003e mm2asm20.paf.gz`\n\n`-x asm20` uses presets suited for genomes up to 20% divergent.\n\n## How does asynt infer synteny blocks?\n\nThere are some sophisticated tools that use probabilistic approaches for infering synteny blocks. This is not one of those.\n\nThe algorithm has three steps:\n1. Alignments are split into ‘sub-blocks’ that each correspond to a unique tract of the reference assembly.\n2. Sub-blocks below a minimum size are discarded.\n3. Adjacent sub-blocks that are in the same orientation and are below some threshold distance apart are merged to yield syntenic blocks.\n\nThese three steps can be performed iteratively to first identify regions of fine-scale synteny and build these up into larger syntenic blocks (discarding short overlaps, small inversions etc).\nThe nature of this approach means that you will get a different result depending on what you use as the reference. If possible, use a reference that represents the ancestral state, such that your query genome is being represented as a new arrangement of ancestral blocks.\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonhmartin%2Fasynt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsimonhmartin%2Fasynt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsimonhmartin%2Fasynt/lists"}