예제 #1
0
    def test_sample_sheet_with_no_barcodes(self):
        self.sample_sheet_with_no_barcodes = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,,,,,Andrew_Bloggs,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_with_no_barcodes))
        self.assertEqual(linter.has_invalid_barcodes(), list())
예제 #2
0
    def test_sample_sheet_without_close_project_names(self):
        self.sample_sheet_no_close_project_names = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_no_close_project_names))
        self.assertEqual(linter.close_project_names(), {})
예제 #3
0
    def test_sample_sheet_with_valid_characters(self):
        self.sample_sheet_with_valid_characters = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_with_valid_characters))
        self.assertFalse(linter.has_invalid_characters())
    def test_sample_sheet_without_close_project_names(self):
        self.sample_sheet_no_close_project_names = """[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(fp=cStringIO.StringIO(
            self.sample_sheet_no_close_project_names))
        self.assertEqual(linter.close_project_names(),{})
    def test_sample_sheet_with_valid_characters(self):
        self.sample_sheet_with_valid_characters = """[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(fp=cStringIO.StringIO(
            self.sample_sheet_with_valid_characters))
        self.assertFalse(linter.has_invalid_characters())
예제 #6
0
    def test_sample_sheet_with_samples_in_multiple_projects(self):
        self.sample_sheet_samples_in_multiple_projects = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs1,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs1,
2,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs2,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_samples_in_multiple_projects))
        self.assertEqual(linter.samples_in_multiple_projects(),
                         {'AB1': ['Andrew_Bloggs1', 'Andrew_Bloggs2']})
예제 #7
0
    def test_sample_sheet_with_invalid_lines_no_lane(self):
        self.sample_sheet_with_invalid_lines_no_lane = u"""[Data]
Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
,,,,,,,,Filipe_Greer,
,,,,,,,,Filipe_Greer,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_with_invalid_lines_no_lane))
        self.assertTrue(linter.has_invalid_lines())
    def test_sample_sheet_with_multiple_barcodes(self):
        self.sample_sheet_with_multiple_barcodes = """[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
2,AB1,AB1,,,N701,CTGTAGTA,N501,TCTTTCCC,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
"""
        linter = SampleSheetLinter(fp=cStringIO.StringIO(
            self.sample_sheet_with_multiple_barcodes))
        self.assertEqual(linter.samples_with_multiple_barcodes(),
                         { 'AB1': ['CGATGTAT-TCTTTCCC','CTGTAGTA-TCTTTCCC'] })
    def test_sample_sheet_with_invalid_lines_no_lane(self):
        self.sample_sheet_with_invalid_lines_no_lane = """[Data]
Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
AB1,AB1,,,N701,CGATGTAT,N501,TCTTTCCC,Andrew_Bloggs,
AB2,AB2,,,N702,TGACCAAT,N502,TCTTTCCC,Andrew_Bloggs,
CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
FG2,FG2,,,N702,TGACCAAT,N502,TCTTTCCC,Filipe_Greer,
,,,,,,,,Filipe_Greer,
,,,,,,,,Filipe_Greer,
"""
        linter = SampleSheetLinter(fp=cStringIO.StringIO(
            self.sample_sheet_with_invalid_lines_no_lane))
        self.assertTrue(linter.has_invalid_lines())
예제 #10
0
    def test_sample_sheet_with_invalid_barcodes(self):
        self.sample_sheet_with_invalid_barcodes = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,I5_Index_ID,index2,Sample_Project,Description
1,AB1,AB1,,,N701,CGATGTNN,N501,TCTTTCCC,Andrew_Bloggs,
1,AB2,AB2,,,N702,TGACCAAT,N502,TCTTNNNN,Andrew_Bloggs,
2,CD1,CD1,,,N701,CGATGTAT,N501,TCTTTCCC,Carl_Dewey,
2,FG2,FG2,,,N702,tgaccaat,N502,tctttccc,Filipe_Greer,
3,HJ1,HJ1,,,N702,AGHJATTC,N502,TCTTTCCC,Hugh_Jaxman,
3,HJ2,HJ2,,,N702,CGATGTAT,N502,TCTTKCCC,Hugh_Jaxman,
4,KL1,KL1,,,N702,TGACC&^&,N502,TCTTTCCC,Karl_Landseer,
4,KL2,KL2,,,N702,TGACCAAT,N502,TC%$TCCC,Karl_Landseer,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_with_invalid_barcodes))
        self.assertTrue(linter.has_invalid_barcodes())
예제 #11
0
    def test_sample_sheet_with_10xgenomics_barcodes(self):
        self.sample_sheet_with_10xgenomics_barcodes = u"""[Data]
Lane,Sample_ID,Sample_Name,Sample_Plate,Sample_Well,I7_Index_ID,index,Sample_Project,Description
1,AB1,AB1,,,N701,SI-GA-B3,Philip_Crook,
2,AB2,AB2,,,N701,SI-GA-B3,Philip_Crook,
3,AB3,AB3,,,N701,SI-GA-G1,Philip_Crook,
4,AB4,AB4,,,N701,SI-GA-G1,Philip_Crook,
5,AB5,AB5,,,N701,SI-GA-H1,Philip_Crook,
6,AB6,AB6,,,N701,SI-GA-H1,Philip_Crook,
7,AB7,AB7,,,N701,SI-P03-C9,Philip_Crook,
8,AB8,AB8,,,N701,SI-P03-C9,Philip_Crook,
"""
        linter = SampleSheetLinter(
            fp=StringIO(self.sample_sheet_with_10xgenomics_barcodes))
        self.assertEqual(linter.has_invalid_barcodes(), list())