Esempio n. 1
0
 def setUpClass(cls):
     cls.my_emap = pyemap.parse(
         os.path.join(sys.path[0], "pyemap/tests/test_pdbs/2oal.pdb"))
     if platform == "linux":
         pyemap.process(cls.my_emap, sdef=0)
     elif platform == "darwin":
         pyemap.process(cls.my_emap)
Esempio n. 2
0
def test_save_functions():
    my_emap = pyemap.parse(
        os.path.join(sys.path[0], "pyemap/tests/test_pdbs/4DJA.pdb"))
    #cluster
    fout = tempfile.NamedTemporaryFile(suffix=".png")
    ''' commented out for now until we can find a solution with newer RDKit
    #aromatic eta moiety
    my_emap.residue_to_Image("SF4603(A)")
    my_emap.residue_to_file("SF4603(A)",dest=fout.name)
    my_emap.residue_to_Image("FAD601(A)-1")
    my_emap.residue_to_file("FAD601(A)-1",dest=fout.name)
    '''
    #after file is processed
    pyemap.process(my_emap)
    #standard residue
    ''' commented out for now until we can find a solution with newer RDKit
    my_emap.residue_to_Image("Y443(A)")
    my_emap.residue_to_file("Y443(A)",dest=fout.name)
    '''
    #init graph
    my_emap.init_graph_to_Image()
    my_emap.init_graph_to_file(dest=fout.name)
    pyemap.find_paths(my_emap, "Y443(A)")
    #paths graph
    my_emap.paths_graph_to_Image()
    my_emap.paths_graph_to_file(dest=fout.name)
    #check that report does something
    assert my_emap.report() != None
Esempio n. 3
0
 def test_distance_options(self):   
     pyemap.process(self.my_emap)
     com_weight = self.my_emap.init_graph["W385(A)"]["Y53(A)"]['weight']
     assert isclose(com_weight,6.18,abs_tol=1e-2)
     pyemap.process(self.my_emap,dist_def=1)
     closest_atom_weight = self.my_emap.init_graph["W385(A)"]["Y53(A)"]['weight']
     assert isclose(closest_atom_weight,3.97,abs_tol=1e-2)
Esempio n. 4
0
 def test_custom_atom_range(self):
      #custom residues
     pyemap.process(self.my_emap,eta_moieties=[], custom = "(134-140),(109-117)")
     resnames=[]
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert all(elem in resnames for elem in ["CUST-1","CUST-2"])
     #example for bad custom residues, shoud raise exception
     try:
         pyemap.process(self.my_emap, custom = "(28-41)")
         assert False
     except Exception as e:
         assert True
Esempio n. 5
0
 def test_chains(self):
     #default all chains on
     pyemap.process(self.my_emap)
     labels=[]
     for residue in self.my_emap.residues.values():
         labels.append(residue.node_label)
     assert all(elem in labels for elem in ["W18(A)" and 'Y298(B)'])
     #B chain off
     pyemap.process(self.my_emap,chains=["A"])
     labels=[]
     for residue in self.my_emap.residues.values():
         labels.append(residue.node_label)
     assert "W18(A)" in labels
     assert 'Y298(B)' not in labels
Esempio n. 6
0
 def test_choose_eta_moieties(self):        
     pyemap.process(self.my_emap)
     eta_moieties_resnames = []
     for res in self.my_emap.eta_moieties:
         eta_moieties_resnames.append(res)
     #default
     resnames=[]
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert all(elem in resnames for elem in eta_moieties_resnames)
     #deselected eta moiety
     pyemap.process(self.my_emap,eta_moieties=eta_moieties_resnames[:-1])
     resnames=[]
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert all(elem in resnames for elem in eta_moieties_resnames[:-1])
     assert eta_moieties_resnames[-1] not in resnames
Esempio n. 7
0
 def test_aromatic_amino_acid_options(self):
     pyemap.process(self.my_emap)
     ##default, tryptophan and tyrosine on
     resnames=[]
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert "TYR" in resnames
     assert "TRP" in resnames
     assert "PHE" not in resnames
     assert "HIS" not in resnames
     #phenylalanine on
     pyemap.process(self.my_emap,phe=True)
     resnames=[]
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert "TYR" in resnames
     assert "TRP" in resnames
     assert "PHE" in resnames
     assert "HIS" not in resnames
     #histidine on
     resnames=[]
     pyemap.process(self.my_emap,his=True)
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert "TYR" in resnames
     assert "TRP" in resnames
     assert "PHE" not in resnames
     assert "HIS" in resnames
     #tyrosine off
     resnames=[]
     pyemap.process(self.my_emap,tyr=False)
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert "TYR" not in resnames
     assert "TRP" in resnames
     assert "PHE" not in resnames
     assert "HIS" not in resnames
     #tryptophan off
     resnames=[]
     pyemap.process(self.my_emap,trp=False)
     for residue in self.my_emap.residues.values():
         resnames.append(residue.resname)
     assert "TYR" in resnames
     assert "TRP" not in resnames
     assert "PHE" not in resnames
     assert "HIS" not in resnames
Esempio n. 8
0
 def test_surface_options(self):
     rd_check = 'Y53(A)'
     asa_check = 'W61(A)'
     #residue depth
     pyemap.process(self.my_emap)
     G = self.my_emap.init_graph
     rd_ser = []
     for n, d in G.nodes(data=True):
         if d['shape'] == "box":
             rd_ser.append(n)
     #solvent accessibility
     pyemap.process(self.my_emap, sdef=1)
     G = self.my_emap.init_graph
     asa_ser = []
     for n, d in G.nodes(data=True):
         if d['shape'] == "box":
             asa_ser.append(n)
     assert rd_check in rd_ser
     assert asa_check not in rd_ser
     assert rd_check not in asa_ser
     assert asa_check in asa_ser
Esempio n. 9
0
 def test_graph_parameters(self):
     pyemap.process(self.my_emap,num_st_dev_edges=5,percent_edges=3)
     g1 = self.my_emap.init_graph
     # check st_dev_edges works
     pyemap.process(self.my_emap,num_st_dev_edges=1,percent_edges=3)
     g2 = self.my_emap.init_graph
     assert g1.edges() != g2.edges()
     #check distance cutoff works    
     pyemap.process(self.my_emap,num_st_dev_edges=5,percent_edges=3,distance_cutoff=30)
     g3 = self.my_emap.init_graph
     assert g1.edges() != g3.edges()
     #check percent edges works
     pyemap.process(self.my_emap,num_st_dev_edges=5,percent_edges=1,distance_cutoff=30)
     g4 = self.my_emap.init_graph
     assert g1.edges() != g4.edges()
Esempio n. 10
0
 def test_surface_options(self):
     #residue depth
     asa_ser = []
     rd_ser = []
     pyemap.process(self.my_emap,sdef=0)
     G = self.my_emap.init_graph
     for n, d in G.nodes(data=True):
         if d['shape'] == "box":
             rd_ser.append(n)
     #solvent accessibility
     pyemap.process(self.my_emap,sdef=1)
     G = self.my_emap.init_graph
     for n, d in G.nodes(data=True):
         if d['shape'] == "box":
             asa_ser.append(n)
     import subprocess
     try:
         cmd = "msms"
         output = subprocess.check_output(cmd, shell=True)
         assert rd_ser
     except:
         pass
     assert asa_ser
     assert rd_ser != asa_ser
Esempio n. 11
0
 def test_penalty_function_parameters(self):  
     #alpha
     pyemap.process(self.my_emap,coef_alpha=0.5)
     alpha_weight = self.my_emap.init_graph["W385(A)"]["Y53(A)"]['weight']
     assert isclose(alpha_weight,6.48,abs_tol=1e-2)
     #Roffset
     pyemap.process(self.my_emap,r_offset=1)
     alpha_weight = self.my_emap.init_graph["W385(A)"]["Y53(A)"]['weight']
     assert isclose(alpha_weight,5.18,abs_tol=1e-2)
     #Roffset
     pyemap.process(self.my_emap,exp_beta=5)
     beta_weight = self.my_emap.init_graph["W385(A)"]["Y53(A)"]['weight']
     assert isclose(beta_weight,13.44,abs_tol=1e-2)
Esempio n. 12
0
 def setUpClass(cls):
     cls.my_emap = pyemap.parse(os.path.join(sys.path[0],"pyemap/tests/test_pdbs/2oal.pdb")) 
     pyemap.process(cls.my_emap)
Esempio n. 13
0
# PyeMap: A python package for automatic identification of electron and hole transfer pathways in proteins.
# Copyright(C) 2017-2020 Ruslan Tazhigulov, James Gayvert, Ksenia Bravaya (Boston University, USA)
import pyemap
my_emap = pyemap.fetch_and_parse("1u3d")
# view residue
my_emap.residue_to_Image("FAD510(A)-2").show()
# process file
pyemap.process(my_emap)
my_emap.init_graph_to_Image().show()
# find paths
pyemap.find_paths(my_emap,"FAD510(A)-2")
my_emap.paths_graph_to_Image().show()
# print report
print(my_emap.report())