Ejemplo n.º 1
0
def dcd_fit(filename_dcd, filename_dcd_out, natom_total, serials,
            filename_rmsd):
    f_out = open(filename_rmsd, 'w')

    # Coord1
    pdb = PdbFile('16SCD.cg.pdb')
    pdb.open_to_read()
    ref_chains = pdb.read_all()
    pdb.close()

    #num_atom = 0
    #for chain in ref_chains :
    #    for residue in chain.residues :
    #        num_atom += len(residue.atoms)

    ref = zeros((natom_total, 3), dtype=float64, order='C')

    i = 0
    for chain in ref_chains:
        for residue in chain.residues:
            for atom in residue.atoms:
                (ref[i][0], ref[i][1], ref[i][2]) = atom.xyz.get_as_tuple()
                i += 1

    mask = []
    for i in range(natom_total):
        # the serial ID starts from 1, thus i+1 is the serial ID
        if i + 1 in serials:
            mask.append(1)
        else:
            mask.append(0)

    dcd = DcdFile(filename_dcd)
    dcd.open_to_read()
    dcd.read_header()

    out_dcd = DcdFile(filename_dcd_out)
    out_dcd.open_to_write()
    out_dcd.set_header(dcd.get_header())
    out_dcd.write_header()

    #dcd.show_header()
    k = 0
    while dcd.has_more_data():
        k += 1
        coords_dcd = dcd.read_onestep_np()

        rmsd = superimpose(ref.T, coords_dcd.T, mask)

        f_out.write('{:8d} {:6.2f}\n'.format(k, rmsd))

        out_dcd.write_onestep(coords_dcd)

    dcd.close()
    out_dcd.close()
