summaryrefslogtreecommitdiff
path: root/python-anaties.spec
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 06:12:24 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 06:12:24 +0000
commit03b0cdf29e7cbb3f3d33a6f4084ca7ac5d2214e5 (patch)
treefa0ed559f16a51a9984345316b217bd2a4fb2b6a /python-anaties.spec
parente805a1d2c284ee7d07e758a48a3f851b03eda195 (diff)
automatic import of python-anaties
Diffstat (limited to 'python-anaties.spec')
-rw-r--r--python-anaties.spec429
1 files changed, 429 insertions, 0 deletions
diff --git a/python-anaties.spec b/python-anaties.spec
new file mode 100644
index 0000000..0383055
--- /dev/null
+++ b/python-anaties.spec
@@ -0,0 +1,429 @@
+%global _empty_manifest_terminate_build 0
+Name: python-anaties
+Version: 0.1.4.6
+Release: 1
+Summary: Common analysis utilities
+License: MIT
+URL: https://github.com/EricThomson/anaties
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/94/d1/f49b1659acfa4434e508f8c8b703a9f4135760eb9843b90043c8ab370cdd/anaties-0.1.4.6.tar.gz
+BuildArch: noarch
+
+Requires: python3-numpy
+Requires: python3-matplotlib
+Requires: python3-scipy
+
+%description
+# anaties
+Anaties (contraction of 'analysis utilities'). A place for common operations like signal smoothing that are useful across all my data analysis projects.
+
+
+## Installation and usage
+Install with pip:
+
+ pip install anaties
+
+When a new release is made, upgrade with:
+
+ pip install anaties --upgrade
+
+Usage is simple. In your code:
+
+ import anaties as ana
+ ana.function_name()
+
+You can test it out with:
+
+ import anaties as ana
+ print(ana.datetime_string())
+
+ plt.plot([0, 1], [0,1], color='k', linewidth=0.6)
+ ana.rect_highlight([0.25, 0.5])
+
+All other functions are listed below.
+
+## Brief summary of all utilities
+
+ signals.py (for 1d data arrays, or arrays of such arrays)
+ - smooth: smooth a signal with a window (gaussian, etc)
+ - smooth_rows: smooth each row of a 2d array using smooth()
+ - power_spec: get the power spectral density or power spectrum
+ - spectrogram: calculate/plot spectrogram of a signal
+ - notch_filter: notch filter to attenuate specific frequency (e.g. 60hz)
+ - bandpass_filter: allow through frequencies within low- and high-cutoff
+
+ plots.py (basic plotting)
+ - error_shade: plot line with shaded error region
+ - freqhist: calculate/plot a relative frequency histogram
+ - paired_bar: bar plot for paired data
+ - plot_with_events: plot with vertical lines to indicate events
+ - rect_highlight: overlay rectangular highlight to figure
+ - vlines: add vertical lines to figure
+
+ stats (basic statistical things)
+ - collective_correlation: collective correlation coefficient
+ - med_semed: median and std error of median of an array
+ - mean_sem: mean and std error of the mean of an array
+ - mean_std: mean and standard deviation of an array
+ - se_mean: std err of mean of array
+ - se_median: std error of median of array
+ - cramers_v: cramers v for effect size for chi-square test
+
+ helpers.py (generic utility functions for use everywhere)
+ - datetime_string : return date_time string to use for naming files etc
+ - file_exists: check to see if file exists
+ - get_bins: get bin edges and centers, given limits and bin width
+ - get_offdiag_vals: get lower off-diagonal values of a symmetric matrix
+ - ind_limits: return indices that contain array data within range
+ - is_symmetric: check if 2d array is symmetric
+ - rand_rgb: returns random array of rgb values
+
+## Acknowledgments
+- Songbird wav is open source from: https://freesound.org/people/Sonic-ranger/sounds/243677/
+- Developed with the support from NIH Bioinformatics and the Neurobehavioral Core at NIEHS.
+
+## To do: More important
+- finish adding tests.
+- plots.rect_highlight should just use axvspan/axhspan!
+- use median instead of mean in spectrogram
+- add proper documentation and tests to stats module.
+- integrate vlines into pypi and version up (maybe good test for ci)
+- add ax return for all plot functions, when possible.
+- finish plots.twinx and make sure it works
+- add test for plots.error_shade.
+- Add return object for plots.rect_highlight()
+- consider adding directory_exists to helpers
+- paired_bar and mean_sem/std need to handle one point better (throws warning)
+- Add a proper suptitle fix in aplots it is a pita to add manually/remember:
+ f.suptitle(..., fontsize=16)
+ f.tight_layout()
+ f.subplots_adjust(top=0.9)
+- For freqhist should I guarantee it sums to 1 even when bin widths don't match data limits? Probably not. Something to think about though.
+- In smoother, consider switching from filtfilt() to sosfiltfilt() for reasons laid out here: https://dsp.stackexchange.com/a/17255/51564
+- Convert notch filter to sos?
+- For spectral density estimation consider adding multitaper option. Good discussions:
+https://github.com/cokelaer/spectrum
+https://pyspectrum.readthedocs.io/en/latest/
+https://mark-kramer.github.io/Case-Studies-Python/04.html
+- add ability to control event colors in spectrogram.
+- ind_limits: add checks for data, data_limits, clarify description and docs
+- Add numerical tests with random seed set not just graphical eyeball tests.
+
+## To do: longer term
+- Add audio playback of signals (see notes in audio_playback_workspace), incorporate this into some tests of filtering, etc.. simpleaudio package is too simple I think.
+- autodocs (sphinx?)
+- CI/CD with github actions
+- consider adding wavelets.
+- Add 3d array support for stat functions like mn_sem
+
+## Useful sources
+### Smoothing
+- https://scipy-cookbook.readthedocs.io/items/FiltFilt.html
+- https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html
+
+### What about wavelets?
+I may add wavelets at some point, but it isn't plug-and-play enough for this repo. If you want to get started with wavelets in Python, I recommend http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/
+
+### Tolerance values
+For a discussion of the difference between relative and absolute tolerance values when testing floats for equality (for instance as used in `helpers.is_symmetric()`) see:
+ https://stackoverflow.com/questions/65909842/what-is-rtol-for-in-numpys-allclose-function
+
+ ### Suggestions?
+ If there is something you'd like to see, please open an issue.
+
+
+
+
+%package -n python3-anaties
+Summary: Common analysis utilities
+Provides: python-anaties
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-anaties
+# anaties
+Anaties (contraction of 'analysis utilities'). A place for common operations like signal smoothing that are useful across all my data analysis projects.
+
+
+## Installation and usage
+Install with pip:
+
+ pip install anaties
+
+When a new release is made, upgrade with:
+
+ pip install anaties --upgrade
+
+Usage is simple. In your code:
+
+ import anaties as ana
+ ana.function_name()
+
+You can test it out with:
+
+ import anaties as ana
+ print(ana.datetime_string())
+
+ plt.plot([0, 1], [0,1], color='k', linewidth=0.6)
+ ana.rect_highlight([0.25, 0.5])
+
+All other functions are listed below.
+
+## Brief summary of all utilities
+
+ signals.py (for 1d data arrays, or arrays of such arrays)
+ - smooth: smooth a signal with a window (gaussian, etc)
+ - smooth_rows: smooth each row of a 2d array using smooth()
+ - power_spec: get the power spectral density or power spectrum
+ - spectrogram: calculate/plot spectrogram of a signal
+ - notch_filter: notch filter to attenuate specific frequency (e.g. 60hz)
+ - bandpass_filter: allow through frequencies within low- and high-cutoff
+
+ plots.py (basic plotting)
+ - error_shade: plot line with shaded error region
+ - freqhist: calculate/plot a relative frequency histogram
+ - paired_bar: bar plot for paired data
+ - plot_with_events: plot with vertical lines to indicate events
+ - rect_highlight: overlay rectangular highlight to figure
+ - vlines: add vertical lines to figure
+
+ stats (basic statistical things)
+ - collective_correlation: collective correlation coefficient
+ - med_semed: median and std error of median of an array
+ - mean_sem: mean and std error of the mean of an array
+ - mean_std: mean and standard deviation of an array
+ - se_mean: std err of mean of array
+ - se_median: std error of median of array
+ - cramers_v: cramers v for effect size for chi-square test
+
+ helpers.py (generic utility functions for use everywhere)
+ - datetime_string : return date_time string to use for naming files etc
+ - file_exists: check to see if file exists
+ - get_bins: get bin edges and centers, given limits and bin width
+ - get_offdiag_vals: get lower off-diagonal values of a symmetric matrix
+ - ind_limits: return indices that contain array data within range
+ - is_symmetric: check if 2d array is symmetric
+ - rand_rgb: returns random array of rgb values
+
+## Acknowledgments
+- Songbird wav is open source from: https://freesound.org/people/Sonic-ranger/sounds/243677/
+- Developed with the support from NIH Bioinformatics and the Neurobehavioral Core at NIEHS.
+
+## To do: More important
+- finish adding tests.
+- plots.rect_highlight should just use axvspan/axhspan!
+- use median instead of mean in spectrogram
+- add proper documentation and tests to stats module.
+- integrate vlines into pypi and version up (maybe good test for ci)
+- add ax return for all plot functions, when possible.
+- finish plots.twinx and make sure it works
+- add test for plots.error_shade.
+- Add return object for plots.rect_highlight()
+- consider adding directory_exists to helpers
+- paired_bar and mean_sem/std need to handle one point better (throws warning)
+- Add a proper suptitle fix in aplots it is a pita to add manually/remember:
+ f.suptitle(..., fontsize=16)
+ f.tight_layout()
+ f.subplots_adjust(top=0.9)
+- For freqhist should I guarantee it sums to 1 even when bin widths don't match data limits? Probably not. Something to think about though.
+- In smoother, consider switching from filtfilt() to sosfiltfilt() for reasons laid out here: https://dsp.stackexchange.com/a/17255/51564
+- Convert notch filter to sos?
+- For spectral density estimation consider adding multitaper option. Good discussions:
+https://github.com/cokelaer/spectrum
+https://pyspectrum.readthedocs.io/en/latest/
+https://mark-kramer.github.io/Case-Studies-Python/04.html
+- add ability to control event colors in spectrogram.
+- ind_limits: add checks for data, data_limits, clarify description and docs
+- Add numerical tests with random seed set not just graphical eyeball tests.
+
+## To do: longer term
+- Add audio playback of signals (see notes in audio_playback_workspace), incorporate this into some tests of filtering, etc.. simpleaudio package is too simple I think.
+- autodocs (sphinx?)
+- CI/CD with github actions
+- consider adding wavelets.
+- Add 3d array support for stat functions like mn_sem
+
+## Useful sources
+### Smoothing
+- https://scipy-cookbook.readthedocs.io/items/FiltFilt.html
+- https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html
+
+### What about wavelets?
+I may add wavelets at some point, but it isn't plug-and-play enough for this repo. If you want to get started with wavelets in Python, I recommend http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/
+
+### Tolerance values
+For a discussion of the difference between relative and absolute tolerance values when testing floats for equality (for instance as used in `helpers.is_symmetric()`) see:
+ https://stackoverflow.com/questions/65909842/what-is-rtol-for-in-numpys-allclose-function
+
+ ### Suggestions?
+ If there is something you'd like to see, please open an issue.
+
+
+
+
+%package help
+Summary: Development documents and examples for anaties
+Provides: python3-anaties-doc
+%description help
+# anaties
+Anaties (contraction of 'analysis utilities'). A place for common operations like signal smoothing that are useful across all my data analysis projects.
+
+
+## Installation and usage
+Install with pip:
+
+ pip install anaties
+
+When a new release is made, upgrade with:
+
+ pip install anaties --upgrade
+
+Usage is simple. In your code:
+
+ import anaties as ana
+ ana.function_name()
+
+You can test it out with:
+
+ import anaties as ana
+ print(ana.datetime_string())
+
+ plt.plot([0, 1], [0,1], color='k', linewidth=0.6)
+ ana.rect_highlight([0.25, 0.5])
+
+All other functions are listed below.
+
+## Brief summary of all utilities
+
+ signals.py (for 1d data arrays, or arrays of such arrays)
+ - smooth: smooth a signal with a window (gaussian, etc)
+ - smooth_rows: smooth each row of a 2d array using smooth()
+ - power_spec: get the power spectral density or power spectrum
+ - spectrogram: calculate/plot spectrogram of a signal
+ - notch_filter: notch filter to attenuate specific frequency (e.g. 60hz)
+ - bandpass_filter: allow through frequencies within low- and high-cutoff
+
+ plots.py (basic plotting)
+ - error_shade: plot line with shaded error region
+ - freqhist: calculate/plot a relative frequency histogram
+ - paired_bar: bar plot for paired data
+ - plot_with_events: plot with vertical lines to indicate events
+ - rect_highlight: overlay rectangular highlight to figure
+ - vlines: add vertical lines to figure
+
+ stats (basic statistical things)
+ - collective_correlation: collective correlation coefficient
+ - med_semed: median and std error of median of an array
+ - mean_sem: mean and std error of the mean of an array
+ - mean_std: mean and standard deviation of an array
+ - se_mean: std err of mean of array
+ - se_median: std error of median of array
+ - cramers_v: cramers v for effect size for chi-square test
+
+ helpers.py (generic utility functions for use everywhere)
+ - datetime_string : return date_time string to use for naming files etc
+ - file_exists: check to see if file exists
+ - get_bins: get bin edges and centers, given limits and bin width
+ - get_offdiag_vals: get lower off-diagonal values of a symmetric matrix
+ - ind_limits: return indices that contain array data within range
+ - is_symmetric: check if 2d array is symmetric
+ - rand_rgb: returns random array of rgb values
+
+## Acknowledgments
+- Songbird wav is open source from: https://freesound.org/people/Sonic-ranger/sounds/243677/
+- Developed with the support from NIH Bioinformatics and the Neurobehavioral Core at NIEHS.
+
+## To do: More important
+- finish adding tests.
+- plots.rect_highlight should just use axvspan/axhspan!
+- use median instead of mean in spectrogram
+- add proper documentation and tests to stats module.
+- integrate vlines into pypi and version up (maybe good test for ci)
+- add ax return for all plot functions, when possible.
+- finish plots.twinx and make sure it works
+- add test for plots.error_shade.
+- Add return object for plots.rect_highlight()
+- consider adding directory_exists to helpers
+- paired_bar and mean_sem/std need to handle one point better (throws warning)
+- Add a proper suptitle fix in aplots it is a pita to add manually/remember:
+ f.suptitle(..., fontsize=16)
+ f.tight_layout()
+ f.subplots_adjust(top=0.9)
+- For freqhist should I guarantee it sums to 1 even when bin widths don't match data limits? Probably not. Something to think about though.
+- In smoother, consider switching from filtfilt() to sosfiltfilt() for reasons laid out here: https://dsp.stackexchange.com/a/17255/51564
+- Convert notch filter to sos?
+- For spectral density estimation consider adding multitaper option. Good discussions:
+https://github.com/cokelaer/spectrum
+https://pyspectrum.readthedocs.io/en/latest/
+https://mark-kramer.github.io/Case-Studies-Python/04.html
+- add ability to control event colors in spectrogram.
+- ind_limits: add checks for data, data_limits, clarify description and docs
+- Add numerical tests with random seed set not just graphical eyeball tests.
+
+## To do: longer term
+- Add audio playback of signals (see notes in audio_playback_workspace), incorporate this into some tests of filtering, etc.. simpleaudio package is too simple I think.
+- autodocs (sphinx?)
+- CI/CD with github actions
+- consider adding wavelets.
+- Add 3d array support for stat functions like mn_sem
+
+## Useful sources
+### Smoothing
+- https://scipy-cookbook.readthedocs.io/items/FiltFilt.html
+- https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.filtfilt.html
+
+### What about wavelets?
+I may add wavelets at some point, but it isn't plug-and-play enough for this repo. If you want to get started with wavelets in Python, I recommend http://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/
+
+### Tolerance values
+For a discussion of the difference between relative and absolute tolerance values when testing floats for equality (for instance as used in `helpers.is_symmetric()`) see:
+ https://stackoverflow.com/questions/65909842/what-is-rtol-for-in-numpys-allclose-function
+
+ ### Suggestions?
+ If there is something you'd like to see, please open an issue.
+
+
+
+
+%prep
+%autosetup -n anaties-0.1.4.6
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-anaties -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.1.4.6-1
+- Package Spec generated