从Matrix文件中读取坐标而不使用2D数组?

时间:2013-12-18 18:28:50

标签: c++ file matrix fstream bioinformatics

我目前正在开发一个程序(生物信息学项目),该项目涉及读取多个文件,包括矩阵,并将结果输出到另一个文件。我最麻烦的是如何像坐标系一样阅读矩阵文件(缺少更好的术语)?有没有使用2D数组的简单方法?例如,如果我有以下氨基酸:

fileA:CTTNCLAPLA fileB:CTTNSITPVA

然后程序将读取这两个文件,比较每个字母,并参考矩阵以找到与这两个字母对应的数字,这反过来又决定了fileA中字母变异为fileB中字母的概率。 / p>

由于每个文件中的第一个字母是C,程序将读取矩阵并输出到单独的文件中:

C T T N C L A P L A
| | | | . : : | : |
C T T N S I T P V A

“。”表示根据矩阵的数字是0而不是相同的字母,“|”表示该字母相同,而“:”表示该数字大于零但不是相同的字母。

这是矩阵的一部分(其余部分不适合): 注意:我必须使用的矩阵在.csv文件中,并且不包含空格。

_, A, R, N, D, C
A, 2,-2, 0, 0,-2 
R,-2, 6, 0,-1,-2
N, 0, 0, 2, 2,-4
D, 0,-1, 2, 4,-5
C,-2,-4,-4,-5,12

如果我的解释令人困惑,我道歉。如果您需要任何澄清,请告诉我。任何帮助是极大的赞赏。提前谢谢!

2 个答案:

答案 0 :(得分:1)

为避免二维数组,可以使用带线性索引的一维数组,并实现方便辅助函数将二维坐标转换为线性数组索引 - 如Linear indexing in symmetric matrices

答案 1 :(得分:0)

我只想创建一个类/结构,然后创建一个对象数组。这应该可以消除您对2D阵列的需求。

相关问题