In [45]:
from Bio.PDB import PDBParser
from Bio.PDB import PDBIO
parser = PDBParser()

In [64]:
location = "/Users/weilu/Research/server/jul_2018/two_abeta42/crystal_structure.pdb"
to = "/Users/weilu/Research/server/jul_2018/two_abeta42/t.pdb"

In [70]:
with open(to, "w") as out:
    with open(location, "r") as f:
        for line in f:
            tmp = list(line)
            atom = line[0:4]
            atomSerialNumber = line[6:11]
            atomName = line[12:16]
            atomResidueName = line[17:20]
            chain = line[21]
            residueNumber = line[22:26]
            # change chain A to B
            new_chain = "B"
            tmp[21] = new_chain
            if atom == "ATOM":
                x = float(line[30:38])
                y = float(line[38:46])
                z = float(line[46:54])

                # add 40 to the x
                new_x = x + 40.0
                new_y = y + 0.0
                
                
                tmp[30:38] = "{:8.3f}".format(new_x)
                tmp[38:46] = "{:8.3f}".format(new_y)
                
            a = "".join(tmp)
            out.write(a)

In [6]:
structure = parser.get_structure('abeta42', location)

In [12]:
model = structure[0]

In [46]:
io = PDBIO()

In [48]:
model["B"]


Out[48]:
{'A': <Chain id=A>}

In [ ]:
io.set_structure(s)

In [30]:
for chain in model:
    for residue in chain:
        print(residue)


<Residue ASP het=  resseq=1 icode= >
<Residue ALA het=  resseq=2 icode= >
<Residue GLU het=  resseq=3 icode= >
<Residue PHE het=  resseq=4 icode= >
<Residue ARG het=  resseq=5 icode= >
<Residue HIS het=  resseq=6 icode= >
<Residue ASP het=  resseq=7 icode= >
<Residue SER het=  resseq=8 icode= >
<Residue GLY het=  resseq=9 icode= >
<Residue TYR het=  resseq=10 icode= >
<Residue GLU het=  resseq=11 icode= >
<Residue VAL het=  resseq=12 icode= >
<Residue HIS het=  resseq=13 icode= >
<Residue HIS het=  resseq=14 icode= >
<Residue GLN het=  resseq=15 icode= >
<Residue LYS het=  resseq=16 icode= >
<Residue LEU het=  resseq=17 icode= >
<Residue VAL het=  resseq=18 icode= >
<Residue PHE het=  resseq=19 icode= >
<Residue PHE het=  resseq=20 icode= >
<Residue ALA het=  resseq=21 icode= >
<Residue GLU het=  resseq=22 icode= >
<Residue ASP het=  resseq=23 icode= >
<Residue VAL het=  resseq=24 icode= >
<Residue GLY het=  resseq=25 icode= >
<Residue SER het=  resseq=26 icode= >
<Residue ASN het=  resseq=27 icode= >
<Residue LYS het=  resseq=28 icode= >
<Residue GLY het=  resseq=29 icode= >
<Residue ALA het=  resseq=30 icode= >
<Residue ILE het=  resseq=31 icode= >
<Residue ILE het=  resseq=32 icode= >
<Residue GLY het=  resseq=33 icode= >
<Residue LEU het=  resseq=34 icode= >
<Residue MET het=  resseq=35 icode= >
<Residue VAL het=  resseq=36 icode= >
<Residue GLY het=  resseq=37 icode= >
<Residue GLY het=  resseq=38 icode= >
<Residue VAL het=  resseq=39 icode= >
<Residue VAL het=  resseq=40 icode= >
<Residue ILE het=  resseq=41 icode= >
<Residue ALA het=  resseq=42 icode= >

In [18]:
c = model["A"]

In [33]:
res = c[1]

In [37]:
atom = res['CA']

In [42]:
atom.get_coord() - np.array([10,0,0])


Out[42]:
array([-27.77899933,   4.59499979,  21.68600082])

In [43]:
atom.get_coord()


Out[43]:
array([-17.77899933,   4.59499979,  21.68600082], dtype=float32)

In [41]:
import numpy as np

In [29]:
c.child_dict


Out[29]:
{(' ', 1, ' '): <Residue ASP het=  resseq=1 icode= >,
 (' ', 2, ' '): <Residue ALA het=  resseq=2 icode= >,
 (' ', 3, ' '): <Residue GLU het=  resseq=3 icode= >,
 (' ', 4, ' '): <Residue PHE het=  resseq=4 icode= >,
 (' ', 5, ' '): <Residue ARG het=  resseq=5 icode= >,
 (' ', 6, ' '): <Residue HIS het=  resseq=6 icode= >,
 (' ', 7, ' '): <Residue ASP het=  resseq=7 icode= >,
 (' ', 8, ' '): <Residue SER het=  resseq=8 icode= >,
 (' ', 9, ' '): <Residue GLY het=  resseq=9 icode= >,
 (' ', 10, ' '): <Residue TYR het=  resseq=10 icode= >,
 (' ', 11, ' '): <Residue GLU het=  resseq=11 icode= >,
 (' ', 12, ' '): <Residue VAL het=  resseq=12 icode= >,
 (' ', 13, ' '): <Residue HIS het=  resseq=13 icode= >,
 (' ', 14, ' '): <Residue HIS het=  resseq=14 icode= >,
 (' ', 15, ' '): <Residue GLN het=  resseq=15 icode= >,
 (' ', 16, ' '): <Residue LYS het=  resseq=16 icode= >,
 (' ', 17, ' '): <Residue LEU het=  resseq=17 icode= >,
 (' ', 18, ' '): <Residue VAL het=  resseq=18 icode= >,
 (' ', 19, ' '): <Residue PHE het=  resseq=19 icode= >,
 (' ', 20, ' '): <Residue PHE het=  resseq=20 icode= >,
 (' ', 21, ' '): <Residue ALA het=  resseq=21 icode= >,
 (' ', 22, ' '): <Residue GLU het=  resseq=22 icode= >,
 (' ', 23, ' '): <Residue ASP het=  resseq=23 icode= >,
 (' ', 24, ' '): <Residue VAL het=  resseq=24 icode= >,
 (' ', 25, ' '): <Residue GLY het=  resseq=25 icode= >,
 (' ', 26, ' '): <Residue SER het=  resseq=26 icode= >,
 (' ', 27, ' '): <Residue ASN het=  resseq=27 icode= >,
 (' ', 28, ' '): <Residue LYS het=  resseq=28 icode= >,
 (' ', 29, ' '): <Residue GLY het=  resseq=29 icode= >,
 (' ', 30, ' '): <Residue ALA het=  resseq=30 icode= >,
 (' ', 31, ' '): <Residue ILE het=  resseq=31 icode= >,
 (' ', 32, ' '): <Residue ILE het=  resseq=32 icode= >,
 (' ', 33, ' '): <Residue GLY het=  resseq=33 icode= >,
 (' ', 34, ' '): <Residue LEU het=  resseq=34 icode= >,
 (' ', 35, ' '): <Residue MET het=  resseq=35 icode= >,
 (' ', 36, ' '): <Residue VAL het=  resseq=36 icode= >,
 (' ', 37, ' '): <Residue GLY het=  resseq=37 icode= >,
 (' ', 38, ' '): <Residue GLY het=  resseq=38 icode= >,
 (' ', 39, ' '): <Residue VAL het=  resseq=39 icode= >,
 (' ', 40, ' '): <Residue VAL het=  resseq=40 icode= >,
 (' ', 41, ' '): <Residue ILE het=  resseq=41 icode= >,
 (' ', 42, ' '): <Residue ALA het=  resseq=42 icode= >}

In [ ]: