kymata-atlas / kymata-core

Core Kymata codebase, including statistical analysis and plotting tools
https://kymata.org
MIT License
5 stars 0 forks source link

Gridsearch does not support some latency options #338

Open young-x-skyee opened 1 month ago

young-x-skyee commented 1 month ago

There are two arguments call '--start-latency' (default = -200) and '--emeg-t-start' (default = -200) in run_gridsearch. However, when the -emeg-t-start is larger than --start-latency, the do_gridsearch function will run into error (the 11 is a fake channel number):

Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/imaging/projects/cbu/kymata/analyses/tianyi/kymata-core/invokers/run_gridsearch.py", line 327, in <module>
    main()
  File "/imaging/projects/cbu/kymata/analyses/tianyi/kymata-core/invokers/run_gridsearch.py", line 275, in main
    es = do_gridsearch(
         ^^^^^^^^^^^^^^
  File "/imaging/projects/cbu/kymata/analyses/tianyi/kymata-core/kymata/gridsearch/plain.py", line 121, in do_gridsearch
    emeg_reshaped[:, split_i + (j * n_splits), :] = emeg_values[:, j, split_start:split_stop:downsample_rate]
    ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: could not broadcast input array from shape (11,0) into shape (11,400)

Here '--start-latency' is -200 and '--emeg-t-start' is set to 0

young-x-skyee commented 1 month ago

Temporary fix in language branch:

    if start_latency - emeg_t_start < 0:
        n_splits -= 1
        split_initial_timesteps = split_initial_timesteps[1:]
        func = func[1:, :]