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

hifiasm: add linux-aarch64 build #47516

Merged
merged 2 commits into from
May 1, 2024
Merged

Conversation

martin-g
Copy link
Contributor

Describe your pull request here


Please read the guidelines for Bioconda recipes before opening a pull request (PR).

General instructions

  • If this PR adds or updates a recipe, use "Add" or "Update" appropriately as the first word in its title.
  • New recipes not directly relevant to the biological sciences need to be submitted to the conda-forge channel instead of Bioconda.
  • PRs require reviews prior to being merged. Once your PR is passing tests and ready to be merged, please issue the @BiocondaBot please add label command.
  • Please post questions on Gitter or ping @bioconda/core in a comment.

Instructions for avoiding API, ABI, and CLI breakage issues

Conda is able to record and lock (a.k.a. pin) dependency versions used at build time of other recipes.
This way, one can avoid that expectations of a downstream recipe with regards to API, ABI, or CLI are violated by later changes in the recipe.
If not already present in the meta.yaml, make sure to specify run_exports (see here for the rationale and comprehensive explanation).
Add a run_exports section like this:

build:
  run_exports:
    - ...

with ... being one of:

Case run_exports statement
semantic versioning {{ pin_subpackage("myrecipe", max_pin="x") }}
semantic versioning (0.x.x) {{ pin_subpackage("myrecipe", max_pin="x.x") }}
known breakage in minor versions {{ pin_subpackage("myrecipe", max_pin="x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
known breakage in patch versions {{ pin_subpackage("myrecipe", max_pin="x.x.x") }} (in such a case, please add a note that shortly mentions your evidence for that)
calendar versioning {{ pin_subpackage("myrecipe", max_pin=None) }}

while replacing "myrecipe" with either name if a name|lower variable is defined in your recipe or with the lowercase name of the package in quotes.

Bot commands for PR management

Please use the following BiocondaBot commands:

Everyone has access to the following BiocondaBot commands, which can be given in a comment:

@BiocondaBot please update Merge the master branch into a PR.
@BiocondaBot please add label Add the please review & merge label.
@BiocondaBot please fetch artifacts Post links to CI-built packages/containers.
You can use this to test packages locally.

Note that the @BiocondaBot please merge command is now depreciated. Please just squash and merge instead.

Also, the bot watches for comments from non-members that include @bioconda/<team> and will automatically re-post them to notify the addressed <team>.

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
@martin-g
Copy link
Contributor Author

The Linux ARM64 build depends on:

@mencian mencian added the aarch64 Related to adding linux-aarch64 support label Apr 29, 2024
@martin-g
Copy link
Contributor Author

@BiocondaBot please fetch artifacts

@BiocondaBot
Copy link
Collaborator

Package(s) built are ready for inspection:

Arch Package Zip File / Repodata CI Instructions
linux-64 hifiasm-0.19.8-h43eeafb_1.tar.bz2 LinuxArtifacts.zip Azure
showYou may also use conda to install after downloading and extracting the zip file. From the LinuxArtifacts directory: conda install -c ./packages <package name>
osx-64 hifiasm-0.19.8-h94ec1f5_1.tar.bz2 OSXArtifacts.zip Azure
showYou may also use conda to install after downloading and extracting the zip file. From the OSXArtifacts directory: conda install -c ./packages <package name>
linux-aarch64 hifiasm-0.19.8-hf1d9491_1.tar.bz2 repodata.json CircleCI
showYou may also use conda to install:conda install -c https://output.circle-artifacts.com/output/job/e6177405-efd7-4b6a-b0a1-2b310f2c215d/artifacts/0/tmp/artifacts/packages <package name>

Docker image(s) built:

Package Tag CI Install with docker
hifiasm 0.19.8--h43eeafb_1 Azure
showImages for Azure are in the LinuxArtifacts zip file above.gzip -dc LinuxArtifacts/images/hifiasm:0.19.8--h43eeafb_1.tar.gz | docker load

@martin-g
Copy link
Contributor Author

mgrigorov in 🌐 euler-arm-22 in /tmp/hifiasm took 5s 
❯ tar xvf hifiasm-0.19.8-hf1d9491_1.tar.bz2 
info/files
info/run_exports.json
info/test/run_test.sh
info/hash_input.json
info/has_prefix
info/recipe/build.sh
info/index.json
info/paths.json
info/recipe/meta.yaml.template
info/recipe/meta.yaml
info/recipe/conda_build_config.yaml
info/about.json
info/git
info/recipe/linux-aarch64-support.patch
bin/hifiasm

mgrigorov in 🌐 euler-arm-22 in /tmp/hifiasm 
❯ file bin/*
bin/hifiasm: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, with debug_info, not stripped

mgrigorov in 🌐 euler-arm-22 in /tmp/hifiasm 
❯ ./bin/hifiasm 
Usage: hifiasm [options] <in_1.fq> <in_2.fq> <...>
Options:
  Input/Output:
    -o STR       prefix of output files [hifiasm.asm]
    -t INT       number of threads [1]
    -h           show help information
    --version    show version number
  Overlap/Error correction:
    -k INT       k-mer length (must be <64) [51]
    -w INT       minimizer window size [51]
    -f INT       number of bits for bloom filter; 0 to disable [37]
    -D FLOAT     drop k-mers occurring >FLOAT*coverage times [5.0]
    -N INT       consider up to max(-D*coverage,-N) overlaps for each oriented read [100]
    -r INT       round of correction [3]
    -z INT       length of adapters that should be removed [0]
    --max-kocc   INT
                 employ k-mers occurring <INT times to rescue repetitive overlaps [2000]
    --hg-size    INT(k, m or g)
                 estimated haploid genome size used for inferring read coverage [auto]
  Assembly:
    -a INT       round of assembly cleaning [4]
    -m INT       pop bubbles of <INT in size in contig graphs [10000000]
    -p INT       pop bubbles of <INT in size in unitig graphs [0]
    -n INT       remove tip unitigs composed of <=INT reads [3]
    -x FLOAT     max overlap drop ratio [0.8]
    -y FLOAT     min overlap drop ratio [0.2]
    -i           ignore saved read correction and overlaps
    -u           post-join step for contigs which may improve N50; 0 to disable; 1 to enable
                 [1] and [1] in default for the UL+HiFi assembly and the HiFi assembly, respectively
    --hom-cov    INT
                 homozygous read coverage [auto]
    --lowQ       INT
                 output contig regions with >=INT% inconsistency in BED format; 0 to disable [70]
    --b-cov      INT
                 break contigs at positions with <INT-fold coverage; work with '--m-rate'; 0 to disable [0]
    --h-cov      INT
                 break contigs at positions with >INT-fold coverage; work with '--m-rate'; -1 to disable [-1]
    --m-rate     FLOAT
                 break contigs at positions with <=FLOAT*coverage exact overlaps;
                 only work with '--b-cov' or '--h-cov'[0.75]
    --primary    output a primary assembly and an alternate assembly
  Trio-partition:
    -1 FILE      hap1/paternal k-mer dump generated by "yak count" []
    -2 FILE      hap2/maternal k-mer dump generated by "yak count" []
    -3 FILE      list of hap1/paternal read names []
    -4 FILE      list of hap2/maternal read names []
    -c INT       lower bound of the binned k-mer's frequency [2]
    -d INT       upper bound of the binned k-mer's frequency [5]
    --t-occ      INT
                 forcedly remove unitigs with >INT unexpected haplotype-specific reads;
                 ignore graph topology; [60]
    --trio-dual  utilize homology information to correct trio phasing errors
  Purge-dups:
    -l INT       purge level. 0: no purging; 1: light; 2/3: aggressive [0 for trio; 3 for unzip]
    -s FLOAT     similarity threshold for duplicate haplotigs in read-level [0.75 for -l1/-l2, 0.55 for -l3]
    -O INT       min number of overlapped reads for duplicate haplotigs [1]
    --purge-max  INT
                 coverage upper bound of Purge-dups [auto]
    --n-hap      INT
                 number of haplotypes [2]
  Hi-C-partition:
    --h1 FILEs   file names of Hi-C R1  [r1_1.fq,r1_2.fq,...]
    --h2 FILEs   file names of Hi-C R2  [r2_1.fq,r2_2.fq,...]
    --seed INT   RNG seed [11]
    --s-base     FLOAT
                 similarity threshold for homology detection in base-level;
                 -1 to disable [0.5]; -s for read-level (see <Purge-dups>)
    --n-weight   INT
                 rounds of reweighting Hi-C links [3]
    --n-perturb  INT
                 rounds of perturbation [10000]
    --f-perturb  FLOAT
                 fraction to flip for perturbation [0.1]
    --l-msjoin   INT
                 detect misjoined unitigs of >=INT in size; 0 to disable [500000]
  Ultra-Long-integration:
    --ul FILEs   file names of Ultra-Long reads [r1.fq,r2.fq,...]
    --ul-rate    FLOAT
                 error rate of Ultra-Long reads [0.2]
    --ul-tip     INT
                 remove tip unitigs composed of <=INT reads for the UL assembly [6]
    --path-max   FLOAT
                 max path drop ratio [0.6]; higher number may make the assembly cleaner
                 but may lead to more misassemblies
    --path-min   FLOAT
                 min path drop ratio [0.2]; higher number may make the assembly cleaner
                 but may lead to more misassemblies
    --ul-cut     INT
                 filter out <INT UL reads during the UL assembly [0]
  Dual-Scaffolding:
    --dual-scaf  output scaffolding
    --scaf-gap   INT
                 max gap size for scaffolding [3000000]
Example: ./hifiasm -o NA12878.asm -t 32 NA12878.fq.gz
See `https://hifiasm.readthedocs.io/en/latest/' or `man ./hifiasm.1' for complete documentation.

LGTM!

@martin-g
Copy link
Contributor Author

@BiocondaBot please add label

@BiocondaBot BiocondaBot added the please review & merge set to ask for merge label Apr 30, 2024
@rpetit3 rpetit3 merged commit ab4c0bd into bioconda:master May 1, 2024
6 checks passed
@martin-g martin-g deleted the aarch64-hifiasm branch May 1, 2024 17:37
daler pushed a commit that referenced this pull request May 14, 2024
* hifiasm: add linux-aarch64 build

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>

* Apply chhylp123/hifiasm#641 as a patch until it is merged upstream

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>

---------

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
aarch64 Related to adding linux-aarch64 support please review & merge set to ask for merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants