Biopython para el analisis de secuencias de ADN

Embed Size (px)

Citation preview

1. Python para el procesamiento desecuencias genticasSebastin [email protected]: @sbassi 2. La naturaleza de la informacin genticaLOCUSNM_0529483941bpmRNAlinearPRI02NOV2012DEFINITIONHomosapiensRhoGTPaseactivatingprotein33(ARHGAP33),transcriptvariant1,mRNA.ACCESSIONNM_052948VERSIONNM_052948.3GI:289547505SOURCEHomosapiens(human)ORGANISMHomosapiensEukaryota;Metazoa;Chordata;Craniata;Vertebrata;Euteleostomi;Mammalia;Eutheria;Euarchontoglires;Primates;Haplorrhini;Catarrhini;Hominidae;Homo.1acgggcagccgttaggggcggggtctgcagccgcccgcgcgcggctcgcgccctcccctt61tgtgtcgccatggcggcggcagcggcgacgagaacggcgagcgaggggtcgagcgcggcc121ggggcctgaggaggctacgcgaccatggtggcacgcagcactgacagcctggatggccca181ggggagggctcggtgcagcctctacccactgctggggggcccagtgtgaaggggaagcct241gggaagaggctctcagctcctcgaggccccttcccgcggctggctgactgcgcccatttc301cactacgagaacgttgactttggccacattcagctcctgctgtctccagaccgtgaaggg361cccagcctctctggagagaatgagctggtgttcggggtgcaggtgacctgtcagggccgt421tcctggccggttctccggagttacgatgactttcgttccctggatgcccacctccaccgg481tgcatatttgaccggaggttctcctgccttccggagcttcccccgccccccgagggtgcc541agggctgcccagatgctggtgccactgctgctgcagtacctggagacactgtcaggactg601gtggacagtaacctcaactgcgggcctgtgctcacctggatggagctggacaatcacggc661cggcgactgctcctcagtgaggaggcgtcactcaatatccctgcagtggcggccgcccat 3. La naturaleza de la informacin gentica 4. La naturaleza de la informacin gentica NomenclaturaIUPAC A=adenine C=cytosine G=guanine T=thymine R=GA(purine) Y=TC(pyrimidine) K=GT(keto) M=AC(amino) S=GC(strongbonds) W=AT(weakbonds) B=GTC(allbutA) D=GAT(allbutC) H=ACT(allbutG) V=GCA(allbutT) N=AGCT(any) 5. La naturaleza dela informacingentica 6. La naturaleza de la informacin genticaAncho de banda de la informacin gentica humana3.120 Mbp/ genoma haplotide.4 nt = 2 bits (00 A, 01 C, 10 T, 11 G)Eyaculacin promedio: 200M espermatozooides3,12*109 * 2 bits * 2*108 = 1,28*1018 bits = 145.519,152 TBConsiderando duracin de 5 segs: 29.104 TB/seg 7. La naturaleza de la informacin gentica 8. La naturaleza de la informacin genticaCmo llega la informacin biolgica a ser digital?Mtodo enzimatico (antiguo aunque aun en uso) 9. Secuenciador enzimatico (ABI3700) 10. La naturaleza de la informacin genticaCmo llega la informacin biolgica a ser digital?Mtodo ionico 11. Secuenciador Inico (ion torrent) 12. Problemas con secuencias>gi|291310313|gb|GQ250366.1|Phomopsissp.JMS2010jisolate439B4translationelongationfactor1alpha(EF1a)gene,partialcdsAAGGTTAGTAAATATCACAGTCACGGAACATGCTACCTGGCCCTCCATACTGCACCTCAATCATCAGCCCGCAGCTGCTCGCGCGGCCTCGCCATGTCGGGGGGCGCATTTTCACCCCTCGCTTTGGATTTTCAATTTTCAGTGCGAGTGCGGGGTGCGCTTATCAGGGGGCGGGCTTATCTCCTACAACCAAAACCCTGTTACATCACTCACTCAATCCTTGTCACCACCACCAATACGCTCACCATCAACCCCATCGCCTCTTTCAATACAACTCGTGAAACGCGT>GQ250366_Phomopsis_sp.AAGGTTAGTAAATATCACAGTCACGGAACATGCTACCTGGCCCTCCATACTGCACCTCAATCATCAGCCCGCAGCTGCTCGCGCGGCCTCGCCATGTCGGGGGGCGCATTTTCACCCCTCGCTTTGGATTTTCAATTTTCAGTGCGAGTGCGGGGTGCGCTTATCAGGGGGCGGGCTTATCTCCTACAACCAAAACCCTGTTACATCACTCACTCAATCCTTGTCACCACCACCAATACGCTCACCATCAACCCCATCGCCTCTTTCAATACAACTCGTGAAACGCGT 13. Problemas con secuenciasSecuencias con vectores, conectores yproductos de clonado 14. Problemas con secuenciasDiseo de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traduccin peroalterando el perfil de restriccin.Peptide:MGNCNGASKORIGINALSEQUENCE:7FokITsp509ITspEISse9I||12HpyCH4VCviRI||||20BseGIBstF5I|||ATGGGTAATTGCAACGGGGCATCCAAG|||||||||||||||||||||||||||TACCCATTAACGTTGCCCCGTAGGTTC127 15. Problemas con secuenciasDiseo de secuencias para sintesis de ADN: Introducirmutaciones puntuales manteniendo traduccin peroalterando el perfil de restriccin.Peptide:MGNCNGASK5MaeIII||7FokI||||12HpyCH4VCviRI||||||20BseGIBstF5I||||ATGGGTAACTGCAACGGGGCATCCAAG|||||||||||||||||||||||||||TACCCATTGACGTTGCCCCGTAGGTTC127 16. BiopythonConjunto de herramientas libres en Python para bioinformticay biologa molecularAlgunas caractersticas:Parseo archivos bioinformticos en estructuras propiasde PythonClase sequence para guardar secuencias, ids ydistintas caracteristicas (features)Interfaces con programas bioinformticos tpicos(clustalw, blast, primer3 and more)Herramientas para realizar operaciones comunes consecuencias de ADN y proteinas (traduccin, transcripcin,Tm, peso molecular)Cdigo para gestionar alineamientosIntegracin con otros lenguajes como BioCorba 17. Aportes a BiopythonCdigo:Tm functionLCC function2 checksums function in Bio.SeqUtils.CheckSumOtros:FeedbackBug reportingTesting (BLAST, SFF files, BioSQL) 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. Clase SeqIOclass Convert_fasta_header():Convertdef __init__(self, seq_file_in, seq_file_out):Read files into seq objectsself.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_headerself.seqs.append(rec) self.fh.close() self.fh = open(seq_file_out, "w") SeqIO.write(self.seqs, self.fh, "fasta") self.fh.close() 20. Bsqueda 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_endprint hsp.sbjct_start, hsp.sbjct_endif hsp.identities>90:print align.title 21. Anlisis de restriccin# 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. SNPs en 23andme 23. #https://www.23andme.com/you/download/revisions/##Moreinformationonreferencehumanassemblybuild36:#http://www.ncbi.nlm.nih.gov/projects/mapview/map_search.cgi?taxid=9606&build=36##rsidchromosomepositiongenotypers4477212172017AArs30943151742429AArs31319721742584GGrs121248191766409AArs112407771788822GGrs66810491789870CCrs49703831828418ACrs44756911836671CTrs75377561844113AGrs133029821851671GGrs11100521863421GTrs22727561871896AGrs37485971878522CCrs133031061881808AGrs284153731883844CC 24. classSNPdata():RetrieveSNPdatadef__init__(self,seq_file_in): fh=open(seq_file_in) rsid={} forlineinfh: ifnotline.startswith("#"):data=line.split()rsid[data[0]]={chromosome:data[1],position:int(data[2]),genotype:data[3]}fh.close()def__getitem__(self,x):returnrsid[x]def__len__(self):returnlen(rsid) 25. Mas informacinBiopython 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. Gracias!