Posted by 옥탑방람보
,

1.  blazeds 다운로드 및 설치 (blazeds tourkey)

2. 자바 및 톰캣 환경설정 (JAVA_HOME, CATALINA_HOME)

3. (이클립스) 서버설정

4. (이클립스) 자바 프로젝트 생성 및 클래스 작성

5. (이클립스) 자바 프로젝트 내 remote-config, server-config 설정

6. (플래쉬빌더) 프로젝트 생성 및 코딩 - blazeds 설치된 폴더에 있는 blazeds

7. (플래쉬빌더) 프로젝트 속성 - Flex Server 에 BlazeDS 선택, Root folder, Root URL, Context root, Output folder 설정

8. (플래쉬빌더) 프로젝트 - export build 실행 (타겟을 이클립스 워크스페이스내 자바 프로젝트)

Posted by 옥탑방람보
,

부모 둘다: WT hom
자식(환자): het

부모에서는 전혀 인자가 발견되지 않는데 환자에게서 새롭게 발견되는 변이이다.
이 경우는 사실상 MIE(medelian inheritance error) 에 해당되지만, 동시에 자식에게서 스스로 발생된 새로운 변이로 볼 수 있다. 그리고 이 변이가 실제 병으로 표현되는 인자라면 우성변이가 새롭게 생긴 위치라 할 수 있다.
Posted by 옥탑방람보
,
한 사이트에 대해서

부모 둘다: Het
자식(환자): Homo variant


부, 모는 모두 환자가 아닌데 환자인 자식에게서 병의 요인으로 나타나는 위치를 찾는다.
즉 부,모 에서는 Het 로 존재하여 열성으로 존재하여 병으로 표현되지 않지만, 부,모 각 열성인자를 하나씩 받은 자식에게서는 병으로 표현되는 경우.
Posted by 옥탑방람보
,

Compound heterozygosity in medical genetics is the condition of having two heterogeneous recessive alleles at a particular locus that can cause genetic disease in a heterozygous state.

부, 모, 자1(환자), 자2(환자 or 정상)

조합 1
부 (site1/site2): WT Hom/Het
모 (site1/site2): Het/WT Hom
자1 (site1/site2): Het/Het

조합 2
부 (site1/site2): Het/WT Hom
모 (site1/site2): WT Hom/Het
자1 (site1/site2): Het/Het

환자일 경우 반드시 하나의 유전자에서 발견된 2개의 변이에서 모두 Het 여야함.
부모는 각각 한 사이트씩 Het 여야함.
단. 부모 중 한 사람이라도 Variant Hom 일수 없음.

형제(자2)까지 고려하여 확인할 경우 경우
형제가 환자일 경우 Het/Het 여야함.
환자가 아닐 경우 WT Hom/WT Hom. WT Hom/Het, Het/WT Hom 세가지 경우가 가능.


이 compound heterozygous 는 하나의 위치(유전자)에서 두개의 het 가 병으로 표현되는 인자를 이른다. 따라서 환자가 아닌 부모에서는 이러한 병으로 갈 수 있는 인자가 동시에 존재하면 안된다. 즉 부모는 각각은 Het 를 하나씩가지면서 WT Hom 을 가지고 있어  site1은 부모 한쪽에서 변이를, site2는 다른 쪽에서 변이를 받아 두개의 변이가 동시에 하나의 병으로 표현되는 것을 찾는 것이다. 
Posted by 옥탑방람보
,

Picard를 이용하여 MarkDuplicates 를 수행하는 데 있어서,

"Value was put into PairIntoMap more than once" 라는 에러메시지가 발생하고 프로세스가 죽는 경우 입니다.

 

이 문제에 대해 해결할 수 있는 방안을 찾은 것 같습니다.

이 문제는 BAM파일 내의 리드 정보가 first read와 second read 사이의 flag 및 맵핑 위치 정보가 서로 맞지 않아 발생되는 오류로 확인하였습니다.

이것은 앞서 시도한 BWA -A 옵션을 줌으로써 mate에 대한 정보를 보정해주지 않는 것이 문제를 일으킨것 같습니다.

 

따라서 BWA -A 을 수행한 후에는

samtools fixmate input.bam output.bam

을 수행한 다음 이 output.bam 을 이용해 MarkDuplicates 를 수행하면 됩니다.
 

또 다른 경우로 밤파일들을 머지 한 데이터를 사용할 경우 머지한 밤파일내에 리드아이디가 중복해서 존재하게 되면 또한 위와 같은 에러가 발생합니다.
이러한 경우는 머지를 할때 samtools merge 를 사용할 경우입니다.
Picard의 MergeSamFiles.jar 를 이용하면 개발 bam들이 동일한 RG ID를 갖고 있으면, 자동으로 RG_ID 뒤에  ".1" 과 같이 숫자 인덱스를 만들어주게 됩니다. 보통 bioscope 등을 이용하여 맵핑한 bam 파일들은 RG_ID 가 default라는 명칭으로 되어 있습니다.

따라서 정리하면 위와 같은 에러메시지가 발생할 경우

1. "Value was put into PairIntoMap more than once"  와 함께 나타나는 리드 아이디가 중복해서 존재하는지 확인한다.
2. 중복해서 존재할 경우에는 merge 하는 툴을 Picard를 이용한다.
3. 중복해서 존재하지 않을 경우에는 samtools fixmate 를 실행한 후 재분석한다.


이상//

Posted by 옥탑방람보
,


bwa 를 이용한 pairing 에서 감당되지 않는 많은 시간이 소요되는 현상(4~5일 경과까지 지켜봄)이 나타납니다.

자세히 현상을 확인해본 결과

데이터 자체가 Pair-end 의 두 쌍의 데이터가 현저하게 떨어져 (insert size) 맵핑이 될때 문제가 발생되는 것으로 보입니다.

(아마 이것은 로우 데이터 자체에 문제가 있는 경우가 아닌가 생각됩니다.)

 

자세히 보면,

bwa 는 한쪽 end 가 unmapped 된 경우 이를 사용자가 넣은 max insert size 로 보정하는 단계가 있는 것으로 확인됩니다.

이로써 전체 데이터의 mapping rate, properly paired rate을 향상 시키고 잇는 것으로 확인됩니다.

간단하게 테스트 결과

read1, read2 에 각각 25만개의 리드가 있을 경우 chr22 레퍼런스에 맵핑하여 확인결과

1. max insert size 로 보정하는 단계를 스킵 (-A 옵션) 시킨경우

==> 198999 mapped (3.98%), 18295 properly paired (0.37%) 로 나타나지만,

2. max insert size (500) 로 보정할 경우

==> 207601 mapped (4.15%), 37214 properly paired (0.74%) 로 나타났습니다.

이 단계를 스킵하게 되면 전체적인 맵핑 통계수치가 낮게 나타나지만 속도 측면에서 큰 효과를 볼 수 있습니다.

특히 이 경우 처럼 Pair-end 의 두 쌍의 데이터가 현저하게 떨어져 맵핑이 된 상태의 데이터는 이 단계를 스킵으로 결과가 떨어지지만, 이 단계를 거치게 되면 일주일(?) 이상 소요됩니다.

Posted by 옥탑방람보
,

1. Boost : www.boost.org
If you do not have Boost, it is fairly easy to install it. Just download source package and unpack it somewhere. No compilation is necessary. Define environmental variable BOOST to the path to the Boost base directory. i.e, all the Boost header files should be accessible at $BOOST/boost.

2. GSL : GNU Scientific Library
Version 1.0 or later is required (The lastest version, currently 1.3, is recommended. It is fee so there is no reason not to upgrade). You should have script gsl-config on your PATH. Try the command

> gsl-config --version
1.3

to make sure you have the right version of GSL installed.

<Installation>
> tar xvf hotspotter-1.2.1.tar.gz
> cd hotspotter-1.0
> env BOOST=/path/to/boost make     (/usr/include/boost)


------------------
그냥 위와 같이 하면 에러가 발생한다.
 소스에 기본적으로 2가지 에러가 있다.
1. hotspotter/mll/stat/cfunc.hpp  파일에 오타가 있다. 211번째 라인에 있는 endl 을 end 로 변경해주어야 한다.
2. hostpotter/src/minim1D.hpp 파일에 헤더가 하나 빠져 있다.  include assert.h 를 해주어야 한다.

Posted by 옥탑방람보
,
밤파일 만들때 레퍼런스랑 지금 돌리는 레퍼런스랑 다를 경우 발생되는 에러이다.


