Winstoncleaner-转录组数据交叉污染消除仪

winston-cleaner的Python项目详细描述


温斯顿清洁剂

WinstoCleaner是一个检测和清除交叉污染的软件工具 从组装的转录体中提取的对照。程序使用blast来识别 可疑的contigs和rpkm值,将其排序为正确或 污染。

要求

要运行WinstoCleaner,必须满足以下要求:

安装

  1. 签出存储库

    git clone https://github.com/kolecko007/WinstonCleaner.git

    cd WinstonCleaner

  2. 安装PIP依赖项:

    pip2 install --user -r requirements.txt

  3. 初始化设置:

    cp config/settings.yml.default config/settings.yml

  4. WinstonCleaner文件夹运行test/integration/run.sh检查安装

快速启动

  1. 准备包含输入数据的文件夹和结果的空文件夹
  2. 打开config/settings.yml,并指定输入和输出路径
  3. bin/prepare_data.py
  4. bin/find_contaminations.py
  5. 检查输出文件夹中的结果

用法

输入

输入数据应该作为每个数据集的一组三元组文件显示。 对于每个数据集,都需要准备:

  • 左读.fastq
  • 右读.fastq
  • 汇编转录组.fasta文件

文件名必须采用以下格式:

  • NAME_1.fastq
  • NAME_2.fastq
  • NAME.fasta

例如:

  • brucei_1.fastq
  • brucei_2.fastq
  • brucei.fasta
  • giardia_1.fastq
  • giardia_2.fastq
  • giardia.fasta

对于文件名,只允许使用字母、数字和_符号。

所有文件必须放在一个文件夹中。

配置

所有设置都在config/settings.yml中声明。

  • winston.paths.input-带读取和继续的输入文件夹
  • winston.paths.output-输出包含结果的文件夹
  • winston.paths.tools.pileup_sh-(可选)bbtoolspileup.sh执行命令
  • winston.paths.tools.bowtie2-(可选)bowtie2执行命令
  • winston.paths.tools.bowtie2_build-(可选)bowtie2生成执行命令
  • winston.hits_filtering.len_ratio-点击过滤的最小值qcovhsp
  • winston.hits_filtering.len_minimum-点击过滤的最小点击长度
  • winston.coverage_ratio.regular-常规数据集对类型的覆盖率 (数值越低,污染预测越严格,发现的污染越少)
  • winston.coverage_ratio.close-闭合数据集对类型的覆盖率
  • winston.threads.multithreading-启用多线程(禁用便于调试)
  • winston.threads.count-启用多线程时的线程数
  • winston.tools.blast.threads-用于爆炸处理的线程数
  • winston.tools.bowtie.threads-用于BowTie2处理的线程数
  • winston.in_memory_db-在开始时将覆盖率数据库加载到ram。 使污染查找更快,但需要足够的内存。

默认配置可以在文件config/settings.yml.default中找到。

winston:
  in_memory_db: false

  paths:
    input: /path/to/folder/with/data/
    output: /path/to/output/folder

  hits_filtering:
    len_ratio: 70
    len_minimum: 100

  coverage_ratio:
    REGULAR: 1.1
    CLOSE: 0.04

  threads:
    multithreading:  true
    count:   8

  tools:
    blast:
      threads: 8
    bowtie:
      threads: 8

数据准备

第一步是为winstoncleaner处理准备数据。

bin/prepare_data.py

结果将存储在winston.paths.output选项中指定的文件夹中。

准备完成后,可以检查和编辑文件types.csv。 它包含数据集对及其类型的所有可能组合。

默认类型为:

  • CLOSE-分类上紧密的有机体
  • REGULAR-一对简单的生物体

types.csv中,还可以指定任意数量的自定义类型。 他们的名字必须大写。

predator,prey,95.0,LEFT_EATS_RIGHT
prey,predator,95.0,RIGHT_EATS_LEFT

在这种情况下,每个自定义类型的覆盖率必须在 settings.yml文件:

...
  coverage_ratio:
    REGULAR: 1.1
    CLOSE: 0.04
    LEFT_EATS_RIGHT: 10
    RIGHT_EATS_LEFT: 0.1
...

污染清理

bin/find_contaminations.py

输出

结果将保存在winston.paths.output选项中指定的文件夹中。

对于每个数据集,将有以下文件结构是的。

  • dataset_name_clean.fasta-clean contigs
  • dataset_name_deleted.fasta-污染的contigs
  • dataset_name_可疑点击.csv-所有可疑点击
  • 数据集名称污染源.csv- 具有以下列的污染源:源污染数据集名称、序列数
  • dataset_name_pollutions.csv-检测到污染的爆炸命中列表
  • dataset_name_missing_coverage.csv-没有覆盖率的contig id列表

待办事项

  • 移到python3
  • 日志系统
  • 扩展测试
  • 导出为图形格式

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
为什么sonar认为这个表达式总是错误的   java为什么PrintWriter不能工作?   java将数组从php发送到安卓 studio   java在静态方法中调用非静态方法   java何时使用Swingutiles。invokeAndWait/invokeLater   java jdbc:embeddeddatabase引发HsqlException   java度量Hyperledger结构项目的性能   java将字符串转换为Blob   java如何将文本添加到文本区域而不是替换它   java如何对100GB的字符串进行排序   发生异常错误::java。lang.OutOfMemoryError:Java堆空间   安卓 studio java。lang.NoClassDefFoundError:org。slf4j。帮手。消息格式化程序   当从命令promt运行时,java maven不是运行主类   用于翻转其余端点的功能的java注释   Oracle函数中的java默认值   java如何访问maven。建筑Quarkus中用于资源筛选的时间戳   java如何在一个JText区域中显示大量值JTable选定行   如何在java中用约束注释web服务参数?   java为了获得流信息,我们应该向userFriendlySelector函数传递哪些参数   java Google GSON嵌套哈希映射反序列化