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.
Files changed (63) hide show
  1. easyflowq-1.4.8/.gitignore +26 -0
  2. easyflowq-1.4.8/LICENSE +21 -0
  3. easyflowq-1.4.8/PKG-INFO +52 -0
  4. easyflowq-1.4.8/docs/Basic Usage.md +39 -0
  5. easyflowq-1.4.8/docs/LICENSE.md +21 -0
  6. easyflowq-1.4.8/docs/README.md +31 -0
  7. easyflowq-1.4.8/docs/Tutorial.md +1 -0
  8. easyflowq-1.4.8/main.py +4 -0
  9. easyflowq-1.4.8/mkdocs.yml +8 -0
  10. easyflowq-1.4.8/pyproject.toml +49 -0
  11. easyflowq-1.4.8/release/IF_win.ifp +0 -0
  12. easyflowq-1.4.8/release/environment_mac.yml +74 -0
  13. easyflowq-1.4.8/release/environment_win.yml +0 -0
  14. easyflowq-1.4.8/release/pyi_mac.sh +23 -0
  15. easyflowq-1.4.8/release/pyi_mac.spec +48 -0
  16. easyflowq-1.4.8/release/pyi_win.ps1 +2 -0
  17. easyflowq-1.4.8/release/pyi_win.spec +44 -0
  18. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/README.md +2 -0
  19. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/ReadmeLicense/README.rst +24 -0
  20. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/ReadmeLicense/license.txt +21 -0
  21. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/__init__.py +17 -0
  22. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/excel_ui.py +1593 -0
  23. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/gate.py +584 -0
  24. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/io.py +2248 -0
  25. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/mef.py +1208 -0
  26. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/plot.py +3863 -0
  27. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/stats.py +316 -0
  28. easyflowq-1.4.8/src/EasyFlowQ/FlowCal/transform.py +338 -0
  29. easyflowq-1.4.8/src/EasyFlowQ/__init__.py +0 -0
  30. easyflowq-1.4.8/src/EasyFlowQ/backend/__init__.py +0 -0
  31. easyflowq-1.4.8/src/EasyFlowQ/backend/comp.py +169 -0
  32. easyflowq-1.4.8/src/EasyFlowQ/backend/efio.py +329 -0
  33. easyflowq-1.4.8/src/EasyFlowQ/backend/gates.py +650 -0
  34. easyflowq-1.4.8/src/EasyFlowQ/backend/plotWidgets.py +449 -0
  35. easyflowq-1.4.8/src/EasyFlowQ/backend/qtModels.py +315 -0
  36. easyflowq-1.4.8/src/EasyFlowQ/backend/utils.py +48 -0
  37. easyflowq-1.4.8/src/EasyFlowQ/localSettings.default.json +6 -0
  38. easyflowq-1.4.8/src/EasyFlowQ/main_entry.py +64 -0
  39. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/AboutWindow.ui +50 -0
  40. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWindow.ui +115 -0
  41. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWizard.ui +374 -0
  42. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/CompWizard_SmplAssignBox.ui +40 -0
  43. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow.ui +916 -0
  44. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_FigOptions.py +186 -0
  45. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_FigOptions.ui +675 -0
  46. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_SmplSect.py +167 -0
  47. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/MainWindow_SmplSect.ui +162 -0
  48. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/RenameWindow_CF.ui +97 -0
  49. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/RenameWindow_Map.ui +83 -0
  50. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/SettingsWindow.ui +209 -0
  51. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/StatWindow.ui +116 -0
  52. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/__init__.py +0 -0
  53. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/PelatteIcon2.tif +0 -0
  54. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/qt_resource.qrc +5 -0
  55. easyflowq-1.4.8/src/EasyFlowQ/uiDesigns/resource/qt_resource_rc.py +146 -0
  56. easyflowq-1.4.8/src/EasyFlowQ/window_About.py +14 -0
  57. easyflowq-1.4.8/src/EasyFlowQ/window_Comp.py +176 -0
  58. easyflowq-1.4.8/src/EasyFlowQ/window_Main.py +877 -0
  59. easyflowq-1.4.8/src/EasyFlowQ/window_RenameCF.py +207 -0
  60. easyflowq-1.4.8/src/EasyFlowQ/window_RenameMap.py +88 -0
  61. easyflowq-1.4.8/src/EasyFlowQ/window_Settings.py +112 -0
  62. easyflowq-1.4.8/src/EasyFlowQ/window_Stats.py +210 -0
  63. 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
@@ -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,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
+ ![Download page](img/ReleasePage.jpg)
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
+ ![Startup Setting](img/StartUpSettings.png)
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
+ ![BasicOperations](img/BasicOps.jpg)
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
+ ![Download page](img/ReleasePage.jpg)
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
@@ -0,0 +1,4 @@
1
+ from src.EasyFlowQ import main_entry
2
+
3
+ if __name__ == "__main__":
4
+ main_entry.newWindowFunc()
@@ -0,0 +1,8 @@
1
+ site_name: "EasyFLowQ"
2
+ repo_url: https://github.com/ym3141/EasyFlowQ
3
+
4
+ nav:
5
+ - Home: "README.md"
6
+ - "Basic Usage.md"
7
+ - "Tutorial.md"
8
+ - LICENSE(MIT): "LICENSE.md"
@@ -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
@@ -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,2 @@
1
+ conda activate EasyFlowQ
2
+ pyinstaller --noconfirm --distpath .\release\EasyFlowQ_release_win\ --workpath .\_temp\ .\release\pyi_win.spec
@@ -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,2 @@
1
+ This is a adopted version of the FLowCal library. The orignal code is hosted on https://github.com/ym3141/FlowCal, a fork from https://github.com/taborlab/FlowCal.
2
+ Please refer to the "ReadmeLicense" folder for the original readme and license files.
@@ -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