I am dealing with the analysis of the data in the many separate log filles. This is the format of each log
Finding intramodel H-bonds
Constraints relaxed by 0.6 angstroms and 20 degrees
Models used:
1.1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.3 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.4 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.5 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.6 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.7 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.8 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.9 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.10 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.11 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.12 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.13 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.14 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.15 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.16 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.17 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.18 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.19 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.20 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.21 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.22 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.23 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
1.24 SarsCov2_mol30_nsp5holoHIE_rep1.pdb
17 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/? HIE 163 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/? HIE 163 HE2 3.250 2.448
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.1/? GLU 166 H 2.817 2.027
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? THR 26 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 N2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? THR 26 H 3.453 2.470
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? HIE 163 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? HIE 163 HE2 3.269 2.495
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? GLU 166 H 3.555 2.634
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.4/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.4/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.4/? GLU 166 H 3.622 2.743
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.5/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.5/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.5/? GLU 166 H 2.797 1.790
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.10/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.10/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.10/? GLU 166 H 3.780 2.783
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.12/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.12/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.12/? GLU 166 H 3.273 2.541
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.14/? HIE 163 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.14/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.14/? HIE 163 HE2 3.389 2.556
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/? ASN 142 ND2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/? ASN 142 2HD2 3.067 2.303
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/? GLY 143 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/A LIG 888 N2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.15/? GLY 143 H 2.962 2.016
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.16/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.16/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.16/? GLU 166 H 2.926 1.930
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.19/? GLN 189 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.19/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.19/? GLN 189 1HE2 3.026 2.212
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/? GLY 143 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/? GLY 143 H 2.855 1.848
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/? HIE 163 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.22/? HIE 163 HE2 3.345 2.400
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.24/? GLN 189 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.24/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.24/? GLN 189 1HE2 2.893 2.286
I need to consider each line after the string
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
From the rest lines I need to check whether three keywords:
GLU 166
HIE 163
THR 26
are present in the same index (defined as 1.1 , 1.2 ... 1.24) and then print the name of the log + the ID of the index value (in the second column). In the log, the index value is 1.2 since the three keywords are:
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? THR 26 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 N2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? THR 26 H 3.453 2.470
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? HIE 163 NE2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 O2 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? HIE 163 HE2 3.269 2.495
SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? GLU 166 N SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/A LIG 888 O1 SarsCov2_mol30_nsp5holoHIE_rep1.pdb #1.2/? GLU 166 H 3.555 2.634
so the expected output should be:
log_name.log the patterns are found in the #1.2!
UPDATE: Finally in some tricky cases one of the search patterns may be located in different parts of the string (always preserving the same format), for example in the below example the pattern GLU 166 of the last string is located in another column compared to two other patterns belong to index #1.3
43 H-bonds
H-bonds (donor, acceptor, hydrogen, D..A dist, D-H..A dist):
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/? THR 26 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/A LIG 888 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/? THR 26 H 3.355 2.554
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/? GLU 166 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/A LIG 888 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/? GLU 166 H 3.071 2.100
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/A LIG 888 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/? THR 26 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.1/A LIG 888 H 3.463 2.657
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/? HIE 163 NE2 SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/A LIG 888 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/? HIE 163 HE2 3.019 2.147
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/A LIG 888 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/? PHE 140 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.2/A LIG 888 H 3.169 2.591
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/? THR 26 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/A LIG 888 S SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/? THR 26 H 3.666 2.696
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/? HIE 163 NE2 SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/A LIG 888 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/? HIE 163 HE2 2.959 2.050
SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/A LIG 888 N SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/? GLU 166 O SarsCov2_06I_nsp5holoHIE_rep2.pdb #1.3/A LIG 888 H 3.118 2.200
I've tried to loop each log using simple bash workflow with awk code that looked for 1 pattern but could not do it with three patterns belonged to the same index #
for log in /logs/*hbondsALL_rep"${i}".log; do
log_name=$(basename "$log" .log | cut -d'_' -f 2)
# search only one pattern GLU 166
i=$(awk -vn=1 '/GLU 166/ {gsub(/.*\.|\/\?/,"",$2); n=$2; exit} END {print n}' $log)
# insert here alternative search solution which check the patterns!
# and find the index {i} in the log
# log_name.log the patterns are found in the # {i}
done
may I use sed or AWK for such pattern based search intergrated in bash?