示例#1
0
 def test_broken(self):
     lattice=CubicLattice()
     coords=[[0,0,0],
             [0,0,1],
             [0,5,1],
             [0,5,0]]
     structure=LatticeStructure(lattice,coords)
     self.assertTrue(structure.broken_chain())
示例#2
0
 def test_overlap(self):
     lattice=CubicLattice()
     coords=[[0,0,0],
             [0,0,1],
             [0,0,0]]
     structure=LatticeStructure(lattice,coords)
     structure.make_contact_map()
     self.assertEqual(0,len(structure.overlap_map))
     self.assertEqual(1,structure.num_chains)
示例#3
0
 def test_free_moves(self):
     lattice=CubicLattice()
     coords=[[0,0,0],
             [0,0,1],
             [0,1,1],
             [0,1,0]]
     structure=LatticeStructure(lattice,coords)
     structure.make_contact_map()
     self.assertEqual(4,len(structure.free_moves(0)))
示例#4
0
 def test_multidomain(self):
     lattice=CubicLattice()
     coords=[[0,0,0],
             [0,0,1],
             [0,0,2],
             [0,0,3],
             [0,1,3],
             [0,1,2],
             [0,1,1],
             [0,1,0]]
     structure=LatticeStructure(lattice,coords, chain_list=[4,4])
     structure.make_contact_map()
     self.assertEqual(4,len(structure.contact_map))
     self.assertEqual(0,len(structure.overlap_map))
     self.assertFalse(structure.broken_chain())
     self.assertEqual(2,structure.num_chains)
     self.assertEqual(1,structure.coordination_no[0])
     self.assertEqual(1,structure.coordination_no[1])
示例#5
0
def to_lattice(structure, lattice):
    '''Fit an OffLatticeStrucure to a lattice.
    
    This only performs a quick fit and is intended to generate the
    starting point for the pdb2lattice optimiser.'''
    unit_coords = structure.coords / lattice.angstrom
    unit_coords -= unit_coords[0]
    lattice_structure = LatticeStructure(lattice,
                                         np.zeros((structure.natoms,3),dtype=int),
                                         chainID = structure.chainID)
    for i in range(1,structure.natoms):
        next_move = lattice_structure.free_moves(i-1)
        my_move = closest_move(next_move,unit_coords[i])
        lattice_structure.coords[i] = my_move
    lattice_structure.make_contact_map()
    lattice_structure.off_latt_coords = unit_coords
    return lattice_structure