EasyFlowQ 1.4.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- easyflowq-1.4.8/.gitignore +26 -0
- easyflowq-1.4.8/LICENSE +21 -0
- easyflowq-1.4.8/PKG-INFO +52 -0
- easyflowq-1.4.8/docs/Basic Usage.md +39 -0
- easyflowq-1.4.8/docs/LICENSE.md +21 -0
- easyflowq-1.4.8/docs/README.md +31 -0
- easyflowq-1.4.8/docs/Tutorial.md +1 -0
- easyflowq-1.4.8/main.py +4 -0
- easyflowq-1.4.8/mkdocs.yml +8 -0
- easyflowq-1.4.8/pyproject.toml +49 -0
- easyflowq-1.4.8/release/IF_win.ifp +0 -0
- easyflowq-1.4.8/release/environment_mac.yml +74 -0
- easyflowq-1.4.8/release/environment_win.yml +0 -0
- easyflowq-1.4.8/release/pyi_mac.sh +23 -0
- easyflowq-1.4.8/release/pyi_mac.spec +48 -0
- easyflowq-1.4.8/release/pyi_win.ps1 +2 -0
- easyflowq-1.4.8/release/pyi_win.spec +44 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/README.md +2 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/ReadmeLicense/README.rst +24 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/ReadmeLicense/license.txt +21 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/__init__.py +17 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/excel_ui.py +1593 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/gate.py +584 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/io.py +2248 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/mef.py +1208 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/plot.py +3863 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/stats.py +316 -0
- easyflowq-1.4.8/src/EasyFlowQ/FlowCal/transform.py +338 -0
- easyflowq-1.4.8/src/EasyFlowQ/__init__.py +0 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/__init__.py +0 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/comp.py +169 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/efio.py +329 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/gates.py +650 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/plotWidgets.py +449 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/qtModels.py +315 -0
- easyflowq-1.4.8/src/EasyFlowQ/backend/utils.py +48 -0
- easyflowq-1.4.8/src/EasyFlowQ/localSettings.default.json +6 -0
- easyflowq-1.4.8/src/EasyFlowQ/main_entry.py +64 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/AboutWindow.ui +50 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWindow.ui +115 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWizard.ui +374 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWizard_SmplAssignBox.ui +40 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow.ui +916 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_FigOptions.py +186 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_FigOptions.ui +675 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_SmplSect.py +167 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_SmplSect.ui +162 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/RenameWindow_CF.ui +97 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/RenameWindow_Map.ui +83 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/SettingsWindow.ui +209 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/StatWindow.ui +116 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/__init__.py +0 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/PelatteIcon2.tif +0 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/qt_resource.qrc +5 -0
- easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/qt_resource_rc.py +146 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_About.py +14 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_Comp.py +176 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_Main.py +877 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_RenameCF.py +207 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_RenameMap.py +88 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_Settings.py +112 -0
- easyflowq-1.4.8/src/EasyFlowQ/window_Stats.py +210 -0
- easyflowq-1.4.8/src/EasyFlowQ/wizard_Comp.py +427 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
|
|
4
|
+
# temp and release files
|
|
5
|
+
_temp/*
|
|
6
|
+
release/*
|
|
7
|
+
!release/pyi_mac.sh
|
|
8
|
+
!release/pyi_win.ps1
|
|
9
|
+
!release/pyi_mac.spec
|
|
10
|
+
!release/pyi_win.spec
|
|
11
|
+
!release/IF_win.ifp
|
|
12
|
+
!release/environment_win.yml
|
|
13
|
+
!release/environment_mac.yml
|
|
14
|
+
|
|
15
|
+
# local stuff
|
|
16
|
+
.vscode/
|
|
17
|
+
.DS_store
|
|
18
|
+
localSettings.user.json
|
|
19
|
+
TestEnv/
|
|
20
|
+
|
|
21
|
+
# data that is too large
|
|
22
|
+
demoSamples/CompDemo/*
|
|
23
|
+
|
|
24
|
+
# mkdocs related
|
|
25
|
+
site/
|
|
26
|
+
docs/img/DocImages.afdesign
|
easyflowq-1.4.8/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Yitong Ma
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
easyflowq-1.4.8/PKG-INFO
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
|
+
Name: EasyFlowQ
|
|
3
|
+
Version: 1.4.8
|
|
4
|
+
Summary: User-friendly flow cytometry analyzer with (GUI)
|
|
5
|
+
Project-URL: Homepage, https://github.com/ym3141/EasyFlowQ
|
|
6
|
+
Project-URL: Issues, https://github.com/ym3141/EasyFlowQ/issues
|
|
7
|
+
Author-email: Yitong Ma <yitongma7@gmail.com>
|
|
8
|
+
License-File: LICENSE
|
|
9
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
10
|
+
Classifier: Operating System :: OS Independent
|
|
11
|
+
Classifier: Programming Language :: Python :: 3
|
|
12
|
+
Requires-Python: >=3.9
|
|
13
|
+
Requires-Dist: matplotlib>=3.5
|
|
14
|
+
Requires-Dist: numpy>=1.21
|
|
15
|
+
Requires-Dist: pandas>=1.5
|
|
16
|
+
Requires-Dist: pyqt5>=5.9
|
|
17
|
+
Requires-Dist: scipy>=1.7
|
|
18
|
+
Requires-Dist: seaborn
|
|
19
|
+
Requires-Dist: xlsxwriter
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
# Welcome to EasyFlowQ
|
|
23
|
+
EasyFlowQ is an open-source, user-friendly flow cytometry analyzer with graphic user interface (GUI).
|
|
24
|
+
For full documentation and tutorials, visit [EasyFlowQ's Documentation Site](https://ym3141.github.io/EasyFlowQ/).
|
|
25
|
+
|
|
26
|
+
## Overview
|
|
27
|
+
A user friendly GUI interface for analyzing flow cytometry data. The program is implemented by Qt/Python, and its UI logics are largely influenced by the original matlab version of [EasyFlow (by @ayaron)](https://github.com/AntebiLab/easyflow). The fcs file parser is based on the [FlowCal package](https://github.com/taborlab/FlowCal), with slight modification for implementing into the GUI. The standalone installers are packaged by [PyInstaller](https://pyinstaller.org/en/stable/) and [InstallForge](https://installforge.net/).
|
|
28
|
+
|
|
29
|
+
## Download and usage
|
|
30
|
+
|
|
31
|
+
You can either install EasyFlowQ via the provided installers, or run it directly with python ([Anaconda](https://www.anaconda.com/) installation required).
|
|
32
|
+
|
|
33
|
+
#### **Method #1:** Use the provided installer (Windows or MacOS)
|
|
34
|
+
|
|
35
|
+
Please refer to [release page](https://github.com/ym3141/EasyFlowQ/releases/) (see below) to download the latest standalone packages for your operating system (MacOS or Windows) and install EasyFlowQ. In most case, you should be able to run it without other dependency.
|
|
36
|
+
|
|
37
|
+
*Special note for MacOS users: you will need to ctrl/right-click the app and select open for the first time after you put the app into the "Application" folder. The system will remember it as an exception for later time (see [here](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac)).*
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
#### **Method #2:** Run from python (a python installation is needed)
|
|
42
|
+
|
|
43
|
+
For running the program from the source, download the whole code and run the command below. Standard Anaconda should be sufficient for running the program.
|
|
44
|
+
```
|
|
45
|
+
Path/To/Folder$ python ./main.py
|
|
46
|
+
```
|
|
47
|
+
## First time startup
|
|
48
|
+
For first time startup settings, please goto our [usage page](https://ym3141.github.io/EasyFlowQ/Basic%20Usage/#first-time-setup).
|
|
49
|
+
|
|
50
|
+
## Contact
|
|
51
|
+
For more info please contact <yitongma7@gmail.com>. If you use *EasyFlowQ* in your research, we would appreciate citation to the following preprint:
|
|
52
|
+
> Ma, Y., & Antebi, Y. (2023). EasyFlow: An open source, user friendly cytometry analyzer with graphic user interface (GUI). bioRxiv, 2023-08.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Basic usage
|
|
2
|
+
|
|
3
|
+
This page will describe the basics of using EasyFlowQ, including basic settings, loading sessions and FCS files, as well as basic analysis method. For more examples, please visit our [Tutorial](Tutorial.md) page.
|
|
4
|
+
|
|
5
|
+
## First time setup
|
|
6
|
+
|
|
7
|
+
Upon the first time start, EasyFlowQ will greet you with the setting window (see below). If this is your first time using EasyFlowQ, we recommend you only change the first setting (**Default fcs directory**). Click browse and select the top-most folder that you normally keep your flow cytometry data. The EasyFlowQ will always open this directory when you load sessions or fcs files, and it will speed up your analysis workflow.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
The other settings you can change in this page include:
|
|
12
|
+
|
|
13
|
+
- **Limit total number of dots**: Decrease the number if refreshing of dot plot is slow.
|
|
14
|
+
- **Plot DPI scaling**: Tweak this if your plots' font and marks are unreasonably small or large. Generally tweak this number up will make font larger. *This is only applied to the plotting region!*
|
|
15
|
+
|
|
16
|
+
Click the "Default" button if you want to reset all settings to default.
|
|
17
|
+
|
|
18
|
+
If you encounter a "Permission Error" pop up after clicking "OK". That suggest you likely do not have the permission to write in the installed directory. The settings are not saved but you can continue to use the program and do analysis. To correct this, run the program as administrator.
|
|
19
|
+
|
|
20
|
+
Don't worry if you missed this. This setting window is always available in the "settings" menu.
|
|
21
|
+
|
|
22
|
+
## Simple analysis workflow
|
|
23
|
+
Here we list some of the basic operations for a simple analysis:
|
|
24
|
+
|
|
25
|
+
1. **Load sample:** To load samples, on the click Data -> Load data files (or simply Ctrl+L). You can load multiple files, and a list of data will be shown on the left.
|
|
26
|
+
2. **Change sample names:** Double click on the samples to change the sample's name.
|
|
27
|
+
3. **Plotting:** Select the samples you want to plot on the main plotting region. Yes, it support multi-selection.
|
|
28
|
+
4. **Change color:** To change colors of your sample, click the "Sample color" button on the top panel. Note that all the samples that are currently selected will be affected by your color change.
|
|
29
|
+
5. **Tweak plot properties:** You can change how the figures are plotted in the plotting option panel in the lower-right conner. EasyFlowQ support bot dot plots, and histograms, as well as customizable plotting ranges, axes scales, normalization and smoothing. More plot types like stacked histogram and density plots are on our developing road map.
|
|
30
|
+
6. **Choose plot axises:** You can choose what channel(s) are plotted in the top panel. Note that the y-axis option is ignored in histogram mode.
|
|
31
|
+
7. **Save the plot:** The plot can be save by clicking on the "Save" icon on top of the plot. Several types of image formats (png, jpg, pdf...) are supported.
|
|
32
|
+
8. **Save the session**: You can save the analysis session by using the "Save session" function in the menu (or simple Ctrl+S). We recommend put the session file in the same directory as your fcs files, or one level up.
|
|
33
|
+
|
|
34
|
+
Below you can see an annotated screenshot about the operations mentioned above.
|
|
35
|
+
|
|
36
|
+

|
|
37
|
+
|
|
38
|
+
## Batch rename samples with xlsx
|
|
39
|
+
Renaming samples from a high throughput experiment setup can be time consuming. EasyflowQ provides two methods to batch
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Yitong Ma
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Welcome to EasyFlowQ
|
|
2
|
+
EasyFlowQ is an open-source, user-friendly flow cytometry analyzer with graphic user interface (GUI).
|
|
3
|
+
For full documentation and tutorials, visit [EasyFlowQ's Documentation Site](https://ym3141.github.io/EasyFlowQ/).
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
A user friendly GUI interface for analyzing flow cytometry data. The program is implemented by Qt/Python, and its UI logics are largely influenced by the original matlab version of [EasyFlow (by @ayaron)](https://github.com/AntebiLab/easyflow). The fcs file parser is based on the [FlowCal package](https://github.com/taborlab/FlowCal), with slight modification for implementing into the GUI. The standalone installers are packaged by [PyInstaller](https://pyinstaller.org/en/stable/) and [InstallForge](https://installforge.net/).
|
|
7
|
+
|
|
8
|
+
## Download and usage
|
|
9
|
+
|
|
10
|
+
You can either install EasyFlowQ via the provided installers, or run it directly with python ([Anaconda](https://www.anaconda.com/) installation required).
|
|
11
|
+
|
|
12
|
+
#### **Method #1:** Use the provided installer (Windows or MacOS)
|
|
13
|
+
|
|
14
|
+
Please refer to [release page](https://github.com/ym3141/EasyFlowQ/releases/) (see below) to download the latest standalone packages for your operating system (MacOS or Windows) and install EasyFlowQ. In most case, you should be able to run it without other dependency.
|
|
15
|
+
|
|
16
|
+
*Special note for MacOS users: you will need to ctrl/right-click the app and select open for the first time after you put the app into the "Application" folder. The system will remember it as an exception for later time (see [here](https://support.apple.com/guide/mac-help/open-a-mac-app-from-an-unidentified-developer-mh40616/mac)).*
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
#### **Method #2:** Run from python (a python installation is needed)
|
|
21
|
+
|
|
22
|
+
For running the program from the source, download the whole code and run the command below. Standard Anaconda should be sufficient for running the program.
|
|
23
|
+
```
|
|
24
|
+
Path/To/Folder$ python ./main.py
|
|
25
|
+
```
|
|
26
|
+
## First time startup
|
|
27
|
+
For first time startup settings, please goto our [usage page](https://ym3141.github.io/EasyFlowQ/Basic%20Usage/#first-time-setup).
|
|
28
|
+
|
|
29
|
+
## Contact
|
|
30
|
+
For more info please contact <yitongma7@gmail.com>. If you use *EasyFlowQ* in your research, we would appreciate citation to the following preprint:
|
|
31
|
+
> Ma, Y., & Antebi, Y. (2023). EasyFlow: An open source, user friendly cytometry analyzer with graphic user interface (GUI). bioRxiv, 2023-08.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# Examples
|
easyflowq-1.4.8/main.py
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "EasyFlowQ"
|
|
7
|
+
version = "1.4.8"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Yitong Ma", email="yitongma7@gmail.com" },
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
dependencies = [
|
|
13
|
+
"pyqt5>=5.9",
|
|
14
|
+
"scipy>=1.7",
|
|
15
|
+
"matplotlib>=3.5",
|
|
16
|
+
"pandas>=1.5",
|
|
17
|
+
"numpy>=1.21",
|
|
18
|
+
"seaborn",
|
|
19
|
+
"xlsxwriter"
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
description = "User-friendly flow cytometry analyzer with (GUI)"
|
|
23
|
+
readme = "docs/README.md"
|
|
24
|
+
|
|
25
|
+
requires-python = ">=3.9"
|
|
26
|
+
|
|
27
|
+
classifiers = [
|
|
28
|
+
"Programming Language :: Python :: 3",
|
|
29
|
+
"License :: OSI Approved :: MIT License",
|
|
30
|
+
"Operating System :: OS Independent",
|
|
31
|
+
]
|
|
32
|
+
|
|
33
|
+
[project.urls]
|
|
34
|
+
Homepage = "https://github.com/ym3141/EasyFlowQ"
|
|
35
|
+
Issues = "https://github.com/ym3141/EasyFlowQ/issues"
|
|
36
|
+
|
|
37
|
+
[project.scripts]
|
|
38
|
+
EasyFlowQ = "EasyFlowQ.main_entry:newWindowFunc"
|
|
39
|
+
|
|
40
|
+
[tool.hatch.build.targets.sdist]
|
|
41
|
+
exclude = [
|
|
42
|
+
"/release",
|
|
43
|
+
"/docs/img",
|
|
44
|
+
"/demoSamples",
|
|
45
|
+
"/site"
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[tool.hatch.build.targets.wheel]
|
|
49
|
+
packages = ["src/EasyFlowQ"]
|
|
Binary file
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
name: easyflow_env
|
|
2
|
+
channels:
|
|
3
|
+
- defaults
|
|
4
|
+
dependencies:
|
|
5
|
+
- blas=1.0=openblas
|
|
6
|
+
- bottleneck=1.3.4=py39h67323c0_0
|
|
7
|
+
- brotli=1.0.9=hb1e8313_2
|
|
8
|
+
- ca-certificates=2022.07.19=hecd8cb5_0
|
|
9
|
+
- certifi=2022.6.15=py39hecd8cb5_0
|
|
10
|
+
- cycler=0.11.0=pyhd3eb1b0_0
|
|
11
|
+
- et_xmlfile=1.1.0=py39hecd8cb5_0
|
|
12
|
+
- fonttools=4.25.0=pyhd3eb1b0_0
|
|
13
|
+
- freetype=2.11.0=hd8bbffd_0
|
|
14
|
+
- giflib=5.2.1=haf1e3a3_0
|
|
15
|
+
- gmp=6.2.1=he9d5cce_3
|
|
16
|
+
- icu=58.2=h0a44026_3
|
|
17
|
+
- joblib=1.1.0=pyhd3eb1b0_0
|
|
18
|
+
- jpeg=9d=h9ed2024_0
|
|
19
|
+
- kiwisolver=1.3.2=py39he9d5cce_0
|
|
20
|
+
- lcms2=2.12=hf1fd2bf_0
|
|
21
|
+
- libcxx=12.0.0=h2f01273_0
|
|
22
|
+
- libffi=3.3=hb1e8313_2
|
|
23
|
+
- libgfortran=3.0.1=h93005f0_2
|
|
24
|
+
- libopenblas=0.3.18=h9a5756b_0
|
|
25
|
+
- libpng=1.6.37=ha441bb4_0
|
|
26
|
+
- libtiff=4.2.0=h87d7836_0
|
|
27
|
+
- libwebp=1.2.2=h56c3ce4_0
|
|
28
|
+
- libwebp-base=1.2.2=hca72f7f_0
|
|
29
|
+
- llvm-openmp=12.0.0=h0dcd299_1
|
|
30
|
+
- lz4-c=1.9.3=h23ab428_1
|
|
31
|
+
- matplotlib=3.5.1=py39hecd8cb5_1
|
|
32
|
+
- matplotlib-base=3.5.1=py39hfb0c5b7_1
|
|
33
|
+
- munkres=1.1.4=py_0
|
|
34
|
+
- ncurses=6.3=hca72f7f_2
|
|
35
|
+
- nomkl=3.0=0
|
|
36
|
+
- numexpr=2.8.1=py39h9c3cb84_0
|
|
37
|
+
- numpy=1.21.5=py39h9c3cb84_1
|
|
38
|
+
- numpy-base=1.21.5=py39he782bc1_1
|
|
39
|
+
- openpyxl=3.0.9=pyhd3eb1b0_0
|
|
40
|
+
- openssl=1.1.1q=hca72f7f_0
|
|
41
|
+
- packaging=21.3=pyhd3eb1b0_0
|
|
42
|
+
- pandas=1.4.1=py39he9d5cce_1
|
|
43
|
+
- pillow=9.0.1=py39hde71d04_0
|
|
44
|
+
- pip=21.2.4=py39hecd8cb5_0
|
|
45
|
+
- pycryptodome=3.15.0=py39h05f8d05_0
|
|
46
|
+
- pyinstaller=4.8=py39h3fd3227_0
|
|
47
|
+
- pyparsing=3.0.4=pyhd3eb1b0_0
|
|
48
|
+
- pyqt=5.9.2=py39h23ab428_6
|
|
49
|
+
- python=3.9.12=hdfd78df_0
|
|
50
|
+
- python-dateutil=2.8.2=pyhd3eb1b0_0
|
|
51
|
+
- pytz=2021.3=pyhd3eb1b0_0
|
|
52
|
+
- qt=5.9.7=h468cd18_1
|
|
53
|
+
- readline=8.1.2=hca72f7f_1
|
|
54
|
+
- scikit-learn=1.0.2=py39hae1ba45_1
|
|
55
|
+
- scipy=1.7.3=py39hfb86763_0
|
|
56
|
+
- seaborn=0.11.2=pyhd3eb1b0_0
|
|
57
|
+
- setuptools=61.2.0=py39hecd8cb5_0
|
|
58
|
+
- sip=4.19.13=py39h23ab428_0
|
|
59
|
+
- six=1.16.0=pyhd3eb1b0_1
|
|
60
|
+
- sqlite=3.38.2=h707629a_0
|
|
61
|
+
- threadpoolctl=2.2.0=pyh0d69192_0
|
|
62
|
+
- tk=8.6.11=h7bc2e8c_0
|
|
63
|
+
- tornado=6.1=py39h9ed2024_0
|
|
64
|
+
- tzdata=2022a=hda174b7_0
|
|
65
|
+
- wheel=0.37.1=pyhd3eb1b0_0
|
|
66
|
+
- xlsxwriter=3.0.3=pyhd3eb1b0_0
|
|
67
|
+
- xz=5.2.5=h1de35cc_0
|
|
68
|
+
- zlib=1.2.11=h4dc903c_4
|
|
69
|
+
- zstd=1.4.9=h322a384_0
|
|
70
|
+
- pip:
|
|
71
|
+
- altgraph==0.17.2
|
|
72
|
+
- macholib==1.16
|
|
73
|
+
- pyinstaller-hooks-contrib==2022.3
|
|
74
|
+
prefix: /opt/anaconda3/envs/easyflow_env
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
|
|
3
|
+
# delete and add folder
|
|
4
|
+
rm -r release/EasyFlowQ_release_mac/*
|
|
5
|
+
mkdir release/EasyFlowQ_release_mac/dmg
|
|
6
|
+
|
|
7
|
+
# package with pyinstaller and codesign
|
|
8
|
+
conda activate easyflow_env
|
|
9
|
+
pyinstaller --noconfirm --windowed --distpath ./release/EasyFlowQ_release_mac/ --workpath ./_temp/ ./release/pyi_mac.spec
|
|
10
|
+
codesign -f -s EasyFlowQ_YMa release/EasyFlowQ_release_mac/EasyFlowQ_MACOS.app
|
|
11
|
+
|
|
12
|
+
# Copy the app bundle to the dmg folder.
|
|
13
|
+
cp -r release/EasyFlowQ_release_mac/EasyFlowQ_MACOS.app release/EasyFlowQ_release_mac/dmg
|
|
14
|
+
|
|
15
|
+
# If the DMG already exists, delete it.
|
|
16
|
+
test -f release/EasyFlowQ_release_mac/EasyFlowQ_MACOS.dmg && rm release/EasyFlowQ_release_mac/EasyFlowQ_MACOS.dmg
|
|
17
|
+
|
|
18
|
+
create-dmg \
|
|
19
|
+
--volname EasyFlowQ_MACOS.dmg \
|
|
20
|
+
--icon EasyFlowQ_MACOS.app 120 120 \
|
|
21
|
+
--app-drop-link 475 120 \
|
|
22
|
+
release/EasyFlowQ_release_mac/EasyFlowQ_MACOS.dmg \
|
|
23
|
+
release/EasyFlowQ_release_mac/dmg/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# -*- mode: python ; coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
block_cipher = None
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
a = Analysis(['../main.py'],
|
|
8
|
+
pathex=[],
|
|
9
|
+
binaries=[],
|
|
10
|
+
datas=[('../uiDesigns/*', 'uiDesigns'), ('../localSettings.default.json', '.')],
|
|
11
|
+
hiddenimports=['qt_resource_rc', 'xlsxwritter'],
|
|
12
|
+
hookspath=[],
|
|
13
|
+
hooksconfig={},
|
|
14
|
+
runtime_hooks=[],
|
|
15
|
+
excludes=[],
|
|
16
|
+
win_no_prefer_redirects=False,
|
|
17
|
+
win_private_assemblies=False,
|
|
18
|
+
cipher=block_cipher,
|
|
19
|
+
noarchive=False)
|
|
20
|
+
pyz = PYZ(a.pure, a.zipped_data,
|
|
21
|
+
cipher=block_cipher)
|
|
22
|
+
|
|
23
|
+
exe = EXE(pyz,
|
|
24
|
+
a.scripts,
|
|
25
|
+
[],
|
|
26
|
+
exclude_binaries=True,
|
|
27
|
+
name='main',
|
|
28
|
+
debug=False,
|
|
29
|
+
bootloader_ignore_signals=False,
|
|
30
|
+
strip=False,
|
|
31
|
+
upx=True,
|
|
32
|
+
console=False,
|
|
33
|
+
disable_windowed_traceback=False,
|
|
34
|
+
target_arch=None,
|
|
35
|
+
codesign_identity=None,
|
|
36
|
+
entitlements_file=None )
|
|
37
|
+
coll = COLLECT(exe,
|
|
38
|
+
a.binaries,
|
|
39
|
+
a.zipfiles,
|
|
40
|
+
a.datas,
|
|
41
|
+
strip=False,
|
|
42
|
+
upx=True,
|
|
43
|
+
upx_exclude=[],
|
|
44
|
+
name='main')
|
|
45
|
+
app = BUNDLE(coll,
|
|
46
|
+
name='EasyFlowQ_MACOS.app',
|
|
47
|
+
icon=None,
|
|
48
|
+
bundle_identifier=None)
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# -*- mode: python ; coding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
block_cipher = None
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
a = Analysis(['../main.py'],
|
|
8
|
+
pathex=[],
|
|
9
|
+
binaries=[],
|
|
10
|
+
datas=[('../uiDesigns/*', 'uiDesigns'), ('../localSettings.default.json', '.')],
|
|
11
|
+
hiddenimports=['qt_resource_rc', 'openpyxl', 'xlsxwritter', 'openpyxl.cell._writer'],
|
|
12
|
+
hookspath=[],
|
|
13
|
+
hooksconfig={},
|
|
14
|
+
runtime_hooks=[],
|
|
15
|
+
excludes=[],
|
|
16
|
+
win_no_prefer_redirects=False,
|
|
17
|
+
win_private_assemblies=False,
|
|
18
|
+
cipher=block_cipher,
|
|
19
|
+
noarchive=False)
|
|
20
|
+
pyz = PYZ(a.pure, a.zipped_data,
|
|
21
|
+
cipher=block_cipher)
|
|
22
|
+
|
|
23
|
+
exe = EXE(pyz,
|
|
24
|
+
a.scripts,
|
|
25
|
+
[],
|
|
26
|
+
exclude_binaries=True,
|
|
27
|
+
name='EasyFlowQ_v1.4',
|
|
28
|
+
debug=False,
|
|
29
|
+
bootloader_ignore_signals=False,
|
|
30
|
+
strip=False,
|
|
31
|
+
upx=True,
|
|
32
|
+
console=True,
|
|
33
|
+
disable_windowed_traceback=False,
|
|
34
|
+
target_arch=None,
|
|
35
|
+
codesign_identity=None,
|
|
36
|
+
entitlements_file=None )
|
|
37
|
+
coll = COLLECT(exe,
|
|
38
|
+
a.binaries,
|
|
39
|
+
a.zipfiles,
|
|
40
|
+
a.datas,
|
|
41
|
+
strip=False,
|
|
42
|
+
upx=True,
|
|
43
|
+
upx_exclude=[],
|
|
44
|
+
name='EasyFlowQ_Bundle')
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
===========
|
|
2
|
+
``FlowCal``
|
|
3
|
+
===========
|
|
4
|
+
``FlowCal`` is a library for processing and analyzing flow cytometry data in Python.
|
|
5
|
+
It features:
|
|
6
|
+
|
|
7
|
+
* Extraction of Flow Cytometry Standard (FCS) files into numpy array-like structures
|
|
8
|
+
* Traditional and non-standard gating, including automatic density-based two-dimensional gating.
|
|
9
|
+
* Traditional transformation functions, such as exponentiation.
|
|
10
|
+
* Analysis of calibration beads data, standard curve generation, and transformation to absolute units (Molecules of Equivalent Fluorophore, MEF).
|
|
11
|
+
* Plotting, including generation of histograms, density plots and scatter plots.
|
|
12
|
+
* A user-fiendly Excel UI to gate, transform, plot, and generate statistics from a list of flow cytometry samples in a simple fashion.
|
|
13
|
+
|
|
14
|
+
Documentation
|
|
15
|
+
=============
|
|
16
|
+
The official documentation can be found in https://flowcal.readthedocs.io. Here you will find installation instructions, tutorials, and more.
|
|
17
|
+
|
|
18
|
+
Report Bugs
|
|
19
|
+
===========
|
|
20
|
+
The official way to report a bug is through the issue tracker on github (https://github.com/taborlab/FlowCal/issues). Try to be as explicit as possible when describing your issue. Ideally, a set of instructions to reproduce the error should be provided, together with the version of all the relevant packages you are using.
|
|
21
|
+
|
|
22
|
+
Request Features
|
|
23
|
+
================
|
|
24
|
+
Features can also be requested through the issue tracker on github. Try to be as descriptive as possible about the desired feature.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 John Sexton, Brian Landry, Sebastian Castillo-Hair
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"""
|
|
2
|
+
`FlowCal`: Calibration and analysis of flow cytometry data.
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
# Versions should comply with PEP440. For a discussion on single-sourcing
|
|
7
|
+
# the version across setup.py and the project code, see
|
|
8
|
+
# https://packaging.python.org/en/latest/single_source_version.html
|
|
9
|
+
__version__ = '1.3.0'
|
|
10
|
+
|
|
11
|
+
from . import io
|
|
12
|
+
# from . import excel_ui
|
|
13
|
+
# from . import gate
|
|
14
|
+
from . import transform
|
|
15
|
+
# from . import mef
|
|
16
|
+
from . import plot
|
|
17
|
+
# from . import stats
|