Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 使用标准unix工具进行模糊搜索/近似字符串匹配_String_Bash_Unix_Fuzzy Search_Approximate - Fatal编程技术网

String 使用标准unix工具进行模糊搜索/近似字符串匹配

String 使用标准unix工具进行模糊搜索/近似字符串匹配,string,bash,unix,fuzzy-search,approximate,String,Bash,Unix,Fuzzy Search,Approximate,我正在处理prokka注释文件,这些文件给了我uniprot数据库中一个基因的蛋白质产物。不幸的是,许多基因与多个非常相似的产品名称有关,例如 1%2C2-phenylacetyl-CoA epoxidase%2C subunit A 1%2C2 phenylacetyl-CoA epoxidase%2C subunit A 1%2C2-phenylacetyl CoA epoxidase%2C subunit A 1%2C2-Phenylacetyl CoA Epoxidase%2C subu

我正在处理prokka注释文件,这些文件给了我uniprot数据库中一个基因的蛋白质产物。不幸的是,许多基因与多个非常相似的产品名称有关,例如

1%2C2-phenylacetyl-CoA epoxidase%2C subunit A
1%2C2 phenylacetyl-CoA epoxidase%2C subunit A
1%2C2-phenylacetyl CoA epoxidase%2C subunit A
1%2C2-Phenylacetyl CoA Epoxidase%2C subunit A
而这些变体实际上是不同的产品

1%2C2-phenylacetyl-CoA epoxidase%2C subunit A
1%2C2-phenylacetyl-CoA epoxidase%2C subunit B
1%2C2-phenylacetyl-CoA epoxidase%2C subunit C
1%2C2-phenylacetyl-CoA epoxidase%2C subunit E
为了避免在将我的基因映射到它们各自的产物时遇到麻烦,我决定用“@”替换所有可能的歧义和有问题的字符,例如“-”“/”,并将所有字符串放在小写

但是否有一种方法可以搜索,例如

1%2C2-Phenylacetyl CoA Epoxidase%2C subunit A

包括可能的、与标准unix工具密切相关的条目,如grep?到目前为止,我还没有找到答案。

如果您想要由字符串距离度量定义的真正的模糊搜索,请检查。 对于您的应用程序,我将使用带有不区分大小写匹配和句点特殊字符的grep

grep -i "1.2C2.phenylacetyl.CoA.epoxidase.2C subunit A" drugNames.txt

将匹配句点位置的任何字符,并且不注意大小写,这就是你想要的。

你的意思是说
1%2C2苯乙酰辅酶A环氧化酶%2C亚单位A
1%2C2苯乙酰辅酶A环氧化酶%2C亚单位A
是不同的吗?你的要求是精确匹配文件中的字符串
1%2C2苯乙酰辅酶A环氧化酶%2C亚单位A
?第一组4个名称代表相同的名称产品,但与存储在数据库中的略有不同。后4个名称实际上是不同的。我想使用前4个字符串中的一个来查找其他3个版本。希望这对汉克斯有所帮助,我想我会研究一下tre agrep,因为对于不同的查询,我总是需要知道可能的歧义字符是什么