Source code for PyInteraction

# -*- coding: utf-8 -*-
#  Copyright (c) 2016-2017, Zhijiang Yao, Jie Dong and Dongsheng Cao
#  All rights reserved.
#  This file is part of the PyBioMed.
#  The contents are covered by the terms of the BSD license
#  which is included in the file license.txt, found at the root
#  of the PyBioMed source tree.
"""
The calculation of interaction descriptors. You can choose three types of 

interacation descriptors. You can freely use and distribute it. If you 

hava any problem, you could contact with us timely!

Authors: Zhijiang Yao and Dongsheng Cao.

Date: 2016.06.14

Email: gadsby@163.com 
"""

##############################################################################
[docs]def CalculateInteraction1(dict1 = {}, dict2 = {}): ''' Calculate the two interaction features by combining two different features. Usage: res=CalculateInteraction(dict1,dict2) Input: dict1 is a dict form containing features. dict2 is a dict form containing features. Output: res is a dict form containing interaction features. ''' result = {} result.update(dict1) for i in dict2: result[i+'ex'] = dict2[i] return result
[docs]def CalculateInteraction2(dict1 = {}, dict2 = {}): ''' Calculate the two interaction features by combining two different features. Usage: res=CalculateInteraction(dict1,dict2) Input: dict1 is a dict form containing features. dict2 is a dict form containing features. Output: res is a dict form containing interaction features. ''' res = {} for i in dict1: for j in dict2: res[i + '*' + j] = round(dict1[i] * dict2[j], 3) return res
[docs]def CalculateInteraction3(dict1 = {}, dict2 = {}): ''' Calculate the two interaction features by F=[Fa(i)+Fb(i)),Fa(i)*Fb(i)] (2n) It's used in same type of descriptors. Usage: res=CalculateInteraction(dict1,dict2) Input: dict1 is a dict form containing features. dict2 is a dict form containing features. Output: res is a dict form containing interaction features. ''' res={} for i in dict1: res[i+'+'+i]=round(dict1[i]+dict2[i],3) res[i+'*'+i]=round(dict1[i]*dict2[i],3) return res
if __name__ == '__main__': from PyBioMed.PyDNA import PyDNAac DNA_des = PyDNAac.GetTCC('GACTGAACTGCACTTTGGTTTCATATTATTTGCTC', phyche_index=['Dnase I', 'Nucleosome','MW-kg']) print DNA_des from PyBioMed.PyProtein import CTD protein="ADGCGVGEGTGQGPMCNCMCMKWVYADEDAADLESDSFADEDASLESDSFPWSNQRVFCSFADEDAS" protein_des = CTD.CalculateCTD(protein) from PyBioMed.PyMolecule import moe from rdkit import Chem smis = ['CCCC','CCCCC','CCCCCC','CC(N)C(=O)O','CC(N)C(=O)[O-].[Na+]'] m = Chem.MolFromSmiles(smis[3]) mol_des = moe.GetMOE(m) mol_mol_interaction1 = CalculateInteraction1(mol_des,mol_des) print mol_mol_interaction1 mol_mol_interaction2 = CalculateInteraction2(mol_des,mol_des) print mol_mol_interaction2 mol_mol_interaction3 = CalculateInteraction3(mol_des,mol_des) print mol_mol_interaction3 pro_mol_interaction1 = CalculateInteraction1(mol_des,protein_des) print pro_mol_interaction1 pro_mol_interaction2 = CalculateInteraction2(mol_des,protein_des) print pro_mol_interaction2 DNA_mol_interaction1 = CalculateInteraction1(DNA_des,mol_des) print DNA_mol_interaction1 DNA_mol_interaction2 = CalculateInteraction2(DNA_des,mol_des) print DNA_mol_interaction2