#!/usr/bin/env python
"""
Example::
./rna_add_chain.py -c X ../../input/1msy_rnakbmd_decoy999_clx_noChain.pdb \
> ../../output/1msy_rnakbmd_decoy999_clx_noChain_Xchain.pdb
From::
ATOM 1 O5' U 1 42.778 25.208 46.287 1.00 0.00
ATOM 2 C5' U 1 42.780 26.630 45.876 1.00 0.00
ATOM 3 C4' U 1 42.080 27.526 46.956 1.00 0.00
ATOM 4 O4' U 1 43.013 28.044 47.963 1.00 0.00
ATOM 5 C1' U 1 42.706 29.395 48.257 1.00 0.00
ATOM 6 N1 U 1 43.857 30.305 47.703 1.00 0.00
ATOM 7 C6 U 1 45.057 29.857 47.308 1.00 0.00
ATOM 8 C5 U 1 46.025 30.676 46.763 1.00 0.00
ATOM 9 C4 U 1 45.720 32.110 46.702 1.00 0.00
ATOM 10 O4 U 1 46.444 32.975 46.256 1.00 0.00
to::
ATOM 1 O5' U X 1 42.778 25.208 46.287 1.00 0.00
ATOM 2 C5' U X 1 42.780 26.630 45.876 1.00 0.00
ATOM 3 C4' U X 1 42.080 27.526 46.956 1.00 0.00
ATOM 4 O4' U X 1 43.013 28.044 47.963 1.00 0.00
ATOM 5 C1' U X 1 42.706 29.395 48.257 1.00 0.00
ATOM 6 N1 U X 1 43.857 30.305 47.703 1.00 0.00
ATOM 7 C6 U X 1 45.057 29.857 47.308 1.00 0.00
ATOM 8 C5 U X 1 46.025 30.676 46.763 1.00 0.00
ATOM 9 C4 U X 1 45.720 32.110 46.702 1.00 0.00
ATOM 10 O4 U X 1 46.444 32.975 46.256 1.00 0.00
in a loop::
for i in *; do rna_add_chain.py -c A $i > ../struc/${i}; done
"""
from rna_tools.rna_tools_lib import *
import argparse
[docs]def get_parser():
parser = argparse.ArgumentParser()#usage="%prog [<options>] <pdb files (test_data/*)>")
parser.add_argument('file', help="file")
parser.add_argument('-c',"--chain",
dest="chain",
help='a new chain, e.g. A')
return parser
if __name__ == '__main__':
parser = get_parser()
args = parser.parse_args()
if len(sys.argv) == 1:
print((parser.print_help()))
sys.exit(1)
s = RNAStructure(args.file)
for l in s.lines:
if l.startswith('ATOM'):
nl = list(l)
nl[21] = args.chain # new chain
nl = ''.join(nl)
print(nl)
else:
print(l)