{"id":15787138,"url":"https://github.com/ysig/grakel","last_synced_at":"2025-05-14T12:12:53.659Z","repository":{"id":38551612,"uuid":"108996733","full_name":"ysig/GraKeL","owner":"ysig","description":"A scikit-learn compatible library for graph kernels","archived":false,"fork":false,"pushed_at":"2024-10-24T13:11:10.000Z","size":27696,"stargazers_count":614,"open_issues_count":14,"forks_count":100,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-02T00:32:05.365Z","etag":null,"topics":["bioinformatics","chemoinformatics","graph-classification","graph-kernels","graph-mining","graph-similarity","graph-similarity-algorithms","scikit-learn"],"latest_commit_sha":null,"homepage":"https://ysig.github.io/GraKeL/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ysig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-10-31T13:05:27.000Z","updated_at":"2025-04-29T14:05:34.000Z","dependencies_parsed_at":"2022-07-14T03:30:34.714Z","dependency_job_id":"a2784246-4853-4134-b5bb-0101e808981f","html_url":"https://github.com/ysig/GraKeL","commit_stats":{"total_commits":908,"total_committers":23,"mean_commits":39.47826086956522,"dds":"0.29955947136563876","last_synced_commit":"6a9cebf185aa4e71b1e05f8d4e91edf8ce818aeb"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysig%2FGraKeL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysig%2FGraKeL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysig%2FGraKeL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ysig%2FGraKeL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ysig","download_url":"https://codeload.github.com/ysig/GraKeL/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140768,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioinformatics","chemoinformatics","graph-classification","graph-kernels","graph-mining","graph-similarity","graph-similarity-algorithms","scikit-learn"],"created_at":"2024-10-04T21:05:35.229Z","updated_at":"2025-05-14T12:12:48.643Z","avatar_url":"https://github.com/ysig.png","language":"Python","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"50%\" src=\"https://raw.githubusercontent.com/ysig/GraKeL/0.1a7/doc/_figures/logo.svg?sanitize=true\" /\u003e\n\u003c/p\u003e\n\n--------------------------------------------------------------------------------\n\u003e [!NOTE]\n\u003e **GraKeL needs your support!**\n\u003e Our goal with GraKeL was to have a stable library for graph kernels but as tools change it requires maintenance:\n\u003e Lots of libraries change requiring constant pull requests to keep up with newer python/numpy versions,\n\u003e or for example modernizing our ci-cycle was not finalized and the owner currently lacks knowledge and time to go over changes.\n\u003e If there is a community of researchers that want to be part of grakel's support please reach out,\n\u003e to `ioannis \u003cdot\u003e siglidis \u003cat\u003e enpc \u003cdot\u003e fr` and we would be happy to gradually move you into maintenance.\n\u003e Thank you! 💕\n\n[![Pypi Versions](https://img.shields.io/pypi/pyversions/grakel.svg)](https://pypi.org/pypi/grakel/)\n[![Coverage Status](https://codecov.io/gh/ysig/GraKeL/branch/master/graph/badge.svg)](https://codecov.io/gh/ysig/GraKeL)\n[![CircleCI Status](https://circleci.com/gh/ysig/GraKeL.svg?style=svg)](https://circleci.com/gh/ysig/GraKeL)\n\n**[Documentation](https://ysig.github.io/GraKeL/)** | **[Paper](http://jmlr.org/papers/volume21/18-370/18-370.pdf)**\n\n*GraKeL* is a library that provides implementations of several well-established graph kernels. The library unifies these kernels into a common framework. Furthermore, it provides implementations of some frameworks that work on top of graph kernels. Specifically, GraKeL contains 16 kernels and 2 frameworks. The library is compatible with the [scikit-learn](http://scikit-learn.org/) pipeline allowing easy and fast integration inside machine learning algorithms.\n\n--------------------------------------------------------------------------------\n\nIn detail, the following kernels and frameworks are currently implemented:\n\n* **[Vertex histogram kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.VertexHistogram.html)**\n* **[Edge histogram kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.EdgeHistogram.html)**\n* **[Shortest path kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.ShortestPath.html)** from Borgwardt and Kriegel: [Shortest-path kernels on graphs](https://www.dbs.ifi.lmu.de/~borgward/papers/BorKri05.pdf) (ICDM 2005)\n* **[Graphlet kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.GraphletSampling.html)** from Shervashidze *et al.*: [Efficient graphlet kernels for large graph comparison](http://proceedings.mlr.press/v5/shervashidze09a/shervashidze09a.pdf) (AISTATS 2009)\n* **[Random walk kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.RandomWalk.html)** from Vishwanathan *et al.*: [Graph Kernels](http://www.jmlr.org/papers/volume11/vishwanathan10a/vishwanathan10a.pdf) (JMLR 11(Apr))\n* **[Neighborhood hash graph kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.NeighborhoodHash.html)** from Hido and Kashima: [A Linear-time Graph Kernel](https://ieeexplore.ieee.org/abstract/document/5360243) (ICDM 2009)\n* **[Weisfeiler-Lehman framework](https://ysig.github.io/GraKeL/latest/generated/grakel.WeisfeilerLehman.html)** from Shervashidze *et al.*: [Weisfeiler-Lehman Graph Kernels](http://www.jmlr.org/papers/volume12/shervashidze11a/shervashidze11a.pdf) (JMLR 12(Sep))\n* **[Neighborhood subgraph pairwise distance kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.NeighborhoodSubgraphPairwiseDistance.html)** from Costa and De Grave: [Fast Neighborhood Subgraph Pairwise Distance Kernel](https://pdfs.semanticscholar.org/7a10/f6a406b664d1159e7c4fefbdd6ac275aee53.pdf) (ICML 2010)\n* **[Lovasz-theta kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.LovaszTheta.html)** from Johansson *et al.*: [Global graph kernels using geometric embeddings](http://proceedings.mlr.press/v32/johansson14.pdf) (ICML 2014)\n* **[SVM-theta kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.SvmTheta.html)** from Johansson *et al.*: [Global graph kernels using geometric embeddings](http://proceedings.mlr.press/v32/johansson14.pdf) (ICML 2014)\n* **[Ordered decompositional DAG kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.OddSth.html)** from Da San Martino *et al.*: [A Tree-Based Kernel for Graphs](https://pdfs.semanticscholar.org/69ee/18dd7a214d4d656b5b95742212f050dabeac.pdf) (SDM 2012)\n* **[GraphHopper kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.GraphHopper.html)** from Feragen *et al.*: [Scalable kernels for graphs with continuous attributes](https://papers.nips.cc/paper/5155-scalable-kernels-for-graphs-with-continuous-attributes.pdf) (NIPS 2013)\n* **[Propagation kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.Propagation.html)** from Neumann *et al.*: [Propagation kernels: efficient graph kernels from propagated information](https://link.springer.com/content/pdf/10.1007/s10994-015-5517-9.pdf) (Machine Learning 102(2))\n* **[Pyramid match kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.PyramidMatch.html)** from Nikolentzos *et al.*: [Matching Node Embeddings for Graph Similarity](https://www.aaai.org/ocs/index.php/AAAI/AAAI17/paper/view/14494/14426) (AAAI 2017)\n* **[Subgraph matching kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.SubgraphMatching.html)** from Kriege and Mutzel: [Subgraph Matching Kernels for Attributed Graphs](https://arxiv.org/ftp/arxiv/papers/1206/1206.6483.pdf) (ICML 2012)\n* **[Multiscale Laplacian kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.MultiscaleLaplacian.html)** from Kondor and Pan: [The Multiscale Laplacian Graph Kernel](https://papers.nips.cc/paper/6135-the-multiscale-laplacian-graph-kernel.pdf) (NIPS 2016)\n* **[Core framework](https://ysig.github.io/GraKeL/latest/generated/grakel.CoreFramework.html)** from Nikolentzos *et al.*: [A Degeneracy Framework for Graph Similarity](https://www.ijcai.org/proceedings/2018/0360.pdf) (IJCAI 2018)\n* **[Weisfeiler-Lehman optimal assignment kernel](https://ysig.github.io/GraKeL/latest/generated/grakel.WeisfeilerLehmanOptimalAssignment.html)** from Kriege *et al.*: [On Valid Optimal Assignment Kernels and Applications to Graph Classification](http://papers.nips.cc/paper/6166-on-valid-optimal-assignment-kernels-and-applications-to-graph-classification.pdf) (NIPS 2016)\n\n--------------------------------------------------------------------------------\n\nTo learn how to install and use GraKeL, and to find out more about the implemented kernels and frameworks, please read our [documentation](https://ysig.github.io/GraKeL/). To learn about the functionality of the library and about example applications, check out our [examples](https://github.com/ysig/GraKeL/tree/master/examples) in the `examples/` directory and our [tutorials](https://github.com/ysig/GraKeL/tree/master/tutorials) in the `tutorials/` directory.\n\nIn case you find a bug, please open an [issue](https://github.com/ysig/GraKeL/issues). To propose a new kernel, you can open a [feature request](https://github.com/ysig/GraKeL/issues).\n\n## Installation\n\nThe GraKeL library requires the following packages to be installed:\n\n* Python (\u003e=2.7, \u003e=3.5)\n* NumPy (\u003e=1.8.2)\n* SciPy (\u003e=0.13.3)\n* Cython (\u003e=0.27.3)\n* cvxopt (\u003e=1.2.0) [optional]\n* future (\u003e=0.16.0) (for python 2.7)\n\nTo install the package, run:\n\n```sh\n$ pip install grakel\n```\n\n## Running tests\n\nTo test the package, execute:\n```sh\n$ pytest\n```\n\n## Running examples\n\n```\n$ cd examples\n$ python shortest_path.py\n```\n\n## Cite\n\nIf you use GraKeL in a scientific publication, please cite our paper (http://jmlr.org/papers/volume21/18-370/18-370.pdf):\n\n```bibtex\n@article{JMLR:v21:18-370,\n  author  = {Giannis Siglidis and Giannis Nikolentzos and Stratis Limnios and Christos Giatsidis and Konstantinos Skianis and Michalis Vazirgiannis},\n  title   = {GraKeL: A Graph Kernel Library in Python},\n  journal = {Journal of Machine Learning Research},\n  year    = {2020},\n  volume  = {21},\n  number  = {54},\n  pages   = {1-5}\n}\n```\n\n## License\n\nGraKeL is distributed under the __BSD 3-clause__ license. The library makes use of the C++ source code of [BLISS](http://www.tcs.hut.fi/Software/bliss) (a tool for computing automorphism groups and canonical labelings of graphs) which is __LGPL__ licensed. Futhermore, the [cvxopt](https://cvxopt.org/) package (a software package for convex optimization) which is an optional dependency of GraKeL is __GPL__ licensed.\n\n## Acknowledgements\n\nWe would like to thank [@eddiebergman](https://github.com/eddiebergman) for modernizing our CI and extending our python support.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysig%2Fgrakel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fysig%2Fgrakel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fysig%2Fgrakel/lists"}