Mav*_*ang 2 c# bioinformatics fasta
我有一个含有几种蛋白质序列的FASTA文件.格式就像
----------------------
>protein1
MYRALRLLARSRPLVRAPAAALASAPGLGGAAVPSFWPPNAAR
MASQNSFRIEYDTFGELKVPNDKYYGAQTVRSTMNFKIGGVTE
RMPTPVIKAFGILKRAAAEVNQDYGLDPKIANAIMKAADEVAE
GKLNDHFPLVVWQTGSGTQTNMNVNEVISNRAIEMLGGELGSK
IPVHPNDHVNKSQ
>protein2
MRSRPAGPALLLLLLFLGAAESVRRAQPPRRYTPDWPSLDSRP
LPAWFDEAKFGVFIHWGVFSVPAWGSEWFWWHWQGEGRPYQRF
MRDNYPPGFSYADFGPQFTARFFHPEEWADLFQAAGAKYVVLT
TKHHEGFTNW*
>protein3
MKTLLLLAVIMIFGLLQAHGNLVNFHRMIKLTTGKEAALSYGF
CHCGVGGRGSPKDATDRCCVTHDCCYKRLEKRGCGTKFLSYKF
SNSGSRITCAKQDSCRSQLCECDKAAATCFARNKTTY`
-----------------------------------
Run Code Online (Sandbox Code Playgroud)
有没有一种好方法来读取此文件并单独存储序列?
谢谢
要做到这一点,一种方法是:
逐行浏览文件
>则在向量的末尾添加一个元素,并将line.substring(1)作为蛋白质名称保存到元素中.将元素中的序列初始化为相等"".>
它开始,那么它是序列的一部分所以去当前向量element.sequence + = line.因此,方式之间的每条线>protein2和>protein3连接并保存到序列中protein2我认为关于确切文件结构的更多细节可能会有所帮助。看看你所拥有的(并快速浏览一下维基百科上的样本)表明蛋白质的名称前面有一个>,然后至少有一个换行符,所以这将是一个很好的起点。
您可以在换行符上拆分文件,然后查找>字符以确定名称。
从那里开始有点不太清楚,因为我不确定序列数据是否全部在一行中(没有换行符)或者是否可以有换行符。如果没有,那么您应该能够只存储该序列信息,然后转到下一个蛋白质名称。像这样的东西:
var reader = new StreamReader("C:\myfile.fasta");
while(true)
{
var line = reader.ReadLine();
if(string.IsNullOrEmpty(line))
break;
if(line.StartsWith(">"))
StoreProteinName(line);
else
StoreSequence(line);
}
Run Code Online (Sandbox Code Playgroud)
如果是我,我可能会使用 TDD 和一些样本数据来构建一个简单的解析器,然后继续插入样本,直到我觉得我已经涵盖了格式中的所有主要差异。
| 归档时间: |
|
| 查看次数: |
4159 次 |
| 最近记录: |