在没有2D阵列的情况下从矩阵文件中读取坐标

Reading coordinates from Matrix file WITHOUT 2D arrays?

本文关键字:文件 坐标 读取 情况下 2D 阵列      更新时间:2023-10-16

我目前正在开发一个程序(生物信息学项目),该项目涉及读取多个文件,包括一个矩阵,并将结果输出到另一个文件中。我最头疼的是如何像坐标系一样读取矩阵文件(因为没有更好的术语)?有没有一种简单的方法可以在不使用2D阵列的情况下做到这一点?例如,如果我在中有以下氨基酸

文件A:CTNCLAPLA文件B:CTTNSITPVA

然后,该程序将读取这两个文件,比较每个字母,并参考矩阵来找到与这两个字母对应的数字,这反过来决定了文件a中的字母变为文件B中的字母的概率。

由于每个文件中的第一个字母是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

如果我的解释令人困惑,我深表歉意。如果你需要澄清,请告诉我。非常感谢您的帮助。提前感谢!

为了避免2D数组,您可以使用具有线性索引的1D数组,并实现将2D坐标转换为线性数组索引的便利助手功能-如这里对称矩阵中的线性索引

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