diff options
| author | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:12:24 +0000 |
|---|---|---|
| committer | CoprDistGit <infra@openeuler.org> | 2023-05-15 06:12:24 +0000 |
| commit | 03b0cdf29e7cbb3f3d33a6f4084ca7ac5d2214e5 (patch) | |
| tree | fa0ed559f16a51a9984345316b217bd2a4fb2b6a /python-anaties.spec | |
| parent | e805a1d2c284ee7d07e758a48a3f851b03eda195 (diff) | |
automatic import of python-anaties
Diffstat (limited to 'python-anaties.spec')
| -rw-r--r-- | python-anaties.spec | 429 |
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 |
