def remove_children(*args)
      options = args.extract_options!

      raise_if_sex_undefined

      resulting_indivs = if args.blank?
        children(options)
      else
        args & children(options)
      end

      transaction do
        resulting_indivs.each do |child|
          if options[:remove_other_parent] == true
            child.remove_parents
          else
            case sex_before_type_cast
            when gclass.sex_male_value
              child.remove_father
            when gclass.sex_female_value
              child.remove_mother
            else
              raise SexError, "Sex value not valid for #{self}"
            end
          end
        end
      end
      !resulting_indivs.empty? #returned value must be true if self has at least a siblings to affect
    end
def remove_children(*args)
      options = args.extract_options!

      raise_if_sex_undefined

      resulting_indivs = if args.blank?
        children(options)
      else
        args & children(options)
      end

      transaction do
        resulting_indivs.each do |child|
          if options[:remove_other_parent] == true
            child.remove_parents
          else
            case sex_before_type_cast
            when gclass.sex_male_value
              child.remove_father
            when gclass.sex_female_value
              child.remove_mother
            else
              raise SexError, "Sex value not valid for #{self}"
            end
          end
        end
      end
      !resulting_indivs.empty? #returned value must be true if self has at least a siblings to affect
    end
remove children by nullifying the parent corresponding to self
 @overload remove_children(*children,options={})
   @param [Object] children list of children
   @param [Hash] options
   @option options [Boolean] remove_other_parent if specified, passed individuals' mother will also be nullified
 @return [Boolean] true if at least one child was affected, false otherwise