Recent Releases of XGI
XGI - v0.10
- Added a recipe for community detection. #668 (@nwlandry)
- Added a community detection module and a method for community detection using spectral clustering. #665 (@kaiser-dan)
- Add
modetostatsmodule. #667 (@nwlandry) - Updated contributors and changed the default behavior of the adjacency tensor to be normalized. #666 (@nwlandry)
- Added an adjacency tensor function. #664 (@maximelucas)
- Added Zulip as a sponsor and added references to the "Using XGI" page. (Closes Issue #660) #662 (@nwlandry)
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry 11 months ago
XGI - v0.9.5
- Fix
fast_random_hypergraphfencepost errors. #655 (@nwlandry) - Split the GitHub actions for the tutorials and source code. #659 (@nwlandry)
- Added
edgelwkeyword indraw(). (Closes Issue #654) #658 (@maximelucas) - Switch from
lru_cachetocache. (Closes Issue #656) #657 (@nwlandry) - Fix fencepost errors in
uniform_erdos_renyi_hypergraph. (Closes Issue #652) #653 (@tlarock) - Fix/normalized hypergraph laplacian. (Closes Issue #647) #648 (@kaiser-dan)
- Fix sparse diag by upgrading SciPy and Numpy and dropping Python 3.9. (Closes Issue #649) #650 (@maximelucas)
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 1 year ago
XGI - v0.9.4
- Support
DiHypergraphin thefrom_bipartite_graphandto_bipartite_graphmethods. #633 (@colltoaction) - feat: added seed to shuffle-hypedges. (Closes Issue #644) #645 (@maximelucas)
- Improved changelog generator to link issues closed by PRs. (Closes Issue #627) #639 (@nwlandry)
- Added new publication references. #638 (@nwlandry)
- Fix issue with loadxgidata HIF. #637 (@nwlandry)
- Add metadata attributes to ashist() for improved plotting. #635 (@willcollins10)
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 1 year ago
XGI - v0.9.3
- Added the ability for
load_xgi_datato read HIF and added HIF dicts to the convert module. #613 (@nwlandry) - Added a custom Changelog generator to use XGI formatting. #626 (@nwlandry)
- Removed unnecesary asv files and added benchmarks. #631 (@nwlandry)
- Added a benchmark GitHub Action with
pytest-benchmark. #630 (@nwlandry) - Added release hashes for
asv. #628 (@nwlandry) - [BREAKING] Replaced the
idvariable withidxin XGI (Fixes Issue #619). #620 (@nwlandry)
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 1 year ago
XGI - v0.9.2
- Added nonuniform centralities and fixed the
node_edge_centralitymethod #600 (@nwlandry). - Fixed Issue #615. Added a docstring to the
watts_strogatz_hypergraphmethod #618 (@nwlandry). - Made the
HOW_TO_CONTRIBUTEguide more friendly to new contributors and accurate to our current release process #614 (@nwlandry). - Fixed the
local_clustering_coefficientmethod #608 (@cosimoagostinelli). - Created an initial sphinx-gallery #609 (@maximelucas).
- Changed aggregate stats type from numpy ints and floats to Python ints and floats and added
uniquemethod. #603 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.9.1
- Fixed Issue #361 for
random_hypergraph#597 (@nwlandry). - Added the ability to generate Erdős-Rényi hypergraphs without multiedges #596 (@nwlandry).
- Added support for Python 3.13 #599 (@nwlandry).
- Added a module for simpliciality measures #587 (@nwlandry).
- Tweaked the HIF read/write functions to match updates #598 (@nwlandry).
- Added a conditional API note #595 (@nwlandry).
- Fixed broken links in the README #594 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.9
- Added methods to (1) cut networks by order (
cut_to_order) and (2) generate the k-skeleton of a SC (k_skeleton) #578 (@thomasrobiglio). - Fixed an issue where the latest version displayed "dev" #592 (@nwlandry).
- Fixed the issue in the XGI version switcher so it no longer displays "Choose version" #590 (@nwlandry).
- Added the ability to switch between XGI versions on ReadTheDocs, added a favicon, added a theme-dependent logo, added the ability to auto-retrieve the license date range, and the ability to auto-retrieve the date of the latest release #586 (@nwlandry).
- Fixed Issue #580 and added related unit tests #581 (@thomasrobiglio).
- Added the ability to change the website color themes (light, dark, auto), removed unnecessary files from the PyData migration, and fixed Sphinx errors #582 (@nwlandry).
- Fixed broken links on the PyPI landing page from relative paths #579 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.8.9
- Added a new recipe to address Issue #549 #574 (@nwlandry).
- Added the
edge_ecargument to thedrawmethod to specify edge colors #575 (@maximelucas). - Switched from setup.py to pyproject.toml for installation #573 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.8.8
- Added the ability to read and write files according the HIF functionality standard #572 (@nwlandry).
- Implemented the
add_node_to_edgeandremove_node_from_edgemethods for DiHypergraphs #571 (@nwlandry). - Allow empty edges #565 (@nwlandry).
- Simplified the
cleanup()methods #569 (@nwlandry). - Fix Issue #566 #567 (@maximelucas).
- Added documentation about N vs. N-1 in the
var()andstd()methods in the stats module #562 (@nwlandry). - Fix Issue #552 #561 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.8.7
- Renamed the
_hypergraphinternal variable to_net_attr#560 (@nwlandry). - Get rid of KeyErrors in
to_line_graph#558 (@pgberlureau). - Fix
asfptype()scipy error #559 (@nwlandry). - Added the ability for XGI to load data collections #540 (@nwlandry).
- Made the
DiHypergraphclass more consistent with other class internals #541 (@nwlandry). - Fix Numpy 2.0 breaking changes #547 (@nwlandry).
- Moved tutorials to the top level #550 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.8.6
- Added numpy<2.0 to the requirements to avoid breaking changes with Numpy version 2.0 #545 (@nwlandry).
- Updated license and contributing #539 (@nwlandry).
- Added error handling for JSON duplicate IDs #538 (@nwlandry).
- Added a new drawing recipe for drawing multiple hypergraphs with the same node positions #535 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 1 year ago
XGI - v0.8.5
- Added the ability to draw hypergraphs and dihypergraphs as bipartite graphs, added a bipartite spring layout, and added the ability to place edge markers at the barycenters of the positions of their member nodes with the
edge_positions_from _barycentersfunction #492 (@nwlandry). - Updated the documentation to include (1) new relevant software packages organized by language, (2) documentation for the encapsulation DAG, (3) new gallery examples, (4) new projects using XGI, and (5) links to the XGI JOSS paper #529 (@nwlandry).
- More intelligible warning for unknown type of degree assortativity #533 (@doabell).
- Formatted the numbers in the XGI-DATA table by locale #532 (@doabell).
- Added a hypergraph random edge shuffle method #531 (@doabell).
- Updated the return type of Katz centrality to be a dictionary and added it as a NodeStat #530 (@nwlandry).
- Made
degree_assortativitywith theexact=Truekeyword reproducible #526 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 2 years ago
XGI - v0.8.4
- Added the ability to supply user-defined functions to
filterbyandfilterby_attr#524 (@nwlandry). - Reorganized the stats tests #525 (@nwlandry).
- Added a recipe for finding the maximal indices based on statistics #522 (@nwlandry).
- Added the ability to argsort stats #521 (@nwlandry).
- Added recipes for flagged triangular lattices and avg. shortest path length #513 (@thomasrobiglio).
- Add
argmaxandargminto the stats interface #518 (@nwlandry). - Updated the list of projects using XGI #519 (@nwlandry).
- Fixed the multilayer warning (Issue #515) that occurs when specifying colors for each node #517 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 2 years ago
XGI - v0.8.3
- Fixed the drawing warning (Issue #499) that occurs when specifying colors for each node #512 (@nwlandry).
- Formatted the tutorial notebooks with isort #502 (@nwlandry).
- Fixed a missing link #503 (@maximelucas).
- Added a workflow to check all the urls in the documentation work #498 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 2 years ago
XGI - v0.8.2
- Added an XGI-DATA page to ReadTheDocs with network statistics #496 (@nwlandry).
- Added syntax highlighting in the tutorials #497 (@thomasrobiglio).
- Changed the xgi-data index location to Github to support the move to Zenodo-hosted datasets #494 (@nwlandry)
- Update the list of publications using XGI #493 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 2 years ago
XGI - v0.8.1
- Added the ability to draw a convex hull as an option in
draw_hyperedges#491 (@maximelucas). - Fixed sphinx documentation errors #487 (@nwlandry).
- Rewrote the
draw_multilayerfunction #486 (@maximelucas). - Updated the "Projects Using XGI" page #489 (@nwlandry).
- Added support for Python 3.12 #488 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.8
- Made
IDViewsrespect edge insertion order in thefrom_viewmethod #482 (@nwlandry). - Fixed issues in drawing functions #476 (@maximelucas).
- Fixed Issue #480 which raised an error when users attempted to set edge properties with an id:value dictionary with an attribute name #481 (@nwlandry).
- Made minor changes and corrections to the tutorials in the documentation #479 (@thomasrobiglio).
- Rewrote the
draw_hyperedges()function to utilize native matplotlib functionality and be more consistent #456 (@maximelucas). - Integrated the tutorials into the documentation #457 (@thomasrobiglio).
- Added an
sparameter to theneighborsmethod for edge overlap #450 (@nwlandry). - Fixed Issue #468 so that the
ashistmethod doesn't try to create multiple bins for stats with a single unique value #473 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.7.4
- Response to PyOpenSci review, fixing Issue #453 among other things #470 (@nwlandry).
- Fixed issues created from merging PR #380 #471 (@nwlandry).
- Added the capability to generate the complement of a hypergraph #380 (@acombretrenouard).
- Fixed the directionality of BiGG reactions (See Issue #458) #459 (@pietrotraversa, @nwlandry).
- Fixed Issue #461 #462 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.7.3
- Added the
ashist()method to the stats module#452 (@nwlandry). - Feature: return the node collections to allow a colorbar corresponding to node colors #441 (@maximelucas).
- Added tutorials: XGI in X minutes #415 (@thomasrobiglio).
- Fixed an empty edge error when loading BiGG data #447 (@nwlandry).
- Changed rho to an optional arg in the HPPM method #446 (@nwlandry).
- Added a
cleanup()method toDiHypergraphandSimplicialComplexand added aconnectedargument to theHypergraphmethod #440 (@nwlandry). - Added encapsulation DAG functionality #444 (@tlarock).
- Refactored the multilayer drawing function to be more standard and added headers to convert module #434 (@nwlandry).
- Added the
weightsoption toto_line_graph()function. #427 (@tlarock). - Added the ability for users to access the optional arguments of NetworkX layout functions. #439 (@nwlandry).
- Fixed Issue #331 #438 (@maximelucas).
- Refactored the draw module #435 (@maximelucas).
- Feature: added the
aspectkeyword for drawing, addressing Issue #430 #432 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.7.2
- Listed the available statistics in the stats module #405 (@thomasrobiglio).
- Implemented functions from this article #400 (@maximelucas).
- Reorganized the
convertmodule #423 (@nwlandry). - Refactored the core data structures and removed the
function.pyfile, moving the functions to other locations #412 (@nwlandry). - Small documentation fixes #422 (@nwlandry).
- Added a webpage listing projects and papers that use XGI #416 (@nwlandry).
- Added an optinion so that only the text in the Jupyter Notebooks counts towards the line counts #417 (@nwlandry).
- Fixed the
_color_arg_to_dictand_scalar_arg_to_dictfunctions so they are more consistent #402 (@nwlandry). - Fixed the IDView.ids type #406 (@leotrs).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.7.1
- Fix: Converting from a
SimplicialComplexto aHypergraphnow adds all of its faces to the hypergraph, not just the maximal faces. Added unit tests for converting betweenHypergraphandSimplicialComplexclasses #399 (@thomasrobiglio). - Moved the list of contributors from the readthedocs, license, setup, etc. into a dedicated file so that when contributors join or leave, we only update a single file. Renamed
CONTRIBUTING.mdtoHOW_TO_CONTRIBUTE.md. #401 (@nwlandry). - Added the ability to convert from a simplex dict to a
SimplicialComplex#397 (@thomasrobiglio). - Updated index.rst to add the
DiHypergraphclass to the quick references #392 (@thomasrobiglio). - Addressed Issue #393 by adding the ability for
draw_hypergraph()to handle nodes with non-integer IDs and isolated nodes. #394 (@thomasrobiglio). - Fixed the short description and landing page on PyPI so that it is more readable #391 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.7
- Added the functionality to load datasets from the BiGG database #384 (@nwlandry).
- Added the
draw_dihypergraph()method to draw directed hypergraphs #387 (@thomasrobiglio). - Changed "an hypergraph" to "a hypergraph" in the docstrings #386 (@acombretrenouard).
- Fixed mathematical expressions that were not represented properly in the docstrings part 2 #382 (@nwlandry).
- Fixed mathematical expressions that were not represented properly in the docstrings #381 (@nwlandry).
- Added the DiHypergraph class, directed view classes, and directed stats classes #372 (@nwlandry).
- Added Katz-centrality algorithm #370 (@acombretrenouard).
- Added the
draw_multilayer()drawing function #369 (@thomasrobiglio). - Fixed
members()andmemberships()methods so that views are read-only #371 (@nwlandry). - Added shortest path algorithms #368 (@acombretrenouard).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 2 years ago
XGI - v0.5.8
- Formatted the codebase with ruff #346 (@leotrs).
- Improved the performance of
flag_complexandrandom_flag_complex#355 (@maximelucas). - Moved the
IDDictclass to utilities and removed unnecessary arguments in theIDViewconstructor #353 (@nwlandry). - Up-versioned sphinx to v6.xxx and up-versioned sphinx-rtd-theme to >= 1.2 to be compatible with Sphinx v6.xxx. Updated the contribution guide and the GH, PyPI, and RTD landing pages #350 (@nwlandry).
- Fixed a bug in the double edge swap method #349 (@nwlandry)
- Updated the convert module methods to be able to return a hypergraph, addressing Issue #327. Now the conversion from a simplicial complex to a hypergraph only includes maximal faces #345 (@thomasrobiglio)
- Place a ceiling on IPython so that it is Python 3.8 compatible #344 (@nwlandry).
- Started fixing the cross references in the "See Also" section in the function/class docstrings #343 (@nwlandry).
- Feature: added complete_hypergraph #337 (@maximelucas).
- Updated the quickstart notebook #338 (@nwlandry).
- Added
strictkeyword to themaximal()method #332 (@nwlandry). - Feature: added trivial hypergraph #335 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 3 years ago
XGI - v0.5.7
- Changed the organization name to
xgi-organd removedcodecovfrom the test requirements file #334 (@nwlandry). - Fix: improved the
degree_countsdocumentation #329 (@maximelucas). - Added the
maximal()method to EdgeView, removed themaximal_simplices()method, and removed a bug from theduplicates()method #324 (@nwlandry). - Fix: documented maxorder in `addsimplices_from()` #328 (@maximelucas).
- Restructured folder for the generators and linalg modules #321 (@maximelucas).
- Added 3 clustering coefficient definitions to the
algorithmsmodule as well as to NodeStats #316 (@nwlandry). - Added the ability to choose whether to output the index-to-ID mappings from
to_bipartite_graph()method. Fixes #322 #323 (@leotrs). - Added the ability to draw hypergraphs with hyperedges as convex hulls #320 (@thomasrobiglio).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 3 years ago
XGI - v0.5.6
- Renamed
convert_to_line_graph()toto_line_graph(), added ansparameter to the function, and added corresponding unit tests #318 (@nwlandry). - Made the sparse warning in the
adjacency_matrix()function more intelligible #315 (@nwlandry). - Added a function for the normalized hypergraph laplacian #314 (@nwlandry).
- Added tests for draw functions #312 (@maximelucas).
- Updated the centrality functions so they more gracefully handle empty and disconnected hypergraphs #313 (@nwlandry).
- Added
keep_isolatesargument to the subhypergraph function #308 (@maximelucas). - Fix: raise error for assortativity of empty hypergraph #307 (@maximelucas).
- Minor: renamed to frommaxsimplices #306 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 3 years ago
XGI - v0.5.5
- Refactored
incidence_matrix()for ~4x speedup, made output consistent for empty matrices, added tests, and refactoredmultiorder_laplacian()so all internal variables are sparse if sparse=True. Fixes #301. #303 (@maximelucas). - Renamed plotting functions,
xgi_pylabmodule, and node/hyperedge/simplex plotting functions. All drawing functions now return axes. Addedpca_transform()to rotate the node positions relative to the principal axes #300 (@nwlandry). - Changed the Github actions to test all notebooks in the tutorial folder #299 (@nwlandry).
- Added the
convert_to_line_graph()function and thevector_centrality()function, which uses it #290 (@goznalo-git). - Fixed the quickstart notebook by updating the synchronization #294 (@nwlandry).
- Added more tests for the layout functions #296 (@maximelucas).
- Added basic tests for layout functions #293 (@maximelucas).
- Added tests for generators #291 (@maximelucas).
- Added the ability to specify sparsity in the matrix functions in the linalg module #284 (@nwlandry).
- Added the
uniform_HSBM()anduniform_HPPMgenerative models #286 (@nwlandry). - Up-versioned requirements to fix #287 and make compatible with NetworkX #288 (@nwlandry).
- Added code coverage with
codecovand displayed coverage on main page #285 (@nwlandry). - Fixed a bug in the
add_edge()method #289 (@nwlandry). - Added examples of sorting matrices by node/edge IDs to the documentation #282 (@nwlandry).
- Added the ability in
draw()to plot any node positions by rescaling the plot area #279 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 3 years ago
XGI - v0.5.3
- Added support for NetworkX 3.0, removed support for Python 3.7, and changed all scipy sparse matrices to scipy sparse arrays #268 (@nwlandry).
- Added the ability to display the list of available datasets in xgi-data with
load_xgi_data()#266 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 3 years ago
XGI - v0.5.2
- Added the
find_triangles()andflag_complex_d2()functions. Theflag_complex_d2()function is much faster thanflag_complex()for simplicial complexes of max order 2. Also refactoredrandom_flag_complex_d2()to useflag_complex_d2()#263 (@maximelucas). - Added the
items()method so NodeStats and EdgeStats are even more dict-like #233 (@leotrs). - Added the ability to cache the output of
load_xgi_data()and added more interpretable errors when the http request fails #261 (@nwlandry). - Deleted the data folder #260 (@nwlandry).
- Split the simulation of the Kuramoto model and its order parameter into two functions #257 (@maximelucas).
- Added the ability to write/read xgi-data datasets to/from a file, and pointed the
load_xgi_data()function to the new xgi-data collection in Gitlab #254 (@acuschwarze). - remove singletons from random generators #256 (@maximelucas).
- Remove references to the disGene dataset in the data folder #253 (@nwlandry).
- Updated the new release process #249 (@nwlandry).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 3 years ago
XGI - v0.5.1
draw()now correctly plots simplicial complexes with themax_orderkeyword #248 (@maximelucas).- Changed the
add_simplexmethod to be non recursive #247 (@maximelucas). - Added tests for the SimplicialComplex class #245 (@maximelucas).
- Made all draw functions available from xgi #246 (@maximelucas).
- Added an indent to make hypergraph json files more readable #242 (@maximelucas).
- Improved the efficiency of the uid update function #239 (@nwlandry).
- Added the ability to display the node and hyperedge labels in
draw()#234 (@mcontisc). - Fixed the uid counter initialisation #225 (@maximelucas).
- Added the ability to pickle hypergraphs #229 (@nwlandry).
- Made
random_hypergraph()andrandom_simplicialcomplex()faster #213 (@maximelucas). - Fixed a bug in
dynamical_assortativity()#230 (@nwlandry). - Removed all random decorators #227 (@nwlandry).
- Modified
unique_edge_sizes()so that the list of sizes is now sorted #226 (@nwlandry). - Added the
merge_duplicate_edges()function to merge multi-edges #210 (@nwlandry). - Partial speed-up of
drawfunction #211 (@iaciac). - Added a simplicial synchronization function #212 (@Marconurisso).
- Sped up the
add_simplices_from()method #223 (@maximelucas). - Updated the
add_simplices_from()method to matchadd_hyperedges_from()#220 (@maximelucas).
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 3 years ago
XGI - v0.5.0
- Fixed #214, added a
powerset()function, added asubfaces()function, and added examples of these functions (#209). - Refactored the NodeStats and EdgeStats classes to be more efficient (#209).
- Implemented set operations for NodeView and EdgeView (#208).
- Addressed #180 with
density()andincidence_density()functions (#204 and #207). - Added the
<<operator to "add" two hypergraphs together (#203). - Improved the documentation (#202).
- Added Python 3.11 to the test suite (#201).
- Added an option to fill only some cliques with probabilities
pstoxgi.flag_complex()(#200). - Fixed Issue #198 (#199).
- Refactored
load_xgi_data()to calldict_to_hypergraph()and fixed a bug indict_to_hypergraph()(#193). - Added
num_edges_order()to get the number of edges of a given order and added anorderparameter to thedegree_counts()function (#192). - Fixed #182 and #186 by adding a
max_orderargument todraw()andload_xgi_data()(#173) . - Made
draw()faster by refactoring_color_arg_to_dict()and_scalar_arg_to_dict()(#173).
Contributors: @leotrs, @maximelucas, and @nwlandry
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.4.3
Hypergraph.has_edgeis nowIDView.lookup,Hypergraph.duplicate_edgesis nowIDView.duplicates, andutilities.convert_labels_to_integeris nowfunction.convert_labels_to_integer(#150).- Added some unit tests for the convert module, the function module, and the classic generators module. Fixed for minor bugs encountered while writing tests and added documentation to Read The Docs for the drawing module. (#153)
- Fixed a bug in
remove_node_from_edge()(#154). - Implemented computation of moments for NodeStat and EdgeStat (#155).
- Implemented weak and strong node removal as per issue #167 (#156).
- Added a dynamics module and created a Kuramoto model synchronization function (#159).
- Added a cleanup method that removes artifacts specified by the user: multi-edges, singletons, isolates. It also can convert all labels to consecutive integers (#161).
- Modified the
duplicates()method to not include the first instance of the node/edge in the list of duplicates (#161). - Converted all instances of edges to sets from lists in response to issue #158 (#162).
- Added lambda function default arguments for $f$, $g$, $\varphi$, $\psi$ as defined by Tudisco and Higham. Default behavior is identical as before. Fixes #132 (#165).
- Added
sum()as a stats method (#168). - Added a benchmarking suite for the core hypergraph data structure using airspeed velocity (#170).
- Fixed issue #171 (#172)
Contributors: @nwlandry, @leotrs, and @saad1282
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.4.2
- Keyword arguments are now consistent in the
draw()function (#148). - Notebooks are now formatted with black and the requirements have been updated to reflect this (#148).
Contributors: @nwlandry
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.4.1
- Added the ability to color nodes and edges in
xgi.draw()by value, iterable, or NodeStat/EdgeStat (#139, #142, and #143). - Fixed the distortion of the node aspect ratio with different figure sizes in Issue #137.
- Moved the
isolates()andsingletons()method from theHypergraphclass to theNodeViewandEdgeViewclasses respectively (#146). - Fixed
Hypergraph.copy()to not use thesubhypergraphmethod (#145). filterby()now acceptsNodeStatandEdgeStatobjects instead of just strings (#144).- Removed edit-mode install to run the Github Actions test suite (#136).
- Added unit tests (#147).
Contributors: @nwlandry, @leotrs, and @maximelucas
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.4
- Added the
statspackage which implementsNodeStat,EdgeStatand related functionality. This package now handles computation of edge size and degree (#120). - Removed the
EdgeSizeViewandDegreeViewclasses (#120). - Changed all imports to be relative in the
xgipackage (#121). - Added an assortativity module (#122).
- Improved the performance of accessing edge members (#124).
- Added more operations for node and edge attributes besides "eq" (#125).
- Added a function to convert all node and edge labels to integers and store the old labels as properties (#127).
- Renamed the
egonetmethod to `edge_neighborhood (#129). - Moved the
neighborsmethod in theHypergraphclass to theIDViewclass so that node and edge neighbors are now supported (PR #129). - Added a centrality module and added these methods to
nodestats.pyandedgestats.py(#130). - Moved the
load_xgi_datamethod to thereadwritemodule (#130). - Added a generator for sunflower hypergraphs (#130).
- Added a Jupyter notebook as a quickstart guide (#131 and #134).
- Fixed a bug in the
barycenter_spring_layoutandweighted_barycenter_spring_layoutmethods to handle non-integer node IDs (#133). - Added an isort configuration file so it no longer sorts the
__init__.pyfiles (#134).
Contributors: @leotrs, @nwlandry, and @iaciac
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.3.1
- Refactored the subhypergraph methods
- Moved functions no related to the core Hypergraph data structure to functions.py
- Removed unnecessary duplicated functions (
n_bunch_iter,get_edge_data, andhas_node) - Refactored the
members()method as well as theNodeViewandEdgeViewclasses for significant speedup. - Github Actions now tests the docstrings and tutorial notebooks
- The
add_edges_frommethod now supports different input formats. - Fixed various bugs in the generative models module.
- A method for double edge swaps is now implemented.
Contributors: @leotrs and @nwlandry
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry over 3 years ago
XGI - v0.3
- Added the ability to convert to and from a NetworkX bipartite graph.
- Removed the
shapeproperty fromHypergraphand renamed thenumber_of_nodes()andnumber_of_edges()methods to thenum_nodesandnum_edgesproperties, respectively. - Added random seed decorator as in NetworkX.
- Added a
SimplicialComplexclass. - Added order and weighted arguments to the
incidence_matrixandadjacency_matrix functions. - Added an
intersection_profilefunction. - Added a
laplacianfunction with argumentorderand amultiorder_laplacianfunction. - Fix: Return an empty array rather than a 1x1 zero array when appropriate.
- Fix: Ensured that the incidence matrix is always has dimensions numnodes x numedges.
- Added 2 generators of random (maximal) simplicial complexes, and toy star-clique generator
- Extensively rewrote the documentation, updating the content and format on Read The Docs.
- Added an egonet function to get the edges neighboring a specified node.
- Added functions to visualize hypergraphs and simplicial complexes.
- Added the ability to get nodes and edges of given degrees/sizes respectively.
- Extended the
members()function to be able to get different data types and to either get a single edge or all edges. - Added the
load_xgi_datafunction to load datasets from the xgi-data repository. - Added two additional tutorials: a tutorial on visualizing higher-order networks and a case study replicating a recent paper.
- Changed the API of
degree_histogramand addeddegree_countsbased on #23. - Refactored the
IDDegreeViewclass and changed the API. Added the ability to specifyorderand the datatype. - Added an abstract class
IDDictto handle data validation.
Contributors: @iaciac @leotrs @lordgrilo @maximelucas @nwlandry @tlarock
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry almost 4 years ago
XGI - v0.2
H[attr]now accesses hypergraph attributesH.nodes[id]now accesses attributes, not bipartite neighbors- Removed the
__call__()functionality fromH.nodesandH.edges H.nodes.memberships(id)andH.edges.members(id)now access the bipartite neighbors- Created base classes for the Node/Edge Views and Degree/Edge Size Views to inherit from.
- Removed the NodeDataView and EdgeDataView.
- Updated the list of developers
__getitem__()in the NodeView and EdgeView are now in a try-except block for greater efficiency.- Removed the name attribute and fixed methods and tests to match.
- Fixed the
erdos_renyi_hypergraph(),chung_lu_hypergraph(), anddcsbm_hypergraph()methods such that the number of nodes will always match the number the user specifies, even if the resulting hypergraph is disconnected. - Changed the construction method from reading in a Pandas DataFrame to using the
add_node_to_edge()method for a 2x speedup. - Added some basic unit tests for the generative models.
- Added the dual keyword for the readbipartiteedgelist() method.
- Added small functions to the Hypergraph class
- Added generator of random hypergraph
- Added functions for finding and removing isolates
- Refactored the
has_edge()method in the Hypergraph class.
Contributors: @leotrs @maximelucas @nwlandry
Scientific Software - Peer-reviewed
- Jupyter Notebook
Published by nwlandry about 4 years ago