Expresión Diferencial RNA-seq
Publicado: 2012-11-26 17:44 @780
¡¡¡Hola a todos!!!
Tengo un problema y estoy atorado con esto desde hace ya varios días. Tengo un archivo así:
Y necesito un script que me compare los RPKM_C vs RPKM_T1, RPKM_C vs RPKM_T2, de cada ID y que los asigne a archivos como Sin_Cambios (si son iguales), Reprimido (Si es menor), y a Inducidos (Si es mayor), para ello ya hice un script y me funciona muy bien:
Mi problema es que fui muy estricto, ya que un RPKM de 15.1413902 (Ccontrol) es biológicamente igual a 13.23147945 (T1), por lo que necesito hacer una comparación de +/- 2.5 veces, o sea:
- Si el T1 es 2.5 veces más grande que el Control, este se induce
- Si el T1 es 2.5 veces más pequeño que el control, este se reprime
- Si el T1 está dentro del rango de +/- 2.5 veces el Control se mantiene igual
Sé que debo usar expresiones regulares, lo que no sé es cómo.
Ayuda por favor, es algo urgente, es para mi trabajo final.
Tengo un problema y estoy atorado con esto desde hace ya varios días. Tengo un archivo así:
Using text Syntax Highlighting
- ID RPKM_C RPKM_T1 RPKM_T2
- Pp1s10008_1V6.1 15.1413902 13.23147945 63.56598706
- Pp1s100_101V6.1 3.02827804 2.615525008 7.196149479
- Pp1s100_102V6.1 6.012701324 6.004640585 12.75103445
- Pp1s100_104V6.1 4.660445525 4.4133651 8.656488079
- Pp1s100_106V6.1 4.05209418 3.87275314 6.58645081
- Pp1s100_107V6.1 3.563197791 3.881832493 7.756641103
- Pp1s100_108V6.1 2.658938461 2.450037373 6.639192251
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Y necesito un script que me compare los RPKM_C vs RPKM_T1, RPKM_C vs RPKM_T2, de cada ID y que los asigne a archivos como Sin_Cambios (si son iguales), Reprimido (Si es menor), y a Inducidos (Si es mayor), para ello ya hice un script y me funciona muy bien:
Using perl Syntax Highlighting
- use strict;
- #!/usr/bin/perl
- ####-----Declarar Variables-----####
- my ( $linea1, $a_1, $a_2, $a_3, $a_4 );
- ###------Inicio del Programa---###
- ##### Control vs T1 ################################
- open( SALIDA_A, ">Resprimido_C_vs_T1.txt" );
- open( SALIDA_B, ">Sobrexpresado_C_vs_T1.txt" );
- open( SALIDA_C, ">Igual_C_vs_T1.txt" );
- open( ARCHIVO_A, $ARGV[0] );
- while ( $linea1 = <ARCHIVO_A> ) {
- ( $a_1, $a_2, $a_3, $a_4 ) = split /\t/, $linea1;
- if ( $a_2 eq $a_3 ) {
- print SALIDA_C "$a_1\n";
- }
- elsif ( $a_2 > $a_3 ) {
- print SALIDA_A "$a_1\n";
- }
- else {
- print SALIDA_B "$a_1\n";
- }
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Mi problema es que fui muy estricto, ya que un RPKM de 15.1413902 (Ccontrol) es biológicamente igual a 13.23147945 (T1), por lo que necesito hacer una comparación de +/- 2.5 veces, o sea:
- Si el T1 es 2.5 veces más grande que el Control, este se induce
- Si el T1 es 2.5 veces más pequeño que el control, este se reprime
- Si el T1 está dentro del rango de +/- 2.5 veces el Control se mantiene igual
Sé que debo usar expresiones regulares, lo que no sé es cómo.
Ayuda por favor, es algo urgente, es para mi trabajo final.