From 7412025849abe85b67698b1309fb9ec9d7139912 Mon Sep 17 00:00:00 2001
From: Merle Stahl <merle.stahl@studium.uni-hamburg.de>
Date: Wed, 15 Dec 2021 16:39:48 +0100
Subject: [PATCH] =?UTF-8?q?l=C3=B6schen?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 count_journal.py                              |  40 ---
 example_input.py                              |  13 -
 input/README.md                               |  50 ---
 input/__init__.py                             |   0
 input/get/__init__.py                         |   0
 input/get/acs.py                              | 192 -----------
 input/get/journal_fetcher.py                  |  96 ------
 input/get/nature.py                           |  59 ----
 input/get/template_.py                        |  51 ---
 input/interface.py                            | 113 -------
 input/publication.py                          | 143 ---------
 input/requirements.txt                        |   2 -
 input/test/__init__.py                        |   0
 input/test/test_acs.py                        | 303 ------------------
 input/test/test_input.py                      |  82 -----
 input_old/README.md                           |   3 -
 input_old/__pycache__/input_fj.cpython-39.pyc | Bin 4300 -> 0 bytes
 input_old/example_urls                        |   2 -
 input_old/input_fj.py                         | 154 ---------
 input_old/pub.py                              |  32 --
 input_old/test.py                             |  15 -
 input_old/x                                   | 234 --------------
 verarbeitung/Processing.py                    | 247 --------------
 verarbeitung/Processing_unittest.py           |  66 ----
 .../__pycache__/Processing.cpython-36.pyc     | Bin 3693 -> 0 bytes
 .../__pycache__/Processing.cpython-38.pyc     | Bin 4009 -> 0 bytes
 .../__pycache__/Processing.cpython-39.pyc     | Bin 4045 -> 0 bytes
 .../Processing_pub_objs_only.cpython-39.pyc   | Bin 4137 -> 0 bytes
 .../__pycache__/input_fj.cpython-36.pyc       | Bin 4299 -> 0 bytes
 .../__pycache__/input_fj.cpython-38.pyc       | Bin 4329 -> 0 bytes
 .../__pycache__/input_fj.cpython-39.pyc       | Bin 4337 -> 0 bytes
 .../__pycache__/input_test.cpython-36.pyc     | Bin 2579 -> 0 bytes
 .../__pycache__/input_test.cpython-38.pyc     | Bin 2862 -> 0 bytes
 .../__pycache__/input_test.cpython-39.pyc     | Bin 3865 -> 0 bytes
 .../__pycache__/json_demo.cpython-36.pyc      | Bin 865 -> 0 bytes
 .../__pycache__/json_demo.cpython-38.pyc      | Bin 1131 -> 0 bytes
 .../__pycache__/json_demo.cpython-39.pyc      | Bin 1163 -> 0 bytes
 .../__pycache__/unittest.cpython-36.pyc       | Bin 646 -> 0 bytes
 verarbeitung/input_test.py                    |  82 -----
 verarbeitung/json_demo.py                     |  49 ---
 "verarbeitung/n\303\266tige Tests.txt"        |   4 -
 41 files changed, 2032 deletions(-)
 delete mode 100755 count_journal.py
 delete mode 100755 example_input.py
 delete mode 100644 input/README.md
 delete mode 100644 input/__init__.py
 delete mode 100755 input/get/__init__.py
 delete mode 100755 input/get/acs.py
 delete mode 100755 input/get/journal_fetcher.py
 delete mode 100644 input/get/nature.py
 delete mode 100755 input/get/template_.py
 delete mode 100755 input/interface.py
 delete mode 100755 input/publication.py
 delete mode 100644 input/requirements.txt
 delete mode 100644 input/test/__init__.py
 delete mode 100644 input/test/test_acs.py
 delete mode 100755 input/test/test_input.py
 delete mode 100644 input_old/README.md
 delete mode 100644 input_old/__pycache__/input_fj.cpython-39.pyc
 delete mode 100644 input_old/example_urls
 delete mode 100644 input_old/input_fj.py
 delete mode 100644 input_old/pub.py
 delete mode 100755 input_old/test.py
 delete mode 100644 input_old/x
 delete mode 100644 verarbeitung/Processing.py
 delete mode 100644 verarbeitung/Processing_unittest.py
 delete mode 100644 verarbeitung/__pycache__/Processing.cpython-36.pyc
 delete mode 100644 verarbeitung/__pycache__/Processing.cpython-38.pyc
 delete mode 100644 verarbeitung/__pycache__/Processing.cpython-39.pyc
 delete mode 100644 verarbeitung/__pycache__/Processing_pub_objs_only.cpython-39.pyc
 delete mode 100644 verarbeitung/__pycache__/input_fj.cpython-36.pyc
 delete mode 100644 verarbeitung/__pycache__/input_fj.cpython-38.pyc
 delete mode 100644 verarbeitung/__pycache__/input_fj.cpython-39.pyc
 delete mode 100644 verarbeitung/__pycache__/input_test.cpython-36.pyc
 delete mode 100644 verarbeitung/__pycache__/input_test.cpython-38.pyc
 delete mode 100644 verarbeitung/__pycache__/input_test.cpython-39.pyc
 delete mode 100644 verarbeitung/__pycache__/json_demo.cpython-36.pyc
 delete mode 100644 verarbeitung/__pycache__/json_demo.cpython-38.pyc
 delete mode 100644 verarbeitung/__pycache__/json_demo.cpython-39.pyc
 delete mode 100644 verarbeitung/__pycache__/unittest.cpython-36.pyc
 delete mode 100644 verarbeitung/input_test.py
 delete mode 100644 verarbeitung/json_demo.py
 delete mode 100644 "verarbeitung/n\303\266tige Tests.txt"

diff --git a/count_journal.py b/count_journal.py
deleted file mode 100755
index 13886a2..0000000
--- a/count_journal.py
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-
-from input.interface import InputInterface as Input
-
-def count_journals(url: str):
-    inter = Input()
-    pub = inter.get_publication(url)
-
-    if pub.citations:
-        for citation in pub.citations:
-            journal = citation.journal
-            if journal in cit:
-                cit[journal] += 1
-            else:
-                cit[journal] = 1
-
-    if pub.references:
-        for reference in pub.references:
-            journal = reference.journal
-            if journal in cit:
-                cit[journal] += 1
-            else:
-                cit[journal] = 1
-
-if __name__ == "__main__":
-    cit = {}
-	
-    count_journals("https://doi.org/10.1021/acs.jcim.1c00203")
-    count_journals("https://doi.org/10.1021/acs.jcim.6b00561")
-    count_journals("https://doi.org/10.1021/acs.jcim.6b00613")
-    count_journals("https://doi.org/10.1021/acs.jcim.1c00917")
-    count_journals("https://doi.org/10.1021/acs.jmedchem.0c01332")
-		#count_journals("https://pubs.acs.org/doi/10.1021/acs.biochem.1c00290")
-		#count_journals("https://pubs.acs.org/doi/10.1021/acsenvironau.1c00007")
-		#count_journals("https://pubs.acs.org/doi/10.1021/acs.biochem.7b01162")
-
-    cit = dict(sorted(cit.items(), key=lambda item: item[1]))
-    for journal in cit:
-        if journal != "":
-            print(f'{journal}: {cit[journal]}')
diff --git a/example_input.py b/example_input.py
deleted file mode 100755
index c9bca41..0000000
--- a/example_input.py
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/usr/bin/env python3
-
-from input.interface import InputInterface as Input
-
-def main(url: str):
-    i = Input()
-    #print(i.get_publication(url))
-    print(i.get_pub_light(url))
-    # print(i.get_supported_fetchers()) Useless because all classes are called the same
-
-if __name__ == "__main__":
-	#main("https://doi.org/10.1021/acs.jcim.1c0023")
-    main("https://doi.org/10.1021/acs.jcim.5b00332")
diff --git a/input/README.md b/input/README.md
deleted file mode 100644
index 110ce69..0000000
--- a/input/README.md
+++ /dev/null
@@ -1,50 +0,0 @@
-# Projekt CiS-Projekt 2021/22
-
-Input-Package to fetch publication information with a given url.
-
-## Usage/Examples
-
-```python
-from input.interface import InputInterface as Input
-from input.publication import Publication
-
-def main(url):
-    inter = Input()
-    try:
-        pub = inter.get_publication(url)
-    except Exception as error:
-        raise error
-
-    print(pub)
-    pub.title = "Cool new Title"
-    print(pub)
-
-if __name__ == "__main__":
-    main("https://doi.org/10.1021/acs.chemrev.8b00728")
-```
-
-The expected results of calling this methode are:
-| Input-Url | Result    |
-|-----------|-----------|
-| supported & correct| A publication Instance |
-| supported & uncorrect| ValueError|
-| not supported | ValueError|
-
-Supported Url are urls, which comply with the url-pattern of supported Journals.  
-
-### Supported Journals:
-
-- ACS-Journals
-- (Nature-Journals)
-
-## Testing
-
-``` c
-python -m unittest input/test/<file.py> -v
-# for all tests in directory
-python -m unittest discover input/test -v
-```
-## Authors
-- Florian Jochens
-- Sam Ockenden
-- Julius Schenk
\ No newline at end of file
diff --git a/input/__init__.py b/input/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/input/get/__init__.py b/input/get/__init__.py
deleted file mode 100755
index e69de29..0000000
diff --git a/input/get/acs.py b/input/get/acs.py
deleted file mode 100755
index 9691845..0000000
--- a/input/get/acs.py
+++ /dev/null
@@ -1,192 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Child class of JournalFetcher
-Usage: Check if Url can be used with 'can_use_url'
-       and then fetch publication with 'get_publication'
-"""
-
-import re
-
-from input.get.journal_fetcher import JournalFetcher
-from input.publication import Publication, Citation
-
-
-class Fetcher(JournalFetcher):
-    """
-    Specific Fetcher for the ACS journals.
-    """
-
-    # Constant for the abbreviations of the supported Journals
-    SUPPORTED_JOURNALS = ['1021']
-
-    @staticmethod
-    def can_use_url(url: str) -> str:
-        """
-        Uses Regex to extract journal specific substrings in Doi.
-        TODO: Support non Doi-urls
-        """
-        matched_url = re.match(r'^(https?://)?(doi.org/|pubs.acs.org/doi/)?(10.(\d{4})/\w+.\S+)', url.strip(". \t\r\n"))
-        
-        #Checks if match exists
-        if matched_url is not None:
-            return matched_url[4] in Fetcher.SUPPORTED_JOURNALS
-        else:
-            return False
-
-    @staticmethod
-
-
-    def get_pub_light(url: str) -> Publication:
-        """
-        Fetches html and creates Beatifulsoup-instance in parent class.
-        Specific css-searches for ACS-Journals and creates Publication-instance.
-        """
-
-        # Creation of Soup
-        try:
-            soup = JournalFetcher.get_soup(url)
-        except Exception as error:
-            raise error
-        
-        # Raise Error if re recognizes Pattern, but url isnt correct:
-        #   For other Urls
-        if soup.text.strip(" \t\n")=="Missing resource null":
-            raise ValueError("'{}' matches Pattern for 'ACS', but doesnt link to Paper.".format(url))
-
-        #   For Dois
-        if soup.title is not None:
-            if soup.title.text == "Error: DOI Not Found":
-                raise ValueError("'{}' matches Pattern for 'ACS', but doesnt link to Paper.".format(url))
-
-        
-        soup_header = soup.select('.article_header')[0]
-        
-        # Creates Publication
-        doi_url = soup_header.select('a[title="DOI URL"]')[0].string
-        title = soup_header.select(".hlFld-Title")[0].text
-
-        contributors = []
-        for author in soup_header.select(".hlFld-ContribAuthor"):
-            contributors.append(author.text)
-
-        journal = soup_header.select(".cit-title")[0].text
-
-        # Replaces abbreviation with whole name
-        if journal in JournalFetcher.abbrev_dict:
-            journal = JournalFetcher.abbrev_dict[journal]
-                
-
-        published = soup_header.select(".pub-date-value")[0].text
-
-        subjects = []
-        subject_soup = soup_header.select('.article_header-taxonomy')[0]
-        for subject in subject_soup.select('a'):
-            subjects.append(subject.text)
-
-        return Publication(doi_url, title, contributors, journal, published, 
-                           subjects)
-
-    def get_publication(url: str) -> Publication:
-        """
-        Fetches html and creates Beatifulsoup-instance in parent class.
-        Specific css-searches for ACS-Journals and creates Publication-instance.
-        """
-
-        # Creation of Soup
-        try:
-            soup = JournalFetcher.get_soup(url)
-        except Exception as error:
-            raise error
-        
-        # Raise Error if re recognizes Pattern, but url isnt correct:
-        #   For other Urls
-        if soup.text.strip(" \t\n")=="Missing resource null":
-            raise ValueError("'{}' matches Pattern for 'ACS', but doesnt link to Paper.".format(url))
-
-        #   For Dois
-        if soup.title is not None:
-            if soup.title.text == "Error: DOI Not Found":
-                raise ValueError("'{}' matches Pattern for 'ACS', but doesnt link to Paper.".format(url))
-
-        
-        soup_header = soup.select('.article_header')[0]
-        
-        #Could be used for more specific search
-        ref_cit_soup = soup
-
-        # Creates Publication
-        doi_url = soup_header.select('a[title="DOI URL"]')[0].string
-        title = soup_header.select(".hlFld-Title")[0].text
-
-        contributors = []
-        for author in soup_header.select(".hlFld-ContribAuthor"):
-            contributors.append(author.text)
-
-        journal = soup_header.select(".cit-title")[0].text
-
-        # Replaces abbreviation with whole name
-        if journal in JournalFetcher.abbrev_dict:
-            journal = JournalFetcher.abbrev_dict[journal]
-                
-
-        published = soup_header.select(".pub-date-value")[0].text
-
-        subjects = []
-        subject_soup = soup_header.select('.article_header-taxonomy')[0]
-        for subject in subject_soup.select('a'):
-            subjects.append(subject.text)
-
-
-        references = []
-        references_soup = ref_cit_soup.select('ol#references')
-        if references_soup != []:
-            for reference in references_soup[0].select('li'):
-                if reference.select('.refDoi') != []:
-                    ref_doi = "https://doi.org/{}".format(reference.select('.refDoi')[0].text.strip()[5:])
-                else: 
-        #           No Doi -> No Paper
-                    continue
-                ref_title = reference.select('.NLM_article-title')[0].text\
-                        if reference.select('.NLM_article-title') != [] else None
-                ref_journal = reference.select('i')[0].text\
-                        if reference.select('i') != [] else None
-
-                # Replaces abbreviation with whole name
-                if ref_journal in JournalFetcher.abbrev_dict:
-                    ref_journal = JournalFetcher.abbrev_dict[ref_journal]
-                
-                ref_contributors=[]
-                for author in reference.select('.NLM_contrib-group'):
-                    ref_contributors.append(author.text.replace("\n", " ").replace("\r", ""))
-
-                references.append(Citation(ref_doi, ref_title, ref_journal, ref_contributors, cit_type="Reference"))
-
-        citations = []
-        citation_soup = ref_cit_soup.select('.cited-content_cbyCitation')
-        if citation_soup != []:
-            for citation in citation_soup[0].select('li'):
-                if citation.select('a[title="DOI URL"]') != []: 
-                    cit_doi = citation.select('a[title="DOI URL"]')[0].text
-                else:
-        #           No Doi -> No Paper
-                    continue
-                cit_title = citation.select('.cited-content_cbyCitation_article-title')[0].text\
-                        if citation.select('.cited-content_cbyCitation_article-title')!= [] else None
-                cit_journal = citation.select('.cited-content_cbyCitation_journal-name')[0].text\
-                        if citation.select('.cited-content_cbyCitation_journal-name') != [] else None
-
-                # Replaces abbreviation with whole name
-                if cit_journal in JournalFetcher.abbrev_dict:
-                    cit_journal = JournalFetcher.abbrev_dict[cit_journal]
-                cit_contributors =[]
-                cit_contributors = citation.select('.cited-content_cbyCitation_article-contributors')[0]\
-                    .text.replace("\n", " ").replace("\r", "").split(', ')
-        #           clean up of the last Entry
-                cit_contributors_last = cit_contributors.pop().strip(". ")
-                if cit_contributors_last != '':
-                    cit_contributors.append(cit_contributors_last)  
-                citations.append(Citation(cit_doi, cit_title, cit_journal, cit_contributors, cit_type = "Citation"))
-
-        return Publication(doi_url, title, contributors, journal, published
-                            , subjects, references, citations)
diff --git a/input/get/journal_fetcher.py b/input/get/journal_fetcher.py
deleted file mode 100755
index 514af1f..0000000
--- a/input/get/journal_fetcher.py
+++ /dev/null
@@ -1,96 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Parent class for specific Journal
-"""
-
-from abc import ABCMeta, abstractmethod
-from bs4 import BeautifulSoup
-import requests
-from input.publication import Publication
-
-
-class JournalFetcher(metaclass=ABCMeta):
-    """
-    This is a abstract-class for fetcher modules
-    """
-    
-    @staticmethod
-    def get_soup(url: str) -> BeautifulSoup:
-        """
-        Retrieves webside-html and returns a BeautifulSoup-instance
-
-        Parameters:
-        -----------
-        :type url: str
-        :param url: doi-url to a publication
-        :return: BeatifulSoup-instance
-        """
-        try:
-            req = requests.get(url)
-        except  requests.exceptions.HTTPError as err:
-            raise SystemExit(err)
-
-        return BeautifulSoup(req.content, 'html.parser')
-
-
-    @staticmethod
-    @abstractmethod
-    def can_use_url(url: str) -> bool:
-        """
-        Abstract-function to be implemented in subclass.
-        Checks if given url links to a supported journal
-        """
-        raise AttributeError("JournalFetcher for '{}' hasnt implemented 'can_use_url()'".format(url))
-
-
-    @staticmethod
-    @abstractmethod
-    def get_publication(url: str) -> Publication:
-        """
-        Abstract-function to be implemented in subclass.
-        Creates a Publication-instance.
-        """
-        raise AttributeError("JournalFetcher for '{}' hasnt implemented 'get_publication()'".format(url))
-
-
-    # A Dictionary, which connects abbreviation to whole journal-name
-    abbrev_dict = {
-          "Nat. Protoc.":"Journal of Natural Products"
-        ,"PLoS Comput. Biol.":"PLoS Computational Biology"
-        ,"PLoS One":"PLoS One"
-        ,"Protein Sci.":"Protein Science"
-        ,"J. Am. Chem. Soc.":"Journal of the American Chemical Society"
-        ,"J. Chem. Phys.":"Journal of Chemical Physics"
-        ,"Appl. Sci.":"Applied Science"
-        ,"Comput. Sci. Eng.":"Computing in Science & Engineering"
-        ,"Beilstein J. Org. Chem.":"Beilstein Journal of Organic Chemistry"
-        ,"Biol. Chem.":"Biological Chemistry"
-        ,"Isr. J. Chem.":"Israel Journal of Chemistry"
-        ,"Nat. Methods":"Nature Methods"
-        ,"Proc. Natl. Acad. Sci. U. S. A.":"Proceedings of the National Academy of Sciences of the United States of America"
-        ,"J. Phys. Chem. B":"Journal of Physical Chemistry B"
-        ,"Carbohydr. Res.":"Carbohydrate Research"
-        ,"J. Chem. Theory Comput.":"Journal of Chemical Theory and Computation"
-        ,"J. Mol. Biol.":"Journal of Molecular Biology"
-        ,"Nucleic Acids Res.":"Nucleic Acids Research"
-        ,"J. Comput. Chem.":"Journal of Computational Chemistry"
-        ,"J. Cheminf.":"Journal of Cheminformatics"
-        ,"J. Med. Chem.":"Journal of Medicinal Chemistry"
-        ,"J. Comput.-Aided Mol. Des.":"Journal of Computer-Aided Molecular Design"
-        ,"J. Chem. Inf. Model.":"Journal of Chemical Information and Modeling"
-        ,"Mol. Cell":"Molecular Cell"
-        ,"J. Cell Biolog.":"Journal of Cell Biology"
-        ,"Mol. Cell Biol.":"Molecular and Cellular Biology"
-        ,"J. Cell Sci.":"Journal of Cell Science"
-        ,"Nat. Cell Biol.":"Nature Cell Biology"
-        ,"J. Aerosol Sci. Technol.":"Aerosol Science and Technology"
-        ,"Mol. Biol. Cell":"Molecular Biology of the Cell"
-        ,"Build. Environ.":"Building and Environment"
-        ,"Sci. Rep.":"Scientific Reports"
-        ,"Nat. Chem.":"Nature Chemistry"
-        ,"Nat. Med.":"Nature Medicine"
-        ,"Nat. Commun.":"Nature Communications"
-        ,"Exp. Cell Res.":"Experimental Cell Research"
-        ,"Nat. Chem. Biol.":"Nature Chemical Biology"
-        }
\ No newline at end of file
diff --git a/input/get/nature.py b/input/get/nature.py
deleted file mode 100644
index c50ea0e..0000000
--- a/input/get/nature.py
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Child class of JournalFetcher
-Usage: Check if Url can be used with 'can_use_url'
-       and then fetch publication with 'get_publication'
-"""
-
-# import re
-from input.get.journal_fetcher import JournalFetcher
-from input.publication import Publication
-
-
-class Fetcher(JournalFetcher):
-
-    """
-    scrapes publication metadata from a provided url
-    """
-
-    #   TODO: List of Compatable Journals
-    #   NOTE: nature does not use journal names in doi links, must match by 10.xxxx identifier instead
-    SUPPORTED_JOURNALS = []
-
-    @staticmethod
-    def can_use_url(url: str) -> bool:
-        """
-        Checks if given url links to a supported journal.
-        """
-
-        # TODO: Check the URL for compatability
-        #   re.match in SUPPORTED_JOURNALS
-        return False
-
-    @staticmethod
-    def get_publication(url: str) -> Publication:
-        """
-        Creates a Publication-instance.
-        """
-
-        soup = JournalFetcher.get_soup(url)
-
-        _doi_url = "https://doi.org/" + soup.head.find(attrs={"name": "DOI"}).get("content")
-        _title = soup.head.find(attrs={"name": "citation_title"}).get("content")
-        _journal = soup.head.find(attrs={"name": "citation_journal_title"}).get("content")
-        _published = soup.head.find(attrs={"name": "prism.publicationDate"}).get("content")
-        _contributors = []
-        _subjects = []
-
-        for creator in soup.head.findAll(attrs={"name": "dc.creator"}):
-            _contributors.append(creator.get("content"))
-
-        for subject in soup.head.findAll(attrs={"name": "dc.subject"}):
-            _subjects.append(subject.get("content"))
-
-        return Publication(_doi_url, _title, _contributors, _journal, _published, _subjects)
-
-        # TODO: Exceptions-handling
-        #   raise ValueException("Cant Fetch: '{}'".format(error))
-        # return None
diff --git a/input/get/template_.py b/input/get/template_.py
deleted file mode 100755
index 58de023..0000000
--- a/input/get/template_.py
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Child class of JournalFetcher
-Usage: None, this is just a template and should be ignored
-"""
-
-# import re
-from input.get.journal_fetcher import JournalFetcher
-from input.publication import Publication
-
-
-class Fetcher(JournalFetcher):
-
-    """
-    This is only a template and therefore has no functionality
-    """
-
-    # TODO: Naming-Convention:
-    #   Class: 'Fetcher'
-    #   file: [journal-/organisation-name]
-    #       format = "[a-z]*.py" allowed
-    #   TODO: List of Compatable Journals
-    SUPPORTED_JOURNALS = []
-
-    @staticmethod
-    def can_use_url(url: str) -> bool:
-        """
-        Checks if given url links to a supported journal.
-        """
-
-        # TODO: Check the URL for compatability
-        #   url_re = re.match(r'(https?://)?(doi.org/)?(10.(\d{4})/\w+.\S+)', url)
-        #   if url_re is not None:
-        #       return   url_re[4] in SUPPORTED_JOURNALS
-        #   else:
-        return False
-
-    @staticmethod
-    def get_publication(url: str) -> Publication:
-        """
-        Creates a Publication-instance.
-        """
-
-        # TODO: Fetch data from the HTML
-        #   soup = JournalFetcher.get_soup(url)
-        #   doi,title,contributors[],journal,publication_date,subjects[],references[],citations[] 
-        # TODO: Create new Publication-instance
-        #   return Publication(doi_url, title, contributors = [], journal
-        #           , publication_date, subjects = [], references = [], citations = [])
-        return None
\ No newline at end of file
diff --git a/input/interface.py b/input/interface.py
deleted file mode 100755
index 59515b3..0000000
--- a/input/interface.py
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env python3
-
-"""
-Interface for the Input-Package only this should be accessed from outside this Package.
-
-"""
-from os import walk
-import importlib
-import pathlib
-import re
-from input.publication import Publication
-
-class InputInterface:
-    """
-    Singleton which dynamically imports and manages fetchers
-    """
-
-    instance = None
-    get_path = None
-    fetcher_classes=[]
-
-    # '__new__' is called before '__init__' and gives us an instance
-    def __new__(cls, *args, **kwargs):
-        
-        # checks if an instance exists and if it doesnt creates one
-        if cls.instance == None:
-            cls.instance = super(InputInterface, cls).__new__(cls,*args, **kwargs)
-        
-        return cls.instance
-
-    def __init__(self):
-        # imports all modules
-
-        if self.fetcher_classes ==[]:
-            self.import_fetcher_classes()
-            if self.fetcher_classes ==[]:
-                raise AttributeError("No specific Fetchers where found at: '{}'"
-                                    .format(self.get_path))
-        
-
-    def get_publication(self, url: str) -> Publication:
-        """
-        The interface-method to get a Publication-instance
-        (including it's citations and references)
-
-        Parameters
-        ----------
-        :param url: url to a Publication
-        :type url: str
-        :return: Publication instance or None if not supported
-        """
-        
-        # Checks if module supports the 'url' and 
-        # returns a Publication if it does.
-        for fetcher_class in InputInterface.fetcher_classes:
-            if fetcher_class.can_use_url(url):
-                return fetcher_class.get_publication(url)
-            
-        # No Module for given url was found
-        raise ValueError("'{}' is not supported".format(url))
-        
-    def get_pub_light(self, url: str) -> Publication:
-        """
-        The interface-method to get a Publication-instance 
-        (only for main article)
-
-        Parameters
-        ----------
-        :param url: url to a Publication
-        :type url: str
-        :return: Publication instance or None if not supported
-        """
-        
-        # Checks if module supports the 'url' and 
-        # returns a Publication if it does.
-        for fetcher_class in InputInterface.fetcher_classes:
-            if fetcher_class.can_use_url(url):
-                return fetcher_class.get_pub_light(url)
-            
-        # No Module for given url was found
-        raise ValueError("'{}' is not supported".format(url))
-    
-    def get_supported_fetchers(self):
-        # print(self.fetcher_classes[0].__name__) Useless right now, 
-        # because all classes are called the same
-        return [a.__name__ for a in self.fetcher_classes]
-
-    def import_fetcher_classes(self):
-        """
-        Searches in 'get', if there are [a-z]*.py modules (specific Fetchers)
-        and tries to import them.
-        Saves found modules in 'fetcher_files'.
-        """
-
-        # Path to 'get'-package
-        self.get_path = '{}/get'.format(pathlib.Path(__file__).parent.resolve())
-        
-        # Searches for modules with given Pattern
-        fetcher_file_names=[]
-        for file in next(walk(self.get_path), (None, None, []))[2]:
-            if re.match(r'[a-z]+.py', file) is not None:
-                fetcher_file_names.append(file)
-
-        # Tries to import those modules and saves their 'Fetcher'-class
-        for file in fetcher_file_names:
-            try:
-                fetcher_class = importlib.import_module("input.get.{}".format(file[:-3]))
-                try:
-                    self.fetcher_classes.append(fetcher_class.__getattribute__('Fetcher'))
-                except Exception as error:
-                    ImportError("Module '{}' does not have a 'Fetcher'-class".format(file[:-3]))
-            except Exception:
-                raise ImportError("Module '{}' can not be imported".format(file[:-3]))
diff --git a/input/publication.py b/input/publication.py
deleted file mode 100755
index fc512e7..0000000
--- a/input/publication.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python3
-
-# this is needed for typing pre python 3.9, this maybe as an large Overhead
-from typing import Any, List
-
-
-class Publication:
-    """
-        Represents a Publications
-    """
-    def __init__(self, doi_url: str, title: str \
-                 , contributors: List[str], journal: str \
-                 , publication_date: str, subjects: List[str]\
-                 , references: List[Any] = None, citations: List[Any] = None ):
-        """
-        Parameters
-        ----------
-        :param doi_url: doi_url of the publication
-        :type doi_url: str
-        :param title: title of the publication
-        :type title: str
-        :param contributors:list of all contributors
-        :type contributors: list[]
-        :param published: date of release
-        :type published: str
-        :param subjects: the subject of the Publication
-        :type subjects: List[str]
-        :param references: the Citation which is been referenced by this Publication 
-        :type references: List[Any]
-        :param citations: the Citation which references this Publication
-        :type citations: List[Any]
-        :return: None
-        """
-        self.doi_url = doi_url
-        self.title = title
-        self.contributors = contributors
-        self.journal = journal
-        self.publication_date = publication_date
-        self.subjects = subjects
-        if references is None:
-            self.references = []
-        else:
-            self.references = references
-        if citations is None:
-            self.citations = []
-        else: 
-            self.citations = citations
-        
-        # For the 'Verarbeitungsgruppe'
-        self.group = None
-
-    def __str__(self) -> str:
-        return ("Title:        {}\n"
-                "Doi-url:      {}\n"
-                "Authors:      {}\n"
-                "Journal:      {}\n"
-                "Published on: {}\n"
-                "Subjects:     {}\n"
-                "References:   \n{}\n"
-                "Citations:    \n{}")\
-                .format(self.title, self.doi_url, ", ".join(self.contributors)
-                        , self.journal, self.publication_date
-                        , ", ".join(self.subjects)
-                        , "\n".join(self.get_citation_string(self.references))
-                        , "\n".join(self.get_citation_string(self.citations)))
-
-    @staticmethod
-    def get_citation_string(citations):
-        if citations == []:
-            return ["None"]
-        else:
-            citation_string = []
-            for citation in citations:
-                citation_string.append(citation.__str__())
-        return citation_string
-
-    def add_citations(self, citation) -> None:
-        """
-        Appends a list of Citations or Citation to self.citations.
-
-        Parameter
-        ---------
-        :param citation: Citation or Reference of the Publication
-        :type citation: Citation or list[Citation]
-        :return: self.citations
-        """
-        if type(citation) is Citation:
-            self.citations.append(citation)
-
-        # Checks if 'citation' is a list of Citations
-        elif type(citation) is list:
-            for _cit in citation:
-                if type(_cit) is Citation:
-                    self.citations.append(_cit)
-                else:
-                    raise TypeError("_set_citation expects Citations or List of Citations, not: '{}'"
-                                    .format(type(_cit)))
-        else:
-            raise TypeError("_set_citation expects Citations or List of Citations, not: '{}'"
-                            .format(type(citation)))
-
-        return self.citations
-
-    def __eq__(self, other) -> bool:
-        """ Compares the unique doi_url of two Publications"""
-        if type(self)==type(other):
-            return self.doi_url == other.doi_url
-        return False
-
-
-class Citation:
-    def __init__(self, doi_url: str, title: str \
-                , journal: str, contributors: List[str] \
-                , cit_type: str = "Citation"):
-        """
-        Parameters
-        ----------
-        :param doi_url: doi_url of the publication
-        :type doi_url: str
-        :param title: title of the publication
-        :type title: str
-        :param contributors: list of all contributors
-        :type contributors: List[str]
-        :param cit_type: Specifies if Reference or Citation
-        :type cit_type: str
-        :return: None
-        """
-
-        self.title = title
-        self.doi_url = doi_url
-        self.journal = journal
-        self.contributors = contributors
-        self.cit_type = cit_type
-
-    def __str__(self) -> str:
-        return ("\t{}-Title:        {}\n"
-                "\t{}-Doi:          {}\n"
-                "\t{}-Journal:      {}\n"
-                "\t{}-Contributors: {}\n")\
-                .format(self.cit_type, self.title
-                      , self.cit_type, self.doi_url
-                      , self.cit_type, self.journal
-                      , self.cit_type, ", ".join(self.contributors))
diff --git a/input/requirements.txt b/input/requirements.txt
deleted file mode 100644
index a151126..0000000
--- a/input/requirements.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-beautifulsoup4
-requests
\ No newline at end of file
diff --git a/input/test/__init__.py b/input/test/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/input/test/test_acs.py b/input/test/test_acs.py
deleted file mode 100644
index e3dfe84..0000000
--- a/input/test/test_acs.py
+++ /dev/null
@@ -1,303 +0,0 @@
-#!/usr/bin/env python
-
-from input.get.acs import Fetcher as Acs
-from input.publication import Publication, Citation
-from input.test.test_input import FetcherTestCase
-
-
-class AcsTestCase(FetcherTestCase):
-    """
-    Methods with test_* will be detected by unittest and run.
-    """
-
-    def test_acs_url(self):
-        # Positive Testing
-        self.can_use_url_test(Acs, "https://doi.org/10.1021/acs.jcim.1c00203"           , True)
-        self.can_use_url_test(Acs, "doi.org/10.1021/acs.jcim.1c00203"                   , True)
-        self.can_use_url_test(Acs, "10.1021/acs.jcim.1c00203"                           , True)
-        self.can_use_url_test(Acs, " 10.1021/acs.jcim.1c00203"                          , True)
-        self.can_use_url_test(Acs, "10.1021/acs.jcim.1c00203 "                          , True)
-        self.can_use_url_test(Acs, "\t 10.1021/acs.jcim.1c00203  \t\n"                  , True)
-        self.can_use_url_test(Acs, "https://pubs.acs.org/doi/10.1021/acs.jcim.1c00203"  , True)
-
-        # Negative Testing
-        self.can_use_url_test(Acs, ""                                                   , False)
-        self.can_use_url_test(Acs, "https://doi.org/10.1038/219021a0"                   , False)
-        self.can_use_url_test(Acs, "https://www.nature.com/articles/219021a0"           , False)
-        self.can_use_url_test(Acs, "https://pubs.acs.org/doi/doi.org/10.1021/acs.jcim.1c00203", False)
-        
-
-
-    def test_acs_publication(self):
-        url = "https://doi.org/10.1021/acs.jcim.1c00203"
-        self.get_publication_test(Acs, url, self.expectedPubs[url])
-
-    def test_acs_exceptions(self):
-        test_url= "https://doi.org/10.1021/acs.jcim.1c002"
-        self.get_publication_exception_test(Acs, test_url)
-        
-    # Dictionary of Expected Results, with url
-    expectedPubs = {
-       "https://doi.org/10.1021/acs.jcim.1c00203":
-        Publication(
-           doi_url = "https://doi.org/10.1021/acs.jcim.1c00203",
-           title = "AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings",
-           contributors = ["Jerome Eberhardt", "Diogo Santos-Martins", "Andreas F. Tillack", "Stefano Forli"],
-           journal="Journal of Chemical Information and Modeling",
-           publication_date = "July 19, 2021",
-           subjects = ["Algorithms","Ligands","Molecules","Receptors","Macrocycles"],
-           references = [
-            Citation(doi_url = "https://doi.org/10.1002/jcc.21334"
-                , title ="AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading"
-                , journal="Journal of Computational Chemistry"
-                , contributors=["Trott, O.", "Olson, A. J."]
-                , cit_type="Reference")
-            , Citation(doi_url = "https://doi.org/10.1038/nprot.2016.051"
-                , title ="Computational protein-ligand docking and virtual drug screening with the AutoDock suite"
-                , journal="Journal of Natural Products"
-                , contributors=["Forli, S.","Huey, R.","Pique, M. E.","Sanner, M. F.","Goodsell, D. S.","Olson, A. J."]
-                , cit_type="Reference")
-            , Citation(title = "A semiempirical free energy force field with charge-based desolvation"
-                , doi_url = "https://doi.org/10.1002/jcc.20634"
-	            , journal="Journal of Computational Chemistry"
-                , contributors=["Huey, R.","Morris, G. M.","Olson, A. J.","Goodsell, D. S."]
-                , cit_type="Reference")
-            , Citation(title="Accelerating autodock4 with gpus and gradient-based local search"
-                , doi_url="https://doi.org/10.1021/acs.jctc.0c01006"
-                , journal="Journal of Chemical Theory and Computation"
-                , contributors=["Santos-Martins, D.","Solis-Vasquez, L.","Tillack, A. F.","Sanner, M. F.","Koch, A.","Forli, S."]
-                , cit_type="Reference")
-            , Citation(title="AutoDockFR: Advances in Protein-Ligand Docking with Explicitly Specified Binding Site Flexibility"
-                , doi_url="https://doi.org/10.1371/journal.pcbi.1004586"
-                , journal="PLoS Computational Biology"
-                , contributors=["Ravindranath, P. A.","Forli, S.","Goodsell, D. S.","Olson, A. J.","Sanner, M. F."]
-                , cit_type="Reference")
-            , Citation(title="Docking flexible cyclic peptides with AutoDock CrankPep"
-                , doi_url="https://doi.org/10.1021/acs.jctc.9b00557"
-                , journal="Journal of Chemical Theory and Computation"
-                , contributors=["Zhang, Y.","Sanner, M. F."]
-                , cit_type="Reference")
-            , Citation(title="Fast, accurate, and reliable molecular docking with QuickVina 2"
-                , doi_url="https://doi.org/10.1093/bioinformatics/btv082"
-                , journal="Bioinformatics"
-                , contributors=["Alhossary, A.","Handoko, S. D.","Mu, Y.","Kwoh, C.-K."]
-                , cit_type="Reference")
-            , Citation(title="Lessons learned in empirical scoring with smina from the CSAR 2011 benchmarking exercise"
-                , doi_url="https://doi.org/10.1021/ci300604z"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Koes, D. R.","Baumgartner, M. P.","Camacho, C. J."]
-                , cit_type="Reference")
-            , Citation(title="Vina-Carb: Improving Glycosidic Angles during Carbohydrate Docking"
-                , doi_url="https://doi.org/10.1021/acs.jctc.5b00834"
-                , journal="Journal of Chemical Theory and Computation"
-                , contributors=["Nivedha, A. K.","Thieker, D. F.","Makeneni, S.","Hu, H.","Woods, R. J."]
-                , cit_type="Reference")
-            , Citation(title="AutoDock VinaXB: implementation of XBSF, new empirical halogen bond scoring function, into AutoDock Vina"
-                , doi_url="https://doi.org/10.1186/s13321-016-0139-1"
-                , journal="Journal of Cheminformatics"
-                , contributors=["Koebel, M. R.","Schmadeke, G.","Posner, R. G.","Sirimulla, S."]
-                , cit_type="Reference")
-            , Citation(title="Vinardo: A Scoring Function Based on Autodock Vina Improves Scoring, Docking, and Virtual Screening"
-                , doi_url="https://doi.org/10.1371/journal.pone.0155183"
-                , journal="PLoS One"
-                , contributors=["Quiroga, R.","Villarreal, M. A."]
-                , cit_type="Reference")
-            , Citation(title="Lennard-Jones potential and dummy atom settings to overcome the AUTODOCK limitation in treating flexible ring systems"
-                , doi_url="https://doi.org/10.1021/ci700036j"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Forli, S.","Botta, M."]
-                , cit_type="Reference")
-            , Citation(title="AutoDock4Zn: an improved AutoDock force field for small-molecule docking to zinc metalloproteins"
-                , doi_url="https://doi.org/10.1021/ci500209e"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Santos-Martins, D.","Forli, S.","Ramos, M. J.","Olson, A. J."]
-                , cit_type="Reference")
-            , Citation(title="A force field with discrete displaceable waters and desolvation entropy for hydrated ligand docking"
-                , doi_url="https://doi.org/10.1021/jm2005145"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Forli, S.","Olson, A. J."]
-                , cit_type="Reference")
-            , Citation(title="Directional phosphorylation and nuclear transport of the splicing factor SRSF1 is regulated by an RNA recognition motif"
-                , doi_url="https://doi.org/10.1016/j.jmb.2016.04.009"
-                , journal="Journal of Molecular Biology"
-                , contributors=["Serrano, P.","Aubol, B. E.","Keshwani, M. M.","Forli, S.","Ma, C.-T.","Dutta, S. K.","Geralt, M.","Wüthrich, K.","Adams, J. A."]
-                , cit_type="Reference")
-            , Citation(title="Covalent docking using autodock: Two-point attractor and flexible side chain methods"
-                , doi_url="https://doi.org/10.1002/pro.2733"
-                , journal="Protein Science"
-                , contributors=["Bianco, G.","Forli, S.","Goodsell, D. S.","Olson, A. J."]
-                , cit_type="Reference")
-            , Citation(title="Consensus docking: improving the reliability of docking in a virtual screening context"
-                , doi_url="https://doi.org/10.1021/ci300399w"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Houston, D. R.","Walkinshaw, M. D."]
-                , cit_type="Reference")
-            , Citation(title="DockBench: an integrated informatic platform bridging the gap between the robust validation of docking protocols and virtual screening simulations"
-                , doi_url="https://doi.org/10.3390/molecules20069977"
-                , journal="Molecules"
-                , contributors=["Cuzzolin, A.","Sturlese, M.","Malvacio, I.","Ciancetta, A.","Moro, S."]
-                , cit_type="Reference")
-            , Citation(title="A new force field for molecular mechanical simulation of nucleic acids and proteins"
-                , doi_url="https://doi.org/10.1021/ja00315a051"
-                , journal="Journal of the American Chemical Society"
-                , contributors=["Weiner, S. J.","Kollman, P. A.","Case, D. A.","Singh, U. C.","Ghio, C.","Alagona, G.","Profeta, S.","Weiner, P."]
-                , cit_type="Reference")
-            , Citation(title="AutoDock Bias: improving binding mode prediction and virtual screening using known protein-ligand interactions"
-                , doi_url="https://doi.org/10.1093/bioinformatics/btz152"
-                , journal="Bioinformatics"
-                , contributors=["Arcon, J. P.","Modenutti, C. P.","Avendaño, D.","Lopez, E. D.","Defelipe, L. A.","Ambrosio, F. A.","Turjanski, A. G.","Forli, S.","Marti, M. A."]
-                , cit_type="Reference")
-            , Citation(title="Inhomogeneous Fluid Approach to Solvation Thermodynamics. 1. Theory"
-                , doi_url="https://doi.org/10.1021/jp9723574"
-                , journal="Journal of Physical Chemistry B"
-                , contributors=["Lazaridis, T."]
-                , cit_type="Reference")
-            , Citation(title="Inhomogeneous fluid approach to solvation thermodynamics. 2. Applications to simple fluids"
-                , doi_url="https://doi.org/10.1021/jp972358w"
-                , journal="Journal of Physical Chemistry B"
-                , contributors=["Lazaridis, T."]
-                , cit_type="Reference")
-            , Citation(title="Grid inhomogeneous solvation theory: Hydration structure and thermodynamics of the miniature receptor cucurbit[7]uril"
-                , doi_url="https://doi.org/10.1063/1.4733951"
-                , journal="Journal of Chemical Physics"
-                , contributors=["Nguyen, C. N.","Young, T. K.","Gilson, M. K."]
-                , cit_type="Reference")
-            , Citation(title="AutoDock-GIST: Incorporating Thermodynamics of Active-Site Water into Scoring Function for Accurate Protein-Ligand Docking"
-                , doi_url="https://doi.org/10.3390/molecules21111604"
-                , journal="Molecules"
-                , contributors=["Uehara, S.","Tanaka, S."]
-                , cit_type="Reference")
-            , Citation(title="ZINC20—A Free Ultralarge-Scale Chemical Database for Ligand Discovery"
-                , doi_url="https://doi.org/10.1021/acs.jcim.0c00675"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Irwin, J. J.","Tang, K. G.","Young, J.","Dandarchuluun, C.","Wong, B. R.","Khurelbaatar, M.","Moroz, Y. S.","Mayfield, J.","Sayle, R. A."]
-                , cit_type="Reference")
-            , Citation(title="Structural biology-inspired discovery of novel KRAS–PDEδ inhibitors"
-                , doi_url="https://doi.org/10.1021/acs.jmedchem.7b01243"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Jiang, Y.","Zhuang, C.","Chen, L.","Lu, J.","Dong, G.","Miao, Z.","Zhang, W.","Li, J.","Sheng, C."]
-                , cit_type="Reference")
-            , Citation(title="D3R grand challenge 2015: evaluation of protein–ligand pose and affinity predictions"
-                , doi_url="https://doi.org/10.1007/s10822-016-9946-8"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["Gathiaka, S.","Liu, S.","Chiu, M.","Yang, H.","Stuckey, J. A.","Kang, Y. N.","Delproposto, J.","Kubish, G.","Dunbar, J. B.","Carlson, H. A.","Burley, S. K.","Walters, W. P.","Amaro, R. E.","Feher, V. A.","Gilson, M. K."]
-                , cit_type="Reference")
-            , Citation(title="D3R grand challenge 4: blind prediction of protein–ligand poses, affinity rankings, and relative binding free energies"
-                , doi_url="https://doi.org/10.1007/s10822-020-00289-y"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["Parks, C. D.","Gaieb, Z.","Chiu, M.","Yang, H.","Shao, C.","Walters, W. P.","Jansen, J. M.","McGaughey, G.","Lewis, R. A.","Bembenek, S. D.","Ameriks, M. K.","Mirzadegan, T.","Burley, S. K.","Amaro, R. E.","Gilson, M. K."]
-                , cit_type="Reference")
-            , Citation(title="D3R Grand Challenge 4: prospective pose prediction of BACE1 ligands with AutoDock-GPU"
-                , doi_url="https://doi.org/10.1007/s10822-019-00241-9"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["Santos-Martins, D.","Eberhardt, J.","Bianco, G.","Solis-Vasquez, L.","Ambrosio, F. A.","Koch, A.","Forli, S."]
-                , cit_type="Reference")
-            , Citation(title="Comparison of affinity ranking using AutoDock-GPU and MM-GBSA scores for BACE-1 inhibitors in the D3R Grand Challenge 4"
-                , doi_url="https://doi.org/10.1007/s10822-019-00240-w"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["El Khoury, L.","Santos-Martins, D.","Sasmal, S.","Eberhardt, J.","Bianco, G.","Ambrosio, F. A.","Solis-Vasquez, L.","Koch, A.","Forli, S.","Mobley, D. L."]
-                , cit_type="Reference")
-            , Citation(title="Macrocycle modeling in ICM: benchmarking and evaluation in D3R Grand Challenge 4"
-                , doi_url="https://doi.org/10.1007/s10822-019-00225-9"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["Lam, P. C.-H.","Abagyan, R.","Totrov, M."]
-                , cit_type="Reference")
-            , Citation(title="Directory of useful decoys, enhanced (DUD-E): better ligands and decoys for better benchmarking"
-                , doi_url="https://doi.org/10.1021/jm300687e"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Mysinger, M. M.","Carchia, M.","Irwin, J. J.","Shoichet, B. K."]
-                , cit_type="Reference")
-            , Citation(title="Evaluation of AutoDock and AutoDock Vina on the CASF-2013 benchmark"
-                , doi_url="https://doi.org/10.1021/acs.jcim.8b00312"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Gaillard, T."]
-                , cit_type="Reference")
-            , Citation(title="Autodock vina adopts more accurate binding poses but autodock4 forms better binding affinity"
-                , doi_url="https://doi.org/10.1021/acs.jcim.9b00778"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Nguyen, N. T.","Nguyen, T. H.","Pham, T. N. H.","Huy, N. T.","Bay, M. V.","Pham, M. Q.","Nam, P. C.","Vu, V. V.","Ngo, S. T."]
-                , cit_type="Reference")
-            , Citation(title="Development and validation of a genetic algorithm for flexible docking"
-                , doi_url="https://doi.org/10.1006/jmbi.1996.0897"
-                , journal="Journal of Molecular Biology"
-                , contributors=["Jones, G.","Willett, P.","Glen, R. C.","Leach, A. R.","Taylor, R."]
-                , cit_type="Reference")
-            , Citation(title="Glide: a new approach for rapid, accurate docking and scoring. 1. Method and assessment of docking accuracy"
-                , doi_url="https://doi.org/10.1021/jm0306430"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Friesner, R. A.","Banks, J. L.","Murphy, R. B.","Halgren, T. A.","Klicic, J. J.","Mainz, D. T.","Repasky, M. P.","Knoll, E. H.","Shelley, M.","Perry, J. K."]
-                , cit_type="Reference")
-            , Citation(title="Surflex: fully automatic flexible molecular docking using a molecular similarity-based search engine"
-                , doi_url="https://doi.org/10.1021/jm020406h"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Jain, A. N."]
-                , cit_type="Reference")
-            , Citation(title="A fast flexible docking method using an incremental construction algorithm"
-                , doi_url="https://doi.org/10.1006/jmbi.1996.0477"
-                , journal="Journal of Molecular Biology"
-                , contributors=["Rarey, M.","Kramer, B.","Lengauer, T.","Klebe, G."]
-                , cit_type="Reference")
-            , Citation(title="EDock: blind protein–ligand docking by replica-exchange monte carlo simulation"
-                , doi_url="https://doi.org/10.1186/s13321-020-00440-9"
-                , journal="Journal of Cheminformatics"
-                , contributors=["Zhang, W.","Bell, E. W.","Yin, M.","Zhang, Y."]
-                , cit_type="Reference")
-            , Citation(title="DOCK 6: Impact of new features and current docking performance"
-                , doi_url="https://doi.org/10.1002/jcc.23905"
-                , journal="Journal of Computational Chemistry"
-                , contributors=["Allen, W. J.","Balius, T. E.","Mukherjee, S.","Brozell, S. R.","Moustakas, D. T.","Lang, P. T.","Case, D. A.","Kuntz, I. D.","Rizzo, R. C."]
-                , cit_type="Reference")
-            , Citation(title="Improving scoring-docking-screening powers of protein–ligand scoring functions using random forest"
-                , doi_url="https://doi.org/10.1002/jcc.24667"
-                , journal="Journal of Computational Chemistry"
-                , contributors=["Wang, C.","Zhang, Y."]
-                , cit_type="Reference")
-            , Citation(title="ID-Score: a new empirical scoring function based on a comprehensive set of descriptors related to protein–ligand interactions"
-                , doi_url="https://doi.org/10.1021/ci300493w"
-                , journal="Journal of Chemical Information and Modeling"
-                , contributors=["Li, G.-B.","Yang, L.-L.","Wang, W.-J.","Li, L.-L.","Yang, S.-Y."]
-                , cit_type="Reference")
-            , Citation(title="Further development and validation of empirical scoring functions for structure-based binding affinity prediction"
-                , doi_url="https://doi.org/10.1023/a:1016357811882"
-                , journal="Journal of Computer-Aided Molecular Design"
-                , contributors=["Wang, R.","Lai, L.","Wang, S."]
-                , cit_type="Reference")
-            , Citation(title="A knowledge-based energy function for protein- ligand, protein- protein, and protein- DNA complexes"
-                , doi_url="https://doi.org/10.1021/jm049314d"
-                , journal="Journal of Medicinal Chemistry"
-                , contributors=["Zhang, C.","Liu, S.","Zhu, Q.","Zhou, Y."]
-                , cit_type="Reference")
-            , Citation(title="DLIGAND2: an improved knowledge-based energy function for protein–ligand interactions using the distance-scaled, finite, ideal-gas reference state"
-                , doi_url="https://doi.org/10.1186/s13321-019-0373-4"
-                , journal="Journal of Cheminformatics"
-                , contributors=["Chen, P.","Ke, Y.","Lu, Y.","Du, Y.","Li, J.","Yan, H.","Zhao, H.","Zhou, Y.","Yang, Y."]
-                , cit_type="Reference")
-            , Citation(title="Comparing AutoDock and Vina in ligand/decoy discrimination for virtual screening"
-                , doi_url="https://doi.org/10.3390/app9214538"
-                , journal="Applied Science"
-                , contributors=["Vieira, T. F.","Sousa, S. F."]
-                , cit_type="Reference")
-            , Citation(title="Benchmark of four popular virtual screening programs: construction of the active/decoy dataset remains a major determinant of measured performance"
-                , doi_url="https://doi.org/10.1186/s13321-016-0167-x"
-                , journal="Journal of Cheminformatics"
-                , contributors=["Chaput, L.","Martinez-Sanz, J.","Quiniou, E.","Rigolet, P.","Saettel, N.","Mouawad, L."]
-                , cit_type="Reference")
-            , Citation(title="Array programming with NumPy"
-                , doi_url="https://doi.org/10.1038/s41586-020-2649-2"
-                , journal="Nature"
-                , contributors=["Harris, C. R."]
-                , cit_type="Reference")
-            , Citation(title="Matplotlib: A 2D graphics environment"
-                , doi_url="https://doi.org/10.1109/mcse.2007.55"
-                , journal="Computing in Science & Engineering"
-                , contributors=["Hunter, J. D."]
-                , cit_type="Reference")
-           ], citations = [
-            Citation(doi_url = "https://doi.org/10.1021/acsomega.1c04320"
-            , title ="Novel Anti-Hepatitis B Virus Activity of Euphorbia schimperi and Its Quercetin and Kaempferol Derivatives"
-            , journal="ACS Omega"
-            , contributors=["Mohammad K. Parvez","Sarfaraz Ahmed","Mohammed S. Al-Dosari","Mazin A. S. Abdelwahid","Ahmed H. Arbab","Adnan J. Al-Rehaily","Mai M. Al-Oqail"],cit_type="Citation"),
-           
-           ]
-       )
-    }
\ No newline at end of file
diff --git a/input/test/test_input.py b/input/test/test_input.py
deleted file mode 100755
index b2ca55f..0000000
--- a/input/test/test_input.py
+++ /dev/null
@@ -1,82 +0,0 @@
-import unittest
-from input.get.journal_fetcher import JournalFetcher
-from input.interface import InputInterface
-from input.publication import Publication
-
-"""
-Testing the Publication fetcher
-
-Publication 1: 'https://doi.org/10.1021/acs.jcim.1c00203'
-Publication 2: 'doi.org/10.1021/acs.jcim.1c00917'
-Publication 3: '10.1038/nchem.1781'
-Publication 4: '11.12/jaj'
-Publication 5: '11.12/'
-Publication 6: 'https://doi.org/10.1021/acs.jmedchem.0c01332' # Paper is a PDF
-"""
-# TODO: Testcases for:
-#       - Specific Journals: Inherit from FetcherTestCase
-#       - interface module-importer (test case)
-#       - Error detection
-#           - wrong/no Journal_fetchers
-#           - wrong urls
-#           - correct Types in publication
-#       - Edgecases (i.e. paper as pdf, no connection, etc)
-
-
-class InterfaceTestCase(unittest.TestCase):
-    def setUp(self):
-        self.assertEqual(InputInterface.instance, None)
-        self.interface = InputInterface()
-
-    def test_singleton(self):
-        # interface should already be made in setUp()
-        self.assertNotEqual(self.interface.instance, None)
-        new_interface = InputInterface()
-        self.assertEqual(self.interface, new_interface)
-    
-    # def test_imported_modules(self):
-    #    fetchers = self.interface.get_supported_fetchers
-
-class FetcherTestCase(unittest.TestCase):
-
-
-    def can_use_url_test(self, fetcher : JournalFetcher, test_url: str, expected_res: bool):
-        # Tests the 'can_use_url'-method
-        self.assertEqual(fetcher.can_use_url(test_url), expected_res)
-
-
-    def get_publication_test(self, fetcher : JournalFetcher, test_url: str, expected_res: Publication):
-        """
-        this test asserts that every variable is equals to the expected result
-        """
-        actual_res = fetcher.get_publication(test_url)
-        self.assertEqual(actual_res.doi_url, expected_res.doi_url)
-        self.assertEqual(actual_res.title, expected_res.title)
-        self.assertEqual(actual_res.contributors, expected_res.contributors)
-        self.assertEqual(actual_res.journal, expected_res.journal)
-        self.assertEqual(actual_res.publication_date, expected_res.publication_date)
-        self.assertEqual(actual_res.subjects, expected_res.subjects)
-
-        # Checking for all references
-        self.assertEqual(len(actual_res.references), len(expected_res.references))
-        num_references = len(expected_res.references)
-        for i in range(num_references):
-            self.assertEqual(actual_res.references[i].doi_url,      expected_res.references[i].doi_url)
-            self.assertEqual(actual_res.references[i].journal,      expected_res.references[i].journal)
-            self.assertEqual(actual_res.references[i].contributors, expected_res.references[i].contributors)
-            self.assertEqual(actual_res.references[i].cit_type,     expected_res.references[i].cit_type)
-
-        # Checking for all citations
-        self.assertEqual(len(actual_res.citations), len(expected_res.citations))
-        num_citations = len(expected_res.citations)
-        for i in range(num_citations):
-            self.assertEqual(actual_res.citations[i].doi_url,      expected_res.citations[i].doi_url)
-            self.assertEqual(actual_res.citations[i].journal,      expected_res.citations[i].journal)
-            self.assertEqual(actual_res.citations[i].contributors, expected_res.citations[i].contributors)
-            self.assertEqual(actual_res.citations[i].cit_type,     expected_res.citations[i].cit_type)
-
-
-    def get_publication_exception_test(self, fetcher: JournalFetcher, test_url: str):
-        # Ckecks 
-        with self.assertRaises(ValueError):
-            fetcher.get_publication(test_url)
\ No newline at end of file
diff --git a/input_old/README.md b/input_old/README.md
deleted file mode 100644
index 76bd11d..0000000
--- a/input_old/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# Projekt CiS-Projekt 2021/22
-Input-Skripts
-
diff --git a/input_old/__pycache__/input_fj.cpython-39.pyc b/input_old/__pycache__/input_fj.cpython-39.pyc
deleted file mode 100644
index a3e6099f4ab4c56400b2698c812d4b5fc9a9a7aa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4300
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

