Практические рекомендации по работе с данными древней ДНК — часть 2

В предыдущем посте я разместил  первую часть примерных рекомендации по работе с данными древней ДНК с практическим примером.  После выполнения всех описанных в туториале операций, в конечном результате мы получили файл в формате Plink.

Как и было обещано ранее, сегодня мы покажем как соединять данные древней ДНК с изоморфными данными современных популяций. Поскольку основная часть работы будет вестись в программе Plink,  для понимания нижеизложенного материала необходимо понимать основные команды этой  программы.

Подготовительные операции.

Для начала объединим полученные в предыдущей части ped-файлы в  общий набор данных. Задача выполняется тривиальной командой —bmerge —make-recode.

Затем добавляем в набор данных подготовленные ранее файлы, содержащие в себе данные о снип-вариантах, обнаруженных в аутосомных хромосомах «тирольского человек Этци». Мимоходом отмечу, что оные данные были извлечены из генома Этци благодаря использованию несколько иной программы (GATK) и методологии, поэтому я не использовал их в предыдущей части туториала.

 

----------------------------------------------------------@
| PLINK! | v1.07 | 10/Aug/2009 |
|----------------------------------------------------------|
| (C) 2009 Shaun Purcell, GNU General Public License, v2 |
|----------------------------------------------------------|
| For documentation, citation & bug-report instructions: |
| http://pngu.mgh.harvard.edu/purcell/plink/ |
@----------------------------------------------------------@
Skipping web check... [ --noweb ] 
Writing this text to log file [ lastreference.log ]
Analysis started: Wed Apr 10 16:37:28 2013
Options in effect:
 --noweb
 --bfile lastreference
 --bmerge Otzi2.bed Otzi2.bim Otzi2.fam
 --make-bed
 --out lastreference
Reading map (extended format) from [ lastreference.bim ] 
424693 markers to be included from [ lastreference.bim ]
Reading pedigree information from [ lastreference.fam ] 
2618 individuals read from [ lastreference.fam ] 
0 individuals with nonmissing phenotypes
Assuming a disease phenotype (1=unaff, 2=aff, 0=miss)
Missing phenotype value is also -9
0 cases, 0 controls and 2618 missing
1388 males, 759 females, and 471 of unspecified sex
Warning, found 471 individuals with ambiguous sex codes
Writing list of these individuals to [ lastreference.nosex ]
Reading genotype bitfile from [ lastreference.bed ] 
Detected that binary PED file is v1.00 SNP-major mode
Using merge mode 1 : consensus call (default)
138056 markers to be merged from [ Otzi2.bim ]
Of these, 0 are new, 138056 already exist in current data
1 individuals merged from [ Otzi2.fam ] 
Of these, 1 were new, 0 were already in current data
Detected that binary PED file is v1.00 SNP-major mode
0 individuals with nonmissing phenotypes
Assuming a disease phenotype (1=unaff, 2=aff, 0=miss)
Missing phenotype value is also -9
0 cases and 0 controls
Before frequency and genotyping pruning, there are 424693 SNPs
2619 founders and 0 non-founders found
197 SNPs with no founder genotypes observed
Warning, MAF set to 0 for these SNPs (see --nonfounders)
Writing list of these SNPs to [ lastreference.nof ]
Total genotyping rate in remaining individuals is 0.587873
0 SNPs failed missingness test ( GENO > 1 )
0 SNPs failed frequency test ( MAF < 0 )
After frequency and genotyping pruning, there are 424693 SNPs
After filtering, 0 cases, 0 controls and 2619 missing
After filtering, 1388 males, 759 females, and 472 of unspecified sex
Writing pedigree information to [ lastreference.fam ] 
Writing map (extended format) information to [ lastreference.bim ] 
Writing genotype bitfile to [ lastreference.bed ] 
Using (default) SNP-major mode
Analysis finished: Wed Apr 10 16:40:14 2013

Решение проблемы совместимости данных, хранящихся в разных геномных билдах (сборках).

Одной из cамых болезненных проблем, c которыми сталкивается исследователь геномного разнообразия, является проблема совместимости геномных билдов (или сборок).  Определенные затруднения вызваны тем, что данные по разным популяциям могут быть приведены в разных билдах. Более ранние выборки были представлены в NCBI билде hg/b36, однако в последнее время все больше новых данных поставляется в новом NCBI билде b37. Во-многом это объясняется успехом проекта 1000 геномов, в котором как раз и используются мэппинг (генетических и физических позиций) NCBI билда b37. Наверное, по этой же причине коммерческие компании типа 23andme и FTDNA также сменили версию билда на b37.

Мы также столкнулись с аналогичной проблемой, поскольку снип-данные были извлечены из древней ДНК  с использованием более старого билда.  При решении этой проблемы мы руководились советами авторов Enigma Cookbook 1000 Genomes Imputation.

В практическом плане имеется целый ряд различий между двумя сборками. Были выявлены три основных типа проблем в build36, которые решены в build37:

