MultiScaleTreeGraph

Read, analyse, compute, write and convert MTG files

https://github.com/vezy/multiscaletreegraph.jl

Science Score: 67.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.0%) to scientific vocabulary

Keywords

fspm graphs julia plants

Keywords from Contributors

interpretability pde matrix-exponential numerics meshing normalizing-flow crops julialang flux neural-operator
Last synced: 6 months ago · JSON representation ·

Repository

Read, analyse, compute, write and convert MTG files

Basic Info
Statistics
  • Stars: 10
  • Watchers: 3
  • Forks: 1
  • Open Issues: 24
  • Releases: 26
Topics
fspm graphs julia plants
Created over 5 years ago · Last pushed 8 months ago
Metadata Files
Readme License Citation

README.md

MultiScaleTreeGraph

Stable Dev Build Status Coverage Code Style: Blue ColPrac: Contributor's Guide on Collaborative Practices for Community Packages DOI

The goal of MultiScaleTreeGraph.jl is to read, write, analyse and plot MTG (Multi-scale Tree Graph) files. These files describe the plant topology (i.e. structure) along with some attributes for each node (e.g. geometry, colors, state...).

The package is under intensive development and is in a very early version. The functions may heavily change from one version to another until a more stable version is released.

1. Installation

You can install the latest stable version of MultiScaleTreeGraph.jl using this command:

julia ] add MultiScaleTreeGraph

Or if you prefer the development version:

julia using Pkg Pkg.add(url="https://github.com/VEZY/MultiScaleTreeGraph.jl", rev="master")

2. Example

Read a simple MTG file:

```julia using MultiScaleTreeGraph

file = joinpath(dirname(dirname(pathof(MultiScaleTreeGraph))),"test","files","simple_plant.mtg")

mtg = read_mtg(file) ```

Then you can compute new variables in the MTG using a DataFrame.jl's alike syntax:

julia transform!(mtg, :Length => (x -> x * 1000.) => :length_mm)

And then write the MTG back to disk:

julia write_mtg("test.mtg",mtg)

3. Conversion

You can convert an MTG into a DataFrame and select the variables you need:

julia DataFrame(mtg, [:length_mm, :XX])

Or convert it to a MetaGraph:

julia MetaGraph(mtg)

4. Compatibility

We can plot the MTG using the companion package PlantGeom.jl.

MultiScaleTreeGraph.jl trees are compatible with the AbstractTrees.jl package, which means you can use all functions from that package, e.g.:

```julia using AbstractTrees

node = get_node(mtg, 4)

nodevalue(node) parent(node) nextsibling(node) prevsibling(nextsibling(node)) childrentype(node) childtype(node) childstatetype(node) getdescendant(mtg, (1, 1, 1, 2)) collect(PreOrderDFS(mtg)) collect(PostOrderDFS(mtg)) collect(Leaves(mtg)) collect(nodevalues(PreOrderDFS(mtg))) print_tree(mtg) ```

You can learn more about MultiScaleTreeGraph.jl in the documentation of the package.

3. Acknowledgments

Several tree-related functions in use are adapted from DataTrees.jl.

This package is heavily inspired by OpenAlea's MTG implementation in Python.

4. Similar packages

Owner

  • Name: Rémi Vezy
  • Login: VEZY
  • Kind: user
  • Location: Montpellier
  • Company: CIRAD

I am a researcher in plant modelling at the AMAP lab in CIRAD.

Citation (CITATION.bib)

@misc{MultiScaleTreeGraph.jl,
	author  = {remi.vezy <VEZY@users.noreply.github.com> and contributors},
	title   = {MultiScaleTreeGraph.jl},
	url     = {https://github.com/VEZY/MultiScaleTreeGraph.jl},
	version = {v0.7.0},
	year    = {2022},
	month   = {08}
}

GitHub Events

Total
  • Create event: 3
  • Commit comment event: 4
  • Release event: 3
  • Issues event: 2
  • Issue comment event: 1
  • Member event: 1
  • Push event: 16
  • Pull request event: 1
Last Year
  • Create event: 3
  • Commit comment event: 4
  • Release event: 3
  • Issues event: 2
  • Issue comment event: 1
  • Member event: 1
  • Push event: 16
  • Pull request event: 1

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 340
  • Total Committers: 3
  • Avg Commits per committer: 113.333
  • Development Distribution Score (DDS): 0.097
Past Year
  • Commits: 78
  • Committers: 3
  • Avg Commits per committer: 26.0
  • Development Distribution Score (DDS): 0.154
Top Committers
Name Email Commits
remi.vezy V****Y 307
github-actions[bot] 4****] 19
CompatHelper Julia c****y@j****g 14
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 44
  • Total pull requests: 34
  • Average time to close issues: 2 months
  • Average time to close pull requests: 19 days
  • Total issue authors: 4
  • Total pull request authors: 4
  • Average comments per issue: 0.95
  • Average comments per pull request: 0.47
  • Merged pull requests: 31
  • Bot issues: 0
  • Bot pull requests: 29
Past Year
  • Issues: 3
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 1
  • Average comments per issue: 0.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • VEZY (34)
  • bspanoghe (3)
  • thomasarsouze (2)
  • JuliaTagBot (1)
Pull Request Authors
  • github-actions[bot] (30)
  • bspanoghe (4)
  • VEZY (3)
  • Samuel-amap (2)
Top Labels
Issue Labels
enhancement (10) performance (4) good first issue (1) bug (1) documentation (1)
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • julia 11 total
  • Total dependent packages: 3
  • Total dependent repositories: 0
  • Total versions: 26
juliahub.com: MultiScaleTreeGraph

Read, analyse, compute, write and convert MTG files

  • Versions: 26
  • Dependent Packages: 3
  • Dependent Repositories: 0
  • Downloads: 11 Total
Rankings
Dependent repos count: 9.9%
Dependent packages count: 13.2%
Average: 30.4%
Stargazers count: 45.1%
Forks count: 53.5%
Last synced: 7 months ago

Dependencies

.github/workflows/CI.yml actions
  • actions/checkout v2 composite
  • codecov/codecov-action v2 composite
  • julia-actions/cache v1 composite
  • julia-actions/julia-buildpkg v1 composite
  • julia-actions/julia-docdeploy v1 composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest v1 composite
  • julia-actions/setup-julia v1 composite
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/docs.yml actions
  • actions/checkout v2 composite
  • julia-actions/setup-julia latest composite
.github/workflows/register.yml actions
  • julia-actions/RegisterAction latest composite