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

Unhandled exceptions and KeyError #6

Closed
PatWalters opened this issue May 10, 2022 · 2 comments
Closed

Unhandled exceptions and KeyError #6

PatWalters opened this issue May 10, 2022 · 2 comments

Comments

@PatWalters
Copy link

I tried running JANUS.py but got a number of exceptions. In addition, the script terminated with a KeyError.

Initial population obtained!
Forming Fragments!
    Fragment creation: 0/10000
    Fragment creation: 1000/10000
    Fragment creation: 2000/10000
    Fragment creation: 3000/10000
    Fragment creation: 4000/10000
    Fragment creation: 5000/10000
    Fragment creation: 6000/10000
    Fragment creation: 7000/10000
    Fragment creation: 8000/10000
    Fragment creation: 9000/10000
Process Process-5:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch3_1]'
	SELFIES: [S][C][=N][N][=C][Branch1][Ring1][C][C][C][Branch1][#Branch1][O][C][Branch1][C][C][=O][C][Branch1][C][C][Branch1][C][C][C][N][N][N][Branch3_1][C][C][=C][=C][Branch1][C][N][C][=C][Ring1][#Branch1][C][#Branch1][N]
Process Process-7:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 124, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Expl=Ring3]'
	SELFIES: [C][Expl=Ring3][=C][Branch2][Ring1][=Branch1][C][=C][C][=C][Branch1][#C][C][=C][Ring1][=Branch1][C][=C][C][=C][C][=C][Ring1][=Branch1][Ring1][=C][F][C][Branch1][C][C][C][C][C][N][Branch1][=Branch2][S][Branch1][C][C][=Branch1][C][=O][=O][C][C][Ring1][#Branch2][C][N][Branch1][Branch1][C][C][C][C][C][C][C][C]
Process Process-4:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch1_3]'
	SELFIES: [C][C][=C][Branch1][=Branch1][C][C][=Ring1][=Branch1][Branch1_3][C][C][=C][C][=C][Branch1][C][C][=C][C][=C][Branch1][C][N][C][=N][Ring1][#Branch1][#Branch2][C][N][C][O][C][C][Ring1][=Branch1][C][Branch1][C][O][=C][C][=C][Ring1][=C][O][Ring1][P]
Process Process-6:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch3_2]'
	SELFIES: [C][C][=Branch1][#C][=C][C][=C][C][=Ring1][=Branch1][C][Branch1][C][F][Branch1][C][F][F][C][C][Branch1][C][C][=N][N][C][=Branch1][C][C][C][N][C][C][C][Branch1][C][N][C][C][Ring1][#Branch1][C][O][=C][C][Branch1][O][C][Branch3_2][C][N][C][C][O][C][C][Ring1][=Branch1][=O]
Process Process-8:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch2_1]'
	SELFIES: [C][=Branch1][C][=O][Branch1][C][O][C][N][C][=Branch1][C][=O][C][Branch2][Ring1][=Branch1][N][C][=Branch1][C][=O][C][Branch1][N][C][=C][C][=C][C][Branch2_1][Ring2][=N][Ring1][=Branch1][N][=N][O][C][Ring2][Ring1][C][S][C][C][=Ring2][Ring1][=Branch1][S][C][S][N][=C][Branch1][Ring2][N][=Ring1][Branch1][S][C][C][N]
