- 论坛徽章:
- 0
|
我手上有两个文件要处理,一个的内容是*** 1TMY.pdb
$$$ ALA12 PHE13 MET14 ARG15 MET16 MET17 LEU18 LYS19 ASP20 ILE21 ILE22
HR23 LYS24
$$$ GLY36 ARG37 GLU38 ALA39 VAL40 GLU41 LYS42 TYR43 LYS44 GLU45 LEU46
$$$ PRO58 GLU59 MET60
$$$ GLY62 ILE63 ASP64 ALA65 ILE66 LYS67 GLU68 ILE69 MET70 LYS71 ILE72
$$$ GLN87 ALA88 MET89 VAL90 ILE91 GLU92 ALA93 ILE94 LYS95 ALA96
$$$ PRO108 SER109 ARG110 VAL111 VAL112 GLU113 ALA114 LEU115 ASN116 LYS117
$$$
*** 1VJW.pdb
$$$ VAL15 CYS16 GLU17 ASN18 LEU19
$$$ PRO42 CYS43 ALA44 LYS45 ASP46 ALA47 ALA48 ASP49 SER50
$$$
另一个的内容是
*** 1TMY.pdb
$$$ GLY2 LYS3
$$$ ASP9 ASP10 ALA11
$$$ ALA25 GLY26 TYR27
$$$ THR34 ASN35
$$$ LYS47 PRO48 ASP49
$$$ ILE55 THR56 MET57
$$$ ASN61
$$$ ASP73 PRO74 ASN75 ALA76 LYS77
$$$ ALA83 MET84 GLY85 GLN86
$$$ GLY97 ALA98 LYS99
$$$ LYS104 PRO105 PHE106 GLN107
$$$ VAL118 SER119
*** 1VJW.pdb
$$$ MET1
$$$ ASP6 ALA7 ASP8 ALA9 CYS10 ILE11 GLY12 CYS13 GLY14
$$$ CYS20 PRO21 ASP22 VAL23
$$$ ASP28 ASP29 GLY30 LYS31
$$$ LEU35 GLN36 PRO37 GLU38 THR39 ASP40 LEU41
$$$ CYS51 PRO52 THR53 GLY54 ALA55
$$$
现在要干的事情是:
我给出了这样一个序列要求做匹配,比如说是
MET GLY GLN GLN ALA MET
并且知道,这六个连续的序列一定是前三个在第二个文件,后三个在第一个文件,并且他们的序号是连续的,即后面的数字在两个文件中是可接续的。
要求找到这样的序列。注意,在文件中有不同的记录项,“***” 就表示一个新的纪录项的开始,接续的时候不要接错了,只能是两个文件中分别对应的纪录项。
其中,纪录项新行的开始以“$$$“,间隔是用tab不是空格。
我曾经想用c实现,但这样的判断实在太繁琐了,时间不允许。只好求助于shell,可惜shell功底太差。
小弟尽其所能,只能写如下几句,望大侠相助。
a=` grep -v "\*\*\*" first_file | awk '{ print $2 }' `
然后就不知该怎么办了 |
|