physion 1.0__tar.gz → 1.2__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.
- {physion-1.0/src/physion.egg-info → physion-1.2}/PKG-INFO +24 -7
- {physion-1.0 → physion-1.2}/README.md +19 -5
- {physion-1.0 → physion-1.2}/pyproject.toml +6 -3
- physion-1.2/src/physion/__init__.py +3 -0
- {physion-1.0 → physion-1.2}/src/physion/__main__.py +6 -3
- physion-1.2/src/physion/acquisition/__init__.py +10 -0
- physion-1.2/src/physion/acquisition/configs/Adrianna-Bacci-2P.json +21 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/configs/Jo-Bacci-2P.json +2 -6
- {physion-1.0 → physion-1.2}/src/physion/acquisition/configs/Taddy-A1-2P.json +2 -6
- {physion-1.0 → physion-1.2}/src/physion/acquisition/configs/Troubleshooting.json +2 -5
- {physion-1.0 → physion-1.2}/src/physion/acquisition/configs/Yann-A1-2P.json +1 -1
- {physion-1.0 → physion-1.2}/src/physion/acquisition/configs/Yann-Bacci-2P.json +6 -8
- {physion-1.0 → physion-1.2}/src/physion/acquisition/gui.py +10 -23
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/FFDG-contrast-curve+blank.json +4 -2
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/Light-Levels-Symmetric-5b-5g-10blank-5g-5b.json +3 -1
- physion-1.2/src/physion/acquisition/protocols/Millman-et-al-2020.json +41 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/NDNF-protocol.json +6 -4
- physion-1.2/src/physion/acquisition/protocols/black-grey-white-20s-each-x5.json +16 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/drifting-gratings.json +13 -10
- physion-1.2/src/physion/acquisition/protocols/ff-gratings-2orientations-8contrasts-15repeats.json +38 -0
- physion-1.2/src/physion/acquisition/protocols/ff-gratings-8orientation-2contrasts-15repeats.json +38 -0
- physion-1.2/src/physion/acquisition/protocols/injection-monitoring.json +38 -0
- physion-1.2/src/physion/acquisition/protocols/old-NDNF-protocol.json +19 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/quick-spatial-mapping.json +14 -10
- physion-1.0/src/physion/acquisition/protocols/size-tuning-protocol.json → physion-1.2/src/physion/acquisition/protocols/size-tuning-protocol-linear.json +2 -0
- physion-1.2/src/physion/acquisition/protocols/size-tuning-protocol-log-long.json +14 -0
- physion-1.2/src/physion/acquisition/protocols/size-tuning-protocol-log.json +14 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/size-tuning-protocol-long.json +5 -3
- {physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/spatial-mapping.json +2 -1
- physion-1.2/src/physion/acquisition/protocols/stim-demo.json +34 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/recordings/Scan1Plane_Screen342V.py +3 -2
- {physion-1.0 → physion-1.2}/src/physion/acquisition/recordings/Scan1Plane_Screen356VOffPeriodScan.py +3 -3
- physion-1.2/src/physion/acquisition/run.py +346 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/settings.py +13 -8
- physion-1.2/src/physion/acquisition/tools.py +125 -0
- physion-1.2/src/physion/analysis/__init__.py +3 -0
- {physion-1.0 → physion-1.2}/src/physion/analysis/process_NWB.py +16 -12
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/FFDG.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/FFDG_with_blank.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/Light_Levels.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/contrast_curves.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/size_tuning.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/protocols/spatial_mapping.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/read_NWB.py +122 -52
- {physion-1.0 → physion-1.2}/src/physion/analysis/stat_tools.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/summary_pdf.py +2 -2
- {physion-1.0 → physion-1.2}/src/physion/analysis/tools.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/analysis/trial_averaging.py +3 -3
- {physion-1.0 → physion-1.2}/src/physion/assembling/add_ophys.py +65 -107
- {physion-1.0 → physion-1.2}/src/physion/assembling/gui.py +26 -34
- physion-1.0/src/physion/assembling/build_NWB.py → physion-1.2/src/physion/assembling/nwb.py +305 -173
- {physion-1.0 → physion-1.2}/src/physion/assembling/realign_from_photodiode.py +15 -36
- {physion-1.0 → physion-1.2}/src/physion/assembling/tools.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/assembling/update_metadata.py +5 -3
- physion-1.2/src/physion/behavior/convert_to_movie.py +119 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/FOV.py +24 -53
- physion-1.2/src/physion/dataviz/__init__.py +2 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/camera.py +2 -2
- {physion-1.0 → physion-1.2}/src/physion/dataviz/episodes/evoked_raster.py +3 -3
- {physion-1.0 → physion-1.2}/src/physion/dataviz/episodes/trial_average.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/dataviz/gui.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/dataviz/imaging.py +63 -36
- physion-1.2/src/physion/dataviz/movie.py +202 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/plots.py +42 -35
- physion-1.2/src/physion/dataviz/protocols/template.py +32 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/pupil.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/dataviz/raw.py +7 -7
- physion-1.2/src/physion/dataviz/snapshot.py +447 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/tools.py +2 -2
- {physion-1.0 → physion-1.2}/src/physion/facemotion/gui.py +26 -26
- {physion-1.0 → physion-1.2}/src/physion/facemotion/process.py +20 -19
- {physion-1.0 → physion-1.2}/src/physion/gui/calendar.py +15 -10
- {physion-1.0 → physion-1.2}/src/physion/gui/main.py +33 -14
- {physion-1.0 → physion-1.2}/src/physion/gui/menu.py +9 -6
- {physion-1.0 → physion-1.2}/src/physion/gui/parts.py +24 -12
- {physion-1.0 → physion-1.2}/src/physion/hardware/FLIRcamera/main.py +21 -10
- {physion-1.0 → physion-1.2}/src/physion/hardware/LogitechWebcam/main.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/main.py +9 -5
- physion-1.2/src/physion/hardware/Thorlabs/usb_camera.py +104 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/Calcium.py +1 -1
- physion-1.2/src/physion/imaging/bruker/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/bruker/xml_parser.py +8 -5
- physion-1.2/src/physion/imaging/convert_to_movie.py +308 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/gui.py +142 -41
- {physion-1.0 → physion-1.2}/src/physion/imaging/red_label.py +1 -0
- physion-1.2/src/physion/imaging/suite2p/__init__.py +0 -0
- physion-1.2/src/physion/imaging/suite2p/default_ops.py +167 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/suite2p/preprocessing.py +42 -29
- physion-1.2/src/physion/imaging/suite2p/presets.py +35 -0
- physion-1.0/src/physion/assembling/IO/suite2p_to_nwb.py → physion-1.2/src/physion/imaging/suite2p/to_nwb.py +35 -21
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/RetinotopicMapping.py +2 -1
- physion-1.2/src/physion/intrinsic/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/acquisition.py +144 -150
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/analysis.py +30 -31
- physion-1.2/src/physion/intrinsic/build_protocols.py +71 -0
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/pdf.py +41 -26
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/somatosensory.py +5 -5
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/tools.py +86 -41
- physion-1.2/src/physion/pupil/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/pupil/gui.py +35 -30
- {physion-1.0 → physion-1.2}/src/physion/pupil/process.py +9 -10
- physion-1.2/src/physion/utils/__init__.py +1 -0
- physion-1.2/src/physion/utils/camera.py +210 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/files.py +43 -5
- physion-1.2/src/physion/utils/management/__init__.py +0 -0
- physion-1.2/src/physion/utils/management/delete.py +96 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/npz.py +1 -1
- {physion-1.0 → physion-1.2}/src/physion/utils/paths.py +6 -4
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/adjust_plots.py +6 -2
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/annotations.py +4 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/bar.py +4 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/export.py +5 -1
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/figure.py +5 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/legend.py +35 -32
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/line.py +5 -1
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/morphologies.py +6 -1
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/pie.py +3 -2
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/scatter.py +4 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/time_freq.py +3 -0
- physion-1.2/src/physion/utils/plot_tools/src/violin.py +58 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/progressBar.py +4 -2
- physion-1.2/src/physion/utils/sharing/__init__.py +0 -0
- physion-1.2/src/physion/utils/sharing/prepare_nwb_files.py +315 -0
- physion-1.2/src/physion/utils/transfer/__init__.py +0 -0
- physion-1.2/src/physion/utils/transfer/__main__.py +32 -0
- {physion-1.0/src/physion → physion-1.2/src/physion/utils}/transfer/gui.py +69 -34
- physion-1.2/src/physion/utils/transfer/types.py +77 -0
- physion-1.2/src/physion/visual_stim/build.py +205 -0
- physion-1.2/src/physion/visual_stim/main.py +679 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/screens.py +11 -26
- physion-1.2/src/physion/visual_stim/show.py +131 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/__init__.py +1 -1
- physion-1.2/src/physion/visual_stim/stimuli/center_drifting_grating.py +86 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/center_grating.py +32 -17
- physion-1.2/src/physion/visual_stim/stimuli/flickering_bar.py +112 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/gaussian_blob.py +20 -7
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/line_moving_dots.py +34 -30
- physion-1.2/src/physion/visual_stim/stimuli/looming_stim.py +102 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/natural_image.py +29 -12
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/oscillDG.py +1 -2
- physion-1.2/src/physion/visual_stim/stimuli/random_dots.py +90 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/scattered_moving_dots.py +23 -9
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/template.py +2 -3
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/stimuli/uniform_bg.py +2 -8
- physion-1.2/src/physion/visual_stim/tests/opencv.py +72 -0
- physion-1.2/src/physion/visual_stim/tests/psychopy.py +95 -0
- physion-1.2/src/physion/visual_stim/tests/qt.py +101 -0
- {physion-1.0 → physion-1.2/src/physion.egg-info}/PKG-INFO +24 -7
- {physion-1.0 → physion-1.2}/src/physion.egg-info/SOURCES.txt +35 -20
- {physion-1.0 → physion-1.2}/src/physion.egg-info/requires.txt +4 -1
- physion-1.0/src/physion/__init__.py +0 -5
- physion-1.0/src/physion/acquisition/__init__.py +0 -1
- physion-1.0/src/physion/acquisition/configs/Marie-A1-2P.json +0 -21
- physion-1.0/src/physion/acquisition/protocols/stim-demo.json +0 -12
- physion-1.0/src/physion/acquisition/run.py +0 -304
- physion-1.0/src/physion/acquisition/subjects/mice_jo.csv +0 -8
- physion-1.0/src/physion/acquisition/subjects/mice_marie.csv +0 -3
- physion-1.0/src/physion/acquisition/subjects/mice_taddy.csv +0 -10
- physion-1.0/src/physion/acquisition/subjects/mice_yann.csv +0 -4
- physion-1.0/src/physion/acquisition/tools.py +0 -96
- physion-1.0/src/physion/analysis/__init__.py +0 -3
- physion-1.0/src/physion/assembling/IO/__init__.py +0 -1
- physion-1.0/src/physion/assembling/IO/bruker_data.py +0 -185
- physion-1.0/src/physion/assembling/IO/bruker_xml_parser.py +0 -154
- physion-1.0/src/physion/assembling/__init__.py +0 -1
- physion-1.0/src/physion/dataviz/__init__.py +0 -1
- physion-1.0/src/physion/dataviz/dataframe/__init__.py +0 -1
- physion-1.0/src/physion/dataviz/dataframe/raw.py +0 -268
- physion-1.0/src/physion/dataviz/dataframe/tools.py +0 -82
- physion-1.0/src/physion/dataviz/movie.py +0 -378
- physion-1.0/src/physion/dataviz/snapshot.py +0 -492
- physion-1.0/src/physion/gui/__init__.py +0 -1
- physion-1.0/src/physion/hardware/__init__.py +0 -1
- physion-1.0/src/physion/imaging/suite2p/presets.py +0 -87
- physion-1.0/src/physion/imaging/suite2p/to_nwb.py +0 -195
- physion-1.0/src/physion/intrinsic/__init__.py +0 -1
- physion-1.0/src/physion/utils/__init__.py +0 -1
- physion-1.0/src/physion/utils/plot_tools/src/violin.py +0 -65
- physion-1.0/src/physion/visual_stim/build.py +0 -117
- physion-1.0/src/physion/visual_stim/main.py +0 -1021
- physion-1.0/src/physion/visual_stim/psychopy_test.py +0 -34
- physion-1.0/src/physion/visual_stim/stimuli/center_drifting_grating.py +0 -94
- physion-1.0/src/physion/visual_stim/stimuli/looming_stim.py +0 -114
- physion-1.0/src/physion/visual_stim/stimuli/random_dots.py +0 -66
- {physion-1.0 → physion-1.2}/LICENSE +0 -0
- {physion-1.0 → physion-1.2}/setup.cfg +0 -0
- {physion-1.0 → physion-1.2}/src/physion/acquisition/recordings/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/analysis/behavior.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/analysis/dataframe.py +0 -0
- {physion-1.0/src/physion/dataviz → physion-1.2/src/physion/analysis}/protocols/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/assembling/FOV_coordinates.py +0 -0
- {physion-1.0/src/physion/electrophy → physion-1.2/src/physion/assembling}/__init__.py +0 -0
- {physion-1.0/src/physion/facemotion → physion-1.2/src/physion/behavior}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/behavior/locomotion.py +0 -0
- {physion-1.0/src/physion/hardware/Dummy → physion-1.2/src/physion/dataviz/dataframe}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/episodes/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/dataviz/episodes/behavior.py +0 -0
- {physion-1.0/src/physion/analysis → physion-1.2/src/physion/dataviz}/protocols/__init__.py +0 -0
- {physion-1.0/src/physion/hardware/FLIRcamera → physion-1.2/src/physion/electrophy}/__init__.py +0 -0
- {physion-1.0/src/physion/hardware/LogitechWebcam → physion-1.2/src/physion/facemotion}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/facemotion/roi.py +0 -0
- {physion-1.0/src/physion/hardware/RaspberryPi → physion-1.2/src/physion/gui}/__init__.py +0 -0
- {physion-1.0/src/physion/hardware/Thorlabs → physion-1.2/src/physion/hardware/Dummy}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Dummy/camera.py +0 -0
- {physion-1.0/src/physion/hardware/zaber_stage → physion-1.2/src/physion/hardware/FLIRcamera}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/FLIRcamera/export.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/FLIRcamera/launch.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/FLIRcamera/test.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Igor/hdf5.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Igor/igor.py +0 -0
- {physion-1.0/src/physion/imaging/bruker → physion-1.2/src/physion/hardware/LogitechWebcam}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/LogitechWebcam/test.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/config.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/inputs_for_screen.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/pulse.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/recording.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/steps.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/subprocess.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/test.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/NIdaq/zero_AO.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/QCamera/camera_core_test.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/QCamera/frame_rate_test.py +0 -0
- {physion-1.0/src/physion/imaging/suite2p → physion-1.2/src/physion/hardware/RaspberryPi}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/RaspberryPi/main.py +0 -0
- {physion-1.0/src/physion/pupil → physion-1.2/src/physion/hardware/Thorlabs}/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Thorlabs/cam_test.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Thorlabs/thorcam.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/Thorlabs/tkinter_camera_live_view.py +0 -0
- {physion-1.0/src/physion/transfer → physion-1.2/src/physion/hardware}/__init__.py +0 -0
- /physion-1.0/src/physion/dataviz/dataframe/episodes.py → /physion-1.2/src/physion/hardware/zaber_stage/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/hardware/zaber_stage/main.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/imaging/dcnv.py +0 -0
- {physion-1.0/src/physion/assembling/IO → physion-1.2/src/physion/imaging/suite2p}/binary.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/intrinsic/SS_analysis.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/pupil/outliers.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/pupil/roi.py +0 -0
- {physion-1.0/src/physion/imaging/suite2p → physion-1.2/src/physion/utils}/binary.py +0 -0
- {physion-1.0/src/physion/assembling/IO → physion-1.2/src/physion/utils}/hdf5.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/matplotlib_style.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/misc.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_export.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/setup.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/colors.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/src/inset.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/style-sheets/dark-notebook.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/style-sheets/dark.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/style-sheets/manuscript.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/tests/Notebook.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/utils/plot_tools/tests/envs.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/__init__.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/gamma-correction.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion/visual_stim/preprocess_NI.py +0 -0
- {physion-1.0 → physion-1.2}/src/physion.egg-info/dependency_links.txt +0 -0
- {physion-1.0 → physion-1.2}/src/physion.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: physion
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.2
|
|
4
4
|
Summary: Vision Physiology Software
|
|
5
5
|
Author-email: Yann Zerlaut <yann.zerlaut@gmail.com>
|
|
6
6
|
Project-URL: Homepage, https://github.com/yzerlaut/physion
|
|
@@ -23,10 +23,16 @@ Requires-Dist: pandas>=1.4.4
|
|
|
23
23
|
Requires-Dist: pyqt5.sip
|
|
24
24
|
Requires-Dist: pyqtgraph
|
|
25
25
|
Requires-Dist: pyqtdarktheme
|
|
26
|
-
Requires-Dist: opencv-python
|
|
26
|
+
Requires-Dist: opencv-python
|
|
27
|
+
Requires-Dist: opencv-contrib-python
|
|
28
|
+
Requires-Dist: ffmpeg-python
|
|
27
29
|
Requires-Dist: pyqt5
|
|
30
|
+
Requires-Dist: openpyxl
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
<!-- ** Build Instructions ** -->
|
|
33
|
+
<!-- python -m build -->
|
|
34
|
+
<!-- python -m twine upload --repository pypi dist/* -->
|
|
35
|
+
<!-- -->
|
|
30
36
|
|
|
31
37
|
<div><img src="./docs/icons/physion.png" alt="physion logo" width="35%" align="right" style="margin-left: 10px"></div>
|
|
32
38
|
|
|
@@ -48,15 +54,25 @@ The different modules are detailed in the [documentation below](README.md#module
|
|
|
48
54
|
|
|
49
55
|
## Install
|
|
50
56
|
|
|
51
|
-
|
|
57
|
+
Create a `"physion"` environment running `python 3.11`, with:
|
|
58
|
+
|
|
52
59
|
```
|
|
53
|
-
|
|
60
|
+
conda create -n "physion" python=3.11
|
|
54
61
|
```
|
|
55
62
|
|
|
56
|
-
|
|
63
|
+
Then simply:
|
|
64
|
+
```
|
|
65
|
+
pip install physion
|
|
66
|
+
```
|
|
57
67
|
|
|
58
68
|
**For an installation on an acquisition setup, see the detailed steps in [docs/install/README.md](./docs/install/README.md)**
|
|
59
69
|
|
|
70
|
+
#### troubleshooting
|
|
71
|
+
|
|
72
|
+
- the `PyQt` package can be broken after those steps, re-start from a fresh install with `pip uninstall PyQt5` and `pip install PyQt5`.
|
|
73
|
+
- In linux, the `libqxcb.so` binding is making problems, this can be solved by deleting the following file: `rm ~/miniconda3/lib/python3.11/site-packages/cv2/qt/plugins/platforms/libqxcb.so`.
|
|
74
|
+
- In linux, there can be a `krb5` version mismatch between Qt and Ubuntu packages. Download the latest on [the kerboeros website](https://web.mit.edu/kerberos/) and install it from source with: `tar xf krb5-1.18.2.tar.gz; cd krb5-1.18.2/src; ./configure --prefix=/opt/krb5/ ; make && sudo make install`. Then do the binding with: `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/krb5/lib` (you can put this in your `~/.bashrc`).
|
|
75
|
+
|
|
60
76
|
## Usage
|
|
61
77
|
|
|
62
78
|
Run:
|
|
@@ -84,7 +100,8 @@ The different modules of the software are documented in the following links:
|
|
|
84
100
|
- [Hardware control](src/physion/hardware/README.md)
|
|
85
101
|
- [Visualization](src/physion/dataviz/README.md)
|
|
86
102
|
- [Analysis](src/physion/analysis/README.md)
|
|
87
|
-
- [
|
|
103
|
+
- [Data Management](src/physion/utils/management/README.md)
|
|
104
|
+
- [Data Sharing](src/physion/utils/sharing/README.md)
|
|
88
105
|
|
|
89
106
|
## Troubleshooting / Issues
|
|
90
107
|
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- ** Build Instructions ** -->
|
|
2
|
+
<!-- python -m build -->
|
|
3
|
+
<!-- python -m twine upload --repository pypi dist/* -->
|
|
4
|
+
<!-- -->
|
|
2
5
|
|
|
3
6
|
<div><img src="./docs/icons/physion.png" alt="physion logo" width="35%" align="right" style="margin-left: 10px"></div>
|
|
4
7
|
|
|
@@ -20,15 +23,25 @@ The different modules are detailed in the [documentation below](README.md#module
|
|
|
20
23
|
|
|
21
24
|
## Install
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
Create a `"physion"` environment running `python 3.11`, with:
|
|
27
|
+
|
|
24
28
|
```
|
|
25
|
-
|
|
29
|
+
conda create -n "physion" python=3.11
|
|
26
30
|
```
|
|
27
31
|
|
|
28
|
-
|
|
32
|
+
Then simply:
|
|
33
|
+
```
|
|
34
|
+
pip install physion
|
|
35
|
+
```
|
|
29
36
|
|
|
30
37
|
**For an installation on an acquisition setup, see the detailed steps in [docs/install/README.md](./docs/install/README.md)**
|
|
31
38
|
|
|
39
|
+
#### troubleshooting
|
|
40
|
+
|
|
41
|
+
- the `PyQt` package can be broken after those steps, re-start from a fresh install with `pip uninstall PyQt5` and `pip install PyQt5`.
|
|
42
|
+
- In linux, the `libqxcb.so` binding is making problems, this can be solved by deleting the following file: `rm ~/miniconda3/lib/python3.11/site-packages/cv2/qt/plugins/platforms/libqxcb.so`.
|
|
43
|
+
- In linux, there can be a `krb5` version mismatch between Qt and Ubuntu packages. Download the latest on [the kerboeros website](https://web.mit.edu/kerberos/) and install it from source with: `tar xf krb5-1.18.2.tar.gz; cd krb5-1.18.2/src; ./configure --prefix=/opt/krb5/ ; make && sudo make install`. Then do the binding with: `export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/krb5/lib` (you can put this in your `~/.bashrc`).
|
|
44
|
+
|
|
32
45
|
## Usage
|
|
33
46
|
|
|
34
47
|
Run:
|
|
@@ -56,7 +69,8 @@ The different modules of the software are documented in the following links:
|
|
|
56
69
|
- [Hardware control](src/physion/hardware/README.md)
|
|
57
70
|
- [Visualization](src/physion/dataviz/README.md)
|
|
58
71
|
- [Analysis](src/physion/analysis/README.md)
|
|
59
|
-
- [
|
|
72
|
+
- [Data Management](src/physion/utils/management/README.md)
|
|
73
|
+
- [Data Sharing](src/physion/utils/sharing/README.md)
|
|
60
74
|
|
|
61
75
|
## Troubleshooting / Issues
|
|
62
76
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "physion"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.2"
|
|
4
4
|
authors = [
|
|
5
5
|
{ name="Yann Zerlaut", email="yann.zerlaut@gmail.com" },
|
|
6
6
|
]
|
|
@@ -24,8 +24,11 @@ dependencies = [
|
|
|
24
24
|
"pyqt5.sip",
|
|
25
25
|
"pyqtgraph",
|
|
26
26
|
"pyqtdarktheme",
|
|
27
|
-
"opencv-python
|
|
27
|
+
"opencv-python",
|
|
28
|
+
"opencv-contrib-python",
|
|
29
|
+
"ffmpeg-python",
|
|
28
30
|
"pyqt5",
|
|
31
|
+
"openpyxl",
|
|
29
32
|
]
|
|
30
33
|
|
|
31
34
|
[tool.setuptools.packages.find]
|
|
@@ -34,7 +37,7 @@ where = ["src"]
|
|
|
34
37
|
"physion.acquisition.protocols" = ["*.json"]
|
|
35
38
|
"physion.acquisition.configs" = ["*.json"]
|
|
36
39
|
"physion.acquisition.interventions" = ["*.json"]
|
|
37
|
-
"physion.acquisition.subjects" = ["*.
|
|
40
|
+
"physion.acquisition.subjects" = ["*.xlsx"]
|
|
38
41
|
|
|
39
42
|
[project.urls]
|
|
40
43
|
"Homepage" = "https://github.com/yzerlaut/physion"
|
|
@@ -1,17 +1,20 @@
|
|
|
1
|
-
import sys
|
|
1
|
+
import sys, os
|
|
2
2
|
from PyQt5 import QtWidgets
|
|
3
3
|
|
|
4
4
|
from physion.gui.main import MainWindow
|
|
5
5
|
app = QtWidgets.QApplication(sys.argv)
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
try:
|
|
9
8
|
import qdarktheme # pip install pyqtdarktheme
|
|
10
9
|
app.setStyleSheet(qdarktheme.load_stylesheet('dark'))
|
|
11
10
|
except ModuleNotFoundError:
|
|
12
11
|
pass
|
|
13
12
|
|
|
14
|
-
GUI = MainWindow(app
|
|
13
|
+
GUI = MainWindow(app,
|
|
14
|
+
filename=sys.argv[-1] if (('.nwb' in sys.argv[-1]) and \
|
|
15
|
+
os.path.isfile(sys.argv[-1])) else None,
|
|
16
|
+
folder=sys.argv[-1] if ((len(sys.argv)>1) and \
|
|
17
|
+
os.path.isdir(sys.argv[-1])) else None)
|
|
15
18
|
|
|
16
19
|
sys.exit(app.exec_())
|
|
17
20
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"NIdaq-acquisition-frequency":10000,
|
|
3
|
+
"NIdaq-analog-input-channels":1,
|
|
4
|
+
"NIdaq-digital-input-channels":2,
|
|
5
|
+
"Rig":"Bacci-2P-setup",
|
|
6
|
+
"Screen":"Dell-2020",
|
|
7
|
+
"Z-sign-correction-for-rig":1,
|
|
8
|
+
"FaceCamera-frame-rate":30,
|
|
9
|
+
"FaceCamera-1cm-in-pix":480,
|
|
10
|
+
"RigCamera-frame-rate":20,
|
|
11
|
+
"RigCamera-1cm-in-pix":33, "TO BE DETERMINED !!":"",
|
|
12
|
+
"Height-of-Microscope-Camera-Image-in-mm":10000.0, "TO BE DETERMINED !!":"",
|
|
13
|
+
"rotating-disk":{"radius-position-on-disk-cm":5.5,
|
|
14
|
+
"roto-encoder-value-per-rotation": -12563.0},
|
|
15
|
+
"root_datafolder":"DATA",
|
|
16
|
+
"subjects_folder":"Adrianna",
|
|
17
|
+
"experimenter":"Adrianna Nozownik",
|
|
18
|
+
"lab":"Rebola and Bacci labs",
|
|
19
|
+
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
20
|
+
"protocols":"all"
|
|
21
|
+
}
|
|
@@ -3,19 +3,15 @@
|
|
|
3
3
|
"NIdaq-analog-input-channels":1,
|
|
4
4
|
"NIdaq-digital-input-channels":2,
|
|
5
5
|
"Rig":"Bacci-2P-setup",
|
|
6
|
-
"Screen":"Dell-2020",
|
|
6
|
+
"Screen":"Dell-2020",
|
|
7
7
|
"Z-sign-correction-for-rig":1,
|
|
8
8
|
"FaceCamera-frame-rate":30,
|
|
9
9
|
"FaceCamera-1cm-in-pix":480,
|
|
10
10
|
"Height-of-Microscope-Camera-Image-in-mm":10000.0, "TO BE DETERMINED !!":"",
|
|
11
|
-
"STEP_FOR_CA_IMAGING_TRIGGER":{"channel":0,
|
|
12
|
-
"onset": 0.1,
|
|
13
|
-
"duration":0.3,
|
|
14
|
-
"value":5.0},
|
|
15
11
|
"rotating-disk":{"radius-position-on-disk-cm":5.5,
|
|
16
12
|
"roto-encoder-value-per-rotation": -12563.0},
|
|
17
13
|
"root_datafolder":"DATA",
|
|
18
|
-
"
|
|
14
|
+
"subjects_folder":"Jo",
|
|
19
15
|
"experimenter":"Joana Lourenco",
|
|
20
16
|
"lab":"Rebola and Bacci labs",
|
|
21
17
|
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
@@ -4,19 +4,15 @@
|
|
|
4
4
|
"NIdaq-digital-input-channels":2,
|
|
5
5
|
"Screen":"Dell-2020",
|
|
6
6
|
"Rig":"ICM-A1-2P-setup",
|
|
7
|
-
"Screen":"Dell-2020",
|
|
7
|
+
"Screen":"Dell-2020",
|
|
8
8
|
"Z-sign-correction-for-rig":-1,
|
|
9
9
|
"FaceCamera-frame-rate":30,
|
|
10
10
|
"FaceCamera-1cm-in-pix":480,
|
|
11
11
|
"Height-of-Microscope-Camera-Image-in-mm":2.7,
|
|
12
|
-
"STEP_FOR_CA_IMAGING_TRIGGER":{"channel":0,
|
|
13
|
-
"onset": 0.1,
|
|
14
|
-
"duration":0.3,
|
|
15
|
-
"value":5.0},
|
|
16
12
|
"rotating-disk":{"radius-position-on-disk-cm":9.0,
|
|
17
13
|
"roto-encoder-value-per-rotation": -25300.0},
|
|
18
14
|
"root_datafolder":"DATA",
|
|
19
|
-
"
|
|
15
|
+
"subjects_folder":"Taddy",
|
|
20
16
|
"experimenter":"Dhanasak Dhanasobhon",
|
|
21
17
|
"lab":"Rebola and Bacci labs",
|
|
22
18
|
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
@@ -5,14 +5,11 @@
|
|
|
5
5
|
"FaceCamera-frame-rate":30,
|
|
6
6
|
"FaceCamera-1cm-in-pix":480,
|
|
7
7
|
"Screen":"Dell-2020",
|
|
8
|
-
"
|
|
9
|
-
"onset": 0.1,
|
|
10
|
-
"duration":0.3,
|
|
11
|
-
"value":5.0},
|
|
8
|
+
"Height-of-Microscope-Camera-Image-in-mm":2.7,
|
|
12
9
|
"rotating-disk":{"radius-position-on-disk-cm":5.5,
|
|
13
10
|
"roto-encoder-value-per-rotation": -12563.0},
|
|
14
11
|
"root_datafolder":"DATA",
|
|
15
|
-
"
|
|
12
|
+
"subjects_folder":"Yann",
|
|
16
13
|
"experimenter":"Yann Zerlaut",
|
|
17
14
|
"lab":"Rebola and Bacci labs",
|
|
18
15
|
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"rotating-disk":{"radius-position-on-disk-cm":9.0,
|
|
14
14
|
"roto-encoder-value-per-rotation": -25300.0},
|
|
15
15
|
"root_datafolder":"DATA",
|
|
16
|
-
"
|
|
16
|
+
"subjects_folder":"Yann",
|
|
17
17
|
"experimenter":"Yann Zerlaut",
|
|
18
18
|
"lab":"Rebola and Bacci labs",
|
|
19
19
|
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
@@ -1,21 +1,19 @@
|
|
|
1
1
|
{
|
|
2
|
-
"NIdaq-acquisition-frequency":
|
|
2
|
+
"NIdaq-acquisition-frequency":10000,
|
|
3
3
|
"NIdaq-analog-input-channels":1,
|
|
4
4
|
"NIdaq-digital-input-channels":2,
|
|
5
5
|
"Rig":"Bacci-2P-setup",
|
|
6
|
-
"Screen":"Dell-2020",
|
|
6
|
+
"Screen":"Dell-2020",
|
|
7
7
|
"Z-sign-correction-for-rig":1,
|
|
8
8
|
"FaceCamera-frame-rate":30,
|
|
9
9
|
"FaceCamera-1cm-in-pix":480,
|
|
10
|
+
"RigCamera-frame-rate":20,
|
|
11
|
+
"RigCamera-1cm-in-pix":33, "TO BE DETERMINED !!":"",
|
|
10
12
|
"Height-of-Microscope-Camera-Image-in-mm":10000.0, "TO BE DETERMINED !!":"",
|
|
11
|
-
"STEP_FOR_CA_IMAGING_TRIGGER":{"channel":0,
|
|
12
|
-
"onset": 0.1,
|
|
13
|
-
"duration":0.3,
|
|
14
|
-
"value":5.0},
|
|
15
13
|
"rotating-disk":{"radius-position-on-disk-cm":5.5,
|
|
16
|
-
|
|
14
|
+
"roto-encoder-value-per-rotation": -12563.0},
|
|
17
15
|
"root_datafolder":"DATA",
|
|
18
|
-
"
|
|
16
|
+
"subjects_folder":"Yann",
|
|
19
17
|
"experimenter":"Yann Zerlaut",
|
|
20
18
|
"lab":"Rebola and Bacci labs",
|
|
21
19
|
"institution":"Institut du Cerveau et de la Moelle, Paris",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
from PyQt5 import QtWidgets, QtCore
|
|
2
2
|
import sys, time, os, pathlib, json, tempfile
|
|
3
3
|
import numpy as np
|
|
4
|
-
import multiprocessing # different processes (cameras, visual stim, ...) are sent on different threads...
|
|
4
|
+
import multiprocessing # different processes (cameras, visual stim, ...) are sent on different threads...)
|
|
5
5
|
from ctypes import c_char_p
|
|
6
6
|
import pyqtgraph as pg
|
|
7
7
|
import subprocess
|
|
@@ -13,6 +13,8 @@ from physion.visual_stim.screens import SCREENS
|
|
|
13
13
|
from physion.acquisition.settings import load_settings
|
|
14
14
|
from physion.assembling.gui import build_cmd
|
|
15
15
|
|
|
16
|
+
from physion.acquisition import MODALITIES
|
|
17
|
+
|
|
16
18
|
def multimodal(self,
|
|
17
19
|
tab_id=0):
|
|
18
20
|
|
|
@@ -23,13 +25,7 @@ def multimodal(self,
|
|
|
23
25
|
|
|
24
26
|
self.config = None
|
|
25
27
|
self.subject, self.protocol = None, {}
|
|
26
|
-
self.MODALITIES =
|
|
27
|
-
'FaceCamera',
|
|
28
|
-
'RigCamera',
|
|
29
|
-
'EphysLFP',
|
|
30
|
-
'EphysVm',
|
|
31
|
-
'CaImaging',
|
|
32
|
-
'onlyDemo']
|
|
28
|
+
self.MODALITIES = MODALITIES
|
|
33
29
|
|
|
34
30
|
##########################################
|
|
35
31
|
######## Multiprocessing quantities #####
|
|
@@ -37,8 +33,6 @@ def multimodal(self,
|
|
|
37
33
|
# to be used through multiprocessing.Process:
|
|
38
34
|
self.runEvent = multiprocessing.Event() # to turn on/off recordings
|
|
39
35
|
self.runEvent.clear()
|
|
40
|
-
self.readyEvent = multiprocessing.Event() # to tell of buffering finished
|
|
41
|
-
self.readyEvent.clear()
|
|
42
36
|
self.quitEvent = multiprocessing.Event()
|
|
43
37
|
self.quitEvent.clear()
|
|
44
38
|
self.manager = multiprocessing.Manager() # to share a str across processes
|
|
@@ -52,7 +46,6 @@ def multimodal(self,
|
|
|
52
46
|
self.screen, self.stop_flag = None, False
|
|
53
47
|
self.FaceCamera_process = None
|
|
54
48
|
self.RigCamera_process = None
|
|
55
|
-
self.VisualStim_process = None
|
|
56
49
|
self.RigView_process = None
|
|
57
50
|
self.params_window = None
|
|
58
51
|
|
|
@@ -113,7 +106,7 @@ def multimodal(self,
|
|
|
113
106
|
#------------------- THEN MAIN PANEL -------------------
|
|
114
107
|
ip, width = 0, 4
|
|
115
108
|
tab.layout.addWidget(\
|
|
116
|
-
QtWidgets.QLabel(40*' '+'**
|
|
109
|
+
QtWidgets.QLabel(40*' '+'** Configuration **', self),
|
|
117
110
|
ip, self.side_wdgt_length,
|
|
118
111
|
1, width)
|
|
119
112
|
ip+=1
|
|
@@ -158,6 +151,7 @@ def multimodal(self,
|
|
|
158
151
|
ip+=1
|
|
159
152
|
# -
|
|
160
153
|
self.protocolBox= QtWidgets.QComboBox(self)
|
|
154
|
+
# self.protocolBox.activated.connect(self.update_visualStim)
|
|
161
155
|
tab.layout.addWidget(self.protocolBox,\
|
|
162
156
|
ip, self.side_wdgt_length+1,
|
|
163
157
|
1, width)
|
|
@@ -195,23 +189,17 @@ def multimodal(self,
|
|
|
195
189
|
|
|
196
190
|
# NOW MENU INTERACTION BUTTONS
|
|
197
191
|
ip, width = 1, 5
|
|
198
|
-
self.
|
|
199
|
-
self.initButton.clicked.connect(self.initialize)
|
|
200
|
-
tab.layout.addWidget(self.initButton,
|
|
201
|
-
ip, 10, 1, width)
|
|
202
|
-
ip+=2
|
|
203
|
-
self.runButton = QtWidgets.QPushButton(' * RUN *')
|
|
192
|
+
self.runButton = QtWidgets.QPushButton(' * START *')
|
|
204
193
|
self.runButton.clicked.connect(self.run)
|
|
205
194
|
tab.layout.addWidget(self.runButton,
|
|
206
195
|
ip, 10, 1, width)
|
|
207
|
-
self.runButton.setEnabled(False)
|
|
208
196
|
ip+=1
|
|
209
197
|
self.stopButton = QtWidgets.QPushButton(' * Stop *')
|
|
210
198
|
self.stopButton.clicked.connect(self.stop)
|
|
211
199
|
tab.layout.addWidget(self.stopButton,
|
|
212
200
|
ip, 10, 1, width)
|
|
213
201
|
|
|
214
|
-
for button in [self.
|
|
202
|
+
for button in [self.runButton, self.stopButton]:
|
|
215
203
|
button.setStyleSheet("font-weight: bold")
|
|
216
204
|
|
|
217
205
|
ip+=2
|
|
@@ -229,14 +217,13 @@ def multimodal(self,
|
|
|
229
217
|
load_settings(self)
|
|
230
218
|
|
|
231
219
|
if self.animate_buttons:
|
|
232
|
-
self.initButton.setEnabled(True)
|
|
233
220
|
self.runButton.setEnabled(False)
|
|
234
221
|
self.stopButton.setEnabled(False)
|
|
235
222
|
|
|
236
223
|
def build_NWB_for_last():
|
|
237
224
|
# last folder
|
|
238
|
-
folder = last_datafolder_in_dayfolder(day_folder(FOLDERS[
|
|
239
|
-
print(folder)
|
|
225
|
+
folder = last_datafolder_in_dayfolder(day_folder(FOLDERS[list(FOLDERS.keys())[0]]))
|
|
226
|
+
print('[ ] build NWB file for recording: ', folder)
|
|
240
227
|
if os.path.isdir(folder):
|
|
241
228
|
cmd, cwd = build_cmd(folder)
|
|
242
229
|
print('\n launching the command \n : %s \n ' % cmd)
|
{physion-1.0 → physion-1.2}/src/physion/acquisition/protocols/FFDG-contrast-curve+blank.json
RENAMED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Presentation": "multiprotocol",
|
|
3
3
|
"shuffling" :"full",
|
|
4
|
-
"shuffling-seed" :34,
|
|
4
|
+
"shuffling-seed" :34,
|
|
5
|
+
"movie_refresh_freq":30.0,
|
|
6
|
+
"units":"cm",
|
|
5
7
|
"Protocol-1": "subprotocols/contrast-curves/ff-drifting-gratings-4orientation-5contrasts-log-spaced-10repeats.json",
|
|
6
8
|
"Protocol-2": "subprotocols/blank/grey-5min.json",
|
|
7
9
|
"Protocol-3": "subprotocols/blank/black-5min.json",
|
|
8
|
-
"presentation-blank-screen-color": 0,
|
|
10
|
+
"presentation-blank-screen-color": 0.5,
|
|
9
11
|
"presentation-prestim-period": 2.0,
|
|
10
12
|
"presentation-poststim-period": 2.0,
|
|
11
13
|
"presentation-interstim-period": 4.0,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"Presentation": "multiprotocol",
|
|
3
|
-
"shuffling" :"none",
|
|
3
|
+
"shuffling" :"none",
|
|
4
|
+
"movie_refresh_freq":30.0,
|
|
5
|
+
"units":"cm",
|
|
4
6
|
"Protocol-1": "subprotocols/blank/black-5min.json",
|
|
5
7
|
"Protocol-2": "subprotocols/blank/grey-5min.json",
|
|
6
8
|
"Protocol-3": "subprotocols/blank/black-10min.json",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Presentation": "Stimuli-Sequence",
|
|
3
|
+
"Stimulus": "center-drifting-grating",
|
|
4
|
+
"Screen": "Dell-2020",
|
|
5
|
+
"movie_refresh_freq":20,
|
|
6
|
+
"presentation-duration": 2.0,
|
|
7
|
+
"presentation-blank-screen-color": 0.5,
|
|
8
|
+
"presentation-prestim-period": 5.0,
|
|
9
|
+
"presentation-poststim-period": 5.0,
|
|
10
|
+
"presentation-interstim-period": 2.0,
|
|
11
|
+
"units":"cm",
|
|
12
|
+
"starting-index": 0,
|
|
13
|
+
"angle-1": 0.0,
|
|
14
|
+
"angle-2": 315.0,
|
|
15
|
+
"N-angle": 8,
|
|
16
|
+
"spatial-freq-1": 0.04,
|
|
17
|
+
"spatial-freq-2": 0.04,
|
|
18
|
+
"N-spatial-freq": 0,
|
|
19
|
+
"speed-1": 1.0,
|
|
20
|
+
"speed-2": 1.0,
|
|
21
|
+
"N-speed": 0,
|
|
22
|
+
"radius-1": 200,
|
|
23
|
+
"radius-2": 200,
|
|
24
|
+
"N-radius": 0,
|
|
25
|
+
"x-center-1": 0.0,
|
|
26
|
+
"x-center-2": 0.0,
|
|
27
|
+
"N-x-center": 0,
|
|
28
|
+
"y-center-1": 0.0,
|
|
29
|
+
"y-center-2": 0.0,
|
|
30
|
+
"N-y-center": 0,
|
|
31
|
+
"contrast-1": 0.05,
|
|
32
|
+
"contrast-2": 0.8,
|
|
33
|
+
"N-contrast": 6,
|
|
34
|
+
"bg-color-1": 0.5,
|
|
35
|
+
"bg-color-2": 0.5,
|
|
36
|
+
"N-bg-color": 0,
|
|
37
|
+
"phase-1": 90.0,
|
|
38
|
+
"phase-2": 90.0,
|
|
39
|
+
"N-phase": 0,
|
|
40
|
+
"N-repeat": 10
|
|
41
|
+
}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"Presentation": "multiprotocol",
|
|
2
|
+
"Presentation": "multiprotocol",
|
|
3
|
+
"Screen": "Dell-2020",
|
|
4
|
+
"movie_refresh_freq":30.0,
|
|
5
|
+
"units":"cm",
|
|
3
6
|
"shuffling" :"full",
|
|
4
7
|
"shuffling-seed" :23,
|
|
5
8
|
"Protocol-1": "subprotocols/NDNF/moving-dots.json",
|
|
@@ -7,11 +10,10 @@
|
|
|
7
10
|
"Protocol-3": "subprotocols/NDNF/static-patch.json",
|
|
8
11
|
"Protocol-4": "subprotocols/NDNF/looming-stim.json",
|
|
9
12
|
"Protocol-5": "subprotocols/NDNF/Natural-Images-4-repeats.json",
|
|
10
|
-
"Protocol-6": "subprotocols/blank/grey-
|
|
13
|
+
"Protocol-6": "subprotocols/blank/grey-20min.json",
|
|
11
14
|
"Protocol-7": "subprotocols/NDNF/drifting-gratings.json",
|
|
12
15
|
"presentation-blank-screen-color": 0.5,
|
|
13
16
|
"presentation-prestim-period": 6,
|
|
14
17
|
"presentation-poststim-period": 6,
|
|
15
|
-
"presentation-interstim-period": 4
|
|
16
|
-
"Screen": "Dell-2020"
|
|
18
|
+
"presentation-interstim-period": 4
|
|
17
19
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Presentation": "Stimuli-Sequence",
|
|
3
|
+
"Stimulus": "uniform-bg",
|
|
4
|
+
"Screen": "Dell-2020",
|
|
5
|
+
"movie_refresh_freq":30,
|
|
6
|
+
"presentation-duration": 20,
|
|
7
|
+
"presentation-blank-screen-color": 0.5,
|
|
8
|
+
"presentation-prestim-period": 2,
|
|
9
|
+
"presentation-poststim-period": 2,
|
|
10
|
+
"presentation-interstim-period": 0,
|
|
11
|
+
"N-repeat": 5,
|
|
12
|
+
"starting-index": 0,
|
|
13
|
+
"bg-color-1": 0.0,
|
|
14
|
+
"bg-color-2": 1.0,
|
|
15
|
+
"N-bg-color": 3
|
|
16
|
+
}
|
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
"Presentation": "Stimuli-Sequence",
|
|
3
3
|
"Stimulus": "center-drifting-grating",
|
|
4
4
|
"Screen": "Dell-2020",
|
|
5
|
-
"movie_refresh_freq":
|
|
5
|
+
"movie_refresh_freq":30.0,
|
|
6
|
+
"units":"cm",
|
|
6
7
|
"presentation-duration": 3.0,
|
|
7
|
-
"presentation-blank-screen-color": 0,
|
|
8
|
+
"presentation-blank-screen-color": 0.5,
|
|
8
9
|
"presentation-prestim-period": 6.0,
|
|
9
10
|
"presentation-poststim-period": 6.0,
|
|
10
11
|
"presentation-interstim-period": 6.0,
|
|
11
|
-
"
|
|
12
|
+
"N-repeat": 10,
|
|
12
13
|
"angle-1": 0.0,
|
|
13
14
|
"angle-2": 270.0,
|
|
14
15
|
"N-angle": 4,
|
|
15
|
-
"spatial-freq-1": 0.
|
|
16
|
-
"spatial-freq-2": 0.
|
|
16
|
+
"spatial-freq-1": 0.05,
|
|
17
|
+
"spatial-freq-2": 0.05,
|
|
17
18
|
"N-spatial-freq": 0,
|
|
18
|
-
"speed-1":
|
|
19
|
-
"speed-2":
|
|
19
|
+
"speed-1": 1.0,
|
|
20
|
+
"speed-2": 1.0,
|
|
20
21
|
"N-speed": 0,
|
|
21
22
|
"radius-1": 200,
|
|
22
23
|
"radius-2": 200,
|
|
@@ -27,11 +28,13 @@
|
|
|
27
28
|
"y-center-1": 0.0,
|
|
28
29
|
"y-center-2": 0.0,
|
|
29
30
|
"N-y-center": 0,
|
|
30
|
-
"contrast-1":
|
|
31
|
+
"contrast-1": 0.2,
|
|
31
32
|
"contrast-2": 1.0,
|
|
32
|
-
"N-contrast":
|
|
33
|
+
"N-contrast": 3,
|
|
33
34
|
"bg-color-1": 0.5,
|
|
34
35
|
"bg-color-2": 0.5,
|
|
35
36
|
"N-bg-color": 0,
|
|
36
|
-
"
|
|
37
|
+
"phase-1": 90.0,
|
|
38
|
+
"phase-2": 90.0,
|
|
39
|
+
"N-phase": 0
|
|
37
40
|
}
|
physion-1.2/src/physion/acquisition/protocols/ff-gratings-2orientations-8contrasts-15repeats.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Presentation": "Stimuli-Sequence",
|
|
3
|
+
"Stimulus": "center-grating",
|
|
4
|
+
"Screen": "Dell-2020",
|
|
5
|
+
"shuffling-seed": 1,
|
|
6
|
+
"movie_refresh_freq":30.0,
|
|
7
|
+
"units":"lin-deg",
|
|
8
|
+
"presentation-duration": 2,
|
|
9
|
+
"presentation-prestim-period": 4,
|
|
10
|
+
"presentation-poststim-period": 4,
|
|
11
|
+
"presentation-interstim-period": 4,
|
|
12
|
+
"presentation-blank-screen-color": 0.5,
|
|
13
|
+
"N-repeat": 15,
|
|
14
|
+
"angle-1": 0,
|
|
15
|
+
"angle-2": 90,
|
|
16
|
+
"N-angle": 2,
|
|
17
|
+
"spatial-freq-1": 0.04,
|
|
18
|
+
"spatial-freq-2": 0.04,
|
|
19
|
+
"N-spatial-freq": 0,
|
|
20
|
+
"radius-1": 200,
|
|
21
|
+
"radius-2": 200,
|
|
22
|
+
"N-radius": 0,
|
|
23
|
+
"x-center-1": 0.0,
|
|
24
|
+
"x-center-2": 0.0,
|
|
25
|
+
"N-x-center": 0,
|
|
26
|
+
"y-center-1": 0.0,
|
|
27
|
+
"y-center-2": 0.0,
|
|
28
|
+
"N-y-center": 0,
|
|
29
|
+
"contrast-1": 0.05,
|
|
30
|
+
"contrast-2": 1.0,
|
|
31
|
+
"N-contrast": 8,
|
|
32
|
+
"bg-color-1": 0.5,
|
|
33
|
+
"bg-color-2": 0.5,
|
|
34
|
+
"N-bg-color": 0,
|
|
35
|
+
"phase-1": 90.0,
|
|
36
|
+
"phase-2": 90.0,
|
|
37
|
+
"N-phase": 0
|
|
38
|
+
}
|
physion-1.2/src/physion/acquisition/protocols/ff-gratings-8orientation-2contrasts-15repeats.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Presentation": "Stimuli-Sequence",
|
|
3
|
+
"Stimulus": "center-grating",
|
|
4
|
+
"Screen": "Dell-2020",
|
|
5
|
+
"shuffling-seed": 1,
|
|
6
|
+
"movie_refresh_freq":30.0,
|
|
7
|
+
"units":"lin-deg",
|
|
8
|
+
"presentation-duration": 2,
|
|
9
|
+
"presentation-prestim-period": 4,
|
|
10
|
+
"presentation-poststim-period": 4,
|
|
11
|
+
"presentation-interstim-period": 4,
|
|
12
|
+
"presentation-blank-screen-color": 0.5,
|
|
13
|
+
"N-repeat": 15,
|
|
14
|
+
"angle-1": 0,
|
|
15
|
+
"angle-2": 157.5,
|
|
16
|
+
"N-angle": 8,
|
|
17
|
+
"spatial-freq-1": 0.04,
|
|
18
|
+
"spatial-freq-2": 0.04,
|
|
19
|
+
"N-spatial-freq": 0,
|
|
20
|
+
"radius-1": 200,
|
|
21
|
+
"radius-2": 200,
|
|
22
|
+
"N-radius": 0,
|
|
23
|
+
"x-center-1": 0.0,
|
|
24
|
+
"x-center-2": 0.0,
|
|
25
|
+
"N-x-center": 0,
|
|
26
|
+
"y-center-1": 0.0,
|
|
27
|
+
"y-center-2": 0.0,
|
|
28
|
+
"N-y-center": 0,
|
|
29
|
+
"contrast-1": 0.5,
|
|
30
|
+
"contrast-2": 1.0,
|
|
31
|
+
"N-contrast": 2,
|
|
32
|
+
"bg-color-1": 0.5,
|
|
33
|
+
"bg-color-2": 0.5,
|
|
34
|
+
"N-bg-color": 0,
|
|
35
|
+
"phase-1": 90.0,
|
|
36
|
+
"phase-2": 90.0,
|
|
37
|
+
"N-phase": 0
|
|
38
|
+
}
|