<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _process_organisms(self, limit):
 """ The internal identifiers for the organisms in flybase :param limit: :return: """


        if self.test_mode:
            graph = self.testgraph
        else:
            graph = self.graph
        model = Model(graph)
        raw = '/'.join((self.rawdir, 'organism'))
        LOG.info("processing organisms")

        line_counter = 0
        with open(raw, 'r') as f:
            filereader = csv.reader(f, delimiter='\t', quotechar='\"')
            f.readline()  # read the header row; skip
            for line in filereader:
                (organism_id, abbreviation, genus, species, common_name,
                 comment) = line
                # 1	Dmel	Drosophila	melanogaster	fruit fly
                # 2	Comp	Computational	result

                line_counter += 1

                tax_internal_id = self._makeInternalIdentifier('organism', organism_id)
                tax_label = ' '.join((genus, species))
                tax_id = tax_internal_id

                self.idhash['organism'][organism_id] = tax_id
                self.label_hash[tax_id] = tax_label

                # we won't actually add the organism to the graph,
                # unless we actually use it therefore it is added outside of
                # this function

                if self.test_mode and int(organism_id) not in self.test_keys['organism']:
                    continue

                if not self.test_mode and limit is not None and line_counter > limit:
                    pass
                else:
                    model.addClassToGraph(tax_id)
                    for s in [common_name, abbreviation]:
                        if s is not None and s.strip() != '':
                            model.addSynonym(tax_id, s)
                            model.addComment(tax_id, tax_internal_id)

        return