与えられたものとは反対の(負の側から)弦の特定のポイントに到達したいと思います。
AAAAAAAAAACCCCCCCCCCTTTTTTTTTTGGGGGGGGGG TTTTTTTTTTGGGGGGGGGGAAAAAAAAAACCCCCCCCCC
したがって、座標を変換する必要があります。下のストランドでは、ベース0(右端のC)が上のストランドのベース39と反対になっています。基数1は基数38に対してです。基数2はケース37に対してです。(重要なポイント:これら2つの数値を合計すると、毎回何が起こるかに注意してください。)したがって、基数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'が定義されていません
これを修正するにはどうすればよいですか?