renamed extract chain file

This commit is contained in:
Tanushree Tunstall 2020-05-15 10:59:19 +01:00
parent 65db4a090e
commit 01a7cbf26e
2 changed files with 32 additions and 2 deletions

30
scripts/chain_extract.py Normal file
View file

@ -0,0 +1,30 @@
#!/usr/bin/python3
#=======================================================================
# TASK: select specified chains from the pdb & save a cropped PDB with
# the selected chains. Useful for dimer, etc modelling.
# link for saving each chain as a separate file
# https://stackoverflow.com/questions/11685716/how-to-extract-chains-from-a-pdb-file
#=======================================================================
from Bio.PDB import PDBParser, PDBIO, Select
io = PDBIO()
pdb = PDBParser().get_structure("3byw", "3byw.pdb")
# Select() Method to return True for every chain in 'chains'
class ChainSelect(Select):
def accept_chain(self, chain):
#print dir(chain)
if chain.id in chains:
return 1
else:
return 0
if __name__ == '__main__':
chains = ['G', 'H'] # specify selected chains
io.set_structure(pdb)
io.save(pdb.get_id() + "_crop.pdb", ChainSelect())

View file

@ -27,13 +27,13 @@ def main():
Function to call if run from command line.
Example use:
pdb_chain_splitter.py -f <your_pdb_file> -c aB
pdb_chain_splitter.py -f <your_pdb_file> -c <chainid1><chainid2>
Extracts chain 'A' by default.
FIXME: extract all chains from the given pdb and write them out individually
"""
arg_parser = argparse.ArgumentParser()
arg_parser.add_argument('-i', '--pdb_file', help='provide pdb file', default = 'None')
arg_parser.add_argument('-c', '--chain', help='chain/s to extract without spaces. Case insensitive.', nargs = '+', default = 'A', type = list)
arg_parser.add_argument('-c', '--chain', help='chain/s to extract without spaces.', nargs = '+', default = 'A', type = list)
arg_parser.add_argument('-p', '--out_path', help='specify output path', default = '.', type = str)
arg_parser.add_argument('-o', '--out_file', help='specify output filename. Will be used as a prefix to append chain id and pdb file extension', default = 'pdb_file_chain', type = str)
args = arg_parser.parse_args()