いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【Python】指定長のランダムな塩基配列を作成したい。

・最近Pythonを勉強し始めたので、Pythonに関するメモ記事も書いていこうと思う。

Pythonは全く初心者で、お作法など全く分からないので悪しからず。

 

・お題:特定の長さのランダムな塩基配列を作成する関数を作成したい。

 

・例えば一塩基ずつ区切られたリスト形式で配列が欲しい場合、以下のような形でいけた。

import random
NL=["A","T","G","C"]
def RandNuc1(n):
    return [random.choice(NL) for m in range(n)]

これで、

RandNuc1(10)

すると、

['C', 'G', 'A', 'T', 'G', 'C', 'G', 'G', 'A', 'T']

が返ってきた。。

シード値を設定していないので、実行するたびに結果が変わる。

random.choice()で、引数(リストなど)からランダムにピックアップした値が返ってくる。

・例えば配列を文字列としてほしい場合、以下のような形でいけた。

import random
NL=["A","T","G","C"]
def RandNuc2(n):
    return "".join([random.choice(NL) for m in range(n)])

これで、

RandNuc2(10)

すると、

'GATATGTGTC'

が返ってきた。

こちらもシード値を設定していないので、実行するたびに結果が変わる。

"".join()で、引数(リスト)を""の中の文字で連結して一つの文字列にして返してくれる。"-"にすると各塩基の間に-が入った文字列が返ってくる。

 

・お題があるとちょっと楽しい。

 

おわり