<에러메세지>
org.broadinstitute.sting.utils.exceptions.ReviewedStingException: Invalid sequence number 24
 at org.broadinstitute.sting.gatk.datasources.reads.GATKBAMIndex.<init>(GATKBAMIndex.java:100)
 at org.broadinstitute.sting.gatk.datasources.reads.BAMSchedule.<init>(BAMSchedule.java:105)
 at org.broadinstitute.sting.gatk.datasources.reads.BAMScheduler.getNextOverlappingBAMScheduleEntry(BAMScheduler.java:205)
 at org.broadinstitute.sting.gatk.datasources.reads.BAMScheduler.advance(BAMScheduler.java:108)
 at org.broadinstitute.sting.gatk.datasources.reads.BAMScheduler.next(BAMScheduler.java:79)
 at org.broadinstitute.sting.gatk.datasources.reads.BAMScheduler.next(BAMScheduler.java:47)
 at net.sf.picard.util.PeekableIterator.advance(PeekableIterator.java:71)
 at net.sf.picard.util.PeekableIterator.next(PeekableIterator.java:57)
 at org.broadinstitute.sting.gatk.datasources.reads.LowMemoryIntervalSharder.next(LowMemoryIntervalSharder.java:61)
 at org.broadinstitute.sting.gatk.datasources.reads.LowMemoryIntervalSharder.next(LowMemoryIntervalSharder.java:36)
 at org.broadinstitute.sting.gatk.datasources.reads.LocusShardStrategy.next(LocusShardStrategy.java:142)
 at org.broadinstitute.sting.gatk.datasources.reads.LocusShardStrategy.next(LocusShardStrategy.java:42)
 at org.broadinstitute.sting.utils.threading.GenomeLocProcessingTracker$OwnershipIterator$1.doBody(GenomeLocProcessingTracker.java:258)
 at org.broadinstitute.sting.utils.threading.GenomeLocProcessingTracker$OwnershipIterator$1.doBody(GenomeLocProcessingTracker.java:250)
 at org.broadinstitute.sting.utils.threading.GenomeLocProcessingTracker$WithLock.run(GenomeLocProcessingTracker.java:423)
 at org.broadinstitute.sting.utils.threading.GenomeLocProcessingTracker$OwnershipIterator.next(GenomeLocProcessingTracker.java:250)
 at org.broadinstitute.sting.utils.threading.GenomeLocProcessingTracker$OwnershipIterator.next(GenomeLocProcessingTracker.java:213)
 at org.broadinstitute.sting.gatk.executive.LinearMicroScheduler.execute(LinearMicroScheduler.java:53)
 at org.broadinstitute.sting.gatk.GenomeAnalysisEngine.execute(GenomeAnalysisEngine.java:235)
 at org.broadinstitute.sting.gatk.CommandLineExecutable.execute(CommandLineExecutable.java:117)
 at org.broadinstitute.sting.commandline.CommandLineProgram.start(CommandLineProgram.java:221)
 at org.broadinstitute.sting.gatk.CommandLineGATK.main(CommandLineGATK.java:87)

==>

This is a terrible error message with what I suspect is a fairly simple cause: I think you're running with a different reference (or different version of the same reference) than the reference to which your BAMs were initially aligned. Can you check to make sure that the version of the reference you're using matches the BAMs exactly?
(http://getsatisfaction.com/gsa/topics/unifiedgenotyper_problem_with_nt_option)
Posted by 옥탑방람보
,
SOLiD의 BAM파일의 경우에는 base quality을 ord('A') 를 한 후 -33 을 하면 됨. (0~40 까지의 범위)

QUAL: ASCII of base QUALity plus 33 (same as the quality string in the Sanger FASTQ format).
A base quality is the phred-scaled base error probability which equals 10 log10 Pr{base is wrong}.
This eld can be a `*' when quality is not stored. If not a `*', SEQ must not be a `*' and the
length of the quality string ought to equal the length of SEQ.


기본적으로 모두 옛날부터 시퀀서에서 적용되던 phred quality score의 개념을 따른다. 10 10%의 에러 확률, 20 1%의 에러 확률, 30은 0.1%의 에러 확률을 의미한다예를 들어 어떤 시퀀서가 99.99%의 정확도를 냈다고 한다면 그건 생산된 데이터(reads)의 대부분이 QV40 이상이었다는 의미가 된다장비마다 데이터를 생산하면서 각 메커니즘에 맞게 어떤 신호가 어떤 형식으로 나와서 그게 base call 또는 color call을 할 때 어느 정도의 정확성을 보이는지 미리 training 시켜서 얻은 경험(?)으로 나타낸다보통 다양한 생물종의 데이터를 준비하고 같은 기종이라도 여러 대에서 실험하면서 일종의 점수표를 만드는 것으로 안다따라서 개념은 같지만 서로 다른 기종의 QV를 그대로 비교하는 건 좀 위험하며기종에 따라 QV를 좀 더 좋게 보여주는 것이 있을 수도 있다시퀀싱을 한 후에 일차적인 평가를 하는데 중요한 단서이기는 하지만 실제 최종적인 서열의 정확도를 보여주는 것은 아니다참고로 다른 NGS들과 달리 SOLiD에서는 QV를 기반으로 한 필터링을 하지 않고 일단 모두 raw data로 생산한다복잡한 genome에서 QV가 특별하게 낮은 영역도 있을 수 있으므로, 그러한 곳에 대한 정보를 전부 잃기보다는 일단 분석 과정까지 가지고 간다는 의미가 있다. 
Posted by 옥탑방람보
,