diff --git a/input_old/example_urls b/input_old/example_urls
deleted file mode 100644
index 96ac680..0000000
--- a/input_old/example_urls
+++ /dev/null
@@ -1,2 +0,0 @@
-https://pubs.acs.org/doi/10.1021/acs.jcim.5b00332
-https://pubs.acs.org/doi/10.1021/acs.jcim.6b00709
diff --git a/input_old/input_fj.py b/input_old/input_fj.py
deleted file mode 100644
index ecc8e68..0000000
--- a/input_old/input_fj.py
+++ /dev/null
@@ -1,154 +0,0 @@
-#!/usr/bin/env python3
-"""
-Functions for information retrieval of articles from the ACS journal JCIM
-
-"""
-
-__author__ = "Florian Jochens"
-__email__ = "fj@andaco.de"
-__status__ = "Production"
-#__copyright__ = ""
-#__credits__ = ["", "", "", ""]
-#__license__ = ""
-#__version__ = ""
-#__maintainer__ = ""
-
-from bs4 import BeautifulSoup as bs
-import requests as req
-import sys  
-from pathlib import Path
-
-class Publication:
-    #_registry = []
-    _citations = []
-    _references = []
-    
-    def __init__(self, title, publication_date, contributors, doi_url, 
-                 subjects = None, num_citations = None):
-        #self._registry.append(self)
-        self.title = title
-        self.publication_date = publication_date
-        self.contributors = contributors
-        self.doi_url = doi_url
-        self.subjects = subjects
-        self.num_citations = num_citations
-        #self._citations = []
-        #self._references = []
-
-class Citation:
-    def __init__(self, title, journal, contributors, doi_url):
-        self.title = title
-        self.journal = journal
-        self.contributors = contributors
-        self.doi_url = doi_url
-
-class References:
-    def __init__(self, title, journal, contributors, doi_url):
-        self.title = title
-        self.journal = journal
-        self.contributors = contributors
-        self.doi_url = doi_url
-    
-def get_article_info(soup):
-    header = soup.find('div', class_ = 'article_header-left pull-left')
-    article_title = header.find('span', class_ = 'hlFld-Title').text
-    publication_date = header.find('span', class_ = 'pub-date-value').text
-    for link in header.find('div', class_ = 'article_header-doiurl'):
-        doi_url = link.get('href')
-    subs = header.find('div', class_ = 'article_header-taxonomy')
-    subjects = []
-    for sub in subs.find_all('a'):
-        subjects.append(sub.get('title'))
-    cons = header.find('ul', class_ = 'loa')
-    contributors = []
-    for con in cons.find_all('span', class_ = 'hlFld-ContribAuthor'):
-        contributors.append(con.text)
-    numc = header.find('div', class_ = 'articleMetrics_count')
-    if not numc.a:
-        num_citations = 0
-    else:
-        num_citations = numc.a.text
-
-    pub = Publication(article_title, publication_date, contributors, doi_url,
-                      subjects, num_citations)
-    return pub
-
-def get_download_url():
-    export = soup.find('div', class_ = 'cit-download-dropdown_content')
-    url = 'https://pubs.acs.org'
-    for link in export.find_all('a'):
-        if link.get('title') == 'Citation and references':
-            url += link.get('href')     
-    print(url)
-    return url
-
-def download(url): # Download citation and references file
-    if url.find('='):
-        filename = url.rsplit('=', 1)[1]
-    path = Path(('./files/' + filename))
-    if path.is_file():
-        print("File already exists")
-    else:
-        print("File does not exist")
-
-def get_citation_info(pub, num_citations, soup):
-    pub._citations = []
-    details = soup.find('ol', class_ = 'cited-content_cbyCitation')
-    titles = [] 
-    for title in details.find_all('span', 
-            class_ = 'cited-content_cbyCitation_article-title'):
-        titles.append(title.text.replace('.', ''))
-    journal_names = []
-    for name in details.find_all('span',
-            class_ = 'cited-content_cbyCitation_journal-name'):
-        journal_names.append(name.text)
-    doi_urls = []
-    for url in details.find_all('a'):
-        doi_urls.append(url.get('href'))
-    contributors = []
-    for contrib in details.find_all('span', 
-            class_ = 'cited-content_cbyCitation_article-contributors'):
-        contributors.append(contrib.text)
-    for i in range(0, int(num_citations)):
-        pub._citations.append(Citation(titles[i], journal_names[i], 
-                              contributors[i], doi_urls[i]))
-def print_pub_info(pub):
-    print(f'''Article title:    {pub.title}
-Publication date: {pub.publication_date}
-DOI-URL:          {pub.doi_url}
-
-Subjects:''')
-    print(*(pub.subjects), sep = ", ")
-    print('\nContributors:')
-    print(*(pub.contributors), sep = ", ")
-
-    if int(pub.num_citations) > 0:
-        if int(pub.num_citations) == 1:
-            print(f'\nThis publication is cited by the following publication:\n')
-        else:
-            print(f'\nThis publication is cited by the following {pub.num_citations} publications:\n')
-        for citation in pub._citations:
-            print(f'''
-    Title:        {citation.title}
-    Journal:      {citation.journal}
-    Contributors: {citation.contributors}
-    DOI-URL:      {citation.doi_url}
-            ''')
-    else:
-        print('\nThis publication is not cited by any other publication.')
-
-def input(url):
-    html_text = req.get(url).text
-    soup = bs(html_text, 'html.parser')
-    
-    pub = get_article_info(soup)
-    if int(pub.num_citations) > 0:
-        get_citation_info(pub, int(pub.num_citations), soup)
-    return pub
-
-#if len(sys.argv) != 2:
-#    sys.stderr.write('Usage: {} <url>\n'.format(sys.argv[0]))
-#    exit(1)
-#url = sys.argv[1]
-#pub = input(url)
-#print_pub_info(pub)
diff --git a/input_old/pub.py b/input_old/pub.py
deleted file mode 100644
index 13b90e8..0000000
--- a/input_old/pub.py
+++ /dev/null
@@ -1,32 +0,0 @@
-class Publication:
-    #_registry = []
-    #_citations = []
-    #_references = []
-    
-    def __init__(self, title, publication_date, contributors, doi_url, 
-                 subjects, num_citations):
-        #self._registry.append(self)
-        self.title = title
-        self.publication_date = publication_date
-        self.contributors = contributors
-        self.doi_url = doi_url
-        self.subjects = subjects
-        self.num_citations = num_citations
-        self.num_references = num_references
-    	self._citations = []
-    	self._references = []
-
-class Citation:
-    def __init__(self, title, journal, contributors, doi_url):
-        self.title = title
-        self.journal = journal
-        self.contributors = contributors
-        self.doi_url = doi_url
-
-class References:
-    def __init__(self, title, journal, contributors, doi_url):
-        self.title = title
-        self.journal = journal
-        self.contributors = contributors
-        self.doi_url = doi_url
-
diff --git a/input_old/test.py b/input_old/test.py
deleted file mode 100755
index dc623ca..0000000
--- a/input_old/test.py
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python3
-
-from input_fj import input, print_pub_info
-import sys
-
-if len(sys.argv) != 3:
-    sys.stderr.write('Usage: {} <url> <url>\n'.format(sys.argv[0]))
-    exit(1)
-url = sys.argv[1]
-url2 = sys.argv[2]
-pub = input(url)
-print_pub_info(pub)
-pub2 = input(url2)
-print_pub_info(pub2)
-
diff --git a/input_old/x b/input_old/x
deleted file mode 100644
index c8ade9d..0000000
--- a/input_old/x
+++ /dev/null
@@ -1,234 +0,0 @@
-Article title:    Feasibility of Active Machine Learning for Multiclass Compound Classification
-Publication date: January 7, 2016
-DOI-URL:          https://doi.org/10.1021/acs.jcim.5b00332
-
-Subjects:
-Algorithms, Molecules, Drug discovery, Screening assays, Receptors
-
-Contributors:
-Tobias Lang, Florian Flachsenberg, Ulrike von Luxburg, Matthias Rarey
-
-This publication is cited by the following 30 publications:
-
-
-    Title:        Concepts of Artificial Intelligence for Computer-Assisted Drug Discovery 
-    Journal:      Chemical Reviews
-    Contributors: Xin Yang, Yifei Wang, Ryan Byrne, Gisbert Schneider, Shengyong Yang. 
-    DOI-URL:      https://doi.org/10.1021/acs.chemrev.8b00728
-            
-
-    Title:        De Novo Molecule Design by Translating from Reduced Graphs to SMILES 
-    Journal:      Journal of Chemical Information and Modeling
-    Contributors: Peter Pogány, Navot Arad, Sam Genway, Stephen D. Pickett. 
-    DOI-URL:      https://doi.org/10.1021/acs.jcim.8b00626
-            
-
-    Title:        Designing Algorithms To Aid Discovery by Chemical Robots 
-    Journal:      ACS Central Science
-    Contributors: Alon B. Henson, Piotr S. Gromski, Leroy Cronin. 
-    DOI-URL:      https://doi.org/10.1021/acscentsci.8b00176
-            
-
-    Title:        Modeling Kinase Inhibition Using Highly Confident Data Sets 
-    Journal:      Journal of Chemical Information and Modeling
-    Contributors: Sorin Avram, Alina Bora, Liliana Halip, Ramona Curpăn. 
-    DOI-URL:      https://doi.org/10.1021/acs.jcim.7b00729
-            
-
-    Title:        Predictive Models for Fast and Effective Profiling of Kinase Inhibitors 
-    Journal:      Journal of Chemical Information and Modeling
-    Contributors: Alina  Bora, Sorin  Avram, Ionel  Ciucanu, Marius  Raica, and Stefana  Avram  . 
-    DOI-URL:      https://doi.org/10.1021/acs.jcim.5b00646
-            
-
-    Title:        Evaluation of categorical matrix completion algorithms: toward improved active learning for drug discovery 
-    Journal:      Bioinformatics
-    Contributors: Huangqingbo  Sun, Robert F  Murphy, . 
-    DOI-URL:      https://doi.org/10.1093/bioinformatics/btab322
-            
-
-    Title:        An Artificial Intelligence Approach Based on Hybrid CNN-XGB Model to Achieve High Prediction Accuracy through Feature Extraction, Classification and Regression for Enhancing Drug Discovery in Biomedicine 
-    Journal:      International Journal of Biology and Biomedical Engineering
-    Contributors: Mukesh  Madanan, Biju T.  Sayed, Nurul Akhmal  Mohd Zulkefli, Nitha C.  Velayudhan. 
-    DOI-URL:      https://doi.org/10.46300/91011.2021.15.22
-            
-
-    Title:        Artificial Intelligence in Medicinal Chemistry 
-    Journal:      
-    Contributors: Edward  Griffen, Alexander  Dossetter, Andrew  Leach, Shane  Montague. 
-    DOI-URL:      https://doi.org/10.1002/0471266949.bmc267
-            
-
-    Title:        Practical Chemogenomic Modeling and Molecule Discovery Strategies Unveiled by Active Learning 
-    Journal:      
-    Contributors: J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.1016/B978-0-12-801238-3.11533-8
-            
-
-    Title:        Machine learning phases and criticalities without using real data for training 
-    Journal:      Physical Review B
-    Contributors: D.-R.  Tan, F.-J.  Jiang. 
-    DOI-URL:      https://doi.org/10.1103/PhysRevB.102.224434
-            
-
-    Title:        Active learning effectively identifies a minimal set of maximally informative and asymptotically performant cytotoxic structure–activity patterns in NCI-60 cell lines 
-    Journal:      RSC Medicinal Chemistry
-    Contributors: Takumi  Nakano, Shunichi  Takeda, J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.1039/D0MD00110D
-            
-
-    Title:        Active learning efficiently converges on rational limits of toxicity prediction and identifies patterns for molecule design 
-    Journal:      Computational Toxicology
-    Contributors: Ahsan  Habib Polash, Takumi  Nakano, Christin  Rakers, Shunichi  Takeda, J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.1016/j.comtox.2020.100129
-            
-
-    Title:        Practical considerations for active machine learning in drug discovery 
-    Journal:      Drug Discovery Today: Technologies
-    Contributors: Daniel  Reker. 
-    DOI-URL:      https://doi.org/10.1016/j.ddtec.2020.06.001
-            
-
-    Title:        Designing compact training sets for data-driven molecular property prediction through optimal exploitation and exploration 
-    Journal:      Molecular Systems Design & Engineering
-    Contributors: Bowen  Li, Srinivas  Rangarajan. 
-    DOI-URL:      https://doi.org/10.1039/C9ME00078J
-            
-
-    Title:        Applicability Domain of Active Learning in Chemical Probe Identification: Convergence in Learning from Non-Specific Compounds and Decision Rule Clarification 
-    Journal:      Molecules
-    Contributors: Ahsan Habib  Polash, Takumi  Nakano, Shunichi  Takeda, J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.3390/molecules24152716
-            
-
-    Title:        Capturing and applying knowledge to guide compound optimisation 
-    Journal:      Drug Discovery Today
-    Contributors: Matthew  Segall, Tamsin  Mansley, Peter  Hunt, Edmund  Champness. 
-    DOI-URL:      https://doi.org/10.1016/j.drudis.2019.02.004
-            
-
-    Title:        A novel graph kernel on chemical compound classification 
-    Journal:      Journal of Bioinformatics and Computational Biology
-    Contributors: Qiangrong  Jiang, Jiajia  Ma. 
-    DOI-URL:      https://doi.org/10.1142/S0219720018500269
-            
-
-    Title:        Accelerating Drug Discovery Using Convolution Neural Network Based Active Learning 
-    Journal:      
-    Contributors: Pengfei  Liu, Kwong-Sak  Leung. 
-    DOI-URL:      https://doi.org/10.1109/TENCON.2018.8650298
-            
-
-    Title:        An Adaptive Lightweight Security Framework Suited for IoT 
-    Journal:      
-    Contributors: Menachem  Domb. 
-    DOI-URL:      https://doi.org/10.5772/intechopen.73712
-            
-
-    Title:        Adaptive mining and model building of medicinal chemistry data with a multi-metric perspective 
-    Journal:      Future Medicinal Chemistry
-    Contributors: JB  Brown. 
-    DOI-URL:      https://doi.org/10.4155/fmc-2018-0188
-            
-
-    Title:        Chemogenomic Active Learning's Domain of Applicability on Small, Sparse qHTS Matrices: A Study Using Cytochrome P450 and Nuclear Hormone Receptor Families 
-    Journal:      ChemMedChem
-    Contributors: Christin  Rakers, Rifat Ara  Najnin, Ahsan Habib  Polash, Shunichi  Takeda, J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.1002/cmdc.201700677
-            
-
-    Title:        Automating drug discovery 
-    Journal:      Nature Reviews Drug Discovery
-    Contributors: Gisbert  Schneider. 
-    DOI-URL:      https://doi.org/10.1038/nrd.2017.232
-            
-
-    Title:        Classifiers and their Metrics Quantified 
-    Journal:      Molecular Informatics
-    Contributors: J. B.  Brown. 
-    DOI-URL:      https://doi.org/10.1002/minf.201700127
-            
-
-    Title:        Active Search for Computer-aided Drug Design 
-    Journal:      Molecular Informatics
-    Contributors: Dino  Oglic, Steven A.  Oatley, Simon J. F.  Macdonald, Thomas  Mcinally, Roman  Garnett, Jonathan D.  Hirst, Thomas  Gärtner. 
-    DOI-URL:      https://doi.org/10.1002/minf.201700130
-            
-
-    Title:        Selection of Informative Examples in Chemogenomic Datasets 
-    Journal:      
-    Contributors: Daniel  Reker, J. B.  Brown. 
-    DOI-URL:      https://doi.org/10.1007/978-1-4939-8639-2_13
-            
-
-    Title:        The value of prior knowledge in machine learning of complex network systems 
-    Journal:      Bioinformatics
-    Contributors: Dana  Ferranti, David  Krane, David  Craft, . 
-    DOI-URL:      https://doi.org/10.1093/bioinformatics/btx438
-            
-
-    Title:        Lightweight adaptive Random-Forest for IoT rule generation and execution 
-    Journal:      Journal of Information Security and Applications
-    Contributors: Menachem  Domb, Elisheva  Bonchek-Dokow, Guy  Leshem. 
-    DOI-URL:      https://doi.org/10.1016/j.jisa.2017.03.001
-            
-
-    Title:        Active learning for computational chemogenomics 
-    Journal:      Future Medicinal Chemistry
-    Contributors: Daniel  Reker, Petra  Schneider, Gisbert  Schneider, JB  Brown. 
-    DOI-URL:      https://doi.org/10.4155/fmc-2016-0197
-            
-
-    Title:        Small Random Forest Models for Effective Chemogenomic Active Learning 
-    Journal:      Journal of Computer Aided Chemistry
-    Contributors: Christin  Rakers, Daniel  Reker, J.B.  Brown. 
-    DOI-URL:      https://doi.org/10.2751/jcac.18.124
-            
-
-    Title:        Large-Scale Off-Target Identification Using Fast and Accurate Dual Regularized One-Class Collaborative Filtering and Its Application to Drug Repurposing 
-    Journal:      PLOS Computational Biology
-    Contributors: Hansaim  Lim, Aleksandar  Poleksic, Yuan  Yao, Hanghang  Tong, Di  He, Luke  Zhuang, Patrick  Meng, Lei  Xie, . 
-    DOI-URL:      https://doi.org/10.1371/journal.pcbi.1005135
-            
-Article title:    Matched Molecular Series: Measuring SAR Similarity
-Publication date: May 1, 2017
-DOI-URL:          https://doi.org/10.1021/acs.jcim.6b00709
-
-Subjects:
-Substituents, Mathematical methods, Structure activity relationship, Biological databases
-
-Contributors:
-Emanuel S. R. Ehmki, Christian Kramer
-
-This publication is cited by the following 5 publications:
-
-
-    Title:        Matched Molecular Series Analysis for ADME Property Prediction 
-    Journal:      Journal of Chemical Information and Modeling
-    Contributors: Mahendra Awale, Sereina Riniker, Christian Kramer. 
-    DOI-URL:      https://doi.org/10.1021/acs.jcim.0c00269
-            
-
-    Title:        Approaches using AI in medicinal chemistry 
-    Journal:      
-    Contributors: Christian  Tyrchan, Eva  Nittinger, Dea  Gogishvili, Atanas  Patronov, Thierry  Kogej. 
-    DOI-URL:      https://doi.org/10.1016/B978-0-12-822249-2.00002-5
-            
-
-    Title:        Bioactivity Prediction Based on Matched Molecular Pair and Matched Molecular Series Methods 
-    Journal:      Current Pharmaceutical Design
-    Contributors: Xiaoyu  Ding, Chen  Cui, Dingyan  Wang, Jihui  Zhao, Mingyue  Zheng, Xiaomin  Luo, Hualiang  Jiang, Kaixian  Chen. 
-    DOI-URL:      https://doi.org/10.2174/1381612826666200427111309
-            
-
-    Title:        BRADSHAW: a system for automated molecular design 
-    Journal:      Journal of Computer-Aided Molecular Design
-    Contributors: Darren V. S.  Green, Stephen  Pickett, Chris  Luscombe, Stefan  Senger, David  Marcus, Jamel  Meslamani, David  Brett, Adam  Powell, Jonathan  Masson. 
-    DOI-URL:      https://doi.org/10.1007/s10822-019-00234-8
-            
-
-    Title:        The use of matched molecular series networks for cross target structure activity relationship translation and potency prediction 
-    Journal:      MedChemComm
-    Contributors: Christopher E.  Keefer, George  Chang. 
-    DOI-URL:      https://doi.org/10.1039/C7MD00465F
-            
diff --git a/verarbeitung/Processing.py b/verarbeitung/Processing.py
deleted file mode 100644
index 0dcc739..0000000
--- a/verarbeitung/Processing.py
+++ /dev/null
@@ -1,247 +0,0 @@
-# -*- coding: utf-8 -*-
-"""
-Functions to generate a graph representing citations between multiple ACS/Nature journals
-
-"""
-
-__authors__ = "Donna Löding, Alina Molkentin, Xinyi Tang, Judith Große, Malte Schokolowski"
-__email__ = "cis-project2021@zbh.uni-hamburg.de"
-__status__ = "Production"
-#__copyright__ = ""
-#__credits__ = ["", "", "", ""]
-#__license__ = ""
-#__version__ = ""
-#__maintainer__ = ""
-
-from bs4 import BeautifulSoup as bs
-import requests as req
-import sys  
-from pathlib import Path
-from input_fj import input
-from input_test import input_test_func
-from json_demo import output_to_json
-
-# adds every publication from input list to graph structure
-# doi_input_list: list of publication dois from user
-def initialize_nodes_list(doi_input_list, search_depth_max, search_height_max, test_var):
-    references_pub_obj_list = []
-    citations_pub_obj_list = []
-
-    for pub_doi in doi_input_list:
-
-        #checks if its a test and chooses input function accordingly
-        if(test_var):
-            pub = input_test_func(pub_doi)
-        else:
-            pub = input(pub_doi)
-
-        # checks if publication already exists in nodes
-        not_in_nodes = True
-        for node in nodes:                                              # checks if a pub is already in nodes
-            if (pub.doi_url == node.doi_url):
-                not_in_nodes = False
-                break
-        if (not_in_nodes):
-            nodes.append(pub)
-            pub.group = "input"
-        else:
-            doi_input_list.remove(pub_doi)
-
-        # inserts references as publication objects into list and 
-        # inserts first depth references into nodes/edges if maximum search depth > 0
-        for reference in create_graph_structure_references(pub, 0, search_depth_max, test_var):
-            references_pub_obj_list.append(reference)
-
-        # inserts citations as publication objects into list and 
-        # inserts first height citations into nodes if maximum search height > 0
-        for citation in create_graph_structure_citations(pub, 0, search_height_max, test_var):
-            citations_pub_obj_list.append(citation)
-
-    return(references_pub_obj_list, citations_pub_obj_list)
-        
-    
-# adds edges between citation and reference group
-def complete_inner_edges(test_var):
-    for node in nodes:
-        if (node.group == "depth"):
-            for citation in node.citations:
-                for cit in nodes:
-                    if (citation.doi_url == cit.doi_url and [citation.doi_url, node.doi_url] not in edges):
-                        edges.append([citation.doi_url, node.doi_url])
-        if (node.group == "height"):
-            for reference in node.references:
-                for ref in nodes:
-                    if (reference.doi_url == ref.doi_url and [node.doi_url, reference.doi_url] not in edges):
-                        edges.append([node.doi_url,reference.doi_url])
-
-
-
-# adds a node for every publication unknown
-# adds edges for references between publications     
-def create_graph_structure_references(pub, search_depth, search_depth_max, test_var):
-    references_pub_obj_list = []
-    for reference in pub.references:
-        not_in_nodes = True
-        for node in nodes:
-            # checks every reference for duplication 
-            if (reference.doi_url == node.doi_url):
-                not_in_nodes = False
-                break
-        if (not_in_nodes):
-            if (search_depth < search_depth_max):
-
-                #checks if its a test and chooses input function accordingly
-                if (test_var):
-                    reference_pub_obj = input_test_func(reference.doi_url)
-                else:
-                    reference_pub_obj = input(reference.doi_url)
-
-                reference_pub_obj.group = "depth"
-                nodes.append(reference_pub_obj)
-                edges.append([pub.doi_url,reference_pub_obj.doi_url])
-                references_pub_obj_list.append(reference_pub_obj)
-
-        # adds edge only if citation already exists           
-        elif [pub.doi_url,reference.doi_url] not in edges:
-            edges.append([pub.doi_url,reference.doi_url])  
-    return references_pub_obj_list 
-
-
-# recursive function to implement height-first-search on references
-# references_pub_obj_list: input list of references as publication objects
-# search_depth: current search_depth of height-first-search
-# search_depth_max: maximal search_depth for dfs
-def process_references_rec(references_pub_obj_list, search_depth, search_depth_max, test_var):  
-    # adds next level to nodes/edges
-    for pub in references_pub_obj_list:
-        new_reference_pub_obj_list = create_graph_structure_references(pub, search_depth, search_depth_max, test_var)    
-
-        # If the maximum height has not yet been reached, calls function recursivly with increased height     
-        if (search_depth < search_depth_max):
-            process_references_rec(new_reference_pub_obj_list, search_depth+1, search_depth_max, test_var)
-
-
-
-    
-# adds a node for every publication unknown
-# adds edges for citations between publications     
-def create_graph_structure_citations(pub, search_height, search_height_max, test_var):
-    citations_pub_obj_list = []
-    for citation in pub.citations:
-        not_in_nodes = True
-        for node in nodes:
-            # checks every citation for duplication 
-            if (citation.doi_url == node.doi_url):
-                not_in_nodes = False
-                break
-        if (not_in_nodes):
-            if (search_height < search_height_max):
-
-                #checks if its a test and chooses input function accordingly
-                if (test_var):
-                    citation_pub_obj = input_test_func(citation.doi_url)
-                else:
-                    citation_pub_obj = input(citation.doi_url)
-
-                citation_pub_obj.group = "height"
-                nodes.append(citation_pub_obj)
-                edges.append([citation_pub_obj.doi_url,pub.doi_url])
-                citations_pub_obj_list.append(citation_pub_obj)
-
-        # adds only edge if citation already exists         
-        elif [citation.doi_url,pub.doi_url] not in edges:
-            edges.append([citation.doi_url,pub.doi_url])   
-    return citations_pub_obj_list
-
-
-
-# recursive function to implement height-first-search on citations
-# citations_pub_obj_list: input list of citations as publication objects
-# search_height: current search_height of height-first-search
-# search_height_max: maximal search_height for dfs
-def process_citations_rec(citations_pub_obj_list, search_height, search_height_max, test_var):  
-    # adds next level to nodes/edges
-    for pub in citations_pub_obj_list:
-        new_citation_pub_obj_list = create_graph_structure_citations(pub, search_height, search_height_max, test_var)   
-
-        # If the maximum height has not yet been reached, calls function recursivly with increased height 
-        if (search_height < search_height_max):
-            process_citations_rec(new_citation_pub_obj_list, search_height+1, search_height_max, test_var)
-
-
-
-
-# main function to call. Needs as input:
-# doi_input_list:   input list of dois
-# search_height:    max search height to process to
-# search_depth:     max search depth to process to
-# test_var:         only needed for unit test as True, default is False
-def process_main(doi_input_list, search_height, search_depth, test_var = False):
-    # ERROR-Handling doi_array = NULL
-    if (len(doi_input_list) == 0):
-        print("Error, no input data")
-
-    # ERROR- if a negative number is entered for height
-    if (search_height < 0):
-        print("Error, search_height of search must be positive")
-
-    # ERROR- if a negative number is entered for depth
-    if (search_depth < 0):
-        print("Error, search_depth of search must be positive")       
-
-    # create empty array for the nodes
-    # create empty array for the edges
-    global nodes, edges
-    nodes = []
-    edges = []
-
-    # initializes nodes/edges from input and gets a list with publication objects for citations and references returned
-    references_obj_list, citations_obj_list = initialize_nodes_list(doi_input_list,search_depth, search_height, test_var)
-
-    # function calls to begin recursive processing up to max depth/height
-    process_citations_rec(citations_obj_list, 1, search_height, test_var)
-    process_references_rec(references_obj_list, 1, search_depth, test_var)
-
-    # adds edges between reference group and citation group of known publications
-    complete_inner_edges(test_var)
-
-    # calls a skript to save nodes and edges of graph in .json file
-    output_to_json(nodes,edges)
-
-    # only for unit tests
-    if (test_var == True):
-        doi_nodes_list = []
-        for node in nodes:
-            doi_nodes_list.append(node.doi_url)
-        return(doi_nodes_list, edges)
-
-
-
-    
-# a function to print nodes and edges from a graph
-def print_graph(nodes, edges):
-    print("Knoten:\n")
-    for node in nodes:
-        print(node.title, "\n")
-    print("\nKanten:\n")
-    for edge in edges:
-        print(edge,"\n")
-   
-    
-# program test, because there is no connection to UI yet.
-def try_known_publications():
-    doi_list = []
-    doi_list.append('https://pubs.acs.org/doi/10.1021/acs.jcim.9b00249')
-    #arr.append('https://pubs.acs.org/doi/10.1021/acs.jcim.9b00249')
-    doi_list.append('https://doi.org/10.1021/acs.jmedchem.0c01332')
-    #arr.append('https://doi.org/10.1021/acs.jcim.0c00741')
-
-    #arr.append('https://doi.org/10.1021/ci700007b')
-    #arr.append('https://doi.org/10.1021/acs.jcim.5b00292')
-    #url = sys.argv[1]
-    #arr.append[url]
-
-
-    nodes,edges = process_main(doi_list,2,2)
-
-    print_graph(nodes, edges)    
\ No newline at end of file
diff --git a/verarbeitung/Processing_unittest.py b/verarbeitung/Processing_unittest.py
deleted file mode 100644
index 772d572..0000000
--- a/verarbeitung/Processing_unittest.py
+++ /dev/null
@@ -1,66 +0,0 @@
-import unittest
-from Processing import process_main
-
-class ProcessingTest(unittest.TestCase):
-     def testCycle(self):
-         nodes, edges = process_main(['doiz1'],1,1,True)
-         self.assertCountEqual(nodes, ['doiz1', 'doiz2'])
-         self.assertCountEqual(edges, [['doiz1', 'doiz2'], ['doiz2', 'doiz1']])
-
-         nodes, edges = process_main(['doiz1'],2,2,True)
-         self.assertCountEqual(nodes, ['doiz1', 'doiz2'])
-         self.assertCountEqual(edges, [['doiz2', 'doiz1'], ['doiz1', 'doiz2']])
-
-    #def testBigCycle(self):
-
-    #def testEmptyHeight(self):
-
-    #def testEmptyDepth(self):
-
-     def testEmptyDepthHeight(self):
-         nodes, edges = process_main(['doi1'],0,0,True)
-         self.assertCountEqual(nodes,['doi1'])
-         self.assertCountEqual(edges, [])
-
-         nodes, edges = process_main(['doi1', 'doi2'],0,0,True)
-         self.assertCountEqual(nodes, ['doi1','doi2'])
-         self.assertCountEqual(edges, [['doi1', 'doi2']])
-
-         nodes, edges = process_main(['doi1', 'doi2', 'doi3'],0,0,True)
-         self.assertCountEqual(nodes, ['doi1','doi2', 'doi3'])
-         self.assertCountEqual(edges, [['doi3', 'doi1'], ['doi1', 'doi2']])
-
-
-     def testInnerEdges(self):
-        nodes, edges = process_main(['doi_ie1'],1,1,True)
-        self.assertCountEqual(nodes,['doi_ie1','doi_ie2','doi_ie3'])
-        self.assertCountEqual(edges,[['doi_ie1','doi_ie2'],['doi_ie3','doi_ie1'],['doi_ie3','doi_ie2']])
-     
-     def testRightHeight(self):
-          nodes, edges = process_main(['doi_h01'],1,0,True)
-          self.assertCountEqual(nodes,['doi_h01'])
-          self.assertCountEqual(edges, [])
-
-          nodes, edges = process_main(['doi_h02'],1,0,True)
-          self.assertCountEqual(nodes,['doi_h02','doi_h1'])
-          self.assertCountEqual(edges, [['doi_h1','doi_h02']])
-
-          nodes, edges = process_main(['doi_h02'],2,0,True)
-          self.assertCountEqual(nodes,['doi_h02','doi_h1','doi_h2'])
-          self.assertCountEqual(edges, [['doi_h1','doi_h02'], ['doi_h2','doi_h1']])
-
-     def testRightDepth(self):
-          nodes, edges = process_main(['doi_d01'],0,1,True)
-          self.assertCountEqual(nodes,['doi_d01'])
-          self.assertCountEqual(edges, [])
-
-          nodes, edges = process_main(['doi_d02'],0,1,True)
-          self.assertCountEqual(nodes,['doi_d02','doi_d1'])
-          self.assertCountEqual(edges, [['doi_d02','doi_d1']])
-
-          nodes, edges = process_main(['doi_d02'],0,2,True)
-          self.assertCountEqual(nodes,['doi_d02','doi_d1','doi_d2'])
-          self.assertCountEqual(edges, [['doi_d02','doi_d1'], ['doi_d1','doi_d2']])
-
-if __name__ == "__main__":
-    unittest.main()
\ No newline at end of file
diff --git a/verarbeitung/__pycache__/Processing.cpython-36.pyc b/verarbeitung/__pycache__/Processing.cpython-36.pyc
deleted file mode 100644
index eb6d8a0418a1340b746f2f664997515622356d8a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3693
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

