Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Programmatically create grapetree visualizations #94

Open
crarlus opened this issue Nov 26, 2020 · 4 comments
Open

Programmatically create grapetree visualizations #94

crarlus opened this issue Nov 26, 2020 · 4 comments

Comments

@crarlus
Copy link

crarlus commented Nov 26, 2020

Hi,
thanks for grapetree, we use it a lot by uploading a mstree and metadata to a local grapetree instance in the browser.

However I wonder whether it is possible to create the grapetree visualizions (i.e. the json file) programmatically from the command line?

For instance, is there any such option as
grapetree --json --treefile mstree.nwk --meta metadata.tsv > grapetree_viz.json
?

This would be really helpful for updating the visualization whenever new data is available.

@eam12
Copy link

eam12 commented Jun 21, 2021

I agree. This type of command would be very useful! As great as the interactive program is, it can be laborious when I have to generate multiple MSTs with different subsets of data, node colors, etc.

@HBrendy
Copy link

HBrendy commented Feb 23, 2023

I agree, too. Another nice feature would be the preloading of a json file before launching the local browser instance.

@lskatz
Copy link

lskatz commented Jul 9, 2024

I came looking for this!! I would like this feature too. I'll bet that the hangup is that it is programmed in javascript instead of python. Maybe somewhere in here. I think it would be a great addition to bring it into the command line. https://github.com/achtman-lab/GrapeTree/blob/master/static/js/tree/d3_m_tree.js

Can anyone find the relevant code? I can't figure it out yet.

@lskatz
Copy link

lskatz commented Jul 9, 2024

This is my MST based on a sample lambda dataset if it helps anyone either in programming it or finding where it is programmed.

{
    "links": [
        {
            "source": 0,
            "target": 1,
            "distance": 85
        },
        {
            "source": 0,
            "target": 2,
            "distance": 80
        },
        {
            "source": 0,
            "target": 3,
            "distance": 75
        },
        {
            "source": 0,
            "target": 4,
            "distance": 0
        }
    ],
    "nodes": [
        "_hypo_0",
        "sample1",
        "sample2",
        "sample3",
        "sample4"
    ],
    "layout_data": {
        "node_positions": {
            "sample4": [
                508.6975515344812,
                621.3798986409274
            ],
            "sample1": [
                1028.5434415728532,
                608.720885637819
            ],
            "sample2": [
                28.764701999876763,
                723.0719659155677
            ],
            "sample3": [
                584.0186640866862,
                166.39586921998318
            ]
        },
        "nodes_links": {
            "max_link_length": 10000,
            "max_link_scale": 500,
            "base_node_size": 10,
            "size_power": 0.5,
            "link_font_size": 14,
            "show_link_labels": false,
            "show_node_labels": false,
            "node_font_size": 12,
            "custom_colours": {},
            "hide_link_length": 10000,
            "show_individual_segments": false,
            "node_collapsed_value": 0,
            "manual_collapsing": {},
            "custom_color_scheme": [
                "#1f77b4",
                "#aec7e8",
                "#ff7f0e",
                "#ffbb78",
                "#2ca02c",
                "#98df8a",
                "#d62728",
                "#ff9896",
                "#9467bd",
                "#c5b0d5",
                "#8c564b",
                "#c49c94",
                "#e377c2",
                "#f7b6d2",
                "#7f7f7f",
                "#c7c7c7",
                "#bcbd22",
                "#dbdb8d",
                "#17becf",
                "#9edae5",
                "#393b79",
                "#5254a3",
                "#6b6ecf",
                "#9c9ede",
                "#637939",
                "#8ca252",
                "#b5cf6b",
                "#cedb9c",
                "#8c6d31",
                "#bd9e39",
                "#e7ba52",
                "#e7cb94",
                "#843c39",
                "#ad494a",
                "#d6616b",
                "#e7969c",
                "#7b4173",
                "#a55194",
                "#ce6dbd",
                "#de9ed6",
                "#3182bd",
                "#6baed6",
                "#9ecae1",
                "#c6dbef",
                "#e6550d",
                "#fd8d3c",
                "#fdae6b",
                "#fdd0a2",
                "#31a354",
                "#74c476",
                "#a1d99b",
                "#c7e9c0",
                "#756bb1",
                "#9e9ac8",
                "#bcbddc",
                "#dadaeb",
                "#636363",
                "#969696",
                "#bdbdbd",
                "#d9d9d9"
            ]
        },
        "scale": 0.7095940084767466,
        "translate": [
            174,
            -64
        ],
        "display_category": "nothing"
    },
    "metadata": {
        "_hypo_0": {
            "ID": "_hypo_0",
            "__Node": "_hypo_0"
        },
        "sample1": {
            "ID": "sample1",
            "__Node": "sample1",
            "__selected": false,
            "id": 1
        },
        "sample2": {
            "ID": "sample2",
            "__Node": "sample2",
            "__selected": false,
            "id": 2
        },
        "sample3": {
            "ID": "sample3",
            "__Node": "sample3",
            "__selected": false,
            "id": 3
        },
        "sample4": {
            "ID": "sample4",
            "__Node": "sample4",
            "__selected": false,
            "id": 4
        }
    },
    "initial_category": "nothing",
    "category_num": 30,
    "newickTree": "(sample1:85,sample2:80,sample3:75,sample4:0);",
    "metadata_options": {
        "nothing": {
            "label": "No Category",
            "coltype": "character",
            "grouptype": "size",
            "colorscheme": "category",
            "minnum": 0,
            "category_num": 30
        },
        "ID": {
            "label": "ID",
            "coltype": "character",
            "grouptype": "size",
            "colorscheme": "category",
            "minnum": 0
        }
    }
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants