def run_D_to_J(STEPS, LIB, ACC, STAR, OUT_REF2, PROC, STAR_OPT, PREFIX, JAVA,
               PICARD, REF, GATK, PLOIDY, UseUnifiedGenotyperForBaseRecal,
               BAMTOOLS, PYTHON, QUEUE, PATHNAME, DICO_CHR):
    if 'd' in STEPS:
        to_return = utils.run_step_D_RNAseq(LIB, ACC, STAR, OUT_REF2, PROC,
                                            STAR_OPT, PREFIX, QUEUE)
    if 'e' in STEPS:
        to_return = utils.run_step_E_RNAseq(LIB, ACC, PREFIX, JAVA, PICARD,
                                            QUEUE)
    if 'f' in STEPS:
        to_return = utils.run_step_F_RNAseq(ACC, JAVA, PICARD, PREFIX, QUEUE)
    if 'g' in STEPS:
        to_return = utils.run_step_G_RNAseq(JAVA, PICARD, ACC, REF, PREFIX,
                                            QUEUE)
    if 'h' in STEPS:
        to_return = utils.run_step_H_RNAseq(JAVA, GATK, ACC, REF, PREFIX,
                                            QUEUE)
    if 'i' in STEPS:
        to_return = utils.run_step_I_RNAseq(ACC, JAVA, GATK, REF, PLOIDY,
                                            PREFIX,
                                            UseUnifiedGenotyperForBaseRecal,
                                            QUEUE)
    if 'j' in STEPS:
        to_return = utils.run_step_E(ACC, PYTHON, REF, DICO_CHR, PREFIX, QUEUE,
                                     PATHNAME)
    if to_return == 0:
        return 0
    else:
        return to_return
def run_analysis(LIB_DIC, ACC_ID, PLOIDY, OPTIONS, LOCA_PROGRAMS, CONFIG,
                 DICO_CHR, QUEUE, PATHNAME, PARSEUNMAPPED):

    TMP = tempfile.NamedTemporaryFile().name.split('/')[-1]

    REF = CONFIG.get('Reference', 'genome')
    SAMTOOLS = LOCA_PROGRAMS.get('Programs', 'samtools')
    BWA = LOCA_PROGRAMS.get('Programs', 'bwa')
    JAVA = LOCA_PROGRAMS.get('Programs', 'java')
    PICARD = LOCA_PROGRAMS.get('Programs', 'picard')
    GATK = LOCA_PROGRAMS.get('Programs', 'gatk')
    UseUnifiedGenotyperForBaseRecal = 'no'
    PYTHON = LOCA_PROGRAMS.get('Programs', 'python')
    PLOTBAMSTAT = LOCA_PROGRAMS.get('Programs', 'plotbamstats')
    PREFIX = OPTIONS.prefix
    if CONFIG.has_section('Variant'):
        if CONFIG.has_option('Variant', 'UseUnifiedGenotyperForBaseRecal'):
            UseUnifiedGenotyperForBaseRecal = CONFIG.get(
                'Variant', 'UseUnifiedGenotyperForBaseRecal')

    if 'a' in OPTIONS.steps:
        #1 Mapping
        #2 Merging
        to_return = utils.run_step_A(ACC_ID, LIB_DIC, BWA, REF, TMP, JAVA,
                                     PICARD, SAMTOOLS, PREFIX, QUEUE,
                                     PARSEUNMAPPED, PLOTBAMSTAT)

    if 'b' in OPTIONS.steps:
        #3 removing duplicates
        to_return = utils.run_step_B(JAVA, PICARD, ACC_ID, TMP, PREFIX, QUEUE)

    if 'c' in OPTIONS.steps:
        #4 indel realignment
        to_return = utils.run_step_C(ACC_ID, JAVA, GATK, REF, CONFIG, PREFIX,
                                     QUEUE)

    if 'd' in OPTIONS.steps:
        #5 Base recalibration
        to_return = utils.run_step_D(CONFIG, ACC_ID,
                                     UseUnifiedGenotyperForBaseRecal, JAVA,
                                     GATK, REF, PLOIDY, PREFIX, QUEUE)

    if 'e' in OPTIONS.steps:
        #6 GVCF generation
        to_return = utils.run_step_E(ACC_ID, PYTHON, REF, DICO_CHR, PREFIX,
                                     QUEUE, PATHNAME)
    if to_return == 0:
        return 0
    else:
        return to_return