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

How to create multiple random sequences in 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)])

此代码将利用您的函数,它将生成 200 个长度为 10 的序列。注意我添加了一行 import random 并将对 random 的调用更改为 random.random。我还将 xrange 更改为 range,因为我使用 Python 3.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', 'ACGGGAAAGT', 'CGTGGTAAGT', 'AACGATTGAG', 'GAGGATATGC', 'AGTGCCTTGT', 'TGACTTGCAC', 'GAAGGAGGCA', 'TCCGGTAGTT', 'TCTGCCGTCG', 'TACATAAGTC', 'GCTGGTTAAC', 'CACCCAGGCC', 'CAAGAGCCAA', 'GCTATTCGAT', 'GTGCTCATCT', 'AAAGCAATAC', 'GTATGGAAAC', 'GTATTGGTAA', 'TGTAATCTTA', 'TCGAATACAT', 'TCCTCAATGG', 'TGTAACGGCA', 'TAGTCACTGT', 'CAAAGCTCAT' , 'GTTGAAAGTC', 'CTATCATGAG', 'CAAGCACTAT', 'CTGGGCTGCC', 'CATGTCCAGG', 'ACGTGTGATC', 'AATATGCAAC', 'ACTGATGGAT', 'TATCGCGCGA', 'GTAGACCCAA', 'CAGGATGCAT', 'TACGGCAGAG', 'TATTTTATCA', 'GGTAATCACA', 'TAAACGTATG', 'CTTCCACGCG', 'GGCTCCAAAA', 'CAAGAATAAC', 'TCACGGTCTT', 'AGCGCGTCGA', 'TCACTATCAT', 'TCTGATGTCA', 'AGAAGGTCGT', 'TTAGCGTCTC', 'TGAGATGCGA' , 'ATACCCATGC', 'ACCGCTCGAG', 'CCATCAGGCC', 'AACCTTCCCG', 'TCACTCGGGT', 'CGAGACCGGA', 'GCAAGATGAT', 'TGCAATGAGG', 'CCAGATTGGT', 'GGCGATGACA', 'TAGTATGGTT', 'GCAGGTCTCG', 'GGTTTTAACC', 'ACAACCAACT', 'CTGTTCAGTT', 'TTGGAGAGTA', 'AGTCGATCTG', 'TAATGGCAGG', 'CGTCCTTTAA', 'GCGCAACTTC', 'CGGTAGAATG', 'TCTAGCTTGC', 'GCGAAAGCGC', 'GACCCCCGGC', 'GCAATAGTCT' , 'ATTGACTCCT', 'ACTAACGCTT', 'TCATAGAAGC', 'GTAGCTGCGT', 'ACAATCTCCT', 'TCGACTCTCT', 'GGCAACAGCA', 'TATTGTAGAC', 'GAGGTCAACG', 'ATGCCAGGGA', 'CTCTCTTTCT', 'CTGCGTGATA', 'GCAAGAATAC', 'AATGCATGAC', 'AGTTCAGGCA', 'GAGATTCCCC', 'CCGCCGACCA', 'ACGACGTGCA', 'TGAACGCCAA', 'GTCGGCTATT', 'TGCTTATCAA', 'AGGAGGCACG', 'TCTACTGCGA', 'GCCTTGACAT', 'GCCTCTCCCC' , 'ACACCGACTG', 'ATTTAATCAT', 'GTGCAACGTC', 'GTGTGGCTAA', 'TGGCGATTAA', 'GTATGTCTCC', 'ACTTATGGGC', 'GCTACGTTTT', 'ATCCTCACGT', 'GCCGGCTACA', 'CCCGTGAAGA', 'CATGACCACT', 'GAACCTGATG', 'ACGAGTGTCA', 'ATGTTGGTTT', 'CTTGGAATGA', 'CTTTCCTCAC'、'GATGCTCTTT'、'TAATTCTAAT'、'TCTGGCAAAG' , 'CCAGGCCGCG', 'TCATCGCACA', 'CAGCAAGATT', 'GCTTAGGAGG', 'ATATTGTGCG', 'AATATGACGG', 'TCTAGTCCCT', 'GTAAACCGGA', 'TTTAGCGTAC', 'CGAATAGAAC', 'TTAGAATCGG', 'CGCGCGCCTC', 'AATGTTAAGG', 'ACTCGACGCA', 'GGTTGCTTAC', 'TCTGGTGCTC', 'TAATTAGGTA', 'GCCTTAGAAG', 'GTTTATACGC', 'AGCGTCCATA', 'GTATTGTCGA', 'CACCTCAGAA', 'CCCACCTCCG', 'AGACGCTAGA', 'CAAAGCCAGA' , 'TCAAATTCAT', 'GGCCATTTGT', 'CAACATGGTA', 'CAAGTGTAAG', 'CGCCGTAACC', 'GGGCGGTAAT', 'GTCCAACCAC', 'CGAAGCGCAG', 'GGCGTCGGAG', 'CTTGTCGCGG', 'GCCCTTCTGC', 'TGCAGCCAAC', 'TGATTTGTTC', 'TGAATTCAGT', 'TAGTCCTGCT', 'GCCCTATGGG', 'CCAGGCTGTT', 'TCCTCAAAAC', 'CTACGGGCAT', 'GCCAACCGAG', 'CAATGGAACT', 'CCTTATCCTC', 'TAAAAGGCTA', 'CGCGTGACAC', 'TGGCGAGCGT' , 'CCCCGAGCAT', 'CAGCATTCAA', 'TGTACTGTCC', 'TCCTTGGTTA', 'TCAAAGATGT', 'CGCATACTCA', 'GAATCTATTT', 'ATCATAAGGT', 'ACGCTCTCGC', 'GTCCTCTTAA', 'ATCCGAACCT', 'TGGACTTCCG', 'TCAGATGATA', 'ACTTCATGCG', 'TCCTATACAA', 'ATGGTCTTTA', 'CTAATTCGGT', 'TGCACCACAT', 'GTGACCGTCT', 'ACGTCAGTCA', 'TCTTCCACCT', 'CCGAATACGC', 'ACTATGTCGT', 'TACTATTCCC', 'GGGGGACGCA' , 'TGCAGGTTCT', 'GGCTCTGGGG', 'TGGAGCGCTC', 'CGAGATCTTA', 'GGCTTGGCAT']