Giter VIP home page Giter VIP logo

despace's Introduction

Hi there ๐Ÿ‘‹

  • ๐ŸŒฑ Iโ€™m currently working on graph neural network and structural bioinformatics.
  • ๐Ÿ‘ฏ Iโ€™m looking to collaborate on scientific research and cool python (web) apps.
  • ๐Ÿค” Iโ€™m looking for help with graph neural network.
  • ๐Ÿ’ฌ Ask me about computationl chemistry, cheminformatics, bioinformatics, machine learning, python, etc.
  • ๐Ÿ“ซ How to reach me: twitter/X

For scientific projects, please check my Google Scholar page.

despace's People

Contributors

pre-commit-ci[bot] avatar ruibin-liu avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

despace's Issues

Hilbert type space filling curve

As shown in the README example and the Google Colab example, we can construct Z-order or Morton space filling curve patterns. In my original plan for presenting examples, I thought I should construct Hilbert-type space filling curves first. In fact, a Hilbert.py file is already in the examples folder.

The question is, how should I modify the algorithm so that we can construct Hilbert-type space filling curves?

Thoughts:

  1. Change the sort order when switching to a new direction.
  2. For implementation details, I can either create a new function similar to sort_divide but for Hilbert-type pattern sorting/indexing or keep the same function but change the behavior when a key word like pattern_type is specified to either Morton or Hilbert.

Keep original indexing information

Currently, the sorted data loses the original indexing formation and at first thought it looks hard to keep the indexing information on the fly. Keeping the original indexing information can be essential in any practical usage because each data point typically represents a different object in a N-d space. Examples are atoms in molecules, planets or stars in galaxies, or locations in a map. On the contrary, it might not be important in image vectorization and volumetric data vectorization. An option/way to keep the original indexing information is needed.

Thoughts:

  1. Skip the index column in the numpy array when doing sort. Technically, this enables skipping any columns.
  2. In implementation, should also provide an option to add an index column if not already there but required to keep the information to the original data.

Plotting with arrows

Currently, I can only use scatter plot and color the data points with indices. It'll be more helpful if arrows are added between two adjacent points like those space filling curves.

Sort/index according to closeness to a point

Currently, points or coordinates are sorted by the first dimension first and then the next dimensions. This makes the indexing/pseudo-grouping start from a corner and end at the furthest opposite corner. There is nothing wrong to organize the data in this way but it's interesting whether we can start from an arbitrary point and pseudo group points around it according to their distances to it.

Thoughts:

  1. Transform each data points around the chosen point by absolute difference in each direction;
  2. Sort the transformed data;
  3. Transform the data back to their original values but keep the indexing.

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.