コード例 #1
0
 def test__getBeadsVolume_1stage(self, mock_loadIndividualSettings):
     self.prep_createBeadsVolSettings(1)
     param = 'Initial sample volume'
     self.prep_settingsFile(param, [100, 29, 50, 0, 0, -1, -1, -1, -1, -1, -1, -1])
     
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     v = s._getBeadsVolume(0, 1)
     self.assertEqual(v, 15)
     v = s._getBeadsVolume(1, 1)
     self.assertEqual(v, 31)
     v = s._getBeadsVolume(2, 1)
     self.assertEqual(v, 22)
     
     # Rewriting the settings file. 
     # Now the function should calculate volume from the initial volume and fraction
     param = 'Beads volume'
     self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     v = s._getBeadsVolume(0, 1)
     self.assertEqual(v, 100)
     v = s._getBeadsVolume(1, 1)
     self.assertEqual(v, 29*0.9)
     v = s._getBeadsVolume(2, 1)
     self.assertEqual(v, 50*1.5)
     
     # Rewriting the settings file. 
     # Now the function should calculate volume from the DNA cutoff value
     param = 'Fraction'
     self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     a,b,c = bl.getBeadsVolumeCoef()
     
     expected_dna_cutoff = 150
     f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
     v_expected = 100 * f_expected
     v = s._getBeadsVolume(0, 1)
     self.assertEqual(v, v_expected)
     
     expected_dna_cutoff = 300
     f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
     v_expected = 29 * f_expected
     v = s._getBeadsVolume(1, 1)
     self.assertEqual(v, v_expected)
     
     expected_dna_cutoff = 100
     f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
     v_expected = 50 * f_expected
     v = s._getBeadsVolume(2, 1)
     self.assertEqual(v, v_expected)
コード例 #2
0
 def test__getBeadsVolumeCoef(self):
     a, b, c = bl.getBeadsVolumeCoef()
     # Coefficients are not None
     self.assertIsNotNone(a)
     self.assertIsNotNone(b)
     self.assertIsNotNone(c)
     # Coefficients are of the right type
     self.assertIsInstance(a, float)
     self.assertIsInstance(b, float)
     self.assertIsInstance(c, float)
コード例 #3
0
 def test_calcBeadVolFractionFromDNACutoff(self, mock_loadIndividualSettings):
     param = 'Initial sample volume'
     self.prep_settingsFile(param, [100, 29, 50, 0, 0, -1, -1, -1, -1, -1, -1, -1])
     
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     f = s._calcBeadVolFractionFromDNACutoff(1000)
     
     a,b,c = bl.getBeadsVolumeCoef()
     f_expected = a + b / 1000 + c / 1000 ** 2
     
     self.assertEqual(f, f_expected)
     
     
     f = s._calcBeadVolFractionFromDNACutoff(160)
     
     a,b,c = bl.getBeadsVolumeCoef()
     f_expected = a + b / 160 + c / 160 ** 2
     
     self.assertEqual(f, f_expected)
コード例 #4
0
 def test_getBeadsVolUsingDNACutoff(self, mock_loadIndividualSettings):
     self.prep_createBeadsVolSettings(1)
     param = 'Initial sample volume'
     self.prep_settingsFile(param, [100, 29, 50, 0, 0, -1, -1, -1, -1, -1, -1, -1])
     
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     a,b,c = bl.getBeadsVolumeCoef()
     f_expected = a + b / 150 + c / 150 ** 2
     v = s._getBeadsVolUsingDNACutoff(0, 1)
     self.assertEqual(v, f_expected*100)
     self.assertFalse(v == 0)
     
     f_expected = a + b / 300 + c / 300 ** 2
     v = s._getBeadsVolUsingDNACutoff(1, 1)
     self.assertEqual(v, f_expected*29)
     
     f_expected = a + b / 100 + c / 100 ** 2
     v = s._getBeadsVolUsingDNACutoff(2, 1)
     self.assertEqual(v, f_expected*50)
 
     self.delTempSettingsFile()
     del s
     
     self.prep_createBeadsVolSettings(2)
     param = 'Initial sample volume'
     self.prep_settingsFile(param, [100, 29, 50, 0, 0, -1, -1, -1, -1, -1, -1, -1])
     
     s = ponec.settings(self.mock_csv_path)
     s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
     s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
     
     f_expected = a + b / 900 + c / 900 ** 2
     v = s._getBeadsVolUsingDNACutoff(0, 1)
     self.assertEqual(v, f_expected*100)
     
     f_expected = a + b / 800 + c / 800 ** 2
     v = s._getBeadsVolUsingDNACutoff(1, 1)
     self.assertEqual(v, f_expected*29)
     
     f_expected = a + b / 700 + c / 700 ** 2
     v = s._getBeadsVolUsingDNACutoff(2, 1)
     self.assertEqual(v, f_expected*50)
