Ayuda buscar en y lista de resultado
Publicado: 2016-06-24 09:49 @451
Hola, grupo. Solicito de su ayuda para resolver un problema. Espero explicar bien el problema para que puedan ayudar a la solución.
Resulta que tengo la siguiente lista de genes abreviados:
Y deseo buscar cada uno en el siguiente archivo de nombres:
El resultado que necesito es el siguiente:
Como se observa, RNA5S1 y TRAJ23 no se encuentran en el archivo de nombres por lo cual su resultado es "-".
Presento el script que escribí:
El resultado que consigo es el siguiente:
el cual no incluye RNA5S1 y TRAJ23. Además el problema se complica cuando la lista de abreviaturas es más grande al igual que el archivo de nombres.
Mi principal dolor de cabeza es en la sentencia else{} porque me da respuesta para cada una de las líneas del archivo de nombres y solo quiero que responda solo una vez para todas esas líneas con un simple "-".
Espero contar con su apoyo. Saludos.
Resulta que tengo la siguiente lista de genes abreviados:
Using text Syntax Highlighting
Y deseo buscar cada uno en el siguiente archivo de nombres:
Using text Syntax Highlighting
Approved Symbol Approved Name
A2MP1 alpha-2-macroglobulin pseudogene 1
ACY1 aminoacylase 1
SLIT2 slit guidance ligand 2
RN7SL843P RNA, 7SL, cytoplasmic 843, pseudogene
SP9YP24 ubiquitin specific peptidase 9, Y-linked pseudogene 24
USP12-AS1 USP12 antisense RNA 1
ZFAT zinc finger and AT-hook domain containing
ZIC5 Zic family member 5
A2MP1 alpha-2-macroglobulin pseudogene 1
ACY1 aminoacylase 1
SLIT2 slit guidance ligand 2
RN7SL843P RNA, 7SL, cytoplasmic 843, pseudogene
SP9YP24 ubiquitin specific peptidase 9, Y-linked pseudogene 24
USP12-AS1 USP12 antisense RNA 1
ZFAT zinc finger and AT-hook domain containing
ZIC5 Zic family member 5
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
El resultado que necesito es el siguiente:
Using text Syntax Highlighting
ACY1 aminoacylase 1
RNA5S1 -
USP12-AS1 USP12 antisense RNA 1
TRAJ23 -
ZFAT zinc finger and AT-hook domain containing
RNA5S1 -
USP12-AS1 USP12 antisense RNA 1
TRAJ23 -
ZFAT zinc finger and AT-hook domain containing
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Como se observa, RNA5S1 y TRAJ23 no se encuentran en el archivo de nombres por lo cual su resultado es "-".
Presento el script que escribí:
Using perl Syntax Highlighting
- use warnings;
- open (ABREFILE, "Abrevlist.txt"); #Abre la lista de abreviaturas
- while (<ABREFILE>){ #Lee cada línea
- chomp;
- $abrev = $_;
- ind_sec(); #Envia la primer línea (abreviatura) a la subrutina
- }
- sub ind_sec{
- open (NOMBREFILE2, "NombreFile.txt"); #Abre el archivo con nombres
- while ($line = <NOMBREFILE2>){
- if ($line =~ m/^$abrev\s/g){ #Buscar la abreviatura en la cada línea del archivo con nombres
- print "$line"; #si la sentencia se cumple imprime la línea
- } #
- else{ #si la abreviatura no se encuentra
- print "\t-"; # quiero que imprima la abreviatura con - por delante
- }
- }
- }
- close(ABREFILE);
- close(NOMBREFILE2);
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
El resultado que consigo es el siguiente:
Using text Syntax Highlighting
ACY1 aminoacylase 1
USP12-AS1 USP12 antisense RNA 1
ZFAT zinc finger and AT-hook domain containing
USP12-AS1 USP12 antisense RNA 1
ZFAT zinc finger and AT-hook domain containing
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
el cual no incluye RNA5S1 y TRAJ23. Además el problema se complica cuando la lista de abreviaturas es más grande al igual que el archivo de nombres.
Mi principal dolor de cabeza es en la sentencia else{} porque me da respuesta para cada una de las líneas del archivo de nombres y solo quiero que responda solo una vez para todas esas líneas con un simple "-".
Espero contar con su apoyo. Saludos.