我下载了1000个基因组数据(染色体1 -22),它是VCF格式的。如何将所有染色体合并到一个文件中?我应该首先将所有染色体转换为 plink 二进制文件,然后再执行吗--bmerge mmerge-list
?或者还有其他方法可以将它们结合起来吗?请问有什么建议吗?
我正在尝试使用 plink 将 .vcf 文件转换为 .ped 文件。我在网上看了一些手册和帖子,但似乎没有人特别提到如何将vcf转换为ped。
我希望这里可能有一些专家,他们有使用plink将vcf转换为ped的经验。如果您能分享知识,我将不胜感激。此外,如果有另一种方式(非链接)这样做,请分享。
谢谢!
我是 R 初学者。我正在使用 R 来分析我的大型下一代测序 vcf 文件,但遇到了一些困难。我已将非常大的 vcf 文件作为数据框(2446824 个观测值,共 177 个变量)导入,并仅使用我感兴趣的 3 个样本(2446824 个观测值,共 29 个变量)制作了一个子集。
我现在希望进一步减少尺寸(将行数减少到 200000 左右)。我一直在尝试使用 grep,但无法让它工作。我得到的错误是
Error in "0/1" | "1/0" :
operations are possible only for numeric, logical or complex types
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的文件的一个小示例部分。
Chr Start End Ref Alt Func.refGene INFO FORMAT Run.Sample1 Run.Sample2 Run.Sample3
489 1 909221 909221 T C PASS GT:AD:DP:GQ:PL 0/1:11,0:11:33:0,33,381 ./. ./.
490 1 909238 909238 G C PASS GT:AD:DP:GQ:PL 0/1:11,6:17:99:171,0,274 0/1:6,5:11:99:159,0,116 1/1:0,15:15:36:441,36,0
491 1 909242 909242 A G PASS GT:AD:DP:GQ:PL 0/1:16,4:13:45:0,45,532 …
Run Code Online (Sandbox Code Playgroud) 如何将此VCF 数据转换为 pandas 数据框?
注意:复制问题不需要完整文件。只需前 50 行(上面要点链接的第一部分)就可以了。理想情况下,我希望采用以下形式:
到目前为止,我只能获取标题:
import pandas as pd
f = open('clinvar_final.txt',"r")
for line in f.readlines():
if line[:5] == 'CHROM':
vcf_header = line.strip().split('\t')
df = pd.DataFrame
df.header = vcf_header
Run Code Online (Sandbox Code Playgroud) 我有一个 .fam、.bed 和 .bim 文件,其中包含少数个人的标记。我需要将其转换为 VCF 文件。
有人可以帮忙创建一个 VCF 文件吗?有没有开源工具可以做到这一点?
我对我的问题有一个可行的解决方案,但速度很慢。我很好奇推荐的加速方法,并想看看它能达到多快。这是一个示例输入文件
CHROM POS REF ALT Geno value
Chr16 616504 T C X93.968 0|1:7,28:35:99:0|1:616504_T_C:787,0,177:616504
Chr16 616504 T C BESC.1 0/0:48,0:48:99:.:.:0,114,1710:.
Chr16 616504 T C BESC.10 1|1:0,23:23:72:1|1:616504_T_C:1059,72,0:616504
Chr16 616504 T C BESC.100 0/0:34,0:34:96:.:.:0,96,1440:.
Chr16 616504 T C BESC.1001 0/0:47,0:47:99:.:.:0,120,1800:.
Chr16 616504 T C BESC.1002 0/0:39,0:39:99:.:.:0,108,948:.
Run Code Online (Sandbox Code Playgroud)
目标是从value
列中取出第一个和第三个字符并对它们求和,然后输出一个类似的文件,其中值列替换为该总和。前两行的示例输出:
CHROM POS REF ALT Geno value
Chr16 616504 T C X93.968 1
Chr16 616504 T C BESC.1 0
Run Code Online (Sandbox Code Playgroud)
这是我当前的解决方案,其中 STDIN 1 是输入文件名,STDIN 2 是输出文件名:
#!/bin/bash
i=0
len=$(cat $1 | wc -l)
touch $2
while …
Run Code Online (Sandbox Code Playgroud)