diff --git a/verarbeitung/__pycache__/Processing.cpython-38.pyc b/verarbeitung/__pycache__/Processing.cpython-38.pyc
deleted file mode 100644
index 63ac529316c848e829cd83ef44ec749e5903bf9e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4009
zcmWIL<>g{vU|^Vhbw#4QG6Tb75C<7EGcYhXFfcF_Z(?9zNMVR#NMVd(Oks**N@0#-
zPGL!5&0)!9jbdYDNMT7~%VCe=0MndNoGC0R>^WSy+)><MIgT8jT;3>NFq<=nFPA@x
zAI#>;5y%yc5@cjZ;ZEUcVTck+;Z5OdVTck=;ZG50VTck*5lj(kVTck<5l#_lVTck-
z5ls<mVTck>QAm+Uk!)d%l1PzCk#1p#l1!0Fk!@j!l1h<Fk#Av$l1^a@X3$iuis5oA
z%}XxH%+D)UD9KkyPt8j$N-RlLNK{BKN-W4wC`v6TN-a*!E6L1DS4hq*NrWg(N-Zf*
zP0drtEzK#(EXYY!aC8pV_e(4(ElO3$$}cU-OUx<e;wtrJU|?{`&&x|x@HxCKB{MHw
zN5L^CGcQrWH$NvEY^aVxL}p%Prb0*}NYbk`C9@<$!M!N|@cdLA1>eM+l2nD@<c$36
z{G9yq;_S>SrR2<F-GZY0tkmQZBLgEthpMCuz0$l)-HgQCq|%~vy_D1_u7INalv1##
zUV>svlkpa>Q)*&qNoHDUPH=u{fuAPhEtY`9k_=78TdbLR1*IjLjJNo~jQEn&;*$8Z
z(!69%##?;(r6mQWCGjQs@ma<BdC5#5)1a7*fq{XAfq}sp6#Z!o3=B04E)20TwM;dP
zMPelkHB8Nnwaj@OC5#YO3S%ux36l#$tVAtq4RaQA4Qm#2HdB#W3R5i$BSWD>p;`?~
zQCJDn0+t%)g^Y|0Da<v@@vMa`H4F>bYM4MGg)Auy!3>%#ej#o}Ad5BGi&z;L7{KgX
zta<q<sl~V0Q}Q$8ON(-Du_YE1q~@jEVofi~FD<ymR+O5XUzV!Lc8d?B0^-x0%;J(;
z9AN*JB^KRcFDOllPsz``#avLDbc-i1za&00FCJnp3y50DP$a~_!0^jG*(xTqIJKxa
z#yv4NGcP7Rvm_=tQx_U7*(JJVsYQuJNvWA7rFrQwD4c+z{N&W);>^5sy@JYHqM3P_
zC7FpinN_I}d*VS(k^u#%6eyG#IT%?OxtKVZSQt4Nc^Fw3*+6_o4yGaz1_p*?MvxjP
z289GWEH<_=Fff#WVq;A$V+})*L<wUJV-_ernDV$vm|^T1#w?Z;#%!jdq#C9yRu_g?
zy;|lP<`RZ%wj!e%<}9WfrYxp(rV_Sn_9CMawgv16F>q`cf%P+GGZnGaFlBMLFvQx_
zvVd(hs%5NU$zlT8lg(CC1u_T3hniIdHj62X2_gnItE#XF8oSJXw^&nB3raF>v1O!Y
zre~CBau$L71&L}7SbP_Oiltke@cej-H8mwYwYZ3rfq~%`S5azOYEf!la%!<AYY{I<
zk06NP2T5|k^xWcvD+5O>gb)U)5lPO^EyzhNNsZ6U%S$ba2b-;j8ZA6bT#O(n!6*Wz
zIT&Rai$GDA3@Q_$vBCh#B%r7PXOb3hCdmRtOhqj-I72YPGXzr&YZfRlg`gQir%<Sd
zr6{I`v4$y|v8WE59hgfPVcDaE6~xM7s$l>{5;zdqz!3!Im#}8D7qMYegUCW+3=9mK
zY(?UrkO7A<IB-GX3J%3035Yy6(0Gee6N{2F;vrFTOAv({pPN`w1WK<(0wA-%K@G|$
zNCB#lT$Gwvk{S;#QsawDib|6~C1pG;E{dHHfy>3n!pOk{OYIztY>ZrtBFqAeMe?9D
zPrtxr$YKHoXgZ|qVFLv;gpU-sXlf9FD+&obNl<_g3S1s&XhM>`05T68w9+6$a0aa+
zj-Z7n?&1g{!d3|swxB{4mT*Cd0hD;b3AY54a2Zn=%^5)Di3>w)QY}jjbCFyLLk&wa
zV=XJVln1j)m}*!-Nw%4pkpV<!GZgWpGt{zyN_!WESgBg}6s8*XES7AxB9|Jr1*{-8
zIPtoau+^}Ebks06gX#kwa9A??y#y6<x0n-?i;;_aa9V&QU64b;3HFv~0i<w6q^kI$
z)MQPLC|*#J4^L`EvY_yk0}<e&fe*w2rSd2~xEgRd3`x_dDY;0Mfq|g_6riB&!NA19
z3@f5}AS@OxMm}b+s$`tOS%V&&S!4#M5+XQ@qiUE_Kou%6!OG%Sqzv-43IhW}2uiqu
z(m@e8)gr=G3>L14Bn1sva9xTJEm8m(st6*`LY5z)2okj5G>sOtY77hv6YvGC5F;N;
z5lEFAO4x#uDZGrG2Cn*Q7@8TuRhvi&V+vC<BPcPZFlI9psgy9LFoXF_V7^HSV+sq1
zpU#lTl+KXIT*6YrP{Z8J#K=&>TEmdSSi=ZOkR@zj9ut(uUIR9zgrkJ11gtup0ouF~
zsAa8TS-@Gtn#Bc9*fljQCCq6|!3>(Lenp_fTqWXKRFq$&qmY-c0B(mUq$HLkR_Q}U
zq1hi&(kkSqDL@1ia!ZR#6p~UE3i69HOESw+tMpJcfJ+ZN>NUA<G3TV_-C`{$%FHW)
z)Ty8}3~ow*6D&Ar!BtohC`iGXstA+}G}(%HK#>a0IN&%2MQ;=*C|iNrMa4zf%6uMJ
zvdK-%%v%SFS5V?&VB%o}Wg0MMWnpAt;$q}u<YVMu;$jB1a`+gFG(lw%a!V7Gkw6$+
z7TJL#IE4`uY2X&8KrIufwV4HqXeLI6LY@)^XcU7gSH4>25{4S)6eduV7HWY@6&AlL
z4)47DlGHpau3L;;Rh(SjiFsh2CR33Hr~$xQl39|Is>y;BOdu~tv4C0vka`WAc)_g&
zZg7Y~>b6TDe}V#wfsuoe1LQA84#pxKkdI&`D~JZwV(=tu!N9<f&QQxx!?1uMg%Ol!
zN*HSxQkYVhQka`rVwh?fYne)zKxHGy51{s24cIqOzuaO?$<M4Z1n1}wO%_PBfx-~%
z6|mhanWLB!i;9qZ19m-_0DFN8+z3vtOwLKY1M&f=6~F*$YcdNlaWNI?<8?o%6al%v
zgaMRAQb6$lb2TXYAl%CA_YxGXA(~9!I0ied2-K`X4^fD7z`^<g<Q!0PWME|B5n?Jb
z1XZkzZkjT;*yH0<@{{A^qqyVa6H7}n@{5Y&<D)p^<5P1JGjrnOZ*j%P7ndZKl!Anr
zlZs7>K$hQPN-B=xC`v6XO)V}dzQtUWT6l}OxU%>bdqHAJMowl@5h!k=IKVkGJ}nE}
zyNKd~a6zF2Ziq&4g1STTDXF>nkh}tFk3+H!sFhL#O6f>>3LG1tL;wy+upf}TjEDvf
yo80`A(wtN~kV}g}DUk(~MHpGwdBDkuhY<|fID|MvIK((4I21VKxKuc}ICubz(srW&

diff --git a/verarbeitung/__pycache__/Processing.cpython-39.pyc b/verarbeitung/__pycache__/Processing.cpython-39.pyc
deleted file mode 100644
index 54c63251bbf3affbdd176d3d55f4956c2fc08406..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4045
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
DM|^?B

diff --git a/verarbeitung/__pycache__/Processing_pub_objs_only.cpython-39.pyc b/verarbeitung/__pycache__/Processing_pub_objs_only.cpython-39.pyc
deleted file mode 100644
index 9ce1023e6ea54e1b04b37ad5a1fd08115d5f52a4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4137
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
C633hX

diff --git a/verarbeitung/__pycache__/input_fj.cpython-36.pyc b/verarbeitung/__pycache__/input_fj.cpython-36.pyc
deleted file mode 100644
index 04312c91f0a7675651e99a2a6c10a2c9da146758..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4299
zcmXr!<>i_$J2!Ec5Cg+w1|-1Dz`)?Zz`#)4!N9<f!Vtxf!WhMv!W6}n!W_k%!ji(8
z!;;Gy#m2~x!ji(4!yd%}ra7ZHQ&>{ibGUN3qqrFv+!<0hQaD=}QaGELqIldHQn*sM
zTNqNfo0+0`Q+QH%TNtAFQutE%TNtAFQv^~3TNt7QQiM{3TNt7QQ$$ikTNt8*Qp8fk
zTNt8*Q`mwTG$pEhxZFzfl1no4^NJPH@{1HQ^V0H*auY!U3Pq_UMVYB(i8%`SX$px&
zC7H=Nsl^IuMftf3B^jv-j?TdfS^1?!d5Jj+Ue2DrTwGQBZaMiynTdG{Uirxxsd>d!
zJZV`DiFqlB$@zLIskgWSit<xR!M42wg^ecTEncV8#L|+?w9=g5{L%tHO~zX+0f{9U
z$slPMW`c#C1Oo#@Dnk@w3PTiAIztq53S$aW3qur33Ue@nCd)1EfYPL#%w(|Rli8uV
zK{Ut!XHej4FfcIGFxD`{Gt@BEFvK&~FxN1|Gu5!vFvK(0u+}idv(&KFFvPQ_Fa$Gb
zGWuz<-C`}tEXhf|B~XAcIzA<_B=r_ga(-S(QD#zUNq$lBE%ucB%=prxoLd~lrAb+-
z$tA_Nc=Jkg<C8N>z|JYwWWU8yoSKtX#KyqDPy}*R5eJCH2_m>a1UCZ%!%BuCUIqq+
zU;g?T`MIh3i8+~hAY59Z@0=N|8&H&=m6~0mpPZ>%tXlx#=$54xB^D*6W|oxZrR$?`
zGV=;bOXAbA^a?6(am2@G=4F<|$4i2Ofd>>e%xsJ>SS5lKa(XbOewwTxeR+wwsqyi*
zxZ>k;^HWN5Ky04)_`=e}9JmbJmqq*_pMbmo_6LOE1BtORFffRM>}FwLVBlb4VJZTN
zV2@@Iq-cglF*7uZIh>&Znheqo@&<^8$FB^Y_=UwO3pfgHu|tzCA{sPVi$DPbmM#Lh
z6(I%j2-sg>-+;WS0`d(g4jG`~SS1K^98wUn6bXR5F9;%pKm<rDl5q$#LB3W7nF;a@
z2V)V4pUepIA_D^hNEay4fK%}okS`gs7(ii@!raSL%UHvh1u8gLLA)%+S|%u;4a#S(
zPymZCrm%xVTo_{cYFTPnvY1jhni*?Z3+=)gpz@p``C7JghFbOtr5d&@<`k}GMi+)y
zky?%#_AHhfjx44W?q<ejMn;ChJg6?76kf0{&UA)at_r0Z&MZ)Y#s?B}VTcu|<*wn%
zVyWTIg6LWS)y0^?4^mOfQ^S+RT6`@<pq4j}1H{f^tmQ3Xt6{2PuHmX-tzoa>ZDy<G
ztKkb~&=mB$#hj8^RwWB9jN&s=6H`))baPVEN)!r8b8^5eO~zYn$vKI|#qqaTiVG6+
zs<<<9+;UQMLqIvXim#wFNf(rZb;}ZSN>i&u(acK8&jjUTmW-m*v?_5l$&$p1{Ji|!
z%3F+y;AC=(sWc~wIVV4{N*H2?Go(;(EG@~%FNzX@YWD>dq{+qc$@!&uB}Jh41r-Nr
znRzL<SV~eWN^UWyr<UB}013n==H%RBODrfz%}Xhg0woww0@vif#ZsJKT5yXE;^Qb@
zsLAo*;t5=y++xYe%*!s~WME*3Vks_7DlP&QE4P@7OOv8llJoP5!O1y_IXOQsiY2c!
zH@OH@;@n~`C{032kD%mzOCUY9Bpzl1s7BBNrAtuZ$-v0RD8MMdD8k6c$j8V6Ww9`d
zFbXj8f${+p2NM?~2V;>M0|Ns*cY`WFP`(GJUOxr~h7yJ>MtJIFNMWgEtkA1r$YM%i
z1*bNJTBaJNEanupX2uluY^EZ)8b&amqnXj1p_Z{wE}Wr+r3RdyY8ZnVG&%i>#26SD
zs$`QhOLSB6%ky&b6H|0kit-CUoOn=4otjso$yg)~QYDg6Qc_TCrLSL5npCWpm|U!v
zUz83BYf#}_B@WBR3W<3s3Pq`DsYR)I$*ILfk_-$Cnyf{NpjZKwG)3|tmK*~E!!6c=
zqRhM!P3Bu{sTBqJMJ2bGON(-fK-n2<*n*q|awDk9Z~}!bDA++^3kp#_Mj=oLg2Ei0
z|3M)L!r%~ef#?5b#v-X2XjnEgr7%e{)H0SZr7+hpiZe8W$^oV<=4OT>ixQR;7Eqqe
z<0xSPg)t)oxHM$*`^9Mc5>&=iap>u%W#*(7>sJZ8W#*(RB<2*QCZ<#>q*i1WmlQ(<
zQ}R=b74q^+AflSAMW9f)#a2{Ykds+b1d8EX?3u;!AcKn3L4n0wqzMWg4v+|_wz$Po
zkXVv|9wZ#F;P3_o1*i;WVB}&HVB}%sVB}&dG6W?hkmo^VA*j3r6}sSn_{YG&kj?<9
z&XE!nb2>vUONCYqa~2b*Wd$l`To_^{YFTSovY2aFvskiNQ`l12o0&jCQm7Hmkj_xc
zR-pt{&jD30P|FS~071nbSX~5I9S2k$Cpe*s)N<BvWHHxpX0d?^O0c>busTpd2(h0V
zZXT#0WUk@P0!KyRig1Psn-caEo)QjFQf_8)VTjeL<*8xFV#s1H;jCe);gMvhVFQy~
zV3GqwHbZou35P@>uiq`E{G2Mu<jj)P6kTXak55jjge78VsxJbyovPGvDuZQrU2uVN
zi&5_uLzNnC)zHdQ7Zj<GtOLp%ReHE}K#LQw6JgCJNKwdDBn-+&ptJ<ZQ3@cgEGXfy
z7o`^DBqpa8K{8oUVqSXcE#}O;5^(LP$y=lfQVJ@^z`61kdrE3aVrEY9EjF+>iou0+
z6fe}Z@gUb0-(mq#Q5?_~TQN9^g3HER?4a-~%1pY&n2DZ71wln3teq1NDicFMi4{^N
zvVqG&4n`hE2}Tx15G?>L8(};VMiIs$TTns<<u*`42Gs%}hl3OHDR7yX!U)RCvl&vD
zKxN@<h7{%+hAigU3@I#g*+EIGgrSBZizS6Mg)Nh@kCBm~gdqhX&Wa??R>P3R-prW7
zk<C)HuLQ>9%w{SoC}994R7Qq8p%R7^Zjid!3@JQwnL*}PIMpy@akwzV>eVuqFr@I-
zFlI5%W=P?yVa(#3&5*)h!<fZ7n;}J@h7s&4!MU6uU4>oY40#+S3@Jh&9=Kc)_Nx+d
zg!C5_z!71kprD{oCCr7?%v1o?!B!wa7k^LP&>$bM8jv~#g(_|?u3%_8+Ugc_acV&o
zla4|a9~ZQG1-H4az^SK52UMh6a)o4M7Aqh%(iJj`6~Kv6A*mAFTS?2$$;mIz%u7dB
zWyMvcLyFcaeq`OnR$NuWTp%Zdn-*{nKn1-ZeIuwaR1n1nAm4+uqlQ2gFW5|w1PE7I
zV09s=7>0W=F|Se~za%5I2-$ghnq1&g7@P^fO$2b`0NgA9r}rXrc<uq`Kv0`klL?%s
zZgIfUI(kOn1J`u%1*J*gT#yOM1)z2c10xfQ0;2#U2crNJsBOT-B*e(W$i%A0R0Qhx
z!fP^6Edj#dbPuZgKy85<hGxbrrdq}l<{HKn#%88krV^GKre?-k<`UK#<}6S<fGL}$
z$gYIF1};*=)XdDtPy_1vG5b|<XO!gT=oKUu6{i+~6NV<oE#{)sLU74Z1TIXNl8V92
z5+rYfa-=2;xCDse1ep*IYL0=+5^yk}d!7~Cr)mQE8B$I0Fmf?*FoJ6AB9MnPMQ*Xj
z$EV~cLpn@};AUWa{4LJ-_|)9Q%p8btaY<rHX>ok~E#{<RlOj;fRs;%&TO38Hg{7&*
zCB;RKpu&&2xU%>bJE+3U$xH&*uHZfsxafm;1k^+TSC8PL1su*`XCOHnR9_Z>S{JuC
tY;wW<H#<;+vKUmLvM{kQvM{o+gX&ohMjj?UK0bC12@XyUP7YBHNdWF&5QP8$

diff --git a/verarbeitung/__pycache__/input_fj.cpython-38.pyc b/verarbeitung/__pycache__/input_fj.cpython-38.pyc
deleted file mode 100644
index 515ab99c01a5ce78bb5bb6de554a4dae3ffe4b4b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4329
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
LCkH2oD2F5f?ZOc2

diff --git a/verarbeitung/__pycache__/input_fj.cpython-39.pyc b/verarbeitung/__pycache__/input_fj.cpython-39.pyc
deleted file mode 100644
index 175f9ebbfdf5f3313196b4f10aa01dc2e8e20509..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4337
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
MI5;^tIYc=m0eu}6EC2ui

diff --git a/verarbeitung/__pycache__/input_test.cpython-36.pyc b/verarbeitung/__pycache__/input_test.cpython-36.pyc
deleted file mode 100644
index 85878d6d127d9d2bd5efe9130672d982bb70c5fa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2579
zcmXr!<>mV9xF~TSCj-M{1|-12z`)?Zz`#&^je&u|ogsxGg|USpg|V3_3dCbdVQyha
zVQyxMVsvLnVM$?aVMt+ZW{P4;VM}3eVTfW*;Yi_ZVTfW$;Y#6dVTfW);Ys05;Y(*s
z;ZG4r5lm-H5lUxF5l-ibVoMQB5lInEXG{@G5l?4G;em>?rwFA;q)4VSrbwkogGAFA
z!0I_tWKv{P<Wl6*nNk!|6jPMa8NnE27H5i5igJodifTGjidu?#icC5q7=z@vQrS}3
zQ#n#OQ@PSvqqtKvf*CY5laV~kzy$NL2m=E{Dnk@w3PTiA3S$Zr*gwp{44N#rxC2U)
zax#+>OEUBGk~yKeK{QCSGbp%X7#J987;6~f8ETkn7~&agm}?l~nQB;S7~+|0SZf&K
zS!&o)7_vEv^wJq>7~)y;xJuY+*qT8)SZmn9G9F+V_B^f<jv98b40{bn4MRL<3PUi1
zCZnGw*Ddyx{LJ{$qMTc-C7C5TskeBN^YcoIGLuS6@{5XZv1jF%7Ud=8+!822I5$2e
zu_W~tS5azOYEf!la%%A{=AzWJTb#+6C1CFq-(pVAEV;#+UX)*2pvifQr8qSwtqA0=
zB4!2#h9VXa!3rYSKm<F80QtO#n}LC0B|{M}0|UdaK>dvT+*JL<oXk8BF0Iga&J5NK
zD9X=D%`VYT&eSc|Er4)z%TkLHi;_|^OG@+7^-(yPc?G2<@g=FnC3*#ww>aYCGxIV_
z;^RS1DV6|*IU^e!axii*aWO*3DiNgE(SvF8(_{gek(Zd88Xtd)D?UCqKczGW#O8^Q
zFDy;Wfyfl`gFFQC1lT7Kf)6Cd$iTn=!o?s5a4;5u*d!+$4rgdECxb!{<OvWBG7+3=
zlnAC8SlqMXj1o<@A|8-?L55<DGKA;A{sMUzl+=s4K+b`OXq6z$smMWCBmgp65JU)p
z2#{t-7@?Ue%)r0^!m!W+u}Kas&LCJS9bCaB1IpoO!6gKDD_P+MiUDbmv7l(<U@QXh
zlR-%g6e*yL2g+XHG!ntUz)%rX!r;OX>s8BG!%)MR!YIj*%~Zrz!U$p4Fs3j`g2b7@
zBny~i1(R%Gk{wKPNHR2Y)H2mD1v3<~g)@Lt7N_4!kcBTnHopWp<t51Om!M4l5|rs*
zf|Bb?P^Q;py2Y21SzHpIpBA53RFqg*49*dn%(vJJN|WMK@-uI-g2it!7nCL;r4dk~
zyTy;l-0^9pdCAHkuY>9u21YJM9!4|9B1HxU26zB~><5K6H~^v;7#PwSY8fj6YCwVD
zQOi`}1P%_XTIL$28fIv4h}1A<F_u92HO$~3VNL-B33Cc4NSIStB^jDon;97y3Pr*h
z3c11=Y8ZnVG}-)$L_tYg3`B^72vA{DB+0<Qpvhb$%fP^Ji!HIBAT=+g2$ZNn#R@na
zQt~sSSdueKiXk~u9;6d3Q-Hjn1@b8<gEBC(Fmi!?Ys6Rtk{P7FEdmuvP_Gt&;wg%y
zC^Zd_FG100gw>ZInJAW&{7l0rHgJVy7=>J88AfqHYb?VkR!}u%2v%$aCXH_~Ks6bm
zXflFpGJ<F_f+{mcQDzKRW(-kge2X<DKeNg(iXH5dD#I#%q{_3(P!B`ED2fy6yeh*e
zHjw+OK<>=XtTKWbVuWgl5xOBpdPs&CK@BnT)8ql?9dICnb3QorgA+v&ILtVcQZtJS
zGE;L5qu@*<1k*T*y{a-hr?l7*#xMdWRHR%7PKn^G$6*7h`RqV>ycm?q`Goj5_&7M&
SIXE~tr5Gg`C75IwWtafTIu$nn

diff --git a/verarbeitung/__pycache__/input_test.cpython-38.pyc b/verarbeitung/__pycache__/input_test.cpython-38.pyc
deleted file mode 100644
index df395212453392e135532b12396cd4c30a92ea05..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2862
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
LqYMZ$$}j-{ONE5A

diff --git a/verarbeitung/__pycache__/input_test.cpython-39.pyc b/verarbeitung/__pycache__/input_test.cpython-39.pyc
deleted file mode 100644
index 68e42fd6a47a02787524c68816a42574834931d2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3865
zcmYe~<>g{vU|<L{UYTevz`*br#6iYF3=9ko3=9m#I!p`<?hGjmDU2-)DU8ibQ6L^u
z3UdoX3Uf146r(#s3QG!W3quNPGgA~(3R?<$3qurh3P%cO3qur33Renu3qurZ3Qr1e
z3ST;73V(_~ieNfpicmUZif}qd6kCd5ib#rRI%A4hig-Fh3J+AAJw+%*B1JNtF-0mx
z8YG&|09MbDB9kJUB9|hc&Xl5%qL`wT&IraJvp7?fQj}9vQdHBKQq)q^Q)JQ^!5AdR
zm7<ZNnWB}Voz9e^lcJlVm(G}?54DRsMK8r5#W2MvohijQ#Uz~}MI%K&oe69oPl|qu
zX^L5jc{)>yMT%vLMv7iK6VxrdDOM@gDK_bhDYhwg=?qX&z7+cuhZM(j#uTR%=X8b?
z7pN`#DK06lDQ@YEDefsA=?p2JP;r42&lIl|?{vl#pA_G8h7>=jxL}H3ihoK#I%7&;
zN)X(1p_Jg1kd)AL#+0y>aJZ;&N<>OzN>n;yN_0w0N^CkK)GZ<@u_<vW@#%~y2`Pyw
zNpNw|l%$m8l$3PFl+={8lytbbSW0?IMoMNnV@g&^Hr#aaRJK(1RE|{6RIXI+RGw7c
zRK8UHRDo2%RH0PiRFPECRIya?bfGATl$>A&&D><<bOd5E!P1fl0|P@ULlk2QLljdA
zV+s>Er7#CGXtLbm4k%5^$xKcx$;{77<^<`2Vh|f-fHNpD#xO82)G*dC#52?|)iA^}
z)-cyF#52{f)G)*|*Ra+w#Iw|}r7)B-6zQci)G)-e=5dv<)vz^#bg<U2gJnFxGVFO=
zB^)*EU>Wurjv9t|&J>1VhLwzdnq0ToQ}Q$8ON(-Dv6f_(<fPu>NzTtJDauSLEy*t`
zzQvxEUs{xxm~%^@0O92Ll*E$MTU<q{X{kl2dC958x0s7k({6DlXO@7yRD6p$IkV&z
zYkE<BX@Mr^EtcZcoU|fl1_p*A77)P-BG^C#JBZ)_5uglO#KXYAu#%yOkAZ>VS8%db
zOlWaxQE`lKVophFjC*EDjB{qNZa`6fR%&)hOme1fv2Fo`qg$3*lvtFMnpsksmmY({
z$;>M#Er~BlEiTb3sJz7yAD@|*SrQ))3glu5P^dGq!664D2NM?~gsc)liX%OkHouiD
zAT#n3b5rBvZ*j%P=jNxB=788d@$rSFi8&CNA_0(>K;8iR1w!zH#26VE7(lof<NyxF
zA`qLbB*fti4eVr4K!Q91!XP%tWN`XXBA9+ash|j?ekCi;=vm2D#0zpc&gesU6YN8f
z*Fj0Y7!;!n@UX2CggF=ym_>phgAw|{EU+P>3=9mypgaI_90y|&h)-59aR$K>DOJL$
zNDSm+aS#D^ESLbh802jkkc-j0Ed+M}G5!XnNNJEMP=AB?$)Gd>id+x|#R4}20|PjM
zBN!MMN*G)iV*P3vYZz)6Qy3)~vYColN*E#R8paeRNsu@*m}CKytYDH2OtOPX4oQY)
zj#{P~CME_(hG2$57ErR#<n((9vhXFy_Lm^%yad_(5|n{of->++P+EHl%D|dTxA<~0
zi%a73)8Z40iV`b}!O2>a`4)RYX;OSje&#J!u=p+Jg3=^NW`GCWEq+7}jZZ7hOI8MX
zA5<hTFmf>RFq$zIsWLDypacTQ4e&q+VqjoMX8;9&3q!0+EfY9EtZJESm};1z0U}Vt
zxPY+)%CBJt2MTivC{UPFK!L)X!Yawo%({?~k)cqakfVk%m|-QGUy&pznx#MlC`yVz
zv0EeyDxsK*6d4#8Zm}g66r|>*fD@-C%PkIY7^LK9MzJJkmJ~xW6v#JdJ}v?|T?^z(
zP;tk=$O0;H7<m}=7{N01_GytC$cO3-3=EnqMVbr@3{fmascCqe&&j~RV1(8AAemb%
zDfyX(QEcGK#4rlEHZhFifYv64QLLaU#1O352uvE^Vt{HgLeXRd*JK3IWCT@ajH1jK
zuFM#s%=i{-N`7XQVH7*qB~^x1{74mBm7yMnfKe1D)Ol5gQEVXhRT)AIF@hOlgldQp
zx*<k-NQM|e4KadLv6-ocQJi46#Al`&RtX}x1|*<|MaU?M8|osEiYN|{n?Nj>fpC+J
z5hfd<n+$R!nq?qoBAILiH`yqP3+%$G_{>yebc2jBooK9w;zVP(LB<d#W*ETz3}Pb3
zKs-nQ?g$VE;=K$5LzrG8n6EMnjH1x=BH0U)h3PfA#Rh85WEe(qfISkQVHm}S9MTzv
zQCzSv%`l8&2M1|}Ayk_YT$>S^HX|f$Mlfxl7|zd(&oG8-Ge*;9jHJyNrVSc6DTu%U
zF;P4S5`YH|hy(Fp3M_C^4B&wSVxs9q3LKCuOfNKWQs9A;f)+R_NP&|A3!D^a;H1C<
zCj~8VQjh{C1r|6d(7;K72TlrF;G`f0P6{k=QjGmHCBfAPxL7R$Re<0M09-Z}fl8Pt
z&ZN}L;)2Z7976=t2*EUtVy~*q&M7T6gfWbwxHI$eQj6kKQ_@onkvS+b#!-AlnduoN
z@foQg%D@nfZxqFgEN_U)MUyp#$)=<hlz@^qR4;^U6vYEE3d}V`;i1YIgX<ckDg;q;
za@asxpLU=sy4Zk$fq_qmkAshcgPntegHwu8f>DA=hEWED8D*HnKzv3CMlmE70J7H5
AT>t<8

diff --git a/verarbeitung/__pycache__/json_demo.cpython-36.pyc b/verarbeitung/__pycache__/json_demo.cpython-36.pyc
deleted file mode 100644
index 04acef5f40630ee2c7b6e887e33dc740b5e16a74..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 865
zcmXr!<>gwdG%xWPGXuk81|-15z`)?Zz`#(fz`($e!jQt4!w?0cnQ|C&nWC5&8B&;2
zSXvmOm{S;o88lg6g0%W+GTvg%%qu7@Nd{>L32`wnFo3W#$fz3(3=Aa<%?!0nV3N6n
zv6-Qkr6Qt+!G$3<pq3TPXRBe&Vya<FVYFeWVa;N$VM}2Gvsh}_QkcOk)*7}H7BGvg
zhAo8^%wn%$OJTENsA0<Ds9|enWMn9m2xq7;sbO?sh}EfO2b;`M!=Az}$xy?Q!ePTu
z!=AzkW^>sv)G%jp)Np`x6@@d@Fx9Z6aDzl^SW<Xw7)m%(cvJYAnfirlIZL>*xNBHy
zIGdRm8NwM-7y=oB7$O)_7=jrz`TcIO<R#{&MzJN9mSp4?-D0UsO)R>_o|Ru(l$V$j
z#hj9#d5bl@D8ICzh>?MT;TBtQerZv1>PrZxB(W$xwd59SUVchy@h#Sz%)IR4D!#1Z
z{Ji**)QS>45bG9WxhBsomYmGul3Oe(naL%$SW7ZXa#C;cB<JUq6lErrmgE-|-x4S&
zP0GnkPAtjH&x=n<EJ-b51=+`*lAjr0T9i}72I8?L78IoBrQBl4FG$V1#R4{-C8adC
zK$GhhW7sW5*C-*7J@NTz@gOI~gRCn?h^3~ar$WWJK~f-fi8(p9SU`%SIPy}<!Lqkl
zKnkO{VElNaTkQFzC25&CsVf<ZWEdD2eg)`f<maa9C+1}4fpBSszH?@<Za`6fR%&*M
zesZR6v2Fo`qg$3*lvtFMnpsksm#&Y(0XaWDB{er+ub}c4Uw&yxL1{^RNq#&?9OU_8
zEl^@)WCKGkMm9z+B*@1I65(OwVdP`vVB}!pVJwnkU|`T>DG~*R6bCp($ERf#ff6-X
f3hZ(uLKdvfCO1E&G$+*#q^y{Qfq{X8k%tKYEMV(c

diff --git a/verarbeitung/__pycache__/json_demo.cpython-38.pyc b/verarbeitung/__pycache__/json_demo.cpython-38.pyc
deleted file mode 100644
index 4a1e7ba987775a20fddaa4a8f846bb238670d6a1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1131
zcmWIL<>g{vU|<kFup%*qje+4Yh=Yuo7#J8F7#J9e4Hy_0QW#Pga~PsPG*b>^E>jc}
zBSQ*v3QG$^6mtq|3R??96iW(w3P%e=6l)4&FoP!NOORQ9nvAztGxG{cOOhEud?;pN
zU|;}YXOQs;3=9k<49yI+j5Q1{46y;VOeKuX47JQPOj%4d%qfgE3^hzy%r(p@OkfsE
z4RZ=Jn8jMdoWcTTvDGlAu!33aHOwh&HVie43pi?+7cw$36mr#ooWt&SizP2HH#Lea
zv9u&3zbJ~OGBvU27JF8HX;EHcP84%We&#LK^rHOI0!_|aEIFCQCAU~oGLuVgv6f_(
z<fPu>NzTtJDauSLEy*t`z9mplnv|27oLG{XpBJB!Sdv-<^3E;xl>E&2(xRLqRt5%!
zTWpC11*v%{nk=^%!)^(IjEv7ui_gnXNsR}YTzrcK#E#;~ODzWrtYjz>U|?YQ<(6y}
z6Iz^FR2<`;n46gwlb%@;lboqrtXoi&pOu<jqFa_)lvtFMnpsksmmY({$tni9Cp9-;
zub}c4Pg;IaZej`8#$p~&P>X@WpOKA`gOQDq3kmWt76~yhFyM|O8`L<`LBvrCqa*_?
zZc>=RY*3sqE?`0le^$RDPy)EcR-9j2l$`n!!YN5CN>44(WG-T3U|=X>2N585f<nv{
z5n`z+>F^K(v7@+PAr@~04lxKJ2nutUpF!%1r9pn?L-I2ZBM25rg8T|f-XJLu23gO^
zz`y`bk3KNJGL<maFf=pPGM6ybFg7#RveYowFoDw}OAQk!HI^`gvOqIazfdh}3CjZ3
z8m1c7g-nbL;S8n>feb+m5ez8|!3>(Lez#abF<l(Rnv<EAU0lTnj;4~-iV{5#>lS0V
zCL6@}pjZGq?-ombL2BMD7O*@^N@;F^CR-6ND1bn57{v`rK%mr=n3Gck@?nuU0|P@8
zdwyw2T4qivBtSrksR$e@eEFp%1*IkNCHe6n165JOg@X|Uc^Hf285kHe*@|RAMsa|1
vZG2i*5h$R*$ph>#up%V$5teY+<mRW8=A_zzG!%0%Ffed1@^EtSb8rCwrKt$8

diff --git a/verarbeitung/__pycache__/json_demo.cpython-39.pyc b/verarbeitung/__pycache__/json_demo.cpython-39.pyc
deleted file mode 100644
index 4e31ce337645d5282ddab11668bc6d745735f9f8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1163
zcmYe~<>g{vU|{I}vm!Btje+4Yh=Yuo7#J8F7#J9e4Hy_0QW#Pga~PsPG*b>^E>jc}
zBSQ*v3QG$^6mtq|3R??96iW(w3P%e=6l)4&FoP!NOORQ9nvAztGxG{cOOhEud?;pN
zU|;}YXOQs;3=9k<49yI+j5Q1{46y;VOeKuX47JQPOj%4d%qfgE3^hzy%r(p@OkfsE
z4RZ=Jn8jMdoWcTTvDGlAu!33aHOwh&HVie43pi?+7cw$36mr#ooWt&SizP2HH#Lea
zv9u&3zvvcAWoly4E%vPZ(xSY?oG9j${LEXd=|%aa1)7|<SaLFpOK!2GWG0u~VlBxm
z$w|G%lboMdQk0ogT9RK>d`qC9G$|)DIk6-&KQBHdu_U#Km4Sib7JEv5W_)Q;P7xc3
z$Cg-7keZjG$#RP^?3NJ7$oTxU_`Lj-)Oe7|#kW{M>?n@B)N-)EN`@jq1_p*-LCIDz
zp~b01#WB8#IVGtv?wKVq&Y8iw0Y&*)so5nl$(g#vx&;u9ZdqzkVo_3RW=UyYdJGCD
zs~F_A)ZBc%g34PwY57IDi6vm$i+Mo7E(VGVMm9zcMm9z+B*?>9B+S6TfIGfyP~%Gn
z5nm~ck_@nTN?``GLGi=5fC(ioSpAAXiQyJoaeir0a_UP6rzEi`J+(xWxrm*CfuV>4
zMDQ{&Fn~hO6%l%=De3Ug1F@sHV4)Xp1P(n2Ap{D4n4dxFilsq*=0ox`4<iT`NrC(d
zO6njf5C%mZ$ad7U$yCBv!_drF%Ur@#!`RGN%TmK!!vs#7EHzA^lv%<I$_~v;{W7(z
zB`gbAYnW<S7cwz2gfpZturRPNG&3_Y<Ovuu6bBhFFoIzu10zEULokCTtKThFP)aDi
z#hR0umt9=N2adXu)QS>45bG9Wxh5MVL_jeEcJeKj{DRcHTP$FCmXy-m0!_9ekoStj
z85kI%xIqaFl-d$=a*FstVJQI;X3sAzNz2Shg#;2Pu@!+siZ8#kq@c7Uz9c^$WS}Z)
zSaC3dAP-}aA}BuCisV6o%K^^S@o8B_puhts8L-2^ijd4lSi)hGo1apelWGUjPz(xU
M4n`hM4t@?U0C*7*OaK4?

diff --git a/verarbeitung/__pycache__/unittest.cpython-36.pyc b/verarbeitung/__pycache__/unittest.cpython-36.pyc
deleted file mode 100644
index 245eb7f9be9221daa930d9fa83c77368ba463af7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 646
zcmXr!<>fNlw>VLok%8ec0}^0iU|?`yU|=Y=VqjoMVMt-jVTc0JOgW6XOi@gX4DJjm
z%qc7_3@I$B3|Y+0%uy_<tSPM7Ohsm?3|VZ=42%pZjKK_=Y%f8E`e`!W;wdP~Pfjf^
zj?YcZ%u5D|!Y~ueE)fO>hE#?q#uSDqrWD2$rWS@M<`m{&22GY*d;t*MnR)3Usl_G9
zj8M%WnvH>h!5QRM0|o|$8ip)}62=t9bjB2>6s8pBW|kDj6qa<5c_5M{g)yBeohgl}
znTe4hg&~+hlhyAQYf64*mElW}Ss@UPktWkE?!@Ba)S?pC!qUW?B9I$38E>%^r{<)s
zWGLcfU|{&=ub+{ho2s9flbHv?r4{<lnZddNMfq8&*(LhPnYzWg1rUyIS!z*YQBrDV
zNoiiXJ_@HaFSDd1wYWsDpz;<shynE|E6772TNxOuq@ZF@&+8#6^V4Lx#StH$mzbLx
zAAgH0K0Y@;r8Eb`=82C7xf~)>#Ld6}aW&ZK5P}ON#>~LL0E+BlkX;;%MIb)NL{Kcn
z$7{0R;()pE78k-9;PAM`0g4Le#Nt%2t|A@=28LTKAdL|7L4gEefo!_PVFPiS9VncO
QIT#oiI2d`DgjhHj0Y5^X$^ZZW

diff --git a/verarbeitung/input_test.py b/verarbeitung/input_test.py
deleted file mode 100644
index 44361c4..0000000
--- a/verarbeitung/input_test.py
+++ /dev/null
@@ -1,82 +0,0 @@
-class Publication:
-    def __init__(self, doi_url, title, contributors, journal, publication_date, references, citations, group):
-        self.doi_url = doi_url
-        self.title = title
-        self.contributors = contributors
-        self.journal = journal
-        self.publication_date = publication_date
-        if references is None:
-            self.references = []
-        else:
-            self.references = ref(references)
-        if citations is None:
-            self.citations = []
-        else: 
-            self.citations = cit(citations)
-        self.group = group
-
-
-class Citation:
-    def __init__(self,doi_url, title, contributors, journal, publication_date):
-        self.doi_url = doi_url
-        self.title = title
-        self.contributors = contributors
-        self.journal = journal
-        self.publication_date = publication_date
-
-class Reference:
-    def __init__(self,doi_url, title, contributors, journal, publication_date):
-        self.doi_url = doi_url
-        self.title = title
-        self.contributors = contributors
-        self.journal = journal
-        self.publication_date = publication_date
-
-def input_test_func(pub_doi):
-    for array in list_of_arrays:
-        if pub_doi == array[0]:
-            pub = Publication(array[0], array[1], array[2], array[3], array[4], array[5], array[6], array[7])
-            return pub
-
-
-def cit(list_doi):
-    cits = []
-    for doi_url in list_doi:
-        for array in list_of_arrays:
-            if doi_url == array[0]:
-                cits.append(Citation(array[0], array[1], array[2], array[3], array[4]))
-    return cits
-
-def ref(list_doi):
-    refs = []
-    for doi_url in list_doi:
-        for array in list_of_arrays:
-            if doi_url == array[0]:
-                refs.append(Citation(array[0], array[1], array[2], array[3], array[4]))
-    return refs
-
-
-beispiel1 = ['doi1', 'title1', ['contributor1'], 'journal1', 'date1', ['doi2'], ['doi3'], '']
-beispiel2 = ['doi2', 'title2', ['contributor2'], 'journal2', 'date2', [], ['doi1'], '']
-beispiel3 = ['doi3', 'title3', ['contributor3'], 'journal3', 'date3', ['doi1'], [], '']
-
-zyklus1 = ['doiz1', 'titlez1', ['contributorz1.1', 'contributorz1.2'], 'journalz1', 'datez1', ['doiz2'], ['doiz2'], '']
-zyklus2 = ['doiz2', 'titlez2', ['contributorz2.1', 'contributorz2.2'], 'journalz2', 'datez2', ['doiz1'], ['doiz1'], '']
-
-inner_edge1 = ['doi_ie1', 'title_ie1', ['contributor_ie1.1', 'contributor_ie1.2'], 'journal_ie1', 'date_ie1', ['doi_ie2'], ['doi_ie3'], '']
-inner_edge2 = ['doi_ie2', 'title_ie2', ['contributor_ie2.1', 'contributor_ie2.2'], 'journal_ie2', 'date_ie2', [], ['doi_ie1','doi_ie3'], '']
-inner_edge3 = ['doi_ie3', 'titlez_ie3', ['contributor_ie3.1', 'contributor_ie3.2'], 'journal_ie3', 'date_ie3', ['doi_ie1','doi_ie2'], [], '']
-
-right_height01 = ['doi_h01', 'title_h01', ['contributor_h01'], 'journal_h01', 'date_h01', [], [], '']
-right_height02 = ['doi_h02', 'title_h02', ['contributor_h02'], 'journal_h02', 'date_h02', [], ['doi_h1'], '']
-right_height1 = ['doi_h1', 'title_h1', ['contributor_h1'], 'journal_h1', 'date_h1', [], ['doi_h2'], '']
-right_height2 = ['doi_h2', 'title_h2', ['contributor_h2'], 'journal_h2', 'date_h2', [], ['doi_h3'], '']
-right_height3 = ['doi_h3', 'title_h3', ['contributor_h3'], 'journal_h3', 'date_h3', [], [], '']
-
-right_depth01 = ['doi_d01', 'title_d01', ['contributor_d01'], 'journal_d01', 'date_d01', [], [], '']
-right_depth02 = ['doi_d02', 'title_d02', ['contributor_d02'], 'journal_d02', 'date_d02', ['doi_d1'], [], '']
-right_depth1 = ['doi_d1', 'title_d1', ['contributor_d1'], 'journal_d1', 'date_d1', ['doi_d2'], [], '']
-right_depth2 = ['doi_d2', 'title_d2', ['contributor_d2'], 'journal_d2', 'date_d2', ['doi_d3'], [], '']
-right_depth3 = ['doi_d3', 'title_d3', ['contributor_d3'], 'journal_d3', 'date_d3', [], [], '']
-
-list_of_arrays = [beispiel1, beispiel2, beispiel3, zyklus1, zyklus2, inner_edge1, inner_edge2, inner_edge3, right_height01, right_height02, right_height1, right_height2, right_height3, right_depth01, right_depth02, right_depth1, right_depth2, right_depth3]
diff --git a/verarbeitung/json_demo.py b/verarbeitung/json_demo.py
deleted file mode 100644
index b9f618d..0000000
--- a/verarbeitung/json_demo.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python3
-import json
-from input_fj import input
-
-"""
-Functions that format the computed graph to match the interface to the output-part
-
-"""
-
-# creates a list that contains a dictionary for each node
-# the dictionaries store the values for the attributes
-def format_nodes(V):
-    list_of_node_dicts = list()
-    for node in V:
-        new_dict = dict()
-        new_dict["name"] = node.title
-        new_dict["author"] = node.contributors
-        new_dict["year"] = node.publication_date
-        new_dict["journal"] = node.journal
-        new_dict["doi"] = node.doi_url
-        new_dict["group"] = node.group
-        list_of_node_dicts.append(new_dict)
-    return list_of_node_dicts
-    
-# creates a list that contains a disctionary for each edge
-# the dictionaries contain the source as keys and the target as values   
-def format_edges(E):
-    list_of_edge_dicts = list()
-    for edge in E:
-        new_dict_2 = dict()
-        new_dict_2["source"] = edge[0]
-        new_dict_2["target"] = edge[1]
-        list_of_edge_dicts.append(new_dict_2)
-    return list_of_edge_dicts
-   
-# combine the lists of nodes and edges to a dictionary and saves it to a json file
-def output_to_json(V,E):
-    dict_of_all = dict()
-    list_of_node_dicts = format_nodes(V)
-    list_of_edge_dicts = format_edges(E)
-    dict_of_all["nodes"] = list_of_node_dicts
-    dict_of_all["links"] = list_of_edge_dicts
-    with open('json_text.json','w') as outfile:
-        json.dump(dict_of_all, outfile)
-  
-#knoten = ["doi1", "doi2", "doi3"]
-#kanten = [[1,2],[3,4],[5,6]]
-#output_to_json(knoten,kanten)
-
diff --git "a/verarbeitung/n\303\266tige Tests.txt" "b/verarbeitung/n\303\266tige Tests.txt"
deleted file mode 100644
index 9556328..0000000
--- "a/verarbeitung/n\303\266tige Tests.txt"	
+++ /dev/null
@@ -1,4 +0,0 @@
-Zyklus
-großer Zyklus
-Innere Kanten vervollständigen
-
-- 
GitLab