{"id":20727985,"url":"https://github.com/alireza-87/socialnetgraphanonymization","last_synced_at":"2026-04-28T14:34:24.958Z","repository":{"id":90408054,"uuid":"248200790","full_name":"alireza-87/SocialNetGraphAnonymization","owner":"alireza-87","description":"Socialnetwork graph anonymization by perturbation","archived":false,"fork":false,"pushed_at":"2020-03-18T11:28:47.000Z","size":455,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-03T18:58:20.232Z","etag":null,"topics":["conda-environment","dataprivacy","dataprotection","matplotlib","networkx","python","python2"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alireza-87.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2020-03-18T10:27:56.000Z","updated_at":"2023-02-18T08:10:23.000Z","dependencies_parsed_at":"2023-05-12T06:00:47.139Z","dependency_job_id":null,"html_url":"https://github.com/alireza-87/SocialNetGraphAnonymization","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/alireza-87/SocialNetGraphAnonymization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza-87%2FSocialNetGraphAnonymization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza-87%2FSocialNetGraphAnonymization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza-87%2FSocialNetGraphAnonymization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza-87%2FSocialNetGraphAnonymization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alireza-87","download_url":"https://codeload.github.com/alireza-87/SocialNetGraphAnonymization/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alireza-87%2FSocialNetGraphAnonymization/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32385186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["conda-environment","dataprivacy","dataprotection","matplotlib","networkx","python","python2"],"created_at":"2024-11-17T04:35:09.404Z","updated_at":"2026-04-28T14:34:24.940Z","avatar_url":"https://github.com/alireza-87.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SocialNetGraphAnonymization\nSocialnetwork graph anonymization by perturbation  \nDevelopment Enviroment:  \n\n* VsCode\n* Python 3.7.6\n* Ubuntu\n* mini-conda venv\n* Xming(if you want to develop in WSL)\n* Dependencies\n  * matplotlib\n  * networkx-2.2\n  * numpy\n\nThe repository contain a sample dataset.gml however you can set your own dataset while the app running  \nHow Algorithm work:  \n1. Anonymize graph by naive\n1. remove and add some connection randomly\n1. plot removed connection\n1. plot added connection\n1. plot final graph\n1. display graph info\n\nAdd and remove connection to the graph is done by probability:\n1. Generate a random number\n1. if the number below our expectation then add or remove a random conncetin\n1. we execute this step for all nodes in graph\n\nWe start from 10% and increase the probeblity to 100%, as you will see , by increasing the probeblity more data will be lose  \nIn 100% probeblity our graph will be a random graph, however, the nodes never change \n  \nOrginal Graph:    \n![Orginal Graph](/image/orginal.png)  \nadd 10%:  \n![added_10](/image/added_10.png)  \nremove 10%:  \n![removed_10](/image/removed_10.png)  \nfinal 10%:  \n![final_10](/image/final_10.png)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falireza-87%2Fsocialnetgraphanonymization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falireza-87%2Fsocialnetgraphanonymization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falireza-87%2Fsocialnetgraphanonymization/lists"}