本人是生物学专业的学生,现遇到如下问题:
现有一条长度4M的基因序列(4,000,000个字符的长度),在试验设计中,想要把这个序列切割成等长的片段(等长字符串),并且是梯度切割(每次移码一个字符的长度),最后的结果是生成一组等长的片段集合(相当于 “字符串组”或“数组” )。
例如:假设字符串
“atggcgtttctgctttcattcggaactgaggtgcgggacgagctgcggcgcaactggggatggatcctggccgctggaatcgtcatggtgcttgcctggcactgggcaatctgttccttgccaccgtcgcatcggtttactacgtcggcctgttgatgatcctggggggcgccgcgcagatgggcgtgcgtgcaggtctttcgcgccaccggctggagcc…………”
是全长4M的基因序列的一小部分,想切割成长度为20个字符的字符串集合,
第一次切割生成的字符串是“atggcgtttctgctttcatt”,相当于字符串的第1个字符到第20个字符,
第二次切割生成的字符串是“tggcgtttctgctttcattc”,相当于字符串的第2个字符到第21个字符,
第三次切割生成的字符串是“ggcgtttctgctttcattcg”,相当于字符串的第3个字符到第22个字符,
第四次切割生成的字符串是“gcgtttctgctttcattcgg”,相当于字符串的第4个字符到第23个字符,
…………
第n次切割生成的字符串相当于字符串的第 ”n” 个字符到第 ”n+20-1” 个字符。
切割生成20个字符长度的片段集合以后,还要切割生成其他长度的片段集合,如10、15、16等等长度,所以切割片段的目的长度最好可以做为一个可调整的参数来设置,这样就可以自动切割成集合内等长、不同集合内长度不等的多个集合了。
不知是否有高手可以帮助写一段代码,来实现这个想法。先在此道谢了。
补充:4M的字符串切割生成长度为20的字符串集合,会产生大概80M的文件,不知道能不能直接生成TXT文档。