Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

database curation and updating #1

Open
rvosa opened this issue Sep 26, 2019 · 0 comments
Open

database curation and updating #1

rvosa opened this issue Sep 26, 2019 · 0 comments

Comments

@rvosa
Copy link
Member

rvosa commented Sep 26, 2019

On Mon, 3 Jun 2019 at 14:04, Marten Hoogeveen [email protected] wrote:
Ik heb nogmaals naar het bestandje gekeken, ik wist niet goed hoe ik het moest aflezen en Arjen heeft me net wat bijgepraat hoe het werkt.

Het aanmaken en downloaden van de meeste databases is er al, hier moet ik nog wel even met Dick doorheen lopen. Het downloaden van de BOLD database is op dit moment niet volledig te automatiseren omdat de api niet goed werkt dus dat zou niet handig zijn als galaxy tool. Iets wat nog niet bestaat is de curatie van databases, dit is af en toe wel eens gedaan maar altijd voor specifieke verzoeken van Kevin (bijvoorbeeld: https://github.com/naturalis/waterscan_reference_filtered)

Weet niet of het mijn rol is om hier een mening over te geven maar ik zou het niet handig vinden om gebruikers de mogelijkheid te geven om alle databases zelf aan te kunnen maken en te updaten. De pipeline die de genbank subselecties maakt heeft een output van rond de 350GB. Dit is inclusief genbank zelf, die kan uiteraard verwijderd worden maar die ruimte moet wel minimaal beschikbaar zijn. En wat als meerdere gebruikers tegelijk een update uitvoeren.

Mijn voorstel zou zijn:
De "basic" referenties houden zoals het nu is, updaten wordt achter de schermen gedaan door een admin via de commandline. Daarnaast kan er een galaxy tool gemaakt worden die op basis van die al bestaande databases of fasta bestanden kan filteren, cureren etc. Stapsgewijs zie ik het zo voor me:

  1. Gebruiker klikt op de tool in galaxy
  2. Je kan een bestaande database selecteren (BOLD, Genbank, Genbank CO1 etc) of een fasta bestand van de history
  3. Op basis van de bovenstaande keuze krijg je de mogelijke opties zoals subselectie maken, filteren, derepliceren etc. (mogelijkheden zijn eindeloos)

Nog wat info voor Rutger om te laten zien waar die specifieke code kan vinden en mogelijk kan gebruiken of als inspiratie voor deze nieuwe tool:
Het maken van een sub-selectie uit genbank op basis van header:

for record in SeqIO.parse(handle, "fasta"):
if "co1" in str(record.description.lower()) or "coi" in str(record.description.lower()) or "cox" in str(record.description.lower()) or "cytochrome c oxidase" in str(record.description.lower()) or "cytochrome oxidase" in str(record.description.lower()):

Het derepliceren van sequenties:

shell("vsearch --derep_fulllength {output.fasta} --output {output.fasta_nodups}")

Een subselectie maken vanuit bold op basis van een specifiek taxon:
Kan met grep

Een subselectie maken van genbank op basis van een specifiek taxon (let op, bekijk de nieuwste blast versie ook er zijn nieuwe features betreft dit onderwerp):

rule bacterial_genome:
input:
nt = rules.download_nt_fasta.output.nt,
accession2taxid = rules.download_nt_fasta.output.nucl_gb,
output:
fasta = protected("output/bacterial_genome_selection/bacterial_genome_selection.fa"),
bacterial_accessions = protected("output/bacterial_genome_selection/bacterial_accessions"),
bacterial_accessionsmap = protected("output/bacterial_genome_selection/bacterial_accessions.map"),
new_taxdump = "output/NT/new_taxdump.zip"
run:
shell("wget -P output/NT ftp://ftp.ncbi.nih.gov/pub/taxonomy/new_taxdump/new_taxdump.zip")
shell("unzip -j {output.new_taxdump} \"taxidlineage.dmp\" -d output/NT/")
shell("python get_accession_of_taxonid.py -t output/NT/taxidlineage.dmp -i 2 -a output/NT/nucl_gb.accession2taxid -o {output.bacterial_accessions}")
shell("python bacterial_genome_selection.py -db output/NT/nt -a {output.bacterial_accessions} -o {output.fasta}")
shell("python create_mapping_file.py -f {output.fasta} -m {output.bacterial_accessions} -o {output.bacterial_accessionsmap}")

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant