【发布时间】:2016-05-04 04:09:47
【问题描述】:
我正在尝试根据修剪后的质量得分修剪序列。由于我对 python 比较陌生,所以我一直在寻找一些可以解决问题的简单方法。
我有以下基于 phred 分数转换为数值的质量分数:
1816 28 32 32 26 164 30 32 1816 1618 216 22 1616 216 218 20 28 1816 1816 24 1816 1620 20 24 28 28 28 216 26 28 1622 216 28 24 18 24 28 1622 30 222 24 18 218 216 26 26 218 28 1624 24 16 26 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
下面是对应的序列:
ACCGAGCCGAAGGAGACCGCATTCACCCGGATGCCCTTCGAGGCCAGCGCCACCGCCATCGACCGCGTCATCTGCTCCACCGCGGCCCAGCTGATGGAACA
本质上,我希望能够删除/剪切/修剪质量分数末尾的所有值“2”,比较两个字符串并删除/剪切/修剪序列末尾的相应序列核苷酸.
我尝试将质量分数分成两部分,并使用它来打印序列的第一部分:
cutquality = actualquality.split(" 2 ",1)
newquality = cutquality[0]
lenofseq = len(cutquality[0].strip(" "))
newseq = actualseq[:lenofseq]
但它似乎没有打印剪切序列。我能够将质量分数降低到我想要的位置。您可能已经注意到的另一件事是质量得分值没有适当间隔。我不确定为什么会发生这种情况。我使用" ".join() 作为质量分值,一旦它们被转换,这就是我得到的输出。
非常感谢您的建议!
【问题讨论】:
-
如果您没有明确需要自己执行此任务,cutadapt 将为您完成这项工作。