python中存储DNA矩阵的最佳方法

python中存储DNA矩阵的最佳方法,python,Python,我想在Python中存储DNA的字符数组,每个单词作为每个元素 例如,我想改变 1. cctgatagacgctatctggctatccaggtacttaggtcctctgtgcgaatctatgcgtttccaaccat 2. agtactggtgtacatttgatccatacgtacaccggcaacctgaaacaaacgctcagaaccagaagtgc 3. aaacgttagtgcaccctctttcttcgtggctctggccaacgagggctgatgtataagacg

我想在Python中存储DNA的字符数组,每个单词作为每个元素

例如,我想改变

 1. cctgatagacgctatctggctatccaggtacttaggtcctctgtgcgaatctatgcgtttccaaccat
 2. agtactggtgtacatttgatccatacgtacaccggcaacctgaaacaaacgctcagaaccagaagtgc
 3. aaacgttagtgcaccctctttcttcgtggctctggccaacgagggctgatgtataagacgaaaatttt
 4. agcctccgatgtaagtcatagctgtaactattacctgccacccctattacatcttacgtccatataca
 5. ctgttatacaacgcgtcatggcggggtatgcgttttggtcgtcgtacgctcgatcgttaccgtacggc
转换为2D矩阵形式,每个元素存储一个字符。我想到了numpy,但我认为它可能不适合这些字符串


Python中最好的方法是什么?

简单明了的答案是使用列表列表:

a = "cctgatagacgctatctggctatccaggtacttaggtcctctgtgcgaatctatgcgtttccaaccat"
b = "agtactggtgtacatttgatccatacgtacaccggcaacctgaaacaaacgctcagaaccagaagtgc"
matrix = [list(a), list(b)]
print(matrix)

[
  ['c', 'c', 't', 'g', 'a', 't', 'a', 'g', 'a', 'c', 'g', 'c', 't', 'a', 't', 'c', 't', 'g', 'g', 'c', 't', 'a', 't', 'c', 'c', 'a', 'g', 'g', 't', 'a', 'c', 't', 't', 'a', 'g', 'g', 't', 'c', 'c', 't', 'c', 't', 'g', 't', 'g', 'c', 'g', 'a', 'a', 't', 'c', 't', 'a', 't', 'g', 'c', 'g', 't', 't', 't', 'c', 'c', 'a', 'a', 'c', 'c', 'a', 't'], 
  ['a', 'g', 't', 'a', 'c', 't', 'g', 'g', 't', 'g', 't', 'a', 'c', 'a', 't', 't', 't', 'g', 'a', 't', 'c', 'c', 'a', 't', 'a', 'c', 'g', 't', 'a', 'c', 'a', 'c', 'c', 'g', 'g', 'c', 'a', 'a', 'c', 'c', 't', 'g', 'a', 'a', 'a', 'c', 'a', 'a', 'a', 'c', 'g', 'c', 't', 'c', 'a', 'g', 'a', 'a', 'c', 'c', 'a', 'g', 'a', 'a', 'g', 't', 'g', 'c']
]

现在,它是否适合您取决于您计划如何使用它,您的数据集将有多大,性能和内存使用限制等,您的问题中没有提到这些…

简单明了的答案是使用列表:

a = "cctgatagacgctatctggctatccaggtacttaggtcctctgtgcgaatctatgcgtttccaaccat"
b = "agtactggtgtacatttgatccatacgtacaccggcaacctgaaacaaacgctcagaaccagaagtgc"
matrix = [list(a), list(b)]
print(matrix)

[
  ['c', 'c', 't', 'g', 'a', 't', 'a', 'g', 'a', 'c', 'g', 'c', 't', 'a', 't', 'c', 't', 'g', 'g', 'c', 't', 'a', 't', 'c', 'c', 'a', 'g', 'g', 't', 'a', 'c', 't', 't', 'a', 'g', 'g', 't', 'c', 'c', 't', 'c', 't', 'g', 't', 'g', 'c', 'g', 'a', 'a', 't', 'c', 't', 'a', 't', 'g', 'c', 'g', 't', 't', 't', 'c', 'c', 'a', 'a', 'c', 'c', 'a', 't'], 
  ['a', 'g', 't', 'a', 'c', 't', 'g', 'g', 't', 'g', 't', 'a', 'c', 'a', 't', 't', 't', 'g', 'a', 't', 'c', 'c', 'a', 't', 'a', 'c', 'g', 't', 'a', 'c', 'a', 'c', 'c', 'g', 'g', 'c', 'a', 'a', 'c', 'c', 't', 'g', 'a', 'a', 'a', 'c', 'a', 'a', 'a', 'c', 'g', 'c', 't', 'c', 'a', 'g', 'a', 'a', 'c', 'c', 'a', 'g', 'a', 'a', 'g', 't', 'g', 'c']
]

现在,它是否适合您取决于您计划如何使用它,您的数据集将有多大,性能和内存使用限制等等,您的问题中没有提到任何一个…

您可以将其存储为专门用于处理DNA或氨基酸链等生物序列的库中的对象列表。 该库有一些专门为DNA序列设计的优秀方法,如
反向补码()
转录()。生物信息学家的天堂

from Bio.Seq import Seq
my_seq1 = Seq("AGTACACTGGT")
my_seq2 = Seq("GATTAGCTGAT")

list = [my_seq1, my_seq2]

您可以将其存储为专门用于处理DNA或氨基酸链等生物序列的库中的对象列表。 该库有一些专门为DNA序列设计的优秀方法,如
反向补码()
转录()。生物信息学家的天堂

from Bio.Seq import Seq
my_seq1 = Seq("AGTACACTGGT")
my_seq2 = Seq("GATTAGCTGAT")

list = [my_seq1, my_seq2]

可能a的每个字节编码4个氨基酸,假设您要达到的是最大的内存效率。可能a的每个字节编码4个氨基酸,假设您要达到的是最大的内存效率。@DrorPaz字符串是不可变的,所以任何编辑都是低效的。@MeowGoestedog-您说得对。评论被删除,bruno desthuilliers投了赞成票。@DrorPaz说他们在纯存储方面仍然更高效,所以这取决于OP的表现requirements@DrorPaz字符串是不可变的,所以任何编辑都是低效的。@meowgoesthedog-你说得对。评论被删除,bruno desthuilliers投了赞成票。@DrorPaz说他们在纯存储方面仍然更高效,所以这取决于OP的要求