/
get_seq.py
executable file
·41 lines (38 loc) · 1.09 KB
/
get_seq.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python
import os
import sys
from sys import stdout
import Bio
from Bio.PDB import PDBParser, PPBuilder, PDBIO
def get_sequence(pdb):
pdb_parser = PDBParser(PERMISSIVE=0)
pdb_structure = pdb_parser.get_structure(pdb,pdb)
chain=''
chain_list=[]
for chains in pdb_structure.get_chains():
chain_list.append(chains.get_id())
sorted_chains = sorted(chain_list)
chain = sorted_chains[0]
pdb_chain = pdb_structure[0][chain]
for residue in pdb_chain:
id = residue.id
if id[0] != ' ':
pdb_chain.detach_child(id)
if len(pdb_chain) == 0:
pdb_structure[0].detach_child(pdb_chain.id)
# Using CA-CA
ppb=PPBuilder()
Sequence = ""
for pp in ppb.build_peptides(pdb_chain):
Sequence = Sequence + pp.get_sequence()
if len(str(Sequence)) > 0:
print(str(Sequence))
else:
print('no sequence obtained')
if __name__ == '__main__':
argc = len(sys.argv)
if argc != 2:
print("Usage: get_seq.py PDB.pdb")
else:
if argc == 2:
get_sequence(sys.argv[1])