Sono nuovo in D e vorrei analizzare un file biologica della formaanalisi di un file con D
>name1
acgcgcagagatatagctagatcg
aagctctgctcgcgct
>name2
acgggggcttgctagctcgatagatcga
agctctctttctccttcttcttctagagaga
>name2
gag ggagag
tale che posso catturare il nome1 'intestazioni', nome2, NAME3 con il corrispondente 'sequenza di 'dati, il ..acgcg ... roba.
ora ho this.but sarà solo linea di iterare per riga,
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;
}
vorrei sapere un bel modo di estrarre l'intestazione ei dati di sequenza in modo tale che posso creare un array associativo in cui ogni articolo corrisponde ad una voce nel file
[name1:acgcgcagagatatagctagatcgaagctctgctcgcgct,name2:acgggggcttgctagctcgatagatcgaagctctctttctccttcttcttctagagaga,.....]
D sembra essere popolare tra i bioinformatici :) – Trass3r