Mercurial > repos > artbio > lumpy_sv
changeset 6:48e97429a749 draft default tip
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/lumpy_sv commit 37c0f0938a5cad74c954a89827a6a08bbbb81cb0
author | artbio |
---|---|
date | Mon, 08 Jul 2024 22:23:10 +0000 |
parents | 6ae3a402b9af |
children | |
files | extractSplitReads_BwaMem.py lumpy.xml test-data/output_extended.vcf |
diffstat | 3 files changed, 20 insertions(+), 62 deletions(-) [+] |
line wrap: on
line diff
--- a/extractSplitReads_BwaMem.py Sun May 24 18:48:46 2020 -0400 +++ b/extractSplitReads_BwaMem.py Mon Jul 08 22:23:10 2024 +0000 @@ -21,7 +21,7 @@ continue for el in sam.tags: if "SA:" in el: - if(len(el.split(";"))) <= numSplits: + if (len(el.split(";"))) <= numSplits: split = 1 mate = el.split(",") mateCigar = mate[3] @@ -103,7 +103,6 @@ cigarOps = [] for opString in cigarOpStrings: cigarOpList = atomicCigarSearch.findall(opString) -# print cigarOpList # "struct" for the op and it's length cigar = cigarOp(cigarOpList[0][0], cigarOpList[0][1]) # add to the list of cigarOps @@ -120,8 +119,7 @@ cigar = cigarOp(cigarOpList[0][0], cigarOpList[0][1]) # add to the list of cigarOps cigarOps.append(cigar) -# cigarOps = cigarOps - return(cigarOps) + return cigarOps def calcQueryPosFromCigar(cigarOps): @@ -202,7 +200,8 @@ help='''Include alignments marked as duplicates. Default=False''') parser.add_option("-m", "--minNonOverlap", dest="minNonOverlap", - default=20, type="int", help='''minimum non-overlap between + default=20, type="int", + help='''minimum non-overlap between split alignments on the query (default=20)''', metavar="INT") (opts, args) = parser.parse_args()
--- a/lumpy.xml Sun May 24 18:48:46 2020 -0400 +++ b/lumpy.xml Mon Jul 08 22:23:10 2024 +0000 @@ -1,9 +1,9 @@ -<tool id="lumpy" name="lumpy-sv" version="1.2.2"> +<tool id="lumpy" name="lumpy-sv" version="1.3"> <description>find structural variants</description> <requirements> - <requirement type="package" version="0.2.13">lumpy-sv</requirement> - <requirement type="package" version="1.3.1">samtools</requirement> - <requirement type="package" version="1.11.2=py27_0">numpy</requirement> + <requirement type="package" version="0.3.1">lumpy-sv</requirement> + <requirement type="package" version="1.18">samtools</requirement> + <requirement type="package" version="1.16.5">numpy</requirement> </requirements> <stdio> <exit_code range="1:" level="fatal" description="Tool exception" /> @@ -33,7 +33,7 @@ |python $__tool_directory__/pairend_distro.py -r $analysis_type.readLength -X 4 -N $seq_method.additional_params.samplingValue -o input.lib.histo > meandev.txt && mean=\$(cat meandev.txt | sed s/mean:// | sed -r s/stdev:.+//) && stdev=\$(cat meandev.txt | sed -r s/mean:.+stdev://) && - lumpy $seq_method.additional_params.evidence $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt + lumpy $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt #if $output_format == "BEDPE": -b #end if @@ -41,7 +41,7 @@ -sr id:'$one_sample_bam',bam_file:input.splitters.bam,back_distance:$seq_method.additional_params.back_distance,weight:$seq_method.additional_params.weight,min_mapping_threshold:$seq_method.additional_params.min_mapping_threshold > '$vcf_call' #elif $seq_method.seq_method_list == "single-read": samtools view -@ \${GALAXY_SLOTS:-4} -h '$one_sample_bam' | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools sort -@ \${GALAXY_SLOTS:-4} -O bam -o input.splitters.bam && - lumpy $seq_method.additional_params.evidence $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt + lumpy $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt #if $output_format == "BEDPE": -b #end if @@ -61,7 +61,7 @@ meanB=\$(cat meandevB.txt | sed s/mean:// | sed -r s/stdev:.+//) && stdevA=\$(cat meandevA.txt | sed -r s/mean:.+stdev://) && stdevB=\$(cat meandevB.txt | sed -r s/mean:.+stdev://) && - lumpy $seq_method.additional_params.evidence $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt + lumpy $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt #if $output_format == "BEDPE": -b #end if @@ -72,7 +72,7 @@ #elif $seq_method.seq_method_list == "single-read": samtools view -@ \${GALAXY_SLOTS:-4} -h '$sample_a_bam' | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools sort -@ \${GALAXY_SLOTS:-4} -O bam -o input.splitters.bam && samtools view -@ \${GALAXY_SLOTS:-4} -h '$sample_b_bam' | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools sort -@ \${GALAXY_SLOTS:-4} -O bam -o input.B.splitters.bam && - lumpy $seq_method.additional_params.evidence $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt + lumpy $seq_method.additional_params.probability_curve -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt #if $output_format == "BEDPE": -b #end if @@ -116,7 +116,6 @@ <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> <param name="probability_curve" argument="-P" type="boolean" truevalue="-P" falsevalue="" checked="true" label="output probability curve for each variant"/> - <param name="evidence" argument="-e" type="boolean" truevalue="-e" falsevalue="" checked="true" label="show evidence for each call"/> </section> </when> <when value="single-read"> @@ -127,7 +126,6 @@ <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> <param name="probability_curve" argument="-P" type="boolean" truevalue="-P" falsevalue="" checked="false" label="output probability curve for each variant"/> - <param name="evidence" argument="-e" type="boolean" truevalue="-e" falsevalue="" checked="false" label="show evidence for each call"/> </section> </when> @@ -139,21 +137,21 @@ </inputs> <outputs> - <data format="tabular" name="histogram" label="Lumpy on ${on_string}: Fragment size distribution" from_work_dir="input.lib.histo"> + <data format="tabular" name="histogram" label="Lumpy-sv: Fragment size distribution" from_work_dir="input.lib.histo"> <filter>seq_method['seq_method_list'] == "paired-end"</filter> </data> - <data format="tabular" name="histogramB" label="Lumpy on ${on_string}: Fragment size distribution" from_work_dir="input.B.lib.histo"> + <data format="tabular" name="histogramB" label="Lumpy-sv: FragmentB size distribution" from_work_dir="input.B.lib.histo"> <filter>seq_method['seq_method_list'] == "paired-end"</filter> <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> </data> <data format="bam" name="splits" label="Lumpy on ${on_string}: Split Reads (Bam format)" from_work_dir="input.splitters.bam"/> - <data format="bam" name="splitsB" label="Lumpy on ${on_string}: Split Reads (Bam format)" from_work_dir="input.B.splitters.bam"> + <data format="bam" name="splitsB" label="Lumpy on ${on_string}: SplitB Reads (Bam format)" from_work_dir="input.B.splitters.bam"> <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> </data> <data format="bam" name="discordants" label="Lumpy on ${on_string}: Discordant Pairs (Bam format)" from_work_dir="input.discordants.bam"> <filter>seq_method['seq_method_list'] == "paired-end"</filter> </data> - <data format="bam" name="discordantsB" label="Lumpy on ${on_string}: Discordant Pairs (Bam format)" from_work_dir="input.B.discordants.bam"> + <data format="bam" name="discordantsB" label="Lumpy on ${on_string}: DiscordantB Pairs (Bam format)" from_work_dir="input.B.discordants.bam"> <filter>seq_method['seq_method_list'] == "paired-end"</filter> <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> </data> @@ -165,7 +163,7 @@ </outputs> <tests> - <test> + <test expect_num_outputs="7"> <param name="analysis_type_list" value="two_sample" /> <param name="input_file" value="sample_Del.bam" ftype="bam"/> <param name="input_fileB" value="sample_cle.bam" ftype="bam"/> @@ -177,7 +175,7 @@ <param name="min_mapping_threshold" value="20" /> <output name="vcf_call" file="output_two.paired_end.vcf" ftype="vcf"/> </test> - <test> + <test expect_num_outputs="2"> <param name="analysis_type_list" value="one_sample" /> <param name="input_file" value="sr.input.bam" ftype="bam"/> <param name="seq_method_list" value="single-read" /> @@ -188,7 +186,7 @@ <param name="min_mapping_threshold" value="20" /> <output name="vcf_call" file="output.vcf" ftype="vcf"/> </test> - <test> + <test expect_num_outputs="2"> <param name="analysis_type_list" value="one_sample" /> <param name="input_file" value="sr.input.bam" ftype="bam"/> <param name="seq_method_list" value="single-read" /> @@ -197,11 +195,10 @@ <param name="back_distance" value="10"/> <param name="weight" value="1" /> <param name="min_mapping_threshold" value="20" /> - <param name="evidence" value="true" /> <param name="probability_curve" value="true" /> <output name="vcf_call" file="output_extended.vcf" ftype="vcf" compare="sim_size"/> </test> - <test> + <test expect_num_outputs="3"> <param name="analysis_type_list" value="two_sample" /> <param name="input_file" value="sr.input.bam" ftype="bam"/> <param name="input_fileB" value="sr.input.bam" ftype="bam"/>
--- a/test-data/output_extended.vcf Sun May 24 18:48:46 2020 -0400 +++ b/test-data/output_extended.vcf Mon Jul 08 22:23:10 2024 +0000 @@ -31,45 +31,7 @@ ##FORMAT=<ID=SR,Number=1,Type=Integer,Description="Number of split reads supporting the variant"> ##FORMAT=<ID=BD,Number=1,Type=Integer,Description="Amount of BED evidence supporting the variant"> #CHROM POS ID REF ALT QUAL FILTER INFO FORMAT sr_input_bam - Evidence: M00860:26:000000000-A6UGV:1:1101:22421:6659_2 hg38_gold_U07000.1 8 50 hg38_gold_U07000.1 1885 1932 0x17456f0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:21503:6234_2 hg38_gold_U07000.1 13 52 hg38_gold_U07000.1 1885 1933 0x17451d0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:14108:4338_2 hg38_gold_U07000.1 8 53 hg38_gold_U07000.1 1879 1932 0x1747410 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22281:3587_2 hg38_gold_U07000.1 8 52 hg38_gold_U07000.1 1879 1944 0x174d920 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:9129:3504_2 hg38_gold_U07000.1 13 50 hg38_gold_U07000.1 1872 1932 0x1748e60 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:10154:5887_2 hg38_gold_U07000.1 10 41 hg38_gold_U07000.1 1872 1931 0x17499d0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:9382:5932_2 hg38_gold_U07000.1 8 53 hg38_gold_U07000.1 1871 1921 0x174d580 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22747:6442_2 hg38_gold_U07000.1 8 52 hg38_gold_U07000.1 1870 1933 0x1748cc0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:6411:6050_2 hg38_gold_U07000.1 13 49 hg38_gold_U07000.1 1868 1932 0x17486a0 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:23865:5544_2 hg38_gold_U07000.1 13 56 hg38_gold_U07000.1 1868 1923 0x1748480 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:20349:5252_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1868 1931 0x174ce80 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22571:4203_2 hg38_gold_U07000.1 13 50 hg38_gold_U07000.1 1868 1926 0x1745050 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:16719:4051_2 hg38_gold_U07000.1 8 51 hg38_gold_U07000.1 1868 1932 0x1747b70 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:8961:3182_2 hg38_gold_U07000.1 15 51 hg38_gold_U07000.1 1868 1917 0x1744130 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:18427:2937_2 hg38_gold_U07000.1 8 41 hg38_gold_U07000.1 1868 1932 0x174b760 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:21139:5913_2 hg38_gold_U07000.1 12 50 hg38_gold_U07000.1 1868 1924 0x174d640 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:10523:5853_2 hg38_gold_U07000.1 8 50 hg38_gold_U07000.1 1868 1935 0x174de60 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:16433:5445_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1868 1932 0x174d870 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:12490:4165_2 hg38_gold_U07000.1 13 58 hg38_gold_U07000.1 1868 1917 0x174d9f0 0 - + id:1 weight:1 hg38_gold_U07000.1 14 1_1 N [hg38_gold_U07000.1:1876[N . . SVTYPE=BND;STRANDS=--:19;EVENT=1;MATEID=1_2;CIPOS=0,0;CIEND=0,2;CIPOS95=0,0;CIEND95=0,0;SU=19;SR=19;PRPOS=1;PREND=0.99996,3.98091e-05,1.58483e-09 GT:SU:SR ./.:19:19 hg38_gold_U07000.1 1876 1_2 N [hg38_gold_U07000.1:14[N . . SVTYPE=BND;STRANDS=--:19;SECONDARY;EVENT=1;MATEID=1_1;CIPOS=0,2;CIEND=0,0;CIPOS95=0,0;CIEND95=0,0;SU=19;SR=19;PRPOS=0.99996,3.98091e-05,1.58483e-09;PREND=1 GT:SU:SR ./.:19:19 - Evidence: M00860:26:000000000-A6UGV:1:1101:7043:5583_2 hg38_gold_U07000.1 13 56 hg38_gold_U07000.1 1899 1935 0x1742010 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:19472:2185_2 hg38_gold_U07000.1 0 56 hg38_gold_U07000.1 1898 1945 0x1744270 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:9324:6462_2 hg38_gold_U07000.1 0 51 hg38_gold_U07000.1 1898 1933 0x1748fd0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:23764:6273_2 hg38_gold_U07000.1 13 48 hg38_gold_U07000.1 1898 1945 0x17490a0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:7772:5906_2 hg38_gold_U07000.1 0 54 hg38_gold_U07000.1 1898 1942 0x1747240 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:6971:4906_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1898 1935 0x1746170 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:10511:4776_2 hg38_gold_U07000.1 8 50 hg38_gold_U07000.1 1898 1934 0x174a840 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:19677:3538_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1898 1940 0x174c190 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22109:4922_2 hg38_gold_U07000.1 13 53 hg38_gold_U07000.1 1897 1933 0x1743ac0 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:14027:4470_2 hg38_gold_U07000.1 0 51 hg38_gold_U07000.1 1896 1933 0x174b500 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22736:5607_2 hg38_gold_U07000.1 13 57 hg38_gold_U07000.1 1893 1945 0x174cf30 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:10768:5508_2 hg38_gold_U07000.1 13 56 hg38_gold_U07000.1 1893 1935 0x17480b0 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:14449:3437_2 hg38_gold_U07000.1 13 48 hg38_gold_U07000.1 1893 1933 0x174b150 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:18009:3360_2 hg38_gold_U07000.1 13 47 hg38_gold_U07000.1 1893 1925 0x1749390 0 + - id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:16615:6513_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1893 1931 0x174b860 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:19235:5076_2 hg38_gold_U07000.1 13 45 hg38_gold_U07000.1 1893 1932 0x174a790 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:14629:4828_2 hg38_gold_U07000.1 8 50 hg38_gold_U07000.1 1893 1932 0x174b360 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:22780:4994_2 hg38_gold_U07000.1 13 50 hg38_gold_U07000.1 1892 1924 0x174aaf0 0 - + id:1 weight:1 - Evidence: M00860:26:000000000-A6UGV:1:1101:12387:3929_2 hg38_gold_U07000.1 13 51 hg38_gold_U07000.1 1892 1931 0x174c000 0 - + id:1 weight:1 hg38_gold_U07000.1 10 2_1 N [hg38_gold_U07000.1:1897[N . . SVTYPE=BND;STRANDS=--:19;EVENT=2;MATEID=2_2;CIPOS=-1,0;CIEND=-7,5;CIPOS95=0,1;CIEND95=-2,1;IMPRECISE;SU=19;SR=19;PRPOS=9.99999e-13,9.99999e-07;PREND=4.89496e-31,1.94872e-23,7.75799e-16,3.08851e-08,0.0308851,0.0775799,0.194872,0.489496,0.194872,0.0122956,1.94872e-09,4.89496e-17,1.22956e-24 GT:SU:SR ./.:19:19 hg38_gold_U07000.1 1897 2_2 N [hg38_gold_U07000.1:10[N . . SVTYPE=BND;STRANDS=--:19;SECONDARY;EVENT=2;MATEID=2_1;CIPOS=-7,5;CIEND=-1,0;CIPOS95=-2,1;CIEND95=0,1;IMPRECISE;SU=19;SR=19;PRPOS=4.89496e-31,1.94872e-23,7.75799e-16,3.08851e-08,0.0308851,0.0775799,0.194872,0.489496,0.194872,0.0122956,1.94872e-09,4.89496e-17,1.22956e-24;PREND=9.99999e-13,9.99999e-07 GT:SU:SR ./.:19:19