跳转至

博客汇

由 reads count 数计算 TPM 和FPKM

由 reads count 数计算 TPM 和FPKM
  • 下载gff文件
  • http://venanciogroup.uenf.br/cgi-bin/gmax_atlas/download_by_pub.cgi 去这里下载reads count 数据
S
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
library("GenomicFeatures")
library("dplyr")
path1 = setwd("C:/Users/95656/Desktop/hyp/TZX/")
setwd(path1)
# 计算基因length

gffpath = "Gmax_275_Wm82.a2.v1.gene.gff3"
print(gffpath)
txdb <- makeTxDbFromGFF(gffpath,format="gff")
exons_gene <- exonsBy(txdb, by = "gene")
exons_gene_lens <- lapply(exons_gene,function(x){sum(width(reduce(x)))})
length1 = t(as.data.frame(exons_gene_lens))
write.table(length1,"C:/Users/95656/Desktop/hyp/TZX/length.txt", sep = "\t")

# 合并 reads count 数据和length
length1 = read.table("C:/Users/95656/Desktop/hyp/TZX/length.txt", header = T,sep="\t")
countsfile = "C:/Users/95656/Desktop/hyp/TZX/PRJNA238493_BP_raw_count.expression.tsv"
count1 = read.table(countsfile, header = T, sep = "\t")
a = inner_join(count1, length1, by="Locus_Name")
a[is.na(a)] = 0 # 设置 NA值为0
a = a[, -28]  # 删除第28列  Locus_Name.1
write.table(a,"C:/Users/95656/Desktop/hyp/TZX/countsdata.txt", sep = "\t", row.names = FALSE)

# 按照对应关系给countdata columns 改名,改好的文件保存为 re_countsdata.txt
# {'SAMN02644800': 'root', 'SAMN02644811': 'leaf3', 'SAMN02644826': 'seed4', 'SAMN02644825': 'seed3', 'SAMN02644822': 'podseed3', 'SAMN02644821': 'podseed2', 'SAMN02644820': 'podseed1', 'SAMN02644803': 'stem1', 'SAMN02644806': 'leafbud1', 'SAMN02644804': 'stem2', 'SAMN02644813': 'flower2', 'SAMN02644814': 'flower3', 'SAMN02644816': 'flower5', 'SAMN02644815': 'flower4', 'SAMN02644817': 'pod1', 'SAMN02644823': 'seed1', 'SAMN02644818': 'pod2', 'SAMN02644819': 'pod3', 'SAMN02644824': 'seed2', 'SAMN02644809': 'leaf1', 'SAMN02644807': 'leafbud2', 'SAMN02644802': 'cotyledon2', 'SAMN02644810': 'leaf2', 'SAMN02644805': 'shoot meristem', 'SAMN02644812': 'flower1', 'SAMN02644827': 'seed5'}

# 计算 TPM 和 FPKM

setwd("C:/Users/95656/Desktop/hyp/TZX/")
countfile = "C:/Users/95656/Desktop/hyp/TZX/re_countsdata.txt"
mycounts<-read.table(countfile, header = T,sep="\t")
head(mycounts)
rownames(mycounts)<-mycounts[,1]
mycounts<-mycounts[,-1]
head(mycounts)
# TPM
kb <- mycounts$length / 1000
countdata <- mycounts[,1:26]
rpk <- countdata / kb
tpm <- t(t(rpk)/colSums(rpk) * 1000000)
head(tpm)
write.table(tpm,file="my_TPM.txt",sep="\t",quote=F)
# FPKM
fpkm <- t(t(rpk)/colSums(countdata) * 10^6)
head(fpkm)
write.table(fpkm,file="my_FPKM.txt",sep="\t",quote=F)


