Package: helen
H.E.L.E.N.H.E.L.E.N. (Homopolymer Encoded Long-read Error-corrector for Nanopore)Pre-print of a paper describing the methods and overview of a suggestedde novo assemblypipeline is now available:Efficient de novo assembly of eleven human genomes using PromethION sequencing and a novel nanopore toolkitOverviewHELENuses a Recurrent-Neural-Network (RNN) based Multi-Task Learning (MTL) model that can predict a base and a run-length for each genomic position using the weights generated byMarginPolish.© 2020 Kishwar Shafin, Trevor Pesout, Benedict Paten.Computational Genomics Lab (CGL), University of California, Santa Cruz.Why MarginPolish-HELEN ?MarginPolish-HELENoutperforms other graph-based and Neural-Network based polishing pipelines.Simple installation steps.HELENcan use multiple GPUs at the same time.Highly optimized pipeline that is faster than any other available polishing tool.We havesequenced-assembled-polished 11 samplesto ensure robustness, runtime-consistency and cost-efficiency.We tested GPU usage onAmazon Web Services (AWS)andGoogle Cloud Platform (GCP)to ensure scalability.Open source(MIT License).WalkthroughDocker based installation walkthrough.Local installation walkthrough.InstallationMarginPolish-HELENis supported onUbuntu 16.10/18.04or any other Linux-based system.
ÂInstall prerequisitesBefore you follow any of the methods, make sure you install all the dependencies:sudoapt-get-yinstallgitcmakemakegccg++autoconfbzip2lzma-devzlib1g-dev\libcurl4-openssl-devlibpthread-stubs0-devlibbz2-devliblzma-devlibhdf5-dev\python3-pippython3-virtualenvvirtualenvMethod 1: Install MarginPolish-HELEN from GitHubYou can install from theGitHubrepository:gitclonehttps://github.com/kishwarshafin/helen.gitcdhelen
makeinstall
../venv/bin/activate

helen--help
marginpolish--helpEach time you want to use it, activate the virtualenv:.<path/to/helen/venv/bin/activate>Method 2: Install using PyPiInstall  prerequisites and the installMarginPolish-HELENusing pip:python3-mpipinstallhelen--user

python3-mhelen.helen--help
python3-mhelen.marginpolish--helpUpdate the installed version:python3-mpipinstallupdatepip
python3-mpipinstallhelen--upgradeYou can also add module locations to path:echo'export PATH="$(python3 -m site --user-base)/bin":$PATH'>>~/.bashrcsource~/.bashrc

marginpolish--help
helen--helpMethod 3: Use docker imageCPU based docker:# SEE CONFIGURATIONdockerrun--rm-it--ipc=hostkishwars/helen:latesthelen--help
dockerrun--rm-it--ipc=hostkishwars/helen:latestmarginpolish--help

dockerrun-it--ipc=host--user=`id-u`:`id-g`--cpus="16"\-v</directory/with/inputs_outputs>:/datakishwars/helen:latest\helen--helpGPU based docker:sudoapt-getinstall-ynvidia-docker2# SEE CONFIGURATIONnvidia-dockerrun-it--ipc=hostkishwars/helen:latesthelentorch_stat
nvidia-dockerrun-it--ipc=hostkishwars/helen:latesthelen--help
nvidia-dockerrun-it--ipc=hostkishwars/helen:latestmarginpolish--help# RUN HELENnvidia-dockerrun-it--ipc=host--user=`id-u`:`id-g`--cpus="16"\-v</directory/with/inputs_outputs>:/datakishwars/helen:latest\helen--helpUsageMarginPolishrequires a draft assembly and a mapping of reads to the draft assembly. We commend usingShastaas the initial assembler andMiniMap2for the mapping.Step 1: Generate an initial assemblyGenerate an assembly using one of the ONT assemblers:Shasta long read assembler.Flye assemblerCanu assemblerWTDBG2 assemblerStep 2: Create an alignment between reads and shasta assemblyWe recommend usingMiniMap2to generate the mapping between the reads and the assembly. You don't have to follow these exact commands.minimap2-axmap-ont-t32shasta_assembly.fareads.fq|samtoolsview-hb-q60-F0x904>unsorted.bam;samtoolssort-@32unsorted.bam|samtoolsview>reads_2_assembly.0x904q60.bam
samtoolsindex-@32reads_2_assembly.0x904q60.bamStep 3: Generate images using MarginPolishDownload Modelhelendownload_models\--output_dir<path/to/mp_helen_models/>Run MarginPolishYou can generate images using MarginPolish by running:marginpolishreads_2_assembly.bam\Assembly.fa\</path/to/model_name.json>\-t<number_of_threads>\-o<path/to/marginpolish_images>\-fYou can find the models by downloading them.Step 4: Run HELENNext, runHELENto polish using a RNN.helenpolish\--image_dir</path/to/marginpolish_images/>\--model_path</path/to/model.pkl>\--batch_size256\--num_workers4\--threads<num_of_threads>\--output_dir</path/to/output_dir>\--output_prefix<output_filename.fa>\--gpu_modeIf you are usingCPUsthen remove the--gpu_modeargument.HelpPlease open a github issue if you face any difficulties.AcknowledgementWe are thankful toSegey KorenandKaren Migafor their help withCHM13data and evaluation.We downloaded our data fromTelomere-to-telomere consortiumto evaluate our pipeline againstCHM13.We acknowledge the work of the developers of these packages:Shastapytorchssw libraryhdf5 python (h5py)pybindhyperbandFun FactThe name "HELEN" is inspired from the A.I. created by Tony Stark in the  Marvel Comics (Earth-616). HELEN was created to control the city Tony was building named "Troy" making the A.I. "HELEN of Troy".READ MORE:HELEN© 2020 Kishwar Shafin, Trevor Pesout, Benedict Paten.