Arrays 开发蛋白质序列分割有困难吗

Arrays 开发蛋白质序列分割有困难吗,arrays,vb.net,visual-studio,Arrays,Vb.net,Visual Studio,我很难创建一个分解蛋白质的程序 Module Module1 Sub Main() Dim apomyoglobin As String apomyoglobin = "'GLSDGEWQQVLNVWGKVEADIAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGTVVLTALGGILKKKEGH HEAELKPLAQSHATKHKIPIKYLEFISDAIIHVLHSKHRPGDFGADAQGAMTKAL

我很难创建一个分解蛋白质的程序

Module Module1

    Sub Main()
        Dim apomyoglobin As String
        apomyoglobin = "'GLSDGEWQQVLNVWGKVEADIAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGTVVLTALGGILKKKEGH
HEAELKPLAQSHATKHKIPIKYLEFISDAIIHVLHSKHRPGDFGADAQGAMTKALELFRNDIAAKYKELGFQG'"
        Dim thearray() As String = apomyoglobin.Split("") 'Stores the array of the string'
        For i = 0 To (Len(apomyoglobin) - 1)
            If thearray(i) Then
        Next

    End Sub

End Module
我想在特定字母处拆分序列,即

在精氨酸(R)后切割线

在赖氨酸(K)之后切割

如果赖氨酸或精氨酸后接脯氨酸(p),则不切割


我一直在研究如何在不删除任何字符的情况下将此数组拆分为单独的块。我只想将某些字符放入一个数组中

以下是在循环中使用
IndexOfAny
Substring
进行拆分的示例,并将其包装到扩展方法中:

导入System.Runtime.CompilerServices
公共模块扩展
公共函数SplitAtChars(源作为字符串,ParamArray chars作为Char())作为字符串()
将子字符串调整为新列表(字符串)
'从源文本的开头开始。
Dim startIndex=0
'查找第一个分隔符。
Dim endIndex作为整数=source.IndexOfAny(字符)
直到endIndex=-1为止
'从当前开始索引获取子字符串,该子字符串指向并包含当前分隔符。
添加(source.Substring(startIndex,endIndex-startIndex+1))
'在当前分隔符后重新启动。
startIndex=endIndex+1
'查找下一个分隔符。
endIndex=source.IndexOfAny(chars,startIndex)
环
'获取从最后一个分隔符之后到源文本结尾的子字符串。
Substring.Add(source.Substring(startIndex))
返回子字符串。ToArray()
端函数
端模块
用法示例:

Dim text=“AB1CD2DEF1GHIJK1LMN2OPQR2STU1VW2XYZ”
尺寸文本1=“1AB1CD2DEF1GHIJK1LMN2OPQR2STU1VW2XYZ”
尺寸文本2=“AB1CD2DEF1GHIJK1LMN2OPQR2STU1VW2XYZ2”
Console.WriteLine(String.Join(“,”,text.SplitAtChars(“1”c,“2”c)))
Console.WriteLine(String.Join(“,”,text1.SplitAtChars(“1”c,“2”c)))
Console.WriteLine(String.Join(“,”,text2.SplitAtChars(“1”c,“2”c)))
输出:

AB1,CD2,DEF1,GHIJK1,LMN2,OPQR2,STU1,VW2,XYZ 1,AB1,CD2,DEF1,GHIJK1,LMN2,OPQR2,STU1,VW2,XYZ AB1,CD2,DEF1,GHIJK1,LMN2,OPQR2,STU1,VW2,XYZ2, AB1、CD2、DEF1、GHIJK1、LMN2、OPQR2、STU1、VW2、XYZ 1、AB1、CD2、DEF1、GHIJK1、LMN2、OPQR2、STU1、VW2、XYZ AB1,CD2,DEF1,GHIJK1,LMN2,OPQR2,STU1,VW2,XYZ2,
您可以根据具体情况进行调整。

Split
删除字符,因此,如果您不想删除字符,为什么要使用
Split
?在循环中使用
indexOf
(或
IndexOfAny
)和
Substring
。正如您应该经常做的那样,首先计算出逻辑,然后只在完成后编写代码。然后,代码应该显式地实现您已经拥有的逻辑。如果您不知道要编写什么代码,您应该能够准确地告诉我们您尝试实现算法的哪一步。您提供的字符串“apomyoglobin”不包含“精氨酸”、“赖氨酸”或“脯氨酸”,请提供有关您的问题的详细描述。抱歉,这让我有点困惑。你能不能用外行术语解释一下,你先做你能做的事,每次都是这样,没有提示?创建一个新项目,添加我上面提供的代码,在代码顶部设置一个断点,运行该项目,然后逐行查看它的实际功能。您可以在每个步骤中看到每个变量的值,并且可以使用F1键打开代码中任何类型或方法的文档,以便自己阅读它的功能。你可以代表自己努力,然后问一些你不理解的问题,如果你需要的话。