-
Notifications
You must be signed in to change notification settings - Fork 133
SamJS
Pierre Lindenbaum edited this page Jul 15, 2015
·
14 revisions
Filtering a SAM/BAM file with javascript
Filters a BAM using javascript ( java rhino engine http://en.wikipedia.org/wiki/Rhino_%28JavaScript_engine%29 ).
$ java -jar dist/samjs.jar [options] (-e script | -f file ) (f.bam|f.sam|stdin)
See also Compilation
$ make samjs
The script puts the following variables in the script context:
- 'record' a SamRecord ( https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/SAMRecord.java )
- 'header' ( https://github.com/samtools/htsjdk/blob/master/src/java/htsjdk/samtools/SAMFileHeader.java )
Option | Description |
---|---|
-f (File) | javascript file |
-e (script) | javascript expression. |
-N (long) | limit to 'N' records. Optional. |
-c (int) | max records in RAM. Optional. |
-X (fail.bam) Save dicarded reads in that file. Optional. Default: no file. | max records in RAM. Optional. |
get a SAM where the read OR the mate is unmapped
java -jar dist/samjs.jar \
-e "record.readUnmappedFlag || record.mateUnmappedFlag;" \
ex1.bam
@HD VN:1.4 SO:unsorted
@SQ SN:seq1 LN:1575
@SQ SN:seq2 LN:1584
B7_591:4:96:693:509 73 seq1 1 99 36M * 0 0 CACTAGTGGCTCATTGTAAATGTGTGGTTTAACTCG <<<<<<<<<<<<<<<;<<<<<<<<<5<<<<<;:<;7 H0:i:1 H1:i:0 MF:i:18 NM:i:0 UQ:i:0 Aq:i:73
EAS54_65:7:152:368:113 73 seq1 3 99 35M * 0 0 CTAGTGGCTCATTGTAAATGTGTGGTTTAACTCGT <<<<<<<<<<0<<<<655<<7<<<:9<<3/:<6): H0:i:1 H1:i:0 MF:i:18 NM:i:0 UQ:i:0 Aq:i:66
EAS51_64:8:5:734:57 137 seq1 5 99 35M * 0 0 AGTGGCTCATTGTAAATGTGTGGTTTAACTCGTCC <<<<<<<<<<<7;71<<;<;;<7;<<3;);3*8/5 H0:i:1 H1:i:0 MF:i:18 NM:i:0 UQ:i:0 Aq:i:66
B7_591:1:289:587:906 137 seq1 6 63 36M * 0 0 GTGGCTCATTGTAATTTTTTGTTTTAACTCTTCTCT (-&----,----)-)-),'--)---',+-,),''*, H0:i:0 H1:i:0 MF:i:130 NM:i:5 UQ:i:38 Aq:i:63
EAS56_59:8:38:671:758 137 seq1 9 99 35M * 0 0 GCTCATTGTAAATGTGTGGTTTAACTCGTCCATGG <<<<<<<<<<<<<<<;<;7<<<<<<<<7<<;:<5% H0:i:1 H1:i:0 MF:i:18 NM:i:0 UQ:i:0 Aq:i:72
EAS56_61:6:18:467:281 73 seq1 13 99 35M * 0 0 ATTGTAAATGTGTGGTTTAACTCGTCCCTGGCCCA <<<<<<<<;<<<8<<<<<;8:;6/686&;(16666 H0:i:0 H1:i:1 MF:i:18 NM:i:1 UQ:i:5 Aq:i:39
EAS114_28:5:296:340:699 137 seq1 13 99 36M * 0 0 ATTGTAAATGTGTGGTTTAACTCGTCCATGGCCCAG <<<<<;<<<;<;<<<<<<<<<<<8<8<3<8;<;<0; H0:i:1 H1:i:0 MF:i:18 NM:i:0 UQ:i:0 Aq:i:73
B7_597:6:194:894:408 73 seq1 15 99 35M * 0 0 TGTAAATGTGTGGTTTAACTCGTCCATTGCCCAGC <<<<<<<<<7<<;<<<<;<<<7;;<<<*,;;572< H0:i:0 H1:i:1 MF:i:18 NM:i:1 UQ:i:9 Aq:i:43
EAS188_4:8:12:628:973 89 seq1 18 75 35M * 0 0 AAATGTGTGGTTTAACTCGTCCATGGCCCAGCATT ==;=:;:;;:====;=;===:=======;==;=== H0:i:1 H1:i:0 MF:i:64 NM:i:0 UQ:i:0 Aq:i:0
(...)
##History
- Dec 2013: moved to a standard argc/argv command line.
- Dec 2013-20: added option -X
See also:
- http://www.biostars.org/p/75168/#75187
- http://www.biostars.org/p/81750/#81759
- http://www.biostars.org/p/75354/#75363
- http://www.biostars.org/p/77802/#77966
- https://www.biostars.org/p/103052
- https://www.biostars.org/p/106900/#106912
- https://www.biostars.org/p/150530/
- VCFFilterJS.
- Issue Tracker: http://github.com/lindenb/jvarkit/issues
- Source Code: http://github.com/lindenb/jvarkit
##See also
##History
- 2013 : Creation
The project is licensed under the MIT license.