class AssetsDifferentialExpression(core.AssetsStep): Source = core.assetfactory('Source', [ core.AssetAttr('counttable_fn', CSVFile, ''), core.AssetAttr('sampleinfo_fn', File, '') ]) Target = core.assetfactory('Target', [core.AssetAttr('diffexp_fn', File, '')])
class Assets(core.AssetsStep): """ Assets for :class:`SamtoolsExtractUnaligned` """ Source = core.assetfactory('Source', [core.AssetAttr('bamfile', BAMFile, '')]) Target = core.assetfactory('Target', [core.AssetAttr('unaligned', BAMFile, '')])
class AssetsQuantifier(core.AssetsStep): Source = core.assetfactory('Source', [ core.AssetAttr('alignedreads', BAMFile, ''), core.AssetAttr('annotationfile', GFFFile, '') ]) Target = core.assetfactory('Target', [core.AssetAttr('counts', CSVFile, '')])
def test_get_assets(self): model = core.Model( tuple()) # getting away with an empty model for this step cache = self.cls_to_test(self.cache_file.name, model, force_create=True) class Activities(core.Enum): DATETIME = 'Give date/time' PythonTime = self.PythonTime python = PythonTime('python') stepvariant_db_id = cache.id_step_variant(python, (Activities.DATETIME, )) # 2-elements sources SrcCls = core.assetfactory('Source', [ core.AssetAttr('reference', rnaseq.FASTAFile, ''), core.AssetAttr('otherreference', rnaseq.FASTAFile, ''), core.AssetAttr('listoffiles', rnaseq.CSVFileSequence, '') ]) sources = SrcCls( rnaseq.FASTAFile('foo.fasta'), rnaseq.FASTAFile('bar.fasta'), rnaseq.CSVFileSequence( (rnaseq.CSVFile('baz.csv'), rnaseq.CSVFile('baz2.csv')))) targets = core.AssetSet() # targets parameters = tuple() db_id = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) for storedthing in cache.get_srcassets(db_id.id): thing = storedthing.resurrect(rnaseq)
class AssetsSplit(core.AssetsStep): Source = core.assetfactory('Source', [core.AssetAttr('file', core.File, '')]) Target = core.assetfactory('Target', [ core.AssetAttr('head', core.File, ''), core.AssetAttr('tail', core.File, '') ])
def test_AssetSet_repr(self): values = (('abc', ), ('123', '456')) AssetSet = core.assetfactory('AssetSet', [ core.AssetAttr('afile', core.File, ''), core.AssetAttr('asequenceoffiles', core.FileSequence, '') ]) assetset = unifex.build_AssetSet(AssetSet, values) res = str(assetset) self.assertTrue(isinstance(res, str))
class Assets(core.AssetsStep): Source = core.assetfactory('Source', [core.AssetAttr('annotation_gtf', GFFFile, ''), core.AssetAttr('genome_dir', FilePattern, ''), core.AssetAttr('parameters', FluxSimulatorParameters, '')]) Target = core.assetfactory('Target', [core.AssetAttr('parameters_and_pro', FluxSimulatorParametersAndPro, '')])
class Assets(core.AssetsStep): """ Assets for :class:`BedtoolsBamToFastq` """ Source = core.assetfactory('Source', [core.AssetAttr('bamfile', BAMFile, '')]) Target = core.assetfactory( 'Target', [core.AssetAttr('fastqfile', FASTQFile, '')])
class Assets(core.AssetsStep): """ Assets for :class:`SamtoolsBamToSam` """ Source = core.assetfactory('Source', [core.AssetAttr('bamfile', BAMFile, '')]) Target = core.assetfactory('Target', [core.AssetAttr('samfile', SAMFile, '')])
class AssetsIndexer(core.AssetsStep): """ Assets for a general indexing step. """ Source = core.assetfactory('Source', [core.AssetAttr('reference', FASTAFile, '')]) Target = core.assetfactory('Target', [core.AssetAttr('indexfilepattern', FilePattern, '')])
class Assets(core.AssetsStep): Source = core.assetfactory('Source', [ core.AssetAttr('file', railroadtracks.model.files.CSVFile, '') ]) Target = core.assetfactory('Target', [ core.AssetAttr('head', railroadtracks.model.files.CSVFile, ''), core.AssetAttr('tail', railroadtracks.model.files.CSVFile, '') ])
class Assets(core.AssetsStep): Source = core.assetfactory('Target', [core.AssetAttr('parameters_and_pro', FluxSimulatorParametersAndPro, '')]) Target = core.assetfactory('Target', [core.AssetAttr('parameters_and_pro', FluxSimulatorParametersAndPro, ''), core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''), core.AssetAttr('read2', FASTQPossiblyGzipCompressed, ''), core.AssetAttr('lib', File, '')])
def test_assetfactory(self): Foo = core.assetfactory('Foo', [core.AssetAttr('bar', core.File, '')]) # check that the asset bar is defined foo = Foo(core.File('')) # check that an incorrect type raises an error self.assertRaises(AssertionError, Foo, 123) self.assertTrue(foo.bar._defined) # check that incorrect parameters make it fail self.assertRaises(AssertionError, core.assetfactory, 'Foo', [core.AssetAttr('bar', core.File, None)]) # check that trying to modify an asset raises an error self.assertRaises(AttributeError, setattr, foo, 'bar', 123)
class Assets(AssetsQuantifier): Source = core.assetfactory('Source', [ SailfishIndex.Assets.Target.getassetattr('indexfilepattern'), core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''), core.AssetAttr( 'read2', FASTQPossiblyGzipCompressed, '', allownone=True) ]) # 'counts' is coming from QuantifierAbstract Target = core.assetfactory('Target', [ core.AssetAttr('counts', CSVFile, ''), core.AssetAttr('output_dir', FilePattern, '') ])
def test_assetfactory_allownone(self): # check that allownone=True allows unspecified assets Foo = core.assetfactory( 'Foo', [core.AssetAttr('bar', core.File, '', allownone=True)]) # check that the asset bar is defined foo = Foo(core.File('')) self.assertTrue(foo.bar._defined) # check that an incorrect type raises an error self.assertRaises(AssertionError, Foo, 123) foo = Foo(None) self.assertTrue(foo.bar is None) # check that trying to modify an asset raises an error self.assertRaises(AttributeError, setattr, foo, 'bar', 123)
def test_createundefined(self): # -- createundefined-begin Foo = core.assetfactory('Foo', [core.AssetAttr('bar', core.File, '')]) # create an undefined set of assets of type Foo undefoo = Foo.createundefined() # -- createundefined-end self.assertTrue(isinstance(undefoo, Foo)) # check that the asset bar is an undefined "saved entity" self.assertFalse(undefoo.bar._defined) # check that trying to modify an asset raises an error # (modifying an asset value will be possible though) self.assertRaises(AttributeError, setattr, undefoo, 'bar', 123) undefoo.bar.name = '123' self.assertEqual('123', undefoo.bar.name)
def test_build_AssetSet(self): values = (('abc', ), ('123', '456')) AssetSet = core.assetfactory('AssetSet', [ core.AssetAttr('afile', core.File, ''), core.AssetAttr('asequenceoffiles', core.FileSequence, '') ]) assetset = unifex.build_AssetSet(AssetSet, values) #FIXME: where is the test ? #FIXME: how are allownone=True assets handled ? # values not allowed to be None cannot be None values = (None, ('123', '456')) self.assertRaises(AssertionError, unifex.build_AssetSet, AssetSet, values) values = (('abc', ), ('123', '456')) AssetSet = core.assetfactory('AssetSet', [ core.AssetAttr('afile', core.File, '', allownone=True), core.AssetAttr('asequenceoffiles', core.FileSequence, '') ]) assetset = unifex.build_AssetSet(AssetSet, values) values = (None, ('123', '456')) assetset = unifex.build_AssetSet(AssetSet, values)
class AssetsSorter(core.AssetsStep): Source = core.assetfactory('Source', [core.AssetAttr('alignedreads', BAMFile, '')]) Target = core.assetfactory('Target', [core.AssetAttr('sortedbam', BAMFile, '')])
class Assets(AssetsAligner): Source = core.assetfactory('Source', [core.AssetAttr('indexfilepattern', BWAIndexFiles, ''), core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''), core.AssetAttr('read2', FASTQPossiblyGzipCompressed, '', allownone=True)])
class Assets(AssetsIndexer): Target = core.assetfactory('Target', [core.AssetAttr('indexfilepattern', BWAIndexFiles, '')])
class AssetsAligner(core.AssetsStep): Source = core.assetfactory('Source', [core.AssetAttr('indexfilepattern', FilePattern, ''), core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''), core.AssetAttr('read2', FASTQPossiblyGzipCompressed, '', allownone=True)]) Target = core.assetfactory('Target', [core.AssetAttr('alignment', BAMFile, '')])
class Assets(TopHat.Assets): Source = core.assetfactory('Source', [core.AssetAttr('indexfilepattern', SavedBowtie2Index, ''), core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''), core.AssetAttr('read2', FASTQPossiblyGzipCompressed, '', allownone=True)])
class Assets(BedtoolsBamToFastq.Assets): Target = core.assetfactory('Target', [ core.AssetAttr('fastqfile', FASTQFile, ''), core.AssetAttr('fastqfile2', FASTQFile, '') ])
class Assets(core.AssetsStep): Source = core.assetfactory('Source', [core.AssetAttr('parameters_and_pro', FluxSimulatorParametersAndPro, '')]) Target = core.assetfactory('Target', [core.AssetAttr('parameters_and_pro', FluxSimulatorParametersAndPro, '')])
def test_AssetStep_NoTarget(self): Foo = core.assetfactory('Foo', [core.AssetAttr('bar', core.File, '')]) # no target assetset = core.AssetsStep(Foo) self.assertTrue(isinstance(assetset.__str__(), str))
def test_AssetStep_Target(self): Foo = core.assetfactory('Foo', [core.AssetAttr('bar', core.File, '')]) Bar = core.assetfactory('Bar', [core.AssetAttr('foo', core.File, '')]) assetset = core.AssetsStep(Foo, Bar) self.assertTrue(isinstance(assetset.__str__(), str))
class Assets(AssetsAligner): Target = core.assetfactory('Target', [core.AssetAttr('alignment', BAMFile, '')])
class AssetsCat(core.AssetsStep): Source = core.assetfactory( 'Source', [core.AssetAttr('heads', core.FileSequence, '')]) Target = core.assetfactory('Target', [core.AssetAttr('result', core.File, '')])
class Assets(AssetsIndexer): Target = core.assetfactory('Target', [core.AssetAttr('indexfilepattern', SavedBowtieIndex, '')])
def test_id_stepconcrete(self): model = core.Model( tuple()) # getting away with an empty model for this step cache = self.cls_to_test(self.cache_file.name, model, force_create=True) class Activities(core.Enum): DATETIME = 'Give date/time' PythonTime = self.PythonTime python = PythonTime('python') stepvariant_db_id = cache.id_step_variant(python, (Activities.DATETIME, )) # empty sources is a special case sources = core.AssetSet() # source targets = core.AssetSet() # targets parameters = tuple() db_id = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) db_id_same = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertEqual(db_id.id, db_id_same.id) db_id_notthesame = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters, tag=2) self.assertNotEqual(db_id.id, db_id_notthesame.id) # 1-element sources sources = railroadtracks.model.aligners.AssetsIndexer.Source( rnaseq.FASTAFile('foo.fasta')) db_id_nothesame = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertNotEqual(db_id.id, db_id_nothesame.id) db_id_sameagain = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertEqual(db_id_sameagain.id, db_id_nothesame.id) db_id_nothesameagain = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, ("%Y", )) self.assertNotEqual(db_id.id, db_id_nothesameagain.id) self.assertNotEqual(db_id_sameagain.id, db_id_nothesameagain.id) # 1-element sources, several parameters db_id_2params = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, ("%Y", "Z")) db_id_same2params = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, ("%Y", "Z")) self.assertEqual(db_id_2params.id, db_id_same2params.id) db_id_2otherparams = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, ("%Y", "W")) self.assertNotEqual(db_id_2params.id, db_id_2otherparams.id) # 2-elements sources SrcCls = core.assetfactory('Source', [ core.AssetAttr('reference', rnaseq.FASTAFile, ''), core.AssetAttr('otherreference', rnaseq.FASTAFile, '') ]) sources = SrcCls(rnaseq.FASTAFile('foo.fasta'), rnaseq.FASTAFile('bar.fasta')) db_id_notthesame = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertNotEqual(db_id.id, db_id_notthesame.id) db_id_sameagain = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertEqual(db_id_sameagain.id, db_id_notthesame.id) # 1-element source / 1-element target sources = railroadtracks.model.aligners.AssetsIndexer.Source( rnaseq.FASTAFile('foo.fasta')) targets = railroadtracks.model.aligners.AssetsIndexer.Target( rnaseq.FilePattern('foo_idx')) foo_sh = rnaseq.Anyscript() stepvariant_db_id = cache.id_step_variant(foo_sh, (Activities.DATETIME, )) db_id_nothesame = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertNotEqual(db_id.id, db_id_nothesame.id) db_id_sameagain = cache.id_stepconcrete(stepvariant_db_id.id, sources, targets, parameters) self.assertEqual(db_id_sameagain.id, db_id_nothesame.id) # fail if target assets are suddenly different targets_bar = railroadtracks.model.aligners.AssetsIndexer.Target( rnaseq.FilePattern('bar_idx')) self.assertRaises(ValueError, cache.id_stepconcrete, stepvariant_db_id.id, sources, targets_bar, parameters)