Process Process-11:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch2_3]'
	SELFIES: [C][C][=C][C][Branch1][=C][C][N][Branch1][C][C][N][C][=Branch1][C][=O][C][S][C][C][C][Ring1][#Branch1][=C][C][=Ring1][O][C][=C][C][=C][C][=C][Ring1][=Branch1][O][C][=C][Branch2_3][Branch1]
Process Process-10:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch3_3]'
	SELFIES: [F][C][=C][C][=C][Branch2][Ring2][O][C][N][C][Branch2][Ring2][Ring2][C][Branch1][#C][C][C][=C][Branch1][=Branch2][C][=C][C][=C][C][=Branch1][C][=O][N][Branch1][C][C][Branch3_3][C][Branch1][C][F][C][=Ring1][#Branch1][F][=N][C][C][Ring1][C][N][C][C][N][C][C][Ring1][=Branch1][=C][=N][C][=Branch1][Branch1][=N][C][=Ring1][=Branch1][N][Branch1][C][C][C][=O][C][=C][Ring2][Ring1][=N]
Process Process-9:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 116, in _derive_mol_from_symbols
    init_state=binit_state, root_atom=prev_atom, rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch3_3]'
	SELFIES: [C][C][Branch1][#Branch2][C][=C][C][=Branch1][Ring2][=C][=Branch1][F][=N][C][=C][Branch2][Ring2][Branch1][N][Branch1][Branch2][C][=N][C][Ring1][=Branch1][=Ring1][=C][N][=C][C][=C][C][=C][Branch1][P][C][=Branch1][Ring2][=C][Ring1][=Branch1][C][Branch3_3][C][N][=C][C][=C][C][=Ring1][=Branch1][O][C][O]
On generation 0/200
    (Explr) Top Fitness: 1.0
    (Explr) Top Smile: C=C1N=CC=C(N=CNc2ccc(N)cc2)N=C(C)[SH]1C
Process Process-27:
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 297, in _bootstrap
    self.run()
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/multiprocessing/process.py", line 99, in run
    self._target(*self._args, **self._kwargs)
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 205, in calc_parr_prop
    props_collect[property_name][smile] = get_prop_material(smile, alphabet=alphabet, num_random_samples=num_random_samples, num_mutations=num_mutations)  # TODO: TESTING
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in get_prop_material
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/software/JANUS/mutate_parr.py", line 129, in 
    mutated_smiles = [decoder(x) for x in mutated_sf]
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 59, in decoder
    rings=rings
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 147, in _derive_mol_from_symbols
    _raise_decoder_error(selfies, symbol)
  File "/home/ubuntu/anaconda3/envs/reinvent.v3.2/lib/python3.7/site-packages/selfies/decoder.py", line 179, in _raise_decoder_error
    raise DecoderError(err_msg)
selfies.exceptions.DecoderError: invalid symbol '[Branch3_2]'
	SELFIES: [C][O][=C][N][C][N][C][=Branch1][C][=O][N][Branch1][=Branch1][N+1][=Branch1][C][=O][O-1][C][Ring1][=Branch2][N][Ring1][N][O][C][=C][C][C][N][C][N][C][N][C][=C][C][=C][Branch1][C][F][C][Branch1][C][F][=C][Ring1][Branch2][=N][C][Branch1][C][C][Branch3_2][Branch1][=Branch1][C][Branch1][C][C][=O][S][Ring1][=Branch2][=C][C][=Ring1][#Branch1][N][C][N][C][C][=C][C][=C][C][=C][Ring1][=Branch1][C][N][=C][Branch1][=C][SH1][Branch1][C][C][C][=C][C][=C][C][=C][Ring1][=Branch1][=Branch1][C][=C][N][=C][C][=Ring1][#Branch2][C]
Traceback (most recent call last):
  File "./JANUS.py", line 308, in 
    mut_smi_dict_local  = mut_smi_dict_local[population[top_idx]]
KeyError: 'C=C1N=CC=C(N=CNc2ccc(N)cc2)N=C(C)[SH]1C'
@PatWalters
Copy link
Author

Figured it out, need to use selfies==1.2

@akshat998
Copy link
Collaborator

@PatWalters,

Thank you for your comment.

Looking at the error message, it seems that that previously, selfies version 2.0.0 or higher was being used with JANUS. These versions have a slightly different character set (hence the errors).

Version 1.0.2 should work fine, however, we suggest using v1.0.3.

Please let me know if there are any further suggestions! :)
Akshat

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

No branches or pull requests

2 participants