Parameter

Zcat

Zcat是一个命令行实用程序,用于查看压缩文件的内容,而无需对其进行解压缩。
它将压缩文件扩展为标准输出,使您可以查看其内容。另外,zcat与运行gunzip -c命令完全相同。
-f:要查看普通文件的内容,请使用-f标志,例如,类似于cat命令 。 zcat -f users.list
-l:要获取压缩文件的属性(压缩大小,未压缩大小,比率 - 压缩率(0.0%,如果未知),uncompressed_name(未压缩文件的名称),请使用-l标志。 zcat -l users.list.gz
-V:显示指令的版本信息 。zcat -V
-L:显示软件许可信息。zcat -L
-q:要禁止所有警告,请使用-q标志,如图所示。zcat -q users.list.gz
man zcat:查看zcat的相关信息。man zcat
zcat file1.gz file2.gz:要查看多个压缩文件,请使用带有文件名的以下命令。zcat users.list.gz apps.list.gz

Trimmomatic
  1. Download:wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.39.zip
    http://www.usadellab.org/cms/?page=trimmomatic
  2. Unzip:unzip Trimmomatic-0.39.zip
  3. Enter:cd Trimmomatic-0.39
  4. Add to environment:
    sudo gedit ~/.bashrc
    export PATH=/home/wushsh/Software/Package/7_trimmomatic/Trimmomatic-0.39:$PATH
    source ~/.bashrc
    PE/SE 设定对Paired-End或Single-End的reads进行处理,其输入和输出参数稍有不一样。
    -threads 设置多线程运行数
    -phred33 设置碱基的质量格式,可选pred64
    ILLUMINACLIP:TruSeq3-PE.fa:2:30:10 切除adapter序列。参数后面分别接adapter序列的fasta文件:允许的最大mismatch数:palindrome(回文)模式下匹配碱基数阈值:simple模式下的匹配碱基数阈值。
    LEADING:3 切除首端碱基质量小于3的碱基
    TRAILING:3 切除尾端碱基质量小于3的碱基
    SLIDINGWINDOW:4:15 从5'端开始进行滑动,当滑动位点周围一段序列(window)的平均碱基低于阈值,则从该处进行切除。Windows的size是4个碱基,其平均碱基质量小于15,则切除。
    MINLEN:50 最小的reads长度
    CROP:<length> 保留reads到指定的长度
    HEADCROP:<length> 在reads的首端切除指定的长度
    TOPHRED33 将碱基质量转换为pred33格式
    TOPHRED64 将碱基质量转换为pred64格式
Split

命令行输入man split或者split --help可以查看split参数的英文说明
-a, --suffix-length=N use suffixes of length N (default 2) 输出文件后缀长度,默认为:2
-b, --bytes=SIZE put SIZE bytes per output file 按照文件大小分割文件,单位:字节
-d, --numeric-suffixes use numeric suffixes instead of alphabetic 添加数字后缀(因为默认添加的是字母后缀,所有要想加数字需要自己添加)
-l, --lines=NUMBER put NUMBER lines per output file 按照行数分割文件,默认1000行一个文件
-C, --line-bytes 大小 指定每个输出文件里最大行字节大小
--verbose print a diagnostic just before each output file is opened 打印运行状态信息
--help display this help and exit 查看说明文档
--version output version information and exit 查看版本信息

  • Example
    zcat MOS18020001_R2.fastq.gz | split -l 8000000 -d -a 2 - MOS18020001_R2.fastq
    -l 表示输出文件行数,-d 表示添加数字后缀,-a 表示添加后缀长度,为2时数字为:01, 02, 03, ..., - 表示标准输入,MOS18020001_R2.fastq 为自定义的前缀
    split -b 500m log.txt newfile
    每个文件大小500m,生成的新文件的文件名是newfile后面加上按照aa,ab,ac……来排序的
Samtools

Samtools是一系列处理BAM格式序列的应用。它从SAM(Sequence Alignment/Map)格式输入或者输出为SAM格式,可以进行排序,合并和建立索引,并且允许快速地检索任意区域的读段(reads)。
https://www.plob.org/article/7112.htmlhttp://www.chenlianfu.com/?p=1399

  1. Download:wget https://github.com/samtools/samtools/releases/download/1.9/samtools-1.9.tar.bz2
    http://www.htslib.org/download/
  2. Decompression:tar -xjf samtools-1.9.tar.bz2
  3. Enter:cd samtools-1.9
  4. Configure:./configure --prefix=/pnas/liujiang_group/wushsh/Software/install/samtools-1.9
  5. Make:make
  6. Install:make install
  7. Add to environment:
    vi ~/.bashrc
    export PATH=/pnas/liujiang_group/wushsh/Software/install/samtools-1.9/bin:$PATH
    source ~/.bashrc
    参数View:view命令的主要功能是:将sam文件转换成bam文件;然后对bam文件进行各种操作,比如数据的排序(不属于本命令的功能)和提取(这些操作是对bam文件进行的,因而当输入为sam文件的时候,不能进行该操作);最后将排序或提取得到的数据输出为bam或sam(默认的)格式。
    bam文件优点:bam文件为二进制文件,占用的磁盘空间比sam文本文件小;利用bam二进制文件的运算速度快。
    view命令中,对sam文件头部的输入(-t或-T)和输出(-h)是单独的一些参数来控制的。
    Usage: samtools view [options] <in.bam>|<in.sam> [region1 [...]] 默认情况下不加 region,则是输出所有的 region
    -b output BAM 默认下输出是 SAM 格式文件,该参数设置输出 BAM 格式
    -h print header for the SAM output,默认下输出的 sam 格式文件不带 header,该参数设定输出sam文件时带 header 信息
    -H print header only (no alignments),只输出header
    -S input is SAM,默认下输入是 BAM 文件,若是输入是 SAM 文件,则最好加该参数,否则有时候会报错。输入文件为SAM格式,如果确实@SQ头,则需要-t选项
    -u uncompressed BAM output (force -b),输出未压缩的bam文件,该参数的使用需要有-b参数,能节约时间,但是需要更多磁盘空间。
    -c Instead of printing the alignments, only count them and print the total number. All filter options, such as ‘-f’, ‘-F’ and ‘-q’ ,are taken into account. 只做计数
    -1 fast compression (force -b),快速压缩
    -x output FLAG in HEX (samtools-C specific),flag以十六进制输出
    -X output FLAG in string (samtools-C specific),flag以字符串输出
    -c print only the count of matching records,仅打印匹配记录的计数
    -L FILE output alignments overlapping the input BED FILE [null],输出文件与输入的bed文件比对重叠
    -t FILE list of reference names and lengths (force -S) [null],使用一个list文件来作为header的输入
    -T FILE reference sequence file (force -S) [null],使用序列fasta文件作为header的输入
    -o FILE output file name [stdout] 输出文件的名字
    -R FILE list of read groups to be outputted [null] 输出读取组的文件列表
    -f INT required flag, 0 for unset [0] 必须标志,0表示未设置,只输出在FLAG中含有整个INT的序列,INT可以使用十六进制的
    -F NT filtering flag, 0 for unset [0]Skip alignments with bits present in INT [0],跳过含有INT的序列,数字4代表该序列没有比对到参考序列上,数字8代表该序列的mate序列没有比对到参考序列上
    -q INT minimum mapping quality [0] ,跳过MAPQ(定位的质量)比INT小的序列[默认0]
    -l STR only output reads in library STR [null],只输出STR库中的序列
    -r STR only output reads in read group STR [null],只输出在STR读段组中的序列
  • Example
    将sam文件转换成bam文件
    samtools view -bS abc.sam > abc.bam
    samtools view -b -S abc.sam -o abc.bam
    提取比对到参考序列上的比对结果
    samtools view -bF 4 abc.bam > abc.F.bam
    提取paired reads中两条reads都比对到参考序列上的比对结果,只需要把两个4+8的值12作为过滤参数即可
    samtools view -bF 12 abc.bam > abc.F12.bam
    提取没有比对到参考序列上的比对结果
    samtools view -bf 4 abc.bam > abc.f.bam
    提取bam文件中比对到caffold1上的比对结果,并保存到sam文件格式
    samtools view abc.bam scaffold1 > scaffold1.sam
    提取scaffold1上能比对到30k到100k区域的比对结果
    samtools view abc.bam scaffold1:30000-100000 $gt; scaffold1_30k-100k.sam
    根据fasta文件,将 header 加入到 sam 或 bam 文件中
    samtools view -T genome.fasta -h scaffold1.sam > scaffold1.h.sam
    sort:sort对bam文件进行排序。
    Usage: samtools sort [-n] [-m <maxMem>] <in.bam> <out.prefix>
    -m 参数默认下是 500,000,000 即500M(不支持K,M,G等缩写)。对于处理大数据时,如果内存够用,则设置大点的值,以节约时间。
    -n 设定排序方式按short reads的ID排序。默认下是按序列在fasta文件中的顺序(即header)和序列从左往右的位点排序。
    排序
    samtools sort abc.bam abc.sort
    merge:将2个或2个以上的已经sort了的bam文件融合成一个bam文件。融合后的文件不需要则是已经sort过了的。
    Usage: samtools merge [-nr] [-h inh.sam] <out.bam> <in1.bam> <in2.bam>[...]
    -n sort by read names 输入文件是以读段名称排序的,而非染色体定位(当sort中使用-n选项时,此处应该选-n)
    -r attach RG tag (inferred from file names)
    -u uncompressed BAM output
    -f overwrite the output BAM if exist
    -1 compress level 1
    -R STR merge file in the specified region STR [all]
    -hFILE copy the header in FILE to <out.bam> [in1.bam],FILE 使用FILE中的行作为@头拷贝到out.bam中,代替从in1.bam中拷贝的头。(FILE实际上是BAM格式的。但是其中的任何序列信息都会被忽略)。
    *Note:Samtools' merge does not reconstruct the @RG dictionary in the header. Users must provide the correct header with -h, or uses Picard which properly maintain the header dictionary in merging.
Find

https://blog.csdn.net/l_liangkk/article/details/81294260
find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。
如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且将查找到的子目录和文件全部进行显示。
语法:find path -option【 -print 】【 -exec -ok|xargs |grep】【command {} \; 】
path: 要查找的目录路径。
options: 表示查找方式
print: 表示将结果输出到标准输出。
exec: 对匹配的文件执行该参数所给出的shell命令。 形式为command {} ;,注意{}与;之间有空格
ok: 与exec作用相同,区别在于,在执行命令之前,都会给出提示,让用户确认是否执。
|xargs: 与exec作用相同 ,起承接作用区别在于 |xargs 主要用于承接删除操作 ,而 -exec 都可用如复制
-name filename 查找名为filename的文件
-perm 按执行权限来查找
-user username 按文件属主来查找
-group groupname 按组来查找
-mtime -n +n 按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n 按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n 按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup 查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser 查无有效属主的文件,即文件的属主在/etc/passwd中不存
-type b/d/c/p/l/f 查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] 查长度为n块[或n字节]的文件
-mount 查文件时不跨越文件系统mount点
-follow 如果遇到符号链接文件,就跟踪链接所指的文件
-prune 忽略某个目录

