Esempio n. 1
0
def write_ice_entry(ice_client, ice_id1, ice_id2, typ, write_seq, group_names):
    '''Write a composite ICE entry (part in plasmid, or plasmid in strain).'''
    comp1 = ice_client.get_ice_entry(ice_id1)
    comp2 = ice_client.get_ice_entry(ice_id2)

    name = comp1.get_metadata()['name'] + \
        ' (' + comp2.get_metadata()['name'] + ')'

    product = ICEEntry(typ=typ)
    product.set_values({'name': name[:127], 'shortDescription': name})

    taxonomy = comp1.get_parameter('Taxonomy')

    if taxonomy:
        product.set_parameter('Taxonomy', taxonomy)

    ice_client.set_ice_entry(product)
    ice_client.add_link(product.get_ice_id(), comp1.get_ice_id())
    ice_client.add_link(product.get_ice_id(), comp2.get_ice_id())

    if write_seq:
        product.set_dna(dna_utils.concat(
            [comp1.get_dna(), comp2.get_dna()]))

    ice_client.set_ice_entry(product)

    if group_names:
        groups = ice_client.get_groups()

        for group_name in group_names:
            ice_client.add_permission(product.get_ice_id(),
                                      groups[group_name])

    return product, comp1, comp2
    def __write_dominoes(self, design):
        '''Writes dominoes to ICE, or retrieves them if pre-existing.'''
        seq_entries = {}

        for domino in design['dominoes']:
            seq = domino[1][0][0] + domino[1][1][0]

            if seq in seq_entries:
                ice_entry = seq_entries[seq]
            else:
                ice_entries = self.__ice_client.get_ice_entries_by_seq(seq)

                if len(ice_entries) == 0:
                    dna = _get_domino_dna('name', seq, domino[1][0][0],
                                          domino[1][1][0])
                    ice_entry = ICEEntry(dna, 'PART')
                else:
                    ice_entry = ice_entries[0]

            name, description = self.__get_metadata(ice_entry, domino[0])
            _set_metadata(ice_entry, name, description, 'DOMINO')
            self.__ice_client.set_ice_entry(ice_entry)
            self.__add_permissions(ice_entry)

            # Add link from plasmid -> domino:
            self.__ice_client.add_link(
                design['ice_id'], ice_entry.get_ice_id())

            seq_entries[seq] = ice_entry
Esempio n. 3
0
    def test_add_link(self):
        '''Tests add_link method.'''
        dna1 = _read('sbol.xml')
        dna2 = _read('sbol2.xml')

        ice_entry1 = ICEEntry(typ='PLASMID', dna=dna1)
        self.__ice_client.set_ice_entry(ice_entry1)

        ice_entry2 = ICEEntry(typ='PLASMID', dna=dna2)
        self.__ice_client.set_ice_entry(ice_entry2)

        self.__ice_client.add_link(
            ice_entry1.get_ice_number(), ice_entry2.get_ice_number())

        # "Refresh" (update metadata)
        ice_entry1 = self.__ice_client.get_ice_entry(ice_entry1.get_ice_id())
        ice_entry2 = self.__ice_client.get_ice_entry(ice_entry2.get_ice_id())

        self.assertTrue(ice_entry1.get_ice_number() in
                        [par['id']
                         for par in ice_entry2.get_metadata()['parents']])

        self.assertTrue(ice_entry2.get_ice_number() in
                        [link['id']
                         for link in ice_entry1.get_metadata()['linkedParts']])
Esempio n. 4
0
    def test_set_get_parameter(self):
        '''Tests set/get_parameter method.'''

        ice_entry = ICEEntry(typ='PLASMID')
        ice_entry.set_parameter('Cheese', 'Brie')
        self.__ice_client.set_ice_entry(ice_entry)
        ice_entry = self.__ice_client.get_ice_entry(ice_entry.get_ice_id())

        self.assertEqual(ice_entry.get_parameter('Cheese'), 'Brie')
Esempio n. 5
0
    def test_get_record_id(self):
        '''Tests get_record_id method.'''
        ice_entry1 = ICEEntry(typ='PLASMID')
        self.__ice_client.set_ice_entry(ice_entry1)
        self.assertNotEqual(ice_entry1.get_record_id(), None)

        ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
        self.__ice_client.set_ice_entry(ice_entry2)
        self.assertNotEqual(ice_entry2.get_record_id(), None)
Esempio n. 6
0
    def test_get_seq(self):
        '''Tests get_seq method.'''
        dna = _read('sbol.xml')

        ice_entry = ICEEntry(typ='PLASMID', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry)
        ice_entry = self.__ice_client.get_ice_entry(ice_entry.get_ice_id())

        self.assertEqual(ice_entry.get_seq(), dna['seq'])
    def test_get_seq(self):
        '''Tests get_seq method.'''
        dna = _read('sbol.xml')

        ice_entry = ICEEntry(typ='PLASMID', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry)
        ice_entry = self.__ice_client.get_ice_entry(ice_entry.get_ice_id())

        self.assertEqual(ice_entry.get_seq(), dna['seq'])
Esempio n. 8
0
    def test_get_ice_entry(self):
        '''Tests get_ice_entry method.'''
        dna = _read('sbol.xml')

        ice_entry_in = ICEEntry(typ='PART', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry_in)

        ice_entry_out = self.__ice_client.get_ice_entry(
            ice_entry_in.get_ice_number())
        self.assertEqual(ice_entry_out.get_seq(), dna['seq'])
    def test_get_ice_entry(self):
        '''Tests get_ice_entry method.'''
        dna = _read('sbol.xml')

        ice_entry_in = ICEEntry(typ='PART', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry_in)

        ice_entry_out = self.__ice_client.get_ice_entry(
            ice_entry_in.get_ice_number())
        self.assertEqual(ice_entry_out.get_seq(), dna['seq'])
Esempio n. 10
0
    def test_set_ice_entry(self):
        '''Tests set_ice_entry method.'''
        dna_in = _read('sbol.xml')

        ice_entry_in = ICEEntry(typ='PLASMID', dna=dna_in)
        self.__ice_client.set_ice_entry(ice_entry_in)

        ice_entry_out = self.__ice_client.get_ice_entry(
            ice_entry_in.get_ice_number())

        self.assertNotEqual(ice_entry_out, None)
Esempio n. 11
0
    def test_set_ice_entry(self):
        '''Tests set_ice_entry method.'''
        dna_in = _read('sbol.xml')

        ice_entry_in = ICEEntry(typ='PLASMID', dna=dna_in)
        self.__ice_client.set_ice_entry(ice_entry_in)

        ice_entry_out = self.__ice_client.get_ice_entry(
            ice_entry_in.get_ice_number())

        self.assertNotEqual(ice_entry_out, None)
Esempio n. 12
0
    def test_set_dna(self):
        '''Tests set_dna method.'''
        dna1 = _read('sbol.xml')
        dna2 = _read('sbol2.xml')

        ice_entry = ICEEntry(typ='PLASMID', dna=dna1)
        self.__ice_client.set_ice_entry(ice_entry)

        ice_entry.set_dna(dna2)
        self.__ice_client.set_ice_entry(ice_entry)

        self.assertEqual(ice_entry.get_seq(), dna2['seq'])
Esempio n. 13
0
    def test_set_dna(self):
        '''Tests set_dna method.'''
        dna1 = _read('sbol.xml')
        dna2 = _read('sbol2.xml')

        ice_entry = ICEEntry(typ='PLASMID', dna=dna1)
        self.__ice_client.set_ice_entry(ice_entry)

        ice_entry.set_dna(dna2)
        self.__ice_client.set_ice_entry(ice_entry)

        self.assertEqual(ice_entry.get_seq(), dna2['seq'])
Esempio n. 14
0
    def test_add_permission(self):
        '''Tests add_permission method.'''
        dna = _read('sbol.xml')
        ice_entry = ICEEntry(typ='PLASMID', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry)

        groups = self.__ice_client.get_groups()

        for group_num in groups.values():
            self.__ice_client.add_permission(ice_entry.get_ice_id(), group_num)

        # If test progresses to here, it has succeeded:
        self.assertTrue(True)
Esempio n. 15
0
    def test_add_permission(self):
        '''Tests add_permission method.'''
        dna = _read('sbol.xml')
        ice_entry = ICEEntry(typ='PLASMID', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry)

        groups = self.__ice_client.get_groups()

        for group_num in groups.values():
            self.__ice_client.add_permission(ice_entry.get_ice_id(), group_num)

        # If test progresses to here, it has succeeded:
        self.assertTrue(True)
Esempio n. 16
0
    def __write_plasmid(self, design):
        '''Writes plasmids to ICE.'''
        ice_entry = ICEEntry(typ='PLASMID')
        self.__ice_client.set_ice_entry(ice_entry)
        self.__add_permissions(ice_entry)
        design['ice_id'] = ice_entry.get_ice_id()

        _set_metadata(ice_entry, design['name'], ' '.join(design['design']),
                      'PLASMID')

        ice_entry.set_dna(design['plasmid'])
        self.__ice_client.set_ice_entry(ice_entry)

        # Add link from plasmid -> parts:
        for part_id in design['design']:
            self.__ice_client.add_link(design['ice_id'], part_id)
Esempio n. 17
0
    def test_get_ice_entries_by_seq(self):
        '''Tests get_ice_entries_by_seq method.'''
        dna = _read('sbol.xml')
        # dna.set_seq(sequence_utils.get_random_dna(4096))

        ice_entry = ICEEntry(typ='PLASMID', dna=dna)
        self.__ice_client.set_ice_entry(ice_entry)

        self.__ice_client.reconnect()
        result = self.__ice_client.get_ice_entries_by_seq(dna['seq'])
        self.assertTrue(len(result) > 0)
Esempio n. 18
0
    def test_get_record_id(self):
        '''Tests get_record_id method.'''
        ice_entry1 = ICEEntry(typ='PLASMID')
        self.__ice_client.set_ice_entry(ice_entry1)
        self.assertNotEqual(ice_entry1.get_record_id(), None)

        ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
        self.__ice_client.set_ice_entry(ice_entry2)
        self.assertNotEqual(ice_entry2.get_record_id(), None)
Esempio n. 19
0
    def test_set_get_parameter(self):
        '''Tests set/get_parameter method.'''

        ice_entry = ICEEntry(typ='PLASMID')
        ice_entry.set_parameter('Cheese', 'Brie')
        self.__ice_client.set_ice_entry(ice_entry)
        ice_entry = self.__ice_client.get_ice_entry(ice_entry.get_ice_id())

        self.assertEqual(ice_entry.get_parameter('Cheese'), 'Brie')
Esempio n. 20
0
    def test_set_value(self):
        '''Tests set_value method.'''
        ice_entry1 = ICEEntry(typ='PLASMID')
        ice_entry1.set_value('creator', 'God')
        self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
        self.assertEqual(ice_entry1.get_metadata()['creator'], 'God')
        self.__ice_client.set_ice_entry(ice_entry1)

        ice_entry2 = self.__ice_client.get_ice_entry(
            ice_entry1.get_ice_number())
        ice_entry2.set_value('creator', 'Aitor Karanka')
        self.__ice_client.set_ice_entry(ice_entry2)

        ice_entry3 = self.__ice_client.get_ice_entry(
            ice_entry1.get_ice_number())
        self.assertEqual(ice_entry3.get_metadata()['creator'], 'Aitor Karanka')

        ice_entry4 = ICEEntry(metadata={'type': 'PLASMID'})
        ice_entry4.set_value('creator', 'God')
        self.assertEqual(ice_entry4.get_metadata()['type'], 'PLASMID')
        self.assertEqual(ice_entry4.get_metadata()['creator'], 'God')
Esempio n. 21
0
 def test_get_sbol_doc(self):
     '''Tests get_sbol_doc method.'''
     dna = _read('sbol.xml')
     ice_entry = ICEEntry(typ='PLASMID', dna=dna)
     self.assertEqual(ice_entry.get_dna(), dna)
