Esta tarde me ha dado por curiosear cómo se utilizan ciertos programas para ensamblar lecturas de secuenciación masiva, concretamente obtenidas con Illumina y que se encuentran en bases de datos. Concretamente quería correr SOAPdenovo. No por nada, solo por curiosidad, pues la ejecución de software para este fin requiere de máquinas con muchos recursos. El caso es que como formato de entrada me pedía FASTQ y sin embargo me los descargué en SRA.
Es muy sencillo, si sabes cómo, realizar esta operación. Basta con ir a la página descargas de SRA Toolkit y obtener la versión para Ubuntu. Tras descomprimir, abrirmos un terminal en la carpeta y ejecutamos fastq-dump de la siguiente manera (no es necesario instalar nada):
$ ./fastq-dump [--gzip] -A SRRxxxxxx -M 0 --split-files /ruta/fichero/SRRxxxxxx.sra
Así, después de un rato de procesamiento, obtendremos un fichero FASTQ.
Alternativametne, si queremos cambiar las etiquetas de las lecturas, podemos utilizar un comando como el siguiente, aunque es más lento:
$ ./fastq-dump --defline-qual '+' --defline-seq '@SRRxxxxxxx_$sn[_$rn]/$ri' --split-files SRRxxxxxxx.sra
Este es un fichero que puedes abrir un cualquier editor de textos (por ejemplo gEdit), pero si quieres pasarlo a formato FASTA, puedes pedir que te ayude BioPython. Si no lo tienes instalado:
$ sudo aptitude install python-biopython
Ejecutamos el interprete python (o ipython mejor) y ejecutamos el comando para convertir el formato del fichero:
$ python >>> from Bio import SeqIO >>> SeqIO.convert("example.fastq", "fastq", "example.fasta", "fasta")
Con esto debería bastar. Hala, ya tenemos nuestros ficheros con gigas de información para ser analizados. Pero hoy ya estoy muy cansado…
————————————————————————————————-
ACTUALIZACIÓN 19/05/2011
Script Python para automatizar conversión FASTQ a FASTA a partir de una lista de ficheros.
from Bio import SeqIO seq = open("files.txt", "r").readlines() for line in seq: a = list(line) b = a[:-1] c = "".join(b) print "Empezando %s" % c SeqIO.convert(c, "fastq", c+".fas", "fasta") print "Terminado %s, a por el siguiente!!!" % c print "TODO FINALIZADO"
Paquillo, prueba bpython en lugar de ipython. Te va a encantar 🙂
OMG. Tienes razón, bpython es fantástico!!!!
Gracias por el dato.
./fastq-dump –fasta SRA_FILE para no tener que usar python luego
Gracias por la aportación.
hola que tal… en bpython se utilizan los mismos comandos que en python? por ejemplo, en el ejemplo de arriba …?
Para convertir archivos BAM a Fastq, estoy teniendo problemas con todas las herramientas disponibles, alguien podría ayudarme?
Hola Angy. Suelo utilizar la siguiente receta para eso que dices.
Primero debes ordenar el BAM por nombre con:
$ samtools sort -n
Luego puedes utilizar bedtools con la opción:
$ bamToFastq
Saludos.
Agradeceria su ayuda, no tengo entendido que es bowtie, blat, fasta, fastq; dentro de UBUNTU. ¿Alguien podria darme alguna pequeña reseña?