【发布时间】:2014-02-18 12:38:48
【问题描述】:
我需要为一个程序做一个输入,这真的超出了我的编程技能,这就是我没有尝试任何东西的原因。希望你能帮帮我。
我有很多文本文件,以符号“>”开头,一个样本名称,一个换行符,然后是每个样本的 0 和 1 数据。
数据看起来像这样(实际上要大得多):
>SampleName_ZN189A
01000001000000000000100011100000000111000000001000
00110000100000000000010000000000001100000010000000
00110000000000001110000010010011111000000100010000
00000110000001000000010100000000010000001000001110
>SampleName_ZN189B
00110000001101000001011100000000000000000000010001
00010000000000000010010000000000100100000001000000
00000000000000000000000010000000000010111010000000
01000110000000110000001010010000001111110101000000
注意:每 50 个字符后有一个换行符。
我需要做的是:
提取文件中每个样本的前 2000 个字符的数据,并以相同的名称后跟窗口编号保存。例如,如果这个文件被命名为:Testfile_1.txt,它应该看起来像这样(我提取了数据的前 50 个字符):
>SampleName_ZN189A
01000001000000000000100011100000000111000000001000
>SampleName_ZN189B
00110000001101000001011100000000000000000000010001
这个文件应该这样命名:Testfile_1_window1.txt
现在,第二个窗口应该从字符 1500 开始到字符 3500,即 Testfile_1_window2.txt,从字符 3000 到 5000 的第三个文件名称为 Testfile_1_window3.txt 等等...但是如果最后一个窗口有少于 2000 个字符这些字符应添加到最后一个窗口。
也就是说,由 2000 个字符的窗口与 500 个字符的重叠。
提前致谢。
注意 2:
如果您认为可以使用 perl 或 python 解决此问题,请同时发布您的答案。
【问题讨论】:
-
如果提取前 2000 个字符,那么第二个文件
rom the character 1500 to the character 3500,怎么来? -
我猜是重叠的。
-
是的,我需要每2000个字符提取每个样本的数据,重叠500个。这就是为什么第一个窗口将从位置0到2000,下一个窗口从1500到3500,等等。
-
'如果最后一个窗口少于 2000 个字符' 不清楚你在说什么;你的意思是如果有 3300 个字符,所有 3300 都进入第一个窗口(因为没有足够的第二个窗口?)
-
是的,就是这样。例如,我更喜欢一个 2000+ 的窗口,而不是两个窗口,一个是 2000,另一个是 300 个字符