加载中…
访客
加载中…
个人资料
fanyucai
fanyucai
  • 博客等级:
  • 博客积分:0
  • 博客访问:405,260
  • 关注人气:358
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
置顶: (2019-01-10 13:24)
分类: 生物信息学
博客本人编写的一些代码分享,欢迎批评指正:
https://github.com/fanyucai1

交流QQ群号:721576409

申请需要本人通过,之前的群人员混杂,解散,重新部署。希望大家可以实现资料文献共享、共同进步。这个群号是新申请的,因此在申请加入的时候,请备注本人姓名以及单位以及方向,以方便备注和认证。

目前方向不在专注于科研方向,正在努力转型医学,望各位见谅。

很多人在博客中提问无法回复,望见谅。
阅读  ┆ 评论  ┆ 禁止转载 ┆ 收藏 
(2019-04-12 16:13)
标签:

docker

分类: 计算机相关
1:一般构建的镜像都是基于某个系统例如centos或者ubuntu,但是往往我还是嫌弃这基础镜像很大,为了让自己以后构建的镜像尽可能小,我选择了busybox,是因为它小而且还包含了linux所需的基本库文件和常规命令。
深入学习可参考链接:

2:关于busybox的说明可以参考https://yeasy.gitbooks.io/docker_practice/cases/os/busybox.html,此外还有如下链接
* Busybox 官网:https://busybox.net/
* Busybox 官方仓库:https://git.busybox.net/busybox/
* Busybox 官方镜像:https://hub.docker.com/_/busybox/

3:尽管docker可以在运行的容器上构建新的镜像,但是这种情况不推荐,也就是形如
docker commit -a "fanyucai" -m "centos:6.9:base" c7c56b6c5c99 "base/centos:6.9”

4:建议自己写Dockerfile,下面是我在我获得基础镜像也就是busybox的基础上,构建的一个新的镜像文件:
From busybox
MAINTAINER fanyucai1@126.com
COPY hisat2-2.1.0-Linux_x86_64.zip ./
RUN unzip hisat2-2.1.0-Linux_x86_64.zip && rm hisat2-2.1.0-Linux_x86_64.zip && ln -s hisat2-2.1.0 bin/

5:写完上面的文件运行:
docker build -t hisat2:2.1.0 .
就可以生产新的镜像

6:然后push到阿里云上:
sudo docker login --username=樊玉才123 registry.cn-hangzhou.aliyuncs.com

7:大家都知道Miniconda很强大尤其是在安装生物信息分析软件的过程中,那么使用Miniconda做为基础镜像来构建生物信息分析环境就很自然而然了。

8:在dockerhub有很多关于Miniconda的镜像,为了选择的准确无误,可以从官网:https://conda.io/miniconda.html ,查询到对应的docke镜像网址:https://hub.docker.com/r/conda/

9:关于miniconda2的镜像 https://hub.docker.com/r/conda/miniconda2/

10:关于miniconda3的镜像https://hub.docker.com/r/conda/miniconda3/

11:busybox也可以作为基础镜像,是因为它小而且还包含了linux所需的基本库文件和常规名令:https://hub.docker.com/_/busybox/

12:在获得基础镜像后,可以push到阿里云上,将镜像文件上传到github上。假如我想构建新的镜像形如:bowtie的镜像,其Dockfile文件形如:https://github.com/fanyucai1/docker_bio_images/blob/master/bowtie/Dockerfile

13:docker 命令行:
docker ps 查看正在运行的容器
docker stop停止正在运行的容器
docker start启动容器
docker ps -a查看终止状态的容器
docker rm -f webserver命令来移除正在运行的容器
docker rm $(docker ps -a -q) 删除所有容器
docker images 列出本地镜像
docker rmi 删除镜像
docker run —name NAMES IMAGE 将镜像IMAGE生成NAMES的容器
docker image ls 列出docker镜像
docker search python 寻找镜像
docker pull python:3.5

14:docker官方的检查Docker Engine,Docker Compose和Docker Machine的版本
docker —version
docker-compose —version
docker-machine --version

15:加速器使用加速器将会提升您在国内获取Docker官方镜像的速度!
网易加速器:http://hub-mirror.c.163.com
官方中国加速器:https://registry.docker-cn.com


16:docker run -t -i ubuntu /bin/bash
* docker run:启动container
* ubuntu:你想要启动的image
* -t:进入终端
* -i:获得一个交互式的连接,通过获取container的输入
* /bin/bash:在container中启动一个bash shell

17:建立镜像命令说明
FROM 或者FROM : #示例:FROM ubuntu
MAINTAINER ,指定维护者信息 示例:NMAINTAINER fanyucai1@126.com
RUN  示例:RUN echo foo > bar
ADD 可以是Dockerfile所在目录相对路径;也可以是URL;还可以是一个tar文件
COPY 可以是Dockerfile所在的目录的一个相对路径也可以是一个tar文件
ENV 示例:ENV PATH /usr/local/postgres-$PG_MAJOR/bin:$PATH

18:docker仓库

19:退出容器Ctrl-D或者 exit
20:devmapper: Thin Pool has 162394 free data blocks which is less than minimum required 163840 free data blocks. Create more free space in thin pool or use dm.min_free_space option to change behavior

