R常用命令

R is a free software environment for statistical computing and graphics. It compiles and runs on a wide variety of UNIX platforms, Windows and MacOS.

1. related to environment variables
Sys.getenv()
Sys.setenv(BINPREF = “”)

## try http:// if https:// URLs are not supported

2. Change directory: setwd(‘E:/’) or setwd(“E:/”)
caveat: use ‘/’ not ‘\’ in windows.
*: list items in the current directory: dir()

3. bioconductor:
options(BioC_mirror=”https://mirrors.ustc.edu.cn/bioc/”) #换成国内的源,用于加速
if (!requireNamespace(“BiocManager”, quietly = TRUE))
install.packages(“BiocManager”)
BiocManager::install(“ChIPseeker”)

4. update, remove packages
update.packages()
remove.packages()

5. upgrade R
library(installr)
updateR()

6. rstudio换源加速

7. BiocManager换源
源列表:https://www.bioconductor.org/about/mirrors/
options(BioC_mirror=”http://mirrors.ustc.edu.cn/bioc/”)

8. local installation of r package:
install.packages(“BiocInstaller_1.20.1.tar.gz”, repos = NULL)
“R -e “install.packages(‘shiny’, repos=’https://cran.rstudio.com/’)””
R CMD INSTALL package.tar.gz

Perl 简写

1. $| 控制对当前选择的输出文件句柄的缓冲
设置为非0的话,表示当前的输出不经过缓存立刻输出.

2. @ARGV 传给脚本的命令行参数列表

3. $_ 默认的输入/输出和格式匹配空间

4. @_ 传给子函数的参数列表

$! 根据上下文内容返回错误号或者错误串
$” 列表分隔符
$# 打印数字时默认的数字输出格式
$$ Perl解释器的进程ID
$% 当前输出通道的当前页号
$& 与上个格式匹配的字符串
$( 当前进程的组ID$) 当前进程的有效组ID
$* 设置1表示处理多行格式.现在多以/s和/m修饰符取代之.
$, 当前输出字段分隔符
$. 上次阅读的文件的当前输入行号
$/ 当前输入记录分隔符,默认情况是新行
$: 字符设置,此后的字符串将被分开,以填充连续的字段.
$; 在仿真多维数组时使用的分隔符.
$? 返回上一个外部命令的状态
$@ Perl解释器从eval语句返回的错误消息
$[ 数组中第一个元素的索引号
$\ 当前输出记录的分隔符
$] Perl解释器的子版本号
$^ 当前通道最上面的页面输出格式名字
$^A 打印前用于保存格式化数据的变量
$^D 调试标志的值
$^E 在非UNIX环境中的操作系统扩展错误信息
$^F 最大的文件捆述符数值
$^H 由编译器激活的语法检查状态
$^I 内置控制编辑器的值
$^L 发送到输出通道的走纸换页符
$^M 备用内存池的大小
$^O 操作系统名
$^P 指定当前调试值的内部变量
$^R 正则表达式块的上次求值结果
$^S 当前解释器状态
$^T 从新世纪开始算起,脚步本以秒计算的开始运行的时间
$^W 警告开关的当前值
$^X Perl二进制可执行代码的名字

$~ 当前报告格式的名字
$` 在上个格式匹配信息前的字符串
$’ 在上个格式匹配信息后的字符串
$+ 与上个正则表达式搜索格式匹配的最后一个括号
$< 当前执行解释器的用户的真实ID
$ 含有与上个匹配正则表达式对应括号结果
$= 当前页面可打印行的数目
$> 当前进程的有效用户ID包含正在执行的脚本的文件名
$ARGV 从默认的文件句柄中读取时的当前文件名
%ENV 环境变量列表
%INC 通过do或require包含的文件列表
%SIG 信号列表及其处理方式

@INC 在导入模块时需要搜索的目录列表
$-[0]和$+[0] 代表当前匹配的正则表达式在被匹配的字符串中的起始和终止的位置

Bio::SeqIO

It’s in the package “Bioperl“->”Bio::SeqIO“.

1.open file

2. readin one sequence

3. variable

Annotation Coordinates

1-based

programming language:
1). R

software:
1). samtools;
2). annovar;
3). stringtie (gtf file,gene_abundance file);
4). blast (blastn,tblastn)

file format:
1). vcf:只有第二列为POS信息;
2). sam/bam:只有第四列为POS信息;
3). gff (闭区间):第四列和第五列给定开始和结束
1. gff格式还要注意其strand(正负链)和phase(要从该feature开头移走的碱基个数)
2. 这个维基百科网页(https://en.wikipedia.org/wiki/General_feature_format)在说和bed一样为half-open(半开),估计误导了一大片人。
4). the Description of Sequence Variants (nomenclature)
5). gencode: 第四列和第五列给定开始和结束
6). ANNOVAR input file

==========================================

0-based

software:
1). blat(output: psl);

file format:
1). bed(左闭右开):
1. 注意给strand;
2. 第二列和第三列给定开始和结束 (比如3 5,包含的是第4个碱基到第5个碱基之间的序列[这里的第4和第5是在1-based的坐标语境中],一共2个碱基);

2). psl(左闭右开):
1. blat在用

windows cmd grammar

  1. 命令别名:doskey
    doskey ls = dir
    doskey vi=vim $*: 如果没有$*,敲击缩写时的参数不会被传递给缩写。
    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/doskey
  2. @:在命令开头加@可以关闭运行本命令时打印本命令。
    @echo foo: 不会先打印echo foo,再打印foo;而是直接打印foo。
  3. cmd启动时自动运行一个bat脚本
    1. 创建一个.bat文件,假设保存在/c/a.bat
    2. win+r, regedit, 启动注册表编辑器
    3. 找到下面的位置:
    计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor
    4. 右键-新建-字符串值,名字“AutoRun”,数值数据,“/c/a.bat”
    5. 这样,以后启动cmd的时候,就会先运行这个bat
  4. dafds

GLIBC的故事

1. 安装glibc-2.29 (系统:Linux version 2.6.32)

GNU libc requires kernel header files from Linux 3.2.0 or later to be installed before configuring. checking installed Linux kernel header files… missing or too old!

2. libc.so.6 GLIBC_

3. 动了GLIBC,可能会出现:
1. conda无法工作
2. R无法编译
3. 系统工具无法工作

4.

Acrobat Pro DC 使用手册

1. acrobat 不支持修改快捷键,只能使用默认的快捷键。

1. 缩放:ctrl+2, 适合宽度;ctrl+1, 实际大小
2. 隐藏:F8 隐藏工具栏,F9隐藏菜单栏
3. 添加文本注释:
4. 首选项:ctrl+k
5. 手型工具:h
6. 选择文本工具:v
7. 高亮文本工具:u

 

2. adobe有一个fast web view,如果pdf启用了,每次保存速度非常慢。当我在学习一个文档时,会常常保存,每次保存我都无法操作pdf,且需要等待很久。所以,我需要关闭这个功能。
编辑->首选项->文档,在保存设置下,关闭,另存为优化快速web查看。最后点击确认。

notes of ANNOVAR

1. 坐标系: By default, 1-based coordinate system is used.

2. 核心程序: annotate_variation.pl

3. 注释类型: gene-based (-geneanno), region-based (-regionanno) and filter-based (-filter) annotations.

4. 输出结果:
a. The first file contains annotation for all variants, by adding two columns to the beginning of each input line.
b. The second output file contains the amino acid changes as a result of the exonic variant.

5. 重点定位:
What about GFF3 file for new species?(http://annovar.openbioinformatics.org/en/latest/user-guide/gene/)

gff3ToGenePred                                                                               (http://hgdownload.soe.ucsc.edu/admin/exe/linux.x86_64/)

6.特别注意:
annovar注释以后,会把InDel的坐标改了。比如:
原来是,    133,ACTG->A,
修改后是,134,CTG->-。

Windows10 debug & optimize

linux-problem set

  1. ^M=ctrl v+ctrl m
  2. wc -l 根据换行符统计行数,如果最后一行没有换行符,就会统计少一行。
    如何为最后一行补充换行符?
    sed -i -s ‘$s/$/\n/;P;d;’ file
    #sed命令解读
    #-i: 原地编辑,具体实现为,输出到一个新的文件,输出结束后,使用mv修改名字为原文件
    #-s: 不要将参数中给定的多个文件视作一个文件,而是单独看待
    #‘$s/$/\n/;P;d’: 第一个$是定位符,只处理最后一行;P,输出模式空间内容,单截止于第一个回车符;d删除模式空间,直接开始下一次cycle。
    #补充说明:sed有一个默认操作,开始时移除当前行末的所有换行符,结束时输出模式空间,如果移除过换行符,补回换行符。
  3. foobar

framework of ML/DL

1. framework: keras, xgboost…

2. hyperparameters: tune

3. rationale: 多层感知机、卷积神经网络、自编码器…

将原理使用框架实现出来,并找到尽可能优秀的参数。

problems of saving webpage

保存网页的时候,会有各种不如意的地方,找不到令人满意的工具。现在记录下来各种问题,以后有机会自己开发一款趁手好用、小巧的网页转pdf的工具。

1. 保存的网页会被自动切成好几个小块,切的地方会让后续的阅读很困扰,比如从图片中间切,从一个重要的段落中间切。

2. 保存的网页字体很难看

3. 滚动截屏速度很慢

4. chrome, devtools, screenshot, 保存的图片分辨率较低

git usage

1. 提交

git add .

git commit -m “your comments about this submission”

git push origin master

2. 同时开发,解决冲突

背景:
实际工作中,一定会出现多个人共同开发一个软件,但是大家负责不同的功能。基于git,大家可以各自创建一个分支,完成自己的分支工作后,再merge回去。

问题:
如果同事A修改了某个文件F的格式,但是同事B依赖该文件原来的格式。A先提交成功了,B再提交,B就无法运行成功了,因为F的格式变了。任何一个人,merge之前应该先做测试,证明merge后能够正常运行,才能真正merge。又或者,大家应该有一个约定,有的文件是不能动的。

3. git clone

4. windows下git对路径名长度存在限制,即使win10系统本身解除了这个限制。
git config –global core.longpaths true
但是没用,仍然报错:fatal: ‘$GIT_DIR’ too big

5. foobar

plink

1. plink常用格式:
https://www.cog-genomics.org/plink/1.9/formats#ped
ped, map
bed, bim, fam

2. plink gwas

3. plink homepage:
1.07: http://zzz.bwh.harvard.edu/plink/index.shtml
1.9 & 2.0: https://www.cog-genomics.org/plink/

#snp2bedbimfam
plink –23file JPT-NA19001.snp JPT ID002 –out JPT-NA19001

#去除有问题的snp
plink –bfile JPT-NA19001 –exclude merge.missnp –make-bed –out new

#merge单个文件
plink –bfile source1 –bmerge source2_trial –make-bed –out merged_trial

#merge多个文件
plink –merge-list merge_list –make-bed –out merge

conda usage & debug

  1. 使用conda install安装时,如果下载到一半,断网中断了安装;下次再安装就会core dump;
    解决办法:删除 $(which conda)/../../pkgs 下面的中断的时候正在下载的包即可。
  2. foobar

advanced shell programming

  1. 使用$(command),将command的返回值作为另一个命令的组成部分
    grep $(head -n1 a.txt) a.txt
  2. daily & sophisticated shell built-in commands
  3. sed [stream editor]
  4. $’string’

     
  5. set -x
  6. I/O重定向
  7. 在双引号内使用单引号,不需要加反斜线;使用双引号需要加反斜线;
  8. eval
  9. xargs
  10. awk [Aho Weinberger Kernighan]
  11. truncate last line
  12. 12

centos 8 管理

1. 清除无用内核及其对应的modules等文件

2. 修改grub参数

3. 添加仓库

1. yum config-manager –set-enabled PowerTools
2. yum install epel-release

4. 安装X11

尝试过的方案:
1. 借由安装xclock,系统会自动安装其所依赖的X11相关组件
yum install xclock
2. yum dep 安装R依赖
3. 手动编译R包:
3.1 给定路径:

./configure –prefix=/home/nott/00.software/00.common/R-3.6.1/ –x-libraries=/usr/lib64 –x-includes=/usr/include/
3.2 去掉conda
4. 暂时方法:使用CairoX11()

4. foobar

Excel 编程

1. 统计所有sheet的总列数

 

2. foobar

The support of gamma function in Perl

I want a gamma function and try to install Math::GammaFunction package in Perl but fail finally.
The last update of this package is 2007.1.
I can guess the grammar of this package is far from the current standard.
Finally I decide to use Python.