Ejemplo n.º 2
0
@author: Naoto Hori
'''
import sys
from cafysis.file_io.pdb import PdbFile

if len(sys.argv) != 6:
    print(
        '\n Usage: SCRIPT [bfactor file] [PDB file] [scale] [Upper] [output PDB file]\n'
    )
    sys.exit(2)

f_bf_in = open(sys.argv[1], 'r')
f_pdb = PdbFile(sys.argv[2])
f_pdb.open_to_read()
chains = f_pdb.read_all()
f_pdb.close()

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:
Ejemplo n.º 3
0
import sys
from cafysis.file_io.pdb import PdbFile

if len(sys.argv) != 5:
    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()
### Read the reference pdb
ref_chains = pdb.read_all()

num_atom = 0
for chain in ref_chains :
    num_atom += chain.num_atom()

ref = zeros((3, num_atom), dtype=float64, order='F')
i = 0
for chain in ref_chains :
    for residue in chain.residues:
        for atom in residue.atoms :
            (ref[0][i], ref[1][i], ref[2][i]) = atom.xyz.get_as_tuple()
            i += 1
pdb.close()

ref_idx = [i for i in range(ID_DOM_INI_FIT, ID_DOM_END_FIT+1)]
pre_idx = [i for i in range(ID_DOM_INI_FIT, ID_DOM_END_FIT+1)]


# header
dcd.read_header()
header = dcd.get_header()
dcd_out.set_header(header)
dcd_out.write_header()

nmp = header.nmp_real

def find_max_min_PBC(d):
Ejemplo n.º 5
0
    if len(v) != num_dimension:
        print('len(v) != num_dimension, %i' % num_dimension)
        sys.exit(2)

#debug
#for i in xrange(num_ev):
#    print '# ev %i' % i
#    for value in ev[i] :
#        print value

# Calculate principal coordinate
chains = f_pdb.read_all()

for v in ev:
    x = 0.0
    idx = 0
    for c in chains:
        for i in range(c.num_atom()):
            c.get_atom(i).xyz.x
            x += (c.get_atom(i).xyz.x - data_ave[idx]) * v[idx]
            idx += 1
            x += (c.get_atom(i).xyz.y - data_ave[idx]) * v[idx]
            idx += 1
            x += (c.get_atom(i).xyz.z - data_ave[idx]) * v[idx]
            idx += 1
    f_out.write('%12.5f ' % x)
f_out.write('\n')

f_pdb.close()
f_out.close()
Ejemplo n.º 6
0
            a.xyz.transform(rotateQ.mtx)
#ここまでで、QがZ軸上にのった
print("QをZ軸上へ")
print("Q:",Q.get_as_tuple())
print("N:",N.get_as_tuple())


##########################################################
#NをZ軸まわりに回転させ、Nx>0でNy=0な位置へもっていく。
#DEBUG N = Coord(3,-3,-3)
theta = -atan2(N.y,N.x)
#DEBUG print "theta",theta, "(", theta/pi*180.0, "deg)"
rotateN = mtx_crd_transform()
rotateN.rotate_z(theta)

#DEBUG N.transform(rotateN.mtx)
for c in chains:
    for r in c.residues:
        for a in r.atoms:
            a.xyz.transform(rotateN.mtx)
#DEBUG print "N",N.get_as_tuple()
#ここまでで、NをX軸上へ
print("NをX軸上へ")
print("Q:",Q.get_as_tuple())
print("N:",N.get_as_tuple())

pdb_out = PdbFile("20130628.pdb")
pdb_out.open_to_write()
pdb_out.write_all(chains)
pdb_out.close()
Ejemplo n.º 7
0
import math

from cafysis.file_io.pdb import PdbFile
from cafysis.file_io.ninfo import NinfoFile
from cafysis.para.rnaAform import ARNA
from cafysis.para.rnaDT13 import DT13
from cafysis.elements.ninfo import NinfoSet, BondLength, BondAngle, BaseStackDT, HBondDT

if len(sys.argv) != 4:
    print('Usage: SCRIPT [cg pdb] [hb list file] [output ninfo]')
    sys.exit(2)

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

if len(chains) > 1:
    print('%i chains' % len(chains))

n_nt = []
for ic, c in enumerate(chains):
    n_nt.append(c.num_res())
    print('#nt (chain %i): ', ic + 1, n_nt)

seq = []
for ic, c in enumerate(chains):
    s = []
    for r in c.residues:
        # "RA " ---> "A"
        s.append(r.atoms[0].res_name.strip()[1])
Ejemplo n.º 8
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.º 9
0
from cafysis.file_io.pdb import PdbFile
from cafysis.elements.coord import Coord

if len(sys.argv) not in (2, 3):
    print('Usage: SCRIPT [PDB]  (score cutoff = 0.5)')
    print('  or : SCRIPT [PDB] [score cutoff]')
    sys.exit(2)

SCORE_CUT = 0.5
if len(sys.argv) > 2:
    SCORE_CUT = float(sys.argv[2])

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

coms = []
normals = []
locations = []

## Suppose all residues have a base

nres = 0
for ic, c in enumerate(chains):
    for ir, r in enumerate(c.residues):

        nres += 1

        ## A,U,G or C
        ntd = r.atoms[0].res_name.strip()
Ejemplo n.º 10
0
            imp2_offset += c2.num_res()
            
        imp1_offset += c1.num_res()
    return


if __name__ == '__main__':
    import sys
    if len(sys.argv) != 3:
        print ('Usage: %SCRIPT [input PDB] [output ninfo]')
        sys.exit(2)

    from cafysis.file_io.pdb import PdbFile
    from cafysis.file_io.ninfo import NinfoFile
    from cafysis.elements.ninfo import NinfoSet

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

    ns = NinfoSet()
    generate_FENEs(chains, ns)
    generate_LJs(chains, ns)

    f_ninfo = NinfoFile(sys.argv[-1])
    f_ninfo.open_to_write()
    f_ninfo.write_all(ns)
    f_ninfo.close()

Ejemplo n.º 11
0
            row_pre = 0
        else:
            row_pre = row

#TEST
#for mtx_id in assembly_units:
#    print (mtx_id)
#    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()))
Ejemplo n.º 12
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.º 13
0
#if args.flg_fit:
#    from Superimpose import superimpose

if args.frame_begin < 0:
    print('Error: Beginning frame must be > 0')
    sys.exit(2)

if args.frame_stride <= 0:
    print('Error: Frame stride must be > 0')
    sys.exit(2)

# Read the reference PDB
pdb = PdbFile(args.pdb)
pdb.open_to_read()
chains = pdb.read_all()
pdb.close()

# Output PDB
movie = PdbFile(args.out)
movie.open_to_write()

# Open DCD and read the header
dcd = DcdFile(args.dcd)
dcd.open_to_read()
dcd.read_header()

num_dcd_frames = dcd.count_frame()

if args.frame_end == -1:
    frame_end = num_dcd_frames - 1
Ejemplo n.º 14
0
import sys
from cafysis.file_io.pdb import PdbFile
from cafysis.elements.coord import Coord
from cafysis.elements.pdb import Chain, Residue, Atom

element2mass = {'P': 30.973761, 'O': 15.9994, 'C': 12.0107, 'N': 14.0067}

if __name__ == '__main__':
    if len(sys.argv) != 3:
        print('Usage: %SCRIPT [input PDB file] [output PDB]')
        sys.exit(2)

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

pdb_out = PdbFile(sys.argv[2])
pdb_out.open_to_write()
pdb_out.write_remark('Generated using cafysis/pdb_rna_nucleotide_com.py')
import time
import datetime
pdb_out.write_remark('At %s' % (datetime.datetime.fromtimestamp(
    time.time()).strftime('%Y%m%d %H:%M%S'), ))

chains_com = []

from . import elements

i_serial = 0