编辑:vim /usr/lib/systemd/system/docker.service 文件
修改ExecStart=/usr/bin/dockerd --storage-opt dm.basesize=100G  --storage-opt dm.loopdatasize=50G --storage-opt dm.loopmetadatasize=4G
三个参数的大小然后运行:
systemctl daemon-reload
systemctl start docker
service network restart
21:镜像导出
docker save -o ubuntu_haha.tar ubuntu:latest
22:镜像安装
docker load --input  ubuntu_haha.tar
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2019-04-11 16:07)
标签:

vsftpd

分类: Linux
1:yum install vsftpd

2:修改配置文件/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
chroot_local_user=YES
local_root=/home/
chroot_list_enable=NO
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
listen_port=21
listen_address=服务器地址

3:which nologin 将输出结果写入文件 /etc/shells中,我这里是
/usr/bin/nologin

设置用户仅通过ftp登陆:
usermod -s /usr/sbin/nologin username

如果要恢复username的ssh登录,执行如下命令: 
usermod -s /bin/bash username  

4:启动服务以及重启服务命令
/bin/systemctl restart vsftpd.service
/bin/systemctl start vsftpd.service
/bin/systemctl stop vsftpd.service
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
由于COSMIC数据库的原因,最后版本的annovar停更到v77版本,截止本文时间已经是V88版本。

annovar官方给出了更新方法,之前COSMIC只有编码区域的变异注释文件,现在又添加了非编码区,因此需要在构建注释文件的过程中需要四个文件,开发者可以从COSMIC数据库上自行下载。备注,COSMIC数据库注册的时候也可以商业邮箱,只不过在指定的时候你默认指定为学校或者科研机构也是可以骗过去的。

需要下载的四个文件分别是:
CosmicCodingMuts.vcf
CosmicMutantExport.tsv
CosmicNCV.tsv
CosmicNonCodingVariants.vcf

构建命令:
prepare_annovar_user.pl -dbtype cosmic CosmicMutantExport.tsv  -vcf CosmicCodingMuts.vcf > hg38_cosmic76.txt
prepare_annovar_user.pl -dbtype cosmic CosmicMutantExport.tsv  -vcf CosmicNonCodingVariants.vcf >> hg38_cosmic76.txt

建议构建index,因为COSMIC文件越来越大。但是官方没有提供index文件,可以在annovar官网上留言直接找作者要就可以了。作者回复很快,大约三天时间。

阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: Linux
1:首选安装parallel ssh 
sudo apt-get install pssh
or
brew install pssh
or
sudo yum install pssh

2:建立~/.pssh_hosts_files文件
root@192.168.2.30
root@192.168.2.45
root@192.168.2.46

3:测试
pssh -t 0 -i -h ~/.pssh_hosts_files date
参考链接:
https://www.cyberciti.biz/cloud-computing/how-to-use-pssh-parallel-ssh-program-on-linux-unix/

如果遇到执行报错:
PSSH 执行报pssh Timed out, Killed by signal 9错误

解决办法:添加-t 0
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
一、原理
K最邻近(k-Nearest Neighbor,KNN)分类算法的核心思想是如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别。

二、交叉检验
1.       将数据集平均分割成K个等份
2.       使用1份数据作为测试数据,其余作为训练数据
3.       计算测试准确率
4.       使用不同的测试集,重复2、3步骤



三、代码
这里我们把K的选择范围定在[131],这个可以根据实际需求进行不同设定。交叉检验我们选择了10折交叉检验,当然这个数值也是改变的。此外还有选取模型优劣的参数scoring,这里我们选择的标准是accuracy(预测精度)作为标准,一些相关指标可以参考:

https://scikit-learn.org/stable/modules/model_evaluation.html#multilabel-ranking-metrics



四:结果



阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 生物信息学
https://github.com/hall-lab/speedseq
之所以推荐这个软件,这个软件是一个集成分析管道,它可以做SNV、比对、SV的工作,但是集成性很强。而且速度很快,这个软件在数据分析过程主要是能使用并行的时候使用了parallel并行运算速度快。

我经常使用的是比对功能。它将比对、排序、去冗余一个命令一气呵成,简单的狠。

另外一个功能是目前检测SV的软件比较好和应用性比较强的是lumpy和delly,这个软件在比对完后也输出了这个软件的输入。

另外该软件代码书写及其规范,可以作为平时学习的参考,speedseq文章发表在nature methods

Chiang C, Layer R M, Faust G G, et al. SpeedSeq: ultra-fast personal genome analysis and interpretation[J]. Nature methods, 2015, 12(10): 966.
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

python3

随机数

多线程

分类: python学习
##############################随机数
import random
#想多次生成同样的随机数请设置随机数比如
random.seed(4)
random.sample(range(100),10)
random.seed(4)
random.sample(range(100),10)

这样两次产生的随机数就会一样
##############################多线程
from multiprocessing import Process
def shell_run(cmd):
   subprocess.check_call("%s" %(cmd),shell=True)
