몇몇 포유류의 [Mitochondria] [DNA]들을 MultipleAlignment해서, 종 특이 영역 priming할 수 있는 PrimerDesign을 하려고 한다.

영문

학명(속,종)

RefSeq id

chicken

Callus gallus

NC_001323

cow

Bos taurus

NC_001567

돼지

pig

Sus scrofa

NC_000845

horse

Equus caballus

NC_001640

염소

goat

Capra hircus

NC_005044

sheep

Ovis aries

NC_001941

dog

Canis familiaris

NC_002008

사슴

deer

Muntiacus muntjak

NC_004563

서열획득스크립트

   1 from Bio import GenBank, Fasta
   2 
   3 gis={
   4     'chicken' : 'NC_001323',
   5     'cow'     : 'NC_001567',
   6     'pig'     : 'NC_000845',
   7     'horse'   : 'NC_001640',
   8     'goat'    : 'NC_001640',
   9     'sheep'   : 'NC_001941',
  10     'dog'     : 'NC_002008',
  11     'deer'    : 'NC_004563',
  12 }
  13 
  14 fpser = GenBank.FeatureParser()
  15 ncbi = GenBank.NCBIDictionary('nucleotide','genbank',parser=fpser)
  16 
  17 def fullGenome(anOutFileName):
  18     resultFile = open(anOutFileName,'w')
  19     for species in gis:
  20         genome = ncbi[gis[species]]
  21         fasta = Fasta.Record()
  22         fasta.title = ' '.join([species, genome.name, genome.description])
  23         fasta.sequence = genome.seq.tostring()
  24         resultFile.write(str(fasta)+'\n')
  25 
  26 def rDNA16S(anOutFileName):
  27     resultFile = open(anOutFileName,'w')
  28     for species in gis:
  29         genome = ncbi[gis[species]]
  30         for feature in genome.features:
  31             product= feature.qualifiers.get('product')
  32             if product and product[0].find('16S')>=0:
  33                 fasta = Fasta.Record()
  34                 fasta.title = ' '.join([species, genome.name, product[0]])
  35                 start = feature.location.start.position
  36                 end = feature.location.end.position
  37                 fasta.sequence = genome.seq[start:end].tostring()
  38                 resultFile.write(str(fasta)+'\n')
  39                 continue
  40 
  41 if __name__=='__main__':
  42     #fullGenome('mtdna.fasta')
  43     rDNA16S('mtdna_16s.fasta')
  44 

얻어진 서열을 [ClustalW]로 MultipleAlignment하면 MT DNA는 많은 부분 보존되어 있슴을 알 수 있다. 여기서 한가지 궁금증. Circular DNA의 경우, MultipleAlignment을 제대로 하려면, 금고다이얼처럼 맞춰야 할텐데, 그런 옵션이 없다. 구글검색해봐도, 언급이 없다. AnswerMe! 어쩌면 논문등의 NewIdea로 써먹을수도 있을듯.

Species specific [PrimerDesign]은 [Amplicon]을 이용해서 해결

전체 [Genome]을 이용할 경우, 서열이 너무 커서, 프로그램이 동작하지 않는다. 임시로 16S [RNA]영역만을 추출하여 가동. 그럴듯한 결과를 얻을 수 있으나, 다른 영역에서 priming될지도 모른다는 단점을 지닌다.

web biohackers.net