Git Product home page Git Product logo

ect's Introduction

ect: A python package for computing the Euler Characteristic Transform

Python computation tools for computing the Euler Characteristic Transform of embedded graphs.

Description

Right now, the content includes stuff for doing ECT on graphs embedded in 2D. Eventually the goal is to get voxel versions, higher dimensional simplicial complexes, etc in here.

For more information on the ECT, see:

Elizabeth Munch. An Invitation to the Euler Characteristic Transform. arXiv:2310.10395. 2023.

Getting Started

Documentation and tutorials

Dependencies

  • networkx
  • numpy
  • matplotlib
  • numba

Installing

The package can be installed using pip:

pip install ect

Alternatively, you can clone the repo and install directly

git clone [email protected]:MunchLab/ect.git
cd ect
pip install .

Authors

This code was written by Liz Munch along with her research group and collaborators. People who have contributed to ect include:

License

This project is licensed under the GPLv3 License - see the License file for details

Contact Information

ect's People

Contributors

lizliz avatar yemeen avatar sarah-mcguire avatar

Stargazers

 avatar

Watchers

 avatar  avatar

ect's Issues

Make a logo

... and add it to all the github and documentation thingys.

Get this beast on pip!

I should be able to pip install ect.

This also involves setting up the master branch to be protected, and to have the lovely automatic pushing to pypi thing that we have working for teaspoon and cereeberus

Add examples

Need to add lots of example code blocks and/or notebooks. In particular, a really basic running example is

import ect.ect_on_graphs as ECTg

Build a graph and plot it:

G = ECTg.create_example_graph()
G.plot()

Calculate the ECT and plot it

myect = ECTg.ECT(8,10)
myect.calculateECT(G)
myect.plotECT()

Incorporate Elena/Nathans versions of things

Not sure how exactly we want to do this but need to figure out how/where to incorporate the other version of the ECT code floating around. Also means we can figure out exactly why we're getting different outputs from the two

Plot command

Add something to the plot command for big graphs. Maybe a "plot only the edges" version for Sarah's leaf example

Add scaling

Set up a command to rescale the embedded graphs to fit in a radius 1 disk

Fix automatic publishing

Looks like pull requests might make the package try to push to pypi
image

This shouldn't happen. Maybe the goal is to have it push to the test-pypi, but then the push to pypi should only happen when the branch is pulled into main

math in documentation

I'm trying to get latex show up in the autodocumentation.

I can get math in the main markdown files by writing the following

  Testing {math}`a^2 + b^2 = c^2` with some text 
  
  An inline text shows up like
  '''{math}
  a^2 + b^2 = c^2
  '''
  although the three slashes need to be the ` near the 1 key but that won't render in this format.

However, everything I've tried when I've put the math stuff inside of the .py files for the autodocumentation does not render as math. You can see lots of examples of this not working in the top of the ect on graphs documentation page. This code is rendered from the documentation in the top of the ect_graph.py class.

Pretty sure I've had this issue in teaspoon too so maybe once we fix it here we can get that fixed too.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.