我正在尝试在R中使用LDheatmap库。所需的基因型矩阵必须采用A / T T / C G / G等格式...作为数据帧导入。
从.ped plink文件开始,我使用SED进行文本转换。
我需要用/
(正斜杠)替换每隔一个空格。这可能对某人有用。
自:
loc1 loc2 loc3 loc4 loc5
ind-1 A A T C T C A G G C
ind-2 A A T G T C A C G C
ind-3 A A C T T C A C G C
ind-4 C A T T T G A C G C
ind-5 A A C T T C A C G C
ind-6 A T C G T C A C G C
要:
loc1 loc2 loc3 loc4 loc5
ind-1 A/A T/C T/C A/G G/C
ind-2 A/A T/G T/C A/C G/C
ind-3 A/A C/T T/C A/C G/C
ind-4 C/A T/T T/G A/C G/C
ind-5 A/A C/T T/C A/C G/C
ind-6 A/T C/G T/C A/C G/C
我用了sed:
sed '2,${s/\(\s.\) \(.\)/\1\/\2/g}' pedfile > newfile
我偶然得到了这个结果,所以我会尝试解码sed线以确保我的解释是正确的:
2,$
:从文件行的开头到结尾,启动{ }
之间的脚本。
s/
:替换。
\(\s.\)
:第一个块,包含一个空格,后跟任何单个字符(核苷酸)。
\(.\)
:第二个块,前面是块外的空格,包含一个单个字符。
\1\/\2
:使用正斜杠/连接块\ 1和块\ 2。需要将正斜杠设置为文本,方法是使用前面的\来退出正则表达式语法。
/g
:将正则表达式代码应用于以下所有行。
问题:我的解释是正确的还是我错过了什么?