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)