Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.1.1 #1

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2017 Le LI

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
19 changes: 14 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Updates in May31, 2018:
=================================================================================
Added a low-coverage mode in the pipeline to support the cases that the input alignment is low-coverage (e.g. <10x for the alignment of consensus maps to the reference).

To trigger this mode, please set
+ "likelihoodRatioCutOff" as 0,
+ "numberOfSupportIndelMolecule" as 1.

=================================================================================
# OMSV TUTORIAL
=================================================================================
## Overall
Here we provide the package of OMSV with all source codes (C++, bash script, and Matlab codes) and binary files. The scrips of OMSV have been tested in Debian GNU/Linux 9.0 (stretch) and CentOS Linux release 7.3.1611 (Core) platform and the matlab code was developed in Matlab R2011b (7.13.0.564) 64-bit (glnxa64). The way to start our pipeline within a few steps and the details of the programs, including input parameters and supported file formats, are shown in "Readme\_OMSV.txt".
**All data** (raw optical mapping data and alignments) are accessible at [here](https://drive.google.com/drive/folders/0B4T3OTv54s2DbDdLRFdqdERXZkE). The alignment file, as well as the 2-round split alignment, of NA12878 are provided for the quick start.
**All data** (raw optical mapping data and alignments) are accessible at [Zenodo repository](https://doi.org/10.5281/zenodo.886387). The alignment file, as well as the 2-round split alignment, of NA12878 are provided for the quick start.

=================================================================================
## Quick Start
Expand All @@ -14,14 +23,14 @@ To quickly try our OMSV Caller, please first download the package and alignment
>cd OMSV
>chmod 777 makefile
>./makefile
>./callSV.sh (Run the original version, of which the results are consistent with the published results)
>./callSV.sh (Run the latest version, of which the results should be slightly different)

callSV\_old.sh (callSV.sh) provide the examples of calling the OMSV callers (Matlab is required to call CNVs). Then you can find the resulting lists in SV\_result with prefix 12878 (e.g. 12878Indel.osv, 12878Mixed\_indel.osv, and 12878Complex\_total.bed).
callSV.sh provide the examples of calling the OMSV callers (Matlab is required to call CNVs). Then you can find the resulting lists in SV\_result with prefix 12878 (e.g. 12878Indel.osv, 12878Mixed\_indel.osv, and 12878Complex\_total.bed).

=================================================================================
## Parameters and Settings of the tools:

+ OMSV/OMSV\_mixedIndel (type ./OMSV to check the parameters) to call indels and mixed indels and site variations:
+ OMSV (type ./OMSV to check the parameters) to call indels and mixed indels and site variations:
- -inputLabel: Default value: 878. The index/label of genome.
- -outputFolder: Default value: ./. The path of the folder to store the output fils.
- -SVoutputFile: Default value: Detected_structual_variants. The prefix of the file name of SVs (.osv).
Expand Down Expand Up @@ -74,4 +83,4 @@ callSV\_old.sh (callSV.sh) provide the examples of calling the OMSV callers (Mat

=================================================================================
## Citation:
> Le Li, Tsz-Piu Kwok, Alden King-Yung Leung, et.al. **OMSV enables accurate and comprehensive identification of large structural variations from nanochannel-based single-molecule optical maps**. *Manuscript under revision, 2017*.
> Le Li, Tsz-Piu Kwok, Alden King-Yung Leung, et.al. **OMSV enables accurate and comprehensive identification of large structural variations from nanochannel-based single-molecule optical maps**. *Genome biology, 2017, 18(1): 230*.
19 changes: 9 additions & 10 deletions callSV.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,26 @@ fi
if [ $step -lt 1 ]
then

echo "1. Start to call large indels"
echo "1. Start to call large indels and site of NA12878"
mkdir temp

./OMSV -inputLabel 12878 -outputFolder SV_result/ -SVoutputFile Indel -chrMapFile hg38_r.cmap -optAlignFile data/NA12878_700bp_hg38_combRefOMB2.oma -optTempFolder temp/
rm -f SV_result/*_List.txt
./postFilter.sh SV_result/12878Indel_2000.osv 2000

echo "2. Start to call mixed indels"
./OMSV_mixedIndel -inputLabel 12878 -outputFolder SV_result/ -SVoutputFile Mixed_indel -chrMapFile hg38_r.cmap -optAlignFile data/NA12878_700bp_hg38_combRefOMB2.oma -optTempFolder temp/
rm -f SV_result/*_List.txt
./postFilter.sh SV_result/12878Mixed_indel_2000.osv 2000
sed '/Homozygous/d' SV_result/12878Mixed_indel_2000.osv | sed '/Heterozygous/d' > SV_result/12878Mixed_indel_2000.osv_tp && mv SV_result/12878Mixed_indel_2000.osv_tp SV_result/12878Mixed_indel_2000.osv
sed '/.site\|#/!d' SV_result/12878Indel_2000.osv > SV_result/12878Sites_2000.osv
sed '/Homozygous\|Heterozygous/d' SV_result/12878Indel_2000.osv > SV_result/12878Mixed_indel_2000.osv
sed -i '/.site\|HDI\|HI1I2\|HD1D2/d' SV_result/12878Indel_2000.osv

rm -f SV_result/*_List.txt
./postFilter.sh SV_result/12878Indel_2000.osv 2000

rm -r -f temp
fi

echo "2. Start to call medium-size inversions"
if java -jar OMTools-master/OMTools.jar >/dev/null 2>&1
if java -jar */OMTools.jar >/dev/null 2>&1
then

java -jar OMTools/OMTools.jar SVDetection --refmapin hg38_r.cmap --optresin data/NA12878_700bp_hg38_combRefOMB2.oma --mininvsig 4 --svout 12878Med_inv.osv --flanksig 0 --deg 0 -svmode 2 -minsupport 10 && sed -i '/.site/d' 12878Med_inv.osv
java -jar */OMTools.jar SVDetection --refmapin hg38_r.cmap --optresin data/NA12878_700bp_hg38_combRefOMB2.oma --mininvsig 4 --svout 12878Med_inv.osv --flanksig 0 --deg 0 -svmode 2 -minsupport 10 && sed -i '/.site/d' 12878Med_inv.osv
else
echo "Medium-size inversion caller requires java and OMTools but not installed. Skip this step."
fi
Expand Down
3 changes: 1 addition & 2 deletions makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
g++ -std=c++11 source/OMSV_v3.cpp -o OMSV
g++ -std=c++11 source/OMSV_mixedIndel_v3.cpp -o OMSV_mixedIndel
g++ -std=c++11 source/OMSV_v4.cpp -o OMSV
g++ -std=c++11 source/filterSV.cpp -o filterSV
g++ -std=c++11 source/adjust_split.cpp -o adjust_split
g++ -std=c++11 source/breakpoint.cpp -o breakpoint
Expand Down
Loading