我试图代表一个简化的染色体,它由N个碱基组成,每个碱基只能是一个{A, C, T, G}.
我想用枚举来形式化约束,但我想知道在Go中模仿枚举的最惯用方法是什么.
我正在寻找存储单个人类基因组所需的存储量(MB,GB,TB等).我在维基百科上阅读了一些关于DNA,染色体,碱基对,基因的文章,并且有一些粗略的猜测,但在披露任何内容之前,我想看看其他人如何处理这个问题.
另一个问题是人类DNA中有多少原子,但这对于这个网站来说不合适.
我知道这将是一个近似值,所以我正在寻找能够存储任何人类DNA的最小值.
我想生成一个图,描绘我工作的有机体的14个线性染色体,用于在每条染色体上的特定位置用彩色条进行扩展.理想情况下,我想使用R,因为这是我遇到的唯一编程语言.
我已经探索了各种方法,例如使用GenomeGraphs,但我发现这比我想要的更复杂/显示比我所拥有的更多的数据(例如显示细胞质带)并且通常特异于人类染色体.
我基本上想要的是14个以下尺寸的灰色条:
chromosome size
1 640851
2 947102
3 1067971
4 1200490
5 1343557
6 1418242
7 1445207
8 1472805
9 1541735
10 1687656
11 2038340
12 2271494
13 2925236
14 3291936
Run Code Online (Sandbox Code Playgroud)
然后用彩色标记描绘沿染色体长度散布的约150个位置.例如这些位置的标记:
Chromosome Position
3 817702
12 1556936
13 1131566
Run Code Online (Sandbox Code Playgroud)
理想情况下,我还希望能够根据基因座指定几种不同的颜色,例如
Chromosome Position Type
3 817702 A
12 1556936 A
13 1131566 A
5 1041685 B
11 488717 B
14 1776463 B
Run Code Online (Sandbox Code Playgroud)
例如,"A"标记为蓝色,"B"标记为绿色.
在该图像中粘贴了与我想要产生的非常相似的图(来自Bopp等人,PlOS Genetics 2013; 9(2):e1003293):
任何人都可以推荐一种方法吗?它不一定必须是生物信息学包,如果有另一种方法我可以使用R生成14条特定比例尺寸的条,在条形图上的指定位置有标记.例如,我一直在考虑从ggplot2修改一个简单的条形图,但我不知道如何在特定位置沿着条形图标记.
不幸的是,我自己没有找到解决方案.如何使用例如matplotlib/pandas在python中创建Manhattan图.问题是在这些图中,x轴是离散的.
from pandas import DataFrame
from scipy.stats import uniform
from scipy.stats import randint
import numpy as np
# some sample data
df = DataFrame({'gene' : ['gene-%i' % i for i in np.arange(1000)],
'pvalue' : uniform.rvs(size=1000),
'chromosome' : ['ch-%i' % i for i in randint.rvs(0,12,size=1000)]})
# -log_10(pvalue)
df['minuslog10pvalue'] = -np.log10(df.pvalue)
df = df.sort_values('chromosome')
# How to plot gene vs. -log10(pvalue) and colour it by chromosome?
Run Code Online (Sandbox Code Playgroud) 假设我有一个DNA序列.我想得到它的补充.我使用了以下代码,但我没有得到它.我究竟做错了什么 ?
s=readline()
ATCTCGGCGCGCATCGCGTACGCTACTAGC
p=unlist(strsplit(s,""))
h=rep("N",nchar(s))
unlist(lapply(p,function(d){
for b in (1:nchar(s)) {
if (p[b]=="A") h[b]="T"
if (p[b]=="T") h[b]="A"
if (p[b]=="G") h[b]="C"
if (p[b]=="C") h[b]="G"
}
Run Code Online (Sandbox Code Playgroud) 我在这里发布了一个问题:R中的匹配范围合并关于根据落入第二个文件中的范围的一个文件中的数字合并两个文件.到目前为止,我没有成功拼凑代码来实现这一目标.我遇到的问题是我正在使用的代码逐行比较文件.这是一个问题,因为1.)一个文件比另一个文件长得多,并且2.)我需要较短文件中的行扫描较长文件中的每个范围对 - 而不仅仅是同一行中的范围.
我一直在使用原始问题中发布的函数,我觉得应该有一种方法将它应用到一个更通用的循环,将第一个文件中的每一行与第二个文件中的每一行进行比较,但我没有'我想通了.如果有人有任何建议,我将不胜感激.
****已编辑.
数据的性质是这样的:每个范围不一定是唯一的,尽管大多数是.它们的大小也不相同,有些完全属于其他类型.findInterval因此产生错误,因为范围不能排序以便以"非降序"顺序排列.
以下是每个数据框的前6行:
file1test <- data.frame(SNP=c("rs2343", "rs211", "rs754", "rs854", "rs343", "rs626"), BP=c(860269, 369640, 861822, 367934, 706940, 717244))
file2 <- data.frame(Gene=c("E613", "E92", "E49", "E3543", "E11", "E233"), BP_start=c(367640, 621059, 721320, 860260, 861322, 879584), BP_end = c(368634, 622053, 722513, 879955, 879533, 894689))
Run Code Online (Sandbox Code Playgroud)
因此,正如您所看到的,第5行的范围位于第4行的范围内,第一行的两个SNP落在第4行的范围内,但只有一个属于第二行的范围.
第一个包含SNP的文件只有大约400行.但是,包含范围的第二个文件大约有20K.我想要作为输出产生的是一个数据框,其中包含来自第一个文件(SNP)的行,其中BP属于第二个文件中的BP范围.如果SNP落入两个范围,那么它将出现两次,等等.
我想生成2个连续随机变量Q1,Q2(数量性状,各自是正常的)和2个二进制随机变量Z1,Z2(二进制性状)与所有可能的对它们的之间给出成对的相关性.说
(Q1,Q2):0.23
(Q1,Z1):0.55
(Q1,Z2):0.45
(Q2,Z1):0.4
(Q2,Z2):0.5
(Z1,Z2):0.47
Run Code Online (Sandbox Code Playgroud)
请帮我在R中生成这样的数据
我下载了1000个基因组数据(染色体1 -22),它是VCF格式的。如何将所有染色体合并到一个文件中?我应该首先将所有染色体转换为 plink 二进制文件,然后再执行吗--bmerge mmerge-list?或者还有其他方法可以将它们结合起来吗?请问有什么建议吗?
genetics ×10
r ×5
plot ×2
bioconductor ×1
complement ×1
dna-sequence ×1
enums ×1
genome ×1
go ×1
loops ×1
matplotlib ×1
merge ×1
pandas ×1
python ×1
replace ×1
simulation ×1
statistics ×1
storage ×1