{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "autoscroll": false, "collapsed": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "autoscroll": false, "collapsed": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "import igraph as ig\n", "import dionysus as d" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "from filtration import wrcf" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "autoscroll": false, "collapsed": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "G = ig.read(\"data/bitcoin/bitcoinalpha.graphml\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "autoscroll": false, "collapsed": false, "ein.tags": "worksheet-0", "slideshow": { "slide_type": "-" } }, "outputs": [], "source": [ "G.to_undirected(combine_edges=\"first\")" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'IGRAPH U-W- 3783 14124 -- \\n+ attr: id (v), label (v), Edge Label (e), id (e), rating (e), time (e), weight (e)'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "G.summary()" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 10., 9., 8., 7., 6., 5., 4., 3., 2., 1., -1.,\n", " -2., -3., -4., -5., -6., -7., -8., -9., -10.])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.unique(G.es[\"rating\"])[::-1]" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "filt = wrcf(G, weight=\"rating\")\n", "pers = d.homology_persistence(filt)\n", "dgms = d.init_diagrams(pers, filt)" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[Diagram with 3783 points,\n", " Diagram with 29472 points,\n", " Diagram with 1410 points,\n", " Diagram with 175 points,\n", " Diagram with 10 points,\n", " Diagram with 0 points,\n", " Diagram with 0 points,\n", " Diagram with 0 points,\n", " Diagram with 0 points,\n", " Diagram with 0 points]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dgms" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "d.plot.plot_bars(dgms[1])" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.5" } }, "nbformat": 4, "nbformat_minor": 2 }