ANNOROAD0922
1.练习题文档如附件1.(请考试的每个人都要进行练习)。
练习题使用到的数据如下:https://pan.genomics.cn/ucdisk/s/7jYfIb
提取码 : 995017
过期时间 : 2018-10-01 23:59:59
2.cd /export/home/stu24
3.生物信息学练习题
一、data/newBGIseq500_1.fq和data/newBGIseq500_2.fq中是基于BGIseq500测序平台的一种真核生物基因组DNA的PE101测序数据,插入片段长度为450 bp;已知该基因组大小约在6M左右。
1)请统计本次测序的PEreads数是多少对reads?
shell:
a=$(gzip -dc newBGIseq500_2.fq.gz |wc -l);echo $[a/4]
perl:
my $in = shift @ARGV;
open IN,"gzip -dc $in|" or die;
my $num;
while(){
chomp;
$num = $.;
}
close IN;
$num = $num /4;
print "$num";
理论上能否使基因组99%以上的区域达到至少40X覆盖?请简要写出推理和计算的过程与结果,数值计算使用R等工具时请写出所用代码。
base<-1599999*200
dep<-base/6000000
print (ppois(40,lambda=dep,lower=FALSE))
2)请下载并安装SOAPdenovo软件,设置-K参数为35对该数据进行de novo组装,并画出组装结果序列从长到短的长度累积曲线图;
安装:
cd SOAPdenovo2-master
make
组装:
/export/home/stu24/SOAPdenovo2-master/SOAPdenovo-63mer all -K 35 -D 1 -s soap.contig.txt -o ant >log 2>err
my $fa = shift @ARGV;
my (%hash,$id);
open IN ,"< $fa" or die "$!\n";
while(){
chomp;
if (/^>(\S+)/){
$id = $1;
$hash{$id} = "";
}
else{
$hash{$id} .= $_;
}
}
close IN;
foreach my $k (sort {length $hash{$b} <=> length $hash{$a}} keys %hash){
my $len = length $hash{$k};
print "$k\t$len\n";
}
pdf("Cumulative.pdf")
contig_length<-read.table("fa.len.xls",header=F)
plot(ecdf(contig_length[,2]))
3)计算组装结果的N50。
my $fa = shift @ARGV;
my (%hash,$id,$total,$tmp);
open IN ,"< $fa" or die "$!\n";
while(){
chomp;
if (/^>(\S+)/){
$id = $1;
$hash{$id} = "";
}
else{
$total += length $_;
$hash{$id} += length $_;
}
}
close IN;
foreach my $k (sort {$hash{$b} <=> $hash{$a}} keys %hash){
$tmp += $hash{$k};
print "$k\t$len\n";
if ($tmp>=$total/2){
print "$hash{$k}\t$tmp\t$total\n";
exit;
};
}
二、考试参考目录下文件data/chr17.vcf.gz,中是某trio家系的17号染色体的变异集合,参考序列为hg38。
1)编写脚本或选择适当工具,统计vcf中变异位点的Qual值分布情况,并画图展示。
less -S chr17.vcf |grep -v "^##" |awk '{print $1"\t"$2"\t"$3"\t"$4"\t"$5"\t"$6}' >snp.qual.xls
pdf("qual.pdf")
snp<-read.table("snp.qual.xls",header=T)
hist(snp[,6],xlab="snp",ylab="qual value",main="snp qual distribution")
2)选择合适的工具或方法提取该家系在TP53基因上是变异情况进行输出,并说明变异位点的数目以及各样品的情况(纯合、杂合位点数目)。
awk '$2>7668402 && $2 <7687550' chr17.vcf >TP53.vcf
my $in = shift @ARGV;
open IN,"$in" or die;
print "genotype\t27DMBDM4YT\t7XKZJA3JWX\tAPRDKV0LDS\n";
my @sample=("27DMBDM4YT","7XKZJA3JWX","APRDKV0LDS");
my %h;
while(){
chomp;
my @l = split(/\t/);
my $num =0;
foreach my $k (@l[9..11]){
$k=~/\b(\d)\/(\d)/ or die"$k\n";
if ($1==$2){
$h{$sample[$num]}{"hom"}++;
}
else{
$h{$sample[$num]}{"het"}++;
}
$num++;
}
}
close IN;
print "hom\t";
foreach my $k (@sample){
print "$h{$k}{'hom'}\t";
}
print "\nhet\t";
foreach my $k (@sample){
print "$h{$k}{'het'}\t";
}
print "\n";
答题要求:
请在答题目录下新建一个名为“exam”的目录,并在其中建立2个子目录: “1_SOAPdenovo”、“2_Trio”,将该题目的解答依次保存在子目录中。
需要用到的软件:SOAPdenovo、Jellyfish、VCF操作工具、R等等请自行安装。
请将解题思路与信息查询、参考序列、软件下载地址等非脚本运行的步骤在result.txt文件中进行说明,可运行命令保存在01_work.sh、02_work.sh中,其他程序、脚本、输出文件等按需要命名。