Python para el procesamiento desecuencias genéticas                          Sebastián Bassi                sbassi@genesdi...
La naturaleza de la información genéticaLOCUS       NM_052948 3941 bp mRNA linear PRI 02­NOV­2012DEFINITION  Homo sapiens ...
La naturaleza de la información genética
La naturaleza de la información genética         Nomenclatura IUPAC         A = adenine         C = cytosine         G = g...
La naturaleza dela informacióngenética
La naturaleza de la información genéticaAncho de banda de la información genética humana3.120 Mbp/ genoma haplotide.4 nt =...
La naturaleza de la información genética
La naturaleza de la información genética¿Cómo llega la información biológica a ser digital?  Método enzimatico (antiguo au...
Secuenciador enzimatico (ABI3700)
La naturaleza de la información genética¿Cómo llega la información biológica a ser digital?  Método ionico
Secuenciador Iónico (ion torrent)
Problemas con secuencias>gi|291310313|gb|GQ250366.1| Phomopsis sp. JMS­2010j isolate 439B4 translation elongation factor 1...
Problemas con secuenciasSecuencias con vectores, conectores yproductos de clonado
Problemas con secuenciasDiseño de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traducción p...
Problemas con secuenciasDiseño de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traducción p...
BiopythonConjunto de herramientas libres en Python para bioinformáticay biología molecular  Algunas características:  ●Par...
Aportes a BiopythonCódigo:●Tm function●LCC function●2 checksums function in Bio.SeqUtils.CheckSumOtros:●Feedback●Bug repor...
Clase secuencia>>> from Bio.Seq import Seq>>> from Bio.Alphabet import IUPAC>>> seq = Seq(GATCGATGGGCCTATATA,IUPAC.unambig...
Clase SeqIOclass Convert_fasta_header():    Convert    def __init__(self, seq_file_in, seq_file_out):        Read files in...
Búsqueda BLASTfrom Bio.Blast import NCBIStandalone as BLASTr,e = BLAST.blastall(b_exe, blastn, b_db,f_in,                 ...
Análisis de restricción# Hacer analisis de restriccion.anal = Restriction.Analysis(Restriction.CommOnly, dna)anal.print_as...
SNPs en 23andme
# https://www.23andme.com/you/download/revisions/# # More information on reference human assembly build 36:# http://www.nc...
class SNPdata():   Retrieve SNP data   def __init__(self, seq_file_in):     fh = open(seq_file_in)     rsid = {}     for l...
Mas informaciónBiopython website: www.biopython.orgDocumentation: biopython.org/wiki/Category:Wiki_DocumentationCock PJ, e...
¡Gracias!
Upcoming SlideShare
Loading in...5
×

Biopython para el analisis de secuencias de ADN

1,324

Published on

Charla presentada en PyConAr 2012, UNQ.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,324
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
11
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Advanta: Crop genotyping (sunflower and corn) Primer design Marker seach database curation INTA: Sequencing effort Data display
  • Biopython para el analisis de secuencias de ADN

    1. 1. Python para el procesamiento desecuencias genéticas Sebastián Bassi sbassi@genesdigitales.com Twitter: @sbassi
    2. 2. La naturaleza de la información genéticaLOCUS       NM_052948 3941 bp mRNA linear PRI 02­NOV­2012DEFINITION  Homo sapiens Rho GTPase activating protein 33 (ARHGAP33),            transcript variant 1, mRNA.ACCESSION   NM_052948VERSION     NM_052948.3  GI:289547505SOURCE      Homo sapiens (human)  ORGANISM  Homo sapiens            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;Catarrhini; Hominidae; Homo.  1 acgggcagcc gttaggggcg gggtctgcag ccgcccgcgc gcggctcgcg ccctcccctt 61 tgtgtcgcca tggcggcggc agcggcgacg agaacggcga gcgaggggtc gagcgcggcc121 ggggcctgag gaggctacgc gaccatggtg gcacgcagca ctgacagcct ggatggccca181 ggggagggct cggtgcagcc tctacccact gctggggggc ccagtgtgaa ggggaagcct241 gggaagaggc tctcagctcc tcgaggcccc ttcccgcggc tggctgactg cgcccatttc301 cactacgaga acgttgactt tggccacatt cagctcctgc tgtctccaga ccgtgaaggg361 cccagcctct ctggagagaa tgagctggtg ttcggggtgc aggtgacctg tcagggccgt421 tcctggccgg ttctccggag ttacgatgac tttcgttccc tggatgccca cctccaccgg481 tgcatatttg accggaggtt ctcctgcctt ccggagcttc ccccgccccc cgagggtgcc541 agggctgccc agatgctggt gccactgctg ctgcagtacc tggagacact gtcaggactg601 gtggacagta acctcaactg cgggcctgtg ctcacctgga tggagctgga caatcacggc661 cggcgactgc tcctcagtga ggaggcgtca ctcaatatcc ctgcagtggc ggccgcccat
    3. 3. La naturaleza de la información genética
    4. 4. La naturaleza de la información genética Nomenclatura IUPAC A = adenine C = cytosine G = guanine T = thymine R = G A (purine) Y = T C (pyrimidine) K = G T (keto) M = A C (amino) S = G C (strong bonds) W = A T (weak bonds) B = G T C (all but A) D = G A T (all but C) H = A C T (all but G) V = G C A (all but T) N = A G C T (any)
    5. 5. La naturaleza dela informacióngenética
    6. 6. La naturaleza de la información genéticaAncho de banda de la información genética humana3.120 Mbp/ genoma haplotide.4 nt = 2 bits (00 A, 01 C, 10 T, 11 G)Eyaculación promedio: 200M espermatozooides3,12*109 * 2 bits * 2*108 = 1,28*1018 bits = 145.519,152 TBConsiderando duración de 5 segs: 29.104 TB/seg
    7. 7. La naturaleza de la información genética
    8. 8. La naturaleza de la información genética¿Cómo llega la información biológica a ser digital? Método enzimatico (antiguo aunque aun en uso)
    9. 9. Secuenciador enzimatico (ABI3700)
    10. 10. La naturaleza de la información genética¿Cómo llega la información biológica a ser digital? Método ionico
    11. 11. Secuenciador Iónico (ion torrent)
    12. 12. Problemas con secuencias>gi|291310313|gb|GQ250366.1| Phomopsis sp. JMS­2010j isolate 439B4 translation elongation factor 1­alpha (EF1­a) gene, partial cdsAAGGTTAGTAAATATCACAGTCACGGAACATGCTACCTGGCCCTCCATACTGCACCTCAATCATCAGCCCGCAGCTGCTCGCGCGGCCTCGCCATGTCGGGGGGCGCATTTTCACCCCTCGCTTTGGATTTTCAATTTTCAGTGCGAGTGCGGGGTGCGCTTATCAGGGGGCGGGCTTATCTCCTACAACCAAAACCCTGTTACATCACTCACTCAATCCTTGTCACCACCACCAATACGCTCACCATCAACCCCATCGCCTCTTTCAATACAACTCGTGAAACGCGT>GQ250366_Phomopsis_sp.AAGGTTAGTAAATATCACAGTCACGGAACATGCTACCTGGCCCTCCATACTGCACCTCAATCATCAGCCCGCAGCTGCTCGCGCGGCCTCGCCATGTCGGGGGGCGCATTTTCACCCCTCGCTTTGGATTTTCAATTTTCAGTGCGAGTGCGGGGTGCGCTTATCAGGGGGCGGGCTTATCTCCTACAACCAAAACCCTGTTACATCACTCACTCAATCCTTGTCACCACCACCAATACGCTCACCATCAACCCCATCGCCTCTTTCAATACAACTCGTGAAACGCGT
    13. 13. Problemas con secuenciasSecuencias con vectores, conectores yproductos de clonado
    14. 14. Problemas con secuenciasDiseño de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traducción peroalterando el perfil de restricción. Peptide: MGNCNGASK ORIGINAL SEQUENCE:       7 FokI Tsp509I TspEI Sse9I       |       |    12 HpyCH4V CviRI       |    |       |    |       20 BseGI BstF5I       |    |       | ATGGGTAATTGCAACGGGGCATCCAAG ||||||||||||||||||||||||||| TACCCATTAACGTTGCCCCGTAGGTTC 1                           27
    15. 15. Problemas con secuenciasDiseño de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traducción peroalterando el perfil de restricción. Peptide: MGNCNGASK     5 MaeIII     |     | 7 FokI     | |     | |    12 HpyCH4V CviRI     | |    |     | |    |       20 BseGI BstF5I     | |    |       | ATGGGTAACTGCAACGGGGCATCCAAG ||||||||||||||||||||||||||| TACCCATTGACGTTGCCCCGTAGGTTC 1                           27
    16. 16. BiopythonConjunto de herramientas libres en Python para bioinformáticay biología molecular Algunas características: ●Parseo archivos bioinformáticos en estructuras propias de Python ●Clase “sequence” para guardar secuencias, ids y distintas caracteristicas (features) ●Interfaces con programas bioinformáticos típicos (clustalw, blast, primer3 and more) ●Herramientas para realizar operaciones comunes con secuencias de ADN y proteinas (traducción, transcripción, Tm, peso molecular) ●Código para gestionar alineamientos ●Integración con otros lenguajes como BioCorba
    17. 17. Aportes a BiopythonCódigo:●Tm function●LCC function●2 checksums function in Bio.SeqUtils.CheckSumOtros:●Feedback●Bug reporting●Testing (BLAST, SFF files, BioSQL)
    18. 18. Clase secuencia>>> from Bio.Seq import Seq>>> from Bio.Alphabet import IUPAC>>> seq = Seq(GATCGATGGGCCTATATA,IUPAC.unambiguous_dna)>>> rna = seq.transcribe()>>> str(rna)GAUCGAUGGGCCUAUAUA>>> rna.translate()Seq(DRWAYI, IUPACProtein())
    19. 19. Clase SeqIOclass Convert_fasta_header(): Convert def __init__(self, seq_file_in, seq_file_out): Read files into seq objects self.fh = open(seq_file_in, "rU") self.seqs = [] for rec in SeqIO.parse(self.fh, "fasta"): self.c = rec.description.split(|)[3].split(.)[0] self.n = rec.description.split( )[1] self.n2 = rec.description.split( )[2].split(.)[0] self.new_header = _.join([self.c, self.n, self.n2]) rec.description = rec.id = self.new_header self.seqs.append(rec) self.fh.close() self.fh = open(seq_file_out, "w") SeqIO.write(self.seqs, self.fh, "fasta") self.fh.close()
    20. 20. Búsqueda BLASTfrom Bio.Blast import NCBIStandalone as BLASTr,e = BLAST.blastall(b_exe, blastn, b_db,f_in, gap_open=3, gap_extend=2, wordsize=20, expectation=1e-50, alignments=1, descriptions=1, align_view=0, html=F) Analizar el resultado del BLASTfrom Bio.Blast import NCBIXMLfor rec in NCBIXML.parse(r): for align in rec.alignments: for hsp in align.hsps: print hsp.query_start, hsp.query_end print hsp.sbjct_start, hsp.sbjct_end if hsp.identities>90: print align.title
    21. 21. Análisis de restricción# Hacer analisis de restriccion.anal = Restriction.Analysis(Restriction.CommOnly, dna)anal.print_as("map")anal.print_that()# Guardar las enzimas que cortan esta seq.enzORI = anal.with_sites().keys()enzORIset = set(enzORI)(...)anal = Restriction.Analysis(Restriction.CommOnly, Seq.Seq(x, IUPAC.unambiguous_dna))enzTMP = anal.with_sites().keys()enzTMPset = set(enzTMP)if enzTMPset!=enzORIset and enzORI!=None: pames = str(enzTMP)[1:-1] print Proposed sequence enzymes: %s % pames
    22. 22. SNPs en 23andme
    23. 23. # https://www.23andme.com/you/download/revisions/# # More information on reference human assembly build 36:# http://www.ncbi.nlm.nih.gov/projects/mapview/map_search.cgi?taxid=9606&build=36## rsid  chromosome      position        genotypers4477212       1       72017   AArs3094315       1       742429  AArs3131972       1       742584  GGrs12124819      1       766409  AArs11240777      1       788822  GGrs6681049       1       789870  CCrs4970383       1       828418  ACrs4475691       1       836671  CTrs7537756       1       844113  AGrs13302982      1       851671  GGrs1110052       1       863421  GTrs2272756       1       871896  AGrs3748597       1       878522  CCrs13303106      1       881808  AGrs28415373      1       883844  CC
    24. 24. class SNPdata():  Retrieve SNP data  def __init__(self, seq_file_in): fh = open(seq_file_in) rsid = {} for line in fh: if not line.startswith("#"): data = line.split() rsid[data[0]] = {chromosome:data[1],                            position:int(data[2]),                  genotype:data[3]}     fh.close() def __getitem__(self, x): return rsid[x] def __len__(self): return len(rsid)
    25. 25. Mas informaciónBiopython website: www.biopython.orgDocumentation: biopython.org/wiki/Category:Wiki_DocumentationCock PJ, et al. “Biopython: freely available Python tools forcomputational molecular biology and bioinformatics”. Bioinformatics2009 Jun 1; 25(11) 1422-3. doi:10.1093/bioinformatics/btp163pmid:19304878.Bassi S (2007) A Primer on Python for Life Science Researchers. PLoSComput Biol 3(11): e199. doi:10.1371/journal.pcbi.0030199Book: “Python for Bioinformatics” http://tinyurl.com/biopythonMailing list:Users: http://lists.open-bio.org/mailman/listinfo/biopython/Developers: http://lists.open-bio.org/mailman/listinfo/biopython-devPython in Argentina: www.python.org.ar
    26. 26. ¡Gracias!
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×