{"id":15253741,"url":"https://github.com/cytoflow/cytoflow","last_synced_at":"2025-04-04T23:10:09.208Z","repository":{"id":25184790,"uuid":"28608092","full_name":"cytoflow/cytoflow","owner":"cytoflow","description":"A Python toolbox for quantitative, reproducible flow cytometry analysis","archived":false,"fork":false,"pushed_at":"2024-08-28T23:55:49.000Z","size":158742,"stargazers_count":171,"open_issues_count":65,"forks_count":49,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-10-30T20:49:06.479Z","etag":null,"topics":["analysis","data-driven","flow-cytometry-analysis","fluorescence","gate","jupyter","mixture-modeling","notebooks","python","scientific-computing","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","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/cytoflow.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2014-12-29T22:05:04.000Z","updated_at":"2024-10-09T13:32:00.000Z","dependencies_parsed_at":"2022-07-24T04:32:25.947Z","dependency_job_id":"b7189397-df6a-4905-b60c-0594089a3570","html_url":"https://github.com/cytoflow/cytoflow","commit_stats":{"total_commits":2762,"total_committers":15,"mean_commits":"184.13333333333333","dds":"0.47719044170890657","last_synced_commit":"85f476540e33bde1caaf9f72356eb4d92a5d31b2"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytoflow%2Fcytoflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytoflow%2Fcytoflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytoflow%2Fcytoflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cytoflow%2Fcytoflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cytoflow","download_url":"https://codeload.github.com/cytoflow/cytoflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247261612,"owners_count":20910108,"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":["analysis","data-driven","flow-cytometry-analysis","fluorescence","gate","jupyter","mixture-modeling","notebooks","python","scientific-computing","workflow"],"created_at":"2024-09-29T22:00:53.659Z","updated_at":"2025-04-04T23:10:09.187Z","avatar_url":"https://github.com/cytoflow.png","language":"Python","funding_links":["https://ko-fi.com/bteague"],"categories":[],"sub_categories":[],"readme":"# Cytoflow\n\n## Python tools for quantitative, reproducible flow cytometry analysis\n\nWelcome to a different style of flow cytometry analysis.  Take a look at some example [Jupyter](http://jupyter.org/) notebooks:\n\n* [Basic flow cytometry analysis](https://github.com/cytoflow/cytoflow/blob/master/docs/examples-basic/Basic%20Cytometry.ipynb)\n* [An small-molecule induction curve with yeast](https://github.com/cytoflow/cytoflow/blob/master/docs/examples-basic/Yeast%20Dose%20Response.ipynb)\n* [Machine learning applied to flow cytometry data](https://github.com/cytoflow/cytoflow/blob/master/docs/examples-basic/Machine%20Learning.ipynb)\n* [Reproduced analysis from a published paper](https://github.com/cytoflow/cytoflow-examples/blob/master/kiani/Kiani%20Nature%20Methods%202014.ipynb)\n* [A multi-dimensional induction in yeast](https://github.com/cytoflow/cytoflow-examples/blob/master/yeast/Induction%20Timecourse.ipynb)\n* [Calibrated flow cytometry](https://github.com/cytoflow/cytoflow-examples/blob/master/tasbe/TASBE%20Workflow.ipynb)\n\nor some [screenshots from the GUI](http://cytoflow.github.io/screenshots.html)\n\n## Cytoflow is developed sporadically. \n\nMy 'day job' is teaching at a regional comprehensive college, so during the semester I may not have a huge amount of time to respond to bugs and feature requests. I'm still activately developing Cytoflow, so please continue to file bugs!\n\n## Cytoflow's development isn't free -- your support is appreciated.\n\nI pay several hundred dollars a year to sign the code so it can be installed on Windows and Mac systems. If you have found it useful, consider [contributing a few dollars on Ko-Fi?](https://ko-fi.com/bteague)\n\n### What's wrong with other packages?  \n\nPackages such as FACSDiva and FlowJo are focused on primarily on identifying\nand counting subpopulations of cells in a multi-channel flow cytometry\nexperiment.  While this is important for many different applications, it\nreflects flow cytometry's origins in separating mixtures of cells based on\ndifferential staining of their cell surface markers.\n\nCytometers can also be used to measure internal cell state, frequently as\nreported by fluorescent proteins such as GFP.  In this context, they function\nin a manner similar to a high-powered plate-reader: instead of reporting the\nsum fluorescence of a population of cells, the cytometer shows you the\n*distribution* of the cells' fluorescence.  Thinking in terms of distributions,\nand how those distributions change as you vary an experimental variable, is\nsomething existing packages don't handle gracefully.\n\n### What's different about Cytoflow?\n\nA few things.\n\n* **Free and open-source.**  Use the software free-of-charge; modify it to\n  suit your own needs, then contribute your changes back so the rest of the\n  community can benefit from them.\n\n* A [**point-and-click interface**](http://cytoflow.github.io/) for\n  easy analysis.\n\n* **Python modules** to integrate into larger apps, automation, or for use in\n  a [Jupyter notebook](http://jupyter.org/)\n\n* An emphasis on **metadata**.  Cytoflow assumes that you are measuring\n  fluorescence on several samples that were treated differently: either\n  they were collected at different times, treated with varying levels\n  of inducers, etc.  You specify the conditions for each sample up front,\n  then use those conditions to facet the analysis.\n\n* Cytometry analysis conceptualized as a **workflow**.  Raw cytometry data\n  is usually not terribly useful: you may gate out cellular debris and \n  aggregates (using FSC and SSC channels), then compensate for channel\n  bleed-through, and finally select only transfected cells before actually\n  looking at the parameters you're interested in experimentally.  Cytoflow\n  implements a workflow paradigm, where operations are applied sequentially;\n  a workflow can be saved and re-used, or shared with your coworkers.\n\n* **Easy to use.**  Sane defaults; good documentation; focused on doing one\n  thing and doing it well.\n\n* **Good visualization.**  I don't know about you, but I'm getting really\n  tired of FACSDiva plots.\n\n* **Versatile.**  Built on Python, with a well-defined library of operations \n  and visualizations that are well separated from the user interface.  Need an \n  analysis that Cytoflow doesn't have?  Export your workflow to a Jupyter \n  notebook and use any Python module you want to complete your analysis.  Data \n  is stored in a `pandas.DataFrame`, which is rapidly becoming the standard for \n  Python data analysis (and will make R users feel right at home.)\n  \n* **Extensible.**  [Adding a new analysis or visualization module](http://cytoflow.readthedocs.io/en/stable/new_modules.html) \n  is simple; the interface to implement is only two or three functions.  \n\n* **Quantitative and statistically sound.** Ready access to useful data-driven tools for\n  analysis, such as fitting 2-dimensional Gaussians for automated gating\n  and mixture modeling.\n\n### Installation\n\n**If you just want the point-and-click version (not the Python modules), you \n  can install it from http://cytoflow.github.io/**\n\nSee the [installation notes](http://cytoflow.readthedocs.org/en/stable/INSTALL.html) \non [ReadTheDocs](http://cytoflow.readthedocs.org/).  Installation has been \ntestedon Linux, Windows (x86_64) and Mac (both Intel and Apple Silicon).  \nCytoflow is distributed as an [Anaconda](https://www.anaconda.com/) package \n**(recommended)** as well as a [traditional Python package](https://pypi.org/project/cytoflow/).\n\n### Documentation\n\nCytoflow's documentation lives at [ReadTheDocs](http://cytoflow.readthedocs.org/).\nPerhaps of most use is the [module index](http://cytoflow.readthedocs.org/en/latest/py-modindex.html).\nThe example [Jupyter](http://jupyter.org/) notebooks, above, demonstrate how the package\nis intended to be used interactively.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytoflow%2Fcytoflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcytoflow%2Fcytoflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcytoflow%2Fcytoflow/lists"}