コード例 #5
0
    def test__getBeadsVolume_2stage(self, mock_loadIndividualSettings):
        self.prep_createBeadsVolSettings(2)
        param = 'Initial sample volume'
        self.prep_settingsFile(param, [100, 29, 50, 0, 0, -1, -1, -1, -1, -1, -1, -1])
        
        s = ponec.settings(self.mock_csv_path)
        s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
        s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')

        v = s._getBeadsVolume(0, 1)
        self.assertEqual(v, 30)
        v = s._getBeadsVolume(1, 1)
        self.assertEqual(v, 20)
        v = s._getBeadsVolume(2, 1)
        self.assertEqual(v, 25)
        
        v = s._getBeadsVolume(0, 2)
        self.assertEqual(v, 15)
        v = s._getBeadsVolume(1, 2)
        self.assertEqual(v, 31)
        v = s._getBeadsVolume(2, 2)
        self.assertEqual(v, 22)
        
        
        # Rewriting the settings file. 
        # Now the function should calculate volume from the initial volume and fraction
        param = 'Beads volume'
        self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
        param = 'Beads volume upper cutoff'
        self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
        s = ponec.settings(self.mock_csv_path)
        s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
        s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
        
        v = s._getBeadsVolume(0, 1)
        self.assertEqual(v, 100*0.5)
        v = s._getBeadsVolume(1, 1)
        self.assertEqual(v, 29*0.6)
        v = s._getBeadsVolume(2, 1)
        self.assertEqual(v, 50*0.55)
        
        v = s._getBeadsVolume(0, 2)
        self.assertEqual(v, 100*(1.0-0.5))
        v = s._getBeadsVolume(1, 2)
        self.assertEqual(v, 29*(0.9-0.6))
        v = s._getBeadsVolume(2, 2)
        self.assertEqual(v, 50*(1.5-0.55))
        
        # Rewriting the settings file. 
        # Now the function should calculate volume from the initial volume and DNA cutoff
        param = 'Fraction'
        self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
        param = 'Fraction upper cutoff'
        self.prep_settingsFile(param, [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1])
        s = ponec.settings(self.mock_csv_path)
        s.cutoffs = s.returnProtocolParameter('Number of cutoffs')
        s.initial_sample_vol_list = s._returnSampleParameterList('Initial sample volume')
        
        a,b,c = bl.getBeadsVolumeCoef()
        
        expected_dna_cutoff = 900
        f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
        v_expected = 100 * f_expected
        v = s._getBeadsVolume(0, 1)
        self.assertEqual(v, v_expected)
        exp_dna_cutoff_2 = 150
        f_expected_2 = a + b / exp_dna_cutoff_2 + c / exp_dna_cutoff_2 ** 2
        v_expected_2 = 100 * (f_expected_2 - f_expected)
        v = s._getBeadsVolume(0, 2)
        self.assertEqual(v, v_expected_2)
        
        
        expected_dna_cutoff = 800
        f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
        v_expected = 29 * f_expected
        v = s._getBeadsVolume(1, 1)
        self.assertEqual(v, v_expected)
        exp_dna_cutoff_2 = 300
        f_expected_2 = a + b / exp_dna_cutoff_2 + c / exp_dna_cutoff_2 ** 2
        v_expected_2 = 29 * (f_expected_2 - f_expected)
        v = s._getBeadsVolume(1, 2)
        self.assertEqual(v, v_expected_2)
        
        expected_dna_cutoff = 700
        f_expected = a + b / expected_dna_cutoff + c / expected_dna_cutoff ** 2
        v_expected = 50 * f_expected
        v = s._getBeadsVolume(2, 1)
        self.assertEqual(v, v_expected)
        exp_dna_cutoff_2 = 100
        f_expected_2 = a + b / exp_dna_cutoff_2 + c / exp_dna_cutoff_2 ** 2
        v_expected_2 = 50 * (f_expected_2 - f_expected)
        v = s._getBeadsVolume(2, 2)
        self.assertEqual(v, v_expected_2)
コード例 #6
0
ファイル: purify.py プロジェクト: cartesianrobotics/bernielib
 def _calcBeadVolFractionFromDNACutoff(self, dna_size_cutoff):
     # Getting polynome coefficients
     a, b, c = bl.getBeadsVolumeCoef()
     # Calculating volume multiplier (fraction)
     frac = a + b / dna_size_cutoff + c / dna_size_cutoff**2
     return frac