snakemake

Software screenshot:
snakemake
Software informatie:
Versie: 2.5
Upload datum: 20 Feb 15
Ontwikkelaar: Johannes Koster
Licentie: Gratis
Populariteit: 64

Rating: 4.0/5 (Total Votes: 2)

bouwsystemen als make worden vaak gebruikt om ingewikkelde werkstromen, bijv creëren in de bioinformatica & nbsp;. snakemake gericht op de complexiteit van het creëren van workflows te verminderen door middel van een schone en moderne domeinspecifieke specificatie taal (DSL) in python stijl, samen met een snelle en comfortabele uitvoering milieu.
installatie
- Op Ubuntu 12.04, kunt u het Debian-pakket python3-snakemake beschikbaar in onze Launchpad repository installeren.
- Op andere systemen, je een werkende installatie van Python> = 3.2 nodig. Afhankelijk van uw systeem, kunt u vervolgens installeren snakemake door de uitgifte van een van beide easy_install snakemake of easy_install3 snakemake in de opdrachtregel. Als u niet de beheerder privileges hebben, eens een kijkje op het argument --user van easy_install.
- Tot slot, snakemake kan handmatig worden geïnstalleerd door het downloaden van de broncode archief uit pypi.
Gebruik
Snakemake biedt een eenvoudige DSL om workflows die bestanden in verschillende opeenvolgende stappen te creëren beschrijven:
samples = ["01", "02"]
# Eventueel een directory waar het werk moet worden gedaan definiëren.
workdir: "pad / naar / workdir"
# Vergelijkbaar te maken, definiëren dummy regels die als build targets.
regeren alle:
& Nbsp; ingang: "diffexpr.tsv", ...
regel samenvatten:
& Nbsp; ingang: "{sample} .mapped.bam" .format (sample = s) voor s in monsters
& Nbsp; uitgang: "diffexpr.tsv"
& Nbsp; uit te voeren:
& Nbsp; # ... bieden enige python code om de output van de input-bestanden te produceren
& Nbsp; # bijv. toegang input-bestanden per index
& Nbsp; input [1]
& Nbsp; # toegang wildcard waarden
& Nbsp; wildcards.sample
& Nbsp; # gemakkelijk shell commando's automatisch met uw standaard shell terwijl het hebben van directe toegang draaien
& Nbsp; # om alle lokale en globale variabelen via het formaat minilanguage
& Nbsp; draden = 6
& Nbsp; shell ("eencommando --threads {discussies} {input [0]} {uitgang [0]}")
heersen map_reads:
& Nbsp; # toewijzen namen voor input en output-bestanden
& Nbsp; ingang: leest = "{voorbeeld} .fastq", hg19 = "hg19.fasta"
& Nbsp; # merk output bestanden te schrijven beveiligd na de schepping
& Nbsp; output: mapped = beschermd ("{voorbeeld} .mapped.sai")
& Nbsp; # Eventueel berichten die worden weergegeven in plaats van generieke beschrijving van de regel op de uitvoering van de regel te definiëren:
& Nbsp; bericht: "Mapping leest om {input.hg19}"
& Nbsp; onderwerpen: 8
& Nbsp; shell:
& Nbsp; # bieden rechtstreeks shell commando's (in een multi of enkele lijn string) als python syntax niet nodig is.
& Nbsp; # weer, globale en lokale variabelen kan worden geraadpleegd via het formaat minilanguage.
& Nbsp; # Verder aantal draden die worden gebruikt door de regel kan worden gespecificeerd. De snakemake planner zorgt ervoor dat de regel wordt uitgevoerd met het opgegeven aantal threads als er genoeg kernen via de -j command line optie ter beschikking worden gesteld.
& Nbsp; "" "
& Nbsp; bwa ALN -t {discussies} {input.hg19} {input.reads}> {output.mapped}
& Nbsp; sommige --ander --command
& Nbsp; "" "
Gegeven een "Snakefile" met zo'n syntax, kan de workflow worden uitgevoerd (bijvoorbeeld met behulp van maximaal 6 parallelle processen) door issueing:
& Nbsp; snakemake -j6 -s Snakefile
Voor meer details zie de handleiding

Kenmerken .

  • Definieer workflows in een tekstuele manier door het schrijven van regels hoe je de uitgang te creëren bestanden van input-bestanden op een eenvoudige python gebaseerde syntax. In tegenstelling tot GNU maken (dat is in de eerste plaats een bouwsysteem), snakemake laat een regel om meerdere output-bestanden te maken.
  • Snakemake berekent automatisch welke regels moeten worden uitgevoerd om de gewenste output te creëren.
  • Beide shell gebaseerde regels, alsook een volledige python syntaxis in een regel wordt ondersteund. Shell commando's hebben directe toegang tot alle lokale en globale python variabelen.
  • Net als GNU te maken, kan snakemake parallelle regel executies waar mogelijk te plannen. Verder kunnen onder regel parallellisatie worden gecombineerd met intra regel parallellisatie (bijv draden) en snakemake zorgt ervoor dat het aantal gebruikte cores niet hoger is dan de opgegeven waarde.
  • Bestanden kunnen worden gemarkeerd als tijdelijke (dwz ze kunnen worden een keer niet meer nodig verwijderd) of beschermd (dwz ze zullen worden beveiligd tegen schrijven na de schepping).
  • Input en output-bestanden kunnen meerdere benoemde wildcards bevatten.
  • Input en output bestanden kunnen worden benoemd, zodat het aanpakken van hen in de regel wordt pas.
  • Een kaart-verminderen achtige functionaliteit wordt bereikt door het gebruik van de gemakkelijk te python lijstcomprehensie syntax lezen.
  • Als een experimentele functie, snakemake kan draaien op een cluster door het specificeren van de opdracht in te dienen (bijv qMin voor Sun Grid Engine).

Eisen

  • Python

Vergelijkbare software

PathVisio
PathVisio

18 Feb 15

seriesoftubes
seriesoftubes

20 Feb 15

mpiBLAST
mpiBLAST

3 Jun 15

Andere software van ontwikkelaar Johannes Koster

TRMiner
TRMiner

14 Apr 15

Reacties op snakemake

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!