https://github.com/broadinstitute/picard

A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.

https://github.com/broadinstitute/picard

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    68 of 150 committers (45.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.1%) to scientific vocabulary

Keywords from Contributors

genomics bioinformatics ngs dna sequencing gatk wdl workflow-description-language ga4gh executor
Last synced: 10 months ago · JSON representation

Repository

A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.

Basic Info
Statistics
  • Stars: 1,022
  • Watchers: 156
  • Forks: 378
  • Open Issues: 225
  • Releases: 0
Created about 12 years ago · Last pushed 11 months ago
Metadata Files
Readme License

README.md

User Support:

For user questions please look for answers and ask first in the GATK forum.


Build Status License: MIT

A set of Java command line tools for manipulating high-throughput sequencing (HTS) data and formats.

Picard is implemented using the HTSJDK Java library HTSJDK to support accessing file formats that are commonly used for high-throughput sequencing data such as SAM and VCF.

As of version 3.0, Picard requires Java 1.17.

Building Picard

  • First, clone the repo: git clone https://github.com/broadinstitute/picard.git cd picard/

  • Picard is now built using gradle. A wrapper script (gradlew) is included which will download the appropriate version of gradle on the first invocation.

  • To build a fully-packaged, runnable Picard jar with all dependencies included, run: ./gradlew shadowJar

  • The resulting jar will be in build/libs. To run it, the command is: ``` java -jar build/libs/picard.jar

    or

    java -jar build/libs/picard--all.jar ```

  • To build a jar containing only Picard classes (without its dependencies), run: ./gradlew jar

  • To clean the build directory, run: ./gradlew clean

Running Tests

  • To run all tests, the command is: ./gradlew test

  • To run a specific test, the command is: ``` ./gradlew legacyTest --tests "TestClassName"

    or

    ./gradlew barclayTest --tests "TestClassName" `` RunninglegacyTestuses the legacy commandline parser whilebarclayTest` uses the new parser.

Changing the released version of HTSJDK that Picard depends on

To switch Picard's HTSJDK dependency to a different released version:

  • Open build.gradle
  • Edit VERSION in the following line to be a different released version of HTSJDK. HTSJDK releases are listed here final htsjdkVersion = System.getProperty('htsjdk.version', 'VERSION')`
  • Open a pull request with this change

Building Picard with a Custom Version of HTSJDK

During development in Picard, it is sometimes necessary to build locally against an unreleased version or branch of HTSJDK.

  • To build against an unreleased version of HTSJDK's master branch:

    • Go to the Broad artifactory, where continuous snapshots of HTSJDK's master branch are published, and select the version you want to use. For example, 2.5.1-9-g5740ca1-SNAPSHOT. You can search by tag or short git commit hash.
    • In your Picard clone, run ./gradlew shadowJar -Dhtsjdk.version=VERSION, where VERSION is the version of the HTSJDK master branch snapshot you want to use.
  • To build against a version of HTSJDK that has not yet been merged into HTSJDK's master branch:

    • Clone HTSJDK, and in your clone check out the tag or branch you want to build Picard with.
    • Run ./gradlew install printVersion in your htsjdk clone to install that version to your local maven repository. Take note of the version number that gets printed at the end.
    • Switch back to your Picard clone, and run ./gradlew shadowJar -Dhtsjdk.version=VERSION, where VERSION is the version of HTSJDK you installed to your local maven repository.

Releasing Picard

Full instructions on how to create a new release of Picard are here

Path providers

Picard has limited support for reading from Path providers. Currently only google's api is supported, and only a few tools support this. To run with this support you need to compile the cloudJar target with gradle: ```bash ./gradlew cloudJar

