【发布时间】:2021-01-20 03:14:48
【问题描述】:
我正在努力弄清楚如何转换如下所示的 (SNP) 文件:
pos,sample1,sample2,sample3,sample4,sample5,sample6,sample7,sample8,sample9,sample10,sample11,sample12,sample13,sample14
79107,C,C,C,C,C,C,C,C,C,C,C,C,G,G
79115,C,C,C,C,C,C,C,A,C,C,T,C,C,C
79116,A,A,A,A,A,A,A,A,A,A,A,A,A,A
79124,C,C,T,T,C,C,C,C,C,C,C,C,C,C
79128,G,G,G,G,A,G,G,G,G,C,G,G,G,G
转成这样的二进制格式:
pos,sample1,sample2,sample3,sample4,sample5,sample6,sample7,sample8,sample9,sample10,sample11,sample12,sample13,sample14
79107,0,0,0,0,0,0,0,0,0,0,0,0,1,1
79115,0,0,0,0,0,0,0,1,0,0,1,0,0,0
79116,0,0,0,0,0,0,0,0,0,0,0,0,0,0
79124,0,0,1,1,0,0,0,0,0,0,0,0,0,0
79128,0,0,0,0,1,0,0,0,0,1,0,0,0,0
有谁知道 R 中的一个包,或者命令行工具,awk 代码,可以用来做这个吗?
以下解决方案的一个问题是都这样做:
1097023,A,A,G,G,G,G,G,G,G,G,G,G,A,A
1097027,C,C,C,C,C,C,C,C,C,C,C,C,C,C
4363243,C,A,A,A,A,A,A,A,A,A,A,A,A,A
4363270,T,T,T,T,T,T,T,T,T,T,T,T,T,T
4363275,A,G,G,G,G,G,G,G,G,G,G,G,G,G
1097023,0,0,1,1,1,1,1,1,1,1,1,1,0,0
1097027,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4363243,0,1,1,1,1,1,1,1,1,1,1,1,1,1
4363270,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4363275,0,1,1,1,1,1,1,1,1,1,1,1,1,1
虽然应该是:
1097023,1,1,0,0,0,0,0,0,0,0,0,0,1,1
1097027,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4363243,1,0,0,0,0,0,0,0,0,0,0,0,0,0
4363270,0,0,0,0,0,0,0,0,0,0,0,0,0,0
4363275,1,0,0,0,0,0,0,0,0,0,0,0,0,0
所以我认为解决方案应该包括如果大多数样本'即> 7个样本是一样的,这个变成0,不符合多数的变成1。
【问题讨论】:
-
这里的逻辑是什么?
C在倒数第二行变成0,在最后一行变成1。我们需要有关您想要的目标格式的更多信息。 -
DNA 由 A、C、T 或 G 组成,因此您可以有 4 个选项。通常,您会在每个样本中看到相同的结果,因此所有 A、所有 C、所有 T 或所有 G。但是,如果您有“突变 = 从例如 C 到 G 的转换”,这称为 SNP。对于下游分析,我需要一个二进制格式,其中所有内容都为 0,除了一个或多个样本与给定位置的其余样本不匹配的地方(第一列“pos”)。
-
我们所要做的就是您在问题中提供的信息。发布答案时,您的问题中没有任何内容可以表明您现在添加了
I think the solution should include that if the majority of samples 'i.e. > 7 samples' is the same, this becomes a 0, the ones that don't match the majority become 1.。您可能希望将这个问题恢复原状,接受对您提出的问题的回答,然后根据您的新要求和更具代表性的示例提出后续问题。
标签: python r awk bioinformatics