{"id":13592406,"url":"https://github.com/beringresearch/ivis","last_synced_at":"2025-12-25T01:49:04.227Z","repository":{"id":43319038,"uuid":"144551119","full_name":"beringresearch/ivis","owner":"beringresearch","description":"Dimensionality reduction in very large datasets using Siamese Networks","archived":false,"fork":false,"pushed_at":"2023-11-09T23:19:49.000Z","size":37006,"stargazers_count":315,"open_issues_count":4,"forks_count":42,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-04-24T13:10:36.915Z","etag":null,"topics":["data-visualization","dimensionality-reduction","machine-learning","neural-network","siamese-neural-network"],"latest_commit_sha":null,"homepage":"https://beringresearch.github.io/ivis/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/beringresearch.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","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":"2018-08-13T08:31:01.000Z","updated_at":"2024-06-09T04:41:49.909Z","dependencies_parsed_at":"2024-01-14T04:40:28.909Z","dependency_job_id":"fbdd866f-3d30-4465-b80b-7852673ef403","html_url":"https://github.com/beringresearch/ivis","commit_stats":{"total_commits":533,"total_committers":10,"mean_commits":53.3,"dds":0.50093808630394,"last_synced_commit":"9ab64f5f24a216d864d4000f9489d14313ffa396"},"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beringresearch%2Fivis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beringresearch%2Fivis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beringresearch%2Fivis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/beringresearch%2Fivis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/beringresearch","download_url":"https://codeload.github.com/beringresearch/ivis/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223346723,"owners_count":17130485,"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":["data-visualization","dimensionality-reduction","machine-learning","neural-network","siamese-neural-network"],"created_at":"2024-08-01T16:01:08.907Z","updated_at":"2025-12-25T01:49:04.172Z","avatar_url":"https://github.com/beringresearch.png","language":"Python","readme":"[![DOI](https://joss.theoj.org/papers/10.21105/joss.01596/status.svg)](https://doi.org/10.21105/joss.01596) [![DOI](https://zenodo.org/badge/144551119.svg)](https://zenodo.org/badge/latestdoi/144551119) [![Documentation Status](https://github.com/beringresearch/ivis/workflows/documentation/badge.svg)](https://beringresearch.github.io/ivis/) [![Downloads](https://pepy.tech/badge/ivis)](https://pepy.tech/project/ivis) [![Build Status](https://github.com/beringresearch/ivis/workflows/test/badge.svg)](https://github.com/beringresearch/ivis/actions/workflows/test.yml)\n\n# ivis\n\nImplementation of the ivis algorithm as described in the paper [Structure-preserving visualisation of high dimensional single-cell datasets](https://www.nature.com/articles/s41598-019-45301-0). Ivis is designed to reduce dimensionality of very large datasets using a siamese neural network trained on triplets. Both unsupervised and supervised modes are supported.\n\n![ivis 10M data points](https://github.com/beringresearch/ivis/blob/master/docs/_static/parity_primes_ivis_1e7_16k_smaller_pts.png)\n\n\n## Installation\n\nIvis runs on top of TensorFlow. To install the latest ivis release from PyPi running on the CPU TensorFlow package, run:\n\n```\n# TensorFlow 2 packages require a pip version \u003e19.0.\npip install --upgrade pip\n```\n\n```\npip install ivis[cpu]\n```\n\nIf you have CUDA installed and want ivis to use the tensorflow-gpu package, run\n\n```\npip install ivis[gpu]\n```\n\nDevelopment version can be installed directly from from github:\n\n```\ngit clone https://github.com/beringresearch/ivis\ncd ivis\npip install -e '.[cpu]'\n```\n\nThe following **optional dependencies** are needed if using the visualization callbacks while training the Ivis model:\n- matplotlib\n- seaborn\n\n## Upgrading\n\nTo upgrade, run:\n\n```\npip install ivis --upgrade\n```\n\n## Features\n* __Scalable:__ ivis is fast and easily extends to millions of observations and thousands of features. \n* __Versatile:__ numpy arrays, sparse matrices, and hdf5 files are supported out of the box. Additionally, both categorical and continuous features are handled well, making it easy to apply ivis to heterogeneous problems including clustering and anomaly detection.\n* __Accurate:__ ivis excels at preserving both local and global features of a dataset. Often, ivis performs better at preserving global structure of the data than t-SNE, making it easy to visualise and interpret high-dimensional datasets.\n* __Generalisable:__ ivis supports addition of new data points to original embeddings via a `transform` method, making it easy to incorporate ivis into standard sklearn Pipelines.\n\nAnd many more! See [ivis readme](https://bering-ivis.readthedocs.io) for latest additions and examples.\n \n## Examples\n\n```\nfrom ivis import Ivis\nfrom sklearn.preprocessing import MinMaxScaler\nfrom sklearn import datasets\n\niris = datasets.load_iris()\nX = iris.data\nX_scaled = MinMaxScaler().fit_transform(X)\n\nmodel = Ivis(embedding_dims=2, k=15)\n\nembeddings = model.fit_transform(X_scaled)\n```\n\nCopyright 2024 Bering Limited\n","funding_links":[],"categories":["Software packages","数据可视化"],"sub_categories":["RNA-seq"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberingresearch%2Fivis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fberingresearch%2Fivis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fberingresearch%2Fivis/lists"}