Parameter

作者: Latupa_天空之城 | 来源:发表于2019-10-13 20:54 被阅读0次
    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信息!

    相关文章

      网友评论

        本文标题:Parameter

        本文链接:https://www.haomeiwen.com/subject/yymkmctx.html