예제 #1
0
 def test_rna_frame1to10_frame10(self):
    '''
    test a dcd  based on a rna molecule of 10 frames
    write the 10th frame
    '''
    #
    #      #
    pdbFileName = DataPath+'rna-1to10.pdb'
    dcdFileName = moduleDataPath+'test-results/rna-1to10-writedcd_step-test.dcd'
    #
    nnatoms = 1
    frame = 9
    step = 1
    self.o.read_pdb(pdbFileName)
    #fp=dcdio.open_dcd_write(dcdFileName)
    #self.o.write_dcd_header(fp, nnatoms)
    fp = self.o.open_dcd_write(dcdFileName)
    self.o.write_dcd_step(fp, frame, step)
    dcdio.close_dcd_write(fp)
    #
    otest = sasmol.SasMol(0)
    otest.read_dcd(dcdFileName)
    result_coor = otest.coor()
    sum_result_coor = sum(sum(sum(result_coor)))
    print '\nresult_coor \n',result_coor
    self.assertEqual(len(result_coor[0]),10632)
    expected_sample_coor = numpy.array([-6.392, 14.348, 20.914],floattype)
    sum_expected_coor = -42837.531
    self.assert_list_almost_equal(expected_sample_coor,result_coor[0][10631], self.prcsn)
    self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
    os.remove(dcdFileName)
예제 #2
0
 def test_1CRN(self):
    '''
    test a dcd based on a small protein (crambin)
    '''
    #
    pdbFileName = DataPath+'1CRN.pdb'
    dcdFileName = moduleDataPath+'test-results/1CRN-writedcd_step-test.dcd'
    #
    nnatoms = 1
    frame = 0
    step = 1
    self.o.read_pdb(pdbFileName)
    #fp=dcdio.open_dcd_write(dcdFileName)
    #self.o.write_dcd_header(fp, nnatoms)
    fp = self.o.open_dcd_write(dcdFileName)
    self.o.write_dcd_step(fp, frame, step)
    dcdio.close_dcd_write(fp)
    #
    otest = sasmol.SasMol(0)
    otest.read_dcd(dcdFileName)
    result_coor = otest.coor()
    sum_result_coor = sum(sum(sum(result_coor)))
    print '\nresult_coor \n',result_coor
    os.remove(dcdFileName)
    self.assertEqual(len(result_coor[0]),327)
    expected_sample_coor = numpy.array([9.555, 2.856, 3.730],floattype)
    sum_expected_coor = 8509.587
    self.assert_list_almost_equal(expected_sample_coor,result_coor[0][100], self.prcsn)
    self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
예제 #3
0
   def test_2AAD_frame3(self):
      '''
	   test a dcd with 3 frames based on a 2-aa pdb
      write the 3rd frame
	   '''
      #
      pdbFileName = DataPath+'2AAD-1to3.pdb'
      dcdFileName = moduleDataPath+'test-results/2AAD-1to3-writedcd_step-test.dcd'
      #
      nnatoms = 1
      frame = 2
      step = 1
      self.o.read_pdb(pdbFileName)
      #fp=dcdio.open_dcd_write(dcdFileName)
      #self.o.write_dcd_header(fp, nnatoms)
      fp = self.o.open_dcd_write(dcdFileName)
      self.o.write_dcd_step(fp, frame, step)
      dcdio.close_dcd_write(fp)
      #
      otest = sasmol.SasMol(0)
      otest.read_dcd(dcdFileName)
      result_coor = otest.coor()
      sum_result_coor = sum(sum(sum(result_coor)))
      expected_coor = numpy.array([[[ 73.944,  -41.799,   41.652], [  74.229,  -42.563,   40.456], [  75.667,  -43.093,   40.463], [  76.264,  -43.279,   39.401], [  73.210,  -43.734,   40.336], [  71.856,  -43.168,   39.926], [  73.677,  -44.782,   39.354], [  70.721,  -44.177,   39.946], [  76.231,  -43.330,   41.647], [  77.592,  -43.852,   41.730], [  78.617,  -42.820,   42.184], [  79.712,  -43.169,   42.656], [  77.671,  -45.097,   42.648], [  77.054,  -44.816,   43.910], [  76.970,  -46.273,   42.000]]],floattype)
      sum_expected_coor = 1095.772
      self.assert_list_almost_equal(expected_coor, result_coor, self.prcsn)
      self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
      os.remove(dcdFileName)
