Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Edición de «
Biopython
»
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
{{Ficha de lenguaje de programación |nombre = Biopython |logo = |tamaño_logo = |captura = |tamaño_captura = |pie = |extensiones_comunes = |paradigma = |año = 2000 |diseñador = Chapman B, Chang J |desarrollador = |última_versión = 1.65 |fecha_última_versión = |última_versión_beta = |fecha_última_versión_beta = {{fecha de lanzamiento|17|12|2014}} |tipo_dato = |implementaciones = |dialectos = |influido_por = |ha_influido = |sistema_operativo = [[Multiplataforma]] |web = http://biopython.org/ |licencia = [http://www.biopython.org/DIST/LICENSE Licencia Biopython] }} El proyecto ''''Biopython'''' es el nombre que recibe una serie de aplicaciones y programas informáticos pensados para cuantificar y hacer cálculos con datos biológicos, programados por una comunidad internacional. Su objetivo principal es el de desarrollar el mayor número posible de [[biblioteca informática|bibliotecas informáticas]] basadas en el lenguaje de programación [[Python]], que tengan aplicaciones [[bioinformática]]s y que estén disponibles para un público lo más amplio posible.<ref>{{cita publicación |máscaraautor= |apellidos=Cock |apellidos2=Antao |apellidos3=Chang |apellidos4=Chapman |apellidos5=Cox |apellidos6=Dalke |apellidos7=Friedberg |apellidos8=Hamelryck |apellidos9=Kauff |apellidos10=Wilczynski |apellidos11=de Hoon |nombre=Peter JA |nombre2=Tiago |nombre3=Jeffrey T |nombre4=Brad A |nombre5=Cymon J |nombre6=Andrew |nombre7=Iddo |nombre8=Thomas |nombre9=Frank |nombre10=Bartek |nombre11=Michiel JL |autor= |coautor= |autor2= |autor9= |enlaceautor= |enlaceautor2= |año= |fecha= 20 de marzo de 2009 |mes= |título=Biopython: freely available Python tools for computational molecular biology and bioinformatics |títulotrad= |url=http://bioinformatics.oxfordjournals.org/content/25/11/1422.full |serie= |publicación=Bioinformatics |volumen=25 |número=11 |página= |páginas=1422–3 |en= |sinpp= |ubicación= |lugar-publicación= |editorial= |fecha-publicación= |apellidos-editor= |apellidos-editor2=, ..., |apellidos-editor4= |nombre-editor= |nombre-editor2=, |nombre-editor3= |enlace-editor= |enlace-editor2= |enlace-editor3= |otros= |idioma=inglés |formato= |issn= |pmid=19304878 |pmc=2682512 |doi = 10.1093/bioinformatics/btp163 |id= |fechaacceso=4 de enero de 2015 |resumen= |fecharesumen= |fuenteresumen= |cita= |ref= |separador= |separador-autores= |separador-nombres= |ampersand= |número-autores= }}</ref><ref name="lists">Ver la página web de Biopython para buscar más [http://biopython.org/wiki/Documentation#Papers artículos académicos que describen Biopython], y una lista de más de cien [http://biopython.org/wiki/Publications publicaciones que emplean o citan Biopython].</ref> Esto es posible gracias a una licencia de código abierto específica, llamada [[licencia Biopython]], que es muy poco restrictiva. Biophython permite representar secuencias biológicas y anotaciones de genomas y es capaz de comunicar con las bases de datos biológicos en línea del [[Centro Nacional para la Información Biotecnológica|NCBI]] para hacer cálculos. Además, gracias a diversos módulos, puede ser utilizada para trabajar sobre proyectos relativos al [[alineamiento de secuencias]], cálculo de [[estructura de las proteínas|estructuras proteicas]], [[genética de poblaciones]], [[filogenética]] e [[inteligencia artificial]]. == Historia == El desarrollo de Biopython comenzó en 1999 y su primera versión fue publicada en julio de 2000. Fue desarrollado en un periodo de tiempo y con objetivos similares a los de otras aplicaciones bioinformáticas, como [[BioPerl]], [[BioRuby]] y [[BioJava]]. Entre los primeros desarrolladores se cuentan Jeff Chang, Andrew Dalke and Brad Chapman, aunque más de 100 colaboradores han contribuido al proyecto hasta la fecha. En 2007 comienza un proyecto similar llamado [[PyCogent]]. == Diseño == Siempre que es posible, en las aplicaciones Biopython se usa el lenguaje de programación Python, de manera que sea más fácil de utilizar para los usuarios de este lenguaje. Biopython es capaz de leer y modificar la mayoría de formatos habituales para cada una de sus áreas de actividad, y su licencia es compatible con la mayoría de licencias de código abierto, de manera que puede ser utilizado para crear una gran variedad de proyectos informáticos.<ref name="lists"/> == Características y ejemplos == === Secuencias === Un concepto central de Biopython es la secuencia biológica, que aparece representada por la clase <code>Seq</code>.<ref name="Tutorial">{{cita web |apellidos=Chang |nombre=Jeff |apellidos2=Chapman |nombre2=Brad |apellidos3=Friedberg |nombre3=Iddo |apellidos4=Hamelryck |nombre4=Thomas |apellidos5=de Hoon |nombre5=Michiel |apellidos6=Cock |nombre6=Peter |apellidos7=Antao |nombre7=Tiago |apellidos8=Talevich |nombre8=Eric |apellidos9=Wilczynski |nombre9=Bartek |título=Biopython Tutorial and Cookbook |url=http://biopython.org/DIST/docs/tutorial/Tutorial.html |fecha=29 de mayo de 2014 |fechaacceso=4 de enero de 2015}}</ref> El objeto <code>Seq</code> de Biopython es similar a las cadenas de caracteres Python en muchos aspectos: es capaz de sostener la notación de secciones de Python, puede ser concatenada con otras cadenas de caracteres y es inmutable. Además, es capaz incluir diferentes métodos específicos para secuencias determinadas y permite elegir el alfabeto biológico que se quiere utilizar. <syntaxhighlight lang="python"> >>> # Este código crea una secuencia de ADN y realiza ciertas manipulaciones típicas. >>> from Bio.Seq import Seq >>> from Bio.Alphabet import IUPAC >>> dna_sequence = Seq('AGGCTTCTCGTA', IUPAC.unambiguous_dna) >>> dna_sequence Seq('AGGCTTCTCGTA', IUPACUnambiguousDNA()) >>> dna_sequence[2:7] Seq('GCTTC', IUPACUnambiguousDNA()) >>> dna_sequence.reverse_complement() Seq('TACGAGAAGCCT', IUPACUnambiguousDNA()) >>> rna_sequence = dna_sequence.transcribe() >>> rna_sequence Seq('AGGCUUCUCGUA', IUPACUnambiguousRNA()) >>> rna_sequence.translate() Seq('RLLV', IUPACProtein()) </syntaxhighlight> === Anotación de secuencias genéticas === La clase <code>SeqRecord</code> describe secuencias genéticas, junto con información como su nombre, descripción y características bajo la forma de objetos <code>SeqFeature</code>. Cada objeto <code>SeqFeature</code> especifica el tipo de característica y su ubicación. Los tipos de característica posible son "gene" (gen), "CDS" (secuencia codificante), "repeat_region" (repetición de la región), "mobile element" (elemento móvil) u otros, y la posición de estas características en la secuencia puede ser exacta o aproximativa. <syntaxhighlight lang="python"> >>> # Este código carga una secuencia anotada a partir de un archivo y muestra algunos de sus contenidos. >>> from Bio import SeqIO >>> seq_record = SeqIO.read('pTC2.gb', 'genbank') >>> seq_record.name 'NC_019375' >>> seq_record.description 'Providencia stuartii plasmid pTC2, complete sequence.' >>> seq_record.features[14] SeqFeature(FeatureLocation(ExactPosition(4516), ExactPosition(5336), strand=1), type='mobile_element') >>> seq_record.seq Seq('GGATTGAATATAACCGACGTGACTGTTACATTTAGGTGGCTAAACCCGTCAAGC...GCC', IUPACAmbiguousDNA()) </syntaxhighlight> === Mecanismos de entrada y de salida === Biopython es capaz de leer y escribir un cierto número de formatos comunes de secuencias genéticas, incluyendo [[FASTA]], [[FASTQ]], GenBank, Clustal, PHYLIP y [[NEXUS]]. Cuando lee archivos, la información descriptiva del archivo puede ser utilizada para completar los miembros de las clases Biopython, tales como <code>SeqRecord</code>. Esto permite la conversión de archivos de un formato a otro. Los archivos de secuencias de gran tamaño pueden exceder los límites de recursos memoria de un ordenador, así que Biopython ofrece varias opciones para acceder a los registros de grandes archivos. Estos pueden ser cargados directamente en la memoria de las estructuras de datos de Python, como listas o diccionarios, proporcionando un acceso rápido a ellos aunque más caro en memoria. Por otra parte, los archivos pueden ser leídos a partir del disco duro si es necesario, con un rendimiento más lento pero con requerimientos de memoria más reducidos. <syntaxhighlight lang="python"> >>> # Este código carga un archivo que contiene múltiples secuencias y guarda cada una de ellas en un formato diferente. >>> from Bio import SeqIO >>> genomes = SeqIO.parse('salmonella.gb', 'genbank') >>> for genome in genomes: ... SeqIO.write(genome, genome.id + '.fasta', 'fasta') </syntaxhighlight> === Acceso a bases de datos en línea === Gracias al módulo Bio.Entrez, los usuarios de Biopython pueden descargar datos biológicos a partir de las bases de datos NCBI. Cada una de las funciones proporcionadas por el motor de búsqueda [[Entrez]] está disponible a través de las funciones de este módulo, incluyendo la búsqueda y descarga de registros. <syntaxhighlight lang="python"> >>> # Este código descarga genomas de la base de datos de nucleótidos del NBIC y los guarda en un archivo FASTA. >>> from Bio import Entrez >>> from Bio import SeqIO >>> output_file = open('all_records.fasta', "w") >>> Entrez.email = 'my_email@example.com' >>> records_to_download = ['FO834906.1', 'FO203501.1'] >>> for record_id in records_to_download: ... handle = Entrez.efetch(db='nucleotide', id=record_id, rettype='gb') ... seqRecord = SeqIO.read(handle, format='gb') ... handle.close() ... output_file.write(seqRecord.format('fasta')) </syntaxhighlight> === Filogenia === [[Archivo:Phylo.draw.png|thumb|300px|Figura 1: Un árbol filogenético enraizado creado con Bio.Phylo que muestra las relaciones entre los homólogos Apaf-1 de diversos organismos<ref name="Zmasek2007">{{cita publicación |apellidos= Zmasek |nombre=Christian M |apellidos2 =Zhang |nombre2=Qing | apellidos3=Ye | nombre3=Yuzhen | apellidos4=Godzik |nombre4=Adam |fecha=24 de octubre de 2007 |título=Surprising complexity of the ancestral apoptosis network |url=http://genomebiology.com/2007/8/10/R226 | publicación=Genome Biology |idioma=inglés |volumen=8 |número=10 |fechaacceso=9 de septiembre de 2014 |doi=10.1186/gb-2007-8-10-r226}}</ref>]] [[Archivo:Phylo.draw graphviz.png|thumb|Figura 2: El mismo árbol que antes, pero dibujado sin enraizar usando Graphviz a través de Bio.Phylo]] El módulo Bio.Phylo proporciona herramientas para visualizar y trabajar con [[árbol filogenético|árboles filogenéticos]]. Es posible leer y grabar varios tipos de formato, incluyendo los formatos [[Newick]], [[NEXUS]] y [[phyloXML]]. Las manipulaciones habituales y transversales pueden ser realizadas gracias a los objetos <code>Tree</code> y <code>Clade</code>. Por ejemplo, se puede convertir y fusionar archivos de árbol, extraer subconjuntos de un árbol, cambiar las raíces de un árbol y analizar características de las ramas tales como su longitud o su puntuación.<ref name="Talevich2012">{{cita publicación |apellidos=Talevich |nombre=Eric |apellidos2=Invergo |nombre2=Brandon M |apellidos3=Cock |nombre3=Peter JA |apellidos4=Chapman |nombre4=Brad A |fecha=21 de agosto de 2012 |título=Bio.Phylo: A unified toolkit for processing, analyzing and visualizing phylogenetic trees in Biopython| idioma=inglés |url=http://www.biomedcentral.com/1471-2105/13/209 |publicación=BMC Bioinformatics |volumen=13 |número=209 |fechaacceso=9 de septiembre de 2014 |doi=10.1186/1471-2105-13-209}}</ref> Los árboles enraizados pueden ser dibujados en formato [[ASCII]] o usando [[matplotlib]] (ver Figura 1), y la biblioteca [[Graphviz]] puede ser utilizada para dibujar presentaciones sin enraizar (ver Figura 2). === Diagramas de genoma === [[Archivo:PKPS77.png|thumb|300px|Figura 3: Un diagrama de los genes del plásmido pKPS77,<ref name="NC_023330.1">{{cita web |url=http://www.ncbi.nlm.nih.gov/nuccore/NC_023330.1 |título=Klebsiella pneumoniae strain KPS77 plasmid pKPS77, complete sequence |idioma= inglés| editor=NCBI fechaacceso=10 de septiembre de 2014}}</ref> visualizado usando el módulo GenomeDiagram en Biopython]] El módulo GenomeDiagram proporciona métodos para visualizar secuencias en Biopython.<ref name="Pritchard2006 »">{{cita publicación |apellidos=Pritchard |nombre=Leighton |apellidos2=White |nombre2=Jennifer A | apellidos3=Birch |nombre3=Paul RJ | apellidos4=Toth |nombre4=Ian K |título=GenomeDiagram: a python package for the visualization of large-scale genomic data |url=https://archive.org/details/sim_bioinformatics_2006-03-01_22_5/page/616 | idioma=inglés | publicación=Bioinformatics |fecha=marzo de 2006 |volumen=22 |número=5 |páginas=616–617 |doi=10.1093/bioinformatics/btk021 }}</ref> Las secuencias pueden ser dibujadas en una forma linear o circular (ver Figura 3), y varios formatos de salida son posibles, incluyendo [[pdf]]s y [[png]]s. Los diagramas son creados haciendo pistas y luego añadiendo las características de las secuencias en esas pistas. Si se hace un bucle con las características de cada secuencia y se usan sus atributos para decidir cómo y por qué se añaden a las pistas del diagrama, se puede ejercer un control preciso sobre la apariencia final del diagrama. También se pueden dibujar enlaces entre las diferentes pistas, lo cual permite comparar múltiples secuencias en un solo diagrama. === Estructura macromolecular === El módulo Bio.PDB permite cargar estructuras moleculares a partir de archivos tipo [[Protein Data Bank (formato de archivo)|PDB]] y [[Crystallographic Information File|mmCIF]], y fue añadido a Biopython en 2003.<ref name="Hamelryck2003">{{cita publicación |apellidos=Hamelryck |nombre=Thomas |apellidos2=Manderick |nombre2=Bernard |fecha=10 de mayo de 2003 |título=PDB file parser and structure class implemented in Python |url=http://bioinformatics.oxfordjournals.org/content/19/17/2308 | idioma=inglés | publicación=Bioinformatics |volumen=19 |número=17 |fechaacceso=10 de septiembre de 2014 |doi=10.1093/bioinformatics/btg299}}</ref> El objeto <code>Structure</code> es central en este módulo, y organiza la estructura macromolecular de manera jerárquica: los objetos <code>Structure</code> objects contienen objetos <code>Model</code>. Estos a su vez contienen objetos <code>Chain</code>, que contienen objetos <code>Residue</code>, que contienen objetos <code>Atom</code>. Los átomos y residuos desordenados tienen sus propias clases, <code>DisorderedResidue</code> y <code>DisorderedAtom</code>, que describen sus posiciones imprecisas. Usando Bio.PDB, los usuarios pueden navegar entre los componentes individuales de un archivo de estructura macromolecular, pudiendo examinar cada átomo de la proteína. También se pueden realizar los análisis habituales, como medir distancias o ángulos, comparar residuos y calcular la profundidad de los residuos. === Genética de poblaciones === El módulo Bio.Popgen añade soporte a Biopython para Genepop, un paquete informático para el análisis estadístico de genética de poblaciones.<ref name="Rousset2008">{{cita publicación |apellidos=Rousset |nombre=François |fecha=enero de 2008 |título=GENEPOP'007: a complete re-implementation of the GENEPOP software for Windows and Linux |url=http://onlinelibrary.wiley.com/doi/10.1111/j.1471-8286.2007.01931.x/abstract | idioma=inglés | publicación=Molecular Ecology Resources |volumen=8 |fechaacceso=11 de septiembre de 2014 |doi=10.1111/j.1471-8286.2007.01931.x}}</ref> Esto permite hacer análisis basados en el [[Ley de Hardy-Weinberg|Equilibrio de Hardy-Weinberger]], el [[desequilibrio de ligamiento]] y otras características de las [[frecuencia alélica|frecuencias alélicas]] de una población. Este módulo también puede realizar simulaciones de genética de poblaciones utilizando la [[teoría de la coalescencia]] junto con el programa fastimcoal2.<ref name="Excoffier2011">{{cita publicación |apellidos=Excoffier |nombre=Laurent |apellidos2=Foll |nombre2=Matthieu |fecha=1 de marzo de 2011 |título=fastsimcoal: a continuous-time coalescent simulator of genomic diversity under arbitrarily complex evolutionary scenarios |url=http://bioinformatics.oxfordjournals.org/content/27/9/1332| idioma=inglés | publicación=Bioinformatics |volumen=27 |número=9 |fechaacceso=11 de septiembre de 2014 |doi=10.1093/bioinformatics/btr124}}</ref> === Controladores wrapper para herramientas de líneas de comandos === Muchos de los módulos de Biopython contienen controladores wrapper de líneas de comandos para las herramientas más usadas, de manera que estas herramientas puedan ser usadas en el interior de Biopython. Estos controladores incluyen [[BLAST]], [[Clustal]], PhyML, [[EMBOSS]] y [[SAMtools]]. Los usuarios pueden subclasificar un controlador wrapper genérico para añadir soporte para cualquier otra herramienta de líneas de comandos. == Véase también == * [[Open Bioinformatics Foundation]] * [[BioSQL]] * [[BioPerl]] * [[BioRuby]] * [[BioJS]] * [[BioJava]] == Referencias == {{listaref}} == Enlaces externos == * [http://biopython.org/ Página web oficial.] * [http://biopython.org/DIST/docs/tutorial/Tutorial.html Tutorial y manual de Biopython (en inglés)] ([http://biopython.org/DIST/docs/tutorial/Tutorial.pdf PDF] {{Wayback|url=http://biopython.org/DIST/docs/tutorial/Tutorial.pdf |date=20210929005133 }}) * [https://github.com/biopython/biopython Código fuente de Biopython en GitHub.] {{Control de autoridades}} [[Categoría:Python]] [[Categoría:Bioinformática]] [[Categoría:Biología computacional]] [[Categoría:Bibliotecas de Python]] [[Categoría:Software de bioinformática]]
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Buscar
Buscar
Edición de «
Biopython
»
Añadir idiomas
Añadir tema