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