예제 #4
0
def generate(fin='rna.pdb', fout='rna.dcd', frames=1000):
    path = os.path.dirname(os.path.realpath(__file__))
    fin = os.path.join(path, '../', 'data', 'pdb_common', fin)
    if not os.path.exists(fin):
        raise Exception, fin + ' does not exist while generating huge rna dcd files'
        return
    #fout = os.path.join(path,'../','data','dcd_common',fout)
    fout = os.path.join('/tmp/', fout)
    if os.path.exists(fout):
        return
    o = s.SasMol(0)
    o.read_pdb(fin)
    outfile = dcdio.open_dcd_write(fout)
    nset = frames
    natoms = o._coor[0, :, 0].shape[0]
    istart = 0
    nsavc = 1
    delta = 1.0
    o.write_dcd_header(outfile, frames)
    tx = o.coor()[0, :, 0].astype(np.float32)
    ty = o.coor()[0, :, 1].astype(np.float32)
    tz = o.coor()[0, :, 2].astype(np.float32)
    for i in range(frames):
        dcdio.write_dcdstep(outfile, tx, ty, tz, i + 1)
    o.close_dcd_write(outfile)
 def test_rna(self):
     '''
   test a dcd  with 1 frame based on a rna molecule
   '''
     #
     pdbFile = pdbDataPath + 'rna.pdb'
     dcdFile = moduleDataPath + 'test-results/rna-writedcdframes.dcd'
     start = 0
     end = 1
     self.o.read_pdb(pdbFile)
     self.o.write_dcd_frames(dcdFile, start, end)
     o1 = sasmol.SasMol(0)
     o1.read_dcd(dcdFile)
     result_coor = o1.coor()
     sum_result_coor = sum(sum(sum(result_coor)))
     print '\nresult_coor \n', result_coor, '\nsum of result_coor\n', sum_result_coor
     os.remove(dcdFile)
     #
     self.assertEqual(len(result_coor), 1)
     self.assertEqual(len(result_coor[0]), 10632)
     expected_sample_coor = numpy.array([-35.960, 48.536, 72.994],
                                        floattype)
     sum_expected_coor = 59505.827
     self.assert_list_almost_equal(expected_sample_coor,
                                   result_coor[0][10631], self.prcsn)
     self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
예제 #6
0
 def test_1KP8(self):
    '''
    test a dcd based on a large pdb complex (groel)
    '''
    #
    pdbFileName = DataPath+'1KP8.pdb'
    dcdFileName = moduleDataPath+'test-results/1KP8-writedcd_step-test.dcd'
    #
    nnatoms = 1
    frame = 0
    step = 1
    self.o.read_pdb(pdbFileName)
    #fp=dcdio.open_dcd_write(dcdFileName)
    #self.o.write_dcd_header(fp, nnatoms)
    fp = self.o.open_dcd_write(dcdFileName)
    self.o.write_dcd_step(fp, frame, step)
    dcdio.close_dcd_write(fp)
    #
    otest = sasmol.SasMol(0)
    otest.read_dcd(dcdFileName)
    result_coor = otest.coor()
    sum_result_coor = sum(sum(sum(result_coor)))
    print '\nresult_coor \n',result_coor
    self.assertEqual(len(result_coor[0]),57085)
    expected_sample_coor = numpy.array([104.484, 26.915, 12.538],floattype)
    sum_expected_coor = 6269170.260
    self.assert_list_almost_equal(expected_sample_coor,result_coor[0][100], self.prcsn)
    self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
    os.remove(dcdFileName)
예제 #7
0
   def test_1ATM_frame2(self):
      '''
	   test a dcd with 2 frames based on a 1-atom pdb
      write the 2nd frame
	   '''
      #
      pdbFileName = DataPath+'1ATM-1to2.pdb'
      dcdFileName = moduleDataPath+'test-results/1ATM-1to2-writedcd_step-test.dcd'
      #
      nnatoms = 1
      frame = 1
      step = 1
      self.o.read_pdb(pdbFileName)
      #fp=dcdio.open_dcd_write(dcdFileName)
      #self.o.write_dcd_header(fp, nnatoms)
      fp = self.o.open_dcd_write(dcdFileName)
      self.o.write_dcd_step(fp, frame, step)
      dcdio.close_dcd_write(fp)
      #
      otest = sasmol.SasMol(0)
      otest.read_dcd(dcdFileName)
      result_coor = otest.coor()
      sum_result_coor = sum(sum(sum(result_coor)))
      expected_coor = numpy.array([[[73.944, 38.799, 41.652]]],floattype)
      sum_expected_coor = 154.395
      self.assert_list_almost_equal(expected_coor, result_coor, self.prcsn)
      self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
      os.remove(dcdFileName)
 def test_rna_frame1to10(self):
     '''
   test a dcd with 10 frames based on a rna molecule
   '''
     #
     pdbFile = pdbDataPath + 'rna-1to10.pdb'
     dcdFile = moduleDataPath + 'test-results/rna-1to10-writedcdframes.dcd'
     start = 0
     end = 10
     self.o.read_pdb(pdbFile)
     self.o.write_dcd_frames(dcdFile, start, end)
     o1 = sasmol.SasMol(0)
     o1.read_dcd(dcdFile)
     result_coor = o1.coor()
     sum_result_coor = sum(sum(sum(result_coor)))
     print '\nresult_coor \n', result_coor, '\nsum of result_coor\n', sum_result_coor
     os.remove(dcdFile)
     #
     self.assertEqual(len(result_coor), 10)
     self.assertEqual(len(result_coor[9]), 10632)
     expected_sample_coor = numpy.array([-6.392, 14.348, 20.914], floattype)
     sum_expected_coor = -430804.378
     self.assert_list_almost_equal(expected_sample_coor,
                                   result_coor[9][10631], self.prcsn)
     self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
 def test_1ATM_3(self):
     '''
   test a dcd with 2 frames based on a 1-atom pdb and write all frames
   '''
     #
     pdbFile = pdbDataPath + '1ATM-1to2.pdb'
     dcdFile = moduleDataPath + 'test-results/1ATM-1to2-writedcdframes.dcd'
     start = 0
     end = 2
     self.o.read_pdb(pdbFile)
     self.o.write_dcd_frames(dcdFile, start, end)
     o1 = sasmol.SasMol(0)
     o1.read_dcd(dcdFile)
     result_coor = o1.coor()
     sum_result_coor = sum(sum(sum(result_coor)))
     print '\nresult_coor \n', result_coor, '\nsum of result_coor\n', sum_result_coor
     os.remove(dcdFile)
     #
     expected_coor = numpy.array(
         [[[76.944, 41.799, 41.652]], [[73.944, 38.799, 41.652]]],
         floattype)
     sum_expected_coor = 314.790
     print '\nexpected_coor \n', expected_coor
     #
     self.assert_list_almost_equal(expected_coor, result_coor, self.prcsn)
     self.assertAlmostEqual(sum_expected_coor, sum_result_coor, self.prcsn)
 def test_2AAD(self):
     '''
   test a dcd with 3 frames based on a 2-aa pdb
   '''
     #
     pdbFile = pdbDataPath + '2AAD-1to3.pdb'
     dcdFile = moduleDataPath + 'test-results/2AAD-1to3-writedcdframes.dcd'
     start = 0
     end = 3
     self.o.read_pdb(pdbFile)
     self.o.write_dcd_frames(dcdFile, start, end)
     o1 = sasmol.SasMol(0)
     o1.read_dcd(dcdFile)
     result_coor = o1.coor()
     sum_result_coor = sum(sum(sum(result_coor)))
     print '\nresult_coor \n', result_coor, '\nsum of result_coor\n', sum_result_coor
     os.remove(dcdFile)
     #
     expected_coor = numpy.array([[[  73.944,   41.799,   41.652], [  74.229,   42.563,   40.456], [  75.667,   43.093,   40.463], [  76.264,   43.279,   39.401], [  73.210,   43.734,   40.336], [  71.856,   43.168,   39.926], [  73.677,   44.782,   39.354], [  70.721,   44.177,   39.946], [  76.231,   43.330,   41.647], [  77.592,   43.852,   41.730], [  78.617,   42.820,   42.184], [  79.712,   43.169,   42.656], [  77.671,   45.097,   42.648], [  77.054,   44.816,   43.910], [  76.970,   46.273,   42.000]],\
     [[ -73.944,   41.799,   41.652], [ -74.229,   42.563,   40.456], [ -75.667,   43.093,   40.463], [ -76.264,   43.279,   39.401], [ -73.210,   43.734,   40.336], [ -71.856,   43.168,   39.926], [ -73.677,   44.782,   39.354], [ -70.721,   44.177,   39.946], [ -76.231,   43.330,   41.647], [ -77.592,   43.852,   41.730], [ -78.617,   42.820,   42.184], [ -79.712,   43.169,   42.656], [ -77.671,   45.097,   42.648], [ -77.054,   44.816,   43.910], [ -76.970,   46.273,   42.000]],\
     [[  73.944,  -41.799,   41.652], [  74.229,  -42.563,   40.456], [  75.667,  -43.093,   40.463], [  76.264,  -43.279,   39.401], [  73.210,  -43.734,   40.336], [  71.856,  -43.168,   39.926], [  73.677,  -44.782,   39.354], [  70.721,  -44.177,   39.946], [  76.231,  -43.330,   41.647], [  77.592,  -43.852,   41.730], [  78.617,  -42.820,   42.184], [  79.712,  -43.169,   42.656], [  77.671,  -45.097,   42.648], [  77.054,  -44.816,   43.910], [  76.970,  -46.273,   42.000]]],floattype)
     sum_expected_coor = 3644.294
     print '\nexpected_coor \n', expected_coor
     #
     self.assert_list_almost_equal(expected_coor, result_coor, self.prcsn)
     self.assertAlmostEqual(sum_expected_coor, sum_result_coor, self.prcsn)
 def test_1KP8(self):
     '''
   test a dcd from a protein complex of greol
   '''
     #
     pdbFile = pdbDataPath + '1KP8.pdb'
     dcdFile = moduleDataPath + 'test-results/1KP8-writedcdframes.dcd'
     start = 0
     end = 1
     self.o.read_pdb(pdbFile)
     self.o.write_dcd_frames(dcdFile, start, end)
     o1 = sasmol.SasMol(0)
     o1.read_dcd(dcdFile)
     result_coor = o1.coor()
     sum_result_coor = sum(sum(sum(result_coor)))
     print '\nresult_coor \n', result_coor, '\nsum of result_coor\n', sum_result_coor
     os.remove(dcdFile)
     #
     self.assertEqual(len(result_coor[0]), 57085)
     expected_sample_coor = numpy.array([104.484, 26.915, 12.538],
                                        floattype)
     sum_expected_coor = 6269170.260
     self.assert_list_almost_equal(expected_sample_coor,
                                   result_coor[0][100], self.prcsn)
     self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
예제 #12
0
 def test_pass(self):
     '''
   test corr bypass since there is nothing here
   '''
     #
     id = 3
     o = sasmol.SasMol(id)
     o.molcharge()
예제 #13
0
    def test_find_u_rotate_pdb(self):
        m1 = sasmol.SasMol(0)
        m2 = sasmol.SasMol(1)
        m1.read_pdb(PdbPath + "1CRN.pdb")
        m2.read_pdb(modulePdbPath + "1CRN-rot.pdb")

        coor_sub_m1 = m1.coor()[0]
        coor_sub_m2 = m2.coor()[0]

        u = sasmath.find_u(coor_sub_m1, coor_sub_m2)
        result = numpy.array(
            (numpy.matrix(u) * (numpy.matrix(coor_sub_m2).T)).T, numpy.float)
        #print numpy.dot(result.reshape(1,-1)[0],coor_sub_m1.reshape(1,-1)[0])/numpy.sqrt(numpy.dot(coor_sub_m1.reshape(1,-1)[0],coor_sub_m1.reshape(1,-1)[0])*numpy.dot(result.reshape(1,-1)[0],result.reshape(1,-1)[0]))
        #m3 = sasmol.SasMol(2)
        #m3.read_pdb('1CRN.pdb')
        #m3._coor[0,:]=result
        #m3.writepdb('1CRN-result.pdb',0,'w')
        self.assertEqual(len(result), len(coor_sub_m1))
        for i in range(len(coor_sub_m1)):
            self.assert_list_almost_equal(list(result[i]), coor_sub_m1[i])
    def setUp(self):
        self.centertmp = sasop.Move.center

        self.m = Mocker()
        sasop.Move.center = self.m.mock()
        sasop.Move.center(ARGS)
        self.m.result(None)
        self.m.count(0, None)

        self.m.replay()

        self.o = sasmol.SasMol(0)
예제 #15
0
    def setUp(self):
        self.m = Mocker()

        self.back_masscheck = sasop.Move.masscheck
        sasop.Move.masscheck = self.m.mock()
        sasop.Move.masscheck(ARGS)
        self.m.result(None)
        self.m.count(0, None)

        self.m.replay()

        self.o = sasmol.SasMol(0)
예제 #16
0
def split_dcd(pdb_full_name, dcd_full_name, n_cpus, starting_dir):

    mol = sasmol.SasMol(0)
    mol.read_pdb(pdb_full_name)

    dcd_file = mol.open_dcd_read(dcd_full_name)
    total_frames = dcd_file[2]
    n_atoms = dcd_file[1]
    _, copy_mask = mol.get_subset_mask('all')

    n_frames_sub = np.array([total_frames / n_cpus] * n_cpus, dtype=int)
    n_frames_sub[:total_frames % n_cpus] += 1
    last_frame = 0
    sub_dirs = []
    sub_dcd_names = []
    first_last = []
    for cpu in xrange(1, n_cpus + 1):
        sub_dir = op.join(starting_dir, 'sub%s' % str(cpu).zfill(2))
        sub_dirs.append(sub_dir)
        mkdir_p(sub_dir)
        sub_mol = sasmol.SasMol(0)
        mol.copy_molecule_using_mask(sub_mol, copy_mask, 0)
        with cd(sub_dir):
            dcd_out_name = 'sub%s.dcd' % str(cpu).zfill(2)
            sub_dcd_names.append(dcd_out_name)
            first = last_frame
            last = last_frame + n_frames_sub[cpu - 1]
            dcd_out_file = sub_mol.open_dcd_write(dcd_out_name)
            for (i, frame) in enumerate(xrange(first, last)):
                sub_mol.read_dcd_step(dcd_file, frame)
                sub_mol.write_dcd_step(dcd_out_file, 0, i + 1)

            sub_mol.close_dcd_write(dcd_out_file)

        first_last.append([first, last])
        last_frame += n_frames_sub[cpu - 1]

    return sub_dirs, sub_dcd_names, first_last
예제 #17
0
 def test_id(self):
     '''
   test initializer with id
   '''
     #
     id = 3
     o = sasmol.SasMol(id)
     self.assertEqual(o.id(), id)
     self.assertEqual(o.totalmass(), 0.0)
     self.assertEqual(o.natoms(), 0)
     self.assertEqual(o.mass(), None)
     self.assertEqual(o.coor(), None)
     self.assertEqual(o.com(), None)
     self.assertEqual(o.name(), 'Mol_None')
예제 #18
0
def get_dna_bp_and_axes(bp_mask,
                        dna_ids,
                        dna_mol,
                        bp_mol=None,
                        dna_id_type='segname'):
    if not bp_mol:
        bp_mol = sasmol.SasMol(0)
        error = dna_mol.copy_molecule_using_mask(bp_mol, bp_mask, 0)
    else:
        error, bp_coor = dna_mol.get_coor_using_mask(0, bp_mask)
        bp_mol.setCoor(bp_coor)
    bp_origin, bp_axes = get_dna_bp_reference_frame(dna_ids, bp_mol,
                                                    dna_id_type)

    return bp_origin, bp_axes, bp_mol
예제 #19
0
def calculate_pr(pdbfile, dcdfile, input_nbins, bin_width):

    m = sasmol.SasMol(0)
    m.read_pdb(pdbfile)

    nbins = get_number_of_bins_from_structure(m, input_nbins)

    print 'nbins = ', nbins

    m.read_dcd(dcdfile)
    nf = m.number_of_frames()
    print 'nf = ', nf

    coor = m.coor()
    print 'coor[0][0] = ', coor[0][0]
    print 'coor[0][-1] = ', coor[0][-1]

    natoms = m.natoms()
    print 'natoms = ', natoms

    if flag:
        npairs = (natoms * (natoms - 1)) / 2
        all_distances = numpy.zeros(npairs, numpy.float32)
        for i in xrange(nf):
            distances = prc.prc(coor[i])
            all_distances += numpy.array(distances)
            if i == 0:
                print 'one_distance[0] = ', distances[0]
            print '.',

        print 'all_distances[0] = ', all_distances[0] / nf

    print 'calling pr_parallel'

    print 'python: coor[0][0][0] = ', coor[0][0][0]
    dist = pr_parallel.pr_parallel(coor, nf, natoms, nbins, bin_width)

    print '\nback in python\n\n'

    outfile = open('dist.txt', 'w')
    for val in dist:
        outfile.write('%f\n' % val)

    outfile.close()
예제 #20
0
def read_pdb_prep_pair(prep_filename, pdb_filename):
    """
    Load structure, topology and naming information from PDB and atomic
    charges from antechamber ac file.

    Args:
        prep_filename (str): Path to the library (prep) file
        pdb_filename (str): Path to the PDB containing atomic coordinates
                            and names

    Returns:
        amber_utils.AmberPrep: Information derived from prep file
        sasmol.SasMol: Information read from PDB file

    """

    prep = AmberPrep(prep_filename)

    structure = sasmol.SasMol(0)
    structure.read_pdb(pdb_filename)
    structure.setFilename(pdb_filename)

    if len(structure.resnames()) != 1:
        raise Exception("More than one residue in PDB: {0:s}".format(pdb_filename))

    # Sometimes building ligands files end up with inconsistent atom name
    # capitilization - we will upper case everything

    upper_names = []
    structure_names = structure.name()

    for idx in range(structure.natoms()):
        upper_names.append(structure_names[idx].upper())

    structure.setName(upper_names)

    invalid = check_prep_structure_consistency(prep, structure)

    if invalid:
        raise Exception(invalid)

    return prep, structure
예제 #21
0
def main(pdb_fname, dcd_fname='', in_dir='', out_dir='', restart=False):
    '''
    calculate the pair-distance distribution
    '''
    full_pdb_fname = os.path.join(in_dir, pdb_fname)
    assert os.path.exists(full_pdb_fname), 'No such file: {}'.format(
        full_pdb_fname)
    mol = sasmol.SasMol(0)
    mol.read_pdb(full_pdb_fname)

    if dcd_fname:
        full_dcd_fname = os.path.join(in_dir, dcd_fname)
        assert os.path.exists(full_dcd_fname), 'No such file: {}'.format(
            full_dcd_fname)
        dcd_file = mol.open_dcd_read(os.path.join(in_dir, full_dcd_fname))
        n_frames = dcd_file[2]
        out_prefix = dcd_fname[:-4]

    else:
        n_frame = 1
        out_prefix = pdb_fname[:-4]

    if out_dir:
        mkdir_p(out_dir)
        out_prefix = os.path.join(out_dir, out_prefix)

    tic = time.time()
    for i in xrange(n_frames):
        mol.read_dcd_step(dcd_file, i)
        pr = calc_pr_python(mol.coor()[0])

        # output the result
        out_fname = '{}_{:05d}.pr'.format(out_prefix, i + 1)
        np.savetxt(out_fname, pr, fmt='%d', delimiter=',')

    toc = time.time() - tic
    logging.info('calculated P(r) for {} structures in {} s'.format(
        n_frames, toc))
    logging.info('{} s for each structure'.format(toc / n_frames))

    mol.close_dcd_read(dcd_file[0])
예제 #22
0
 def test_1CRN(self):
    '''
    test a dcd from a small protein of crambin
    '''
    #
    pdbFile = pdbDataPath+'1CRN.pdb'
    dcdFile = moduleDataPath+'test-results/1CRN-writedcd.dcd'
    self.o.read_pdb(pdbFile)
    self.o.write_dcd(dcdFile)
    o1 = sasmol.SasMol(0)
    o1.read_dcd(dcdFile)
    result_coor = o1.coor()
    sum_result_coor = sum(sum(sum(result_coor)))
    print '\nresult_coor \n',result_coor,'\nsum of result_coor\n',sum_result_coor
    os.remove(dcdFile)
    #
    self.assertEqual(len(result_coor[0]),327)
    expected_sample_coor = numpy.array([9.555, 2.856, 3.730],floattype)
    sum_expected_coor = 8509.587
    self.assert_list_almost_equal(expected_sample_coor,result_coor[0][100], self.prcsn)
    self.assertAlmostEqual(sum_result_coor, sum_expected_coor, self.prcsn)
예제 #23
0
def split_dcd_to_pdbs(pdb_full_fname, dcd_full_fname, starting_dir):

    mol = sasmol.SasMol(0)
    mol.read_pdb(pdb_full_fname)

    dcd_file = mol.open_dcd_read(dcd_full_fname)
    total_frames = dcd_file[2]
    n_atoms = dcd_file[1]

    sub_dirs = []
    pdb_out_fname = 'temp_0.pdb'

    for i in xrange(total_frames):
        sub_dir = op.join(starting_dir, 'sub{}'.format(str(i + 1).zfill(5)))
        sub_dirs.append(sub_dir)
        mkdir_p(sub_dir)

        with cd(sub_dir):
            mol.read_dcd_step(dcd_file, 0)
            mol.write_pdb(pdb_out_fname, 0, 'w')

    return sub_dirs
예제 #24
0
import sasmol.sasmol as sasmol

#   setup the samol object
mol = sasmol.SasMol(0)
out_filename = "dna_sl.txt"
f = open(out_filename, 'w')

atomic = sasmol.sasproperties.Atomic()

dsl = atomic.dna_sl()

for key, item in dsl.items():
    print key, item
    f.write('%3s' ' ' '%s' '\n' % (key, item))

f.close()
 def setUp(self):
     self.o = sasmol.SasMol(0)
예제 #26
0
 def setUp(self):
    self.o=sasmol.SasMol(0)
    self.standard_atomic_weight  = self.o.amu()
예제 #27
0
 def setUp(self):
     self.o = sasmol.SasMol(0)
     self.o_result = sasmol.SasMol(1)
     self.o_expected = sasmol.SasMol(2)
 def setUp(self):
    self.m = Mocker()
    self.o=sasmol.SasMol(0)
예제 #29
0
 def setUp(self):
     self.o1 = sasmol.SasMol(0)
     self.o2 = sasmol.SasMol(1)
     self.o3 = sasmol.SasMol(2)
 def setUp(self):
     self.o = sasmol.SasMol(0)
     self.prcsn = 3