macでインフォマティクス

macでインフォマティクス

NGS関連のインフォマティクス情報についてまとめています。

BEDOPSを使いVCF, GTF, GFF などを BED に変換 する。

 

BEDヘの変換はawkperlpythonスクリプトで簡単にできるが、BEDOPSのvcf2nedを使うと、indelの種類などによってフィルタリングしながら分類することができ便利である。

 

BEDOPSがない人はbrewで入れておく。

brew install BEDOPS

 

公式マニュアル

http://bedops.readthedocs.io/en/latest/content/reference/file-management/conversion/vcf2bed.html

 

ラン

vcfからbedに変換する。

vcf2bed < gatk.vcf > gatk.bed
  • --do-not-sort (-d)  Do not sort BED output with sort-bed
  • --snvs (-v) Report only single nucleotide variants
  • --insertions (-t) Report only insertion variants
  • --deletions (-n) Report only deletion variants
  • --keep-header (-k) Preserve header section as pseudo-BED elements

snpsのみbedに変換する。

vcf2bed --snvs < gatk.vcf > gatk_snps.bed

 

塩基置換、挿入、欠損の数を数える。

vcf2bed --snvs < gatk.vcf|wc -l       #SNV
vcf2bed --insertions < gatk.vcf|wc -l  #Insertion
vcf2bed --deletions < gatk.vcf|wc -l  #Deletion

  

vcf2bedはBAM、GFF、GTF、GVF、PSL、RepeatMasker (OUT)、SAM、VCF、WIGなど多様なフォーマットをBEDに変換することができる。

GFF(GFF3)をbedに変換する。

convert2bed --input=gff < input.gff3 > output.bed

 

 またはawkを使う。以下のようにして6列フォーマットのBEDに変換できる。

cat input.gtf | awk '{OFS = "\t"} {print $1,$4,$5,$3,$6,$7}' > output.bed

 awkはデフォルトスペース区切り出力だが、bedtoolsはタブを区切りとして認識するので、タブ区切りを指定。

 

 

追記

BEDからGTF (cent OSで動作確認)

awk '{print $1"\t"$7"\t"$8"\t"($2+1)"\t"$3"\t"$5"\t"$6"\t"$9"\t"(substr($0, index($0,$10)))}' input.bed > output.gtf

 

 

 

BEDを使って何かするにはbedtoolsを使います。


 

 

引用

BEDOPS: high-performance genomic feature operations
Neph S1, Kuehn MS, Reynolds AP, Haugen E, Thurman RE, Johnson AK, Rynes E, Maurano MT, Vierstra J, Thomas S, Sandstrom R, Humbert R, Stamatoyannopoulos JA.

Bioinformatics. 2012 Jul 15;28(14):1919-20 

 

How To Convert Bed Format To Gtf?