示例#1
0
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, '')])
示例#2
0
 class Assets(core.AssetsStep):
     """
     Assets for :class:`SamtoolsExtractUnaligned`
     
     """
     Source = core.assetfactory('Source', [core.AssetAttr('bamfile', BAMFile, '')])
     Target = core.assetfactory('Target', [core.AssetAttr('unaligned', BAMFile, '')])
示例#3
0
class AssetsQuantifier(core.AssetsStep):
    Source = core.assetfactory('Source', [
        core.AssetAttr('alignedreads', BAMFile, ''),
        core.AssetAttr('annotationfile', GFFFile, '')
    ])
    Target = core.assetfactory('Target',
                               [core.AssetAttr('counts', CSVFile, '')])
示例#4
0
    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)
示例#5
0
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, '')
    ])
示例#6
0
 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))
示例#7
0
 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, '')])
示例#8
0
 class Assets(core.AssetsStep):
     """
     Assets for :class:`BedtoolsBamToFastq`
     
     """
     Source = core.assetfactory('Source',
                                [core.AssetAttr('bamfile', BAMFile, '')])
     Target = core.assetfactory(
         'Target', [core.AssetAttr('fastqfile', FASTQFile, '')])
示例#9
0
 class Assets(core.AssetsStep):
     """
     Assets for :class:`SamtoolsBamToSam`
     
     """
     Source = core.assetfactory('Source',
                                [core.AssetAttr('bamfile', BAMFile, '')])
     Target = core.assetfactory('Target',
                                [core.AssetAttr('samfile', SAMFile, '')])
示例#10
0
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, '')])
示例#11
0
 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,
                        '')
     ])
示例#12
0
 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, '')])
示例#13
0
 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)
示例#14
0
 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, '')
     ])
示例#15
0
 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)
示例#16
0
 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)
示例#17
0
    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)
示例#18
0
class AssetsSorter(core.AssetsStep):
    Source = core.assetfactory('Source',
                               [core.AssetAttr('alignedreads', BAMFile, '')])
    Target = core.assetfactory('Target',
                               [core.AssetAttr('sortedbam', BAMFile, '')])
示例#19
0
 class Assets(AssetsAligner):
     Source = core.assetfactory('Source', [core.AssetAttr('indexfilepattern', BWAIndexFiles, ''),
                                           core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''),
                                           core.AssetAttr('read2', FASTQPossiblyGzipCompressed, '', allownone=True)])
示例#20
0
 class Assets(AssetsIndexer):
     Target = core.assetfactory('Target',
                                [core.AssetAttr('indexfilepattern', 
                                                BWAIndexFiles, '')])
示例#21
0
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, '')])
示例#22
0
 class Assets(TopHat.Assets):
     Source = core.assetfactory('Source', [core.AssetAttr('indexfilepattern', SavedBowtie2Index, ''),
                                           core.AssetAttr('read1', FASTQPossiblyGzipCompressed, ''),
                                           core.AssetAttr('read2', FASTQPossiblyGzipCompressed, '', allownone=True)])
示例#23
0
 class Assets(BedtoolsBamToFastq.Assets):
     Target = core.assetfactory('Target', [
         core.AssetAttr('fastqfile', FASTQFile, ''),
         core.AssetAttr('fastqfile2', FASTQFile, '')
     ])
示例#24
0
 class Assets(core.AssetsStep):
     Source = core.assetfactory('Source', [core.AssetAttr('parameters_and_pro',
                                                          FluxSimulatorParametersAndPro, '')])
     Target = core.assetfactory('Target', [core.AssetAttr('parameters_and_pro',
                                                          FluxSimulatorParametersAndPro, '')])
示例#25
0
 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))
示例#26
0
 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))
示例#27
0
 class Assets(AssetsAligner):
     Target = core.assetfactory('Target', [core.AssetAttr('alignment', BAMFile, '')])
示例#28
0
class AssetsCat(core.AssetsStep):
    Source = core.assetfactory(
        'Source', [core.AssetAttr('heads', core.FileSequence, '')])
    Target = core.assetfactory('Target',
                               [core.AssetAttr('result', core.File, '')])
示例#29
0
 class Assets(AssetsIndexer):
     Target = core.assetfactory('Target',
                                [core.AssetAttr('indexfilepattern', 
                                                SavedBowtieIndex, '')])
示例#30
0
    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)