string={}
string["a"]="samtools mpileup -q 20 -f h19.fa normal.bam >normal.mpileup"
string["b"]="samtools mpileup -q 20 -f hg19.fa tumor.bam >tumor.mpileup”
if __name__ == '__main__':
   p1=Process(target=shell_run,args=(string["a"],))
   p2=Process(target=shell_run,args=(string["b"],))
   p1.start()
   p2.start()
   p1.join()
   p2.join()
################################二维字典
def dict2d(dict, key_a, key_b, val):
       If key_a in dict:
          dict[key_a].update({key_b: val})
        else:
         dict.update({key_a:{key_b: val}})
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
分类: 文献推荐
Coudray A, Battenhouse A M, Bucher P, et al. Detection and benchmarking of somatic mutations in cancer genomes using RNA-seq data[J]. bioRxiv, 2018: 249219.
前期比对使用STAR-2 pass
另外还可以结合GATK官方流程:
https://github.com/gatk-workflows/gatk3-4-rnaseq-germline-snps-indels/blob/master/rna-germline-variant-calling.wdl


在使用RSeQC(http://rseqc.sourceforge.net/#)对RNAseq数据进行评估的时候,需要将gtf转换为bed文件,使用QuickRNASeq(https://sourceforge.net/projects/quickrnaseq/files/)管道中的脚本就可以
Zhao S, Xi L, Quan J, et al. QuickRNASeq lifts large-scale RNA-seq data analyses to the next level of automation and interactive visualization[J]. BMC genomics, 2016, 17(1): 39.
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
标签:

gene

fusion

hsa

分类: 医学相关
1:下载分析脚本:
https://sourceforge.net/projects/fusioncatcher/files/

2:下载数据库并建立数据库
wget http://sourceforge.net/projects/fusioncatcher/files/data/human_v90.tar.gz.aa
wget http://sourceforge.net/projects/fusioncatcher/files/data/human_v90.tar.gz.ab
wget http://sourceforge.net/projects/fusioncatcher/files/data/human_v90.tar.gz.ac
wget http://sourceforge.net/projects/fusioncatcher/files/data/human_v90.tar.gz.ad
cat human_v90.tar.gz.* | tar xz
ln -s human_v90 current

4:下载必要的分析软件
* Python version 2.7.6 (>=2.6.0 and < 3.0 is fine)
* BioPython version 1.66 (>=1.50 is fine)
* Bowtie 64-bit version 1.1.2(官方文档要求的版本写错了)
* SeqTK version 1.2-r101c-dirty
* STAR version 2.5.2b
* BOWTIE2 version 2.2.9
* BBMAP version 37.28

5:使用说明:
https://github.com/ndaniel/fusioncatcher/blob/master/doc/manual.md

6:输出文件
summary_candidate_fusions.txt
final-list_candidate-fusion-genes.hg19.txt

7:融合基因的一些文献
本文第一推荐EricScript做融合,现在使用的分析软件建议使用
Kumar S, Vo A D, Qin F, et al. Comparative assessment of methods for the fusion transcripts detection from RNA-Seq data[J]. Scientific reports, 2016, 6: 21597.

Defuse(https://bitbucket.org/dranew/defuse/overview)
McPherson A, Hormozdiari F, Zayed A, et al. deFuse: an algorithm for gene fusion discovery in tumor RNA-Seq data[J]. PLoS computational biology, 2011, 7(5): e1001138.

在文献Chen B, Jiang L, Zhong M L, et al. Identification of fusion genes and characterization of transcriptome features in T-cell acute lymphoblastic leukemia[J]. Proceedings of the National Academy of Sciences, 2018, 115(2): 373-378.使用fusioncatcher与Defuse分析融合基因且过滤条件是at least 2 split reads and 3 spanning reads
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
(2019-01-16 09:22)
分类: 生物信息学
1:首先说Grch38/hg38之间没有本质区别,b37/hg19也没有本质上区别,好像就是在染色体的编号上一个使用的是chr1,另一个使用的是数字1.

2:如果要实现hg19到hg38使用的工具liftOver,还有一个是映射文件,映射文件可以从http://hgdownload.cse.ucsc.edu/gbdb/hg19/liftOver/下载,还有我在call变异的时候GATK提供的是b37版本的vcf文件,我需要转换为hg19,需要用到映射文件b37tohg19.chain(http://bioinfo5pilm46.mit.edu/software/GATK/resources/)

3:简单的转换命令:
java -jar ~/Picard/picard.jar LiftoverVcf \
     I=af-only-gnomad.raw.sites.b37.vcf \
     O=af-only-gnomad.raw.sites.hg19.vcf \
     CHAIN=b37tohg19.chain \
     REJECT=rejected_variants.vcf \
     R=~/hg19_annotation/ucsc.hg19.fasta
4:一些相关的映射文件的下载地址:
http://crossmap.sourceforge.net/#
5:一些可以下载的数据库链接






构建h19的序列:ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/hg19/ucsc.hg19.fasta.gz
阅读  ┆ 评论  ┆ 转载 ┆ 收藏 
  

新浪BLOG意见反馈留言板 电话:4006900000 提示音后按1键(按当地市话标准计费) 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

新浪公司 版权所有