writeSDF(nist_smiles, 'Temp/mol.sdf') cwd = 'E:\\project\\deep-molecular-massspec' cmd = 'python make_spectra_prediction.py --input_file=E:/project/DeepEI/Temp/mol.sdf --output_file=E:/project/DeepEI/Temp/mol_anno.sdf --weights_dir=model/massspec_weights' subprocess.call(cmd, cwd=cwd) spectra = parser_NEIMS('Temp/mol_anno.sdf') spec_vecs = [] for spec in tqdm(spectra): spec_vecs.append(ms2vec(spec['mz'], spec['intensity'])) spec_vecs = np.array(spec_vecs) spec_vecs1 = csr_matrix(spec_vecs) save_npz('DeepEI/data/neims_spec_nist.npz', spec_vecs1) # NEIMS spectra of MassBank exist_smiles = nist_smiles[keep] data = msp.read('E:/data/GCMS DB_AllPublic-KovatsRI-VS2.msp') msbk_smiles = [] msbk_spec = [] msbk_masses = [] for i, (param, ms) in enumerate(tqdm(data)): smi = param['smiles'] try: smi = Chem.MolToSmiles(Chem.MolFromSmiles(smi)) except: smi = smi try: mass = CalcExactMolWt(Chem.MolFromSmiles(smi)) except: continue msbk_masses.append(mass) msbk_smiles.append(smi)
from libmetgem import msp from PyCFMID.PyCFMID import cfm_predict from DeepFrag.utils import load_model, ms_correlation from DeepFrag.utils import read_ms, morgan_fp, ms2vec, model_predict, plot_compare_ms from DeepFrag.loss import pearson, loss pretrain_model = 'simulated_Pos_10V' model = load_model(pretrain_model) msp_file = 'RIKEN_PlaSMA/RIKEN_PlaSMA_Pos.msp' # parser dataset ms = [] smiles = [] energies = [] modes = [] parser = msp.read(msp_file) for i, (params, data) in enumerate(parser): if 'collisionenergy' in params: energy = params['collisionenergy'] else: energy = '' if 'precursortype' in params: ion_mode = params['precursortype'] else: ion_mode = '' if 'smiles' in params: smi = params['smiles'] else: smi = '' if energy != '10':
# -*- coding: utf-8 -*- """ Created on Mon May 20 15:16:44 2019 @author: hcji """ import h5py import numpy as np from libmetgem import msp from DeepFrag.utils import read_ms, ms2vec, morgan_fp from DeepFrag.loss import pearson, loss # transform msp to dataset mine_1 = msp.read( 'D:/Data/MINE_KEGG_Positive_CFM_Spectra.msp/Positive_CFM_Spectra.msp') mine_2 = msp.read( 'D:/Data/MINE_Ec_Positive_CFM_Spectra.msp/Positive_CFM_Spectra.msp') mine_3 = msp.read( 'D:/Data/MINE_YMDB_Positive_CFM_Spectra.msp/Positive_CFM_Spectra.msp') def parser_msp(ms, output, energy): input_data = [] output_forward = [] output_reverse = [] for i, (params, data) in enumerate(ms): if params['energy'] != energy: continue smi = params['smiles'] try: