Unix与Perl编程:数据检查、求助途径与问题解决方案
数据检查与验证
在处理数据时,尤其是DNA序列数据,要特别注意数据的有效性。例如,某些字符不应该出现在DNA序列中,像“X”不能用来代表核苷酸,“J”也不对应任何氨基酸。如果下载了与基因对应的DNA序列,其编码部分的长度应该是三个核苷酸的倍数。
在面对大量数据时,不能仅靠肉眼检查。若对数据有怀疑,花一两个小时编写一个简单的“检查”脚本是很有必要的,这样能确保数据看起来是有效的,避免像花费一周时间去分析一个5GB的基因组数据文件,最后却发现下载的是电影《超级宝贝2》的数字拷贝这种情况。
即使不确定数据应遵循的具体“规则”,也可以对好的数据进行一些合理的“猜测”。以下是一些数据合理性检查的示例:
| 数据类型 | 检查规则 |
| ---- | ---- |
| 坐标数据 | 起始坐标应在结束坐标之前 |
| 长度数据 | “事物”的长度通常为非零值 |
| 年代数据 | 化石、挖掘物或古代文明的年代不应超过46亿年 |
即使数据可能取任意值,也可能期望一定比例的数据点落在X和Y之间的范围内。总之,永远不要盲目信任原始数据,一定要对其进行检查。
内置支持工具
当遇到Unix或Perl问题时,不必舍近求远,计算机上可能已经有一些支持机制。
对于Unix命令,每个命令都有自己的文档,包含在手册页(man pages)中,可以使用Unix的man命令来访问。例如,要查看ls命令的文档,只需在终端输入man ls