如何在python中创建多个随机序列?

2024-04-19 16:34:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着做200个随机的DNA序列,但我不知道怎么做200个!以下是我目前掌握的情况:

from random import random

def randABCD(n, probA, probT, probC, probG):
    # where probA + probT + probC + probG == 1
    # n = number of characters in string
    # pX = probability of the character
    cA = probA
    cT = cA + probT
    cC = cT + probC
    def choose():
        r = random()
        if r < cA:
           return 'A'
        elif r < cT:
           return 'T'
        elif r < cC:
           return 'C'
        else:
           return 'G'
    return ''.join([choose() for i in xrange(n)])

Tags: ofinreturndefrandomdnacacc
1条回答
网友
1楼 · 发布于 2024-04-19 16:34:12

此代码将利用您的函数,它将生成200个长度为10的序列。注意我添加了一行import random并将调用改为random to随机。随机. 我还将xrange改为range,因为我使用python3.x测试了代码

如果你对输出有不同的想法,请告诉我

import random

def randABCD(n, probA, probT, probC, probG):
    # where probA + probT + probC + probG == 1
    # n = number of characters in string
    # pX = probability of the character
    cA = probA
    cT = cA + probT
    cC = cT + probC
    def choose():
        r = random.random()
        if r < cA:
            return 'A'
        elif r < cT:
            return 'T'
        elif r < cC:
           return 'C'
        else:
           return 'G'
return ''.join([choose() for i in range(n)])

print(randABCD(10, .25, .25, .25, .25))

print([randABCD(10, .25, .25, .25, .25) for i in range(200)])

输出

从第一次打印通话开始 AACCGTCTCT公司

从第二次打印通话 ['CCAGTTCGGA'、'ACGGGAAGT'、'CGTGGTAAGT'、'AACGATTGAG'、'GAGGATGC'、'AGTGCCTTGT'、'TGATTGCAC'、'GAGGAGGCA'、'TCGGTAGTC'、'TACATAGTC'、'GCTGGTTAAC'、'CAAGAGCCAA'、'GCATTCGAT'、'AAAGCATAC'、'GTATGGAAAC'、'GTATGGTAA'、'TGTAATCTTA'、'TCGAATCAT'、'TCTCTCATGG'、'TGTAACGGCA'、'TAGCATCGT','CAAGCTCAT'、'GTTGAAGTC'、'CTATCATGAG'、'CAAGCATAT'、'CTGGGCTGCC'、'CATGTCCAGG'、'ACGTGATC'、'AATATGCAAC'、'ACTGATGAT'、'TATCGCGA'、'GTAGACCAA'、'CAGGAGATCAT'、'TAGGGCAGAG'、'TATTTACA'、'CTTCACGCG'、'GGCTCCAAAA'、'CAAGATAAC'、'TCAGGTCTT'、'AGGCGCGTCGA'、'TCATCAT'、'TCTGATCA'、'TCAGAGATGCCTC','TGAGATGCGA'、'ataccatgc'、'acccgctcgag'、'CCATCAGGCC'、'aaccttcccgcg'、'tcactcggt'、'CGAGACCGGA'、'GCAAGATGAT'、'tgcaatgg'、'CCAGATTGGT'、'ggcgatgca'、'TAGTATGGTT'、'gcagttccg'、'acacccaact'、'ctgttcaggtt'、'ttggagagaggta'、'agtcagttg'、'taatggagagagggag'、'cgtccagtta'、'gcgcaactc','gacccccgc'、'GCAATAGTCT'、'ATTGACTCCT'、'actaacgct'、'tcatagagc'、'gtagctgct'、'acaatctctct'、'ggcaagca'、'TATTGTAGAC'、'GAGGTCAACG'、'atgccagga'、'ctctctctttct'、'CTGCGTGATA'、'GCAAGAATAC'、'AGTTCAGGCA'、'gagatcccc'、'CCGCCGACCA'、'acgacgtgcca'、'tgaaccaa'、'gtcgcaggctatt'、'tgctctctctctagaggca'、'tctacca','GCCTTGACAT'、'GCCTCTCCCC'、'acacccgactg'、'ATTTAATCAT'、'GTGCAACGTC'、'GTGTGGCTAA'、'TGGCGATTAA'、'GTATGTCTCC'、'ACTTATGGGC'、'gctaccttt'、'ATCCTCACGT'、'gccggtaca'、'cccggaga'、'CATGACCACT'、'gacctgatg'、'acgaggtgtca'、'atgttgtgtgtggttt'、'CTTGGAATGA'、'ctttcctctcatcc'、'gatgcttt'、'tctggcaag'、'ccagccaggcaca','CAGCAAGATT'、'gcttagaggg'、'ATATTGTGCG'、'AATATGACGG'、'tctagtcct'、'gtaaacgga'、'TTTAGCGTAC'、'CGAATAGAAC'、'ttagagatgg'、'cgcgcgctc'、'aatgttagg'、'GGTTGCTTAC'、'tctggtgctctc'、'taattagta'、'GCCTTAGAAG'、'gtttatacca'、'cacctcaga'、'cccaccacctccg'、'AGACGCTAGA'、'caagagccaga'、'tcaattcat'、'ggccattagt','CAACATGGTA'、'CAAGTGTAAG'、'CGCCGTAACC'、'GGGCGGTAAT'、'GTCCAACCAC'、'CGAAGCAG'、'GGCGTCGGAG'、'CTTGTCGCGG'、'GCCCATTCTGGC'、'TGCAGCAAC'、'TGATTTGTC'、'TGATTCAGT'、'TAGTCTCTGCT'、'TCTCCAAAC'、'CTACGGCAT'、'GCCAACCGAG'、'CAATGCAT'、'CCTTTCTCTC'、'TAAAGCTA'、'CGCGGCAGGCTA'、'CGCGTGATCC'、'TGGCGAGCT','CAGCATTCAA'、'TGTACTGTCC'、'TCCTGGTTA'、'TCAAAGTGT'、'CGCATACTCA'、'GAATCTTT'、'ATCATAGGT'、'ACGCTCTCGC'、'GTCCTCTA'、'ATCCGAACCT'、'TGGACTTCCGG'、'TCAGATTCGA'、'CTAATCGTCA'、'TGCACCAT'、'GTGACCGTCT'、'ACGTCAGTCA'、'TCTCTCACCT'、'CCGAATACGC'、'ACTATCGT'、'TCATTCCC'、'GGG ACGCA'、'TGCAGTTCAT','GGCTCTGGGG'、'tggagcgct'、'cgagattta'、'GGCTTGGCAT']

相关问题 更多 >