Bwa

BWA是一款基于BWT的快速比对工具,其由三个算法组成。这三个算法分别是:BWA backtrack, BWA SW and BWA MEM。
其中,BWA MEM是最新的,其更快更准确,更适合用于人重数据分析
https://blog.csdn.net/herokoking/article/details/79445281

Bwa
  1. Download:wget https://sourceforge.net/projects/bio-bwa/files/bwa-0.7.17.tar.bz2
    https://sourceforge.net/projects/bio-bwa
  2. Decompression:tar -xvjf bwa-0.7.17.tar.bz2
  3. Enter:cd bwa-0.7.17
  4. Make:make
  5. Add to environment:
    vi ~/.bashrc
    export PATH=/pnas/liujiang_group/wushsh/Software/install/bwa-0.7.17:$PATH
    source ~/.bashrc
    Index参数:
    -p STR 输出数据库的前缀[与db 文件名相同]
    -a STR 算法用于构建BWT index。可以使用的选项:is IS线性时间算法用于构建suffix array。需要5.37N内存,N是数据库的大小。IS算法相对较快,但是无法处理数据库大于2GB的数据。因为IS算法比较简单,作为默认值。目前IS算法的脚本由Yuta Mori从新植入。
    mem参数:
    -t INT 线程数目
    -A INT 匹配得分,默认为1
    -B INT 错配得分,序列的错误率估计方法:{0.75exp[-log(4)B/A]},默认为4
    -E INT 空值延伸罚分。一个长度为K的罚分为O+KE
    -L INT 裁剪罚分。
    -k INT 最小种子长度。少于INT的匹配将会被忽略。匹配的速度通常对于这个值不敏感,除非明显偏离20. [19]
    -w INT 空值宽度。必要的说,gaps长于INT将不会被发现。需要注意最大gap长度同时受到评分矩阵和hit长度所影响。并不只由这个选项确定。[100]
    -d INT off-diagonal-X-dropoff (z-dropoff)。如果最好和目前的延伸分数差距大于 |i-j|A+INT,将停止延伸,其中i和j是被比对和参考基因组中的位置。A是匹配得分。Z-dropoff 类似于BLAST 中的X-dropoff,除了该算法中并没有空格罚分。Z-dropoff不仅避免了不必要的延伸,同时减少了在较差的延伸比对中的比对。 [100]
    -r FLOAT 引发长度大于minSeedLen FLOAT的重新搜索。这是启发式算法调节算法性能的关键参数。更大的值产生更少的seeds,导致更快的比对速度但是更低的准确性。[1.5]
    -c INT 丢弃大于INT出现次数的MEM。这是一个不敏感参数。
    -p 在paired-end 模式中,运行SW搜索得到缺失的命中。
    -o INT 空值罚分。 [-6]
    -U INT 对于未配对read对罚分。对于未配对的read对BWA—MEM以scoreRead1+scoreRead2-INT进行评分。评分scoreRead1+scoreRead2-insertPenalty。比较这两种评分从而确定是否应该强制配对。 [9]
    -R STR 完成read group header行 ’\t‘可以在字符串中使用,将会在SAM文件中转换成SAM文件。read group ID也会附在输出文件每一个reads中。 【null】
    -T INT 不要输出比对分数低于INT的比对。这个结果只影响最终结果。 【30】
    -a 输出所有的比对以单端或未配对双端测序方式。
    -c 将FASTA/Q的comment 追加到SAM输出中。选项可以将reads meta信息转移到SAM输出。注意FASTA/Q comment必须符合SAM特定要求。不正确的格式将导致不争取的SAM输出。
    -H 使用大写H在SAM输出文件中,这个选项可以显著的减少输出文件的复杂度。当比对长或Bac序列时。
    -M 标记短split hit为第二个。
    -v IN 控制输出的冗长程度。这个选项并未在BWA完全被支持。理想的,值0 表示不输出到stderr。1表示只输出error。2表示warning和errror。3表示所有信息。4表示对于debug的更高信息。当选项是4时候,输出并不是SAM。 [3]
