Python

2014-09-19 14 views
5

ile tüm DNA motorlarını üretme Bu python kodunda biraz sorun yaşıyorum.Python

Python için oldukça yeniyim ve olası tüm k km uzunluğundaki k kilometrelerinde k üretmek ve bunları bir listeye eklemek istiyorum, ancak bunu yapmanın zarif bir yolunu düşünemiyorum! Aşağıda 8'inci km'lik bir kilometre için sahip olduğum şey var. Herhangi bir öneri çok yararlı olacaktır.

bases=['A','T','G','C'] 
kmer=list() 

for i in bases: 
    for j in bases: 
     for k in bases: 
      for l in bases: 
       for m in bases: 
        for n in bases: 
         for o in bases: 
          for p in bases: 
           kmer.append(i+j+k+l+m+n+o+p) 
+1

'liste' (itertools.product (baz) = k tekrar) – inspectorG4dget

cevap

13
In [58]: bases=['A','T','G','C'] 

In [59]: k = 2 

In [60]: [''.join(p) for p in itertools.product(bases, repeat=k)] 
Out[60]: ['AA', 'AT', 'AG', 'AC', 'TA', 'TT', 'TG', 'TC', 'GA', 'GT', 'GG', 'GC', 'CA', 'CT', 'CG', 'CC'] 

In [61]: k = 3 

In [62]: [''.join(p) for p in itertools.product(bases, repeat=k)] 
Out[62]: ['AAA', 'AAT', 'AAG', 'AAC', 'ATA', 'ATT', 'ATG', 'ATC', 'AGA', 'AGT', 'AGG', 'AGC', 'ACA', 'ACT', 'ACG', 'ACC', 'TAA', 'TAT', 'TAG', 'TAC', 'TTA', 'TTT', 'TTG', 'TTC', 'TGA', 'TGT', 'TGG', 'TGC', 'TCA', 'TCT', 'TCG', 'TCC', 'GAA', 'GAT', 'GAG', 'GAC', 'GTA', 'GTT', 'GTG', 'GTC', 'GGA', 'GGT', 'GGG', 'GGC', 'GCA', 'GCT', 'GCG', 'GCC', 'CAA', 'CAT', 'CAG', 'CAC', 'CTA', 'CTT', 'CTG', 'CTC', 'CGA', 'CGT', 'CGG', 'CGC', 'CCA', 'CCT', 'CCG', 'CCC']