有没有办法使用卷积神经网络返回字符串的子字符串?

计算科学 机器学习 神经网络
2021-12-12 06:04:26

我是遗传学和分子生物学的博士生,正在研究一种算法,以使用卷积神经网络识别 DNA 序列是转座因子 (TE) 还是不是 TE,并且它已经按照我想要的方式工作了它(当然我一直在努力改进它)。

输入是一个包含多个 DNA 序列的FASTA 文件。该算法分析每个序列并返回它是否是 TE,但问题是:不一定整个序列都是 TE;在许多情况下,只是一个片段(如字符串的子字符串)就是一个 TE。

我想知道是否有办法映射坐标和/或返回代表 TE 的片段。对我来说,这似乎有点棘手,因为一个热编码、展平等的所有序列预处理,而且我不知道原始的零和一序列如何返回我想要的。虽然我知道一些 python,并且我正在研究机器学习和深度学习以了解它是如何工作的,但我的领域是生物科学而不是计算机科学或相关的东西。

在这里,我将尝试举例说明上述内容。

假设我有这三个序列,小写的子字符串(只是为了示例,不会这样)是 TE。

>NAD4
TAATATTAAGATaggattgggattgtatgaagggttaaaattaatatttctataatattaatagaaaaaaagttgttaagatttttatttacgaagccatgttgagttcttCCAAAAA
>NAD4-V
CTAGTTAAAAGTAAATGTTaagataaggattgggattgtatgaagggttaaaattaatatttctataatattaatagaaaaaaagttgttAAGATTTTTATTTACGAAGCCATGTTGAG
>STL-M
TCGAAGAAGGGGTCATTAAATTTACTTTTGCTTTTTATACTATATTAGATCTTAAATCGTTTATATGTTTTTTTTAAAAAAACTATAAAGTTACCCACAAATAGAAAATTTGTTGTGCT

我想有类似以下的输出:

ID  Classification  Coordinates Sequence
NAD4       TE          13:112   aggattgggattgtatgaagggttaaaattaatatttctataatattaatagaaaaaaagttgttaagatttttatttacgaagccatgttgagttctt
NAD4-V     TE          20:91    aagataaggattgggattgtatgaagggttaaaattaatatttctataatattaatagaaaaaaagttgtt
STL-M      NT          NaN      NaN

我是否对神经网络要求太多,并且我必须在预测后使用一些工具/自定义脚本来计算序列和/或坐标?

1个回答

我将从免责声明开始,我的博士学位是特征值的快速计算,我的专长根本不是机器学习。这只是我从一些硕士课程中记得的一些东西。我有两个想法可能会奏效。

理念一

传统的卷积神经网络非常擅长分类。例如,“此图像是否包含狗”,或者在您的情况下“此序列是否包含 TE”。其原因是平移不变性。这是一个花哨的术语,说这些网络,由于它们的卷积性质,往往不关心图像或序列中的什么东西,只关心它是什么。这使他们在泛化方面做得更好。

当人们开始使用卷积神经网络来找出图像中某物的位置时,而不仅仅是它是否存在,他们不得不改变神经网络的架构。这些神经网络使用完全连接层和卷积层的分支,并在稍后重新连接它们以恢复有关位置的信息。您可以执行类似的操作来恢复 TE 序列的位置。

根据您的运气,您也许可以使用其他人为您的用例设计的对象定位网络。

想法 2

在处理序列时,循环神经网络 (RNN) 通常工作得很好。它们不是一次处理整个序列,而是逐个令牌地接收,因此可以提供有关位置的信息。自然语言处理研究人员使用这些网络取得了很大的成功,但他们对我的经验 YMMV 的训练非常敏感。

祝你好运