Skip to content

Commit

Permalink
Merge pull request #280 from rmcolq/0.9.1_branch
Browse files Browse the repository at this point in the history
0.9.1
  • Loading branch information
leoisl authored Jun 3, 2021
2 parents 0737a2d + 1ce9358 commit 16de553
Show file tree
Hide file tree
Showing 42 changed files with 5,802 additions and 32 deletions.
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -99,3 +99,6 @@ pandora
#portable binary build dir
build_portable_executable
pandora-linux-precompiled

/archives/
/example/out/
13 changes: 12 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@ project adheres to

## [Unreleased]

## [0.9.1]

### Added
- `pandora` is now installable through `conda`;
- A script to archive the `pandora` repository with git submodules;

### Changed
- Improved the sample example so now we can assert that the output produced is the expected one;
- Changes to the build process that enables `pandora` to be compiled in the `conda` environment;

## [0.9.0]

### Changed
Expand Down Expand Up @@ -97,7 +107,8 @@ from this point will have their changes meticulously documented here.

- k-mer coverage underflow bug in `LocalPRG` [[#183][183]]

[Unreleased]: https://github.com/rmcolq/pandora/compare/0.9.0...HEAD
[Unreleased]: https://github.com/rmcolq/pandora/compare/0.9.1...HEAD
[0.9.1]: https://github.com/rmcolq/pandora/releases/tag/0.9.1
[0.9.0]: https://github.com/rmcolq/pandora/releases/tag/0.9.0
[0.9.0-rc2]: https://github.com/rmcolq/pandora/releases/tag/0.9.0-rc2
[0.9.0-rc1]: https://github.com/rmcolq/pandora/releases/tag/0.9.0-rc1
Expand Down
21 changes: 15 additions & 6 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
cmake_minimum_required(VERSION 3.12) # required by hunter ZLIB installation

# include hunter
option(HUNTER_STATUS_DEBUG "Hunter debug" OFF) # comment if does not want hunter debug on
set(HUNTER_ROOT ${CMAKE_BINARY_DIR}/hunter)
include("cmake/HunterGate.cmake")
HunterGate(
Expand All @@ -11,7 +12,7 @@ HunterGate(

# project configuration
set(PROJECT_NAME_STR pandora)
project(${PROJECT_NAME_STR} VERSION "0.9.0" LANGUAGES C CXX)
project(${PROJECT_NAME_STR} VERSION "0.9.1" LANGUAGES C CXX)
set(ADDITIONAL_VERSION_LABELS "")
configure_file( include/version.h.in ${CMAKE_BINARY_DIR}/include/version.h )

Expand Down Expand Up @@ -55,8 +56,13 @@ else ()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fopenmp")
endif()

# static C and C++ flags
set(STATIC_C_CXX "-static-libgcc -static-libstdc++")
# always link rt
set(RT_LIBRARY "rt")

if(NOT BIOCONDA)
# static C and C++ flags
set(STATIC_C_CXX "-static-libgcc -static-libstdc++")
endif()

########################################################################################################################
# EXTERNAL LIBS INSTALLATION
Expand Down Expand Up @@ -92,10 +98,10 @@ set(Gtest_LIBRARIES GTest::gtest GTest::gmock_main)

########################################################################################################################
# INSTALL BOOST
set(Boost_USE_STATIC_LIBS ON)
hunter_add_package(Boost COMPONENTS filesystem iostreams log serialization system thread)
find_package(Boost CONFIG REQUIRED filesystem iostreams log serialization system thread)
set(BOOST_LIBRARIES Boost::filesystem Boost::iostreams Boost::log Boost::serialization Boost::system Boost::thread)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_LIBRARIES Boost::filesystem Boost::iostreams Boost::log Boost::serialization Boost::system Boost::thread)
########################################################################################################################
########################################################################################################################
# END EXTERNAL LIBS INSTALLATION
Expand Down Expand Up @@ -148,13 +154,16 @@ add_dependencies(${PROJECT_NAME} gatb)

target_link_libraries(${PROJECT_NAME}
${GATB_LIBS}
${BOOST_LIBRARIES}
${Boost_LIBRARIES}
${ZLIB_LIBRARY}
${CMAKE_DL_LIBS}
${STATIC_C_CXX}
${BACKWARD_LIBRARIES}
${SEQAN_LIBRARIES}
${RT_LIBRARY}
)

enable_testing()
add_subdirectory(test)

install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin)
14 changes: 11 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- [Hands-on toy example](#hands-on-toy-example)
- [Installation](#installation)
- [Precompiled portable binary](#no-installation-needed---precompiled-portable-binary)
- [Conda](#conda)
- [Containers](#containers)
- [Installation from source](#installation-from-source)
- [Usage](#usage)
Expand Down Expand Up @@ -78,18 +79,25 @@ In this binary, all libraries are linked statically.

* **Download**:
```
wget https://github.com/rmcolq/pandora/releases/download/0.9.0/pandora-linux-precompiled-v0.9.0
wget https://github.com/rmcolq/pandora/releases/download/0.9.1/pandora-linux-precompiled-v0.9.1
```

* **Running**:
```
chmod +x pandora-linux-precompiled-v0.9.0
./pandora-linux-precompiled-v0.9.0 -h
chmod +x pandora-linux-precompiled-v0.9.1
./pandora-linux-precompiled-v0.9.1 -h
```

* **Notes**:
* We provide precompiled binaries for Linux OS only;

### Conda

To install `pandora` through `conda`, run:
```
conda install -c bioconda pandora
```

### Containers

[![Docker Repository on Quay](https://quay.io/repository/rmcolq/pandora/status "Docker Repository on Quay")](https://quay.io/repository/rmcolq/pandora)
Expand Down
33 changes: 27 additions & 6 deletions example/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,18 +28,26 @@ Here we present a walkthrough of running `pandora` on a toy example. We run:

### Quick look at the output

`prgs`: contains output of `make_prg from_msa` and `pandora index`. Main files:
The output is already present in dir `out_truth`. If all went fine, the last line of the execution of the script above should be:

```
Example run produced the expected result
```

and thus the dirs `out` and `out_truth` have the same contents.

`out/prgs`: contains output of `make_prg from_msa` and `pandora index`. Main files:
* `pangenome.prg.fa`: the PRG itself;
* `pangenome.prg.fa.k15.w14.idx` and `kmer_prgs`: the PRG index;
* `pangenome.update_DS`: update data structures that make the PRG updateable;

`pandora_discover_out`: contains the output of `pandora discover`. Main files:
`out/pandora_discover_out`: contains the output of `pandora discover`. Main files:
* `denovo_paths.txt`: describes the denovo paths found in all samples;

`updated_prgs`: contains the output of `make_prg update` and `pandora index` (on the updated PRG).
`out/updated_prgs`: contains the output of `make_prg update` and `pandora index` (on the updated PRG).
The files are similar to the ones in the `prgs` folder;

`output_toy_example_no_denovo` and `output_toy_example_with_denovo`: contains the output of
`out/output_toy_example_no_denovo` and `out/output_toy_example_with_denovo`: contains the output of
`pandora compare` without denovo discovery and with denovo discovery, respectively. Main files:
* `pandora_multisample.matrix`: see https://github.com/rmcolq/pandora/wiki/FAQ#q-where-can-i-find-gene-presenceabsence-information ;
* `pandora_multisample.vcf_ref.fa`: see https://github.com/rmcolq/pandora/wiki/FAQ#q-what-are-the-sequences-in-pandora_multisamplevcf_reffa
Expand All @@ -50,7 +58,7 @@ The files are similar to the ones in the `prgs` folder;

**No denovo**

Taking a quick look at an excerpt of `output_toy_example_no_denovo/pandora_multisample_genotyped.vcf`
Taking a quick look at an excerpt of `out/output_toy_example_no_denovo/pandora_multisample_genotyped.vcf`
(the VCF genotyped by `pandora` without denovo sequences):

```
Expand All @@ -64,7 +72,7 @@ We can see samples `toy_sample_1` and `toy_sample_2` genotype towards different

**With denovo**

The VCF (`output_toy_example_with_denovo/pandora_multisample_genotyped.vcf`) has some new variants that were discovered and genotyped. For example:
The VCF (`out/output_toy_example_with_denovo/pandora_multisample_genotyped.vcf`) has some new variants that were discovered and genotyped. For example:

```
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT toy_sample_1.100x.random.illumina toy_sample_2.100x.random.illumina
Expand All @@ -73,6 +81,19 @@ GC00010897 44 . C T . . SVTYPE=SNP;GRAPHTYPE=SIMPLE GT:MEAN_FWD_COVG:MEAN_REV_CO
GC00010897 422 . A T . . SVTYPE=SNP;GRAPHTYPE=SIMPLE GT:MEAN_FWD_COVG:MEAN_REV_COVG:MED_FWD_COVG:MED_REV_COVG:SUM_FWD_COVG:SUM_REV_COVG:GAPS:LIKELIHOOD:GT_CONF 1:0,8:0,5:0,8:0,5:0,16:0,11:1,0:-155.867,-20.2266:135.641 0:12,0:9,0:12,0:9,0:12,0:9,0:0,1:-9.39494,-182.709:173.314
```

## Extra

### Running with conda

If you install `pandora` via `conda`: `conda install -c bioconda pandora`,
you can run this sample example by activating the `conda` environment containing `pandora` and running:

```
./run_pandora.sh conda
```

The output should be the same as using the precompiled binary.

<!--Link References-->

[pandora_2020_paper]: https://www.biorxiv.org/content/10.1101/2020.11.12.380378v2
Loading

0 comments on commit 16de553

Please sign in to comment.