生物信息学练习题-三阳

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

计算当前情况,深度大于40X的区间的百分比。

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中,其他程序、脚本、输出文件等按需要命名。

你可能感兴趣的:(考试)