Hicup

http://blog.sciencenet.cn/blog-2970729-1159899.html

image.png

HiCUP由6个Perl脚本组成,分别如下:
(1) HiCUP Digester:确定reference上的酶切位点
(2) HiCUP:为主程序,依次执行以下步骤
(3) HiCUP Truncater:在reads上寻找酶切位点,并将reads切开
(4) HiCUP Mapper:将reads比对到参考基因组上,如果输入的是PEreads,则R1和R2分开单独比对到reference上。比对内部调用bowtie或bowtie2比对。这一步会利用到事先建好的bowtie2 index
(5) HiCUP Filter:结合HiCUP Digester生成的酶切位点文件,过滤掉常见的Hi-C artefacts,例如Dangling Ends等
(6) HiCUP Deduplicator:移除(仅保留一处最佳比对) PCR重复
image.png

HiCUP的使用:
3.1 先采用bowtie2-build对reference建立索引
/path/to/bowtie2-build reference.fasta reference
3.2 采用hicup目录下的hicup_digester在reference上寻找酶切位点,生成酶切信息文件

/path/to/hicup_v0.6.1/hicup_digester \
     --re1 ^GATC,MboI \
     --genome reference \
     --outdir /path/to/output/dir \
     reference.fast

3.3 再采用hicup主程序进行分析
有两种方式运行hicup,其一是将所有参数写到config文件中,可以先运行
hicup --example 生成样例config文件,修改其中的参数,并运行
或者直接用命令行运行,如下:

