想在服務器上查看igv,又嫌棄X11轉(zhuǎn)發(fā)太丑陋换况,igv-web是一個不錯的方案,看了幾篇帖子盗蟆,都在說響應很慢戈二。直覺上來說,桌面版和web版響應速度應該是一致的喳资,慢應該是下載大文件的觉吭,搗鼓一般后,算是能用了仆邓。
1.下載
wget https://igv.org/app-archive/igv-webapp.1.12.5.zip
unzip igv-webapp.1.12.5.zip
2.按配置文件資源下載文件
(由于我一般只用hg19鲜滩,因此只將hg19的資源下載)
less igv-webapp.1.12.5/resources/genomes.json #查看資源配置文件
#索性全部下載有備無患伴鳖,其實按理來說不同hg19之間也有些不同
mkdir igv-webapp.1.12.5/resources/down_data #將自己下載的文件在source下創(chuàng)建一個目錄
cd -
wget https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg19/hg19.fasta
wget https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg19/hg19.fasta.fai
wget https://s3.amazonaws.com/igv.broadinstitute.org/genomes/seq/hg19/cytoBand.txt
wget https://s3.amazonaws.com/igv.org.genomes/hg19/hg19_alias.tab
wget https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz
wget https://s3.amazonaws.com/igv.org.genomes/hg19/ncbiRefSeq.sorted.txt.gz.tbi
4.修改配置文件
改好的配置文件如下
需要注意,資源文件的路徑是相對于igv-webapp.1.12.5中的index.html的徙硅,且在index.html的子目錄或同級目錄榜聂,否則無法找到資源,這個如果熟悉web開發(fā)的應該很好理解嗓蘑,我也只是半懂不懂须肆,不多說哈。
5.開啟web服務
cd igv-webapp.1.12.5
python3 -m http.server 9999
這時候脐往,訪問服務器地址加端口就能打開web網(wǎng)頁休吠,打開速度基本能接受
比如192.168.120.91:9999
如果不行,確認下服務器是否開啟了此端口业簿,如果你只有一個端口,可以ssh端口轉(zhuǎn)發(fā)瘤礁,這部分可以看我參考的第二篇文章。
我嘗試了下梅尤,確實有用柜思,但是試了后發(fā)現(xiàn)自己不知道怎么關(guān),windows上關(guān)于ssh的文檔我也不知在哪巷燥,如果有人知道還請賜教赡盘。
ssh -N -f -L localhost:9999:localhost:9999 -p 22 tanqiang@192.168.120.91
6.數(shù)據(jù)準備
查看bam文件,需要導入服務器上的bam與bam.bai,這里也需要注意和index.html的路徑關(guān)系缰揪。
如果使用mv或者cp陨享,有些太耽誤時間,且容易造成風險钝腺,總不能拷貝一次跑一下md5sum吧抛姑。
這里我是在linux里使用軟連接
比如:
mkdir igv-webapp.1.12.5/link_bam
ln -s raw_path/raw.bam igv-webapp.1.12.5/link_bam/igv.bam
ln -s raw_path/raw.bam.bai igv-webapp.1.12.5/link_bam/igv.bam.bai
此時網(wǎng)頁上則輸入 link_bam/igv.bam 和 link_bam/igv.bam.bai
7.后續(xù)
除了下載資源拖慢igv外,還有可能是igv-web依賴的js文件在外網(wǎng)艳狐《ㄏ酰可以在瀏覽器按F12,刷新頁面毫目,點擊網(wǎng)絡蔬啡,這里可以看到有兩個js文件,耗時20多秒镀虐,估計是在外網(wǎng)箱蟆,可以考慮把按照我們的套路,把它下載到本地后粉私,按上面的套路改路徑顽腾。其他網(wǎng)絡資源需要而要完全本地化,其它同理。
8.補充
寫了個小腳本取名叫igv_web_tolink.sh抄肖,之后用的時候運行sh igv_web_tolink.sh x.bam x.bai x.vcf 久信,然后把打印出的軟鏈接輸入網(wǎng)頁里。
如果有root權(quán)限的應該是有辦法直接用絕對路徑(極端點index.html直接放根目錄),沒root我還沒有找到啥好辦法漓摩。另外就是網(wǎng)頁輸入這步裙士,應該有啥辦法直接改配置文件。如有后續(xù)我就再開一篇管毙。
#請將此腳本放于igv-webapp.1.12.5文件夾中
scriptpath=$(dirname $0) #腳本目錄
for i in "$@"
do
tmp=`basename $i`
ln -s $1 $scriptpath'/link_file/'$tmp
echo 'link_file/'$tmp
done
cd $scriptpath
python3 -m http.server 9999
參考:
如何輕松打造個人專屬的IGV Browser - 簡書 (jianshu.com)
生信 | IGV Web快速搭建(無需root腿椎,無需更改配置文件) - 簡書 (jianshu.com)
IGV web 工具部署