Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 细胞间间隙_String_Bash_Text_Awk_Gaps In Data - Fatal编程技术网

String 细胞间间隙

String 细胞间间隙,string,bash,text,awk,gaps-in-data,String,Bash,Text,Awk,Gaps In Data,我有个问题,你能帮我吗? 我有一个.txt文件,我使用awk代码使用制表符分隔函数分隔列。 我收到了align列,但如果缺少一些信息,整行将向左移动,信息将转移到另一列。你能帮我吗?我怎么能 加入到这个代码中?非常感谢你 #!/bin/bash for f in *.vcf; do awk 'BEGIN {OFS = "\t"} /^##/ {next} /^#/ {sub(/^#/,"",$1)} {$1=$1; print} '

我有个问题,你能帮我吗? 我有一个.txt文件,我使用awk代码使用制表符分隔函数分隔列。 我收到了align列,但如果缺少一些信息,整行将向左移动,信息将转移到另一列。你能帮我吗?我怎么能 加入到这个代码中?非常感谢你

#!/bin/bash

for f 
in *.vcf; 
do awk 'BEGIN {OFS = "\t"}
        /^##/ {next}
        /^#/ {sub(/^#/,"",$1)}
        {$1=$1; print}
    ' "$f" > "${f/%vcf/tsv}"
done


> INPUT:
> 
> CHROM    ID    REF   ALT 
  chr1    235     A     B 
  chr2     A      B
  chr3    225     B
输出:


这个问题有歧义。看看数据:

chr1    235     A     B 
chr2     A      B
chr3    225     B
也许在
chr2
行中,我们可以猜测
ID
列缺失,因为
ID
s是数字。我们缺少一列,它是数字列,因此它必须是
ID

但是在第三行中,我们如何知道
REF
列缺失,而不是
ALT

如果
ALT
从未丢失,那么它很简单。但如果其中任何一个都可能失踪,那就不可能了

在任何情况下,在编写程序代码将数据重新规范化为适当的列之前,您必须能够清楚地说明识别缺少哪些列的规则,否则就必须认识到这是不可能的,并放弃


您可能只需要向上游查找相同数据的更好来源,而这些数据不包含munged列。

列是如何对齐的?您可以发布示例数据吗?您可以检查字段数(NF)是否等于预期值,否则跳过该行。顺便说一句,脚本来自是不是我的脚本,glen先生是作者,但这是否有问题?如果是这样的话,我很抱歉。这些列仅由制表符分隔,ALT从不丢失
chr1    235     A     B 
chr2     A      B
chr3    225     B