yuanzhen_licheng 2018-01-13 00:23 采纳率: 100%
浏览 916
已采纳

如何等长梯度切割字符串生成字符串集?

本人是生物学专业的学生,现遇到如下问题:
现有一条长度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文档。

  • 写回答

4条回答

  • dundaoccce 2018-01-13 00:47
    关注

    matlab里面直接用str[i:i+N-1],就直接取出了字符串切片,不确定你的问题是不是这样?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 shape_predictor_68_face_landmarks.dat
  • ¥15 slam rangenet++配置
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题