``` then run picard as follows:

bash java -jar build/lib/picardcloud.jar <Picard arguments starting from program> For example:

bash java -jar build/lib/picardcloud.jar CrosscheckFingerprints \ I=gs://sample1.vcf \ I=gs://sample2.vcf \ CROSSCHECK_BY=FILE \ H=Haplotype_db.txt \ O=crosscheck.out

Alternatively, you can run the tool via the GATK which bundles the Google-Cloud jar, and should thus "Just Work".


Citing

Please cite this repository when using Picard tools for your publications.

“Picard Toolkit.” 2019. Broad Institute, GitHub Repository. https://broadinstitute.github.io/picard/; Broad Institute

@misc{Picard2019toolkit, title = {Picard toolkit}, year = {2019}, publisher = {Broad Institute}, journal = {Broad Institute, GitHub repository}, howpublished = {\url{https://broadinstitute.github.io/picard/}} }

Identifiers from software registries are increasingly accepted by journals, as in (biotools:picardtools) or (RRID:SCR006525).

Picard is migrating to semantic versioning. We will eventually adhere to it strictly and bump our major version whenever there are breaking changes to our API, but until we more clearly define what constitutes our official API, clients should assume that every release potentially contains at least minor changes to public methods.

Please see the Picard Documentation for more information.

Owner

  • Name: Broad Institute
  • Login: broadinstitute
  • Kind: organization
  • Location: Cambridge, MA

Broad Institute of MIT and Harvard

GitHub Events

Total
  • Create event: 11
  • Release event: 1
  • Issues event: 26
  • Watch event: 50
  • Delete event: 7
  • Issue comment event: 59
  • Push event: 30
  • Pull request review comment event: 47
  • Pull request review event: 35
  • Pull request event: 31
  • Fork event: 9
Last Year
  • Create event: 11
  • Release event: 1
  • Issues event: 26
  • Watch event: 50
  • Delete event: 7
  • Issue comment event: 59
  • Push event: 30
  • Pull request review comment event: 47
  • Pull request review event: 35
  • Pull request event: 31
  • Fork event: 9

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 2,638
  • Total Committers: 150
  • Avg Commits per committer: 17.587
  • Development Distribution Score (DDS): 0.733
Past Year
  • Commits: 21
  • Committers: 10
  • Avg Commits per committer: 2.1
  • Development Distribution Score (DDS): 0.667
Top Committers
Name Email Commits
Alec Wysoker a****w@b****g 705
Tim Fennell t****e@t****m 276
Yossi Farjoun f****n@b****g 175
Kathleen Tibbetts k****t@g****m 119
Jay Carey j****y@b****g 116
Nils Homer n****r@g****m 91
Louis Bergelson l****b@b****g 76
George Grant g****t@b****g 76
Nils Homer n****r@b****g 64
Michael McCowan m****n@g****m 63
Martha Borkan m****n@b****g 63
Jonathan Burke u****n@u****m 62
Eric Banks e****s@b****g 43
Joseph Rose j****e@b****g 37
Jeff Gentry g****y@g****m 31
Chris Norman c****n@b****g 30
Cristyn Kells c****s@g****m 29
Jacob Silterra j****b@b****g 28
Yossi Farjoun f****n@g****m 25
kbergin k****n@b****g 25
kachulis 3****s 23
Mark Fleharty f****y 21
Kathleen Tibbetts k****t@b****g 20
Geraldine Van der Auwera v****a@b****g 16
Dan Moran d****n@b****g 15
Jay Carey j****y@f****m 14
Ben Weisburd w****d@b****g 13
James e****j@b****g 13
David Roazen d****n@b****g 11
Joel Thibault t****t@b****g 11
and 120 more...

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 173
  • Total pull requests: 156
  • Average time to close issues: 12 months
  • Average time to close pull requests: 6 months
  • Total issue authors: 147
  • Total pull request authors: 36
  • Average comments per issue: 2.82
  • Average comments per pull request: 1.92
  • Merged pull requests: 110
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 19
  • Pull requests: 39
  • Average time to close issues: 11 days
  • Average time to close pull requests: 22 days
  • Issue authors: 19
  • Pull request authors: 12
  • Average comments per issue: 0.79
  • Average comments per pull request: 0.64
  • Merged pull requests: 22
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • nh13 (6)
  • rickymagner (4)
  • kachulis (4)
  • lappazos (3)
  • GATKSupportTeam (3)
  • desmodus1984 (2)
  • shanmugavadivelps (2)
  • fgvieira (2)
  • gokalpcelik (2)
  • cmnbroad (2)
  • pgrt (2)
  • Rohit-Satyam (2)
  • MatteoZam (2)
  • biozzq (2)
  • ghuls (2)
Pull Request Authors
  • lbergelson (41)
  • yfarjoun (16)
  • cmnbroad (14)
  • kachulis (9)
  • kockan (9)
  • nh13 (8)
  • takutosato (8)
  • dror27 (6)
  • ilyasoifer (4)
  • fleharty (3)
  • gokalpcelik (2)
  • wook-choi (2)
  • michaelgatzen (2)
  • kshakir (2)
  • rickymagner (2)
Top Labels
Issue Labels
bug (5) stdin/stdout (4) R-Dependency (4) docs (2) secon (1) cleanup (1) feature (1) roadmap (1) question (1)
Pull Request Labels
Waiting For Revisions (7) On Hold (2)

Packages

  • Total packages: 2
  • Total downloads:
    • homebrew 145 last-month
  • Total docker downloads: 40,960,269
  • Total dependent packages: 12
    (may contain duplicates)
  • Total dependent repositories: 23
    (may contain duplicates)
  • Total versions: 188
repo1.maven.org: com.github.broadinstitute:picard

A set of command line tools (in Java) for manipulating high-throughput sequencing (HTS) data and formats such as SAM/BAM/CRAM and VCF.

  • Versions: 178
  • Dependent Packages: 12
  • Dependent Repositories: 23
  • Docker Downloads: 40,960,269
Rankings
Docker downloads count: 0.7%
Dependent repos count: 5.0%
Dependent packages count: 5.2%
Average: 6.7%
Forks count: 10.2%
Stargazers count: 12.4%
Last synced: 10 months ago
formulae.brew.sh: picard-tools

Tools for manipulating HTS data and formats

  • Versions: 10
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 145 Last month
Rankings
Forks count: 7.4%
Stargazers count: 17.6%
Dependent packages count: 19.0%
Average: 34.7%
Dependent repos count: 50.7%
Downloads: 78.5%
Last synced: about 1 year ago

Dependencies

build.gradle maven
  • com.google.guava:guava 15.0 compile
  • com.intel.gkl:gkl 0.8.8 compile
  • commons-lang:commons-lang 2.6 compile
  • org.apache.commons:commons-collections4 4.3 compile
  • org.apache.commons:commons-math3 3.5 compile
  • org.apache.logging.log4j:log4j-api 2.17.1 compile
  • org.apache.logging.log4j:log4j-core 2.17.1 compile
  • org.broadinstitute:barclay 4.0.2 compile
  • org.apache.commons:commons-lang3 3.6 testCompile
  • org.testng:testng 6.14.3 testCompile
.github/workflows/trivy.yml actions
  • actions/checkout v2 composite
  • broadinstitute/dsp-appsec-trivy-action v1 composite
Dockerfile docker
  • adoptopenjdk 8 build