Esempio n. 22
0
 def test_get_metadata(self):
     '''Tests get_metadata method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     self.assertEqual(ice_entry2.get_metadata()['type'], 'PLASMID')
Esempio n. 23
0
 def test_get_ice_number_none(self):
     '''Tests get_ice_number method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     self.assertEqual(ice_entry1.get_ice_number(), None)
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     self.assertEqual(ice_entry2.get_ice_number(), None)
Esempio n. 24
0
    def test_add_link(self):
        '''Tests add_link method.'''
        dna1 = _read('sbol.xml')
        dna2 = _read('sbol2.xml')

        ice_entry1 = ICEEntry(typ='PLASMID', dna=dna1)
        self.__ice_client.set_ice_entry(ice_entry1)

        ice_entry2 = ICEEntry(typ='PLASMID', dna=dna2)
        self.__ice_client.set_ice_entry(ice_entry2)

        self.__ice_client.add_link(ice_entry1.get_ice_number(),
                                   ice_entry2.get_ice_number())

        # "Refresh" (update metadata)
        ice_entry1 = self.__ice_client.get_ice_entry(ice_entry1.get_ice_id())
        ice_entry2 = self.__ice_client.get_ice_entry(ice_entry2.get_ice_id())

        self.assertTrue(ice_entry1.get_ice_number(
        ) in [par['id'] for par in ice_entry2.get_metadata()['parents']])

        self.assertTrue(ice_entry2.get_ice_number(
        ) in [link['id'] for link in ice_entry1.get_metadata()['linkedParts']])
Esempio n. 25
0
 def test_get_ice_number_none(self):
     '''Tests get_ice_number method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     self.assertEqual(ice_entry1.get_ice_number(), None)
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     self.assertEqual(ice_entry2.get_ice_number(), None)
Esempio n. 26
0
 def test_get_metadata(self):
     '''Tests get_metadata method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     self.assertEqual(ice_entry2.get_metadata()['type'], 'PLASMID')
Esempio n. 27
0
    def test_set_value(self):
        '''Tests set_value method.'''
        ice_entry1 = ICEEntry(typ='PLASMID')
        ice_entry1.set_value('creator', 'God')
        self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
        self.assertEqual(ice_entry1.get_metadata()['creator'], 'God')
        self.__ice_client.set_ice_entry(ice_entry1)

        ice_entry2 = self.__ice_client.get_ice_entry(
            ice_entry1.get_ice_number())
        ice_entry2.set_value('creator', 'Aitor Karanka')
        self.__ice_client.set_ice_entry(ice_entry2)

        ice_entry3 = self.__ice_client.get_ice_entry(
            ice_entry1.get_ice_number())
        self.assertEqual(ice_entry3.get_metadata()['creator'], 'Aitor Karanka')

        ice_entry4 = ICEEntry(metadata={'type': 'PLASMID'})
        ice_entry4.set_value('creator', 'God')
        self.assertEqual(ice_entry4.get_metadata()['type'], 'PLASMID')
        self.assertEqual(ice_entry4.get_metadata()['creator'], 'God')
Esempio n. 28
0
 def test_get_sbol_doc(self):
     '''Tests get_sbol_doc method.'''
     dna = _read('sbol.xml')
     ice_entry = ICEEntry(typ='PLASMID', dna=dna)
     self.assertEqual(ice_entry.get_dna(), dna)
Esempio n. 29
0
 def test_set_values(self):
     '''Tests set_values method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     ice_entry1.set_values({'creator': 'God', 'name': 'Test'})
     self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
     self.assertEqual(ice_entry1.get_metadata()['creator'], 'God')
     self.assertEqual(ice_entry1.get_metadata()['name'], 'Test')
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     ice_entry2.set_values({'creator': 'God', 'name': 'Test'})
     self.assertEqual(ice_entry2.get_metadata()['type'], 'PLASMID')
     self.assertEqual(ice_entry2.get_metadata()['creator'], 'God')
     self.assertEqual(ice_entry2.get_metadata()['name'], 'Test')
Esempio n. 30
0
 def test_set_values(self):
     '''Tests set_values method.'''
     ice_entry1 = ICEEntry(typ='PLASMID')
     ice_entry1.set_values({'creator': 'God', 'name': 'Test'})
     self.assertEqual(ice_entry1.get_metadata()['type'], 'PLASMID')
     self.assertEqual(ice_entry1.get_metadata()['creator'], 'God')
     self.assertEqual(ice_entry1.get_metadata()['name'], 'Test')
     ice_entry2 = ICEEntry(metadata={'type': 'PLASMID'})
     ice_entry2.set_values({'creator': 'God', 'name': 'Test'})
     self.assertEqual(ice_entry2.get_metadata()['type'], 'PLASMID')
     self.assertEqual(ice_entry2.get_metadata()['creator'], 'God')
     self.assertEqual(ice_entry2.get_metadata()['name'], 'Test')