/path/to/hicup_v0.6.1/hicup \
     --bowtie2 /path/to/bowtie2 \
     --digest Digest_reference_MboI_None_18-36-52_07-08-2018.txt \
     --format Sanger \
     --index /path/to/reference/index \
     --keep \
     --outdir /path/to/output/dir  \
     --threads 40 \
     /path/to/reads*.fastq.gz

4. 结果解读
最重要的两个文件是:
Ø xx_R1_2.hicup.sam
Ø xx_ R1_2.HiCUP_summary_report.html
前者是最终的sam文件,后者是全程汇总报告
每步结果具体如下:

  1. HiCUP运行后hicup_truncater先生成xx.R1.trunc.fastqxx.R2.trunc.fastq文件,它是按照酶切位点对Reads进行切除,因此得到的reads长短不一。完成后会统计Truncated reads数,Not Truncated reads数,以两者的占比,总的reads数,平均reads长度,并记录在hicup_truncater_summary_xx.txt文件中。两个fastq对应的svg图像中仅绘制了前两项的条形图。
  2. hicup_mapper调用bowtie2-align-s进行比对处理,生成xx_ R1_2.pair.sam文件,同时也统计了太短而无法比对的reads数,唯一比对的reads数,多处比对的reads数,比对不上的reads数,成对的reads数,以及以上各项的占比,记录在hicup_mapper_summary_xx.txt文件中,顺带还画了R1和R2的比对结果条形图(xx_R*_trunc.fastq.mapper_barchart.svg)
  3. hicup_filter对上步生成的sam文件进行过滤,分别将每种invalid ditag类型(包括same internal,same dangling ends,same circularised,re_ligation及其它)过滤掉的比对结果写入到hicup_filter_ditag_rejects_xx/目录下,过滤后可用于下步分析的sam文件为xx_R1_2.filt.sam
    当然,对结果ditag结果也进行了统计,包括valid pairs,invalid pairs,same circularised,same fragment dangling ends,same fragment internal, re-ligation, contiguous sequence, wrong size以及total pairs等类型,记录在hicup_filter_summary_xx.txt文件中。同时也画了Di-tag长度分布svg图和各种类型的svg piechart图。
    image.png
  4. hicup_deduplicator去重,并且计算了序列内的unique reads(<10kb和>10kb分别统计)以及序列间的unique reads,并画了相应的svg图,最终的结果为xx_R1_2.hicup.sam
    注意,这个最终的sam文件中仅存放De-duplication后Unique Di-Tags的Read Pairs,即如下图中的read pairs(强调:是read pairs!)
    最后不仅给出了所有步骤reads数据变化的汇总(HiCUP_summary_report_xx.txt),同时还给给出了非常美观的html报告(xx_ R1_2.HiCUP_summary_report.html)!
    另外,需要强调一点,hicup的结果如果想接到Lachesis做组装。在hicup生成的sam转bam的时候一定要用sort -n,按名字排序!如果用默认的参考序列位置排序,则Lacheis中会生成Cluster信息,但是没有Order信息!
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容