我正在寻找存储单个人类基因组所需的存储量(MB,GB,TB等).我在维基百科上阅读了一些关于DNA,染色体,碱基对,基因的文章,并且有一些粗略的猜测,但在披露任何内容之前,我想看看其他人如何处理这个问题.
另一个问题是人类DNA中有多少原子,但这对于这个网站来说不合适.
我知道这将是一个近似值,所以我正在寻找能够存储任何人类DNA的最小值.
我正在使用NCBI参考序列登录号,如变量a:
a <- c("NM_020506.1","NM_020519.1","NM_001030297.2","NM_010281.2","NM_011419.3", "NM_053155.2")
Run Code Online (Sandbox Code Playgroud)
要获得从biomart包我需要删除的信息.1,.2登录号等设备中后.我通常使用以下代码执行此操作:
b <- sub("..*", "", a)
# [1] "" "" "" "" "" ""
Run Code Online (Sandbox Code Playgroud)
但正如您所看到的,这不是这个变量的正确方法.谁能帮我这个?
我需要根据病毒的DNA序列生成随机游走,给出其2k碱基对的碱基对序列.序列看起来像"ATGCGTCGTAACGT".路径应向右转为A,向左转为T,向上转为G,向下转向C.如何为此目的使用Matlab,Mathematica或SPSS?
题
例如,如果我想计算N字符串列中s 的数量,我如何在每个单元格的Google Spreadsheets中执行此操作(即,一次指向一个单元格的公式,我可以向下拖动)?

背景
我必须确定一个-min-overlap <integer>名为TOMTOM**的程序的阈值,该程序比较小DNA图案****的PWM之间的相似性,N是字母A,C,G和T的任何线性组合的正则表达式.如果我能够了解我的DNA基序的非N长度的分布,以帮助告诉我-min-overlap <integer>TOMTOM 的正确值,那将是很好的.
以下是一些真实的例子:

**TOMTOM是一种用于将DNA基序与已知基序数据库进行比较的工具.有关详细信息,请参见此处
***PWM代表位置权重矩阵:
位置权重矩阵(PWM)或类似PWM的模型广泛用于表示蛋白质的DNA结合偏好(Stormo,2000).在这些模型中,矩阵用于表示TF结合位点(TFBS),每个元素代表对应于来自相应位置的核苷酸的总结合亲和力的贡献.传统PWM模型的固有假设是位置独立性; 也就是说,假定TFBS内不同核苷酸位置对总结合亲和力的贡献是相加的.尽管这种近似是广泛有效的,但它并不适用于几种蛋白质(Man&Stormo,2001; Bulyk等,2002).为了改进定量建模,PWM模型已经扩展到包括其他参数,例如k-mer特征,以解释TFBS内的位置依赖性(Zhao等,2012; Mathelier&Wasserman,2013; Mordelet等,2013; Weirauch等. al,2013; Riley等,2015).核苷酸位置之间的相互依赖性具有结构起源.例如,相邻碱基对之间的堆叠相互作用形成局部三维DNA结构.TF对序列依赖性DNA构象具有偏好,我们将其称为DNA形状读数(Rohs等,2009,2010).
或者,更现代的:
基于这一基本原理,增强传统PWM模型的另一种方法是包含DNA结构特征.结合这些DNA形状特征的TF-DNA结合特异性模型实现了与包含高阶k聚体特征的模型相当的性能水平,同时需要更少数量的参数(Zhou等,2015).我们之前揭示了DNA形状读数对于基本螺旋 - 环 - 螺旋(bHLH)和同源域TF家族成员的重要性(Dror等,2014; Yang等,2014; Zhou等,2015).对于Hox TFs,我们还能够识别TFBS中哪些区域使用DNA形状读数,证明该方法的力量可以揭示对TF-DNA识别的机制见解(Abe等,2015).由于缺乏大规模的高质量TF-DNA结合数据,仅在两个蛋白质家族中广泛显示了这种能力.随着最近丰富的蛋白质-DNA结合的高通量测量,现在可以剖析DNA形状读数对许多TF家族的作用.
****DNA基序:wiki:在遗传学中,序列基序是一种广泛存在的核苷酸或氨基酸序列模式,具有或被推测具有生物学意义.对于蛋白质,序列基序与结构基序不同,结构基序是由氨基酸的三维排列形成的基序,其可能不相邻.
作为一名学生,我在生物研究所担任支持人员,Perl似乎随处可见.不是每个项目都有,但似乎超过一半的人在他们的办公室/桌面上都有一些Perl书.
为什么Perl在生物学中使用了这么多?
我不是一个专业的程序员(我的领域是医学研究),但我在C/C++和各种脚本语言方面都很有能力.不久前我被Lisp吸引了,但我没有时间认真学习它.在短暂接触R后,我决定在函数式编程语言上投入更多时间.
我想要JVM语言的实用性,从而缩小到Clojure和Scala.根据我的理解,两者都可以使用现有的Java库,并且在性能关键代码中给出的代理可以委托给Java,具有相对同样良好的性能.
这些语言在我需要的应用程序空间中如何比较?生物信息学中是否有任何实际项目使用?
已经存在的代码将是一个严重的优点,因为良好的文档和相当温和的学习曲线.另外,两者的并发模型如何相互比较?
任何人有任何显着的优点/缺点?
我有一个大型的data.frame字符数据,我想根据其他语言中通常称为字典的内容进行转换.
目前我正在这样做:
foo <- data.frame(snp1 = c("AA", "AG", "AA", "AA"), snp2 = c("AA", "AT", "AG", "AA"), snp3 = c(NA, "GG", "GG", "GC"), stringsAsFactors=FALSE)
foo <- replace(foo, foo == "AA", "0101")
foo <- replace(foo, foo == "AC", "0102")
foo <- replace(foo, foo == "AG", "0103")
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是replace每次我想要替换data.frame中的一个项目时,重复该语句显然不是很漂亮并且看起来很愚蠢.
有没有更好的方法来实现这一点,因为我有一个大约25个键/值对的字典?
在我丰富的空闲时间里,我与许多科学家(主要是生物学家)合作,他们开发软件,数据库和其他与他们工作相关的工具.
通常这些项目是一次性构建的,在内部使用,最终有人决定"哦,这可能对其他人有用",所以他们发布二进制文件或将一个PHP接口打到它上面并将其推到网页.但是,他们通常不会为其他开发人员提供他们的源代码或数据库转储而烦恼,因此在实践中,这些项目通常在编写代码的项目即将结束或失去资金时死亡.几个月(或几年)之后,其他一些实验室需要使用相同类型的工具,他们必须重复第一个实验室所做的工作,该项目最终会死亡,起泡,冲洗,重复.
有没有人对如何说服主要工作不是编程的人有任何建议,这对他们的社区有益,因为他们对他们建立的工具更加开放?
同样,关于如何传达版本控制,错误跟踪,重构,自动化测试,持续集成以及我们专业开发人员认为理所当然的其他常见做法这一想法的任何建议都是值得花时间的好主意吗?
不幸的是,许多科学家似乎认为编程是一种枯燥乏味的工作必需品,他们的研究更重要,没有意识到现在,软件开发是科学研究的一部分,如果社区是整体提高了发展标准的标准,每个人都会受益.
你曾经遇到过这种情况吗?什么对你有用?
我试图将BioPython序列传递给Ilya Stepanov在iPython笔记本环境中实现Ukkonen的后缀树算法.我在argparse组件上遇到了绊脚石.
我之前从未直接与argparse打过交道.如何在不重写main()的情况下使用它?
通过这个,这个Ukkonen算法的写法非常棒.
我正在尝试编写一个脚本来计算所有可能的模糊字符串匹配匹配到一个短字符串,或'kmer',并且在Python 2.7.X中工作的相同代码给了我一个非确定性的答案与Python 3.3 .X,我无法弄清楚为什么.
我在我的代码中遍历字典,itertools.product和itertools.combinations,但我迭代完所有这些完成而没有中断或继续.另外,我将所有结果存储在一个单独的字典中,而不是我正在迭代的字典中.简而言之 - 我没有犯任何明显的错误,为什么Python2和Python3之间的行为有所不同?
示例,稍微简化的代码如下:
import itertools
def find_best_fuzzy_kmer( kmers ):
for kmer, value in kmers.items():
for similar_kmer in permute_string( kmer, m ):
# Tabulate Kmer
def permute_string( query, m ):
query_list = list(query)
output = set() # hold output
for i in range(m+1):
# pre-calculate the possible combinations of new bases
base_combinations = list(itertools.product('AGCT', repeat=i))
# for each combination `idx` in idxs, replace str[idx]
for positions in itertools.combinations(range(len(query_list)), i):
for bases in base_combinations:
# Generate Permutations …Run Code Online (Sandbox Code Playgroud) bioinformatics ×10
dna-sequence ×2
python ×2
r ×2
string ×2
biomart ×1
biometrics ×1
biopython ×1
character ×1
clojure ×1
count ×1
dataframe ×1
genetics ×1
ipython ×1
matlab ×1
open-source ×1
perl ×1
python-3.x ×1
regex ×1
scala ×1
storage ×1
suffix-tree ×1