[Tutor] arrangement of datafile
Amrita Kumari
amrita.g13 at gmail.com
Fri Dec 27 05:28:37 CET 2013
Hi,
My data file is something like this:
1 GLY HA2=3.7850 HA3=3.9130
2 SER H=8.8500 HA=4.3370 N=115.7570
3 LYS H=8.7530 HA=4.0340 HB2=1.8080 N=123.2380
4 LYS H=7.9100 HA=3.8620 HB2=1.7440 HG2=1.4410 N=117.9810
5 LYS H=7.4450 HA=4.0770 HB2=1.7650 HG2=1.4130 N=115.4790
6 LEU H=7.6870 HA=4.2100 HB2=1.3860 HB3=1.6050 HG=1.5130 HD11=0.7690
HD12=0.7690 HD13=0.7690 N=117.3260
7 PHE H=7.8190 HA=4.5540 HB2=3.1360 N=117.0800
8 PRO HD2=3.7450
9 GLN H=8.2350 HA=4.0120 HB2=2.1370 N=116.3660
10 ILE H=7.9790 HA=3.6970 HB=1.8800 HG21=0.8470 HG22=0.8470 HG23=0.8470
HG12=1.6010 HG13=2.1670 N=119.0300
11 ASN H=7.9470 HA=4.3690 HB3=2.5140 N=117.8620
12 PHE H=8.1910 HA=4.1920 HB2=3.1560 N=121.2640
13 LEU H=8.1330 HA=3.8170 HB3=1.7880 HG=1.5810 HD11=0.8620 HD12=0.8620
HD13=0.8620 N=119.1360
........................
.......................
where first column is the residue number and I want to print the individual
atom chemical shift value one by one along with residue number.....for
example for atom HA2 it should be:
1 HA2=3.7850
2 HA2=nil
3 HA2=nil
.....
............
..........
13 HA2=nil
similarly for atom HA3 it should be same as above:
1 HA3=3.9130
2 HA3=nil
3 HA3=nil
...........
............
............
13 HA3=nil
while for atom H it should be:
1 H=nil
2 H=8.8500
3 H=8.7530
4 H=7.9100
5 H=7.4450
........
can you suggest me how to produce nested dicts like this:
{1: {'HA2': 3.785, 'HA3': 3.913},
2: {'H': 8.85, 'HA': 4.337, 'N': 115.757},
3: {'H': 8.753, 'HA': 4.034, 'HB2': 1.808, 'N': 123.238},
4: {'H': 7.91, 'HA': 3.862, 'HB2': 1.744, 'HG2': 1.441, 'N': 117.981},
5: {'H': 7.445, 'HA': 4.077, 'HB2': 1.765, 'HG2': 1.413, 'N': 115.479},
6: {'H': 7.687,
'HA': 4.21,
'HB2': 1.386,
'HB3': 1.605,
'HD11': 0.769,
'HD12': 0.769,
'HD13': 0.769,
'HG': 1.513,
'N': 117.326},
7: {'H': 7.819, 'HA': 4.554, 'HB2': 3.136, 'N': 117.08},
8: {'HD2': 3.745},
9: {'H': 8.235, 'HA': 4.012, 'HB2': 2.137, 'N': 116.366},
10: {'H': 7.979,
'HA': 3.697,
'HB': 1.88,
'HG12': 1.601,
'HG13': 2.167,
'HG21': 0.847,
'HG22': 0.847,
'HG23': 0.847,
'N': 119.03},
11: {'H': 7.947, 'HA': 4.369, 'HB3': 2.514, 'N': 117.862},
12: {'H': 8.191, 'HA': 4.192, 'HB2': 3.156, 'N': 121.264},
13: {'H': 8.133,
'HA': 3.817,
'HB3': 1.788,
'HD11': 0.862,
'HD12': 0.862,
'HD13': 0.862,
'HG': 1.581,
'N': 119.136}}
Thanks,
Amrita
On Wed, Dec 25, 2013 at 7:28 PM, Dave Angel <davea at davea.name> wrote:
> On Wed, 25 Dec 2013 16:17:27 +0800, Amrita Kumari <amrita.g13 at gmail.com>
> wrote:
>
>> I tried these and here is the code:
>>
>
>
> f=open('filename')
>> lines=f.readlines()
>> new=lines.split()
>>
>
> That line will throw an exception.
>
>> number=int(new[0])
>> mylist=[i.split('=')[0] for i in new]
>>
>
>
> one thing I don't understand is why you asked to remove first two
>> items from the list?
>>
>
> You don't show us the data file, but presumably he would ask that because
> the first two lines held different formats of data. Like your number= line
> was intended to fetch a count from only line zero?
>
>
>
> and is the above code alright?, it can produce
>> output like the one you mentioned:
>> {1: {'HA2': 3.785, 'HA3': 3.913},
>> 2: {'H': 8.85, 'HA': 4.337, 'N': 115.757},
>>
>
> The code above won't produce a dict of dicts. It won't even get past the
> exception. Please use copy/paste.
>
> --
> DaveA
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20131227/6143ba9a/attachment.html>
More information about the Tutor
mailing list