def test_correctmapping(self): runfile = Mock() d = date(2013, 05, 01) runfile.date = d runfile.regions = [1, 2] runfile.platform = 'Roche454' r1s1 = mock_sample('Sample1', 'RL1', 'pH1N1', 1, d) r1s2 = mock_sample('Sample2', 'RL2', 'pH1N1', 1, d) r2s1 = mock_sample('Sample1', 'RL1', 'pH1N1', 2, d) r2s2 = mock_sample('Sample2', 'RL2', 'pH1N1', 2, d) runfile.samples = [r1s1, r1s2, r2s1, r2s2] result = util.runfile_to_sfffile_mapping(runfile) mp = fixtures.MIDPREFIX expect = { 1: { '454Reads.' + mp + 'RL1.sff': 'Sample1__1__RL1__2013_05_01__pH1N1.sff', '454Reads.' + mp + 'RL2.sff': 'Sample2__1__RL2__2013_05_01__pH1N1.sff' }, 2: { '454Reads.' + mp + 'RL1.sff': 'Sample1__2__RL1__2013_05_01__pH1N1.sff', '454Reads.' + mp + 'RL2.sff': 'Sample2__2__RL2__2013_05_01__pH1N1.sff' } } ere(expect, result)
def test_ensureoutputdir(self): ''' Make sure output dir is created if it doesn't exist ''' outdir = os.path.join(self.tempdir, 'test') results = demultiplex.demultiplex(self.fp, outdir, self.rf, self.mp, self.sffc) common.ere(True, os.path.isdir(outdir)) common.ere(self.rdl, results)
def test_missingfromrunfile( self ): ''' Make sure sff files in the directory that are not in runfile are ignored ''' mock_d = {'1':['454Reads.'+fixtures.MIDPREFIX+'RL1.sff','454Reads.'+fixtures.MIDPREFIX+'IX1.sff']} self.make_ddir( mock_d ) drds( self.tempdir, fixtures.RUNFILE_PATH ) result = fixtures.mock_demultiplex_directory( self.tempdir ) expect = {1:['Sample1__1__RL1__2013_05_01__pH1N1.sff','454Reads.'+fixtures.MIDPREFIX+'IX1.sff']} common.ere( expect[1], result[1] )
def test_single_region_single(self): ''' Make sure a single region with single file works ''' mock_d = {'1': ['454Reads.' + fixtures.MIDPREFIX + 'RL1.sff']} self.make_ddir(mock_d) drds(self.tempdir, fixtures.RUNFILE_PATH) expect = {1: ['Sample1__1__RL1__2013_05_01__pH1N1.sff']} result = fixtures.mock_demultiplex_directory(self.tempdir) common.ere(expect, result)
def test_multi_region_all_empty(self): ''' Make sure multiple regions that are all empty work ''' mock_d = {'1': [], '2': []} self.make_ddir(mock_d) drds(self.tempdir, fixtures.RUNFILE_PATH) result = fixtures.mock_demultiplex_directory(self.tempdir) expect = {1: [], 2: []} common.ere(expect, result)
def test_multi_region_all_empty( self ): ''' Make sure multiple regions that are all empty work ''' mock_d = {'1':[],'2':[]} self.make_ddir( mock_d ) drds( self.tempdir, fixtures.RUNFILE_PATH ) result = fixtures.mock_demultiplex_directory( self.tempdir ) expect = {1:[],2:[]} common.ere( expect, result )
def create_and_tst( self, func, sfflist, expectlist, createdir=None ): ''' Create files in sfflist and then test ''' if createdir is None: createdir = self.tempdir for f in sfflist: create( f ) sffs = func( createdir ) ere( expectlist, sffs )
def test_single_region_single( self ): ''' Make sure a single region with single file works ''' mock_d = {'1':['454Reads.'+fixtures.MIDPREFIX+'RL1.sff']} self.make_ddir( mock_d ) drds( self.tempdir, fixtures.RUNFILE_PATH ) expect = {1:['Sample1__1__RL1__2013_05_01__pH1N1.sff']} result = fixtures.mock_demultiplex_directory( self.tempdir ) common.ere( expect, result )
def create_and_tst(self, func, sfflist, expectlist, createdir=None): ''' Create files in sfflist and then test ''' if createdir is None: createdir = self.tempdir for f in sfflist: create(f) sffs = func(createdir) ere(expectlist, sffs)
def test_multi_region_all_single( self ): ''' Make sure multiple regions that have single files work ''' mp = fixtures.MIDPREFIX mock_d = {'1':['454Reads.'+mp+'RL1.sff'],'2':['454Reads.'+mp+'TI1.sff']} self.make_ddir( mock_d ) drds( self.tempdir, fixtures.RUNFILE_PATH ) result = fixtures.mock_demultiplex_directory( self.tempdir ) expect = {1:['Sample1__1__RL1__2013_05_01__pH1N1.sff'],2:['Sample52__2__TI1__2013_05_01__Den4.sff']} common.ere( expect, result )
def test_getall( self ): os.mkdir( 'files' ) os.chdir( 'files' ) fs = ('file1.txt','file2.txt') files = {f:os.path.abspath(f) for f in fs} # Touch all the files [open(f,'w').close() for f in files] ere( sorted(files.values()), sorted(util.get_all_( os.getcwd(), '*.txt' )) ) # Make sure non current dir works os.chdir( self.tempdir ) ere( sorted(files.values()), sorted(util.get_all_( 'files', '*.txt' )) )
def test_getall(self): os.mkdir('files') os.chdir('files') fs = ('file1.txt', 'file2.txt') files = {f: os.path.abspath(f) for f in fs} # Touch all the files [open(f, 'w').close() for f in files] ere(sorted(files.values()), sorted(util.get_all_(os.getcwd(), '*.txt'))) # Make sure non current dir works os.chdir(self.tempdir) ere(sorted(files.values()), sorted(util.get_all_('files', '*.txt')))
def test_mixed_files( self ): ''' Make sure all files in root are ignored ''' ddir = 'demultiplex_by_region' expect = ['454Reads.'+fixtures.MIDPREFIX+'RL1.sff','ignore.me'] os.mkdir( ddir ) os.chdir( ddir ) for f in expect: common.create( f ) os.chdir( self.tempdir ) drds( ddir, fixtures.RUNFILE_PATH ) result = os.listdir( ddir ) # Just ensure that the files in root didn't change common.ere( expect, result )
def test_singleinputsff( self ): ''' Make sure single sff works ''' multiplex_files = fixtures.multiplex_sffs().items() sfffile = multiplex_files[0][0] expect = os.path.join( self.tempdir, 'sff', sfffile ) os.mkdir( 'sff' ) # symlink in a fixture sff file os.symlink( multiplex_files[0][1], expect ) outdir = os.path.join( self.tempdir, 'test' ) results = demultiplex.demultiplex( 'sff', outdir, self.rf, self.mp, self.sffc ) expected_dirs = [str(int(os.path.splitext(expect)[0][-2:]))] common.ere( expected_dirs, os.listdir( outdir ) ) common.ere( {sfffile:self.rdl[sfffile]}, results )
def test_mixed_files(self): ''' Make sure all files in root are ignored ''' ddir = 'demultiplex_by_region' expect = ['454Reads.' + fixtures.MIDPREFIX + 'RL1.sff', 'ignore.me'] os.mkdir(ddir) os.chdir(ddir) for f in expect: common.create(f) os.chdir(self.tempdir) drds(ddir, fixtures.RUNFILE_PATH) result = os.listdir(ddir) # Just ensure that the files in root didn't change common.ere(expect, result)
def test_singleinputsff(self): ''' Make sure single sff works ''' multiplex_files = fixtures.multiplex_sffs().items() sfffile = multiplex_files[0][0] expect = os.path.join(self.tempdir, 'sff', sfffile) os.mkdir('sff') # symlink in a fixture sff file os.symlink(multiplex_files[0][1], expect) outdir = os.path.join(self.tempdir, 'test') results = demultiplex.demultiplex('sff', outdir, self.rf, self.mp, self.sffc) expected_dirs = [str(int(os.path.splitext(expect)[0][-2:]))] common.ere(expected_dirs, os.listdir(outdir)) common.ere({sfffile: self.rdl[sfffile]}, results)
def test_multi_region_all_single(self): ''' Make sure multiple regions that have single files work ''' mp = fixtures.MIDPREFIX mock_d = { '1': ['454Reads.' + mp + 'RL1.sff'], '2': ['454Reads.' + mp + 'TI1.sff'] } self.make_ddir(mock_d) drds(self.tempdir, fixtures.RUNFILE_PATH) result = fixtures.mock_demultiplex_directory(self.tempdir) expect = { 1: ['Sample1__1__RL1__2013_05_01__pH1N1.sff'], 2: ['Sample52__2__TI1__2013_05_01__Den4.sff'] } common.ere(expect, result)
def test_correctmapping( self ): runfile = Mock() d = date( 2013, 05, 01 ) runfile.date = d runfile.regions = [1,2] runfile.platform = 'Roche454' r1s1 = mock_sample( 'Sample1', 'RL1', 'pH1N1', 1, d ) r1s2 = mock_sample( 'Sample2', 'RL2', 'pH1N1', 1, d ) r2s1 = mock_sample( 'Sample1', 'RL1', 'pH1N1', 2, d ) r2s2 = mock_sample( 'Sample2', 'RL2', 'pH1N1', 2, d ) runfile.samples = [r1s1,r1s2,r2s1,r2s2] result = util.runfile_to_sfffile_mapping( runfile ) mp = fixtures.MIDPREFIX expect = {1:{'454Reads.'+mp+'RL1.sff':'Sample1__1__RL1__2013_05_01__pH1N1.sff', '454Reads.'+mp+'RL2.sff':'Sample2__1__RL2__2013_05_01__pH1N1.sff'},2:{'454Reads.'+mp+'RL1.sff':'Sample1__2__RL1__2013_05_01__pH1N1.sff', '454Reads.'+mp+'RL2.sff':'Sample2__2__RL2__2013_05_01__pH1N1.sff'}} ere( expect, result )
def test_missingfromrunfile(self): ''' Make sure sff files in the directory that are not in runfile are ignored ''' mock_d = { '1': [ '454Reads.' + fixtures.MIDPREFIX + 'RL1.sff', '454Reads.' + fixtures.MIDPREFIX + 'IX1.sff' ] } self.make_ddir(mock_d) drds(self.tempdir, fixtures.RUNFILE_PATH) result = fixtures.mock_demultiplex_directory(self.tempdir) expect = { 1: [ 'Sample1__1__RL1__2013_05_01__pH1N1.sff', '454Reads.' + fixtures.MIDPREFIX + 'IX1.sff' ] } common.ere(expect[1], result[1])
def test_outputdiraleady( self ): ''' Output directory already created ''' outdir = self.tempdir results = demultiplex.demultiplex( self.fp, outdir, self.rf, self.mp, self.sffc ) # Get region list expected_dirs = [str(int(os.path.splitext(n)[0][-2:])) for n in fixtures.multiplex_sffs()] # Ensure output directory created common.ere( True, os.path.isdir( outdir ) ) # Ensure region directories common.ere( expected_dirs, os.listdir( outdir ) ) # Ensure results are correct common.ere( self.rdl, results )
def test_outputdiraleady(self): ''' Output directory already created ''' outdir = self.tempdir results = demultiplex.demultiplex(self.fp, outdir, self.rf, self.mp, self.sffc) # Get region list expected_dirs = [ str(int(os.path.splitext(n)[0][-2:])) for n in fixtures.multiplex_sffs() ] # Ensure output directory created common.ere(True, os.path.isdir(outdir)) # Ensure region directories common.ere(expected_dirs, os.listdir(outdir)) # Ensure results are correct common.ere(self.rdl, results)
def test_getallblank(self): ere([], util.get_all_('.', '*')) open('file', 'w').close() ere([], util.get_all_('.', '*.txt'))
def test_blanksffnooutput(self): ''' Make sure outputdir is not created if no sff files found ''' outputdir = os.path.join(self.tempdir, 'emptydir') results = demultiplex.demultiplex(self.tempdir, outputdir, self.rf, self.mp, self.sffc) common.ere(False, os.path.isdir(outputdir))
def test_blanksffnooutput( self ): ''' Make sure outputdir is not created if no sff files found ''' outputdir = os.path.join( self.tempdir, 'emptydir' ) results = demultiplex.demultiplex( self.tempdir, outputdir, self.rf, self.mp, self.sffc ) common.ere( False, os.path.isdir( outputdir ) )
def test_getallblank( self ): ere( [], util.get_all_( '.', '*' ) ) open( 'file','w' ).close() ere( [], util.get_all_( '.', '*.txt' ) )
def test_ensureoutputdir( self ): ''' Make sure output dir is created if it doesn't exist ''' outdir = os.path.join( self.tempdir, 'test' ) results = demultiplex.demultiplex( self.fp, outdir, self.rf, self.mp, self.sffc ) common.ere( True, os.path.isdir( outdir ) ) common.ere( self.rdl, results )
def test_doesitwork( self ): lst = ['a1', 'a10', 'a01'] expect = ['a1', 'a01', 'a10'] result = demultiplex.sort_midlist( lst ) common.ere( expect, result )
def pathtest( self, path, t, expect ): print "Path: {}".format(path) print "Type: {}".format(t) result = util.is_valid_abs_path( path, t ) ere( expect, result )
def test_doesitwork(self): lst = ['a1', 'a10', 'a01'] expect = ['a1', 'a01', 'a10'] result = demultiplex.sort_midlist(lst) common.ere(expect, result)
def pathtest(self, path, t, expect): print "Path: {}".format(path) print "Type: {}".format(t) result = util.is_valid_abs_path(path, t) ere(expect, result)