파일 작업이 같은 텍스트를 변형 된 것이다, AWK 코드를 만들 싶습니다AWK는 재치 VCF (텍스트)
- 탭
- "## 텍스트로 시작하는 모든 열을 삭제 모든 열을 구분 는 #header "나는이 코드를
을하지만 좋지 않다"시작
#!/bin/bash
for i
in *.vcf;
do
awk 'BEGIN {print "CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILT\tINFO\tFORMAT"}' |
awk '{$1 "\t" $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t" $7 "\t" $8 "\t" $9}' $i |
awk '!/#/' > ${i%.vcf}.tsv;
done
INPUT :
> ##fileformat=VCFv4.1
> ##FORMAT=<ID=GQX,Number=1,Type=Integer,Description="Minimum of {Genotype quality assuming variant position,Genotype quality assuming
> non-variant position}">
> #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT 1 chr1 10385471 rs17401966 A G 100.00 PASS DP=67;TI=NM_015074;GI=KIF1B;FC=Silent GT:GQ:AD:VF:NL:SB:GQX 0/1:100:29,38:0.5672:20:-100.0000:100
> chr1 17380497 rs2746462 G T 100.00 PASS DP=107;TI=NM_003000;GI=SDHB;FC=Synonymous_A6A;EXON GT:GQ:AD:VF:NL:SB:GQX 1/1:100:0,107:1.0000:20:-100.0000:100
> chr1 222045446 rs6691170 G T 100.00 PASS DP=99 GT:GQ:AD:VF:NL:SB:GQX 0/1:100:49,50:0.5051:20:-100.0000:100
출력 :
이for f in *.vcf; do
awk '
BEGIN {OFS = "\t"}
/^##/ {next}
/^#/ {sub(/^#/,"",$1)}
{$1=$1; print}
' "$f" > "${f/%vcf/tsv}"
done
이 프로그램은 어떤 기록을 건너 뜁니다 : 나는
> CHROM POS ID REF ALT QUAL FILTER INFO etc...
> hr1 10385471 rs17401966 A
> G 100.00 PASS DP=67;TI=NM_015074;GI=KIF1B;
샘플 입력과 원하는 출력을 게시 할 수 있습니까? – fedorqui
내가 원하는 출력이 실제로 원하는 출력이라고 생각하지 않습니다. –