VCF فائل کیسے پڑھیں؟ Variant Call Format کا عملی رہنما

Read in English: How to Read a VCF File: A Practical Guide to Variant Call Format

دائرہ کار: تعلیمی اور تحقیقی استعمال۔ VCF فائل صرف یہ بتاتی ہے کہ pipeline نے کیا call کیا؛ یہ خود اس بات کا ثبوت نہیں کہ ویریئنٹ حقیقی، بیماری پیدا کرنے والا یا clinically اہم ہے۔
آخری جائزہ: 2 نومبر 2026

FASTQ کوالٹی کنٹرول اور reference genome پر alignment کے بعد زیادہ تر sequencing منصوبوں کا نتیجہ ایک VCF (Variant Call Format) فائل کی صورت میں نکلتا ہے۔ یہی فائل annotation tools میں جاتی ہے، variant browsers میں کھولی جاتی ہے، ساتھی محققین کو بھیجی جاتی ہے اور آخرکار review میٹنگ میں زیرِ بحث آتی ہے۔ لیکن پہلی بار VCF کھولنے والے کو اکثر ## سے شروع ہونے والی لائنوں، semicolons اور colon سے جُڑے اعداد کی ایک دیوار نظر آتی ہے۔

اس رہنما میں ہم دیکھیں گے کہ VCF کا ہر حصہ کیا معنی رکھتا ہے، genotype کیسے پڑھا جاتا ہے، کون سی غلطیاں سب سے زیادہ الجھن پیدا کرتی ہیں، اور فائل کی جانچ کے لیے bcftools کی چند مختصر اور قابلِ تکرار commands کیا ہیں۔ یہ مضمون GA4GH/samtools کے hts-specs منصوبے کی سرکاری VCF specification پر مبنی ہے، جس کا موجودہ canonical ورژن VCFv4.5 ہے۔

فہرست
  1. VCF فائل کے تین حصے
  2. آٹھ مقررہ کالم
  3. Genotype کالم کیسے پڑھیں
  4. خاص alleles جو آپ کو ملیں گے
  5. پانچ عام غلطیاں
  6. bcftools سے مختصر اور قابلِ تکرار جانچ
  7. VCF کیا نہیں بتا سکتی
  8. عملی چیک لسٹ

VCF فائل کے تین حصے

VCF ایک tab-separated text فائل ہے، جو عموماً bgzip سے compress کی جاتی ہے (.vcf.gz) اور index کی جاتی ہے تاکہ tools کسی بھی region تک براہِ راست پہنچ سکیں۔ اس کے تین حصے ہوتے ہیں:

  1. Meta-information لائنیں جو ## سے شروع ہوتی ہیں۔ ان میں فارمیٹ کا ورژن، reference، contigs، اور فائل میں استعمال ہونے والی ہر INFO، FORMAT اور FILTER فیلڈ کی تعریف درج ہوتی ہے۔
  2. ایک header لائن جو ایک # سے شروع ہوتی ہے اور کالموں کے نام دیتی ہے: #CHROM POS ID REF ALT QUAL FILTER INFO، اور اگر genotypes موجود ہوں تو اس کے بعد FORMAT اور ہر sample کا ایک کالم۔
  3. Data لائنیں، ہر variant site کے لیے ایک۔

یہ ایک چھوٹی، فرضی مثال ہے:

##fileformat=VCFv4.5
##reference=GRCh38
##contig=<ID=chr1,length=248956422>
##INFO=<ID=DP,Number=1,Type=Integer,Description="Total read depth">
##FILTER=<ID=LowQual,Description="Low variant quality">
##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
##FORMAT=<ID=AD,Number=R,Type=Integer,Description="Allelic depths">
##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Sample read depth">
##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype quality">
#CHROM  POS      ID  REF  ALT  QUAL   FILTER   INFO   FORMAT       SAMPLE1
chr1    1234567  .   A    G    812.4  PASS     DP=58  GT:AD:DP:GQ  0/1:30,28:58:99
chr1    1234890  .   CTT  C    45.1   LowQual  DP=9   GT:AD:DP:GQ  0/1:6,3:9:38

## والے header کو سجاوٹ نہیں بلکہ ڈیٹا کا حصہ سمجھیں۔ یہی بتاتا ہے کہ coordinates کس reference build کے ہیں اور فائل لکھنے والے tool نے ہر فیلڈ کی تعریف کس طرح کی ہے۔

آٹھ مقررہ کالم

  • CHROM اور POS: contig اور مقام۔ POS 1-based ہے، یعنی کروموسوم کا پہلا base مقام 1 پر ہے۔ (اس کے برعکس BED فائلیں 0-based ہوتی ہیں، جو off-by-one غلطیوں کا پرانا ذریعہ ہے۔) Coordinates کا مطلب صرف reference build کے ساتھ بنتا ہے، اس لیے GRCh38 کا chr1 اور GRCh37 کا 1 ایک دوسرے کی جگہ استعمال نہیں ہو سکتے۔
  • ID: کوئی شناخت، جیسے dbSNP کا rs نمبر؛ اگر نہ ہو تو .۔
  • REF اور ALT: reference allele اور ایک یا زیادہ alternate alleles، جو commas سے الگ ہوتے ہیں۔ Insertions اور deletions میں دونوں alleles میں واقعے سے پہلے والا base بھی شامل ہوتا ہے، جسے padding base کہا جاتا ہے۔ دوسری مثال میں CTT → C کا مطلب ہے کہ مقام 1234890 والے C کے بعد TT کے دو bases حذف ہوئے ہیں۔
  • QUAL: Phred-scaled اعتماد کہ ALT call غلط نہیں، یعنی وہی −10 log10 والا تصور جو FASTQ base quality میں ہے۔ یہ ہر caller کا اپنا ہوتا ہے اور مختلف tools کے درمیان قابلِ موازنہ نہیں۔
  • FILTER: اگر site تمام filters پاس کر لے تو PASS، ورنہ ناکام filters کی semicolon سے جُڑی فہرست (مثلاً LowQual)۔ . کا مطلب ہے کہ filters لگائے ہی نہیں گئے، جو پاس ہونے کے برابر نہیں۔
  • INFO: site کی سطح کی معلومات، KEY=value کی صورت میں اور semicolons سے الگ، جیسے کل depth یا call set میں allele frequency۔

Genotype کالم کیسے پڑھیں

FORMAT کالم ایک کلید ہے جو بتاتی ہے کہ ہر sample کالم کو کیسے تقسیم کرنا ہے۔ GT:AD:DP:GQ اور 0/1:30,28:58:99 کا مطلب ہے:

  • GT = 0/1: REF allele (0) کی ایک کاپی اور پہلے ALT allele (1) کی ایک کاپی، یعنی heterozygous call۔ 1/1 homozygous ALT، 0/0 homozygous REF، اور 1/2 کا مطلب دو مختلف ALT alleles ہے۔
  • AD = 30,28: 30 reads REF کی اور 28 ALT کی تائید کرتی ہیں، یعنی ALT کا تناسب تقریباً 0.48 ہے، جو germline heterozygote کے متوقع 0.5 کے قریب ہے۔
  • DP = 58: اس sample میں اس مقام کو ڈھانپنے والی reads۔
  • GQ = 99: خود genotype پر Phred-scaled اعتماد۔ بہت سے callers اسے 99 پر محدود کر دیتے ہیں۔

علامت اہم ہے: / کا مطلب unphased ہے (ہمیں معلوم نہیں کہ کون سا allele کس والدین کے کروموسوم پر ہے)، جبکہ | کا مطلب phased ہے۔ . گمشدہ allele کی علامت ہے، اس لیے ./. کا مطلب no-call ہے، reference call نہیں۔ Multi-sample VCF میں گمشدہ genotype اور پُراعتماد 0/0 بالکل مختلف باتیں ہیں۔

خاص alleles جو آپ کو ملیں گے

  • * (star allele): اس مقام پر allele اس لیے موجود نہیں کہ اوپر سے آنے والی ایک overlapping deletion نے اسے ختم کر دیا۔ یہ کوئی nucleotide نہیں۔
  • Symbolic alleles جیسے <DEL> یا <DUP> ان structural variants کو ظاہر کرتے ہیں جن کی پوری sequence نہیں لکھی جاتی۔
  • <*> یا <NON_REF>: genome VCF (gVCF) فائلوں میں reference blocks کے اندر “کوئی بھی دوسرا allele” ظاہر کرنے کے لیے، تاکہ فائل یہ بھی درج کرے کہ sample کہاں پُراعتماد طور پر reference تھا۔

پانچ عام غلطیاں

  1. Reference builds کو ملا دینا۔ GRCh37 کا ایک مقام GRCh38 پر کسی اور base کی طرف اشارہ کرتا ہے۔ Merge یا annotate کرنے سے پہلے ##reference اور ##contig لائنیں دیکھیں۔
  2. Normalise کیے بغیر indels کا موازنہ۔ کسی repeat میں ایک ہی deletion کئی مختلف مقامات پر لکھی جا سکتی ہے۔ Call sets کا موازنہ یا databases سے ملان کرنے سے پہلے اسی reference FASTA کے مطابق left-align اور normalise کریں۔
  3. Multi-allelic site کو ایک ہی ویریئنٹ سمجھنا۔ ALT=G,T والی لائن میں دو alternate alleles ہیں۔ بہت سے annotation tools انہیں فی لائن ایک allele میں تقسیم کرنے کے بعد بہتر کام کرتے ہیں۔
  4. FILTER کو نظرانداز کرنا۔ ہر لائن کو ویریئنٹ گننے سے وہ calls بھی شامل ہو جاتی ہیں جنہیں خود pipeline نے مشکوک قرار دیا تھا۔
  5. QUAL کو allele frequency یا pathogenicity سمجھنا۔ QUAL صرف call پر اعتماد ہے؛ یہ نہیں بتاتا کہ ویریئنٹ کتنا عام ہے یا clinically اہم ہے یا نہیں۔

bcftools سے مختصر اور قابلِ تکرار جانچ

اگر bcftools اور htslib نصب ہوں (مثلاً WSL2 والے سیٹ اپ میں)، تو یہ commands ابتدائی جانچ کا بیشتر کام کر دیتی ہیں:

# Validate compression and index the file
bgzip -t sample.vcf.gz
bcftools index -t sample.vcf.gz

# Look at the header: version, reference, contigs and field definitions
bcftools view -h sample.vcf.gz | less -S

# Summary statistics: counts of SNVs, indels, Ts/Tv ratio
bcftools stats sample.vcf.gz > qc/sample.stats.txt

# Keep only PASS sites
bcftools view -f PASS -Oz -o sample.pass.vcf.gz sample.vcf.gz

# Split multi-allelic sites and left-align indels against the same reference
bcftools norm -m -any -f GRCh38.fa -Oz -o sample.norm.vcf.gz sample.pass.vcf.gz

# Export a readable table of selected fields
bcftools query -f '%CHROM\t%POS\t%REF\t%ALT\t%FILTER[\t%GT\t%AD\t%DP]\n' sample.norm.vcf.gz | head

Tools کے ورژن، reference FASTA اور اس کا checksum، اور ہر command نتائج کے ساتھ محفوظ رکھیں۔ bcftools stats سے ملنے والا Ts/Tv ratio انسانی germline SNVs کے لیے ایک مفید sanity اشارہ ہے، لیکن اس کی متوقع قدر اس پر منحصر ہے کہ آپ نے whole genome sequence کیا یا exome، اس لیے کسی ایک مقررہ عدد کے بجائے ملتے جلتے ڈیٹا سے موازنہ کریں۔

VCF کیا نہیں بتا سکتی

VCF دراصل aligned reads پر لگائے گئے ایک ماڈل کا نتیجہ ہے۔ اچھے QUAL والی PASS لائن ایک مضبوط call ہے، ثبوت نہیں۔ Low-complexity علاقے، segmental duplications، sample contamination اور reference کی غلطیاں سب پُراعتماد نظر آنے والی غلط calls پیدا کر سکتی ہیں۔ کسی ویریئنٹ کو clinical رپورٹ میں شامل کرنے سے پہلے لیبارٹریاں validated pipelines استعمال کرتی ہیں، read alignments کا معائنہ کرتی ہیں، بعض اوقات Sanger sequencing جیسے کسی دوسرے طریقے سے تصدیق کرتی ہیں، اور ACMG/AMP guidelines جیسے فریم ورک کے تحت تشریح کرتی ہیں۔ AlphaGenome جیسے tools کے computational scores اضافی شواہد دیتے ہیں، مگر اس عمل کا متبادل نہیں۔

عملی چیک لسٹ

  • Header میں VCF ورژن، reference build اور contig names کی تصدیق کریں۔
  • دیکھیں کہ فائل bgzip سے compressed اور indexed ہے۔
  • اپنے caller کی لکھی ہوئی INFO، FORMAT اور FILTER تعریفیں پڑھیں۔
  • واضح طور پر طے کریں کہ non-PASS sites اور no-calls کے ساتھ کیا کرنا ہے۔
  • موازنہ یا annotation سے پہلے multi-allelic sites تقسیم کریں اور indels normalise کریں۔
  • صرف GT نہیں، allele depth اور allele fraction بھی دیکھیں۔
  • اصل VCF کو تبدیل نہ کریں اور ہر تبدیلی کو دستاویزی شکل دیں۔

تحقیقی و تعلیمی وضاحت: یہ مضمون ایک فائل فارمیٹ کی وضاحت ہے، طبی مشورہ نہیں۔ صرف VCF کی بنیاد پر تشخیص، علاج یا genetic counselling سے متعلق فیصلے نہ کریں۔

نمایاں تصویر: single nucleotide polymorphism، یعنی DNA کے دو مالیکیول جن میں صرف ایک base pair کا فرق ہے۔ “Dna-SNP.svg” از David Eccles (gringer)، Wikimedia Commons، CC BY 4.0؛ PNG میں تبدیل شدہ۔

حوالہ جات

Don’t miss out on Science!

We don’t spam! Read our privacy policy for more info.

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top