{"id":19834295,"url":"https://github.com/orangesi/bam2msa","last_synced_at":"2025-06-30T03:08:04.344Z","repository":{"id":201240985,"uuid":"259819275","full_name":"orangeSi/bam2msa","owner":"orangeSi","description":"convert alignment bam to pairwise alignment or multiple sequence alignment (msa) at genome specific region","archived":false,"fork":false,"pushed_at":"2024-05-21T06:06:04.000Z","size":11016,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-06T16:12:27.445Z","etag":null,"topics":["alignment","bam","bioinformatics","crystal-lang","msa","pairwise-alignment"],"latest_commit_sha":null,"homepage":"","language":"Crystal","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/orangeSi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2020-04-29T03:56:50.000Z","updated_at":"2024-09-04T18:44:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"f74a9d81-7e6f-44d2-b36c-35194e073d07","html_url":"https://github.com/orangeSi/bam2msa","commit_stats":null,"previous_names":["orangesi/bam2msa"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/orangeSi/bam2msa","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orangeSi%2Fbam2msa","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orangeSi%2Fbam2msa/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orangeSi%2Fbam2msa/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orangeSi%2Fbam2msa/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/orangeSi","download_url":"https://codeload.github.com/orangeSi/bam2msa/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/orangeSi%2Fbam2msa/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262702335,"owners_count":23350644,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alignment","bam","bioinformatics","crystal-lang","msa","pairwise-alignment"],"created_at":"2024-11-12T12:03:51.929Z","updated_at":"2025-06-30T03:08:04.309Z","avatar_url":"https://github.com/orangeSi.png","language":"Crystal","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bam2msa\nconvert alignment bam file to multiple sequence alignment(msa) file(need samtools)\n\n```\n$ cd test/\n\n$ ../src/bam2msa ref.fa out.bwa.bam NC_045512.2_1bp_to_1680bp:15-43|cut -f 1-6|column -ts $'\\t'|less -RS\n1                              2                              3                              4                                5         6\n#query_msa                     ref_msa                        consensus_msa                  ref_cut_region                   query_id  r1_or_r2\nCC--CCCAGGTAACAAACCAACCAACCTT  CCTTCCCAGGTAACAAACCAACCAACTTT  ==DD======================X==  NC_045512.2_1bp_to_1680bp:15-43  clone1    se\n               AACCAACCAACCTT  CCTTCCCAGGTAACAAACCAACCAACTTT                 ===========X==  NC_045512.2_1bp_to_1680bp:15-43  clone2    se\n\n\n## add --output-format 2\n$ ../src/bam2msa ref.fa out.bwa.bam NC_045512.2_1bp_to_1680bp:15-43 --output-format 2|cut -f 1-7|column -ts $'\\t'|less -RS\n1          2                                3                              4                              5         6\n#seq_type  id                               alignment                      consensus                      r1_or_r2  read_strand\nref        NC_045512.2_1bp_to_1680bp:15-43  CCTTCCCAGGTAACAAACCAACCAACTTT                                  \nquery      clone1                           CC--CCCAGGTAACAAACCAACCAACCTT  ==DD======================X==  se        +\nquery      clone2                                          AACCAACCAACCTT                 ===========X==  se        -\n```\n\n```\n## colorsize snp/indel of output with --colorize-snp-indel 1 \n$ ../src/bam2msa ref.fa out.bwa.bam NC_045512.2_1bp_to_1680bp:15-43 --colorize-snp-indel 1 --output-format 2|cut -f 1-7|column -ts $'\\t'|less -RS\n```\n![bam2msa demo image](./test/bam2msa_demo3.png)\n\n\n```\n$ ../src/bam2msa\nContact: ilikeorangeapple@gmail.com or go to https://github.com/orangeSi/bam2msa/issues\nUsage:\n  bam2msa [flags...] \u003cref\u003e \u003cbam\u003e \u003cregions\u003e [arg...]\n\nconvert bam to msa format for alignment file\n\nFlags:\n  --colorize-snp-indel (default: 0)           # colorize snp and indel of output\n  --display-read-boundary (default: 1)        # display the read boundary, 0 mean not display\n  --help                                      # Displays help for the current command.\n  --measure-run-time (default: 0)             # measure the run time of code\n  --primary-only (default: 1)                 # only for primary alignment. 0 mean all alingment, 1 is only primary alignment\n  --span-whole-region-read-only (default: 0)  # only for read which span the whole region. 0 mean all read which overlap with the region, 1 mean is read which span the whole region\n  --version                                   # Displays the version of the current application.\n\nArguments:\n  ref (required)                              # ref fasta file\n  bam (required)                              # bam alignemnt file or STDIN \n  regions (required)                          # display read and ref msa alignment in these regions, example: chr1:1000-1200,chr2:2000-2300\n\n```\n\n```\n$ cd test \u0026\u0026 cat demo.sh \nset -e\n./bam2msa ref.fa out.bwa.bam NC_045512.2_1bp_to_1680bp:1-1680 --span-whole-region-read-only 0 \u003eout.bam2msa\ncat out.bam2msa |grep -v '^#'|awk -F '\\t' '{print \"\u003e\"$4\"\\n\"$2\"\\n\u003e\"$5\"\\n\"$1}'|sed 's/:.*//' \u003eout.bam2msa.msa\n\nln -sf  out.bam2msa.msa case\nln -sf  ../data/out.mafft.msa control\ndiff control case\nif [ $? -eq 0 ];\nthen\n\techo \"ok, test passed!\"\nelse\n\techo \"sorry, test failed! give a issue to me please~~~\"\nfi\n\n$ sh demo.sh\nok, test passed!\n\n```\n## for wasm  support\n```\nsamtools view data/out.bwa.bam|wasmer  --dir=data/ src/bam2msa_final.wasm -- data/ref.fa STDIN NC_045512.2_1bp_to_1680bp:1-1680 \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forangesi%2Fbam2msa","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Forangesi%2Fbam2msa","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Forangesi%2Fbam2msa/lists"}