code: def encode(self, jtenc_holder, mpn_holder):
      tree_vecs, tree_mess = self.jtnn(*jtenc_holder)
      mol_vecs = self.mpn(*mpn_holder)
      return tree_vecs, tree_mess, mol_vecs
  
imports: import copy
  import math
  import torch
  import torch.nn
  import torch.nn.functional
  import rdkit
  import rdkit.Chem
  from .mol_tree import MolTree
  from .nnutils import create_var
  from .jtnn_enc import JTNNEncoder
  from .jtnn_dec import JTNNDecoder
  from .mpn import MPN
  from .jtmpn import JTMPN
  from .datautils import tensorize
  from .chemutils import enum_assemble, set_atommap, copy_edit_mol, attach_mols
label_desc: Use image node_id 2 for calling the JTNNVAE obj's underlying member method code with example usage: obj.encode(jtenc_holder, mpn_holder) and returns: tree_vecs,  tree_mess,  mol_vecs