示例#1
0
    def test_get_transcript_expression_levels(self, _get_feature_ids):
        exp_utils = ExpressionUtils(self.__class__.cfg)  # no logger specified

        fpkm_dict, tpm_dict = exp_utils.get_expression_levels(
            filepath='data/expression_utils/t_data.ctab',
            genome_ref='',
            id_col=5)

        print(fpkm_dict, tpm_dict)

        expected_fpkm = {
            'MSTRG.1.1': 17.276905044091045,
            'mRNA_1': 0.0,
            'MSTRG.1.2': 15.496161235946962,
            'mRNA_3': 0.0,
            'MSTRG.2.2': 15.833910686877843,
            'mRNA_2': 0.0,
            'MSTRG.2.1': 16.618558913364847,
            'MSTRG.3.1': 19.127090666492997,
            'gene_1_mRNA': 0.0
        }
        expected_tpm = {
            'MSTRG.1.1': 17.37137277377277,
            'mRNA_3': 0.0,
            'MSTRG.1.2': 15.590627562938757,
            'mRNA_1': 0.0,
            'MSTRG.2.2': 15.928377426832572,
            'mRNA_2': 0.0,
            'MSTRG.2.1': 16.713026310072223,
            'MSTRG.3.1': 19.22155881227908,
            'gene_1_mRNA': 0.0
        }

        self.assertEqual(fpkm_dict, expected_fpkm)
        self.assertEqual(tpm_dict, expected_tpm)
示例#2
0
    def test_get_expression_levels_stringtie(self):
        exp_utils = ExpressionUtils(self.__class__.cfg)  # no logger specified

        fpkm_dict, tpm_dict = exp_utils.get_expression_levels(
            filepath='data/expression_utils/stringtie.genes.fpkm_tracking')

        self.assertEquals(49, len(fpkm_dict))
        self.assertEquals(49, len(tpm_dict))
示例#3
0
    def test_bad_run_stringtie_app_params(self, _get_feature_ids):

        exp_utils = ExpressionUtils(self.__class__.cfg)  # no logger specified

        with self.assertRaisesRegexp(ValueError, 'line.*'):
            exp_utils.get_expression_levels(
                filepath=
                'data/expression_utils/missing_gene.genes.fpkm_tracking',
                genome_ref='')
示例#4
0
    def test_get_expression_levels_cufflinks(self):

        exp_utils = ExpressionUtils(self.__class__.cfg,
                                    self.__class__.__LOGGER)

        fpkm_dict, tpm_dict = exp_utils.get_expression_levels(
            filepath='data/expression_utils/cufflinks.genes.fpkm_tracking')

        self.assertEquals(45, len(fpkm_dict))
        self.assertEquals(45, len(tpm_dict))
示例#5
0
    def test_get_expression_levels_cufflinks(self, _get_feature_ids):

        exp_utils = ExpressionUtils(self.__class__.cfg,
                                    self.__class__.__LOGGER)

        fpkm_dict, tpm_dict = exp_utils.get_expression_levels(
            filepath='data/expression_utils/cufflinks.genes.fpkm_tracking',
            genome_ref='')

        self.assertEquals(10, len(fpkm_dict))
        self.assertEquals(10, len(tpm_dict))
示例#6
0
    def test_get_expression_levels_zero_sum_fpkm(self):
        exp_utils = ExpressionUtils(self.__class__.cfg)  # no logger specified

        fpkm_dict, tpm_dict = exp_utils.get_expression_levels(
            filepath='data/expression_utils/zero_sum_fpkm.genes.fpkm_tracking')

        self.assertEquals(49, len(fpkm_dict))
        self.assertEquals(49, len(tpm_dict))

        sum_tpm = 0.0
        for tpm in tpm_dict.values():
            sum_tpm += tpm
        self.assertEquals(0.0, sum_tpm)
示例#7
0
    def setUpClass(cls):
        cls.__LOGGER = logging.getLogger('ExpressionUtils_test')
        cls.__LOGGER.setLevel(logging.INFO)
        streamHandler = logging.StreamHandler(sys.stdout)
        formatter = logging.Formatter(
            "%(asctime)s - %(filename)s - %(lineno)d - %(levelname)s - %(message)s"
        )
        formatter.converter = time.gmtime
        streamHandler.setFormatter(formatter)
        cls.__LOGGER.addHandler(streamHandler)
        cls.__LOGGER.info("Logger was set")

        token = environ.get('KB_AUTH_TOKEN', None)
        config_file = environ.get('KB_DEPLOYMENT_CONFIG', None)
        cls.cfg = {}
        config = ConfigParser()
        config.read(config_file)
        for nameval in config.items('ExpressionUtils'):
            cls.cfg[nameval[0]] = nameval[1]
        # Getting username from Auth profile for token
        authServiceUrl = cls.cfg['auth-service-url']
        auth_client = _KBaseAuth(authServiceUrl)
        user_id = auth_client.get_user(token)
        # WARNING: don't call any logging methods on the context object,
        # it'll result in a NoneType error
        cls.ctx = MethodContext(None)
        cls.ctx.update({
            'token':
            token,
            'user_id':
            user_id,
            'provenance': [{
                'service': 'ExpressionUtils',
                'method': 'please_never_use_it_in_production',
                'method_params': []
            }],
            'authenticated':
            1
        })
        cls.wsURL = cls.cfg['workspace-url']
        cls.callback_url = os.environ['SDK_CALLBACK_URL']
        cls.cfg['SDK_CALLBACK_URL'] = cls.callback_url
        cls.wsClient = workspaceService(cls.wsURL)
        cls.serviceImpl = ExpressionUtils(cls.cfg)
        cls.scratch = cls.cfg['scratch']