## FPKM转化为TPM
# fpkm_to_tpm = t(t(fpkm)/colSums(fpkm))*10^6
# head(fpkm_to_tpm)
计算 共表达相关性
Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
path1 = "C:\\Users\\95656\\Desktop\\hyp\\比较"
setwd(path1)
rowdata <- read.table(choose.files(),header=T,sep="\t")
# exp1 = rowdata[,5:]
# "cotyledon1", "leafbud3",
exp1 = rowdata[c("cotyledon2", "flower1", "flower2", "flower3", "flower4", "flower5", "leaf1", "leaf2", "leaf3", "leafbud1", "leafbud2", "pod1", "pod2", "pod3", "podseed1", "podseed2", "podseed3", "root", "seed1", "seed2", "seed3", "seed4", "seed5", "shootmeristem", "stem1", "stem2")]
rownames(exp1)<-rowdata$Name
exp1[is.na(exp1)] = 0 # 设置 NA值为0
exp1 = as.matrix(exp1)
geneid <- rowdata[,'Name']
TCP = geneid[1:5] 
Gma = geneid[1:5]
outfile = choose.files()
for(i in 1:length(TCP))
{
    for(j in 1:length(Gma))
    {
        x <- as.numeric(exp1[i,])
        y <- as.numeric(exp1[j,])
        if(sum(exp1[i,])*sum(exp1[j,]) != 0)#取出表达值都为0的行,如果要严格一点,想要把表达值出现0的行都去掉的话可以把求和函数sum()换成求积函数prod(x)
        {
            gene_cor <- cor.test(x,y,alternative = "two.sided",method = "pearson")
            gene_p <- gene_cor$p.value
            gene_e <- gene_cor$estimate
            if(abs(gene_e) >= 0 && gene_p <= 1)
            {
                res<-paste(TCP[i],Gma[j],gene_e,gene_p,sep="\t")
                write.table(res, outfile,sep="\t",col.names=F,row.names=F,quote=F,append=T)
            }
        }else{
            print("something is error")
        }
    }
}
用 python df 计算相关性
Python
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pandas as pd
from scipy import stats
import numpy as np


def get_dfcorr(df1, df2):
    """
    按行计算df1(gene1) 和 df2(gene2) 中数据的相关性, 其中 df1、2的列数可以不相等,method="pearson"
    100W 1m32s
    df 中 列为组织名称,行为基因名称
    """
    df1 = df1.loc[~(df1 == 0).all(axis=1), :]
    df2 = df2.loc[~(df2 == 0).all(axis=1), :]
    df1index = df1.index.tolist()
    df2index = df2.index.tolist()
    list1, list2 = df1.values.tolist(), df2.values.tolist()
    list_r = []
    for n, x in enumerate(list1):
        for m, y in enumerate(list2):
            a = np.array(x).astype(float)
            b = np.array(y).astype(float)
            r, p = stats.pearsonr(a, b)
            listtmp = [df1index[n], df2index[m], r, p]
            list_r.append(listtmp)
    df = pd.DataFrame(list_r, columns=["gene1", "gene2", "correlation", "pvalue"])
    return df

给你的linux创建一个回收站

给你的linux创建一个垃圾篓/回收站,防误删

创建一个垃圾回收站,保存被删除距今3天的文件,过期则被删除

1. 在你的主目录下,创建文件夹 .trash

Bash
1
2
cd ~
mkdir .trash

2. 在你的常用脚本目录下创建这俩脚本

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/bash
TRASH_DIR="/home/lixy/.trash"

for i in $*; do
    STAMP=`date +%s`
    fileName=`basename $i`
    if [[ -d $TRASH_DIR/$fileName.$STAMP  ]];then
        mkdir $TRASH_DIR/$fileName.$STAMP
    fi
    mv $i $TRASH_DIR/$fileName.$STAMP
done
Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
##################################################
# File Name   : /home/lixy/bin/removeRF.sh
# Author      : biolxy
# E-mail      : biolxy@aliyun.com
# Created Time: Wed 17 Apr 2019 02:48:47 PM CST
##################################################
#!/bin/bash
# 该文件夹下文件名字格式为    : JZ201810081226.1555481687
# 文件夹即为你设置的垃圾箱地  : /home/lixy/.trash
inputdir=`realpath $1`
STAMP=`date +%s`
cd ${inputdir}
for i in `ls -a $inputdir `
do
    fileRemoveTime=${i##*.} # 表示从左边开始删除最后(最右边)一个 . 号及左边的所有字符
    #if [ $fileRemoveTime ]  # 检测字符串是否为空,不为空返回 true。
    # ${#fileRemoveTime} 返回字符串长度,也是一个str
    if [ ${#fileRemoveTime} = 10 ] # = 检测两个字符串是否相等,相等返回 true; 检测字符串长度是否等于10,等于则返回 true。
    then
        # echo $STAMP $fileRemoveTime
        # echo ${#fileRemoveTime}
        difference=$[ $STAMP - $fileRemoveTime ]  # 支持的运算符与let相同,但也只支持整数运算
        # echo $difference
        # 24 * 60 * 60 * 3 = 259200 s   即 3 天
        if [ $difference -gt 259200 ];then
            echo "# `date` : rm file $i"
            /usr/bin/rm -rf $i
        fi
    fi
done

3. 用 remove.sh 替换 rm

Bash
1
2
3
4
vim ~/.bashrc   # 你用的是zsh的话就改为 ~/.zshrc
chmod +x /home/lixy/bin/remove.sh   # 给remove.sh 添加可执行权限
alias rm='/home/lixy/bin/remove.sh'    # 替换rm, 保存退出
source ~/.bashrc  # 刷新环境变量
替换过之后,rm 删除的文件,会被移动到 /home/lixy/.trash 文件夹,并且会在文件后添加 .1555481687的后缀,该后缀为删除时的时间(秒)

4. 添加定时任务

Bash
1
30 6 * * * /bin/bash /home/lixy/bin/removeRF.sh /home/lixy/.trash  > /home/lixy/.trash/remove.log
每天早上6.30 调用脚本,删除指定的.trash 文件夹下的文件,脚本中会根据文件移动到.trash 时添加的后缀,判断移动时间,移动时间大于3天的,即被 /usr/bin/rm 强制删除

我的第一个Dockerfile

软件

该docker包含几个我常用的软件:

  • 基于 CentOS Linux release 7.3.1611 (Core)

  • axel 下载数据用

  • git
  • zsh-syntax-highlighting.git # git 插件 谁用谁知道
  • vim
  • gcc g++ make # 额这个没有,装这个 镜像体积太大了
  • zsh
  • miniconda 64bit python=2.7

Dockerfile 内容

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
FROM centos:7.3.1611
MAINTAINER biolxy <biolxy@goodrain.com>

# Set timezone
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN yum update -y
RUN yum install curl vim wget \
    gettext gettext-devel autoconf automake libtool openssl \
    openssl-devel zsh -y
RUN yum install bzip2 -y

# yum clean
RUN rm -rf /var/lib/apt/lists/*

# mkdir app
RUN mkdir -p /app
# Set WORKDIR
WORKDIR /app

# install axel
RUN git clone https://github.com/axel-download-accelerator/axel.git
RUN cd axel && autoreconf -i && ./configure && make && make install

# install zsh
RUN chsh -s `which zsh` root
COPY install.sh /app/install.sh
RUN chmod +x /app/install.sh
COPY oh-my-zsh /app/oh-my-zsh
RUN /app/install.sh
# install zsh-syntax-highlighting
RUN git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# add plugins
RUN echo "plugins=(plugins zsh-syntax-highlighting)" >> ~/.zshrc
RUN echo "source \$ZSH/oh-my-zsh.sh" >> ~/.zshrc
# install conda
COPY Miniconda2-latest-Linux-x86_64.sh /app/Miniconda2-latest-Linux-x86_64.sh
RUN /bin/bash /app/Miniconda2-latest-Linux-x86_64.sh -b -p /opt/conda && \
    rm /app/Miniconda2-latest-Linux-x86_64.sh && \
    echo "export PATH=/opt/conda/bin:$PATH" >> ~/.zshrc
RUN echo "export PATH=/opt/conda/bin:$PATH" >> ~/.bashrc
RUN source ~/.bashrc && conda clean --all -y

创建docker image

Text Only
1
docker build -t devtools:v3.0 .

参考

  • https://www.oschina.net/question/584116_2209819

编程类开放书籍荟萃[转]

说明

原文地址在 这里,因为有的内容我不需要,所以只把对我有用留下,放在github是为了方便我自己查找。

操作系统

C/C++

计算机科学的基础

Python

Shell

AWK

R

Perl

编程艺术

web服务器

版本控制

NoSQL

MySQL

项目相关

生物信息学

书单

精品视频推荐

分类 课程名称 作者 来源 备注
C语言 程序设计入门 翁恺 MOOC https://yam.gift/2018/06/20/C/2018-06-20-C-Weng-ZhejiangUniversity/
C++ 面向对象程序设计_C++ 翁恺 MOOC https://github.com/Libaier/ABC/tree/master/c%2B%2B
操作系统 操作系统原理 向勇、陈渝 实验楼、MOOC、学堂在线 - 配套上机实验地址: https://www.shiyanlou.com/courses/221 github上的课程项目: https://github.com/chyyuu/os_course_info
C++ C++面向对象高级开发 Part1&2 侯捷 GeekBand、Boolan https://github.com/FangYang970206/Cpp-Notes
Java 面向对象程序设计 翁恺 MOOC https://www.icourse163.org/course/ZJU-1001542001 https://github.com/pageYe123/JavaMOOC_icourse
数据结构(C++) 数据结构(上&下) 邓俊辉 MOOC https://github.com/HuyuYasumi/DSA_CPP_Deng https://www.xuetangx.com/courses/course-v1:TsinghuaX+30240184+sp/about

github 优质资源

  1. freeCodeCamp/freeCodeCamp 免费代码训练营
  2. EbookFoundation/free-programming-book 免费编程图书
  3. CyC2018/CS-Notes 国人编写的计算机基础教程,中文
  4. jwasham/coding-interview-university 面试考点总结
  5. vinta/awesome-python Python 的一些优质资源. 前面提到的 awesome 系列列表,不再赘述
  6. github/gitignore GitHub 提供的各种项目的 gitignore 文件模板,省了自己写了

Linux安装rar解压软件

系统环境

centOS7

Bash
1
2
3
4
5
[root@dbf69ae824f9 TCR]# uname -m&&uname -r
x86_64
3.10.0-514.21.1.el7.x86_64
[root@dbf69ae824f9 TCR]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)

下载软件包

Bash
1
2
3
4
5
wget http://www.rarlab.com/rar/rarlinux-3.8.0.tar.gz
tar zxvf rarlinux-3.8.0.tar.gz
cd rar
make
make install 

注意:安装需要root权限,没有的话建议用docker尝试,或者自己修改makefile里面的PREFIX 路径

遭遇bug

在尝试解压文件时:

Bash
1
rar x example.rar 

遇到报错:

Bash
1
bash: /usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

解决

解释:是因为64位系统中安装了32位程序

解决方法:

Bash
1
yum install glibc.i686

再次尝试解压文件,又遇到报错:

Bash
1
error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决办法:

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
[root@dbf69ae824f9 rar]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: mirrors.shu.edu.cn
 * extras: mirrors.163.com
 * updates: mirrors.163.com
libstdc++-4.8.5-36.el7.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Provides    : libstdc++.so.6



libstdc++-4.8.5-36.el7.i686 : GNU Standard C++ Library
Repo        : @base
Matched from:
Provides    : libstdc++.so.6



[root@dbf69ae824f9 rar]#

yum whatprovides libstdc++.so.6该命令会提示哪个安装包有这个库文件如上,libstdc++-4.8.5-36.el7.i686 这个包可以提供 libstdc++.so.6库,执行

Bash
1
yum install libstdc++-4.8.5-36.el7.i686

然后,rar 就可以用了

rar -h 查看使用帮助。

参考

  • https://haiwei2009.iteye.com/blog/1908263
  • http://blog.51cto.com/oldboy/597515

Git develop SOAP

我的流程

1. 要从Github下载一个项目,需要用到clone命令。

Bash
1
git clone xxxxxxx.git

2. 创建并切换到新建的分支

Bash
1
git checkout -b feature-A develop

然后可以在新的分支上愉快的写代码开发新功能了,开发测试完毕后:

3. 用add命令来添加新写的代码,commit命令用来提交新写的代码

Bash
1
2
git add feature-A
git commit -m "add feature A"

4. add命令执行后,修改被保存到暂存区。可以理解为你操作本地文件按了下ctrl + s

接下来,不可以直接用到merge命令,合并feature-A分到develop去,如果这样做,很可能出现冲突。因为可能出现有很多人在develop分支上更新。所以你这个时候用pull命令,把远程仓库的更新取回并更新。

shell git checkout develop git pull origin develop

5. 然后再切换回自己的分支,用rebase命令合并新更新到自己目前工作的分支。

Bash
1
2
git checkout feature-A
git rebase develop

一般情况下rebase都是会有冲突的,详细查看冲突可以用命令git status然后就会显示哪个文件有冲突,然后打开有冲突的哪个文件,会发现有一些“<<<<<<<”, “=======”, “>>>>>>>” 这样的符号。

Bash
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
"<<<<<<<" 表示冲突代码开始

"=======" 表示test与分支冲突代码分隔符

">>>>>>>" 表示冲突代码的结束

<<<<<<<  

所以这一块区域test分支的代码

=======  
这一块区域develop分支的代码

>>>>>>> 

rebase 和 merge的另一个区别是rebase 的冲突是一个一个解决,如果有十个冲突,先解决第一个,然后用命令

shell git add -u git rebase --continue

继续后才会出现第二个冲突,直到所有冲突解决完,而merge 是所有的冲突都会显示出来。

所以rebase的工作流就是

Bash
1
2
3
4
5
6
7
8
9
git rebase 
while(存在冲突) {
    git status
    找到当前冲突文件,编辑解决冲突
    git add -u
    git rebase --continue
    if( git rebase --abort )
        break; 
}

最后冲突全部解决,rebase成功!!

6. 合并分支git merge --no-ff feature-A 到develop

Bash
1
2
3
git checkout develop
git pull
git merge --no-ff feature-A

7. 更新到gitlab

Bash
1
git push origin develop

引用部分

项目中长期存在的两个分支

  • master:主分支,负责记录上线版本的迭代,该分支代码与线上代码是完全一致的。
  • develop:开发分支,该分支记录相对稳定的版本,所有的feature分支和bugfix分支都从该分支创建。

其它分支为短期分支,其完成功能开发之后需要删除

  • feature/*:特性(功能)分支,用于开发新的功能,不同的功能创建不同的功能分支,功能分支开发完成并自测通过之后,需要合并到 develop 分支,之后删除该分支。
  • bugfix/*:bug修复分支,用于修复不紧急的bug,普通bug均需要创建bugfix分支开发,开发完成自测没问题后合并到 develop 分支后,删除该分支。
  • release/*:发布分支,用于代码上线准备,该分支从**develop**分支创建,创建之后由测试同学发布到测试环境进行测试,测试过程中发现bug需要开发人员在该release分支上进行bug修复,所有bug修复完后,在上线之前,需要合并该release分支到**master**分支和**develop**分支。
  • hotfix/*:紧急bug修复分支,该分支只有在紧急情况下使用,从**master**分支创建,用于紧急修复线上bug,修复完成后,需要合并该分支到**master**分支以便上线,同时需要再合并到**develop**分支。

参考

  • https://segmentfault.com/a/1190000008209343
  • http://www.open-open.com/lib/view/open1451353135339.html
  • http://www.open-open.com/lib/view/open1461324562769.html
  • https://blog.csdn.net/chenansic/article/details/44122107

你是否工作的开心?

1、 自我决定论

mark

自我决定论认为,满足上述三个条件,人心里健康和幸福感才能获得保障。

参考:

我的几点看法:

  1. 写博客有利于获得提高自我效能感。在博客中不断的记录下你工作中遇到的困难和你的解决办法,当有一天,你回头看看以自己曾今的博客,会发现那是翻过一座座高山,趟过一条条大河的足迹,是一点点打怪升级的历练,你会对未来的看法更加乐观,更加自信!
  2. 和同事的交流互动是必要且重要的。你不需要刻意逢迎,也不可能和所有人成为知己,但是应该表现出**容易交流,并且有礼貌**。更何况,人类有社会属性,你也不例外。
  3. 加强主观能动性。你可能无法决定工作的内容方向,但更主动的参与,变相提高**自主权**,也能缓解工作的压抑,不让自己时时刻刻觉得自己是被迫出售劳动力的那个人。我要再提一下写博客的重要性,要多反思,多总结,在被动工作获得主动的提升。"别人出钱请你让你给自己刷怪练级,有啥不乐意的?"

软件著作权申请流程

1、 网页账户注册

  • 注册账户
  • 注册账户
  • 注册后登陆界面如下:
  • 点击修改资料, 完善个人信息,填写手机号和邮箱
  • 点及我要登记R11.计算机软件著作权登记申请
  • 填写你的各项信息,注意区分企业法人自然人, 申请人的地址按身份证上的填写
  • 浏览器右键打印(单面打印,后续所有表格均为单面打印)该申请表(全名为计算机软件著作权登记申请表),在最后页申请人签章: 处盖公司公章
    • 该表右上方有流水号,若同一账户有多份申请表需要注意,稍后会用到

2、 准备纸质材料

  • 准备其他纸质材料:
    • 软件源代码
      • Calibri 字体,10 码,黑色
      • 源代码的前30页和后30页,多一页少一页都不行(再次强调单面打印)
      • 标明页码,每页50行左右(+-5)(word设置每页50行)
    • 计算机软件合作开发合同
      • 通常是你和你公司签订
      • 需要公司盖公章
      • 开发人圆签名,并写上日期
      • 日期时间应该比计算机软件著作权登记申请表 上的开发完成日期
    • 开发人员身份证正反面复印件
      • 每个开发者一份,签名,并写上 仅供软件著作权申请使用
    • 企业营业执复印件
      • 盖上企业公章
      • 写上仅供软件著作权申请使用
    • XX软件使用手册
      • 目录如下
      • 标明页码,并且更新目录
        Text Only
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        目录  
        XXXXXX软件  
        用户手册
        1 引言   
        1.1 编写目的   
        1.2 背景  
        1.3参考资料  
        2 软件概述  
        2.1 软件用途  
        2.2 软件功能  
        2.3 软件性能  
        3 运行环境  
        3.1 硬件设备  
        3.2 软件环境  
        4 使用说明  
        4.1 软件安装与运行  
        4.2 输入输出文件  
        4.3 举例  
        

3、 微信预约

  • 关注微信公众号
    • 微信号 CPCC1718
    • 公众号名: 中国版权服务
  • 找到 微平台
    • 点击 快速预约
    • 点击 华东版权登记大厅 (上海所属版权地区)
    • 填写预约登记信息
    • 如果有多份软著申请,注意区分流水号

4、 地址

  • 中国版权保护中心 上海市闵行区莘庄工业园IF如果创意园春东路508

5、 注意事项

  • 预约手机号必须是 账号绑定的手机号,无法更改
  • 填写 计算机软件著作权登记申请表 时,无论是走 代理人 还是 著作权人 申请途径,均需要申请人本人亲自去,后续所有的流程均由该人办理
  • 预约需要提前 1 个工作日, 不可当天申请当天去
  • 著作权人 中若包含外国人,需要提供公证后的 护照翻译件(复印件),本人签名
  • 30工作日后领取证书,可登陆中国版权保护中心查询进度,证书印制后三个工作日才可领取
  • 若材料有问题:
    • 代码和软件说明书出问题,当日即可修改
    • 需要签字或盖章的材料,需要接受补证通知,重新准备材料或申请书
      • 申请书 此时只能修改一次(可保存,先不提交)
  • 工作人员上午11:30 下班,下午1点上班

将cd和ls两个命令组合起来使用

1、 将 cd 和 ls 两个命令组合起来使用

效果:很明显,可以少敲一次命令

1.1、 具体实现

编辑 .bashrc文件(如果你用的时zsh或者时csh 就去编辑其对应的配置文件,如~/.zshrc~/.cshrc

在文件中添加如下的一个函数cl

Bash
1
2
3
4
5
cl() {
    cd "$@" && ls
}

alias 'cd'=' cl'

保存退出,刷新

Bash
1
2
3
source ~/.bashrc 
source ~/.zshrc
source ~/.cshrc

在终端里敲 cl /home 查看效果

该命令是 cd 和 ls 的组合命令,若cd命令执行失败,则 ls 命令不会执行

1、 R 拓展包的安装

1.1、 官方在线安装

例如:安装 "ggplots" 包

S
1
2
options(CRAN="http://cran.r-project.org");
install.packages("ggplots");

1.2、 本地安装

将安装包下载到本地,然后本地安装

我一般都在这俩地址下载:

  • https://mirrors.tuna.tsinghua.edu.cn/CRAN/
  • http://bioconductor.org/

注意win下的地址的写法

S
1
install.packages("C:\\ggplot2.zip",contriburl=NULL)
1.3、 通过第三方工具在线安装(bioconductor)

S
1
2
source("http://bioconductor.org/biocLite.R")
biocLite("ggplots")
最新的 使用方法,参见: http://bioconductor.org/install/

1.4、 通过第三方工具在线安装(devtools + github)安装发布在github上的R包

例如:安装 "fishplot" 包,安装GitHub上的R包,需要指定R包的作者,一般这个包的github页面都会介绍安装的步骤

S
1
2
3
install.packages("devtools")
library(devtools)
install_github("chrisamiller/fishplot")
1.5、 github上R包的本地安装

例如:安装 "fishplot" 包, Linux 直接在命令行安装 windows需要在cmd界面安装

Bash
1
2
3
git clone git@github.com:chrisamiller/fishplot.git
R CMD build fishplot
R CMD INSTALL fishplot_0.2.tar.gz

1.6、 内网安装

https://blog.csdn.net/liu365560704/article/details/70321153

2、 常用技巧

S
1
rm(list = ls(all=TRUE))   # 清除变量