2013-03-18 3 views
0

pdb 파일의 각 나머지에 대한 원자 수를 계산하고 싶습니다. PDB 파일은 다음과 같습니다. 세 번째 열은 원자를 나타내며 네 번째 열은 잔여를 나타냅니다.PDB 파일의 원자 수를 계산하십시오.

ATOM  1 N ASN A 380  -0.011 22.902 -13.714 1.00 65.81   N 
ATOM  2 CA ASN A 380  0.401 23.938 -12.714 1.00 65.53   C 
ATOM  3 C ASN A 380  1.926 24.019 -12.595 1.00 64.48   C 
ATOM  9 N THR A 381  2.553 24.693 -13.562 1.00 61.65   N 
ATOM  10 CA THR A 381  4.006 24.848 -13.609 1.00 58.60   C 
ATOM  16 N ILE A 382  5.156 22.716 -13.481 1.00 53.48   N 
ATOM  17 CA ILE A 382  5.808 21.571 -12.830 1.00 49.47   C 
ATOM  18 C ILE A 382  6.645 21.933 -11.584 1.00 45.24   C 
ATOM  28 CB GLN A 383  8.735 24.763 -10.759 1.00 30.19   C 
ATOM  29 CG GLN A 383  10.140 24.257 -11.037 1.00 29.17   C 
ATOM  30 CD ASN A 384  10.397 23.975 -12.514 1.00 29.51   C 
ATOM  31 OE1 ASN A 384  10.892 24.838 -13.237 1.00 30.67   O 

내가 일해야

Total no:of ASN atoms - 5 
Total no:of THR atoms - 2 
Total no:of ILE atoms - 3 
Total no:of GLN atoms - 2 
+0

PDB 형식은 필드 지향이 아닌 열 기반입니다. 나머지 필드는 열 18-20입니다. http://www.wwpdb.org/documentation/format33/sect9.html#ATOM의 사양을 참조하십시오. 나머지 이름에 $ 4 대신 substr ($ 0, 18, 3)을 사용해야합니다. 그렇지 않으면 일부 구조에 대해 잘못된 대답을 얻게됩니다. –

답변

0

이 다음과 같이 출력을 좀하고 싶습니다 :

awk '{print $4}' <file> | sort | uniq -c | \ 
    awk '{print "Total no:of", $2, "atoms -", $1}' 

또는 순수 awk : 모두

awk '{atom[$4]++;} 
    END{for (i in atom) {print "Total no:of", i, "atoms -", atom[i]} }' <file> 

출력 방법 :

Total no:of GLN atoms - 2 
Total no:of THR atoms - 2 
Total no:of ASN atoms - 5 
Total no:of ILE atoms - 3 
+0

정말 고마워요. – user2160995