● были найдены  SNP-ы встречающиеся два раза под разными rs-индексами
● обнаружено несколько SNP-ов, отображенных на неверной хромосому
● были найдены многочисленные SNP-ы c неверными физическими координатами (но на верной
хромосомы)
Для преобразования данных из сборки build36 в сборку build37  нам необходимо переназначить SNP-позиции
позиций, перечисленных в 1KGP, используя следующий код.  Существует небольшое количество полиморфизмов (около 312) в референсной панели 1000 геномов (1KGP), которые отображаются на БОЛЕЕ чем одной хромосоме, поэтому перед тем как продолжить, нам необходимо отбросить эти снипы.

Референсная панель (data for 41 million markers, of which ~23 million are monomorphic in Caucasians) скачивается следущей последовательностью команд:

mkdir 1KGPref
cd 1KGPref
wget "http://enigma.loni.ucla.edu/wp-content/uploads/2012/07/
v3.20101123.ENIGMA2.EUR.20120719.vcf.tgz"
wget "http://enigma.loni.ucla.edu/wp-content/uploads/2012/07/
v3.20101123.ENIGMA2.EUR.20120719.extras.tgz"
tar -zxvf v3.20101123.ENIGMA2.EUR.20120719.vcf.tgz
tar -zxvf v3.20101123.ENIGMA2.EUR.20120719.extras.tgz

 

Следующий код загружает генетическую карту панели 1KGP и создает список, который будет использоваться для фильтрации генотипированных данных перед фазированием:

## For the following commands in green use the clean “lastQC2” files
if you had to remove duplicate markers
#Join the genotyped bim file with the reference allele lists
##reformat the lastQC.bim file
awk '{print $2,$1,$3,$4,$5,$6}' lastQC.bim > tempQC.bim
##Join the two files
awk 'NR==FNR{s=$1;a[s]=$0;next} a[$1]{print $0 " "a[$1]}' tempQC.bim
1kgp.alleles > merged.alleles
## selects SNPS showing different alleles in the two files
awk '{ if ($2!=$8 && $2!=$9) print $1}' merged.alleles > flip.list
plink --bfile lastQC --extract 1kgp.snps --update-map 1kgp.chr --
update-chr --flip flip.list --make-bed --out temp --noweb
plink --bfile temp --update-map 1kgp.bp --geno 0.05 --mind 0.05 --
make-bed --out lastQCb37 --noweb
wc -l lastQCb37.bim
## Make list of males and females for writing out the X chromosome
awk '{ if($5==1) print $1, $2}' lastQCb37.fam > male.list
awk '{ if($5==2) print $1, $2}' lastQCb37.fam > female.list
##Check that your dataset is properly split by gender by opening
male.list and female.list in a text editor. Also check that total
numbers make sense.
wc -l female.list
wc -l male.list
@----------------------------------------------------------@
| PLINK! | v1.07 | 10/Aug/2009 |
|----------------------------------------------------------|
| (C) 2009 Shaun Purcell, GNU General Public License, v2 |
|----------------------------------------------------------|
| For documentation, citation & bug-report instructions: |
| http://pngu.mgh.harvard.edu/purcell/plink/ |
@----------------------------------------------------------@
Skipping web check... [ --noweb ] 
Writing this text to log file [ lastQCb37.log ]
Analysis started: Wed Apr 3 02:09:06 2013
Options in effect:
 --bfile temp
 --update-map 1kgp.bp
 --out lastQCb37
 --noweb
 --make-bed
Reading map (extended format) from [ temp.bim ] 
1032625 markers to be included from [ temp.bim ]
Reading pedigree information from [ temp.fam ] 
3606 individuals read from [ temp.fam ] 
4 individuals with nonmissing phenotypes
Assuming a disease phenotype (1=unaff, 2=aff, 0=miss)
Missing phenotype value is also -9
0 cases, 4 controls and 3602 missing
1741 males, 975 females, and 890 of unspecified sex
Warning, found 890 individuals with ambiguous sex codes
Writing list of these individuals to [ lastQCb37.nosex ]
Reading genotype bitfile from [ temp.bed ] 
Detected that binary PED file is v1.00 SNP-major mode
Reading new physical positions from [ 1kgp.bp ]
1032625 SNP positions read and updated
0 in data but not in [ 1kgp.bp ]
11797154 in [ 1kgp.bp ] but not in data
*** Implicit order changed from re-mapping ***
Before frequency and genotyping pruning, there are 1032625 SNPs
3606 founders and 0 non-founders found
273 heterozygous haploid genotypes; set to missing
Writing list of heterozygous haploid genotypes to [ lastQCb37.hh ]
Total genotyping rate in remaining individuals is 0.309747
0 SNPs failed missingness test ( GENO > 1 )
0 SNPs failed frequency test ( MAF < 0 )
After frequency and genotyping pruning, there are 1032625 SNPs
After filtering, 0 cases, 4 controls and 3602 missing
After filtering, 1741 males, 975 females, and 890 of unspecified sex
Writing pedigree information to [ lastQCb37.fam ] 
Writing map (extended format) information to [ lastQCb37.bim ] 
Writing genotype bitfile to [ lastQCb37.bed ] 
Using (default) SNP-major mode
Analysis finished: Wed Apr 3 02:13:38 2013

Теперь, когда координаты и странды ДНК приведены в порядок, мы можем соединять данные древней ДНК с нашей главной референсной панелью.

В следующей части мы покажем конкретные результаты сравнения древней и современной ДНК.
 

Практические рекомендации по работе с данными древней ДНК — часть 2: 2 комментария

Оставьте комментарий