案例1:鉴于串阶置字符串有条件
val l =List("@description", "AC", "T", "G", "+", "ZZZZ")
什么来连接"AC", "T", "G"
的好办法Scala的名单,该预期的结果
List("@description", "ACTG", "+", "ZZZZ")
的规则是,从第二个元素开始,所有字符串应该连接,直到它碰到以+
开头的另一个字符串。这与FASTQ格式解析有关,因为可以封装序列行。该功能预计将起作用(又称纯粹)。我认为这可能与foldLeft
一起实施。
更新:谢谢你的回答!但我也意识到问题有点复杂,在下列情况下也应努力
情况2,输入:
val l = List("@desc", "AA", "T", "+foo", "XX", "X", "@desc2", "TT", "C", "+bar", "Y", "YY")
预期输出:
List("@desc", "AAT", "+foo", "XXX", "@desc2", "TTC", "+bar", "YYY")
所以可以有多个FASTQ记录在列表中。在上面的情况下,有两个。说明行必须以@
开头。
CASE3:
输入:
val l = List("@desc", "AAA", "TTT", "+foo", "@desc", "X", "@desc2", "TT", "C", "+bar", "+", "YY")
预期输出:
List("@desc", "AAATTT", "+foo", "@descX", "@desc2", "TTC", "+bar", "+YY")
这是三个品质自行的最具挑战性的情况下(即,第一后线以“+”开头的行)也可以以@
或+
开头。例如“@desc”实际上是质量的一部分,而不是其他记录的起始行。区分描述和质量线的方法可能是序列线的长度和质量线的长度必须匹配。在第三种情况下,例如"AAATTT".length === "@descX".length
,也"TTC".length == "+YY".length
在案例3,质疑线条总是出现在2段? – Qingwei
还有多少字符串用'+'在新行之前预期? – Qingwei