Este es el comando gmod_bulk_load_gff3.plp que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
$ 0: carga masiva de archivos gff3 en una base de datos de chado.
SINOPSIS
% $ 0 [opciones]
% gato | $ 0 [opciones]
OPCIONES
--gfffile El archivo que contiene GFF3 (opcional, puede leer
de stdin)
--fastafile Fasta archivo desde el que cargar la secuencia
--organismo El organismo de los datos
(use el valor 'fromdata' para leer de GFF organismo = xxx)
--dbprofile Nombre del perfil de configuración de la base de datos
--dbname Nombre de la base de datos
--dbuser Nombre de usuario de la base de datos
--dbpass Contraseña de la base de datos
--dbhost Host de base de datos
- puerto de base de datos dbport
--análisis Los datos de GFF son de análisis computacional
--noload Crea archivos de carga masiva, pero en realidad no los carga.
--nosequence No carga la secuencia incluso si está en el archivo
--notransact No use una sola transacción para cargar la base de datos
--drop_indexes Elimina índices de las tablas afectadas antes de iniciar la carga
y volver a crear una vez finalizada la carga; generalmente
no ayuda al rendimiento.
--validar Validar términos SOFA antes de intentar insertar (puede
hace que el inicio del script sea lento, desactivado de forma predeterminada)
--ontología Dar instrucciones para manejar misc Ontology_terms
--skip_vacuum Omite aspirar las mesas después de las inserciones (predeterminado)
--no_skip_vaccum No se salte la aspiradora de las mesas
- inserta declaraciones INSERT de impresión en lugar de COPY FROM STDIN
--noexon No convierta las características de CDS en exones (pero aún cree
características polipeptídicas)
--recreate_cache Hace que se vuelva a crear la caché de nombre único
--remove_lock Elimina el bloqueo para permitir que se ejecute un nuevo proceso
--save_tmpfiles Guarda los archivos temporales utilizados para cargar la base de datos
--random_tmp_dir Usa un directorio tmp generado aleatoriamente (el predeterminado es
para usar el directorio actual)
--no_target_syn De forma predeterminada, el cargador agrega el targetId en
la lista de sinónimos de la característica. Esta bandera
desactivar esto.
--unique_target Confía en la unicidad de los ID de destino. Las identificaciones son caso
sensible. De forma predeterminada, el nombre exclusivo de un nuevo objetivo
será 'TargetId_PrimaryKey'. Con esta bandera
será 'TargetId'. Además, el nombre del
El objetivo creado será su TargetId, en lugar del
Nombre de la función.
--dbxref Utilice la primera anotación Dbxref como
dbxref primario (que va en feature.dbxref_id),
o si se proporciona un argumento opcional, el primer
dbxref que tiene una parte de la base de datos (es decir, antes del ':')
que coincida con el patrón suministrado.
--delete En lugar de insertar características en la base de datos,
use las líneas GFF para eliminar características como si
la opción CRUD = delete-all se estableció en todas las líneas
(consulte 'Elimina y actualiza a través de GFF a continuación'). los
loader pedirá confirmación antes de continuar.
--delete_i_realmente_significa_eso
Funciona como --delete excepto que no pregunta
para confirmacion.
--fp_cv Nombre del vocabulario controlado por la propiedad de la característica
(por defecto es 'feature_property').
--noaddfpcv De forma predeterminada, el cargador agrega tipos de atributos GFF como
nuevos términos de cv feature_property cuando faltan. Esta bandera
lo desactiva.
** dgg note: debería cambiar el nombre de esta bandera: - [no] actualización automática
para tablas Chado cvterm, cv, db, organismo, análisis ...
--manual Páginas de manual detalladas
--custom_adapter Usa un adaptador de subclase personalizado para Bio :: GMOD :: DB :: Adapter
Proporcione la ruta al adaptador como argumento
--private_schema Carga los datos en un esquema no público.
--use_public_cv Al cargar en un esquema no público, cargue cualquier cv y
cvterm datos en el esquema público
--end_sql código SQL para ejecutar después de que se complete la carga de datos
--allow_external_parent
Permitir que las etiquetas de padres se refieran a ID fuera del actual
Archivo GFF
Tenga en cuenta que todos los argumentos que comienzan con 'db' así como organismo pueden ser proporcionados por
predeterminado por Bio :: GMOD :: Config, que se instaló cuando se ejecutó 'make install'. También tenga en cuenta
la opción dbprofile y todas las demás opciones de db * son mutuamente excluyentes, si proporciona
dbprofile, no proporcione ninguna otra opción de db *, ya que no se utilizarán.
DESCRIPCIÓN
El GFF en el archivo de datos debe ser la versión 3 debido a su control más estricto de la especificación
y uso de vocabulario controlado. En consecuencia, los nombres de los tipos de características deben ser exactamente
los de la Anotación de características de la ontología de secuencia (SOFA), no los sinónimos y no los
números de acceso (los números de acceso de SO pueden ser compatibles en versiones futuras de este
texto).
Tenga en cuenta que la directiva ## sequence-region no se admite como una forma de declarar un
secuencia de referencia para un archivo GFF3. La directiva de región de secuencia ## no es expresiva
suficiente para definir qué tipo de cosa es la secuencia (es decir, es un cromosoma, un contig, un
brazo, etc?). Si su archivo GFF usa una directiva ## sequence-region de esta manera, debe
conviértalo en una línea GFF3 completa. Por ejemplo, si tiene esta línea:
## secuencia-región chrI 1 9999999
Entonces se debe convertir a una línea GFF3 como esta:
chrI. cromosoma 1 9999999. . . ID = chrI
Cómo GFF3 is almacenados in chado
Aquí hay un resumen de cómo se almacenan los datos GFF3 en chado:
Columna 1 (secuencia de referencia)
La secuencia de referencia para la característica se convierte en srcfeature_id de la característica en el
featureloc tabla para esa función. Ese featureloc generalmente asigna un rango de cero
si hay otras ubicaciones asociadas con esta función (por ejemplo, para una coincidencia
feature), a las otras ubicaciones se les asignarán valores de rango de featureloc.
cero.
Columna 2 (fuente)
La fuente se almacena como dbxref. La instancia de chado debe ser una entrada en la tabla db
llamado 'GFF_source'. El script luego creará una entrada dbxref para la característica
source y asociarlo a la característica a través de la tabla feature_dbxref.
Columna 3 (tipo)
El cvterm.cvterm_id del tipo SOFA se almacena en feature.type_id.
Columna 4 (inicio)
El valor de inicio menos 1 se almacena en featureloc.fmin (uno se resta porque
chado usa coordenadas entre bases, mientras que GFF usa coordenadas base).
Columna 5 (final)
El valor de end se almacena en featureloc.fmax.
Columna 6 (puntuación)
La puntuación se almacena en una de las columnas de puntuación en la tabla de características de análisis. los
el valor predeterminado es analysisfeature.significance. Consulte la siguiente sección sobre los resultados del análisis.
para obtener más información. Línea cuenta con opciones en español.
Columna 7 (hebra)
La cadena se almacena en featureloc.strand.
Columna 8 (fase)
La fase se almacena en featureloc.phase. Tenga en cuenta que actualmente hay un problema con
el esquema de chado para el caso de exones individuales que tienen diferentes fases en diferentes
transcripciones. Si sus datos tienen tal caso, reclame a
[email protected] para encontrar formas de abordar este problema.
Columna 9 (grupo)
Aquí es donde ocurre la magia.
Asignación de feature.name, feature.uniquename
Los valores de feature.name y feature.uniquename se asignan de acuerdo con estos
reglas simples:
Si hay una etiqueta de identificación, se usa como característica.
de lo contrario, se le asigna un nombre único que es igual a 'auto' concatenado
con feature_id.
Si hay una etiqueta de nombre, su valor se establece en feature.name;
de lo contrario, es nulo.
Tenga en cuenta que estas reglas son mucho más simples que las que Bio :: DB :: GFF
usos, y es posible que deba revisarse.
Asignar entradas feature_relationship
A todas las funciones etiquetadas por padres se les asignan entradas feature_relationship de 'part_of'
a sus características principales. Las etiquetas Derived_from se asignan a 'derivadas_de'
relaciones. Tenga en cuenta que las funciones principales deben aparecer en el archivo antes de cualquier
las características usan etiquetas Parent o Derived_from que se refieren a esa característica.
Etiquetas de alias
Los valores de alias se almacenan en la tabla de sinónimos, tanto en sinónimo.nombre como en
sinónimos.synonym_sgml y están vinculados a la función a través de la tabla feature_synonym.
Etiquetas dbxref
Los valores de dbxref deben tener el formato 'db_name: accession', donde db_name debe tener un
entrada en la tabla db, con un valor de db.name igual a 'DB: db_name'; varios
Los nombres de las bases de datos se preinstalaron con la base de datos cuando se ejecutó 'make prepdb'.
Ejecute 'SELECT name FROM db' para averiguar qué bases de datos ya están disponibles.
Se crean nuevas entradas dbxref en la tabla dbxref, y dbxrefs se vinculan a
características a través de la tabla feature_dbxref.
Etiquetas de espacio
Actualmente se ignora en su mayoría: el valor se almacena como un featureprop, pero de lo contrario
aún no se utiliza.
Etiquetas de nota
Los valores se almacenan como entradas featureprop para la función.
Cualquier etiqueta personalizada (es decir, primero en minúsculas)
Se admiten etiquetas personalizadas. Si la etiqueta aún no existe en la tabla cvterm,
será creado. El valor se almacenará con su cvterm asociado en el
tabla featureprop.
término_ontología
Cuando se utilizan las etiquetas Ontology_term, los elementos de Gene Ontology and Sequence
La ontología se procesará automáticamente cuando el DB estándar: formato de acceso sea
utilizado (por ejemplo, GO: 0001234). Para utilizar otros términos de ontología, debe especificar que
mapeo de los identificadores DB en el archivo GFF y el nombre de las ontologías en
la tabla cv como pares etiqueta = valor separados por comas. Por ejemplo, para utilizar plant y
términos de ontología celular, los proporcionaría en la línea de comando:
--ontología 'PO = ontología vegetal, CL = ontología celular'
donde 'ontología vegetal' y 'ontología celular' son los nombres en la tabla cv exactamente
como aparecen.
Etiquetas de destino
El procesamiento adecuado de las etiquetas de destino requiere que haya dos características de origen
ya disponible en la base de datos, la característica de fuente 'primaria' (el cromosoma o
contig) y el 'sujeto' del análisis de similitud, como una EST, ADNc o
cromosoma sinténico. Si la función del sujeto no está presente, el cargador
intente crear un objeto de característica de marcador de posición en su lugar. Si tienes un fasta
archivo que contiene el asunto, puede utilizar el script perl, gmod_fasta2gff3.pl,
que viene con esta distribución para hacer un archivo GFF3 adecuado para cargar en
chado antes de cargar los resultados de su análisis.
Funciones de CDS y UTR
La forma en que las características de CDS se representan en Chado es como una intersección de un
exones de la transcripción y la característica polipeptídica de la transcripción. Para permitir la adecuada
traducción de las características de CDS de un archivo GFF3, este cargador convertirá CDS y UTR
líneas características a las características del exón correspondientes (y agregue una característica prop, tenga en cuenta que el
exón se infirió de una línea GFF3 CDS y / o UTR), y crear un polipéptido
característica que abarca la región genómica desde el inicio de la traducción hasta el final.
Si su archivo GFF3 contiene características de exon y CDS / UTR, entonces querrá
suprimir la creación de las características del exón y, en su lugar, solo querrá un
característica polipeptídica que se creará. Para hacer esto, use la opción --noexon. En esto
caso, las características de CDS y UTR aún se convertirán a características de exón como
descrito arriba.
Tenga en cuenta que en el caso de que su archivo GFF contenga características CDS y / o UTR que no
no pertenecen a los genes del 'dogma central' (es decir, que tienen un gen, una transcripción y
Características CDS / exon), nada de lo anterior sucederá y las características se almacenarán
como es.
NOTAS
Cargando archivo fasta
Cuando --fastafile se proporciona con un argumento que es la ruta a un archivo
que contiene una secuencia rápida, el cargador intentará actualizar la tabla de características con
la secuencia proporcionada. Tenga en cuenta que la identificación proporcionada en la línea de descripción fasta debe
coincidir exactamente con lo que está en el campo de nombre único de la tabla de características. Tenga cuidado si es
Es posible que el nombre exclusivo de la función se haya cambiado para garantizar la unicidad cuando se
se cargó desde el GFF original. También tenga en cuenta que al cargar la secuencia de un fasta
archivo, la carga de GFF desde estándar en está deshabilitada. Perdón por cualquier inconveniente.
## secuencia-región
Este script no usa directivas de región de secuencia para nada. Si representa un
característica que debe insertarse en la base de datos, debe representarse con una
línea GFF completa. Esto incluye la secuencia de referencia para las características si no está
ya en la base de datos, como un cromosoma. Por ejemplo, esto:
## secuencia-región chr1 1 213456789
debería cambiar a esto:
chr1 UCSC cromosoma 1 213456789. . . ID = chr1
Transacciones
Esta aplicación, por defecto, intentará cargar todos los datos a la vez como un solo
transcacion. Esto es más seguro desde el punto de vista de la base de datos, ya que si hay algo malo
ocurre durante la carga, la transacción se revertirá y la base de datos se
intacto. El problema ocurre si hay muchas (digamos, más de 2-300,000) filas
en el archivo GFF. Cuando ese es el caso, hacer la carga como una sola transcacin puede
Como resultado, la máquina se queda sin memoria y acaba con los procesos. Si --notranscat es
proporcionada en la línea de comandos, cada tabla se cargará como una transacción separada.
INSERTOS SQL versus COPIA DESDE
Este cargador masivo fue diseñado originalmente para usar la sintaxis COPY FROM de PostgreSQL para
carga masiva de datos. Sin embargo, como se menciona en la sección 'Transacciones', la memoria
Los problemas a veces pueden interferir con tales cargas masivas. En otro esfuerzo por eludir
este problema, el cargador masivo se ha modificado para crear opcionalmente instrucciones INSERT
en lugar de las instrucciones COPY FROM. Las declaraciones INSERT se cargarán mucho más lentamente
que las declaraciones COPY FROM, pero como se cargan y confirman individualmente, son más
es más probable que se complete con éxito. Como indicación de las diferencias de velocidad.
involucrados, cargando anotaciones de levadura GFF3 (alrededor de 16K filas), toma alrededor de 5 veces
más tiempo usando INSERTs versus COPY en mi computadora portátil.
Elimina y actualiza a través de GFF
Existe un soporte rudimentario para modificar las características en una base de datos existente a través de
GFF. Actualmente, solo hay soporte para eliminar. Para eliminar, la línea GFF
debe tener una etiqueta personalizada en la novena columna, 'CRUD' (para Crear, Reemplazar, Actualizar y
Eliminar) y tener un valor reconocido. Actualmente los dos valores reconocidos son
CRUD = eliminar y CRUD = eliminar todo.
NOTA IMPORTANTE: El uso de las operaciones de eliminación tiene el potencial de crear
características (p. ej., exones cuyo gen se ha eliminado). Debes tener cuidado de asegurarte
eso no sucede. En esta distribución se incluye un disparador PostgreSQL (escrito en
plpgsql) que eliminará a todos los niños huérfanos de forma recursiva, por lo que si se elimina un gen,
También se eliminarán todas las transcripciones, exones y polipéptidos que pertenecen a ese gen.
Consulte el archivo modules / sequence / functions / delete-trigger.plpgsql para obtener más información.
elimínelo
La opción de eliminar eliminará una y solo una característica para la cual el nombre, escriba
y el organismo hace coincidir lo que está en la línea GFF con lo que está en la base de datos. Nota
que feature.uniquename no se consideran, ni se presentan las coordenadas en
el archivo GFF. Esto es para que se puedan realizar actualizaciones a través de GFF en los coordinantes. Si
hay más de una característica para la que el nombre, el tipo y el organismo coinciden, la
loader imprimirá un mensaje de error y se detendrá. Si no hay características que coincidan
el nombre, tipo y organismo, el cargador imprimirá un mensaje de advertencia y continuará.
eliminar todos
La opción de eliminar todo funciona de manera similar a la opción de eliminar, excepto que
eliminar todas las características que coincidan con el nombre, tipo y organismo en la línea GFF (como
opuesto a permitir que solo se elimine una característica). Si no hay funciones
esa coincidencia, el cargador imprimirá un mensaje de advertencia y continuará.
La cerradura de carrera
El cargador a granel no es una aplicación multiusuario. Si dos procesos de carga a granel separados
intente cargar datos en la base de datos al mismo tiempo, al menos uno y posiblemente todos
las cargas fallarán. Para evitar que esto suceda, el cargador a granel coloca un candado en el
base de datos para evitar que otros procesos gmod_bulk_load_gff3.pl se ejecuten al mismo tiempo
tiempo. Cuando la aplicación sale normalmente, este bloqueo se eliminará, pero si
se bloquea por alguna razón, el bloqueo no se eliminará. Para quitar el candado del
línea de comando, proporcione el indicador --remove_lock. Tenga en cuenta que si el cargador se estrella
necesitando la remoción del candado, es posible que también deba reconstruir el nombre único
caché (consulte la siguiente sección).
La caché de nombres únicos
El cargador usa la base de datos chado para crear una tabla que almacena feature_ids,
nombres únicos, type_ids y organism_ids de las características que existen en la base de datos en
la hora en que comienza la carga y las características que se agregarán cuando la carga sea
completo. Si es posible que se hayan agregado nuevas funciones a través de algún método que sea
no este cargador (por ejemplo, Apollo edita o carga con XORT) o si una carga anterior usa este
loader fue abortado, entonces debe proporcionar la opción --recreate_cache para asegurarse
el caché está fresco.
Secuencia
De forma predeterminada, si hay una secuencia en el archivo GFF, se cargará en los residuos
columna en la fila de la tabla de características que corresponde a esa característica. Suministrando el
- opción de secuencia, se omitirá la secuencia. Es posible que desee hacer esto si
tienen secuencias muy grandes, que pueden ser difíciles de cargar. En este contexto, "muy
grande "significa más de 200 MB.
También tenga en cuenta que para que las secuencias se carguen correctamente, el archivo GFF debe tener la etiqueta ## FASTA
directiva (es necesario para un análisis adecuado por Bio :: FeatureIO), y el ID del
característica debe ser exactamente el mismo que el nombre de la secuencia que sigue al> en el
sección fasta.
La mesa ORGANISM
Este script asume que la tabla de organismos está poblada con información sobre su
organismo. Si no está seguro de si ese es el caso, puede ejecutar este comando desde
la línea de comandos psql:
seleccionar * del organismo;
Si no ve su organismo en la lista, ejecute este comando para insertarlo:
insertar en el organismo (abreviatura, género, especie, nombre_común)
valores ('H. sapiens', 'Homo', 'sapiens', 'Humano');
sustituyéndolo por los valores apropiados para su organismo.
Orden de padres / hijos
Los padres deben venir antes que los niños en el archivo GFF.
Analisis
Si está cargando resultados de análisis (es decir, resultados blat, predicciones genéticas), debe
especifique la bandera -a. Si no se proporcionan argumentos con -a, entonces el cargador
Supongamos que los resultados pertenecen a un conjunto de análisis con un nombre que es el
concatenación de la fuente (columna 2) y el método (columna 3) con un guión bajo en
Entre. De lo contrario, el argumento proporcionado con -a se tomará como el nombre del
conjunto de análisis. De cualquier manera, el conjunto de análisis ya debe estar en la tabla de análisis.
La forma más sencilla de hacer esto es insertarlo directamente en el shell psql:
INSERT INTO análisis (nombre, programa, versión del programa)
VALORES ('genscan 2005-2-28', 'genscan', '5.4');
Hay otras columnas en la tabla de análisis que son opcionales; ver el esquema
documentación y '\ d análisis' en psql para obtener más información.
Chado tiene cuatro columnas posibles para almacenar la puntuación en la columna de puntuación GFF; por favor
use el que sea más apropiado e identifíquelo con la bandera --score_col (significado
es el predeterminado). Tenga en cuenta que el nombre de la columna se puede acortar a una letra. Si
tiene más de una puntuación asociada con cada función, puede poner la otra
puntuaciones en la novena columna como un par etiqueta = valor, como 'identidad = 99', y la mayor parte
loader lo colocará en la tabla featureprop (siempre que haya un cvterm para la identidad;
consulte la sección anterior sobre etiquetas personalizadas). Las opciones disponibles son:
significado (predeterminado)
identidad
Normas
puntuación cruda
Una adición planificada a la funcionalidad de manejar los resultados del análisis es permitir
Archivos GFF "mixtos", donde algunas líneas son resultados de análisis y otras no.
Además, se podrán suministrar listas de tipos (opcionalmente con fuentes) y
su entrada asociada en la tabla de análisis. El formato probablemente será el valor de la etiqueta.
pares:
- coincidencia de análisis: Rice_est = rice_est_blast, \
coincidencia: Maize_cDNA = maize_cdna_blast, \
mRNA = genscan_prediction, exon = genscan_prediction
Agrupación de entidades por ID
La especificación GFF3 permite agrupar características como CDSes y match_parts
juntos compartiendo el mismo ID. Este cargador no admite este método de
agrupamiento. En su lugar, la función principal debe crearse explícitamente antes que las partes y
las partes deben referirse al padre con la etiqueta de padre.
ID de padres externos
La especificación GFF3 establece que los ID solo son válidos dentro de un único archivo GFF, por lo que
no puede tener etiquetas de padres que se refieran a ID en otro archivo. Especificando el
"allow_external_parent", puede relajar esta restricción. Una palabra de advertencia
sin embargo: si el nombre / ID único de la función principal se modificó durante la carga (para que
único), esta funcionalidad no funcionará, ya que no será posible encontrar el original
función correctamente. En realidad, puede ser peor que no funcionar, puede adjuntar al niño
características al padre equivocado. ¡Por eso es una mala idea utilizar esta funcionalidad!
Úselo con precaución.
AUTORES
Día de Allen[email protected]>, Scott Cain[email protected]>
Copyright (c) 2011
Esta biblioteca es software gratuito; puedes redistribuirlo y / o modificarlo bajo el mismo
términos como el propio Perl.
Use gmod_bulk_load_gff3.plp en línea usando los servicios de onworks.net