【发布时间】:2012-04-28 02:07:17
【问题描述】:
我想到达与给定的字符串相反(从负端)的字符串上的某个点。
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊! TTTTTTTTTTGGGGGGGGGGAAAAAAAAAACCCCCCCCCC
所以你需要转换坐标。在底链上,碱基 0(最右边的 C)与顶链上的碱基 39 相对。以 1 为底数以 38 为底。以 2 为底数以 37 为底。(重要一点:注意每次将这两个数字相加时会发生什么。)因此以 10 为底数以 29 为底数,以 19 为底数以 20 为底数。
所以:如果我想在底部链上找到基数 10-20,我可以查看顶部的基数 20-29(然后反向补码)。
我写了以下内容:
fp = open(infile, 'r')
for line in fp:
tokens = line.split()
exonstarts = tokens[8][:-1].split(',')
exonends = tokens[9][:-1].split(',')
zipped = list(zip(exonstarts, exonends))
chrom_len = len(chr_string)
s = ''.join(bc[base.upper()] for base in chr_string[-starts-1:-ends-1] for starts, ends in zipped)+'\n'
然而,每次我这样做我都会得到:
错误:未定义全局名称“starts”
我该如何解决这个问题??
【问题讨论】:
-
我应该如何定义开始?
-
Exonstarts 指的是一个列表...我希望每对的第一个元素都以 [(1,2),(3,4),(5,6)] (这个列表是我定义为“压缩”的)开始将是 1,然后是 3 和 5,而结束是对中的另一个数字
-
我认为将此代码与“开始,以压缩结束”一起使用对我来说是这样的,因为每个括号内的两个元素是开始,结束......
-
我正在经历的字符串
-
如果你继续在这里定义它会非常有帮助,而不是使用
line in fp可能将 fp 定义为多行字符串并使用for line in fp.split('\n'):以便我们可以尝试运行它。
标签: python string coordinates