<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def filter_publication(publication, cache=_CACHE):
 """ Deduplication function, which compares `publication` with samples stored in `cache`. If the match NOT is found, `publication` is returned, else None. Args: publication (obj):
 :class:`.Publication` instance. cache (obj):
 Cache which is used for lookups. Returns: obj/None: Depends whether the object is found in cache or not. """

    if cache is None:
        cache = load_cache()

    if publication._get_hash() in cache:
        return None

    cache.update(
        [publication._get_hash()]
    )
    save_cache(cache)
    return publication