Skip to main content

Backend

Backend (API)

Backend jest zbudowany w Node.js z użyciem Express, Mongoose i MongoDB.

Schemat danych Promotora

PoleTypOpis
sequenceStringSekwencja DNA promotora
geneNameStringNazwa genu
organismNameStringNazwa organizmu
organismTypeString (enum)Typ organizmu: Eukaryota lub Prokaryota
sequenceLengthNumberDługość sekwencji (obliczana automatycznie)
gcContentNumberZawartość GC w sekwencji w % (obliczana automatycznie)
geneFunctionStringFunkcja genu
ncbiAccessionStringIdentyfikator NCBI
chromosomeStringChromosom
dataTypeString (enum)Typ danych: Experimental lub Predicted
publicationAuthors[String]Lista autorów publikacji
geneLocationObjectObliczana automatycznie na podstawie dlugosci promotora i miejscu startu
createdAt / updatedAtDateTimestampy (automatycznie)

Endpointy API

Pobranie filtrów

GET /promotors - wyrzuca wyniki z bazy

  • ?page - paginacja
  • ?limit - limit wyników na stronę; defaultowo - 10
  • ?[filtr]=[tekst] - przykładowo: dataType, organismType, geneFunction
  • ?q=[tekst] - wyszukiwanie frazą

GET /promotors/filters - pobiera opcje filtrowania

POST /promotors - pozwala dodać rekord do bazy Przykładowe body:

{
"sequence": "ATGCGTACGTTAGC",
"geneName": "lacZ",
"organismName": "Escherichia coli",
"organismType": "Prokaryota",
"geneFunction": "Beta-galaktozydaza",
"ncbiAccession": "NC_000913.3",
"chromosome": "1",
"dataType": "Experimental",
"publicationAuthors": ["Author1"],
"geneLocation": "1"
}

POST /promotors/bulk - dodawanie w bulku Przykładowe body:

[
{
"sequence": "ATGCGTACGTTAGC",
"geneName": "lacZ",
"organismName": "Escherichia coli",
"organismType": "Prokaryota",
"geneFunction": "Beta-galaktozydaza",
"ncbiAccession": "NC_000913.3",
"chromosome": "1",
"dataType": "Experimental",
"publicationAuthors": ["Author1"],
"geneLocation": "1"
},
{
"sequence": "ATTTTTT",
"geneName": "lacI",
"organismName": "Escherichia coli",
"organismType": "Prokaryota",
"geneFunction": "Beta-galaktozydaza",
"ncbiAccession": "NC_000913.3",
"chromosome": "1",
"dataType": "Experimental",
"publicationAuthors": ["Author1"],
"geneLocation": "1"
}
]