<p align="center">
<img alt="ARG Visualizer Example" src="https://raw.githubusercontent.com/kitchensjn/tskit_arg_visualizer/master/images/tskit_arg_visualizer.png" width="500">
</p>
A method for drawing ancestral recombination graphs from tskit tree sequences in Python using D3.js. ARGs are plotted using a D3's [force layout](https://github.com/d3/d3-force). All nodes have a fixed position on the y-axis set by fy. Sample nodes have a fixed position on the x-axis set by fx; the ordering of the sample nodes comes from the first tree in the tskit tree sequence (this is not always the optimal ordering but is generally a good starting point for plotting). The x positions of other nodes are set by a force simulation where all nodes repel each other countered by a linkage force between connected nodes in the graph.
Users can click and drag the nodes (including the sample) along the x-axis to further clean up the layout of the graph. The simulation does not take into account line crosses, which can often be improved with some fiddling. Once a node has been moved by a user, its position is fixed with regards to the force simulation.
See [tutorial.md](https://github.com/kitchensjn/tskit_arg_visualizer/blob/main/docs/tutorial.md) for a walkthrough of the package.
Raw data
{
"_id": null,
"home_page": null,
"name": "tskit-arg-visualizer",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": "population genetics, tree sequence, ancestral recombination graph, visualization, D3.js",
"author": null,
"author_email": "James Kitchens <kitchensjn@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/b5/76/07ef4e67cb6f207a3dcff6bafb66a60faef4f3bf7123a6470db0e28eb349/tskit_arg_visualizer-0.0.4.tar.gz",
"platform": null,
"description": "<p align=\"center\">\n <img alt=\"ARG Visualizer Example\" src=\"https://raw.githubusercontent.com/kitchensjn/tskit_arg_visualizer/master/images/tskit_arg_visualizer.png\" width=\"500\">\n</p>\n\nA method for drawing ancestral recombination graphs from tskit tree sequences in Python using D3.js. ARGs are plotted using a D3's [force layout](https://github.com/d3/d3-force). All nodes have a fixed position on the y-axis set by fy. Sample nodes have a fixed position on the x-axis set by fx; the ordering of the sample nodes comes from the first tree in the tskit tree sequence (this is not always the optimal ordering but is generally a good starting point for plotting). The x positions of other nodes are set by a force simulation where all nodes repel each other countered by a linkage force between connected nodes in the graph.\n\nUsers can click and drag the nodes (including the sample) along the x-axis to further clean up the layout of the graph. The simulation does not take into account line crosses, which can often be improved with some fiddling. Once a node has been moved by a user, its position is fixed with regards to the force simulation.\n\nSee [tutorial.md](https://github.com/kitchensjn/tskit_arg_visualizer/blob/main/docs/tutorial.md) for a walkthrough of the package.\n",
"bugtrack_url": null,
"license": null,
"summary": "Interactive visualization method for ancestral recombination graphs",
"version": "0.0.4",
"project_urls": {
"Bug Tracker": "https://github.com/kitchensjn/tskit_arg_visualizer/issues",
"Changelog": "https://github.com/kitchensjn/tskit_arg_visualizer/blob/main/CHANGELOG.rst",
"Homepage": "https://github.com/kitchensjn/tskit_arg_visualizer"
},
"split_keywords": [
"population genetics",
" tree sequence",
" ancestral recombination graph",
" visualization",
" d3.js"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "16f31fb96c9230c77b8285c423fd1a4e07c6d5394d906ad26aa552cd3c1c554f",
"md5": "873b6167c2cdb5a3cfbfe730599a1eb7",
"sha256": "4061e7f0613d995784892e3d520c3b51822d93e5ae302c81f54661ea558d21d5"
},
"downloads": -1,
"filename": "tskit_arg_visualizer-0.0.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "873b6167c2cdb5a3cfbfe730599a1eb7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 30669,
"upload_time": "2025-02-07T17:04:04",
"upload_time_iso_8601": "2025-02-07T17:04:04.278686Z",
"url": "https://files.pythonhosted.org/packages/16/f3/1fb96c9230c77b8285c423fd1a4e07c6d5394d906ad26aa552cd3c1c554f/tskit_arg_visualizer-0.0.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "b57607ef4e67cb6f207a3dcff6bafb66a60faef4f3bf7123a6470db0e28eb349",
"md5": "f28dae8f20b987df1a698296afb31874",
"sha256": "5f28fd4af9a69713b99100c3ad67d1c8ffdaf2c62f7d510f33103e9dca2659e2"
},
"downloads": -1,
"filename": "tskit_arg_visualizer-0.0.4.tar.gz",
"has_sig": false,
"md5_digest": "f28dae8f20b987df1a698296afb31874",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 264473,
"upload_time": "2025-02-07T17:04:06",
"upload_time_iso_8601": "2025-02-07T17:04:06.238207Z",
"url": "https://files.pythonhosted.org/packages/b5/76/07ef4e67cb6f207a3dcff6bafb66a60faef4f3bf7123a6470db0e28eb349/tskit_arg_visualizer-0.0.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-07 17:04:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "kitchensjn",
"github_project": "tskit_arg_visualizer",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "pandas",
"specs": []
},
{
"name": "msprime",
"specs": []
},
{
"name": "IPython",
"specs": []
},
{
"name": "tqdm",
"specs": []
}
],
"lcname": "tskit-arg-visualizer"
}