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())
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(), {})
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())
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']})
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())
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())
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())