【发布时间】:2012-08-31 23:11:55
【问题描述】:
我有两个文件
File 1 in reading directory is of following format
Read 1 A T
Read 3 T C
Read 5 G T
Read 7 A G
Read 10 A G
Read 12 C G
File 2 in directory contains
Read 5 A G
Read 6 T C
Read 7 G A
Read 8 G A
Read 20 A T
文件2包含
1
2
3
4
5
6
7
我需要先读取文件 2 中的位置,然后以水平方式从目录中打开的文件中打印出相应的值。如果该位置不匹配,则打印为“-”。上面的输出应该是
1 2 3 4 5 6 7
Read T - C - T - G
Read - - - - G C A
我需要对所有文件执行此操作,并在另一行中以上述格式打印。所以输出将只有一个文件,行数等于文件数。我可以在 perl 中轻松做到这一点吗?
【问题讨论】:
-
这应该像家庭作业 - 请展示你已经尝试过的东西,人们更有可能帮助你
-
这绝不是家庭作业。我是生物信息学的新手,并试图在工作场所学习语言。我也不是在寻找完整的解决方案。我只需要一个方向。我正在读取第二个带有位置的文件,然后打开目录并一个一个打开文件并将内容推送到数组。然后之后我不知道如何将位置与打开的文件进行比较。还有如何水平打印它们?
-
您有三个输入文件,其中两个称为“File2”。输入如何映射到所需的输出并不明显。例如,为什么第 1 列包含“-T”(或者我什至没有正确阅读它)? (第一个)File2 是否总是覆盖来自 File1 的输入,就像它出现在输出的第 5 列中一样?请编辑您的问题。
-
(哎呀,我的意思是第 5 列观察反之亦然。)
标签: linux perl unix operating-system