In a pdb file made of lines "ATOM .." (see attachment as I was unable
to obtain plain text with gmail) I would like to reposition the second
"W" from column 19 to 17 ( (Python numbering; in pdb numbering it
would be 20 18). I started with bold slices, then I was unable to
complete the script. Much obliged for help.
francesco pietra
L = L[ : 17] + L[19] + L[18] + ' ' + L[20 : ]
hth,
vbr
######################################
scale = """ 1 2 3 4 5 6
012345678901234567890123456789012345678901234567890123456789012345"""
data_line = "ATOM 1 W W 1 0.690 35.960 33.300 1.00 0.00"
if data_line [19] == 'W':
output_line = data_line [0:17]+data_line [19]+data_line
[18]+data_line [17]+data_line [20:]
# alternatively
ch_19, ch_17 = data_line [19], data_line [17]
data_lst = list(data_line)
data_lst[17] = ch_19
data_lst[19] = ch_17
output_line_2 = "".join(data_lst)
print output_line_2 == output_line
else:
output_line = data_line
print scale
print data_line
print scale
print output_line
print "=" * 66
Try checking the line length too:
if len(L) >= 19 and L[19] == 'W':
Alternatively:
if L[19 : 20] == 'W':
(If the line is too short then L[19 : 20] will return ''.)