wget) el siguiente
archivo fasta:wget https://tritrypdb.org/common/downloads/release-53/TcruziCLBrener/fasta/data/TriTrypDB-53_TcruziCLBrener_AnnotatedCDSs.fasta
a. ¿Qué permisos tiene?
Para ver los permisos que tiene un archivo utilizamos el comando ls
con la opción -l
ls -l TriTrypDB-64_TcruziCLBrenerEsmeraldo-like_AnnotatedCDSs.fasta
b. ¿Cuantas veces aparece la secuencia GGCCA? ¿En cuantas líneas?
Para buscar patrones en un archivo de texto utilizamos el comando
grep. Para el primer caso es conveniente utilizar grep con
la opción -o y para el segundo la opción -c.
La diferencia radica en que -c cuenta la cantidad de líneas
donde aparece determinado patrón, mientras que -o cuenta la
cantidad de veces que aparece el patrón; si en una misma línea aparece
GGCCA dos veces, grep -c me devolverá
1 y grep -o me devolverá 2.
grep -o 'GGCCA' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta | wc -l
grep -c 'GGCCA' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta
c. ¿Cuantos genes hay?
En archivos .fasta cada secuencia (en este caso gen) esta asociada a
un único header que consiste en una línea que comienza siempre con el
signo > seguido del nombre del gen y otra información.
Por lo tanto, contar la cantidad de líneas que comienzan con
> nos daría cuantos genes hay:
grep -c '>' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta
Otra opción
grep '>' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta | wc -l
d. ¿Cuál es el último gen? ¿Y el primero?
Para este caso hay que recordar los comandos ‘head’ y ‘tail’, y combinarlos con lo visto anteriormente.
grep '>' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta | head
grep '>' TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta | tail
En este caso utilizamos el comando ‘head’, especificando la cantidad de líneas que queremos que tome del archivo, y redirijimos la salida a un nuevo archivo de texto.
head -200 TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta > 200_lineas.txt
a. ¿Cuantos genes hay?
Procedemos de igual forma a lo visto unos ejercicios atrás:
grep -c '>' 200_lineas.txt
o
grep '>' 200_lineas.txt | wc -l
b. ¿Cuantas veces aparece la secuencia GGCCA?
Para este caso, es conveniente utilizar grep con la
opción -o en lugar de -c. La diferencia radica
en que -c cuenta la cantidad de líneas donde aparece
determinado patrón, mientras que -o cuenta la cantidad de
veces que aparece el patrón; si en una misma línea aparece
GGCCA dos veces, grep -c me devolverá
1 y grep -o me devolverá 2. Lo
que hace la opción -o cada vez que encuentra un patrón es
imprimirlo en pantalla en una línea, por lo que lo combinaremos con
wc -l:
grep -o 'GGCCA' 200_lineas.txt | wc -l
c. ¿Cuantas veces aparece la secuencia GGCCA en el primer gen?
Este ejercicio debemos realizarlo en tres pasos:
1- Como se trata de un archivo fasta donde las secuencias de cada gen están en múltiples líneas, debemos primero visualizar en cuantas líneas consiste el primer gen:
head 200_lineas.txt
2- Vemos que la secuencia del gen sigue más allá de las 10 primeras
líneas que devuelve el comando head solo. Probamos
incorporarle al comando head el argumento -20
que devuelve las primeras 20 lineas:
head -20 200_lineas.txt
Vemos que el primer gen consiste en 11 líneas (contando el header)
3- Nos quedamos entonces con las primeras 11 líneas y contamos la cantidad de veces que aparece el patrón:
head -11 200_lineas.txt | grep -o 'GGCC' | wc -l
Este ejercicio requiere varios pasos:
1- Vamos probando con los comandos head y
tail, y la opción de cuántas líneas queremos visualizar,
hasta ver el primer gen con su secuencia completa y el último gen con su
secuencia completa:
head -20 TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta
Vemos (de nuevo) que el primer gen consiste en 11 líneas incluyendo el header.
tail -20 TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta
Vemos que el último gen consiste en menos de 20 líneas, específicamente en 14.
2- Ahora que ya sabemos en cuantas líneas consiste el primer y último gen, crearemos un archivo de texto nuevo que los incluya:
head -11 TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta > primer_ultimo.txt
tail -14 TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta >> primer_ultimo.txt
Recordemos que para crear un archivo nuevo a partir de la salida de
un comando utilizamos >, mientras que para
agregarla a un archivo ya existente utilizamos
>> (sino sobrescribimos el archivo).
Para este tipo de actividades es más fácil y conveniente trabajar con archivos fasta donde las secuencias de cada gen no estén en múltiples líneas, sino que cada gen consista en una línea con el header y una línea con la secuencia asociada. De esta forma se simplifica mucho el análisis:
head -2 archivo_fasta > archivo_nuevo
tail -2 archivo_fasta >> archivo_nuevo
Los comandos para convertir un archivo fasta de secuencias en multilíneas a un archivo fasta del tipo mencionado anteriormente (que cada gen consista en una línea con el header y una línea con la secuencia asociada), excede lo visto en este práctico, pero es conveniente tener un pipeline para cuando nos enfrentemos a este tipo de situaciones. Aquí va un ejemplo:
sed 's/>..*/&____/g' ENTRADA | sed ':a;N;$!ba;s/\n//g' |sed 's/____/\n/g' | sed 's/>/\n>/g' | egrep .> SALIDA
En ENTRADA debemos ingresar el nombre del archivo fasta de secuencias en multilíneas, y en SALIDA debemos ingresar el nombre que queremos asignarle al nuevo archivo fasta con las secuencias en una sola línea.
a. ¿Cuánto pesa el archivo?
Para esto corremos el siguiente comando:
ls -sh TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta
b. ¿Como cambiaría los permisos para que sólo usted pueda modificar ese archivo?
Para cambiar los permisos utilizamos el comando chmod, y
eliminamos los permisos de escritura -w a
group y others, dejándolo solo para
user:
chmod go-w TriTrypDB-64_TcruziCLBrener_AnnotatedCDSs.fasta