<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def copy_modified_gene(self, modified_gene, ignore_model_attributes=True):
 """Copy attributes of a Gene object over to this Gene, given that the modified gene has the same ID. Args: modified_gene (Gene, GenePro):
 Gene with modified attributes that you want to copy over. ignore_model_attributes (bool):
 If you want to ignore copying over attributes related to metabolic models. """

        ignore = ['_model', '_reaction', '_functional', 'model', 'reaction', 'functional']
        for attr in filter(lambda a: not a.startswith('__') and not isinstance(getattr(type(self), a, None), property) and not callable(getattr(self, a)),
                           dir(modified_gene)):
            if attr not in ignore and ignore_model_attributes:
                setattr(self, attr, getattr(modified_gene, attr))