El segundo paso para comenzar con el bioconductor: descripción general de GRanges
Granges es la abreviatura de rangos genómicos. Es una estructura de datos utilizada por el paquete R en bioconductor para almacenar intervalos genómicos. Es rápido y efectivo y debe dominarse si desea analizar los datos en profundidad. . Su importancia es similar a la de los archivos de anotaciones de cama. La importancia de esto es obvia en comparación.
Al realizar análisis genómicos, lo más importante son los intervalos o una colección de intervalos. ¿Qué son entonces los intervalos? Es alguna entidad en el genoma. No puedo pensar en un nombre adecuado para traducirlo. Puedes llamarlo objeto de manera grosera.
Aunque no se puede traducir, te daré algunos ejemplos, que definitivamente te harán entender de qué se trata.
Como se muestra a continuación, esta es una secuencia seleccionada al azar en el Navegador UCSC En la captura de pantalla anterior, podemos ver grupos de ADN, SNP, promotores y genes. Todas estas cosas se pueden llamar intervalos. Incluso la posición donde se asigna una lectura de secuencia al genoma también se puede llamar intervalo. p>
Muchos trabajos genómicos implican varias relaciones entre varios intervalos, como qué promotores contienen sitios SNP, con qué promotores se superpone un determinado sitio de unión de TF y qué genes están cubiertos por lecturas de secuenciación. Habiendo dicho tantos intervalos, ¿qué tiene que ver con los GRanges que vamos a presentar?
La imagen de arriba es la estructura de un GRanges, en la que A1, A2 y A3 son sus tres intervalos, por lo que podemos entender que los intervalos son las unidades horizontales más pequeñas del objeto GRanges.
Desde una perspectiva vertical, el objeto GRanges consta de tres columnas. La primera columna es el nombre del cromosoma, la segunda columna es la ubicación específica de los intervalos (esta información de ubicación la proporciona el objeto IRanges) y. la tercera columna es la dirección de la cadena donde se encuentra la posición
Además, también podemos ver que la esquina inferior izquierda es la información del cromosoma. Por ejemplo, seqlengths nos dice la longitud de chr1. si no está definido, es NA
Podemos usar R para manejar objetos GRanges, pero además también podemos usar bedtools para manejar la relación entre intervalos. Por ejemplo, el que uso más es intersectBed, que puede ayudarme rápidamente a saber dónde están las señales que necesito.
Los IRanges son vectores que contienen intervalos. Los IRanges son similares a los GRanges, pero los GRanges tienen números de cromosomas e información de cadena positiva y negativa. Los IRanges proporcionan funciones básicas para los GRanges, que pueden realizar operaciones algebraicas simples en intervalos.
Los rangos tienen tres columnas, inicio, final y ancho. Cuando se nos dan dos columnas de información, podemos inferir la información de la columna restante.
A continuación se utiliza la función IRanges para construir un objeto IRanges.
Este objeto Iranges contiene tres intervalos diferentes. Cada intervalo se denomina rango (intervalo de rango aquí, ir1 tiene tres rangos). /p>
Los tres métodos start(), end() y width() pueden obtener la columna inicial, la columna final y la información de ancho del objeto IRanges.
Cada rango del objeto IRanges también puede tener su propio nombre, como
Debido a que es un vector, IRanges tiene solo una dimensión y no puede usar el método dim(), pero podemos usar length() para obtener su longitud. Podemos operar objetos IRanges como vectores, como
Incluso puedes usar c() para fusionar dos objetos IRanges
A veces, al leer la información del paquete R, es posible que veas el objeto NormalIRanges, que se obtiene utilizando la función de reducción en el objeto IRanges. En un NormalIRanges, sus rangos (es decir, cada fila de datos) tienen las siguientes características:
Usar palabras puede ser abstracto, pero usar una imagen debería ayudar a todos a comprender mejor. Lo anterior representa nuestro objeto Iranges real, mientras que el siguiente es el objeto Ranges normal que obtenemos después de usar la función de reducción.
Los siguientes son los objetos de la función reducir():
La función de desunión es exactamente lo opuesto a la función de reducción. Encuentra intervalos que no se superponen en absoluto y los divide. intervalos superpuestos.
También existen algunos métodos que se pueden utilizar para convertir por lotes las posiciones de coordenadas de los objetos IRanges, como:
Además, existen algunos métodos que amplían aún más los tres métodos anteriores. , Por razones de espacio, no lo presentaré aquí. Si está interesado, puede buscarlo usted mismo
La función reseize () puede ser un método muy útil para procesar datos. parámetro que puede corregir las diferencias en las columnas de variables originales, el uso específico es el siguiente:
Dado que IRanges es un vector, las operaciones de configuración definitivamente se pueden realizar en IRanges. Generalmente usamos unión para obtener. la unión y la intersección para obtener la intersección:
Estas funciones, existen algunas variantes, punion(), pintersect(), psetdiff(), pgap(). Son muy similares a pmax en las funciones básicas de R y rara vez se usan, por lo que no se explicarán.
Al realizar análisis posteriores de datos de secuenciación, a menudo es necesario encontrar superposiciones. Utilice findOverlaps(). Función para encontrar dos IRanges superpuestos en el objeto. Su valor de retorno es un objeto Hists, que puede describir la relación de superposición entre dos Iranges. Es una matriz de dos columnas que consta de los índices de IRanges. Su información de índice se puede obtener mediante queryHist() y sujetoHits().
Hay muchos parámetros para findOverlaps, si hay una superposición mínima, si hay una superposición completa, etc. No puedo recordarlo, así que no lo presentaré aquí
La función countOverlaps() puede devolver el número de superposiciones. Esta función es más rápida y ocupa menos memoria porque no es necesario. registre la información específica sobre la superposición de rangos, solo considere el número de superposiciones
La función más cercana () se usa para encontrar qué rangos en el primer objeto IRanges son los más cercanos a los rangos en el segundo objeto IRanges. entre dos rangos IR.
Si ha utilizado el paquete ChIPseeker de R del tío Y, es posible que esté familiarizado con esta función. Una forma de anotar picos en genes es encontrar a qué gen está más cercano el pico.
Similar. las funciones incluyen preceder, seguir, etc. Hay demasiadas y no se usan comúnmente, así que no las presentaré una por una...
Creo que ya tienes una idea para el objeto IRanges Después de ver esto, tengo una comprensión más profunda y una comprensión general de GRanges. Como se esperaba en el próximo número, escribiré sobre las operaciones del objeto GRanges en detalle, con la esperanza de ayudarlo a aprender más sobre el objeto GRanges