testfile.txt 4.45 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Dbxref Quellcode, evtl. als Vorlage nutzbar: https://git.computational.bio.uni-giessen.de/SOaAS/dbxref/tree/master/dbxref

Beschreibung:

Das Protein Sequence Observation Tool integriert diverse bioinformatische Tools zur Anreicherung von Informationen zu Proteinen und normalisiert diese in das JSON Format, sodass die Informationen einfach von weiteren Programmen weiterverarbeitet werden können. In dieser Arbeit soll der ein Hilfsprogramm geschrieben werden, dass von PSOT benötigte Datenbanken vorbereitet und zur Verfügung stellt. Für einzelne Datenbanken gibt es bereits Skripte zur Installation und Aufbereitung. Diese Skripte sollen in einer Anwendung systematisch zusammen geführt und über eine einfach zu nutzende Kommandozeilenschnittstelle nutzbar gemacht werden. Vorraussetzung sind der Umgang mit der Linux Kommandozeile und solide Kenntnisse in Python 3.

Stories:

Verschiedene Rollen:
    PSOT Entwickler
    PSOT Nutzer
   
    . Der PSOT Entwickler benötigt eine neue Datenbank für sein verteiltes Programm. Er schreibt einmalig ein Script das die Datenbank bezieht (herunterlädt) und eins um die Datenbank für seine Anwendung vorzubereiten. Diese Skripte werden im db Tool hinterlegt und stehen damit allen unter einem definierten Namen (z.B. der Datenbankname und für welches Programm es aufbereitet wurde) zur Verfügung.
    . Der PSOT Entwickler hat seine Datenbank vorbereitet und möchte sie jetzt in seiner verteilten Anwendung allen Knoten zur Verfügung stellen. Dazu konfiguriert er das db Tool mit seinem S3 Cloud Speicher und beauftragt es damit die grade erstellte Datenbank dorthin hochzuladen. Die Daten werden komprimiert im Cloud Speicher abgelegt. Auf den Knoten beauftragt er das db Tool die Daten herunterzuladen und an die gewünschte Stelle zu entpacken.
    . Der PSOT Nutzer möchte wissen welche Datenbanken in dem öffentlichen Repository liegen. Dazu ruft er das db tool auf und es listet alle verfügbaren Datenbanken auf.
    . Das db Tool prüft ob eine bestimmte Datenbank verfügbar ist, damit es diese nicht erneut herunterladen muss.
    . Der Nutzer möchte wissen an welcher Stelle im System eine Datenbank für ein bestimmtes Tool abgelegt ist. Er ruft das db tool mit der Datenbank und dem Tool auf und erhält den Pfad zurück.
   
Beispielaufrufe:
    dbman prepare "UniprotKB/swiss-prot" "ghostx"
    dbman upload "UniprotKB/swiss-prot" "ghostx"
    dbman download "UniprotKB/swiss-prot" "ghostx"
    dbman location "UniprotKB/swiss-prot" "ghostx"
    dbman list database recipes
    dbman list local databases
    dbman list remote databases

Beispieldatenbanken:
    swissprot
    trembl
    eggnog
    pfam
    card


Evtl. kann auch biomaj für das Problem genutzt werden: https://biomaj.genouest.org/

Rudel Fankep's avatar
Rudel Fankep committed
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
Beispielaufrufe: 

	# Vorher: In dem Datenbankverzeichnis liegt keine swiss-prot Datenbank fuer ghostx
	dbman prepare "UniprotKB/swiss-prot" "ghostx"
	-> Ergebnis: In dem Datenbankvorbereitungsverzeichnis liegt die ghostx Datenbank. die datenbank kann benutzt werden
	
	# Vorher  In dem Datenbankverzeichnis liegt die swiss-prot Datenbank fuer ghostx
	dbman upload "UniprotKB/swiss-prot" "ghostx"
	-> Ergebnis: Im S3 liegt die komprimierte swiss-prot Datenbank für ghostx
	
	# Vorher: Im S3 liegt die komprimierte swiss-prot Datenbank für ghostx
	dbman download "UniprotKB/swiss-prot" "ghostx"
	-> Ergebnis: In dem Datenbankvorbereitungsverzeichnis liegt die ghostx Datenbank. datenbank nutzbar
	
	# Vorher:  In dem Datenbankvorbereitungsverzeichnis liegt die ghostx Datenbank
	dbman location "UniprotKB/swiss-prot" "ghostx"
	-> Ergebnis: Pfad der swiss-prot Datenbank fuer ghostx
	
	# Vorher: Egal
	dbman list database recipes
	-> Ergebnis: 
		swiss-prot[ghostx]
		swiss-prot[blastp]
		pfam[hmmer]
	
	# Vorher: Datenbank sind lokal vorhanden
	dbman list local databases
	->Ergebnis:
		swiss-prot[ghostx] version: x.y.z erstellt am: <datum>
		swiss-prot[blastp] version: x.y.z erstellt am: <datum>
	
	dbman list remote databases
	->Ergebnis:
		swiss-prot[ghostx] version: x.y.z erstellt am: <datum>
		swiss-prot[blastp] version: x.y.z erstellt am: <datum>
                pfam[hmmer] version: x.y.z erstellt am: <datum>


Rudel Fankep's avatar
Rudel Fankep committed
76
77
78
79
Database repository---> https://github.com/MGX-metagenomics/databases/blob/master/card.build 

anzeigen lassen---> echo $VARIABLE
löschen---> unset VARIABLE
Rudel Fankep's avatar
Rudel Fankep committed
80
81
setzen---> export VARIABLE = pfad

Rudel Fankep's avatar
Rudel Fankep committed
82
83
84
85
86
https://setuptools.readthedocs.io/en/latest/pkg_resources.html#basic-resource-access

-->ResourceManager API¶

https://docs.python.org/3.7/library/tempfile.html