Soy nuevo en D y me gustaría analizar un archivo biológica de la formaanálisis de un archivo con D
>name1
acgcgcagagatatagctagatcg
aagctctgctcgcgct
>name2
acgggggcttgctagctcgatagatcga
agctctctttctccttcttcttctagagaga
>name2
gag ggagag
tal que puedo capturar el nombre1 'encabezados', nombre2, nombre3 con la secuencia correspondiente' 'datos, el ..acgcg ... cosas.
ahora tengo this.but será única línea de iterar por línea,
import std.stdio;
import std.stream;
import std.regex;
int main(string[] args){
auto filename = args[1];
auto entry_name = regex(r"^>(.*)"); //captures header only
auto fasta_regex = regex(r"(\>.+\n)([^\>]+\n)"); //captures header and correponding sequence
try {
Stream file = new BufferedFile(filename);
foreach(ulong n, char[] line; file) {
auto name_capture = match(line,entry_name);
writeln(name_capture.captures[1]);
}
file.close();
}
catch (FileException xy){
writefln("Error reading the file: ");
}
catch (Exception xx){
writefln("Exception occured: " ~ xx.toString());
}
return 0;
}
me gustaría saber una buena manera de extraer la cabecera y los datos de la secuencia tal que puedo crear una matriz asociativa, donde cada elemento corresponde a una entrada en el archivo
[name1:acgcgcagagatatagctagatcgaagctctgctcgcgct,name2:acgggggcttgctagctcgatagatcgaagctctctttctccttcttcttctagagaga,.....]
D parece ser muy popular entre los bioinformáticos :) – Trass3r