周六考试(一)

生物信息学练习题
一、data/newBGIseq500_1.fq和data/newBGIseq500_2.fq中是基于BGIseq500测序平台的一种真核生物基因组DNA的PE101测序数据,插入片段长度为450 bp;已知该基因组大小约在6M左右。
1) 请统计本次测序的PE reads数是多少对reads?理论上能否使基因组99%以上的区域达到至少40X覆盖?请简要写出推理和计算的过程与结果,数值计算使用R等工具时请写出所用代码。
代码:

wc -l data/newBGIseq500_1.fq|awk ‘{print $1/4}’
#结果为1599999

2、

参考1

# 根据上一步结果计算全部的数据量
base<-1599999*200
#计算测序深度
dep<-base/6000000
#由于基因组dna长度长,某片段被检测到的概率p<<1,并且测序过程中会产生趋向无穷的reads,因此碱基被测到的深度符合泊松分布
#r语言的ppois()函数表示,累积泊松分布函数,因此,要计算基因组碱基至少40X覆盖的概率,应先求出0-39X被覆盖的累积分布概率ppois(39,dep),再用1-此概率就是大于等于40X的概率,即:
1-ppois(39, dep)
[1] 0.975145
#因此,理论上认为,该数据量不能使基因组99%以上区域达到至少40X覆盖度

结题思路:
1、 fq每四行表示一条reads的信息,1.fq和2.fq是成对存在的
2、 通过PE101、reads对数计算得到总碱基数,与6M基因组大小的99%的区域40X以上需要的碱基数作比较即可

2) 请下载并安装SOAPdenovo软件,设置-K参数为35对该数据进行de novo组装,并画出组装结果序列从长到短的长度累积曲线图;

下载地址:
https://sourceforge.net/projects/soapdenovo2/files/latest/download
安装:
make

配置文件:

#maximal read length 
max_rd_len=100 
[LIB] 
#average
insert size avg_ins=450
#if sequence needs to be reversed 
reverse_seq=0 
#in which part(s) the reads are used 
asm_flags=3 
#use only first 100 bps of each read 
rd_len_cutoff=100 
#in which order the reads are used while scaffolding 
rank=1 
#cutoff of pair number for a reliable connection (at least 3 for short insert size) 
pair_num_cutoff=3 
#minimum aligned length to contigs for a reliable read location (at least 32 for short insert size) 
map_len=32 
#a pair of fastq file, read 1 file should always be followed by read 2 file 
q1=/home/stu27/data/newBGIseq500_1.fq 
q2=/home/stu27/data/newBGIseq500_2.fq 

执行

../SOAPdenovo_master/SOAPdenovo-63mer all -s ../SOAPdenovo_master/config_file -K 35 -R -o ../data/denovo_graph_prefix 1>../data/denovo.log 2>../data/denovo.err

提取序列长度,python脚本

#!/usr/bin/python

fasta = {}
scafSeq = open("../data/denovo_graph_prefix.scafSeq")
for line in scafSeq:
        if line.startswith(">"):
                id = line.strip().lstrip(">")
                fasta[id] = 0
        else:
                fasta[id] += len(line.strip())

with open("./length.txt", "w") as f_in:
        accumu_len = 0
        for key in sorted(fasta, key = fasta.__getitem__, reverse = True):
                length = fasta[key]
                accumu_len += length
                f_in.write("%s\t%s\t%s\n"% (key, length, accumu_len))

用R画累积分布曲线:

pdf("length.pdf") 
lens <- read.table("length.txt") 
plot(lens$V3, type="l",ylab='Total length',xlab = 'Seq num')
dev.off()

求N50

#!/usr/bin/python

fasta = open("./length.txt")
total_seq_len = 0
length_list = []
temp_len = 0
N50 = 0
for line in fasta:
        length_list.append(int(line.split("\t")[1]))
        total_seq_len += int(line.split("\t")[1])

N50_pos = total_seq_len / 2
for value in length_list:
        temp_len += value
        if temp_len >= N50_pos:
                N50 = value
                break
print "The length of N50 is:", str(N50)

二、考试参考目录下文件data/chr17.vcf.gz,中是某trio家系的17号染色体的变异集合,参考序列为hg38。
1) 编写脚本或选择适当工具,统计vcf中变异位点的Qual值分布情况,并画图展示。

#!/usr/bin/bash

awk '{if(/^#/){next};print $6}' ../data/chr17.vcf > qual_value.txt

../vcftools_0.1.13/bin/vcftools --vcf ../data/chr17.vcf --chr chr17 --from-bp 7661779 --to-bp 7687538 --recode --out TP53.txt

#counting HO and HET:
python viriant_number.py

R画图:

pdf("qual.pdf")
qual <- read.table('qual.txt')
hist(qual$V1,main = "Qual Hist")
dev.off()

2)选择合适的工具或方法提取该家系在 TP53 基因上是变异情况进行输出,说明变异位点的数目以及各样品的情况(纯合、杂合位点数目)。
通过ensembl 查到位置信息: 7,661,779-7,687,538
vcftools使用见上代码
python提取变异信息:

#!/usr/bin/python
vcf_file = open("./TP53.txt.recode.vcf")
sample = {}
sample_INFO = []
sample_name = []
for line in vcf_file:
        if line.startswith("##"):
                continue
        elif line.startswith("#CHROM"):
                line = line.strip().split("\t")
                sample_name = line[9:]
                for i in range(len(sample_name)):
                        sample[sample_name[i]]= {}
                        sample[sample_name[i]]["HO"] = 0
                        sample[sample_name[i]]["HET"] = 0
        else:
                line = line.strip()
                sample_INFO = line.split("\t")[9:]
                for k in range(len(sample_INFO)):
                        GT_INFO = sample_INFO[k].split(":")[0]
                        if GT_INFO.split("/")[0] == GT_INFO.split("/")[1]:
                                sample[sample_name[k]]["HO"] += 1
                        else:
                                sample[sample_name[k]]["HET"] += 1
for sample, info in sample.items():
        print sample+ "  " + "HO_NUM: "+str(info["HO"])+"  "+  "HET_NUM: "+str(info["HET"])+"\n"

方法二:

 grep -v '#' TP53.recode.vcf | cut -f10 | awk -F ":" '{print $1}' | awk -F "/" 'BEGIN{HO =0;HET = 0}{if($1==$2){HO++}else{HET++}}END{print "HO:", HO, "HET:", HET}'
 grep -v '#' TP53.recode.vcf | cut -f11 | awk -F ":" '{print $1}' | awk -F "/" 'BEGIN{HO =0;HET = 0}{if($1==$2){HO++}else{HET++}}END{print "HO:", HO, "HET:", HET}'
 grep -v '#' TP53.recode.vcf | cut -f12 | awk -F ":" '{print $1}' | awk -F "/" 'BEGIN{HO =0;HET = 0}{if($1==$2){HO++}else{HET++}}END{print "HO:", HO, "HET:", HET}'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容