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