2015-04-05 2 views
0

Я пытаюсь сделать 200 случайных последовательностей ДНК, и я не могу понять, как сделать 200 из них! Вот то, что я до сих пор:Как создать несколько случайных последовательностей в python?

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)]) 
+0

Вы хотите сделать что-то 200 раз. У вас есть функция, которая делает вещь один раз. Знаете ли вы, какой инструмент управления потоком использовать, чтобы делать что-то определенное количество раз? – user2357112

ответ

1

Этот код будет использовать вашу функцию, и она будет генерировать 200 последовательностей длины 10. Примечание я добавил импорта строки случайным образом и изменил вызов случайным random.random. Я также изменяю xrange на диапазон, так как я тестировал код с помощью 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» «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», «GCAA» GAATAC, 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 ',' ACGAGTGTCG ',' 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»]

Смежные вопросы