Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

runParca --debug-parca raises KeyError: 'FNR-4FE-4S-CPLX__FNR-4FE-4S-CPLX__active' #1165

Open
1fish2 opened this issue Sep 2, 2021 · 3 comments
Labels

Comments

@1fish2
Copy link
Contributor

1fish2 commented Sep 2, 2021

runParca.py --debug-parca raises KeyError: 'FNR-4FE-4S-CPLX__FNR-4FE-4S-CPLX__active'.

This might depend on which transcription factor condition it randomly selects.

It's also possible that I introduced a bug in the compose-variants branch, which has code to run parca for {monocistronic, polycistronic, both, none} operons, where the operon choice currently just overrides variable_elongation_transcription as a placeholder.

/usr/local/var/pyenv/versions/wcEcoli3/bin/python3 "/Users/jerry/Library/Application Support/JetBrains/Toolbox/apps/PyCharm-P/ch-0/212.4746.96/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 65326 --file /Users/jerry/dev/wcEcoli/runscripts/manual/runParca.py operon_none --operons none --debug-parca
Connected to pydev debugger (build 212.4746.96)
Tue Aug 31 17:19:21 2021: RunParca at /Users/jerry/dev/wcEcoli/out/operon_none
{'Arguments': {'cpus': 1,
               'debug_parca': True,
               'description': 'operon_none',
               'intermediates_directory': None,
               'load_intermediate': None,
               'operons': 'none',
               'ribosome_fitting': True,
               'rnapoly_fitting': True,
               'save_intermediates': False,
               'sim_outdir': 'operon_none',
               'sim_path': '/Users/jerry/dev/wcEcoli/out/operon_none',
               'time': '20210831.171921',
               'timestamp': False,
               'variable_elongation_transcription': True,
               'variable_elongation_translation': False,
               'verbose': False}}
DEBUG Parca
Tue Aug 31 17:19:21 2021: Instantiating raw_data
Tue Aug 31 17:19:27 2021: Saving raw_data
Tue Aug 31 17:19:27 2021: Calculating '' sim_data parameters
fitSimData_1 kwargs={'cpus': 1, 'debug': True, 'load_intermediate': None, 'save_intermediates': False, 'intermediates_directory': '/Users/jerry/dev/wcEcoli/out/operon_none/kb', 'variable_elongation_transcription': True, 'variable_elongation_translation': False, 'disable_ribosome_capacity_fitting': False, 'disable_rnapoly_capacity_fitting': False, 'operon': ''}
Ran initialize in 35 s
Warning: Running the Parca in debug mode - not all conditions will be fit
Ran input_adjustments in 0 s
Fitting RNA synthesis probabilities.
Max derivative (counts) = 0.000000
Max derivative (concentration) = 328748701.579900
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{mul}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{true_div}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{mul}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{true_div}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{mul}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/aesara/graph/fg.py:525: UserWarning: Variable Elemwise{true_div}.0 cannot be replaced; it isn't in the FunctionGraph
  warnings.warn(
Running non-linear optimization to compute /Users/jerry/dev/wcEcoli/cache/parca-km-2593196816.cPickle
Convergence (Jacobian) = 0% (<K> = 2454.60347)
Convergence (Jacobian_aux) = 91% (<K> = 0.98493)
Ran basal_specs in 125 s
Fitting RNA synthesis probabilities.
Fitting RNA synthesis probabilities.
Fitting RNA synthesis probabilities.
Fitting RNA synthesis probabilities.
Fitting RNA synthesis probabilities.
Fitting RNA synthesis probabilities.
Ran tf_condition_specs in 6 s
Fitting condition CPLX-125__active
/usr/local/var/pyenv/versions/wcEcoli3/lib/python3.8/site-packages/scipy/integrate/odepack.py:247: ODEintWarning: Excess work done on this call (perhaps wrong Dfun type). Run with full_output = 1 to get quantitative information.
  warnings.warn(warning_msg, ODEintWarning)
Fitting condition CPLX-125__inactive
Fitting condition acetate
Fitting condition basal
Fitting condition no_oxygen
Fitting condition succinate
Fitting condition with_aa
Ran fit_condition in 120 s
Fitting promoter binding
Traceback (most recent call last):
  File "/Users/jerry/dev/wcEcoli/wholecell/utils/scriptBase.py", line 626, in cli
    self.run(args)
  File "/Users/jerry/dev/wcEcoli/runscripts/manual/runParca.py", line 95, in run
    task.run_task({})
  File "/Users/jerry/dev/wcEcoli/wholecell/fireworks/firetasks/parca.py", line 85, in run_task
    task.run_task(fw_spec)
  File "/Users/jerry/dev/wcEcoli/wholecell/fireworks/firetasks/fitSimData.py", line 140, in run_task
    pool.apply_async(_run_parca_variant, kwds=variant_kwargs)
  File "/Users/jerry/dev/wcEcoli/wholecell/utils/parallelization.py", line 130, in apply_async
    result = func(*args, **kwds)
  File "/Users/jerry/dev/wcEcoli/wholecell/fireworks/firetasks/fitSimData.py", line 64, in _run_parca_variant
    sim_data = fitSimData_1(raw_data, **kwargs)
  File "/Users/jerry/dev/wcEcoli/reconstruction/ecoli/fit_sim_data_1.py", line 111, in fitSimData_1
    sim_data, cell_specs = promoter_binding(sim_data, cell_specs, **kwargs)
  File "/Users/jerry/dev/wcEcoli/reconstruction/ecoli/fit_sim_data_1.py", line 154, in wrapper
    sim_data, cell_specs = func(*args, **kwargs)
  File "/Users/jerry/dev/wcEcoli/reconstruction/ecoli/fit_sim_data_1.py", line 298, in promoter_binding
    fitPromoterBoundProbability(sim_data, cell_specs)
  File "/Users/jerry/dev/wcEcoli/reconstruction/ecoli/fit_sim_data_1.py", line 2862, in fitPromoterBoundProbability
    H, pInit, pAlphaIdxs, pNotAlphaIdxs, fixedTFIdxs, pPromoterBoundIdxs, H_col_name_to_index = build_matrix_H(
  File "/Users/jerry/dev/wcEcoli/reconstruction/ecoli/fit_sim_data_1.py", line 2662, in build_matrix_H
    pPromoterBoundIdxs[condition][tf] = H_col_name_to_index[col_name]
KeyError: 'FNR-4FE-4S-CPLX__FNR-4FE-4S-CPLX__active'
python-BaseException
@1fish2 1fish2 added the bug label Sep 2, 2021
@1fish2
Copy link
Contributor Author

1fish2 commented Sep 2, 2021

It throws the same exception in master.

@ggsun
Copy link
Contributor

ggsun commented Sep 4, 2021

It looks like PR #1128 would have led to this issue. For the debug mode I think this block of code that's throwing the error can be entirely skipped but I might be missing something here... @tahorst?

@tahorst
Copy link
Member

tahorst commented Sep 7, 2021

You're right - I don't think running those blocks is needed for the debug mode but we could also check if the tf is in sim_data.tf_to_active_inactive_conditions like above (not sure why the check uses sort). I think because the debug mode removes most TFs from tf_to_active_inactive_conditions but not condition_active_tfs or condition_inactive_tfs we get a mismatch. I haven't run it with that change so there might be other mismatches elsewhere that could also raise an exception but I think it should fix this issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants