Ejemplo n.º 1
0
f_pdb_out = PdbFile(sys.argv[-1])
f_pdb_out.open_to_write()
f_pdb_out._file.write('RECORD # SCRIPT: bfactor_write_to_pdb.py\n')
f_pdb_out._file.write('RECORD # argv[1]: ' + sys.argv[1] + '\n')
f_pdb_out._file.write('RECORD # argv[2]: ' + sys.argv[2] + '\n')
f_pdb_out._file.write('RECORD # argv[3]: ' + sys.argv[3] + '\n')
f_pdb_out._file.write('RECORD # argv[4]: ' + sys.argv[4] + '\n')
f_pdb_out._file.write('RECORD # argv[5]: ' + sys.argv[5] + '\n')

scale = float(sys.argv[3])
upper = float(sys.argv[4])

bf = []
for line in f_bf_in:
    if line.find('#') != -1:
        continue
    bf.append(float(line.split()[1]))

imp = 0
for c in chains:
    for r in c.residues:
        for a in r.atoms:
            x = bf[imp] * scale
            if x > upper:
                x = upper
            a.temp_factor = x
            imp += 1

f_pdb_out.write_all(chains)
f_pdb_out.close()
Ejemplo n.º 2
0
for i in range(nmp):
    xyz = [0.0, 0.0, 0.0]
    ave.append(xyz)

nframe = 0
while dcd.has_more_data():
    data = dcd.read_onestep()
    nframe += 1
    print(nframe)
    for i in range(nmp):
        ave[i][0] += data[i][0]
        ave[i][1] += data[i][1]
        ave[i][2] += data[i][2]
dcd.close()

for xyz in ave:
    xyz[0] /= float(nframe)
    xyz[1] /= float(nframe)
    xyz[2] /= float(nframe)

imp = 0
for c in chains:
    for i in range(c.num_atom()):
        imp += 1
        c.get_atom(i).xyz.x = ave[i][0]
        c.get_atom(i).xyz.y = ave[i][1]
        c.get_atom(i).xyz.z = ave[i][2]

f_out.write_all(chains)
f_out.close()
Ejemplo n.º 3
0
    print('')
    print(
        ' Usage: SCRIPT [input PDB] [The residue number of the first a.a.] [output PDB] [log file]'
    )
    print('')
    sys.exit(2)

pdb_in = PdbFile(sys.argv[1])
pdb_in.open_to_read()
chains = pdb_in.read_all()
pdb_in.close()

res_id = int(sys.argv[2])
f_log = open(sys.argv[4], 'w')
f_log.write('#original -> new\n')
for c in chains:
    print(sys.argv[1], '#residues', len(c.residues))
    for r in c.residues:
        f_log.write('%i %s -> %i\n' %
                    (r.atoms[0].res_seq, r.atoms[0].ins_code, res_id))
        for a in r.atoms:
            a.res_seq = res_id
            a.ins_code = '    '
        res_id += 1
f_log.close()

pdb_out = PdbFile(sys.argv[3])
pdb_out.open_to_write()
pdb_out.write_all(chains)
pdb_out.close()
Ejemplo n.º 4
0
    
    if tsdata[0][ts.head_col.e_bridge] == '0.0000000':
        struct = dcd.read_onestep()
        iatom = 0
        for c in chains:
            for r in c.residues:
                for a in r.atoms:
                    a.xyz.put_as_list(struct[iatom])
                    iatom += 1
        imodel += 1
        pdb.modelID = imodel
        pdb.set_remark('ORIGINAL_FILE %s' % (dcd_filename,))
        pdb.set_remark('ORIGINAL_FRAME %i' % (i_org,))
        for iunit, x in enumerate(tsdata):
            if iunit == 0:
                tsline = 'TS_all'
            else:
                tsline = 'TS_%i  ' % (iunit,)
            for y in x:
                tsline += ' ' + y
            pdb.set_remark(tsline)
        pdb.write_all(chains)
    else:
        dcd.skip_onestep()
    
    i_org += 1

ts.close()
dcd.close()
pdb.close()
Ejemplo n.º 5
0
        chains_cg.append(c_cg)

    return chains_cg


if __name__ == '__main__':

    from cafysis.file_io.pdb import PdbFile

    if len(sys.argv) not in (3, 4):
        print(
            'Usage: SCRIPT [input aa PDB] [flag to start with P (Y/n)] [output cg PDB]'
        )
        sys.exit(2)

    flg_start_P = False
    if len(sys.argv) == 4:
        if sys.argv[2] == 'Y':
            flg_start_P = True

    aa = PdbFile(sys.argv[1], 'r')
    chains = aa.read_all()
    aa.close()

    chains_cg = aa2cg(chains, flg_start_P)

    cg = PdbFile(sys.argv[-1], 'w')
    cg.write_all(chains_cg)
    cg.close()
Ejemplo n.º 6
0
#    matrices[mtx_id].show()
#sys.exit(1)

filename_pdb = sys.argv[1]
''' Read inpout PDB '''
pdb = PdbFile(filename_pdb)
pdb.open_to_read()
chains = pdb.read_all()
pdb.close()

_, ext = os.path.splitext(filename_pdb)
filename_base = os.path.basename(filename_pdb)[:-len(ext)]
''' Rotate and output each assembly unit '''
for mtx_id in assembly_units:

    newchains = copy.deepcopy(chains)

    for c in newchains:
        for r in c.residues:
            for a in r.atoms:
                #print ('###')
                #print (a.xyz.x, a.xyz.y, a.xyz.z)
                a.xyz.put_as_list(matrices[mtx_id].do_to_1darray(
                    a.xyz.get_as_ndarray()))
                #print (a.xyz.x, a.xyz.y, a.xyz.z)

    outpdb = PdbFile('%s_%s%s' % (filename_base, mtx_id, ext))
    outpdb.open_to_write()
    outpdb.write_all(newchains)
    outpdb.close()
Ejemplo n.º 7
0
        a.serial = atom_id
        a.name = ' S  '
        a.res_name = 'D%s ' % nt[SEQ_POSITION:SEQ_POSITION + 1]
        #a.chain_id = 'A'
        a.chain_id = '%s' % nchain
        a.res_seq = res_id
        a.xyz = xyz_S / float(nS)
        r_cg.push_atom(a)

        atom_id += 1
        a = Atom()
        a.serial = atom_id
        #a.name = ' %sb '  %  nt
        a.name = ' %sb ' % nt[SEQ_POSITION:SEQ_POSITION + 1]
        #a.res_name = 'R%s ' % nt
        a.res_name = 'D%s ' % nt[SEQ_POSITION:SEQ_POSITION + 1]
        #a.chain_id = 'A'
        a.chain_id = '%s' % nchain
        a.res_seq = res_id
        a.xyz = xyz_B / float(nB)
        r_cg.push_atom(a)

        c_cg.push_residue(r_cg)

    cg_chains.append(c_cg)

cg = PdbFile(sys.argv[-1])
cg.open_to_write()
cg.write_all(cg_chains)
cg.close()
Ejemplo n.º 8
0
        continue
    
    struct = dcd.read_onestep()

    """ Move to the origin """
    if args.flg_origin:
        com = [0.0, 0.0, 0.0]
        for v in struct:
            com = [com[i]+v[i] for i in range(3)]

        com = [com[i]/float(len(struct)) for i in range(3)]

        for i in range(len(struct)):
            struct[i] = [struct[i][j] - com[j] for j in range(3)]

    iatom = 0
    for c in chains:
        for r in c.residues:
            for a in r.atoms:
                a.xyz.put_as_list(struct[iatom])
                iatom += 1

    movie.modelID = iframe + args.id_offset
    movie.set_remark('ORIGINAL_FILE %s' % (args.dcd,))
    movie.set_remark('ORIGINAL_FRAME %i' % (i_orig,))
    movie.write_all(chains)
    i_orig += 1

movie.close()
pdb.close()
Ejemplo n.º 9
0
    c_com = Chain()
    for r in c.residues:
        a_com = Atom()
        i_serial += 1
        a_com.serial = i_serial
        a_com.name = 'NUC'
        a_com.res_name = r.atoms[0].res_name
        a_com.chain_id = r.atoms[0].chain_id
        a_com.res_seq = r.atoms[0].res_seq

        mass_sum = 0.0
        xyz_sum = Coord()
        for a in r.atoms:
            if a.element.strip() == 'H':
                continue
            if a.element.strip() in element2mass:
                mass = element2mass[a.element.strip()]
            else:
                print('Error: no key %s in element2mass.' % (a.element, ))
            xyz_sum += a.xyz * mass
            mass_sum += mass
        a_com.xyz = xyz_sum / float(mass_sum)

        r_com = Residue()
        r_com.push_atom(a_com)
        c_com.push_residue(r_com)

    chains_com.append(c_com)

pdb_out.write_all(chains_com)
        chains = pdb.read_all()
        pdb.close()
        for c in chains:
            for r in c.residues:
                for a in r.atoms:
                    if a.name.strip() == 'MG':
                        if check_distance(c_16SCD, a):
                            r = Residue()
                            r.push_atom(a)
                            c_Mg.push_residue(r)
                            #print(ibundle)

    # Only RNA
    pdb_out = PdbFile('4y4o_{:s}_16SCD.original.pdb'.format(modelname), 'w')
    pdb_out.write_all([
        c_16SCD,
    ])
    pdb_out.close()

    # RNA and Mg
    pdb_out = PdbFile('4y4o_{:s}_16SCD_Mg.original.pdb'.format(modelname), 'w')
    pdb_out.write_all([c_16SCD, c_Mg])
    pdb_out.close()

    chains_cg = aa2cg([
        c_16SCD,
    ])
    rmsd, rot = fit(chains_1j5e_cg, chains_cg)
    apply_rot([c_16SCD, c_Mg], rot)

    # Only RNA