今天開始跟著公司的一個人做流程了,他也是第一次做。流程是先做一遍正常的RNA-seq的數(shù)據(jù)。
序列比對使用的軟件是HISAT2軟件,和bowtie2是一樣的。
第一步是下載數(shù)據(jù),ensemble上下載的人類基因組fasta文件
第二步,使用hisat2-bulid把基因組切分成小的index,這樣比對的時候能提高效率
命令行:hisat2-bulid genome.fa index
之后會得到一個index的文件夾
第三步,使用hisat把雙端測序數(shù)據(jù)比對到基因組上
命令行:hisat2 -p 8 --dta -x index -1 第一端測序數(shù)據(jù).fastq -2 第二端測序數(shù)據(jù).fastq -S 輸出結(jié)果文件.sam
參數(shù)詳解http://blog.sciencenet.cn/blog-759995-990471.html
大概看一下sam文件,一般有用的分別是第二個值,代表正負(fù)鏈或者沒匹配之類的;第三個值染色體,正常是1到22外加XY,像如圖這種奇形怪狀的就是沒匹配的;第四個值,代表位置信息。
第四步,畫圖,對每天染色體,每100k一個區(qū)間,計(jì)算map到每個區(qū)間上的read數(shù),正負(fù)鏈畫一張圖上
因?yàn)閿?shù)據(jù)沒給我,我就自己瞎隨機(jī)了正負(fù)鏈,哈哈(ω)
import pandas as pd
import matplotlib.pyplot as plt
import random as rd
c = [str(x) for x in range(1,23)] #這里不用str下面賦值1-22都是空
c.append('X')
c.append('Y')
data = pd.DataFrame(None,index = c,columns = ['forward','reverse'])
for x in data.index:
data.loc[x,'forward'] = []
data.loc[x,'reverse'] = []
f = open("E:/geneX/0704/index-TAGCTT_H35YMCCXY_L3_tout_accepted_hit.sam")
for line in f.readlines():
if(line[0] == '@'):
next
else:
l = line.split('\t') #l[2]:chr l[3]:position
if(l[2] in c):
if rd.random()>0.5:
data.loc[l[2],'forward'].append(int(int(l[3])/100000.))
else:
data.loc[l[2],'reverse'].append(int(int(l[3])/100000.))
這樣得到的data中index是染色體1-22、X、Y,columns是forward和reverse,只不過是我隨機(jī)噠。
之后,可以畫圖啦~~~~
for x in data.index:
forward = pd.DataFrame(data.loc[x]['forward'],columns = ['posi']).groupby('posi').size()
reverse = pd.DataFrame(data.loc[x]['reverse'],columns = ['posi']).groupby('posi').size()
x = forward.index
y = forward.values
plt.plot(x,y)
x2 = reverse.index
y2 = reverse.values
plt.plot(x2,-y2)
plt.show()
break;
看一張圖,不得不說python的顏色還是很好看的,默認(rèn)參數(shù)就挺好看了
因?yàn)槭请S機(jī)的,所以正負(fù)鏈比較對稱,正常不會出現(xiàn)對稱情況的。
好啦明天可以去看個lncRNA的測序數(shù)據(jù)啦
我添真的是很棒棒,,,,狠狠棒棒,比如這個markdown模式,百度去百度去、、、、、、、、、、、不過,成功添加代碼塊,啦啦啦啦啦。。