from random import randint
def replace_base_randomly_using_names(base_seq):
"""Return a sequence with the base at a randomly selected position of base_seq
replaced by a base chosen randomly from the three bases that are not at that
position."""
position = randint(0, len(base_seq) - 1) # −1 because len is one past end
base = base_seq[position]
bases = 'TCAG'
bases.replace(base, '') # replace with empty string!
newbase = bases[randint(0,2)]
beginning = base_seq[0:position] # up to position
end = base_seq[position+1:] # omitting the base at position
return beginning + newbase + end
これは、突然変異をシミュレートすることになっています。Doctypeが言及しているように、ベースが実際に変更されることを保証するために、(TCAG内から)異なるベースがどのように選択されるのかわかりません。
編集:
同じことを行う上記のコードの別のバージョン:
def replace_base_randomly(base_seq):
position = randint(0, len(base_seq) - 1)
bases = 'TCAG'.replace(base_seq[position], '')
return (base_seq[0:position] +
bases [randint(0,2)] +
base_seq[position+1:])
明確にするために、私の質問は、ベースがどのように別のベースに置き換えられているのですか?