Tôi mới trong D và muốn phân tích một tập tin sinh học của mẫuPhân tích một tập tin với D
>name1
acgcgcagagatatagctagatcg
aagctctgctcgcgct
>name2
acgggggcttgctagctcgatagatcga
agctctctttctccttcttcttctagagaga
>name2
gag ggagag
như vậy mà tôi có thể nắm bắt được name1 'tiêu đề', name2, name3 với 'chuỗi tương ứng 'dữ liệu, công cụ ..acgcg ....
Bây giờ tôi có this.but nó sẽ dòng chỉ lặp theo dòng,
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;
}
Tôi muốn biết một cách tốt đẹp của giải nén header và dữ liệu chuỗi như vậy mà tôi có thể tạo ra một mảng kết hợp nơi mỗi mục tương ứng với một mục trong tệp
[name1:acgcgcagagatatagctagatcgaagctctgctcgcgct,name2:acgggggcttgctagctcgatagatcgaagctctctttctccttcttcttctagagaga,.....]
D dường như phổ biến trong số các nhà sinh hóa học) – Trass3r