{"id":19584900,"url":"https://github.com/archivesunleashed/graphpass","last_synced_at":"2025-09-09T18:09:40.392Z","repository":{"id":56327670,"uuid":"117733980","full_name":"archivesunleashed/graphpass","owner":"archivesunleashed","description":"GraphPass is a utility to filter networks and provide a default visualization output for Gephi or SigmaJS.","archived":false,"fork":false,"pushed_at":"2020-11-14T03:32:24.000Z","size":2275,"stargazers_count":17,"open_issues_count":7,"forks_count":2,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-27T11:42:18.339Z","etag":null,"topics":["c","gephi","gexf","gexf-graph-files","igraph","sigmajs","web-archive-analysis"],"latest_commit_sha":null,"homepage":"https://archivesunleashed.org/","language":"C","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/archivesunleashed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-01-16T19:54:00.000Z","updated_at":"2023-11-24T16:37:55.000Z","dependencies_parsed_at":"2022-08-15T16:40:51.655Z","dependency_job_id":null,"html_url":"https://github.com/archivesunleashed/graphpass","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/archivesunleashed/graphpass","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archivesunleashed%2Fgraphpass","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archivesunleashed%2Fgraphpass/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archivesunleashed%2Fgraphpass/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archivesunleashed%2Fgraphpass/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/archivesunleashed","download_url":"https://codeload.github.com/archivesunleashed/graphpass/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/archivesunleashed%2Fgraphpass/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274340300,"owners_count":25267293,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","gephi","gexf","gexf-graph-files","igraph","sigmajs","web-archive-analysis"],"created_at":"2024-11-11T07:51:32.014Z","updated_at":"2025-09-09T18:09:40.346Z","avatar_url":"https://github.com/archivesunleashed.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GraphPass\n[![codecov](https://codecov.io/gh/archivesunleashed/graphpass/branch/main/graph/badge.svg)](https://codecov.io/gh/archivesunleashed/graphpass)\n[![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)\n[![LICENSE](https://img.shields.io/badge/license-Apache-blue.svg?style=flat-square)](./LICENSE)\n\n![GraphPass in action](https://user-images.githubusercontent.com/3834704/35356808-87152cf0-011f-11e8-9264-9c411ca16b3e.png)\n\nGraphPass is a utility to filter networks and provide a default\nvisualization output for [Gephi](https://gephi.org/) or [SigmaJS](https://sigmaja.org). It prevents the infamous \"borg cube\" result when entering large files into Gephi, allowing you to work with ready-made network layouts.\n\n## Installation\n\n### Dependencies\n\nThis utility requires the [C Igraph Library](http://igraph.org/c/) and\na C compiler, such as [gcc](https://gcc.gnu.org/).\n\n#### For Linux (Ubuntu):\n\nInstall the igraph dependencies:\n\n```\nsudo apt-get install git gcc libxml2-dev build-essential\nwget http://igraph.org/nightly/get/c/igraph-0.7.1.tar.gz\ntar -xvzf igraph-0.7.1.tar.gz\ncd igraph-0.7.1\n./configure\nmake\nsudo make install\nsudo ldconfig\n```\n\nYou can test that gcc and igraph have been installed properly by using:\n\n```\ngcc -ligraph\n```\n\nIf you get `undefined reference to 'main'` that means Linux is looking for\ngraphpass and you are ready to go.\n\nIf you get `cannot find -ligraph` then something went wrong with the install.\n\nCheck through the logs to see what failed to install.\n\nIf desired remove the igraph directory:\n\n```\ncd ..\nrm -rf igraph-0.7.1\n```\n\n#### For MacOS:\n\nUsing [brew](https://brew.sh/), the following commands will install dependencies:\n\n```\nbrew install gcc\nbrew install igraph\n```\n\nType\n\n```\nbrew info igraph\n```\n\nand verify that the path displayed there matches the default `IGRAPH_PATH` value provided in the Makefile. By default this is `/usr/local/Cellar/igraph/0.7.1_6/` for MacOS.\n\n### Building\n\nGo to your preferred install directory, for example:\n\n```\ncd /Users/{USERNAME}/\n```\n\nClone the repository with:\n\n```\ngit clone https://github.com/archivesunleashed/graphpass\n```\n\nThen\n\n```\ncd graphpass\nmake\n```\n\n## Usage\n\nOnce compiled use the following command:\n\n```\n./graphpass {INPUT PATH} {OUTPUT PATH} {FLAGS}\n```\n\nThe following flags are available:\n\n* `--input {FILEPATH} or -i` - The filepath of the file to run GraphPass on. If not set, GraphPass will use\na default network in `src/resources`. This will override the value in `{INPUT PATH}`.\n* `--output {FILEPATH} or -o` - The filepath for outputs, overriding `{OUTPUT PATH}`. If the output path contains a filename, GraphPass will use that, otherwise it will default to the filename provided in `{INPUT PATH}`. Unless the quickpass (`-q`) is selected, the filename will also be altered to show the percentage filtered from the graph and the method used.\n* `--percent {PERCENT} or -p` - a percentage to remove from the file. By default this is 0.0.\n* `--method {options} or -m` - a string of various methods through which to filter the\ngraph.\n* `--quick or -q` - GraphPass will run a basic set of algorithms for visualization with no filtering. The filename will be the same as the input filename.\n* `--gexf or -g` - GraphPass will return the graph output in gexf (good for SigmaJS) instead of graphml.\n* `--max-nodes {Value}` - Change default maximum number of nodes that GraphPass will accept. By default this is 50,000. Values larger than 50k may cause GraphPass to use up a computer's memory.\n* `--max-edges {Value}` - Change default maximum number of edges that GraphPass will accept. By default this is 500,000. Values larger than 500k are unlikely to cause significant delays in computation time, but could result in memory issue upon visualization in Gephi or SigmaJS.\n\nThese various methods are outlined below:\n\n* `a` : authority\n* `b` : betweenness\n* `d` : simple degree\n* `e` : eigenvector\n* `h` : hub\n* `i` : in-degree\n* `o` : out-degree\n* `p` : pagerank\n* `r` : random\n\nFor example:\n\n```\n./graphpass /path/to/links-for-gephi.graphml --percent 10 --methods b /path/to/output_filename\n```\n\nWill remove 10% of the graph using betweenness as a cutting measure and lay the network out. It will find `links-for-gephi.graphml` file in `path/to/input` and output a new one to `/path/to/output_filename.graphml` (titled `output_filename10Betweenness.graphml`).\n\n# Optional arguments\n\n* `--report` or `-r` : create an output report showing the impact of filtering on graph features.\n* `--no-save` or `-n` : does not save any filtered files (useful if you just want a report).\n\n# Troubleshooting\n\nIt is possible that you can get a \"error while loading shared libraries\" error in Linux. If so, try running `sudo ldconfig` to set the libraries path for your local installation of igraph.\n\n# License\n\nLicensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\n# Acknowledgments\n\nThis work is primarily supported by the [Andrew W. Mellon Foundation](https://uwaterloo.ca/arts/news/multidisciplinary-project-will-help-historians-unlock). Additional funding for the utility has come from the Social Sciences and Humanities Research Council of Canada, the Ontario Ministry of Research and Innovation's Early Researcher Award program, and the David R. Cheriton School of Computer Science at the University of Waterloo.\n\nThe author would also like to thank Drs. Ian Milligan \u0026 Jimmy Lin plus Nick Ruest and Samantha Fritz for their kind advice and support.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchivesunleashed%2Fgraphpass","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farchivesunleashed%2Fgraphpass","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farchivesunleashed%2Fgraphpass/lists"}