Example #1
0
    def test5_10_duplicate(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq],,,,
A_tumor,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq,,
pool1,{sample_dir}/B1.fq,{sample_dir}/B2.fq,,
pool2,{sample_dir}/B1.fq,{sample_dir}/B2.fq,,

[fusionfusion]
A_tumor,list1

[controlpanel]
list1,pool1
list1,pool2
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #2
0
    def test6_06_unformat(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[bam_import]
A_tumor,{sample_dir}/A.Aligned.sortedByCoord.out.bam,{sample_dir}/B.Aligned.sortedByCoord.out.bam
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #3
0
    def test6_02_unformat_ok(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq],,,,
A_tumor,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq,{sample_dir}/A2.fastq
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertFalse(fail)
Example #4
0
    def test2_04_not_exists(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[bam_tofastq],,,,
A_control,{sample_dir}/X.Aligned.sortedByCoord.out.bam,,,
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
def main(args):

    ###
    # set run_conf
    run_conf = rc.Run_conf(
        sample_conf_file=args.sample_conf_file,
        project_root=args.project_root,
        gcat_conf_file=args.gcat_conf_file,
    )
    #run_conf.analysis_type = args.analysis_type
    #run_conf.drmaa = False if args.disable_drmaa else True
    run_conf.runner = args.runner
    run_conf.retry_count = args.retry_count

    # disable params
    # - args.multiprocess
    # - args.param_check

    ###
    # set gcat_conf and task parameter config data
    defaut_conf = pkg_resources.resource_filename(
        'gcat_workflow', args.analysis_type + '/data/default.ini')
    gcat_conf = gc.gcat_conf(conf=run_conf.gcat_conf_file,
                             default_conf=defaut_conf,
                             exist_check=not args.ignore_invalid_path)
    gcat_conf.software_version_set()

    if args.analysis_type == "rna":
        import gcat_workflow.rna.sample_conf as sc
        import gcat_workflow.rna.configure as configure

    elif args.analysis_type == "germline":
        import gcat_workflow.germline.sample_conf as sc
        import gcat_workflow.germline.configure as configure

    elif args.analysis_type == "somatic":
        import gcat_workflow.somatic.sample_conf as sc
        import gcat_workflow.somatic.configure as configure

    sample_conf = sc.Sample_conf(run_conf.sample_conf_file,
                                 exist_check=not args.ignore_invalid_path)
    configure.main(gcat_conf=gcat_conf,
                   run_conf=run_conf,
                   sample_conf=sample_conf)
Example #6
0
    def test4_04_duplicate(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[sra_fastq_dump],,,,
tumorA,RUNID123
tumorA,RUNID456
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #7
0
    def test5_05_duplicate(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[bam_tofastq],,,,
A_tumor,{sample_dir}/A.Aligned.sortedByCoord.out.bam,,,
[sra_fastq_dump],,,,
A_tumor,RUNID123
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #8
0
    def test2_03_not_exists(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq],,,,
A_tumor,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq,,
pool1,{sample_dir}/B1.fq,{sample_dir}/B2.fq,,
pool2,{sample_dir}/C1_1.fq;{sample_dir}/C1_2.fq,{sample_dir}/C2_1.fq;{sample_dir}/C2_3.fq,,
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #9
0
    def test3_05_undefine(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq]
pool1,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq

[controlpanel]
list1,pool100
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #10
0
    def test5_08_duplicate(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq]
A_tumor,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq

[expression]
A_tumor
A_tumor
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        try:
            fail = False
            sample_conf = sc.Sample_conf(ss_path)
        except Exception as e:
            print(e)
            fail = True

        self.assertTrue(fail)
Example #11
0
    def test1_03_ok(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """
[bam_tofastq]
A_tumor,{sample_dir}/A.Aligned.sortedByCoord.out.bam
A_control,{sample_dir}/A.Aligned.sortedByCoord.out.bam
pool1,{sample_dir}/A.Aligned.sortedByCoord.out.bam

[fusionfusion]
A_tumor,list1,list2

[controlpanel]
list1,pool1
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        sample_conf = sc.Sample_conf(ss_path)

        self.assertEqual(sample_conf.fusionfusion, [('A_tumor', 'list1')])
Example #12
0
    def test1_01_allinone(self):
        ss_path = self.SAMPLE_DIR + "/" + sys._getframe(
        ).f_code.co_name + ".csv"
        data = """[fastq],,,,
A_tumor,{sample_dir}/A1.fastq,{sample_dir}/A2.fastq,,
pool1,{sample_dir}/B1.fq,{sample_dir}/B2.fq,,
pool2,{sample_dir}/C1_1.fq;{sample_dir}/C1_2.fq,{sample_dir}/C2_1.fq;{sample_dir}/C2_2.fq,,
A_tumor_s,{sample_dir}/A1.fastq
pool1_s,{sample_dir}/B1.fq
pool2_s,{sample_dir}/C1_1.fq;{sample_dir}/C1_2.fq,,,,

[bam_tofastq],,,,
A_control,{sample_dir}/A.Aligned.sortedByCoord.out.bam,,,

[bam_import],,,,
pool3,{sample_dir}/A.Aligned.sortedByCoord.out.bam,,,
pool7,{sample_dir}/B.Aligned.sortedByCoord.out.bam,,,
pool8,{sample_dir}/D.Aligned.sortedByCoord.out.cram,,,
pool9,{sample_dir}/E.Aligned.sortedByCoord.out.cram,,,

[sra_fastq_dump],,,,
pool4,RUNID123456
pool5,RUNID123456,http://dummy.com/data/run.sra
pool6,RUNID123456,{sample_dir}/run.sra

[fusionfusion],,,,
A_tumor,list1,,
A_control,None,,
,,,,
[expression],,,,
A_tumor,,,,
A_tumor_s,,,,
,,,,
[star_fusion],,,,
A_tumor,,,,

[intron_retention],,,,
A_tumor,,,,

[iravnet],,,,
A_tumor,,,,

[juncmut],,,,
A_tumor,,,,

[kallisto],,,,
A_tumor,,,,

[qc],,,,
A_tumor,,,,
A_control,,,,
pool1,,,,
pool2,,,,
pool3,,,,
pool4,,,,
pool5,,,,
pool6,,,,
pool7,,,,
pool8,,,,
pool9,,,,
,,,,
[controlpanel]
list1,pool1,pool2,pool3,pool4,pool5,pool6,pool7,pool8,pool9
""".format(sample_dir=self.SAMPLE_DIR)

        f = open(ss_path, "w")
        f.write(data)
        f.close()
        sample_conf = sc.Sample_conf(ss_path)

        self.assertEqual(
            sample_conf.fastq, {
                'A_tumor': [[self.SAMPLE_DIR + '/A1.fastq'],
                            [self.SAMPLE_DIR + '/A2.fastq']],
                'A_tumor_s': [[self.SAMPLE_DIR + '/A1.fastq']],
                'pool1': [[self.SAMPLE_DIR + '/B1.fq'],
                          [self.SAMPLE_DIR + '/B2.fq']],
                'pool1_s': [[self.SAMPLE_DIR + '/B1.fq']],
                'pool2':
                [[self.SAMPLE_DIR + '/C1_1.fq', self.SAMPLE_DIR + '/C1_2.fq'],
                 [self.SAMPLE_DIR + '/C2_1.fq', self.SAMPLE_DIR + '/C2_2.fq']],
                'pool2_s':
                [[self.SAMPLE_DIR + '/C1_1.fq', self.SAMPLE_DIR + '/C1_2.fq']],
            })
        self.assertEqual(
            sample_conf.fastq_src, {
                'A_tumor': [[self.SAMPLE_DIR + '/A1.fastq'],
                            [self.SAMPLE_DIR + '/A2.fastq']],
                'A_tumor_s': [[self.SAMPLE_DIR + '/A1.fastq'], []],
                'pool1': [[self.SAMPLE_DIR + '/B1.fq'],
                          [self.SAMPLE_DIR + '/B2.fq']],
                'pool1_s': [[self.SAMPLE_DIR + '/B1.fq'], []],
                'pool2':
                [[self.SAMPLE_DIR + '/C1_1.fq', self.SAMPLE_DIR + '/C1_2.fq'],
                 [self.SAMPLE_DIR + '/C2_1.fq', self.SAMPLE_DIR + '/C2_2.fq']],
                'pool2_s': [[
                    self.SAMPLE_DIR + '/C1_1.fq', self.SAMPLE_DIR + '/C1_2.fq'
                ], []],
            })

        self.assertEqual(
            sample_conf.sra_fastq_dump, {
                'pool4': ['RUNID123456', None],
                'pool5': ['RUNID123456', "http://dummy.com/data/run.sra"],
                'pool6': ['RUNID123456', self.SAMPLE_DIR + '/run.sra']
            })
        self.assertEqual(sample_conf.bam_tofastq, {
            'A_control':
            self.SAMPLE_DIR + '/A.Aligned.sortedByCoord.out.bam'
        })
        self.assertEqual(sample_conf.bam_tofastq_src, {
            'A_control':
            [self.SAMPLE_DIR + '/A.Aligned.sortedByCoord.out.bam']
        })
        self.assertEqual(
            sample_conf.bam_import, {
                'pool3': self.SAMPLE_DIR + '/A.Aligned.sortedByCoord.out.bam',
                'pool7': self.SAMPLE_DIR + '/B.Aligned.sortedByCoord.out.bam',
            })
        self.assertEqual(
            sample_conf.bam_import_src, {
                'pool3': [
                    self.SAMPLE_DIR + '/A.Aligned.sortedByCoord.out.bam',
                    self.SAMPLE_DIR + '/A.Aligned.sortedByCoord.out.bam.bai'
                ],
                'pool7': [
                    self.SAMPLE_DIR + '/B.Aligned.sortedByCoord.out.bam',
                    self.SAMPLE_DIR + '/B.Aligned.sortedByCoord.out.bai'
                ],
            })
        self.assertEqual(
            sample_conf.cram_import, {
                'pool8': self.SAMPLE_DIR + '/D.Aligned.sortedByCoord.out.cram',
                'pool9': self.SAMPLE_DIR + '/E.Aligned.sortedByCoord.out.cram'
            })
        self.assertEqual(
            sample_conf.cram_import_src, {
                'pool8': [
                    self.SAMPLE_DIR + '/D.Aligned.sortedByCoord.out.cram',
                    self.SAMPLE_DIR + '/D.Aligned.sortedByCoord.out.cram.crai'
                ],
                'pool9': [
                    self.SAMPLE_DIR + '/E.Aligned.sortedByCoord.out.cram',
                    self.SAMPLE_DIR + '/E.Aligned.sortedByCoord.out.crai'
                ]
            })
        self.assertEqual(sample_conf.fusionfusion, [('A_tumor', 'list1'),
                                                    ('A_control', None)])
        self.assertEqual(sample_conf.expression, ['A_tumor', 'A_tumor_s'])
        self.assertEqual(sample_conf.qc, [
            'A_tumor', 'A_control', 'pool1', 'pool2', 'pool3', 'pool4',
            'pool5', 'pool6', 'pool7', 'pool8', 'pool9'
        ])
        self.assertEqual(
            sample_conf.control_panel, {
                'list1': [
                    'pool1', 'pool2', 'pool3', 'pool4', 'pool5', 'pool6',
                    'pool7', 'pool8', 'pool9'
                ]
            })
        self.assertEqual(sample_conf.star_fusion, ['A_tumor'])
        self.assertEqual(sample_conf.ir_count, ['A_tumor'])
        self.assertEqual(sample_conf.iravnet, ['A_tumor'])
        self.assertEqual(sample_conf.juncmut, ['A_tumor'])
        self.assertEqual(sample_conf.kallisto, ['A_tumor'])