[med-svn] [arden] 01/02: Imported Upstream version 0.0.20130425
Andreas Tille
tille at debian.org
Fri Feb 7 12:00:07 UTC 2014
This is an automated email from the git hooks/post-receive script.
tille pushed a commit to branch master
in repository arden.
commit c1911383ec8e0c966121c9d68128a96d2c79e7e7
Author: Andreas Tille <tille at debian.org>
Date: Fri Feb 7 13:02:55 2014 +0100
Imported Upstream version 0.0.20130425
---
LICENSE | 24 +
README | 157 +++
arden-analyze | 277 ++++
arden-create | 256 ++++
arden-filter | 278 ++++
core/AnalyseMapping.py | 1192 +++++++++++++++++
core/FindOrfs.py | 283 ++++
core/InsertMutations.py | 288 ++++
core/PlotData.py | 295 +++++
core/Prep.py | 162 +++
core/ReadAndWrite.py | 188 +++
doc/api-objects.txt | 105 ++
doc/class-tree.html | 117 ++
doc/core-module.html | 162 +++
doc/core-pysrc.html | 115 ++
doc/core.AnalyseMapping-module.html | 1729 +++++++++++++++++++++++++
doc/core.AnalyseMapping-pysrc.html | 1302 +++++++++++++++++++
doc/core.AnalyseMapping.CustomRead-class.html | 208 +++
doc/core.AnalyseMapping.ReadID-class.html | 147 +++
doc/core.AnalyseMapping.TPRead-class.html | 203 +++
doc/core.FindOrfs-module.html | 321 +++++
doc/core.FindOrfs-pysrc.html | 398 ++++++
doc/core.InsertMutations-module.html | 403 ++++++
doc/core.InsertMutations-pysrc.html | 403 ++++++
doc/core.Mem-module.html | 285 ++++
doc/core.Mem-pysrc.html | 244 ++++
doc/core.PlotData-module.html | 224 ++++
doc/core.PlotData-pysrc.html | 406 ++++++
doc/core.Prep-pysrc.html | 277 ++++
doc/core.ReadAndWrite-pysrc.html | 303 +++++
doc/core.insert_mutations-module.html | 403 ++++++
doc/core.orfs-module.html | 328 +++++
doc/core.prep-module.html | 460 +++++++
doc/core.readandwrite-module.html | 501 +++++++
doc/crarr.png | Bin 0 -> 340 bytes
doc/epydoc.css | 322 +++++
doc/epydoc.js | 293 +++++
doc/frames.html | 17 +
doc/help.html | 272 ++++
doc/identifier-index.html | 518 ++++++++
doc/index.html | 17 +
doc/module-tree.html | 124 ++
doc/redirect.html | 38 +
doc/script-arden_analyze-module.html | 199 +++
doc/script-arden_create-module.html | 245 ++++
doc/script-arden_filter-module.html | 389 ++++++
doc/toc-core-module.html | 31 +
doc/toc-core.AnalyseMapping-module.html | 73 ++
doc/toc-core.FindOrfs-module.html | 35 +
doc/toc-core.InsertMutations-module.html | 36 +
doc/toc-core.Mem-module.html | 34 +
doc/toc-core.PlotData-module.html | 35 +
doc/toc-core.ReadAndWrite-module.html | 39 +
doc/toc-core.insert_mutations-module.html | 36 +
doc/toc-core.orfs-module.html | 35 +
doc/toc-core.prep-module.html | 38 +
doc/toc-everything.html | 118 ++
doc/toc-script-arden_analyze-module.html | 34 +
doc/toc-script-arden_create-module.html | 36 +
doc/toc-script-arden_filter-module.html | 39 +
doc/toc.html | 42 +
61 files changed, 15539 insertions(+)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..3035bfe
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,24 @@
+Copyright (c) 2012, Sven H. Giese, gieses at rki.de
+Robert Koch-Institut, Germany,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL MARTIN S. LINDNER BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README b/README
new file mode 100644
index 0000000..1803862
--- /dev/null
+++ b/README
@@ -0,0 +1,157 @@
+ARDEN - Artificial Reference Driven Estimation of false positives in NGS
+https://sourceforge.net/p/arden/
+
+CURRENT VERSION: 1.0
+
+---------------------------------------------------------------------------
+Table of Contents
+---------------------------------------------------------------------------
+ 1. Overview
+ 2. Latest Version
+ 3. Documentation
+ 4. Installation
+ 5. Dependencies
+ 6. Usage Example
+ 7. Contact
+ 8. Licensing
+
+
+ 1. Overview
+ ---------------------------------------------------------------------------
+ ARDEN is a collection of tools to estimate the number of false positives in NGS
+ read mapping. It includes three moduls ('createAR','analyse' and 'filter') to
+ perform a False Discovery Rate estimation. For a detailed getting started guide
+ have a look at the wikki:
+ https://sourceforge.net/p/arden/
+
+
+
+ 2. Latest Version
+ ---------------------------------------------------------------------------
+ The latest version of ARDEN can be downloaded at sourceforge:
+ The current version is 1.0
+ https://sourceforge.net/p/arden/
+
+
+ 3. Documentation
+ ---------------------------------------------------------------------------
+ The documentation is available as of the date of this release in html format
+ in the docs/ directory. You may also find useful information in the wikki:
+ https://sourceforge.net/p/arden/
+
+
+ 4. Installation
+ ---------------------------------------------------------------------------
+ ARDEN is a collection of python scripts and therefore needs no installation.
+ It was built and tested on a Linux platform. However, for convenient access it
+ is recommended to do the following adjustments to your environment variables:
+ export PATH = $PATH:/path/to/ARDEN
+
+
+ 5. Dependencies
+ ---------------------------------------------------------------------------
+ ARDEN makes use of the following python packages, that are all mandatory
+ (ARDEN was developed under Python 2.7):
+
+ * Python 2.7, http://www.python.org/
+ * NumPy 1.6.1, http://numpy.scipy.org/
+ * SciPy 0.10.0, http://www.scipy.org/
+ * HTSeq 0.5.3p9, https://pypi.python.org/pypi/HTSeq
+ * matplotlib 1.1.0, http://matplotlib.org/
+
+
+ 6. Usage Examples
+ ---------------------------------------------------------------------------
+ ARDEN consists of various programs:
+ * arden-create: creates an artificial reference genome for a given DNA sequence
+ * arden-analyse: compares results on the artificial and original reference mappings
+ * arden-filter: depending on a user defined cut-off a SAM file is filtered
+
+ To display the detailed help information for every tool just run arden-toolname --help,
+ e.g. arden-create --help. For a getting started guide visit the wikki on sourceforge.net
+
+ 6.1 arden-create
+ ---------------------------------------------------------------------------
+ The aim is to generate an artificial reference genome from an input genome.
+ The target folder have to specified as 1st argument. There are various options
+ constraining this task. The most important option is the minimum distance between
+ two subsitutions. It is specified with -d and should be adjusted to read length
+ and desired error level. The final value for is internally d-3. If you specify
+ -d 15 as option the minimum distance will be 12.
+
+ arden-create results/ sample.fasta -d 18
+
+
+ 6.2 arden-analyze
+ ---------------------------------------------------------------------------
+ The aim is to compare mappings (in sorted SAM file format) of the reference genome
+ and the artificial genome created in the first step. Since a lot of input options
+ are required the program is controled through an inifile. Refere to doc\sample\
+ or the online wikki for creating this file correctly.
+
+ In general the ini file looks like this (with 2 mapper specified):
+
+ $:/PATH/TO/REFERENCE/FASTA
+ #:/PATH/TO/ARTIFICIAL/FASTA
+ &:/PATH/TO/READFILE
+ @MapperName_1
+ ref:PATH/TO/SORTED/SAM/FILE/REFERENCE_1
+ art:PATH/TO/SORTED/SAM/FILE/ARTIFICIAL_1
+ +
+ @MapperName_2
+ ref:PATH/TO/SORTED/SAM/FILE/REFERENCE_2
+ art:PATH/TO/SORTED/SAM/FILE/ARTIFICIAL_2
+ +
+
+
+ arden-analyze inifile.txt outputfolder/
+
+
+
+ 6.1 arden-filter
+ ---------------------------------------------------------------------------
+ Given a sensitivity and specificity analyzes and the corresponding alignment
+ features a new SAM file is generated, where suboptimal alignments are excluded.
+ The options are the read quality score , number of gaps, number of mismatches,
+ the alignment file in sorted SAM format and the desired outputfilename.
+ The relation concerning the options are the following: rqs >= option,
+ gaps <= option, mismatches <= option.
+
+ arden-filter alignment.sam filtered.sam -r 0 -g 3 -m 3
+
+
+
+ 8. Contact
+ ---------------------------------------------------------------------------
+ For any suggestions please contact renardB at rki.de.
+
+ 9. Licensing
+ ---------------------------------------------------------------------------
+
+ Copyright (c) 2012, Sven H. Giese, gieseS at rki.de,
+ Robert Koch-Institut, Germany,
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ DISCLAIMED. IN NO EVENT SHALL MARTIN S. LINDNER BE LIABLE FOR ANY
+ DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+
\ No newline at end of file
diff --git a/arden-analyze b/arden-analyze
new file mode 100755
index 0000000..93eeec7
--- /dev/null
+++ b/arden-analyze
@@ -0,0 +1,277 @@
+#!/usr/bin/env python
+"""
+Created on Thu Aug 18 2012
+
+Script for analyzing mapping results using an artificial reference genome (ART / ARG). An exhaustive comparison is performed between the input files (SAM format).
+The goal is to calculate a ROC curve and the AUC value to compare different read mapper / different settings on the same read mapper. Therefore FP and TP have to be identified.
+The TP are from the original reference. The FP are from the ART and are defined as unique mappings in a sense that no FP alignment occurs on the reference.
+
+ at author: Sven Giese
+"""
+
+
+
+"""
+Copyright (c) 2012, Sven H. Giese, gieseS at rki.de,
+Robert Koch-Institut, Germany,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL MARTIN S. LINDNER BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""
+
+
+import time
+import cProfile
+import sys
+from optparse import OptionParser
+import os
+
+
+from core import AnalyseMapping as AM
+from core import PlotData as PD
+
+
+
+def TestFiles(input):
+ """Function which checks if all required files are correctly specified (existing) """
+ controlDic = AM.readInput(input)
+ # indicator variable
+ error = 0
+ for mapper in controlDic["mapper"].keys():
+ # does the file exist?
+ try:
+ # yes
+ fobj = open(controlDic["mapper"][mapper][0][0],"r")
+ fobj.close()
+ except IOError:
+ # nope --> error
+ print "error opening file %s. Does it exist?" % controlDic["mapper"][mapper][0][0]
+ error =1
+
+ # do the same for the artificial reference mappings
+ for p,artificial in enumerate(controlDic["mapper"][mapper][1]):
+ try:
+
+ fobj = open(artificial,"r")
+ fobj.close()
+ except IOError:
+ print "error opening file %s. Does it exist?" % artificial
+ error =1
+ return(error)
+
+def main():
+ """ Control function for arden-analyze """
+ usage = """usage: %prog [options] [INPUT FILE] [OUTPUTFOLDER] ...
+ Required Arguments:
+
+ OUTPUTFOLDER:\t path to output destination folder.
+ INPUT FILE: \t ppath to ini file. To get the required format have a look at the example files.
+
+ Script to analyze the results of the artificial reference genome mapping. This script identifies the putative TPs / FPs
+ on a specific data set (reads).
+ """
+
+ parser = OptionParser(usage=usage,version="%prog 1.0")
+ parser.add_option("-p", "--phred", type='int',dest="phred",action="store", default=33,help="Specify the PHRED encoding of the input reads i.e. Illumina 1.3+ = -p 33.[default: %default]")
+ parser.add_option("-r", "--internalrank", type='int',dest="rank",action="store", default=1,help="Use internal ranking for reads (needed if the read names cannot be lexicographically be sorted in the same way in python and your OS by sam tools).[default: %default]")
+ parser.description=""
+ (options, args) = parser.parse_args()
+ numArgs = len(args)
+
+ # numArgs has to be equal to # required parameters
+ if numArgs ==2 :
+ input = args[0]
+ outpath = args[1]
+ # adjust options, otherwise default is used
+ internalrank = options.rank
+ phred = options.phred
+
+
+ else:
+ print("!!!Wrong number of parameters!!!")
+ parser.print_help()
+ sys.exit(1)
+
+
+
+
+ UseInternalRank = 1
+ controlDic = AM.readInput(input)
+
+ print("#######################################################################################")
+ print ("Input Settings:")
+ print ("Inputfile:\t%s" % input)
+ print ("Outputpath:\t%s" % outpath)
+ print ("Reads:\t%s" % controlDic["fastqfile"])
+ print ("UseInternalRank:\t%s" % UseInternalRank)
+ print ("Phred:\t%s" % phred)
+ print("#######################################################################################")
+ print ("\r\nStart...")
+ error = TestFiles(input)
+ if error == 1:
+ print "Program aborted. Check your inputfiles!"
+ sys.exit()
+ else:
+ print "Inputfiles checked successfully."
+
+ # check if output dir exists; else create output
+ if not os.path.exists(os.path.dirname(outpath)):
+ os.makedirs(os.path.dirname(outpath))
+
+ # readdictionary with ID as key and quality as VALUE
+ start1 = time.time()
+ readdic = AM.readReadQualities(controlDic["fastqfile"])
+ end1 = time.time()
+ # extend Readdic
+ readdic,reverseReadArray = AM.extendReadDic(readdic)
+
+
+ # init resultdictionary which carries all information about temporary results etc.
+ resultdic = {}
+ resultdic["nreads"] = len(readdic)
+ resultdic["maxalngt"] = 0
+ resultdic["AUC"] = {}
+ resultdic["alngts"] = {}
+ resultdic["id"] =[]
+ resultdic["mapper"] =[]
+ resultdic["lines"] = {}
+ resultdic["mreads"] = {} # mapped reads
+
+
+
+ # init list for comparing artificial and reference
+ compareList = []
+
+
+
+ #### looping #####
+ print ("########Progress (analysis):########")
+ print ("Mapper\t\tOutputfile\t\tOverallAlignments (TP/FP)\t\t Time")
+ for mapper in controlDic["mapper"].keys():
+
+
+ resultdic["mapper"].append(mapper)
+ # initialize output files (write once to them in case an earlier version exists)
+ AM.initOutFiles(controlDic,mapper,outpath)
+ # set refname
+ refname = controlDic["mapper"][mapper][0][0].split("/")[-1]
+
+ print ("%s" %mapper.upper()),
+
+ if UseInternalRank == 1:
+ rankDic = AM.GetOrderDictionary(controlDic["mapper"][mapper][0][0])
+
+ for p,artificial in enumerate(controlDic["mapper"][mapper][1]):
+ # list for calculation the difference between reference and artificial within a read region
+ compareList = AM.CreateCompareList(controlDic["fasta"]["reffasta"],controlDic["fasta"]["artfasta"][p])
+ filename = artificial.split("/")[-1]
+ outfile = mapper+"_"+artificial.split("/")[-1][:-4]+".esam"
+
+
+ start = time.time()
+ # main function, write results to 4 variables
+ tp,fp,LineCounter,MappedReads = AM.ReadSAMnoMem(controlDic["mapper"][mapper][0][0],artificial,outpath+outfile,compareList,readdic,rankDic,phred)
+ end = time.time()
+ # dummy, configurable sensitivity calculation
+ tempmaxsens = tp
+ # maintain results in the resultstructure dictionary
+ resultdic["alngts"][outfile] = (tp,fp)
+ resultdic["lines"][outfile] = LineCounter
+ resultdic["mreads"][outfile] = MappedReads
+ resultdic["id"].append(outfile)
+
+ print (outfile),
+ print ("\t%0.2f (%0.2f/%0.2f)" %(tp+fp,tp,fp)),
+ print ("\t%0.2f sec." %(end-start))
+ ##################################################################################################################################
+
+
+ # start evaluation process. SAM files are not getting touched anymore
+ print ("\r\n########Progress (evaluation):########")
+ print ("Mapper\tTP\tFP\tTime")
+ for resultfile in resultdic["id"]:
+ print resultfile.split("_")[0],
+
+ #do sme name generation for this iteration
+ prefix = outpath+resultfile.split(".")[0]
+ filename = resultfile.split(".")[0]
+
+ # read data into an array
+ dataArray = AM.ReadFromTab(outpath+resultfile,resultdic["lines"][resultfile])
+
+ # get tp and fp arrays
+ tp =[i for i in dataArray if i.mr[0] ==1]
+ fp =[i for i in dataArray if i.mr[0] ==0]
+
+ print ("\t %d" % resultdic["alngts"][resultfile][0]), # TP
+ print ("\t %d" % resultdic["alngts"][resultfile][1]), # FP
+
+ start = time.time()
+ #try:
+ resultdic["AUC"][resultfile] = PD.CalculateRoc2(dataArray,prefix,resultdic["nreads"],resultdic["lines"][resultfile],resultdic["mreads"][resultfile],filename)
+ #except:
+ #print("error calculating AUC...")
+
+
+ end = time.time()
+ print ("\t%0.2f" %(end-start))
+
+ # prepare labels and names for plotting the data
+ ids =[i for i in resultdic['id']]
+ mappernames = [i for i in resultdic['mapper']]
+ label = [k for k in xrange(1,len(ids)+1)]
+ tuple =[resultdic['alngts'][k] for k in ids]
+ tp = [i[0] for i in tuple]
+ fp = [i[1] for i in tuple]
+
+
+ # plot an histogram: tp,fp comparison (all mappers included)
+ PD.plotOverviewHist(fp,tp,label,prefix,mappernames)
+
+
+ fobj = open(outpath+"results.txt","w")
+
+ ## maintain resultfile
+ fobj.write("mapper\tfile\ttp\tfp\tsens\tspec\tAUC\tmappedReads\tInputReads\tF\r\n")
+ for resultfile in (resultdic["id"]):
+
+ mapper = resultfile.split("_")[0]
+ file =resultfile.replace(".esam","")
+ tp =resultdic["alngts"][resultfile][0]
+ fp = resultdic["alngts"][resultfile][1]
+
+ #sens = (tp / tp+fp) * F
+ sens = round((float(tp) / resultdic["lines"][resultfile]) * (float(resultdic["mreads"][resultfile] )/ resultdic["nreads"]),3)
+ #sens = 1-(fp / tp+fp) * F
+ spec = 1- round((float(fp) / resultdic["lines"][resultfile]) * (float(resultdic["mreads"][resultfile]) / resultdic["nreads"]),3)
+ auc = resultdic["AUC"][resultfile]
+ pmappedReads = round(float(resultdic["mreads"][resultfile]) / resultdic["nreads"],3)
+ fobj.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" %(mapper,file,tp,fp,sens,spec,auc,resultdic["mreads"][resultfile],resultdic["nreads"],pmappedReads))
+ fobj.close()
+
+
+if __name__ == "__main__":
+ a = time.time()
+ main()
+ b = time.time()
+ print ("Finished!")
+ print ("Done in %0.2f seconds!" % (b-a))
\ No newline at end of file
diff --git a/arden-create b/arden-create
new file mode 100755
index 0000000..9bf7622
--- /dev/null
+++ b/arden-create
@@ -0,0 +1,256 @@
+#!/usr/bin/env python
+"""
+Created 2012
+Main script for generating an artificial reference genome. It calls various modules from core.
+
+ at author: Sven Giese
+"""
+
+
+
+
+
+"""
+Copyright (c) 2012, Sven H. Giese, gieseS at rki.de,
+Robert Koch-Institut, Germany,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL MARTIN S. LINDNER BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""
+
+
+
+
+
+import time
+import os
+import sys
+
+import HTSeq
+from optparse import OptionParser
+
+
+# import ARDEN
+from core import FindOrfs as ORFS
+from core import ReadAndWrite as RAW
+from core import InsertMutations as IM
+from core import Prep as INI
+
+#global variable for DNA basecount
+bases = 0
+
+def printExample():
+ """
+ Function that prints some usage examples.
+
+ """
+ print("\r\nEXAMPLES:\r\n")
+ print ("Here are 3 simple examples with all kinds of different settings. The general input scheme is:")
+ print ("usage: python createAR.py [options] [OUTPUTFOLDER] [INPUT FASTA])\r\n")
+ print("Case 1:")
+ print("\t -f random.fasta (inputfile)")
+ print("\t -p /home/ART (outputpath)")
+ print("\t -d 12 (minimum distance >= 9)")
+ print("\t -o 1 (protect start / stop codons)")
+ print("\t -r 1 (If no balanced mutation can be found for a nucleotide don't change it)")
+ print("\t -m 1 (select start position randomly)")
+ print("\t -s /home/ART/randomorfs (save start stop codons in file)")
+ print("CALL:\tpython createAR -s /home/ART/randomorfs -d 12 -o 1 -r 1 -m 1 /home/ART/ random.fasta\r\n")
+ print("Case 2:")
+ print("\t -f random.fasta (inputfile)")
+ print("\t -p /home/ART (outputpath)")
+ print("\t -d 12 (minimum distance >= 9)")
+ print("\t -o 0 (mutation of start / stop codons is allowed)")
+ print("\t -m 0 (start the search for a balanced mutation from left to right in genome)")
+ print("\t -r 0 (ignore balanced mutations conditions)")
+ print("CALL:\tpython createAR -d 12 -o 0 -r 0 -m 0 /home/ART/ random.fasta \r\n")
+ print("Case 3: (use default settings but load previously created orf file)")
+ print("\t -f random.fasta (inputfile)")
+ print("\t -p /home/ART (outputpath)")
+ print("\t -l /home/ART/randomorfs.p (pickle file)")
+ print("CALL:\tpython createAR -l /home/ART/randomorfs.p /home/ART/ random.fasta \r\n")
+
+
+def Create():
+ """
+ Function that controls the generation of an artificial reference genome. Subfunction calls, preparation of data structures etc.
+ """
+
+ usage = """usage: %prog [options] [OUTPUTFOLDER] [INPUT FASTA]...
+ Required Arguments:
+
+ OUTPUTFOLDER:\t complete path to output destination folder
+ INPUT FASTA: \t Single sequence Fasta file.
+
+ Script to generate an artificial reference genome (AR) from a given input. The AR fullfills
+ the following conditions by default settings:
+ 1) has a nucleotide distribution equal to the input genome
+ 2) has an amino acid (aa) distribution equal to the input genome
+ 3) keeps the aa neighborhood similar to the neighborhood in input genome
+ 4) protects start and stop codons from mutations
+ """
+
+ parser = OptionParser(usage=usage,version="%prog 1.0")
+ parser.add_option("-d", "--distance", type='int',dest="distance",action="store", default=15,help="distance between 2 mutations on DNA level. The minimum distance will then be d-3. [default: %default]")
+ parser.add_option("-o", "--orf", type='string',dest="orf",action="store", default=1,help="1- protect ORF structure from mutations.\r\n 0 - allow mutations in start / stop codon [default: %default]")
+ parser.add_option("-r", "--revsub", type='int',dest="revsub",action="store", default=1,help="1 - reverse substitution if no suitable counterpart was found (balanced mutation). 0 - keep the unbalanced mutations.[default: %default]")
+ parser.add_option("-m", "--random", type='int',dest="random",action="store", default=1,help=" 1/0 variable. 1 - shuffled starting positions for the mutations. 0 - linear mutation [default: %default]")
+ parser.add_option("-s", "--saveorfs", type='string',dest="sorf",action="store", default="",help="Save found start and stop codons in a pickle file (can be loaded if the input fasta is used again if a filename is specified). [default: %default]")
+ parser.add_option("-l", "--loadorfs", type='string',dest="lorf",action="store", default="",help="Specify filename to a previously created pickle file (contains positions of start/stop codons) [default: %default]")
+ parser.add_option("-n", "--name", type='string',dest="name",action="store", default="",help="Specify name which will be used as header. [default: %default]")
+ parser.add_option("-p", "--pexamples", type='int',dest="pexamples",action="store", default=0,help="set to 1 if you want to print examples")
+ parser.description=""
+ (options, args) = parser.parse_args()
+ numArgs = len(args)
+
+ # check if examples shall be printed
+ if options.pexamples == 1:
+ # self defined function to print
+ printExample()
+ # exit program
+ sys.exit()
+
+ # numArgs has to be equal to # required parameters
+ if numArgs ==2 :
+ outputpath = args[0]
+ inputpath = args[1]
+ # adjust options, otherwise default is used
+ distance = options.distance
+ orfs = options.orf
+ rev = options.revsub
+ random = options.random
+ sorfs = options.sorf
+ lorfs = options.lorf
+ fastaheader = options.name
+ else:
+ print("!!!Wrong number of parameters!!!")
+ print("Add --help to print help message.")
+ #parser.print_help()
+ sys.exit(1)
+
+
+ # adjust to complete path
+ #outputpath = os.path.abspath(outputpath+"/")
+ print outputpath
+
+ # create output directory if necessary
+ if not os.path.exists(os.path.dirname(outputpath)):
+ os.makedirs(os.path.dirname(outputpath))
+
+
+
+ # number of nucleotides in genome
+ global bases
+ '''0. Step: prepare dictionaries and load DNA'''
+
+ print("\r\n###############Your Settings:######################")
+ print("outputpath:\t"+ str(outputpath))
+ print("inputfile:\t"+ str(inputpath))
+ print("distance:\t" + str(distance))
+ print("orfs:\t\t" + str(orfs))
+ print("rev:\t\t" + str(rev))
+ print("random:\t\t" + str(random))
+ print("###################################################")
+ print ("\r\nStart:")
+ print("\tReading DNA...")
+ Reference = RAW.readdna(inputpath)
+
+ #adjust reference name to option
+ if fastaheader == "":
+ Reference.name = ''.join(e for e in Reference.name if e.isalnum())
+ else:
+ Reference.name = fastaheader
+
+ # generate header with all information (which options enabled etc.)
+ ArtHead = "AR_%s%s%s_%s_%s" % (str(orfs),str(rev),str(random),str(distance),Reference.name)
+
+ # INIT OUTFILES
+ # This file contains a complete log of the mutation algorithm
+ # Position for initial mutation in NUC / AA and the 2nd mutation if it was successful
+ fobj2= open(outputpath+ArtHead+"_CompleteLog.txt","w")
+ fobj2.close()
+
+ #1. Step :Find Orfs
+
+ # init orf dictionary
+ pdic={}
+
+ # load orfs= yes?
+ if (lorfs != ""):
+ pdic = INI.loadpickle(lorfs)
+ # else create orfs
+ else:
+ if (orfs ==1 ):
+ #keep orf structure - enabled
+ print("Searching Orfs...")
+
+ pdic= ORFS.find_orfs(Reference.seq,pdic)
+ if sorfs != "":
+ INI.savepickle(pdic,sorfs)
+ #keep orf structure - disabled --> do nothing
+
+
+ #2. Step: Translate DNA
+ print("\tTranslating DNA...")
+ AminoA =""
+ # dna which cannot be used for AA translation
+ rest_DNA = ""
+ AminoA,rest_DNA = INI.trans_seq(Reference.seq)
+
+
+
+ #3. Step: Mutate DNA /AA
+ print("\tMutate DNA...")
+ # generate artifical genome sequence
+ AR = HTSeq.Sequence(IM.mutate_random(Reference.seq,AminoA,distance,pdic,rev,ArtHead,random,outputpath),ArtHead)
+ # write AR to output fasta
+ RAW.writefile(AR,outputpath+"/"+ArtHead+".fasta")
+
+
+ '''4. Step: Compare Genomes'''
+ # compare hamming distance between REF and ART
+ RAW.gethammingdistance(Reference.seq,AR.seq)
+
+ # compare NUC and AA distributions of REF and ART
+ n1=RAW.nucleotide_dist_seq(Reference.seq,Reference.name+"_dis.txt",0)
+ n2=RAW.nucleotide_dist_seq(AR.seq,ArtHead+"_dis.txt",0)
+
+ #translate sequence of the artifical reference genome
+ AminoA_AR,dummy3=INI.trans_seq(AR.seq)
+
+ a1=RAW.aa_dist_seq(AminoA,outputpath+Reference.name+"_dis_protein.txt",0)
+ a2=RAW.aa_dist_seq(AminoA_AR,outputpath+ArtHead+"_dis_protein.txt",0)
+
+ # write the NUC AA distributions to the Delta file
+ RAW.writeoverview(n1,a1,n2,a2,outputpath+ArtHead+"_Delta.txt")
+ bases = len(Reference.seq)
+
+
+
+a = time.time()
+Create()
+b = time.time()
+print ("Finished!")
+print ("Processed %d bases in %f seconds!" % (bases,b-a))
+
+
+
\ No newline at end of file
diff --git a/arden-filter b/arden-filter
new file mode 100755
index 0000000..608aca9
--- /dev/null
+++ b/arden-filter
@@ -0,0 +1,278 @@
+#!/usr/bin/env python
+"""
+Script for filtering alignments with deficient properties (rqs,gaps, mismatches). The script generates a new .SAM file from the input SAM file, where only alignments are
+contained that fulfill certain quality thresholds.
+nm = numberOfMisMatches
+rq = readqualityscore
+MQ = mappingquality
+"""
+
+
+
+"""
+Copyright (c) 2012, Sven H. Giese, gieseS at rki.de,
+Robert Koch-Institut, Germany,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+ * Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+ * The name of the author may not be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL MARTIN S. LINDNER BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+"""
+
+
+
+
+import HTSeq
+import re
+import sys
+import time
+from optparse import OptionParser
+
+
+from core import AnalyseMapping as AM
+
+
+#global counter variables for good /counter1) and bad (counter2) alignments
+counter1 = 0
+counter2 = 0
+
+
+
+def writeFilteredReads(iddic,fastqfile,fastqfileoutput):
+ """
+
+ Reads a .fastqfile and filters them for certain quality values. If an alignment is equally good or
+ better as the threshold it will be written to the filtered .SAM file.
+
+ input: fastq file
+ output: fastq dictionary key = readid; value = qualstr
+
+
+ @type iddic: dictionary
+ @param iddic: dictionary containing read ids.
+
+ @type fastqfile: fastq
+ @param fastqfile: HTSeq readfile object
+
+ @type fastqfileoutput: fastq
+ @param fastqfileoutput: HTSeq readfile object. Alignments that pass the filter are written to this file.
+
+ """
+ counter = 0
+ for read in fastq:
+ # does the read fulfill the conditions?
+ if read.name in iddic:
+
+ counter+=1
+
+ #print fastqoutput
+ print (str(len(iddic)) + " ids" )
+ print (str(counter) + " reads to file written..." )
+ fastqoutput.close()
+
+def getMisGapRQ(alngt):
+ """
+
+ Calculates the number of gaps / mistmatches from an HTSeq alngt. object.
+
+
+
+ @type alngt: HTSeq alignment object
+ @param alngt: Initial SAM file for filtering
+
+
+ @type gaps,mism: integer
+ @param gaps,mism: Number of gaps / mistmatches.
+
+ """
+ cigar = alngt.cigar
+ # gap is generated by insertions / deletions
+ gaps = sum([i.size for i in cigar if i.type=="I" or i.type=="D"])
+ #mismatches cannot be distinguished in a cigar string. use combination of cigar and md tag
+ # to calculate mismatches
+ mism = sum([i.size for i in cigar if i.type=="M"]) - AM.getsum(re.findall("(\d+)", alngt.optional_field("MD")))
+ return(gaps,mism)
+
+def FilterSAM(samfile,MISM,GAPS,RQ,fsam):
+ """
+
+ Calculates the number of gaps / mistmatches from an HTSeq alngt. object.
+
+
+
+ @type alngt: HTSeq alignment object
+ @param alngt: Initial SAM file for filtering
+
+
+ @type gaps,mism: integer
+ @param gaps,mism: Number of gaps / mistmatches.
+
+ """
+
+ #counter1 = good alignments ( better than threshold)
+ global counter1
+
+ #counter2 = bad alignments ( worse than threshold)
+ global counter2
+ SAM = HTSeq.SAM_Reader(samfile)
+ #test = open(teststr,"w")
+ #test.write("RQS\tGAPS\tMM\r\n")
+
+ for alngt in SAM:
+
+ # get gaps,mismatches
+ gaps,mismatches = getMisGapRQ(alngt)
+ try:
+ # in compressed sam files, the sequence as well as the quality for one read is
+ rqs = float(AM.ComputeRQScore(alngt.read.qualstr))
+
+ # only once contained. For avoiding trouble just remember every sequence and qualstr
+ sequence = alngt.read.seq
+ qualstr = alngt.read.qualstr
+
+ # threshold fulfilled?
+ if (int(mismatches) <= MISM and float(rqs) >= RQ and int(gaps) <= GAPS):
+ fsam.write(alngt.get_sam_line()+"\r\n")
+ counter1 +=1
+
+
+ else:
+ # if alignment worse than threshold --> throw away
+ counter2 +=1
+ except:
+ # if a read is incomplete (missing sequence, quality) that it's immediate predecessor must have the same sequence
+ rqs = rqs
+ if int(mismatches) <= MISM and rqs >= RQ and int(gaps) <= GAPS:
+
+ # construct cigar
+ cigar ="".join([str(i.size)+str(i.type) for i in alngt.cigar])
+ qualstr= "*"
+
+ #generate tagdic for beeing able to write additional information (NM, MD tags)
+ tagdic = dict(alngt.optional_fields)
+ # NO PE Support --> '*'
+ tempstr = "\t".join([alngt.read.name,str(alngt.flag),alngt.iv.chrom,str(alngt.iv.start),str(alngt.aQual),cigar,'*','0','0',sequence,qualstr,"NM:i:"+str(tagdic["NM"]),"MD:Z:"+tagdic['MD']+"\r\n"])
+ fsam.write(tempstr)
+ counter1 +=1
+ else:
+ counter2 +=1
+
+ #print ("%s\t%s\t%s\r\n" % (rqs,gaps,mismatches))
+
+ #test.write("%s\t%s\t%s\r\n" % (rqs,gaps,mismatches))
+
+ print ("PASSED\tREMOVED\tOVERALL")
+ print counter1,
+ print "\t",
+ print counter2,
+ print "\t",
+ print counter1+counter2
+
+
+def readHeader(samfile):
+ """
+ Function to retrieve the header from a SAM file.
+ """
+
+ fobj = open(samfile)
+ headerstr= ""
+
+ for line in fobj:
+ if line.startswith("@"):
+ headerstr+=line
+ else:
+ # no header lines are left...
+ break
+
+ return(headerstr)
+
+def filter():
+ """
+ Function for filtering a given sam file. The alignments are evaluated individually in regard to RQS,mismatches and gaps. The input needs to be sorted.
+
+ """
+
+ usage = """usage: %prog [INPUT SAM] [OUTPUTFILE] [OPTIONS]...
+ Required Arguments:
+
+ OUTPUTFILE:\t Outputfilename
+ INPUT: \t Single SAM file to filter.
+ OPTIONS: \t Paramters for filtering.
+
+ Script to filter and a SAM file based on the analysis with ARDEN. It is necessary to specify the desired cutoffs for RQS,GAPS and MM.
+ Type: python filter -e 1 for printing some examples.
+ """
+
+
+
+ parser = OptionParser(usage=usage,version="%prog 1.0")
+ parser.add_option("-r", "--rqs", type='int',dest="rqs",action="store", default=0,help="Threshold for minimum read quality score.. [default: %default]")
+ parser.add_option("-m", "--mismatches", type='int',dest="mm",action="store", default=3,help="Threshold for maximum number of mismatches in an alignment [default: %default]")
+ parser.add_option("-g", "--gaps", type='int',dest="gaps",action="store", default=3,help="Threshold for maximum number of gaps in an alignment. [default: %default]")
+ parser.add_option("-e", "--examples", type='int',dest="pexamples",action="store", default=0,help="set to 1 if you want to print examples")
+ parser.description=""
+ (options, args) = parser.parse_args()
+ numArgs = len(args)
+
+
+ # numArgs has to be equal to # required parameters
+ if numArgs ==2:
+ input = args[0]
+ output = args[1]
+ # adjust options, otherwise default is used
+ rqs = options.rqs
+ mismatches = options.mm
+ gaps = options.gaps
+
+
+ else:
+ print("!!!Wrong number of parameters!!!")
+ parser.print_help()
+ sys.exit(1)
+
+
+ print("###############Your Settings:######################")
+
+ print("inputfile:\t"+ str(input))
+ print("outputfile:\t"+ str(output))
+ print("RQS >=:\t\t"+ str(rqs))
+ print("MM <=:\t\t" + str(mismatches))
+ print("GAPS <=:\t" + str(gaps))
+ print("###################################################")
+ print ("Start...")
+ a = time.time()
+ header = readHeader(input)
+
+ # open samfile
+ fsam = open( output, "w" )
+ fsam.write(header)
+ # actually filter
+ FilterSAM(input,mismatches,gaps,rqs,fsam)
+
+ # close current Readfile
+ fsam.close()
+ b = time.time()
+ print ("DONE in %f seconds!" %(b-a))
+
+
+if __name__ == "__main__":
+ filter()
+
+
diff --git a/core/AnalyseMapping.py b/core/AnalyseMapping.py
new file mode 100644
index 0000000..64babde
--- /dev/null
+++ b/core/AnalyseMapping.py
@@ -0,0 +1,1192 @@
+#!/usr/bin/env python
+""" This script is used to evalulate the mapping results """
+
+import HTSeq
+import cPickle as pickle
+import numpy as np
+import time
+import sys
+import re
+import subprocess
+import random
+import os
+
+
+
+alngts = 0
+AlignedReadsdic = {}
+algnedToRef = 0
+algnedToArt = 0
+phred = 0
+
+""" Helper debug functions.... """
+def savepickle(dictionaary, outputname):
+ pickle.dump(dictionaary, open(outputname + ".p", "wb"))
+ print("Saved .pickle!")
+
+def loadpickle(inputname):
+ dictionary = pickle.load(open(inputname + ".p"))
+ print("Loaded " + inputname + ".pickle!")
+ return (dictionary)
+
+
+class CustomRead:
+ """
+ Class for exhaustive reading of the sam alignments.
+
+ """
+
+ def __init__(self, readname, mr, nm, subs, score, mq, start, end, gaps, mism):
+ self.id = readname # read identifier
+ self.mr = [mr] # matched reference
+ self.subs =[subs] # substitutions in artificial reference genome
+ self.nm = [nm] # number of mismatches (according to SAM)
+ self.rq = score # read quality score
+ self.mq = [mq] # mapping quality
+ self.start = [start] # alignment start
+ self.end = [end] # alignment end
+ #mr,nm,subs,score,mq,start,end
+ self.gaps = [gaps]
+ self.mism = [mism]
+
+ def toObjself(self, read):
+ self.mr.append(read.mr[0])
+ self.subs.append(read.subs[0])
+ self.nm.append(read.nm[0])
+ self.mq.append(read.mq[0])
+ self.start.append(read.start[0])
+ self.end.append(read.end[0])
+ self.gaps.append(read.gaps[0])
+ self.mism.append(read.mism[0])
+
+ def toStr(self, readname):
+ """Converts the object to a string """
+ str = ""
+
+ for i, read in enumerate(self.mr):
+ #print read
+ str += "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (readname, self.mr[i], self.subs[i], self.nm[i], self.rq, self.mq[i], self.start[i], self.end[i], self.gaps[i], self.mism[i])
+ return(str)
+
+ def toStrNoMem(self, identifier):
+ """Converts the object to a string """
+
+ if identifier == "art":
+ str = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (self.id, 0, self.subs[0], self.nm[0], self.rq, self.mq[0], self.start[0], self.end[0], self.gaps[0], self.mism[0])
+ else:
+ str = "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (self.id, 1, 0, self.nm[0], self.rq, self.mq[0], self.start[0], self.end[0], self.gaps[0], self.mism[0])
+ return(str)
+
+
+
+class TPRead:
+ """ Class for exhaustive reading of the sam alignments. Only for TP """
+ def __init__(self, nm, score, mq, start, end, gaps, mism):
+ self.nm = [nm] # number of mismatches (according to SAM)
+ self.rq = score # read quality score
+ self.mq = [mq] # mapping quality
+ self.start = [start] # alignment start
+ self.end = [end] # alignment end
+ self.gaps = [gaps]
+ self.mism = [mism]
+
+ def toObjself(self, read):
+ self.nm.append( read.nm[0])
+ self.mq.append(read.mq[0])
+ self.start.append( read.start[0])
+ self.end.append( read.end[0])
+ self.gaps.append( read.gaps[0])
+ self.mism.append(read.mism[0])
+
+ def toStr(self, readname):
+ str = ""
+ for i, read in enumerate(self.mr):
+ str += "%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (readname, self.nm[i], self.rq, self.mq[i], self.start[i], self.end[i], self.gaps[i], self.mism[i])
+ return(str)
+
+ """ returns 1 if an equal alignment is contained in the array """
+ def isContained(self, read):
+ for i, position in enumerate(self.start):
+ # Checks if a given Read (more accurate the alignment) is already in the object. this is used to check against FP
+ if position == read.start and self.end[i] == read.end:
+ return(1)
+ return(0)
+
+
+class ReadID:
+ """ Class for efficient addressing for np. arrays! """
+ def __init__(self, internalID, quality):
+ self.internalID = internalID
+ self.quality = quality
+
+
+############################################# CLASSES END###########################################
+
+
+def getTPRead(alngt, compareList, readdic):
+ """
+ Funtion which transforms an HTSeq alignment to a TPRead class.
+
+ @type alngt: alignment
+ @param alngt: alignment from the sam file.
+ @type compareList: list
+ @param compareList: list which indicates differences between reference / artificial
+ @type readdic: dictionary
+ @param readdic: Contains ranks and qualities for every entry in the fastq file
+
+ @rtype: TPRead
+ @return: Transformed ReadObject.
+ """
+ cigar = alngt.cigar
+ gaps = sum([i.size for i in cigar if i.type=="I" or i.type=="D"])
+ mism = sum([i.size for i in cigar if i.type=="M"]) - sum([int(s) for s in alngt.optional_field("MD") if s.isdigit()])
+ nm = alngt.optional_field("NM")
+
+ #####->TPRead(nm, score, mq, start, end, gaps, mism, n)
+ return (TPRead(nm, readdic[alngt.read.name], alngt.aQual, alngt.iv.start, alngt.iv.end, gaps, mism))
+
+def getCustomRead(alngt, compareList, readdic):
+ """
+ Funtion which transforms an HTSeq alignment to a CustomRead class.
+
+ @type alngt: alignment
+ @param alngt: alignment from the sam file.
+ @type compareList: list
+ @param compareList: list which indicates differences between reference / artificial
+ @type readdic: dictionary
+ @param readdic: Contains ranks and qualities for every entry in the fastq file
+
+ @rtype: CustomRead
+ @return: Transformed ReadObject.
+
+ """
+ cigar = alngt.cigar
+ # number of gaps is the sum of "I" (insertions) and "D" deletions.
+ gaps = sum([i.size for i in cigar if i.type=="I" or i.type=="D"])
+
+ # mismatches are calculated as cigar XM - MDtag occurrences of numbers
+ # which indicate mismatches
+ mism = sum([i.size for i in cigar if i.type=="M"]) - getsum(re.findall("(\d+)", alngt.optional_field("MD")))
+
+
+ nm = alngt.optional_field("NM")
+
+ ########
+ if len(alngt.read.qualstr) <= 1:
+
+ return (CustomRead(alngt.read.name,0,nm,getHammingdistance(compareList, alngt.iv.start, alngt.iv.end),readdic[alngt.read.name],alngt.aQual,alngt.iv.start,alngt.iv.end,gaps,mism))
+ else:
+ return (CustomRead(alngt.read.name,0,nm,getHammingdistance(compareList, alngt.iv.start, alngt.iv.end),(alngt.read.qual.mean() / (alngt.read.qual.max() - alngt.read.qual.min() + 1)),alngt.aQual,alngt.iv.start,alngt.iv.end,gaps,mism))
+
+def GetOrderDictionary(referenceSAM):
+ """
+ Function to get a dictionary containing the rank of a read (given a sorted samfile by readname, samtools).
+
+ @type referenceSAM: string
+ @param referenceSAM: Inputfile name for reference SAM file.
+ @rtype: dictionary
+ @return: Internalnaming according to the sorting of samtools. Key = ReadID, Value = rank
+ """
+ internalDic = {}
+
+ # use ultrafast awk for getting only readnames from aligned fasta file
+ readnames = str(subprocess.check_output("""awk < %s -F "\t" '{print $1 }'""" % referenceSAM, shell=True))
+
+ # make to list
+ readnames = readnames.split("\n")
+
+ i = 0
+ # skip header files
+ while readnames[i][0] == ("@"):
+ i += 1
+
+ index = 0
+ for k in xrange(i, len(readnames)):
+ if readnames[k] in internalDic:
+ pass
+ else:
+ internalDic[readnames[k]] = index
+ #enumeration of the index
+ index += 1
+
+
+
+ return(internalDic)
+
+
+def getNextLine(textfile, compareList, readdic):
+ """
+ Function which returns the next line from a SAMFile.
+
+ @type textfile: fileobject stream
+ @param textfile: SAMfile
+ @type compareList: list
+ @param compareList: AA sequence of the reference genome.
+ @type readdic: Dictionary
+ @param readdic: Boolean which decides if unbalanced mutations are allowed (only initial mutation is performed)
+ @rtype: Readobj
+ @return: Parsed read from text line.
+ """
+
+ # dummy is needed because nomem and standart reading return "different" values.
+ # dummy, equals readname
+ line = textfile.readline()
+ if not line:
+ return(0)
+ CRead, dummy = readSAMline(line, "noMem", compareList, readdic)
+ return(CRead)
+
+
+
+def getMisGap(mdtag, cigar):
+ """
+ Reads the alignment tag given, the text and a tag to search for
+
+ @type mdtag: string
+ @param mdtag: MDTag from alignment
+ @type cigar: string
+ @param cigar: Cigar from alignment
+ @rtype: gaps,mismatches
+ @return: Parsed gaps and mismatches
+ """
+ deletions = getsum(re.findall("(\d+)D", cigar))
+ insertions = getsum(re.findall("(\d+)I", cigar))
+ gaps = int(insertions + deletions)
+
+ # mismatches are:
+ # ALL Matches from CIGAR - RealMatches from MDTag
+ #
+
+ mismatch = getsum(re.findall("(\d+)M", cigar)) - getsum(re.findall("(\d+)", mdtag))
+
+
+ #print ("%s\t%s\t%s\t%s\t%s\t%s" %(mdtag,cigar,deletions,insertions,mismatch,gaps))
+ return(gaps, mismatch)
+
+def getAllID(textfile, read, compareList, readdic):
+ """
+ Reads all alignments for the current read which are in the SAM file (sorted). If a new read ID is scanned the results are returned.
+
+ @type textfile: fileobject stream
+ @param textfile: SAM file for reading.
+ @type read: read obj
+ @param read: the last read obj which defines the current read id
+ @type readdic: dictionary
+ @param readdic: Look up for quality values.
+ @rtype: (bool,list,bool)
+ @return: a "triple", where 2 bools are defined as indicator variables and a list with all alignments for one read.
+ """
+ # end of file?
+ if read == 0:
+ #parse last read and return
+ CRead = getNextLine(textfile, compareList, readdic)
+ return(getAllID(textfile, CRead, compareList, readdic))
+ else:
+ # start ne list and append read which was read with the last run of getALLID
+ templist = []
+ templist.append(read)
+ # get all reads with same id as "read"
+ while 1:
+ line = textfile.readline()
+ # no text left infile
+ if not line:
+ return(0, templist, 0)
+
+ try:
+ CRead = getCustomRead(HTSeq.SAM_Alignment.from_SAM_line(line), compareList, readdic)
+ #CRead, dummy = readSAMline(line, "noMem", compareList, readdic)
+ except:
+ CRead, dummy = readSAMline(line, "noMem", compareList, readdic)
+
+ if CRead == 0:
+ #
+ return(1, templist, CRead)
+ # same read in current line as was in the last line --> continue reading
+ if CRead.id == read.id:
+ templist.append(CRead)
+ else:
+ return(1, templist, CRead)
+
+
+def CompareAlignments(reflist, artlist,file):
+ """
+ Compares alignments for the reference and artificial reference for a specific read id.
+ The goal is to identify false positives.
+
+ @type reflist: read obj list
+ @param reflist: list containing alignments witht the same ID (reference)
+ @type artlist: read obj list
+ @param artlist: list containing alignments witht the same ID (artificial)
+ @rtype: np.array
+ @return: indices of unique alignments
+ """
+
+
+ artlen = len(artlist)
+ reflen = len(reflist)
+
+ TPcount = reflen
+ FPcount = 0
+ for RefRead in reflist:
+ file.write(RefRead.toStrNoMem("ref"))
+
+ # add 1 for every alignment from the artificial that is found on the reference
+ for i in xrange(0, artlen):
+ # bool which decides if artificial in reference hit
+ ArtInRef = 0
+ for j in xrange(0,reflen):
+ if artlist[i].start == reflist[j].start and artlist[i].end == reflist[j].end:
+ ArtInRef = 1
+ break
+ # hit on artificial not confirmed on reference --> FP
+ if (ArtInRef == 0):
+ FPcount+=1
+ file.write(artlist[i].toStrNoMem("art"))
+
+
+ return(TPcount,FPcount)
+
+"""def WriteToFile(file, list, identifier):
+
+ Writes read obj. to a file.
+
+
+ @type file: read obj list
+ @param file: list containing alignments witht the same ID (reference)
+ @type list: read obj. list
+ @param list: list containing alignments witht the same ID (artificial)
+ @type identifier: string
+ @param identifier: indicator if the results are from the reference or artificial
+
+ file.write(getBestAlignment(list).toStrNoMem(identifier))"""
+
+def SkipHeader(file, compareList, readdic):
+ """
+ Skips the header from a SAM file, but reads the first line of the alignment section.
+
+ @type file: read obj list
+ @param file: list containing alignments witht the same ID (reference)
+ @type compareList: list
+ @param compareList: list for accumulation of the same read id
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ID - read quality mappings.
+ @rtype: read obj.
+ @return: Returns a read obj. from the SAM file.
+ """
+ while 1:
+ temp = file.readline()
+ if temp.startswith("@"):
+ pass
+ else:
+ return(readSAMline(temp, "noMem", compareList, readdic))
+ break
+
+
+def getRanks(RefRead,ArtRead,rankdic):
+ """
+ Function which returns the ranks of 2 given readIDs (read from reference,read from artificial).
+
+ @type RefRead: read obj
+ @param RefRead: read obj (reference)
+ @type ArtRead: read obj
+ @param ArtRead: read obj (artificial)
+ @type rankdic: dictionary
+ @param rankdic: dictionary containing ranks of the read IDs (according to the sorted SAM files).
+ @rtype: int,int
+ @return: returns the false positives and true positives for a SAM file pair (reference, artificial)
+ """
+ # get the ranks resulting from the sorted samfile.
+ RefReadRank = rankdic[RefRead[0].id]
+ if ArtRead[0].id in rankdic:
+ ArtReadRank = rankdic[ArtRead[0].id]
+ else:
+ # if this ReadID is not in the dictionary then it MUST be a FP!
+ ArtReadRank = RefReadRank - 1
+
+ return(RefReadRank,ArtReadRank)
+
+
+def ReadSAMnoMem(ref, art, output, compareList, readdic, rankdic,phredoffset):
+ """
+ Main function for comparing to mappings. This functions takes the complete alignments for artificial and reference genome and goes through them in parallel.
+ Since the mappings are sorted the function alternates the parsing of the samfiles in such a way that no memory is used for comparing these functions.
+
+ @type ref: string
+ @param ref: path to reference alignments (SAM file)
+ @type art: string
+ @param art: path to artificial alignments (SAM file)
+ @type output: read obj
+ @param output: read obj (artificial)
+ @type compareList: read obj
+ @param compareList: read obj (artificial)
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ID - read quality mappings.
+ @type rankdic: dictionary
+ @param rankdic: dictionary containing ranks of the read IDs (according to the sorted SAM files).
+ @rtype: ranks
+ @return: Returns the ranks for the 2 read ids.
+ """
+
+ global phred
+ phred = phredoffset
+
+ fobj = open(output, "w")
+ fobj.write("#ReadID\tMatchedReference\tSubstitutions\tNMtag\tReadQuality\tMappingQuality\tStart\tEnd\tGaps\tMisM\r\n")
+ fileref = open(ref, "r")
+ fileart = open(art, "r")
+
+ # SKip Header section of SAM file
+ CurrentReadRef, dummy = SkipHeader(fileref, compareList, readdic)
+ CurrentReadArt, dummy = SkipHeader(fileart, compareList, readdic)
+
+ # get first readIDs for looping
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+ hasNextLine, RefRead, NextReadRef = getAllID(fileref, CurrentReadRef, compareList, readdic)
+ # variables for counting
+
+ tp = 0
+ fp = 0
+ MappedReads = 0
+ i = 0
+ start = time.time()
+ #Indicator variables which file is end first
+ ArtBool = 0
+ RefBool = 0
+ while 1:
+ i += 1
+ if i == 100000:
+ print "\t\t%f" % (time.time() - start),
+
+ RefReadRank,ArtReadRank = getRanks(RefRead,ArtRead,rankdic)
+
+ #case 1)
+ # Keep reading lines from artificial if the id is < than the one from the reference
+ # this means unique hits to the artificial!
+ #while (RefRead[0].id > ArtRead[0].id and hasNextLine != 0):
+ while (RefReadRank > ArtReadRank and hasNextLine != 0):
+ # in case of multiple hits, set all mr variables to 0 and get the best alignment
+ for l in xrange(0, len(ArtRead)):
+ ArtRead[l].mr = [0]
+
+ # write FP to file
+ for hits in ArtRead:
+ fobj.write(hits.toStrNoMem("art"))
+ fp += 1
+
+
+ # use akku for read lines
+ CurrentReadArt = NextReadArt
+ #get all the reads with the same ID into ArtRead
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+
+ #update rank
+ ArtReadRank = RefReadRank-1 if ArtRead[0].id not in rankdic else rankdic[ArtRead[0].id]
+ MappedReads+=1
+
+ #case 2)
+ # keep reading lines from reference if id is < art.id
+ # all these hits are purely TP
+ #while (RefRead[0].id < ArtRead[0].id and hasNextLine != 0):
+ while (RefReadRank < ArtReadRank and hasNextLine != 0):
+
+ for hits in RefRead:
+ fobj.write(hits.toStrNoMem("ref"))
+ tp += 1
+
+ CurrentReadRef = NextReadRef
+ hasNextLine, RefRead, NextReadRef = getAllID(fileref, CurrentReadRef, compareList, readdic)
+ RefReadRank = rankdic[RefRead[0].id]
+ MappedReads+=1
+
+
+ # case 3)
+ #if (RefRead[0].id == ArtRead[0].id):
+ if (RefReadRank == ArtReadRank):
+ MappedReads+=1
+
+ #same read.id --> compare all Alignments for one read id (can be multiple alignments)
+ # return unique hits to artificial genome
+ tempTP,tempFP = CompareAlignments(RefRead, ArtRead,fobj)
+ tp +=tempTP
+ fp +=tempFP
+ # overwrite akku
+ CurrentReadRef = NextReadRef
+ CurrentReadArt = NextReadArt
+
+
+ # get next Read for next ID and check if file has a next line
+ hasNextLine, RefRead, NextReadRef = getAllID(fileref, CurrentReadRef, compareList, readdic)
+ if hasNextLine == 0:
+ #print "REFBREAK"
+ RefReadRank = rankdic[RefRead[0].id]
+ RefBool = 1
+ break
+
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+ if hasNextLine == 0:
+ #print "ARTBREAK"
+ ArtReadRank = RefReadRank-1 if ArtRead[0].id not in rankdic else rankdic[ArtRead[0].id]
+ ArtBool = 1
+ break
+
+ # if the while loop was broken one read has to be read in the not closed file
+ hasNextLine = 1
+ # the file which has still some lines is now processed linearly...
+ if RefBool == 1:
+ #print ("REF FILE FINISHED!!!")
+ # reference no lines --> read artificial
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+ ArtReadRank = RefReadRank-1 if ArtRead[0].id not in rankdic else rankdic[ArtRead[0].id]
+
+ while (RefReadRank > ArtReadRank and hasNextLine != 0):
+ MappedReads+=1
+ # in case of multiple hits, set all mr variables to 0 and get the best alignment
+ for l in xrange(0, len(ArtRead)):
+ ArtRead[l].mr = [0]
+
+ # write current FP to file
+ # write FP to file
+ for hits in ArtRead:
+ fobj.write(hits.toStrNoMem("art"))
+ fp += 1
+ # use akku for read lines
+ CurrentReadArt = NextReadArt
+ #get all the reads with the same ID into ArtRead
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+
+ #update rank
+ ArtReadRank = RefReadRank-1 if ArtRead[0].id not in rankdic else rankdic[ArtRead[0].id]
+
+
+
+ if (RefReadRank == ArtReadRank):
+ MappedReads+=1
+ #same read.id --> compare all Alignments for one read id (can be multiple alignments)
+ # return unique hits to artificial genome
+ tempTP,tempFP = CompareAlignments(RefRead, ArtRead,fobj)
+ tp +=tempTP
+ fp +=tempFP
+
+
+ while 1:
+
+ if hasNextLine == 0:
+ break
+ else:
+
+ CurrentReadArt = NextReadArt
+ # read next artificial read!
+ hasNextLine, ArtRead, NextReadArt = getAllID(fileart, CurrentReadArt, compareList, readdic)
+
+
+ for hits in ArtRead:
+ fobj.write(hits.toStrNoMem("art"))
+ fp += 1
+ MappedReads+=1
+
+ else:
+ # read again reference file as long as the final read from he artificial file is reached
+ while (RefReadRank < ArtReadRank and hasNextLine != 0):
+ MappedReads+=1
+
+ for hits in RefRead:
+ fobj.write(hits.toStrNoMem("ref"))
+ tp += 1
+ CurrentReadRef = NextReadRef
+ hasNextLine, RefRead, NextReadRef = getAllID(fileref, CurrentReadRef, compareList, readdic)
+ RefReadRank = rankdic[RefRead[0].id]
+
+
+ if (RefReadRank == ArtReadRank):
+ MappedReads+=1
+ #same read.id --> compare all Alignments for one read id (can be multiple alignments)
+ # return unique hits to artificial genome
+ tempTP,tempFP = CompareAlignments(RefRead, ArtRead,fobj)
+ tp +=tempTP
+ fp +=tempFP
+
+
+ else:
+ MappedReads+=1
+ for hits in ArtRead:
+ fobj.write(hits.toStrNoMem("art"))
+ fp += 1
+
+ while 1:
+ if hasNextLine == 0:
+ MappedReads+=1
+ for hits in RefRead:
+ fobj.write(hits.toStrNoMem("ref"))
+ tp += 1
+
+ break
+ else:
+ CurrentReadRef = NextReadRef
+ MappedReads+=1
+ for hits in RefRead:
+ fobj.write(hits.toStrNoMem("ref"))
+ tp += 1
+ hasNextLine, RefRead, NextReadRef = getAllID(fileref, CurrentReadRef, compareList, readdic)
+
+ end = time.time()
+ fobj.close()
+ return(tp, fp,tp+fp,MappedReads)
+##################END: FUNCTIONS FOR NO-MEMORY ANALYSIS ####################
+
+
+def getNumberOf(line, tag):
+ """
+ Reads the alignment tag, given the text and a tag to search for.
+
+ @type line: string
+ @param line: SAM line
+ @type tag: string
+ @param tag: SAM tag. i.e: NM,MD
+ @rtype: int
+ @return: number x behind desired tag tag:i:x
+ """
+
+ # gives the number of XX back
+ # valid tags: X0,XM (number of missmatches
+ m = re.search(tag + ":i:(\d+)", line)
+ besthits = m.group(1)
+
+ return(besthits)
+
+def getsum(strlist):
+ """
+ Sum of strings (as ints)
+
+ @type strlist: list(str)
+ @param strlist: SAM line
+
+ @rtype: int
+ @return: MD tag calculation.
+ """
+
+ return(sum([int(i) for i in strlist]))
+
+def getmean(strlist):
+ """
+ Mean of strings.
+
+ @type strlist: list(str)
+ @param strlist: SAM line
+
+ @rtype: float
+ @return: mean
+ """
+ sum = getsum(strlist)
+ return(sum/float(len(strlist)))
+
+
+def ComputeRQScore(quality):
+ """
+ Computes the ReadQualityScore given a quality string
+
+ @type quality: string
+ @param quality: quality string of a read.
+
+ @rtype: float
+ @return: ReadQualityScore (RQS)
+ """
+ global phred
+
+ # phred --> -33
+ # solexa --> -64
+ qualarray = [ord(i)-phred for i in quality]
+ score =( sum(qualarray)/float(len(qualarray))) / (max(qualarray) - min(qualarray) + 1)
+
+ return (score)
+
+
+def getAlignmentLength(cigar):
+ """
+ Computes the alignment length given a cigar string. Needed for Start + End calculation.
+
+ @type cigar: string
+ @param cigar: Cigar string (SAM)
+
+ @rtype: int
+ @return: alignmentlength
+ """
+ # I - insertions do not extend the alignment
+ # S - does not extend...
+ # P - does not extend...
+ # H - does not extend...
+ match = re.findall("(\d+)[MDN]", cigar)
+ sumOfMatches = 0
+ for item in match:
+ sumOfMatches += int(item)
+ return (sumOfMatches)
+
+
+def isSaneAlignment(alignment, identifier, compareList, readdic):
+ """
+ Checks alignment line for unnecessary informations to skip
+
+ @type alignment: string
+ @param alignment: Line from SAM
+ @type identifier: string
+ @param identifier: read id
+ @type compareList: list
+ @param compareList: list of alignments with same read id.
+ @type readdic: dictionary
+ @param readdic: Dictionary containg a read id; read quality mapping
+ @rtype: readobj, readname
+ @return: Returns the read and it's identifier.
+ """
+
+ if alignment.startswith("@"):
+ return(0, "")
+ else:
+ read, readname = readSAMline(alignment, identifier, compareList, readdic)
+ if read == 0:
+ return(0, "")
+ else:
+ return (read, readname)
+
+
+def CheckForSameAlignments(readref, readart):
+ """
+ Function for comparison of artificial alignments and reference alignments. FP are defined such that start and end position must be unique to the artificial reference
+ returns 0 if no same read is found (FP found)
+ returns 1 if an equal alignment is found
+
+ @type readref: read obj.
+ @param readref: reference
+ @type readart: read obj.
+ @param readart: artificial
+ @rtype: bool
+ @return: Indicator if alignment is the same (start & end equal)
+ """
+ for i, item in enumerate(readref.start):
+ if (readref.start[i] == readart.start[0] and readref.end[i] == readart.end[0]):
+ return(1)
+ return(0)
+
+
+
+def getHammingdistance(CompareString, start, end):
+ """
+ Computes the number of subsitutions in the artificial reference using the CompareString.
+
+ @type CompareString: string
+ @param CompareString: string of 0 and 1s. 1 = hamming 1 between reference and artificial.
+ @type start: int
+ @param start: start of alignment
+ @type end: int
+ @param end: end ofalignment
+ @rtype: int
+ @return: hamming distance
+ """
+ return (sum(CompareString[start:end]))
+
+
+def readReadQualities(fastqfile):
+ """
+
+ Reads a .fastqfile and calculates a defined readscore
+ input: fastq file
+ output: fastq dictionary key = readid; value = qualstr
+
+
+ @type fastqfile: string
+ @param fastqfile: path to fastq file
+
+ @rtype: dictionary
+ @return: dictionary containing read ids and read qualities.
+ """
+ fastq_file = HTSeq.FastqReader(fastqfile , "phred")
+ readdictionary = {}
+
+ for read in fastq_file:
+ readdictionary[read.name.split()[0]] = ComputeRQScore(read.qualstr)
+ print("\tReading Fastq file done!")
+ return readdictionary
+
+
+
+
+def extendReadDic(readdic):
+ """
+ Extends a given dictionary with KEY = readid and VALUE = qualstr such that an internal naming is generated which can be used to efficiently create an numpy array
+
+
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ids and read qualities.
+
+ @rtype: dictionary
+ @return: extended readdic with KEY = ID, VALUE = READID object with READID.internalid and READID.qulstr = qualstr
+ """
+ internalnaming = 0
+ reverseReadDic = np.zeros(len(readdic), dtype='S50')
+ for id in readdic.iterkeys():
+ # i
+ readdic[id] = ReadID(internalnaming, readdic[id])
+ reverseReadDic[internalnaming] = id
+ internalnaming += 1
+ return(readdic, reverseReadDic)
+
+
+
+def returnSequence(fasta):
+ """
+ Returns a sequence string from a fasta file.
+
+
+ @type fasta: string
+ @param fasta: path to fasta file.
+
+ @rtype: string
+ @return: sequence
+ """
+ fastafile = HTSeq.FastaReader(fasta)
+ for sequence in fastafile:
+ return(sequence.seq)
+
+
+
+def CreateCompareList(Reference, ARG):
+ """
+ Creates a list which is used for comparisons between aligned reads (exact number of mismatches)
+
+
+
+ @type Reference: string
+ @param Reference: reference genome
+ @type ARG: string
+ @param ARG: artificial reference genome.
+ @rtype: list
+ @return: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.
+ """
+
+ reference = returnSequence(Reference)
+ artificialreference = returnSequence(ARG)
+ complist = []
+
+
+ if (len(reference) != len(artificialreference)):
+ print "first 10 letter:\t\t" + reference[0:10] + "..." + reference[-10:]
+ print "last 10 letter:\t\t" + artificialreference[0:10] + "..." + artificialreference[-10:]
+ print ("Error! Two Sequences have different length! Try to add a line break after the last nucleotide.")
+ sys.exit(1)
+ else:
+ return([ 0 if x == artificialreference[i] else 1 for i, x in enumerate(reference)])
+
+
+
+def readSAMline(alignment, identifier, compareList, readdic):
+ """
+ Function for reading SAM alignment text file (one line)
+
+
+
+ @type alignment: string
+ @param alignment: SAM alignment
+ @type identifier: string
+ @param identifier: read id
+ @type compareList: list
+ @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ids and read qualities.
+ @rtype: read obj.
+ @return: returns a customRead object
+ """
+ k = 0
+
+ # ignore header
+ columns = alignment.split("\t")
+ flag = int(columns[1].strip())
+
+ # flag 4 = not mapped to any genome
+ if flag == 4:
+ return(0, "")
+
+ else:
+
+
+ readname = columns[0].strip()
+ reference = columns[2].strip()
+ start = int(columns[3].strip())-1
+ mappingquality = columns[4].strip()
+ cigar = columns[5].strip()
+ qualstr = columns[10].strip()
+ tags = " ".join(columns[11:])
+
+ mdtag = re.search("MD:Z:([^\s]+)", tags).group(1)
+ try:
+ mdtag = re.search("MD:Z:([^\s]+)", tags).group(1)
+ gaps, mism = getMisGap(mdtag, cigar)
+ except:
+ gaps = 0
+ mism = 0
+ print "Error Reading MDtag of %s.Setting gaps = 0,mism = 0" % readname
+ try:
+ nm = int(getNumberOf(tags, "NM"))
+ except:
+ nm = 0
+
+ leng = getAlignmentLength(cigar)
+
+ if len(qualstr) == 1 or (len(qualstr.strip()) == 0):
+ score = readdic[readname].quality
+ else:
+ score = ComputeRQScore(qualstr)
+
+ if identifier == "art":
+ #tempobj = CustomRead(0,nm, getHammingdistance(compareList, start, start+leng), score, mappingquality,start,start+leng)
+ tempobj = CustomRead(readname, 0, nm, getHammingdistance(compareList, start, start + leng), score, mappingquality, start, start + leng, gaps, mism)
+ elif identifier == "noMem":
+ tempobj = CustomRead(readname, 1, nm, getHammingdistance(compareList, start, start + leng), score, mappingquality, start, start + leng, gaps, mism)
+
+ else:
+ ##########TPRead(nm, score, mq, start, end, gaps, mism)
+ tempobj = TPRead(nm, score, mappingquality, start, start + leng, gaps, mism)
+
+
+
+ return(tempobj, readname)
+
+
+
+
+
+def returnIndex(readdic, readname):
+ """
+ Returns the index of a read. The index is prescribed by the ordering in the sam file.
+ @type readname: string
+ @param readname: read id
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ids and read qualities.ArtRead
+ @rtype: int
+ @return: index
+ """
+ return(readdic[readname].internalID)
+
+
+def ReadArtificialSAMfileHTSeq(art, compareList, RefArray, readdic):
+ """
+ Function for reading the artificial reference genome using HTSeq.This function is mainly used. Only if no quality string is in the SAM line. The custom
+ SAM reading function is used.
+
+ @type art: string
+ @param art: artificial file.
+ @type RefArray: array
+ @param RefArray: Results from reading the reference SAM file.
+ @type compareList: list
+ @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.
+ @type readdic: dictionary
+ @param readdic: dictionary containing read ids and read qualities.
+ @rtype: array
+ @return: aligned read objects in an array.
+ """
+ start = time.time()
+ #print ("\tARTIFICIAL:")
+ fobj = open(art, "r")
+ artdic = {}
+ k = 0
+
+ read = SkipHeader(fobj,compareList,readdic)
+
+
+ for alignment in fobj:
+ k += 1
+ if k % 1000000 == 0:
+ print ("%d.." %(k/1000000)),
+ read, readname = isSaneAlignment(alignment, "art", compareList, readdic)
+ if read == 0:
+ pass
+ else:
+ # Check by internal naming if spot in array is taken (!= 0) by a read
+ index = returnIndex(readdic, readname)
+ if RefArray[index] != 0:
+ # read already in dic? Check if the alignments are the same
+ if (RefArray[index].isContained(read) == 0):
+ if readname in artdic:
+ artdic[readname].toObjself(read)
+
+ else:
+ artdic[readname] = read
+ else:
+ pass
+
+ else:
+ # new read? Just add it to the dictionary
+ artdic[readname] = read
+
+
+ fobj.close()
+ end = time.time()
+ #print("\r\n")
+ print ("\t %f " % (end - start)),
+ #print ("\tdone in %d seconds" % (end-start))
+ return(artdic)
+
+
+
+def writeToTabArt(ReadDic, outfile):
+ """
+ Write function for hits ont he reference genome. Only the best alignment (least mismatches)
+ Header :
+ ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality
+
+
+ @type outfile: string
+ @param outfile: Path to outfile.
+ @type ReadDic: dictionary
+ @param ReadDic: dictionary containing read ids and read qualities.
+ """
+
+ fobj = open(outfile, "a")
+ for read in ReadDic.keys():
+ BestReadIndex = np.array(ReadDic[read].nm).argmin()
+ fobj.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (read, ReadDic[read].mr[BestReadIndex], ReadDic[read].subs[BestReadIndex], ReadDic[read].nm[BestReadIndex], ReadDic[read].rq, ReadDic[read].mq[BestReadIndex], ReadDic[read].start[BestReadIndex], ReadDic[read].end[BestReadIndex], ReadDic[read].gaps[BestReadIndex], ReadDic[read].mism[BestReadIndex]))
+ fobj.close()
+
+
+
+
+def writeToTabRef(RefArray, outfile, reverseReadArray, ReadDic):
+ """
+ Write function for hits ont he reference genome. Only the best alignment (least mismatches)
+
+ Header :
+ ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality
+ rows in the infile
+ @type RefArray: string
+ @param RefArray: path to inputfile.
+ @type outfile: int
+ @param outfile: rows in the infile
+ @type reverseReadArray: dictionary
+ @param reverseReadArray: Contains reads = values and ranks = keys
+ @type ReadDic: dictionary
+ @param ReadDic: dictionary containing read ids and read qualities.
+ """
+
+ fobj = open(outfile, "a")
+ for i in xrange(0, len(RefArray)):
+ read = RefArray[i]
+ # check if entry == 0
+ if read == 0:
+ continue
+ else:
+ readname = reverseReadArray[i]
+ index = returnIndex(ReadDic, readname)
+ BestReadIndex = np.array(RefArray[index].nm,dtype="int").argmin()
+ fobj.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n" % (readname, 1, 0, RefArray[index].nm[BestReadIndex], RefArray[index].rq, RefArray[index].mq[BestReadIndex], RefArray[index].start[BestReadIndex], RefArray[index].end[BestReadIndex], RefArray[index].gaps[BestReadIndex], RefArray[index].mism[BestReadIndex]))
+ fobj.close()
+
+
+
+def ReadFromTab(infile, arraysize):
+ """
+ Reads the results from writeToTab in for plotting and analysis
+
+ Header :
+ ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality
+
+ @type infile: string
+ @param infile: path to inputfile.
+ @type arraysize: int
+ @param arraysize: rows in the infile
+
+ @rtype: np.array(obj)
+ @return: array for unique classified reads.
+ """
+
+
+ fobj = open(infile, "r")
+ dataArray = np.arange(arraysize, dtype=object)
+ for i, line in enumerate(fobj):
+ if line.startswith("#"):
+ continue
+ else:
+ zeile = line.split("\t")
+ id = zeile[0]
+ mr = int(zeile[1])
+ subs = int(zeile[2])
+ nm = int(zeile[3])
+ rq = float(zeile[4])
+ mq = int(zeile[5])
+ gaps = int(zeile[8])
+ mism = int(zeile[9])
+ #n = int(zeile[10].strip())
+ # id is not needed for the analysis
+ dataArray[i - 1] = CustomRead(id, mr, nm, subs, rq, mq, 0, 0, gaps, mism)
+
+ return (dataArray)
+
+
+
+def readInput(file):
+ """
+ Function for reading in the controldictionary from the inputfile.
+
+ @type file: string
+ @param file: Path to the input file.
+
+ @rtype: files
+ @return: Controldictionary which is used to regulate the programs workflow.
+
+ """
+ fobj = open(file, "r")
+ files = {}
+ files["mapper"] = {}
+ files["fasta"] = {}
+ tempref = []
+ temparg = []
+ reffasta = ""
+ artfasta = []
+
+ for line in fobj:
+ # reference
+ if line.startswith("$"):
+ files["fasta"]["reffasta"] = GetCompletePath(line.split(":")[1].strip())
+ # artificial
+ if line.startswith("#"):
+ artfasta.append(GetCompletePath(line.split(":")[1].strip()))
+ # fastq file
+ if line.startswith("&"):
+ files["fastqfile"] = GetCompletePath(line.split(":")[1].strip())
+ # start sequence for mapper section
+ if line.startswith("@"):
+ zeile = line.split("\t")
+ mapper = zeile[0][1:].strip()
+ files["fasta"]["artfasta"] = artfasta
+ if line.startswith("ref"):
+ tempref.append(GetCompletePath(line.split(":")[1].strip()))
+ if line.startswith("art"):
+ temparg.append(GetCompletePath(line.split(":")[1].strip()))
+ # end of mapper section
+ if line.startswith("+"):
+ files["mapper"][mapper] = [tempref, temparg]
+ tempref = []
+ temparg = []
+
+
+ fobj.close()
+ return(files)
+
+def GetCompletePath(path):
+ return(path.replace("~",os.path.expanduser("~")))
+
+def initOutFiles(controlDic, mapper, outpath):
+ """
+ Since we append in the program, we need to make sure no old files remain...
+
+ @type controlDic: dictionary
+ @param controlDic: dictionary containing future filenames.
+ @type mapper: string
+ @param mapper: current identifier mapper for which the results are written
+ @type outpath: string
+ @param outpath: existing path, where the outfiles will be written.
+ """
+ for artificial in controlDic["mapper"][mapper][1]:
+ filename = artificial.split("/")[-1]
+ outfile = mapper + "_" + artificial.split("/")[-1][:-4] + ".esam"
+ #easy Sam output
+ fobj = open(outpath + outfile, "w")
+ fobj.write("#ReadID\tMatchedReference\tSubstitutions\tNumberOfMismatches\tReadQuality\tMappingQuality\tStart\tEnd\tGaps\tMisM\r\n")
+ fobj.close()
+
diff --git a/core/FindOrfs.py b/core/FindOrfs.py
new file mode 100644
index 0000000..0aa747f
--- /dev/null
+++ b/core/FindOrfs.py
@@ -0,0 +1,283 @@
+#!/usr/bin/env python
+
+
+"""
+FindOrfs, Created 2012
+
+Script to detect start and stop codon of open reading frames in a dna sequence. Note that the algorithm is only rudimentary and does not respect intron-exon structures.
+
+"""
+
+
+def build_ORF(sequence,file_ORF,pdic):
+ """
+ Get orf positions (forward/backward) and return them in a dictionary
+
+ @type sequence: string
+ @param sequence: nucleotide sequence
+ @type file_ORF: string
+ @param file_ORF: outputfile
+ @type pdic: dictionary
+ @param pdic: Used to start start / end positions of ORFs.
+ @rtype: dictionary
+ @return: Stored start start / end positions of ORFs
+ """
+
+
+ START,STOP,STARTrev,STOPrev = find_orfs(sequence,pdic)
+ t=open(file_ORF,'a')
+ print "\t search forward orfs..."
+ orf_counter = 0
+ orf_name = "forw"
+ for i in START:
+ for j in STOP:
+ #3 conditions
+ #first condition: start position needs to be BEFORE the stop position
+ #second condition: our proteins need to be longer than 150 aa AND need to be smaller than the biggest protein we know
+ #third condition: each ORF needs to give a real aa sequence
+ if i<j and (j+3-i)>149 and (j+3-i)<103050 and (j+3-i)%3==0:
+ orf_counter+=1
+ #if all 3 conditions: write the ORF in a file
+ t.write(">"+orf_name+" " + str(orf_counter))
+ t.write('\n')
+ t.write(sequence[i:j+3])
+ t.write('\n')
+ pdic[i]="S" # S = START
+ pdic[j]="E" # E = END
+
+ temp = orf_counter
+
+ orf_counter = 0
+ orf_name = "rev"
+ print "\t search backward orfs..."
+ for i in STARTrev:
+ for j in STOPrev:
+ #3 conditions
+ #if j<i and (j+2-i+1)>150 and (j+2-i+1)<103050 and (j+2-i+1)%3==0: <--alt
+ #first condition: start position needs to be BEFORE the stop position
+ #second condition: our proteins need to be longer than 150 aa AND need to be smaller than the biggest protein we know
+ #third condition: each ORF needs to give a real aa sequence
+ if j<i and (i+3-j)>150 and (j+3-i)<103050 and (j+3-i)%3==0:
+ #if all 3 conditions: write the ORF in a file
+ orf_counter+=1
+ t.write(">"+orf_name+" " + str(orf_counter))
+ t.write('\n')
+ t.write(sequence[j:i+3][::-1])
+ t.write('\n')
+ pdic[i]="E"
+ pdic[j]="S"
+ print(str(temp+orf_counter))
+ t.close()
+
+ return (pdic)
+
+
+def findstop_help(posLastStop,sequence,codon):
+ """
+ return the index of the first position of codon in the dna sequence
+
+ @type posLastStop: int
+ @param posLastStop: Position of the last found stop codon.
+ @type sequence: string
+ @param sequence: Nucleotide sequence.
+ @type codon: string
+ @param codon: 3-letter DNA code.
+ @rtype: int
+ @return: The position of the stop codon in the nucleotide sequence.
+ """
+ try:
+ return(sequence.index(codon,posLastStop))
+
+ except:
+ return(-1)
+
+def find_orfs(genomeSequence,pdic):
+ """
+ function to identify open reading frames in a dna sequence, careful: intron exon structures are not respected!
+
+ @type genomeSequence: string
+ @param genomeSequence: Nucleotide sequence.
+ @type pdic: dictionary
+ @param pdic: Used to store start / end positions of ORFs.
+ @rtype: dictionary
+ @return: Found start / end positions in the sequence consindering only the ORFs.
+ """
+ # got a dictionary and a sequence! lets start!
+ # Startcodon = ATG
+ # Stopcodon = ["TAA","TGA","TAG"]
+
+
+ start =[]
+ stop =[]
+
+ posLastATG = 0
+ posLastStop = 3
+ orfList = []
+
+ # forward
+ print("\t..find forward orfs")
+ while True:
+ foundNew = False
+ # catch error if "ATG" not found!
+ try:
+
+ start.append(genomeSequence.index("ATG",posLastATG))
+ # retrieve last element
+ posLastATG = start[-1]+1
+ foundNew = True
+ except:
+ pass
+
+ stopSub =[]
+ stopcodons =["TAA","TGA","TAG"]
+ for item in stopcodons:
+ stopSub.append(findstop_help(posLastStop, genomeSequence, item))
+
+ stopSub.sort()
+
+ if(stopSub[0] > -1):
+ stop.append(stopSub[0])
+ posLastStop = stop[-1]+1
+ foundNew = True
+
+ elif(stopSub[1] > -1):
+ stop.append(stopSub[1])
+ posLastStop = stop[-1]+1
+ foundNew = True;
+
+ elif(stopSub[2] > -1):
+ stop.append(stopSub[2]);
+ posLastStop = stop[-1]+1
+ foundNew = True;
+
+ if(foundNew):
+ pass
+ else:
+ break
+
+ # reverse now:
+ # start codon: CAT
+ # stop codons: TTA;TCA;CTA
+
+ startRev = []
+ stopRev = []
+
+ posLastCAT = 3
+ posLastStop_rev = 0
+
+ print("\t..find reverse orfs")
+ while True:
+ foundNew_rev = False
+ # catch error if "CAT" not found!
+ try:
+
+ startRev.append(genomeSequence.index("CAT",posLastCAT))
+ # retrieve last element
+ posLastCAT = startRev[-1]+1
+ foundNew_rev = True
+ except:
+ pass
+
+ stopSub =[]
+ stopcodons =["TTA","TCA","CTA"]
+ for item in stopcodons:
+ stopSub.append(findstop_help(posLastStop_rev, genomeSequence, item))
+
+ stopSub.sort()
+
+ if(stopSub[0] > -1):
+ stopRev.append(stopSub[0])
+ posLastStop_rev = stopRev[-1]+1
+ foundNew_rev = True
+
+ elif(stopSub[1] > -1):
+ stopRev.append(stopSub[1])
+ posLastStop_rev = stopRev[-1]+1
+ foundNew_rev = True
+
+
+ elif(stopSub[2] > -1):
+ stopRev.append(stopSub[2])
+ posLastStop_rev = stopRev[-1]+1
+ foundNew_rev = True
+
+
+ if(foundNew_rev):
+ pass
+ else:
+ break
+ ###test##################
+ print("START codons : " + str(len(start)))
+ print("STOP codons : " +str(len(stop)))
+ print("revSTART codons : " +str(len(startRev)))
+ print("revSTOP codons : " +str(len(stopRev)))
+
+
+ # FORWARD
+ #vectors are filled, now test if in the same frame
+ # stores start positions without a suitable Stop in frame
+ removeList=[]
+ print("\t..creating forward orfs")
+ for stopPos in stop:
+ foundPartner=False
+ startPos = 0
+ i = 0
+ startPos = start[0]
+ #= start[i]
+ while ((i<len(start)-1) and (start[i] <stopPos)):
+ startPos = start[i]
+ i+=1
+ if((stopPos+3-startPos)% 3 == 0):
+ #Orf found in frame
+ if((foundPartner == False) and (stopPos+3)-startPos >149):
+ #found first matching AT (first ORF+ORF is at least 150bp long
+ foundPartner = True
+ pdic[stopPos+3]="E"
+ pdic[startPos]="S"
+ orfList.append(startPos)
+ orfList.append(stopPos+3)
+ removeList.append(startPos)
+ else:
+ removeList.append(startPos)
+ for item in removeList:
+ # remove all positions of ATGS leading to "sub-ORFs"
+ start.remove(item)
+ removeList =[]
+
+
+ # BACKWARD
+ print("\t..creating reverse orfs")
+ removeList_rev=[]
+ l = len(stopRev)-1
+
+ for r in range(l,-1,-1):#
+ stopPos = stopRev[r]
+ foundPartner=False
+
+
+
+ i = len(startRev)-1
+
+
+ while((i >=0) and (startRev[i]>stopPos)):
+ startPos=startRev[i]
+ i -=1
+ if((startPos+3-stopPos)%3 == 0):
+ # found ORF in frame
+ if((foundPartner != True) and (startPos+3-stopPos > 149)):
+ #found first matching ATG + ORF is at least 150bp long
+ pdic[stopPos]="S"
+ pdic[startPos+3]="E"
+ foundPartner = True
+ orfList.append(startPos)
+ orfList.append(stopPos+3)
+ removeList_rev.append(startPos)
+ else:
+ removeList_rev.append(startPos)
+
+ for item in removeList_rev:
+ # remove all positions of ATGS leading to "sub-ORFs"
+ startRev.remove(item)
+ removeList_rev =[]
+
+ return(pdic)
\ No newline at end of file
diff --git a/core/InsertMutations.py b/core/InsertMutations.py
new file mode 100644
index 0000000..585e4a6
--- /dev/null
+++ b/core/InsertMutations.py
@@ -0,0 +1,288 @@
+#!/usr/bin/env python
+"""
+Created 2012
+core Script for the generation of the artificial reference genome
+
+The functions purpose is to to go through a list of positions and find balanced mutations
+which fulfill the demands on the artificial reference genome. Once a initial start positions is
+randomly selected all possible triplets with hamming distance 1 are generated and looked up
+in a dictionary which contains all triplet positions in the input genome. If a suitable partner
+is found for the initial mutation the next start positions is chosen randomly. Else: try all other
+triplets with hamming distance 1 until no one is left. This process can be accelerated by allowing
+unbalanced mutations, but this will cause differences in the NUC/AA distribution and the AA neighborhood.
+
+
+ at author: Sven Giese
+"""
+
+import random as r
+import Prep as INI
+
+
+
+def getMutation(AA,Codon):
+ """
+ Returns a random mutation for a given AA and its Codon(DNA). The mutation is done in a way which supports the equilibrium
+ of the nucleotide distribution by only regarding hamming distance=1 Codons as possible mutations
+
+ @type AA: string
+ @param AA: Single AA.
+ @type Codon: string
+ @param Codon: 3-letter dna code.
+ @rtype: list,list
+ @return: A list of all valid mutations (triplet) and the coresponding AA.
+ """
+ temp_mutationlist = []
+ '''create a list of possible triplets within hamming distance 1 '''
+ for item in INI.genetic_code.keys():
+ isvalid = INI.isvalidtriplet(item,Codon)
+ ''' Hamming distance 1, AA is not equal to the given AA,forbid mutation to stopcodon '''
+ if (isvalid == True and AA !=INI.genetic_code[item] and INI.genetic_code[item]!="*"):
+ temp_mutationlist.append(item)
+
+
+ aalist = []
+ # generate a list of all possible amino acids resulting from the temp_mutationlist
+ for item in temp_mutationlist:
+ if (item in INI.genetic_code):
+ aalist.append(INI.genetic_code[item])
+ else:
+ aalist.append("n")
+
+ return(temp_mutationlist,aalist)
+
+
+def getdifference(triplet_old,triplet_new):
+ """
+ Given two triplets, returns the differences between them plus the position
+
+ @type triplet_old: string
+ @param triplet_old: AA triplet.
+ @type triplet_new: string
+ @param triplet_new: AA triplet.
+ @rtype: Char,Char,int
+ @return: The new aminoacid, the old aminoacid and the position.
+ """
+ for i in range(0,3):
+ if (triplet_new[i]!=triplet_old[i]):
+
+ return (triplet_new[i],triplet_old[i],i)
+
+
+def isvalidposition(pdic,iprime,distance):
+ """
+ Checks if a position is valid for mutation. It queries all neighboring positions (iprime +-distance) to check whether there already was a mutation in pdic
+
+ @type pdic: dictionary
+ @param pdic: Diciontary containing mutations and start/ stop codons..
+ @type iprime: int
+ @param iprime: Position of the prospective mutation (DNA level)
+ @type distance: int
+ @param distance: User defined parameter which limits the distance between two mutations.
+ @rtype: Bool
+ @return: Boolean which decides if the position is valid (1= yes,0 = no)
+ """
+
+ # deal with base shifts
+ distance = distance-2
+
+ istforbidden = 0
+ for o in range(-distance,distance+2,1):
+ if (iprime+o in pdic):
+ # E = end of orf
+ # S = start of orf
+ if((pdic[iprime+o]=="E") or (pdic[iprime+o]=="S")):
+ if((o >3) or (o <-3)):
+ pass
+ else:
+ istforbidden = 1
+ break
+ else:
+ istforbidden = 1
+ break
+ else:
+ pass
+
+ return(istforbidden)
+
+
+
+
+def mutate_random(DNA,AminoAcid,distance,pdic,rev,header,Random,outputpath):
+ """
+ Mutates a given DNA(AminoAcid) Genomesequence on several positions (distance based on DISTANCE var. If one mutation is done
+ a compareable Triplet is searched to "reverse" the changes made in AA distribution, N distribution, AA neighborhood
+
+ @type DNA: list
+ @param DNA: DNA sequence of the reference genome.
+ @type AminoAcid: list
+ @param AminoAcid: AA sequence of the reference genome.
+ @type rev: Bool
+ @param rev: Boolean which decides if unbalanced mutations are allowed (only initial mutation is performed)
+ @type pdic: dictionary
+ @param pdic: Diciontary containing mutations and start/ stop codons..
+ @type header: string
+ @param header: Header for the resulting artificial reference file (fasta format).
+ @type Random: Bool
+ @param Random: Boolean for choosing on of the mutation modes (linear = 0,random = 1)
+ @type distance: int
+ @param distance: User defined parameter which limits the distance between two mutations.
+ @rtype: list
+ @return: Artificial reference genome sequence.
+ """
+ ##debug vals
+ start = [] # list of start positions of mutations ( start means first mutation in balanced case)
+ both = [] # start and end position
+ fobj2= open(outputpath+header+"_CompleteLog.txt","a")
+ fobj2.write("BalancedMutation"+"\t"+"NewAA" + "\t" + "OldAA"+"\t"+"NewAAPos"+"\t"+"OldAAPos" +"\t"+ "NewDNA"+"\t"+ "OldDNA"+ "\t"+"NewDNAPos"+"\t"+"OldDNAPos"+"\n")
+ fobj2.close()
+
+
+ # generate start positions for mutation (the samplespace)
+ samplespace = []
+ for i in range (2,len(AminoAcid),distance/3):
+ samplespace.append(i)
+
+
+ ##random_modification
+ if (Random ==1):
+ r.shuffle(samplespace)
+ else:
+ pass
+
+ dna_list = list(DNA)
+ AminoAcid_list = list(AminoAcid)
+
+ '''the lookup dictionary for the aa triplets '''
+ lookup_dic = INI.createdic(AminoAcid)
+
+ #gotit indicator if a possibility was found to revert the initial changes (start of mutation)
+ gotit=False
+ # stat variables
+ succ_counter = 0
+ fail_counter = 0
+ skip = 0
+
+ ''' Main loop over the AminoAcid'''
+ for i in samplespace:
+ ''' no triplet left --> break '''
+ if(i+2 >len(AminoAcid)):
+ print("\t(finished...exceeded length of AA)")
+ continue
+
+ ''' AA which is going to be mutated'''
+ AA = AminoAcid_list[i]
+
+ '''index for dna : i*3 --> AminoAcid --> DNA
+ #not i*3+3 because i starts at AA 2 since we need a right and left neighbor'''
+ iprime = i*3
+
+ '''AA and corresponding DNA triplet for the middle AA '''
+ AA_triplet= AminoAcid_list[i-1]+AminoAcid_list[i]+AminoAcid_list[i+1]
+ DNA_triplet = DNA[iprime:iprime+3]
+
+ # get temporary list of all mutations. Iterate over it to find best possible substitution
+ mutationsliste,aaliste = getMutation(AA,DNA_triplet)
+
+
+ # isvalidposition returns 1 if the position isforbidden, else 0
+ val = isvalidposition(pdic, iprime, distance)
+ if (val ==1):
+ skip+=1
+ fobj2= open(outputpath+header+"_CompleteLog.txt","a")
+ fobj2.write(str(0)+"\t"+new_AA_triplet + "\t" + "' '"+"\t"+str(i)+"\t"+"' '" +"\t"+ new_triplet+"\t"+ "' '"+ "\t"+str(iprime+position)+"\t"+"'(skipped)'"+"\n")
+ fobj2.close()
+ continue
+
+ else:
+ pass
+
+
+ for q,item in enumerate(mutationsliste):
+
+ if gotit==True:
+ break
+ else:
+ pass
+
+ ''' old and new variables for before/after the mutation '''
+ new_triplet = mutationsliste[q]
+ new_AA = aaliste[q]
+ new_N,old_N,position = getdifference(DNA_triplet,new_triplet)
+ new_AA_triplet = AA_triplet[0]+new_AA+AA_triplet[2]
+ tempdic = pdic
+ tempdic[iprime+position]="M"
+
+ if (new_AA_triplet in lookup_dic):
+ '''templist--> contains all starting positions of the "new_AA_triplet" which we want to substitute back '''
+ templist = lookup_dic[new_AA_triplet]
+
+
+ # add potential mutation to dictionary
+ tempposition = [iprime+position,"M"]
+ for l in range(0,len(templist)):
+ posi = templist[l]
+ # i*3 --> protein nach DNA, +3 betrachten IMMER mittlere AA
+ ''' suitable dna position found? '''
+ if (new_triplet == dna_list[posi*3+3]+dna_list[posi*3+3+1]+dna_list[posi*3+3+2]):
+ val = isvalidposition(tempdic, posi*3+3+position, distance)
+
+ if (val ==1):
+ skip+=1
+ continue
+ else:
+ pass
+
+ '''back substitution & do subs on 1st position'''
+ pdic[posi*3+3+position]="R"
+ dna_list[posi*3+3+position]= old_N
+
+ pdic[iprime+position]="M"
+ dna_list[iprime+position]= new_N
+
+ AminoAcid_list[i]= new_AA
+ AminoAcid_list[posi+1]= AA
+
+ gotit = True
+ succ_counter+=1
+ #lookup_dic[new_AA_triplet] = [i for i in lookup_dic[new_AA_triplet] if i!=posi]
+ lookup_dic[new_AA_triplet].remove(posi)
+
+ '''writing the log file '''
+ fobj= open(outputpath+header+"_CompleteLog.txt","a")
+ fobj.write(str(1)+"\t"+AA_triplet + "\t" + new_AA_triplet+"\t"+str(i)+"\t"+str(posi) +"\t"+ DNA_triplet+"\t"+ str(new_triplet)+ "\t"+str(iprime+position)+"\t"+str(posi*3+3+position)+"\n")
+ fobj.close()
+
+ ## statistics
+ start.append(iprime+position)
+ both.extend([iprime+position,posi*3+3+position])
+ break
+
+ # no possible triplet positions for back substitution in lookup_dic
+ else:
+ continue
+
+ # after loop
+ if (gotit==False):
+ fobj2= open(outputpath+header+"_CompleteLog.txt","a")
+ fobj2.write(str(0)+"\t"+new_AA_triplet + "\t" + "' '"+"\t"+str(i)+"\t"+"' '" +"\t"+ new_triplet+"\t"+ "' '"+ "\t"+str(iprime+position)+"\t"+"'(tried)'"+"\n")
+ fobj2.close()
+ fail_counter+=1
+ # reverse substitutions on? (=1) off (=0). If one dont change first mutation in the first place. Else: just change it..
+ if (rev==0):
+ pdic[iprime+position]="M"
+ dna_list[iprime+position]= new_N
+ AminoAcid_list[i]= new_AA
+ start.append(iprime+position)
+ both.extend([iprime+position])
+ elif (gotit==True):
+ gotit = False
+
+ # stats (INI.savepickle(pdic,header+"_pdic_e"))
+ print("\r\n########Some stats:########")
+ print("DNA length:\t" + str(len(DNA)))
+ print("max substitutions:\t" + str(len(DNA)/distance))
+ print("#Balanced Mutations:\t" + str(succ_counter))
+
+
+ return ("".join(dna_list))
\ No newline at end of file
diff --git a/core/PlotData.py b/core/PlotData.py
new file mode 100644
index 0000000..bdf3751
--- /dev/null
+++ b/core/PlotData.py
@@ -0,0 +1,295 @@
+'''
+Created 2012
+ at author: GieseS
+
+
+Little plotting script which is called in the analysis of different mappings to an artificial reference genome.
+It produces the following plots:
+
+
+
+
+1) ROC Curve
+2) Overview histograms for FP / TP.
+
+
+'''
+
+import matplotlib
+matplotlib.use('Agg')
+
+import numpy as np
+import matplotlib.pyplot as plt
+from mpl_toolkits.mplot3d import Axes3D
+import random
+import time
+import pylab as p
+
+##### HELP FUNCTIONS ####
+
+def trapezoidal_rule(x, y):
+ """Approximates the integral through the points a,b"""
+ index = [i+1 for i in xrange(len(x)-1)]
+ xdiff = np.array([x[i]-x[i-1] for i in index])
+ ysum = np.array([y[i]+y[i-1] for i in index])
+ return(np.dot(xdiff,ysum)/2)
+
+
+#### HELP FUNCTIONS END ############
+
+
+"""
+abbreviations:
+tp = True positives
+fp = false positives
+NM = number of mismtaches
+mq = mapping quality
+rq = readquality
+subs = substitutions in artifical reference genome (ARG)
+"""
+
+
+
+###############################################################################
+
+def CalculateRoc2(dataArray,prefix,readsize,uniquehits,mappedreads,filename):
+ """
+ Calculates the adjusted ROC curve as well as the AUC value derived from the adjusted points
+ and writes the ROC tables to .txt files.
+ """
+ starttime= time.time()
+ uniquehits = float(uniquehits)
+ readsize = float(readsize)
+
+
+ entries = len(dataArray)
+
+
+ resultmatrix = np.arange(entries*2)
+ resultmatrix = resultmatrix.reshape(2,entries)
+
+ maxrq = max(x.rq for x in dataArray)
+ maxnm = max(x.nm[0] for x in dataArray)
+ maxGaps= max(x.gaps[0] for x in dataArray)
+ maxMism= max(x.mism[0] for x in dataArray)
+
+
+ minrq = min(x.rq for x in dataArray)
+ minnm = min(x.nm[0] for x in dataArray)
+ minmq= min(x.mq[0] for x in dataArray)
+ minGaps= min(x.gaps[0] for x in dataArray)
+ minMism= min(x.mism[0] for x in dataArray)
+
+
+ # adjust stepsize for rq since the score behaves the other way
+ quants = [1,2,3,4,5]
+ tempa = maxrq-minrq
+ stepsize = tempa/5
+
+ rqQuants = [round(minrq+(i-1)*stepsize,3) for i in quants]
+ rqQuants.reverse()
+ rqQuants[-1] =0 # last entry is rounded bigger than the smallest in the dataset
+
+ nmQuants = [i*maxnm/5 for i in quants]
+ GapsQuants = [i*maxGaps/5 for i in quants]
+ MismQuants = [i*maxMism/5 for i in quants]
+
+ rocvector = []
+
+ # i = NM,l = RQ, k = MQ
+ for l in quants: # RQ
+ for k in quants: # GAPS
+ for j in quants: # MISMATCH
+ temparray = [m for m in dataArray if m.gaps[0] <= GapsQuants[k-1] and m.mism[0] <= MismQuants[j-1] and m.rq >=rqQuants[l-1]]
+
+
+ tempids = [m.id for m in temparray]
+ uniquereads = {}
+ for i in xrange(0,len(tempids)):
+ uniquereads[tempids[i]] = ""
+
+ mappedreads = len(uniquereads)
+
+
+
+ templength = len(temparray)
+
+ if templength == 0:
+ continue
+ else:
+ tempTP = sum(x.mr[0] for x in temparray)
+ tempFP =templength-tempTP
+ F = round((float(mappedreads)/ readsize) ,3)
+ sens = round((tempTP/ uniquehits) * F,3)
+ if tempFP == 0:
+ spec = 0
+ else:
+ spec = round((tempFP / uniquehits) * F,3)
+
+ rocvector.append([rqQuants[l-1],GapsQuants[k-1],MismQuants[j-1],tempTP,tempFP,templength,sens,spec,F])
+
+ #print ("%d\t%d\t%d\t" % (templength,tempTP,tempFP))
+
+ #0 = NM 4 = TP 7 = sens
+ #1 = RQ 5 = FP 8 = 1-spec
+ #2 = GAPS 6 = P 9 = F
+ #append needed for last entry in AUC calculation
+ rocvector.append([0,0,0,0,0,0,0,0,0])
+ nproc = np.array(rocvector)
+
+ #write the sens and specificity values from nproc according to the enumeration in line 149.
+ #specificity is in cell -2
+ # sensitivity is in cell -3
+ sens = [i[-3] for i in nproc]
+ spez = [i[-2] for i in nproc]
+
+ # adjust ROC curve. It is necessary that it the 1-specificity ends in 1.
+ # for the last record copy the predecessor in sens to it
+ # and write 1 to specificity
+ spez[-1] = 1
+ sens[-1] = sens[-2]
+
+
+ rocarray1 = np.array([sens,spez])
+ rocarray1 = rocarray1.flatten('F')
+ rocarray1= rocarray1.reshape((len(spez),2))
+
+ rocarray = np.array([sens,spez])
+ rocarray = rocarray.flatten('F')
+ rocarray = rocarray.reshape((len(spez),2))
+ rocarray = np.sort(rocarray.view('float,float'), order=['f0','f1'], axis=0).view(np.float)
+
+ rocarrayCorrected = rocarray
+
+ #print rocarrayCorrected
+ # project points where...
+ for m in range(len(rocarrayCorrected)-2,-1,-1):
+ if (rocarrayCorrected[m,1] >= rocarrayCorrected[m+1,1]):
+ rocarrayCorrected[m,1] = rocarrayCorrected[m+1,1]
+
+
+ #print rocarrayCorrected
+ plt.hold(True)
+ plt.figure()
+ plt.subplot(111)
+ #plt.scatter(spez, sens, c='b', marker='o', facecolor='red')
+ #plt.plot(rocarray[:,1], rocarray[:,0]
+ plt.plot(rocarrayCorrected[:,1],rocarrayCorrected[:,0], marker='o', markersize=7,linestyle='--', color='r', label='projected')
+ plt.plot(rocarray1[:,1], rocarray1[:,0], linestyle="None",label='real',marker='.',color='g')
+ plt.xlabel('1-specificity')
+ plt.ylabel('sensitivity')
+ plt.title(r'ROC:'+filename)
+ plt.axis([-0.1,1.1,-0.1,1.1])
+ plt.grid(True)
+ plt.legend(loc='lower right')
+ plt.tight_layout()
+ plt.savefig(prefix + "_ROC.pdf",format='pdf')
+ plt.clf
+
+
+ AUC = trapezoidal_rule(rocarrayCorrected[:,1], rocarrayCorrected[:,0])
+
+ fobj = open(prefix+"_roctable.txt","w")
+ fobj.write("RQ\tGAPS\tMM\tPTP\tFP\tP\tSn\t1-Sp\tF\r\n")
+ for i in xrange(0,len(rocvector),1):
+ temp = [str(k) for k in rocvector[i]]
+ tempstr = "\t".join(temp)
+ fobj.write(tempstr+"\r\n")
+
+ endtime= time.time()
+ return(round(AUC,3))
+
+def plotOverviewHist(fp,tp,label,prefix,mappernames):
+ """Plots true positives and false positives into 2 different histogram subplots. """
+ prefix2 = "/".join(prefix.split("/")[0:-1])+"/"
+ fobj = open(prefix2+"indexMappingTools.txt","w")
+ for i in range(0,len(label)):
+ fobj.write("%s - %s\r\n" %(i+1,mappernames[i]))
+ fobj.close()
+
+ x = [i for i in range(1,len(fp)*3,3)]
+ xmax = max(x)+1
+ ymaxTP = max(tp)+0.1
+ ymaxFP = max(fp)+0.1
+
+ ##### SUBPLOT NUMBER OF MISMATCHES ####
+ y = tp
+ x =x
+ z = fp
+
+
+ fig = p.figure()
+ # only plot every 2nd label
+ if len(label) <= 7:
+ widthp = 0.7
+ ticks = label
+ else:
+ widthp = 0.3
+ ticks = [i if i%2 == 0 else "" for i in label]
+ # Here we're adding 2 subplots. The grid is set
+ # up as one row, two columns.
+ ax1 = fig.add_subplot(1,2,1)
+ ax1.bar(x,y,width=widthp, facecolor='darkgreen')
+ ax1.set_ylabel('#TP hits')
+ ax1.set_xlabel('index mapping tool')
+ ax1.set_title("Global comparison #TP hits")
+ p.xticks(x,ticks)
+ p.grid(True)
+ p.axis([0,xmax,0,ymaxTP+ymaxTP*10/100])
+
+ # on the second axis, make the width smaller (default is 0.8)
+ ax2 = fig.add_subplot(1,2,2)
+ ax2.bar(x,z,width=widthp, facecolor='darkred')
+ ax2.set_ylabel('#FP hits')
+ ax2.set_xlabel('index mapping tool')
+ ax2.set_title("Global comparison #FP hits")
+ p.axis([0,xmax,0,ymaxFP+ymaxFP*10/100])
+ p.xticks(x,ticks)
+ p.grid(True)
+ plt.tight_layout()
+ p.savefig(prefix2 + "Overall_histabs.pdf",format='pdf')
+ p.clf()
+
+
+ tpsum =sum(tp)
+ fpsum =sum(fp)
+ y = [i/float(tpsum) for i in tp]
+ x =x
+ z = [i/float(fpsum) for i in fp]
+ ymax = max(max(z),max(y))+0.2
+
+ fig = p.figure()
+ # only plot every 2nd labelare provided
+ if len(label) <= 7:
+ ticks = label
+ else:
+ ticks = [i if i%2 == 0 else "" for i in label]
+ # Here we're adding 2 subplots. The grid is set
+ # up as one row, two columns.
+ ax1 = fig.add_subplot(1,2,1)
+
+
+ ax1.bar(x,y,width=widthp, facecolor='darkgreen')
+ ax1.set_ylabel('%TP hits')
+ ax1.set_xlabel('index mapping tool')
+ ax1.set_title("Global comparison %TP hits")
+ p.xticks(x,ticks)
+ p.grid(True)
+ p.axis([0,xmax,0,1.1])
+
+ # on the second axis, make the width smaller (default is 0.8)
+ ax2 = fig.add_subplot(1,2,2)
+ ax2.bar(x,z,width=widthp, facecolor='darkred')
+ ax2.set_ylabel('%FP hits')
+ ax2.set_xlabel('index mapping tool')
+ ax2.set_title("Global comparison %FP hits")
+ p.axis([0,xmax,0,1.1])
+ p.xticks(x,ticks)
+ p.grid(True)
+ plt.tight_layout()
+ p.savefig(prefix2 + "Overall_histper.pdf",format='pdf')
+ p.clf()
+
+
+
+
diff --git a/core/Prep.py b/core/Prep.py
new file mode 100644
index 0000000..af72902
--- /dev/null
+++ b/core/Prep.py
@@ -0,0 +1,162 @@
+# -*- coding: cp1252 -*-
+'''
+Created 2012
+
+Contains various help functions which initialize / translate /preprocess the data
+
+
+ at author: Sven Giese'''
+
+import cPickle as pickle
+import random
+
+''' INIT DICTIONARIES '''
+genetic_code={'GCT':'A', 'GCC':'A', 'GCA':'A', 'GCG':'A',
+ 'CGT':'R', 'CGC':'R', 'CGA':'R', 'CGG':'R', 'AGA':'R', 'AGG':'R',
+ 'AAT':'N', 'AAC':'N',
+ 'GAT':'D', 'GAC':'D',
+ 'TGT':'C', 'TGC':'C',
+ 'CAA':'Q', 'CAG':'Q',
+ 'GAA':'E', 'GAG':'E',
+ 'GGT':'G', 'GGC':'G','GGA':'G', 'GGG':'G',
+ 'CAT':'H', 'CAC':'H',
+ 'ATT':'I', 'ATC':'I','ATA':'I',
+ 'ATG':'M',
+ 'TTA':'L', 'TTG':'L', 'CTT':'L', 'CTC':'L', 'CTA':'L', 'CTG':'L',
+ 'AAA':'K', 'AAG':'K',
+ 'TTT':'F', 'TTC':'F',
+ 'CCT':'P', 'CCC':'P','CCA':'P', 'CCG':'P',
+ 'TCT':'S', 'TCC':'S', 'TCA':'S', 'TCG':'S', 'AGT':'S', 'AGC':'S',
+ 'ACT':'T', 'ACC':'T','ACA':'T', 'ACG':'T',
+ 'TGG':'W',
+ 'TAT':'Y', 'TAC':'Y',
+ 'GTT':'V', 'GTC':'V','GTA':'V', 'GTG':'V',
+ 'TAA':'*', 'TGA':'*','TAG':'*','NNN':'n'}
+
+
+
+def createdic(AAsequence):
+ """
+ Creates the dictionary for the AA triplets and searches the starting indices
+ of the triplets in the given aminoacid sequence.
+
+ @type AAsequence: string
+ @param AAsequence: aminoacid sequence
+ @rtype: dictionary
+ @return: A dictionary with starting positions of each triplet in the given AA sequence
+
+ """
+
+ liste = ["A","R","N","D","C","E","Q","G","H","I","L","K","M","F","P","S","T","W","Y","V","*"]
+ aa_triplets = {}
+
+ # create all possibilities (triplets)
+ for i in range(0,len(liste)):
+ for k in range(0,len(liste)):
+ for l in range(0,len(liste)):
+ aa_triplets[liste[i]+liste[k]+liste[l]]= []
+
+ # create lookup dic
+ # key = triplet
+ # value = list of positions
+ for i in range(1,len(AAsequence),3):
+ if i+3 > len(AAsequence):
+ break
+ if AAsequence[i:i+3] in aa_triplets:
+ aa_triplets[AAsequence[i:i+3]].append(i)
+ return(aa_triplets)
+
+
+
+
+def isvalidtriplet(codon,dictentry):
+ """
+ Function which checks if a given triplet has max hamming distance of 1
+ to a other triplet. Used for generation of possible substitutions triplets
+
+ @type codon: string
+ @param codon: nucleotide triplet
+ @type dictentry: string
+ @param dictentry: nucleotide triplet
+ @rtype: bool
+ @return: Boolean value. True if max hamming distance 1,else False .
+
+ """
+ counter = 0
+
+ for i in range (0,3):
+
+ if codon[i]== dictentry[i]:
+ counter+=1
+ else:
+ continue
+
+ if counter == 2:
+ return (True)
+ else:
+ return (False)
+
+def trans_seq(DNA):
+ """
+ Funtion which translates DNA to AA
+
+ @type DNA: list
+ @param DNA: nucleotide sequence
+ @rtype: prot,rest
+ @return: Translated aminoacid sequence,untranslated nucleotide sequence
+ """
+ protein=[]
+ prot = ""
+ rest=""
+
+ DNA = "".join(DNA)
+ for i in range(0,len(DNA),3):
+ # Codon exceeds length
+ if(i+3 > len(DNA)):
+ rest +=DNA[i:i+3]
+
+ break
+ #' found Ns in nucleotid string
+ if("N" in DNA[i:i+3]):
+ a_a = "n"
+ protein.append(a_a)
+ else:
+ #standard triplet translation
+ codon=DNA[i:i+3]
+ # look codon up in translation dic
+ a_a=genetic_code[codon]
+ protein.append(a_a)
+
+ # transform to string
+ prot = "".join(protein)
+ return (prot,rest)
+
+''' DEBUG HELP FUNCTIONS '''
+
+
+def savepickle(dictionary,outputname):
+ """
+ basic pickle functions. actually for debugging and to speed up multiple simulations ( possible to load orf lists)
+
+ @type dictionary: dictionary
+ @param dictionary: Dictionary containg start and end positions of ORFs.
+ @type outputname: string
+ @param outputname: Filename for saving.
+
+ """
+ pickle.dump( dictionary, open(outputname +".p", "wb" ) )
+ print("Saved .pickle to: " + outputname +".p")
+
+def loadpickle(inputname):
+ """
+ basic pickle functions. actually for debugging and to speed up multiple simulations ( possible to load orf lists)
+
+
+ @type inputname: string
+ @param inputname: Filename for loading.
+ @rtype: dictionary
+ @return: Dictionary containing start and end positions of ORFs.
+ """
+ dictionary= pickle.load( open(inputname ))#+".p" ) )
+ print("Loaded "+inputname+" pickle!")
+ return (dictionary)
diff --git a/core/ReadAndWrite.py b/core/ReadAndWrite.py
new file mode 100644
index 0000000..7b52109
--- /dev/null
+++ b/core/ReadAndWrite.py
@@ -0,0 +1,188 @@
+#!/usr/bin/env python
+'''
+Created 2012
+
+Contains various help functions which read or produce an input/ output
+
+
+ at author: Sven Giese
+'''
+import os
+import random
+import HTSeq
+
+
+def readdna(filename):
+ """
+ Reads in the dna sequence of the given fasta
+
+ @type filename: string
+ @param filename: Fasta-file used as input.
+ @rtype: HTSeq Sequence object
+ @return: Reference Fasta.
+ """
+ chr = HTSeq.FastaReader(filename)
+ for fasta in chr:
+ referenz = HTSeq.Sequence(fasta.seq,fasta.name)
+ return(referenz)
+
+
+def writefile(sequenceObject,filename):
+ """
+ Writes a given sequence object to a fasta file.
+
+ @type sequenceObject: HTSeq Sequence object
+ @param sequenceObject: Reference sequence as fasta.
+ """
+
+ outfasta = open(filename,"w")
+ sequenceObject.write_to_fasta_file(outfasta)
+ outfasta.close()
+
+
+def writeoverview(Ndic_G,aadic_G,Ndic_AR,aadic_AR,filename):
+ """
+ Creates the "delta" file for the comparison of the two chromosoms. This file contains the differences in nucleotide distribution between reference and artificial.
+ input: nucleotid dictionary genom, aa dictionary genome, nucleotid dictionary artificial chromosom, aa dictionary, filename
+
+ @type Ndic_G: dictionary
+ @param Ndic_G: Nucleotid dictionary genom.
+ @type aadic_G: dictionary
+ @param aadic_G: AA dictionary genome.
+ @type Ndic_AR: dictionary
+ @param Ndic_AR: Nucleotid dictionary artificial.
+ @type aadic_AR: dictionary
+ @param aadic_AR: AA dictionary artificial
+ @type filename: string
+ @param filename: Output filename.
+ """
+ fobj = open(filename,"w")
+ fobj.write("NUC /AA \t Genom \t Artificial Reference \t Delta \n")
+
+ sum1 =0
+ sum2= 0
+ for item in Ndic_G.keys():
+ fobj.write(item +"\t"+str(Ndic_G[item])+"\t"+str(Ndic_AR[item])+"\t"+str(Ndic_G[item]-Ndic_AR[item])+"\n")
+ sum1 +=abs(Ndic_G[item]-Ndic_AR[item])
+ fobj.write(str(sum1)+"\n")
+
+ for item in aadic_G.keys():
+ fobj.write(item +"\t"+str(aadic_G[item])+"\t"+str(aadic_AR[item])+"\t"+str(aadic_G[item]-aadic_AR[item])+"\n")
+ sum2 +=abs(aadic_G[item]-aadic_AR[item])
+ fobj.write(str(sum2)+"\n")
+
+
+
+
+def nucleotide_dist_seq(seq,txt_file,shallwrite):
+ """
+ Writes the nucleotide distribution in a file and returns the dictionary. adjust s for % results.
+ @type seq: string
+ @param seq: Nucleotide sequence.
+ @type txt_file: string
+ @param txt_file: Output compare file.
+ @type shallwrite: Bool
+ @param shallwrite: Decides if percentages values are written to the output.
+ """
+ Nndic={"A":0,"C":0,"G":0,"T":0,"N":0}
+
+ for i in range(0,len(seq)):
+ Nndic[seq[i]]+=1
+ s=len(seq)
+ s=1
+
+ if (shallwrite==1):
+ output_file=open(txt_file,'w')
+ for item in Nndic.keys():
+ Nndic[item]=Nndic[item]/float(s)
+ output_file.write(item + "\t" + str(Nndic[item])+"\n")
+
+ output_file.close()
+ else:
+ for item in Nndic.keys():
+ Nndic[item]=Nndic[item]/float(s)
+ return (Nndic) #N can be used for checking: should be the same number in real
+ # and artificial chromosome
+
+
+def aa_dist_seq(seq,txt_file,shallwrite):
+ """
+ Writes the AA distribution in a file and returns the dictionary. adjust s for % results.
+ @type seq: string
+ @param seq: Nucleotide sequence.
+ @type txt_file: string
+ @param txt_file: Output compare file.
+ @type shallwrite: Bool
+ @param shallwrite: Write output in percentages..
+ """
+ aadic = {"A":0,"R":0,"N":0,"D":0,"C":0,"E":0,"Q":0,"G":0,"H":0,"I":0,"L":0,"K":0,"M":0,"F":0,"P":0,"S":0,"T":0,"W":0,"Y":0,"V":0,"*":0}
+ for i in range(0,len(seq)):
+
+ '''escape 'n' Sequences '''
+ if (seq[i] in aadic):
+ aadic[seq[i]]+=1
+ else:
+ continue
+
+
+ n = len(seq)
+ n=1
+ if (shallwrite==1):
+ output_file=open(txt_file,'w')
+ for item in aadic.keys():
+ aadic[item]=aadic[item]/float(n)
+ output_file.write(item + "\t" + str(aadic[item])+"\n")
+
+ output_file.close()
+ else:
+ for item in aadic.keys():
+ aadic[item]=aadic[item]/float(n)
+
+ return (aadic)
+
+'''
+input: DNA Sequence, outputfilename and 1/0 for writing/not writing outputfile '''
+
+def nucleotide_dist_file(file_fasta,txt_file):
+ """
+ Writes the DNA distribution in a file and returns the dictionary. adjust n for % results
+
+ @type file_fasta: string
+ @param file_fasta: DNA Sequence
+ @type txt_file: string
+ @param txt_file: Filename for output.
+ """
+ input_file=open(file_fasta,'r')
+ output_file=open(txt_file,'a')
+ seq=''
+ for line in input_file:
+ if line[0]!='>':
+ line=line.rstrip()
+ seq+=line
+ output_file.write(str(nucleotide_dist_seq(seq)))
+ output_file.write('\n')
+ output_file.close()
+ input_file.close()
+
+
+'''gets the number of missmatches between 2 sequences
+input: orig sequence, decoy sequence '''
+def gethammingdistance(original,artificial):
+ """
+ Calculates the hamming distances between two sequences.
+ @type original: list
+ @param original: Nucleotide sequence from the reference.
+ @type artificial: list
+ @param artificial: Nucleotide sequence from the artificial reference.
+ """
+ hamming = 0
+ not_hamming=0
+ for i in range(0,len(original)):
+ if (original[i]!=artificial[i]):
+ hamming +=1
+
+ else:
+ not_hamming+=1
+ print ("#hamming distance REF-ART\t"+ str(hamming))
+ print ("avg. distance:\t" + str(len(original)/float(hamming)))
+ print("###########################\r\n")
\ No newline at end of file
diff --git a/doc/api-objects.txt b/doc/api-objects.txt
new file mode 100644
index 0000000..56a9f45
--- /dev/null
+++ b/doc/api-objects.txt
@@ -0,0 +1,105 @@
+core core-module.html
+core.__package__ core-module.html#__package__
+core.AnalyseMapping core.AnalyseMapping-module.html
+core.AnalyseMapping.readInput core.AnalyseMapping-module.html#readInput
+core.AnalyseMapping.readSAMline core.AnalyseMapping-module.html#readSAMline
+core.AnalyseMapping.getHammingdistance core.AnalyseMapping-module.html#getHammingdistance
+core.AnalyseMapping.ReadSAMnoMem core.AnalyseMapping-module.html#ReadSAMnoMem
+core.AnalyseMapping.ComputeRQScore core.AnalyseMapping-module.html#ComputeRQScore
+core.AnalyseMapping.returnSequence core.AnalyseMapping-module.html#returnSequence
+core.AnalyseMapping.extendReadDic core.AnalyseMapping-module.html#extendReadDic
+core.AnalyseMapping.writeToTabArt core.AnalyseMapping-module.html#writeToTabArt
+core.AnalyseMapping.CreateCompareList core.AnalyseMapping-module.html#CreateCompareList
+core.AnalyseMapping.getRanks core.AnalyseMapping-module.html#getRanks
+core.AnalyseMapping.GetOrderDictionary core.AnalyseMapping-module.html#GetOrderDictionary
+core.AnalyseMapping.CheckForSameAlignments core.AnalyseMapping-module.html#CheckForSameAlignments
+core.AnalyseMapping.savepickle core.AnalyseMapping-module.html#savepickle
+core.AnalyseMapping.returnIndex core.AnalyseMapping-module.html#returnIndex
+core.AnalyseMapping.algnedToArt core.AnalyseMapping-module.html#algnedToArt
+core.AnalyseMapping.__package__ core.AnalyseMapping-module.html#__package__
+core.AnalyseMapping.getmean core.AnalyseMapping-module.html#getmean
+core.AnalyseMapping.ReadArtificialSAMfileHTSeq core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq
+core.AnalyseMapping.getNextLine core.AnalyseMapping-module.html#getNextLine
+core.AnalyseMapping.loadpickle core.AnalyseMapping-module.html#loadpickle
+core.AnalyseMapping.getMisGap core.AnalyseMapping-module.html#getMisGap
+core.AnalyseMapping.writeToTabRef core.AnalyseMapping-module.html#writeToTabRef
+core.AnalyseMapping.ReadFromTab core.AnalyseMapping-module.html#ReadFromTab
+core.AnalyseMapping.GetCompletePath core.AnalyseMapping-module.html#GetCompletePath
+core.AnalyseMapping.getCustomRead core.AnalyseMapping-module.html#getCustomRead
+core.AnalyseMapping.getAllID core.AnalyseMapping-module.html#getAllID
+core.AnalyseMapping.isSaneAlignment core.AnalyseMapping-module.html#isSaneAlignment
+core.AnalyseMapping.getTPRead core.AnalyseMapping-module.html#getTPRead
+core.AnalyseMapping.algnedToRef core.AnalyseMapping-module.html#algnedToRef
+core.AnalyseMapping.alngts core.AnalyseMapping-module.html#alngts
+core.AnalyseMapping.SkipHeader core.AnalyseMapping-module.html#SkipHeader
+core.AnalyseMapping.readReadQualities core.AnalyseMapping-module.html#readReadQualities
+core.AnalyseMapping.getNumberOf core.AnalyseMapping-module.html#getNumberOf
+core.AnalyseMapping.getAlignmentLength core.AnalyseMapping-module.html#getAlignmentLength
+core.AnalyseMapping.getsum core.AnalyseMapping-module.html#getsum
+core.AnalyseMapping.CompareAlignments core.AnalyseMapping-module.html#CompareAlignments
+core.AnalyseMapping.AlignedReadsdic core.AnalyseMapping-module.html#AlignedReadsdic
+core.AnalyseMapping.initOutFiles core.AnalyseMapping-module.html#initOutFiles
+core.FindOrfs core.FindOrfs-module.html
+core.FindOrfs.findstop_help core.FindOrfs-module.html#findstop_help
+core.FindOrfs.build_ORF core.FindOrfs-module.html#build_ORF
+core.FindOrfs.find_orfs core.FindOrfs-module.html#find_orfs
+core.FindOrfs.__package__ core.FindOrfs-module.html#__package__
+core.InsertMutations core.InsertMutations-module.html
+core.InsertMutations.getdifference core.InsertMutations-module.html#getdifference
+core.InsertMutations.__package__ core.InsertMutations-module.html#__package__
+core.InsertMutations.isvalidposition core.InsertMutations-module.html#isvalidposition
+core.InsertMutations.getMutation core.InsertMutations-module.html#getMutation
+core.InsertMutations.mutate_random core.InsertMutations-module.html#mutate_random
+core.PlotData core.PlotData-module.html
+core.PlotData.__package__ core.PlotData-module.html#__package__
+core.PlotData.trapezoidal_rule core.PlotData-module.html#trapezoidal_rule
+core.PlotData.CalculateRoc2 core.PlotData-module.html#CalculateRoc2
+core.PlotData.plotOverviewHist core.PlotData-module.html#plotOverviewHist
+core.Prep core.Prep-module.html
+core.Prep.isvalidtriplet core.Prep-module.html#isvalidtriplet
+core.Prep.genetic_code core.Prep-module.html#genetic_code
+core.Prep.__package__ core.Prep-module.html#__package__
+core.Prep.createdic core.Prep-module.html#createdic
+core.Prep.loadpickle core.Prep-module.html#loadpickle
+core.Prep.savepickle core.Prep-module.html#savepickle
+core.Prep.trans_seq core.Prep-module.html#trans_seq
+core.ReadAndWrite core.ReadAndWrite-module.html
+core.ReadAndWrite.gethammingdistance core.ReadAndWrite-module.html#gethammingdistance
+core.ReadAndWrite.writeoverview core.ReadAndWrite-module.html#writeoverview
+core.ReadAndWrite.readdna core.ReadAndWrite-module.html#readdna
+core.ReadAndWrite.writefile core.ReadAndWrite-module.html#writefile
+core.ReadAndWrite.nucleotide_dist_seq core.ReadAndWrite-module.html#nucleotide_dist_seq
+core.ReadAndWrite.__package__ core.ReadAndWrite-module.html#__package__
+core.ReadAndWrite.aa_dist_seq core.ReadAndWrite-module.html#aa_dist_seq
+core.ReadAndWrite.nucleotide_dist_file core.ReadAndWrite-module.html#nucleotide_dist_file
+script-arden_analyze script-arden_analyze-module.html
+script-arden_analyze.__package__ script-arden_analyze-module.html#__package__
+script-arden_analyze.TestFiles script-arden_analyze-module.html#TestFiles
+script-arden_analyze.main script-arden_analyze-module.html#main
+script-arden_create script-arden_create-module.html
+script-arden_create.a script-arden_create-module.html#a
+script-arden_create.printExample script-arden_create-module.html#printExample
+script-arden_create.Create script-arden_create-module.html#Create
+script-arden_create.bases script-arden_create-module.html#bases
+script-arden_create.b script-arden_create-module.html#b
+script-arden_filter script-arden_filter-module.html
+script-arden_filter.writeFilteredReads script-arden_filter-module.html#writeFilteredReads
+script-arden_filter.readHeader script-arden_filter-module.html#readHeader
+script-arden_filter.__package__ script-arden_filter-module.html#__package__
+script-arden_filter.filter script-arden_filter-module.html#filter
+script-arden_filter.FilterSAM script-arden_filter-module.html#FilterSAM
+script-arden_filter.counter2 script-arden_filter-module.html#counter2
+script-arden_filter.getMisGapRQ script-arden_filter-module.html#getMisGapRQ
+script-arden_filter.counter1 script-arden_filter-module.html#counter1
+core.AnalyseMapping.CustomRead core.AnalyseMapping.CustomRead-class.html
+core.AnalyseMapping.CustomRead.toStr core.AnalyseMapping.CustomRead-class.html#toStr
+core.AnalyseMapping.CustomRead.toStrNoMem core.AnalyseMapping.CustomRead-class.html#toStrNoMem
+core.AnalyseMapping.CustomRead.__init__ core.AnalyseMapping.CustomRead-class.html#__init__
+core.AnalyseMapping.CustomRead.toObjself core.AnalyseMapping.CustomRead-class.html#toObjself
+core.AnalyseMapping.ReadID core.AnalyseMapping.ReadID-class.html
+core.AnalyseMapping.ReadID.__init__ core.AnalyseMapping.ReadID-class.html#__init__
+core.AnalyseMapping.TPRead core.AnalyseMapping.TPRead-class.html
+core.AnalyseMapping.TPRead.isContained core.AnalyseMapping.TPRead-class.html#isContained
+core.AnalyseMapping.TPRead.toStr core.AnalyseMapping.TPRead-class.html#toStr
+core.AnalyseMapping.TPRead.__init__ core.AnalyseMapping.TPRead-class.html#__init__
+core.AnalyseMapping.TPRead.toObjself core.AnalyseMapping.TPRead-class.html#toObjself
diff --git a/doc/class-tree.html b/doc/class-tree.html
new file mode 100644
index 0000000..08168f9
--- /dev/null
+++ b/doc/class-tree.html
@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Class Hierarchy</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Trees </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%"> </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="class-tree.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Class Hierarchy</h1>
+<ul class="nomargin-top">
+ <li> <strong class="uidlink"><a href="core.AnalyseMapping.CustomRead-class.html">core.AnalyseMapping.CustomRead</a></strong>:
+ <em class="summary">Class for exhaustive reading of the sam alignments.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="core.AnalyseMapping.ReadID-class.html">core.AnalyseMapping.ReadID</a></strong>:
+ <em class="summary">Class for efficient addressing for np.</em>
+ </li>
+ <li> <strong class="uidlink"><a href="core.AnalyseMapping.TPRead-class.html">core.AnalyseMapping.TPRead</a></strong>:
+ <em class="summary">Class for exhaustive reading of the sam alignments.</em>
+ </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Trees </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:17 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core-module.html b/doc/core-module.html
new file mode 100644
index 0000000..e1c7466
--- /dev/null
+++ b/doc/core-module.html
@@ -0,0 +1,162 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ Package core
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== PACKAGE DESCRIPTION ==================== -->
+<h1 class="epydoc">Package core</h1><p class="nomargin-top"><span class="codelink"><a href="core-pysrc.html">source code</a></span></p>
+<!-- ==================== SUBMODULES ==================== -->
+<a name="section-Submodules"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Submodules</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Submodules"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+ <tr><td class="summary">
+ <ul class="nomargin">
+ <li> <strong class="uidlink"><a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a></strong>: <em class="summary">This script is used to evalulate the mapping results</em> </li>
+ <li> <strong class="uidlink"><a href="core.FindOrfs-module.html">core.FindOrfs</a></strong>: <em class="summary">FindOrfs, Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.InsertMutations-module.html">core.InsertMutations</a></strong>: <em class="summary">Created 2012 core Script for the generation of the artificial
+ reference genome</em> </li>
+ <li> <strong class="uidlink"><a href="core.PlotData-module.html">core.PlotData</a></strong>: <em class="summary">Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.Prep-module.html">core.Prep</a></strong>: <em class="summary">Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a></strong>: <em class="summary">Created 2012</em> </li>
+ </ul></td></tr>
+</table>
+
+<br />
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core-pysrc.html b/doc/core-pysrc.html
new file mode 100644
index 0000000..fd0b7a6
--- /dev/null
+++ b/doc/core-pysrc.html
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ Package core
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core-module.html">Package core</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno">1</tt> <tt class="py-line"> </tt>
+<a name="L2"></a><tt class="py-lineno">2</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.AnalyseMapping-module.html b/doc/core.AnalyseMapping-module.html
new file mode 100644
index 0000000..0b4705c
--- /dev/null
+++ b/doc/core.AnalyseMapping-module.html
@@ -0,0 +1,1729 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.AnalyseMapping</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module AnalyseMapping
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.AnalyseMapping-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module AnalyseMapping</h1><p class="nomargin-top"><span class="codelink"><a href="core.AnalyseMapping-pysrc.html">source code</a></span></p>
+<p>This script is used to evalulate the mapping results</p>
+
+<!-- ==================== CLASSES ==================== -->
+<a name="section-Classes"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Classes</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Classes"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="core.AnalyseMapping.CustomRead-class.html" class="summary-name">CustomRead</a><br />
+ Class for exhaustive reading of the sam alignments.
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="core.AnalyseMapping.TPRead-class.html" class="summary-name">TPRead</a><br />
+ Class for exhaustive reading of the sam alignments.
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="core.AnalyseMapping.ReadID-class.html" class="summary-name">ReadID</a><br />
+ Class for efficient addressing for np.
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="savepickle"></a><span class="summary-sig-name">savepickle</span>(<span class="summary-sig-arg">dictionaary</span>,
+ <span class="summary-sig-arg">outputname</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#savepickle">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="loadpickle"></a><span class="summary-sig-name">loadpickle</span>(<span class="summary-sig-arg">inputname</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#loadpickle">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">TPRead</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getTPRead" class="summary-sig-name">getTPRead</a>(<span class="summary-sig-arg">alngt</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Funtion which transforms an HTSeq alignment to a TPRead class.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getTPRead">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">CustomRead</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getCustomRead" class="summary-sig-name">getCustomRead</a>(<span class="summary-sig-arg">alngt</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Funtion which transforms an HTSeq alignment to a CustomRead class.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getCustomRead">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#GetOrderDictionary" class="summary-sig-name">GetOrderDictionary</a>(<span class="summary-sig-arg">referenceSAM</span>)</span><br />
+ Function to get a dictionary containing the rank of a read (given a
+ sorted samfile by readname, samtools).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#GetOrderDictionary">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Readobj</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getNextLine" class="summary-sig-name">getNextLine</a>(<span class="summary-sig-arg">textfile</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Function which returns the next line from a SAMFile.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getNextLine">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">gaps,mismatches</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getMisGap" class="summary-sig-name">getMisGap</a>(<span class="summary-sig-arg">mdtag</span>,
+ <span class="summary-sig-arg">cigar</span>)</span><br />
+ Reads the alignment tag given, the text and a tag to search for</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getMisGap">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">(bool,list,bool)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getAllID" class="summary-sig-name">getAllID</a>(<span class="summary-sig-arg">textfile</span>,
+ <span class="summary-sig-arg">read</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Reads all alignments for the current read which are in the SAM file
+ (sorted).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getAllID">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">np.array</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#CompareAlignments" class="summary-sig-name">CompareAlignments</a>(<span class="summary-sig-arg">reflist</span>,
+ <span class="summary-sig-arg">artlist</span>,
+ <span class="summary-sig-arg">file</span>)</span><br />
+ Compares alignments for the reference and artificial reference for a
+ specific read id.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CompareAlignments">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">read obj.</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#SkipHeader" class="summary-sig-name">SkipHeader</a>(<span class="summary-sig-arg">file</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Skips the header from a SAM file, but reads the first line of the
+ alignment section.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#SkipHeader">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int,int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getRanks" class="summary-sig-name">getRanks</a>(<span class="summary-sig-arg">RefRead</span>,
+ <span class="summary-sig-arg">ArtRead</span>,
+ <span class="summary-sig-arg">rankdic</span>)</span><br />
+ Function which returns the ranks of 2 given readIDs (read from
+ reference,read from artificial).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getRanks">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">ranks</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#ReadSAMnoMem" class="summary-sig-name">ReadSAMnoMem</a>(<span class="summary-sig-arg">ref</span>,
+ <span class="summary-sig-arg">art</span>,
+ <span class="summary-sig-arg">output</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>,
+ <span class="summary-sig-arg">rankdic</span>)</span><br />
+ Main function for comparing to mappings.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadSAMnoMem">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getNumberOf" class="summary-sig-name">getNumberOf</a>(<span class="summary-sig-arg">line</span>,
+ <span class="summary-sig-arg">tag</span>)</span><br />
+ Reads the alignment tag, given the text and a tag to search for.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getNumberOf">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getsum" class="summary-sig-name">getsum</a>(<span class="summary-sig-arg">strlist</span>)</span><br />
+ Sum of strings (as ints)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getsum">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">float</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getmean" class="summary-sig-name">getmean</a>(<span class="summary-sig-arg">strlist</span>)</span><br />
+ Mean of strings.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getmean">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">float</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#ComputeRQScore" class="summary-sig-name">ComputeRQScore</a>(<span class="summary-sig-arg">quality</span>)</span><br />
+ Computes the ReadQualityScore given a quality string</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ComputeRQScore">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getAlignmentLength" class="summary-sig-name">getAlignmentLength</a>(<span class="summary-sig-arg">cigar</span>)</span><br />
+ Computes the alignment length given a cigar string.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getAlignmentLength">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">readobj, readname</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#isSaneAlignment" class="summary-sig-name">isSaneAlignment</a>(<span class="summary-sig-arg">alignment</span>,
+ <span class="summary-sig-arg">identifier</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Checks alignment line for unnecessary informations to skip</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#isSaneAlignment">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#CheckForSameAlignments" class="summary-sig-name">CheckForSameAlignments</a>(<span class="summary-sig-arg">readref</span>,
+ <span class="summary-sig-arg">readart</span>)</span><br />
+ Function for comparison of artificial alignments and reference
+ alignments.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CheckForSameAlignments">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#getHammingdistance" class="summary-sig-name">getHammingdistance</a>(<span class="summary-sig-arg">CompareString</span>,
+ <span class="summary-sig-arg">start</span>,
+ <span class="summary-sig-arg">end</span>)</span><br />
+ Computes the number of subsitutions in the artificial reference using
+ the CompareString.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getHammingdistance">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#readReadQualities" class="summary-sig-name">readReadQualities</a>(<span class="summary-sig-arg">fastqfile</span>)</span><br />
+ Reads a .fastqfile and calculates a defined readscore input: fastq
+ file output: fastq dictionary key = readid; value = qualstr</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readReadQualities">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#extendReadDic" class="summary-sig-name">extendReadDic</a>(<span class="summary-sig-arg">readdic</span>)</span><br />
+ Extends a given dictionary with KEY = readid and VALUE = qualstr such
+ that an internal naming is generated which can be used to efficiently
+ create an numpy array</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#extendReadDic">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">string</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#returnSequence" class="summary-sig-name">returnSequence</a>(<span class="summary-sig-arg">fasta</span>)</span><br />
+ Returns a sequence string from a fasta file.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#returnSequence">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#CreateCompareList" class="summary-sig-name">CreateCompareList</a>(<span class="summary-sig-arg">Reference</span>,
+ <span class="summary-sig-arg">ARG</span>)</span><br />
+ Creates a list which is used for comparisons between aligned reads
+ (exact number of mismatches)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CreateCompareList">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">read obj.</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#readSAMline" class="summary-sig-name">readSAMline</a>(<span class="summary-sig-arg">alignment</span>,
+ <span class="summary-sig-arg">identifier</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Function for reading SAM alignment text file (one line)</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readSAMline">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#returnIndex" class="summary-sig-name">returnIndex</a>(<span class="summary-sig-arg">readdic</span>,
+ <span class="summary-sig-arg">readname</span>)</span><br />
+ Returns the index of a read.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#returnIndex">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">array</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq" class="summary-sig-name">ReadArtificialSAMfileHTSeq</a>(<span class="summary-sig-arg">art</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">RefArray</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Function for reading the artificial reference genome using HTSeq.This
+ function is mainly used.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadArtificialSAMfileHTSeq">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#writeToTabArt" class="summary-sig-name">writeToTabArt</a>(<span class="summary-sig-arg">ReadDic</span>,
+ <span class="summary-sig-arg">outfile</span>)</span><br />
+ Write function for hits ont he reference genome.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#writeToTabArt">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#writeToTabRef" class="summary-sig-name">writeToTabRef</a>(<span class="summary-sig-arg">RefArray</span>,
+ <span class="summary-sig-arg">outfile</span>,
+ <span class="summary-sig-arg">reverseReadArray</span>,
+ <span class="summary-sig-arg">ReadDic</span>)</span><br />
+ Write function for hits ont he reference genome.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#writeToTabRef">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">np.array(obj)</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#ReadFromTab" class="summary-sig-name">ReadFromTab</a>(<span class="summary-sig-arg">infile</span>,
+ <span class="summary-sig-arg">arraysize</span>)</span><br />
+ Reads the results from writeToTab in for plotting and analysis</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadFromTab">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">files</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#readInput" class="summary-sig-name">readInput</a>(<span class="summary-sig-arg">file</span>)</span><br />
+ Function for reading in the controldictionary from the inputfile.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readInput">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="GetCompletePath"></a><span class="summary-sig-name">GetCompletePath</span>(<span class="summary-sig-arg">path</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#GetCompletePath">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.AnalyseMapping-module.html#initOutFiles" class="summary-sig-name">initOutFiles</a>(<span class="summary-sig-arg">controlDic</span>,
+ <span class="summary-sig-arg">mapper</span>,
+ <span class="summary-sig-arg">outpath</span>)</span><br />
+ Since we append in the program, we need to make sure no old files
+ remain...</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#initOutFiles">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="alngts"></a><span class="summary-name">alngts</span> = <code title="0">0</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="AlignedReadsdic"></a><span class="summary-name">AlignedReadsdic</span> = <code title="{}"><code class="variable-group">{</code><code class="variable-group">}</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="algnedToRef"></a><span class="summary-name">algnedToRef</span> = <code title="0">0</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="algnedToArt"></a><span class="summary-name">algnedToArt</span> = <code title="0">0</code><br />
+ Helper debug functions....
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="getTPRead"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getTPRead</span>(<span class="sig-arg">alngt</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getTPRead">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Funtion which transforms an HTSeq alignment to a TPRead class.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alngt</code></strong> (alignment) - alignment from the sam file.</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list which indicates differences between reference / artificial</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - Contains ranks and qualities for every entry in the fastq file</li>
+ </ul></dd>
+ <dt>Returns: TPRead</dt>
+ <dd>Transformed ReadObject.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getCustomRead"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getCustomRead</span>(<span class="sig-arg">alngt</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getCustomRead">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Funtion which transforms an HTSeq alignment to a CustomRead class.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alngt</code></strong> (alignment) - alignment from the sam file.</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list which indicates differences between reference / artificial</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - Contains ranks and qualities for every entry in the fastq file</li>
+ </ul></dd>
+ <dt>Returns: CustomRead</dt>
+ <dd>Transformed ReadObject.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="GetOrderDictionary"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">GetOrderDictionary</span>(<span class="sig-arg">referenceSAM</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#GetOrderDictionary">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function to get a dictionary containing the rank of a read (given a
+ sorted samfile by readname, samtools).</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>referenceSAM</code></strong> (string) - Inputfile name for reference SAM file.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Internalnaming according to the sorting of samtools. Key =
+ ReadID, Value = rank</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getNextLine"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getNextLine</span>(<span class="sig-arg">textfile</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getNextLine">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function which returns the next line from a SAMFile.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>textfile</code></strong> (fileobject stream) - SAMfile</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - AA sequence of the reference genome.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (Dictionary) - Boolean which decides if unbalanced mutations are allowed (only
+ initial mutation is performed)</li>
+ </ul></dd>
+ <dt>Returns: Readobj</dt>
+ <dd>Parsed read from text line.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getMisGap"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getMisGap</span>(<span class="sig-arg">mdtag</span>,
+ <span class="sig-arg">cigar</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getMisGap">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Reads the alignment tag given, the text and a tag to search for</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>mdtag</code></strong> (string) - MDTag from alignment</li>
+ <li><strong class="pname"><code>cigar</code></strong> (string) - Cigar from alignment</li>
+ </ul></dd>
+ <dt>Returns: gaps,mismatches</dt>
+ <dd>Parsed gaps and mismatches</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getAllID"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getAllID</span>(<span class="sig-arg">textfile</span>,
+ <span class="sig-arg">read</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getAllID">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Reads all alignments for the current read which are in the SAM file
+ (sorted). If a new read ID is scanned the results are returned.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>textfile</code></strong> (fileobject stream) - SAM file for reading.</li>
+ <li><strong class="pname"><code>read</code></strong> (read obj) - the last read obj which defines the current read id</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - Look up for quality values.</li>
+ </ul></dd>
+ <dt>Returns: (bool,list,bool)</dt>
+ <dd>a "triple", where 2 bools are defined as indicator
+ variables and a list with all alignments for one read.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CompareAlignments"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">CompareAlignments</span>(<span class="sig-arg">reflist</span>,
+ <span class="sig-arg">artlist</span>,
+ <span class="sig-arg">file</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CompareAlignments">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Compares alignments for the reference and artificial reference for a
+ specific read id. The goal is to identify false positives.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>reflist</code></strong> (read obj list) - list containing alignments witht the same ID (reference)</li>
+ <li><strong class="pname"><code>artlist</code></strong> (read obj list) - list containing alignments witht the same ID (artificial)</li>
+ </ul></dd>
+ <dt>Returns: np.array</dt>
+ <dd>indices of unique alignments</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="SkipHeader"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">SkipHeader</span>(<span class="sig-arg">file</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#SkipHeader">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Skips the header from a SAM file, but reads the first line of the
+ alignment section.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file</code></strong> (read obj list) - list containing alignments witht the same ID (reference)</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list for accumulation of the same read id</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ID - read quality mappings.</li>
+ </ul></dd>
+ <dt>Returns: read obj.</dt>
+ <dd>Returns a read obj. from the SAM file.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getRanks"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getRanks</span>(<span class="sig-arg">RefRead</span>,
+ <span class="sig-arg">ArtRead</span>,
+ <span class="sig-arg">rankdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getRanks">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function which returns the ranks of 2 given readIDs (read from
+ reference,read from artificial).</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>RefRead</code></strong> (read obj) - read obj (reference)</li>
+ <li><strong class="pname"><code>ArtRead</code></strong> (read obj) - read obj (artificial)</li>
+ <li><strong class="pname"><code>rankdic</code></strong> (dictionary) - dictionary containing ranks of the read IDs (according to the
+ sorted SAM files).</li>
+ </ul></dd>
+ <dt>Returns: int,int</dt>
+ <dd>returns the false positives and true positives for a SAM file
+ pair (reference, artificial)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="ReadSAMnoMem"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadSAMnoMem</span>(<span class="sig-arg">ref</span>,
+ <span class="sig-arg">art</span>,
+ <span class="sig-arg">output</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>,
+ <span class="sig-arg">rankdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadSAMnoMem">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Main function for comparing to mappings. This functions takes the
+ complete alignments for artificial and reference genome and goes through
+ them in parallel. Since the mappings are sorted the function alternates
+ the parsing of the samfiles in such a way that no memory is used for
+ comparing these functions.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>ref</code></strong> (string) - path to reference alignments (SAM file)</li>
+ <li><strong class="pname"><code>art</code></strong> (string) - path to artificial alignments (SAM file)</li>
+ <li><strong class="pname"><code>output</code></strong> (read obj) - read obj (artificial)</li>
+ <li><strong class="pname"><code>compareList</code></strong> (read obj) - read obj (artificial)</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ID - read quality mappings.</li>
+ <li><strong class="pname"><code>rankdic</code></strong> (dictionary) - dictionary containing ranks of the read IDs (according to the
+ sorted SAM files).</li>
+ </ul></dd>
+ <dt>Returns: ranks</dt>
+ <dd>Returns the ranks for the 2 read ids.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getNumberOf"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getNumberOf</span>(<span class="sig-arg">line</span>,
+ <span class="sig-arg">tag</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getNumberOf">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Reads the alignment tag, given the text and a tag to search for.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>line</code></strong> (string) - SAM line</li>
+ <li><strong class="pname"><code>tag</code></strong> (string) - SAM tag. i.e: NM,MD</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>number x behind desired tag tag:i:x</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getsum"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getsum</span>(<span class="sig-arg">strlist</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getsum">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Sum of strings (as ints)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>strlist</code></strong> (list(str)) - SAM line</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>MD tag calculation.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getmean"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getmean</span>(<span class="sig-arg">strlist</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getmean">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Mean of strings.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>strlist</code></strong> (list(str)) - SAM line</li>
+ </ul></dd>
+ <dt>Returns: float</dt>
+ <dd>mean</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="ComputeRQScore"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ComputeRQScore</span>(<span class="sig-arg">quality</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ComputeRQScore">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Computes the ReadQualityScore given a quality string</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>quality</code></strong> (string) - quality string of a read.</li>
+ </ul></dd>
+ <dt>Returns: float</dt>
+ <dd>ReadQualityScore (RQS)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getAlignmentLength"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getAlignmentLength</span>(<span class="sig-arg">cigar</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getAlignmentLength">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Computes the alignment length given a cigar string. Needed for Start +
+ End calculation.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>cigar</code></strong> (string) - Cigar string (SAM)</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>alignmentlength</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="isSaneAlignment"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">isSaneAlignment</span>(<span class="sig-arg">alignment</span>,
+ <span class="sig-arg">identifier</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#isSaneAlignment">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Checks alignment line for unnecessary informations to skip</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alignment</code></strong> (string) - Line from SAM</li>
+ <li><strong class="pname"><code>identifier</code></strong> (string) - read id</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list of alignments with same read id.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - Dictionary containg a read id; read quality mapping</li>
+ </ul></dd>
+ <dt>Returns: readobj, readname</dt>
+ <dd>Returns the read and it's identifier.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CheckForSameAlignments"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">CheckForSameAlignments</span>(<span class="sig-arg">readref</span>,
+ <span class="sig-arg">readart</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CheckForSameAlignments">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for comparison of artificial alignments and reference
+ alignments. FP are defined such that start and end position must be
+ unique to the artificial reference returns 0 if no same read is found (FP
+ found) returns 1 if an equal alignment is found</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>readref</code></strong> (read obj.) - reference</li>
+ <li><strong class="pname"><code>readart</code></strong> (read obj.) - artificial</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd>Indicator if alignment is the same (start & end equal)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getHammingdistance"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getHammingdistance</span>(<span class="sig-arg">CompareString</span>,
+ <span class="sig-arg">start</span>,
+ <span class="sig-arg">end</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#getHammingdistance">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Computes the number of subsitutions in the artificial reference using
+ the CompareString.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>CompareString</code></strong> (string) - string of 0 and 1s. 1 = hamming 1 between reference and
+ artificial.</li>
+ <li><strong class="pname"><code>start</code></strong> (int) - start of alignment</li>
+ <li><strong class="pname"><code>end</code></strong> (int) - end ofalignment</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>hamming distance</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="readReadQualities"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">readReadQualities</span>(<span class="sig-arg">fastqfile</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readReadQualities">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Reads a .fastqfile and calculates a defined readscore input: fastq
+ file output: fastq dictionary key = readid; value = qualstr</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>fastqfile</code></strong> (string) - path to fastq file</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>dictionary containing read ids and read qualities.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="extendReadDic"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">extendReadDic</span>(<span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#extendReadDic">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Extends a given dictionary with KEY = readid and VALUE = qualstr such
+ that an internal naming is generated which can be used to efficiently
+ create an numpy array</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>extended readdic with KEY = ID, VALUE = READID object with
+ READID.internalid and READID.qulstr = qualstr</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="returnSequence"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">returnSequence</span>(<span class="sig-arg">fasta</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#returnSequence">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Returns a sequence string from a fasta file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>fasta</code></strong> (string) - path to fasta file.</li>
+ </ul></dd>
+ <dt>Returns: string</dt>
+ <dd>sequence</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="CreateCompareList"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">CreateCompareList</span>(<span class="sig-arg">Reference</span>,
+ <span class="sig-arg">ARG</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CreateCompareList">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Creates a list which is used for comparisons between aligned reads
+ (exact number of mismatches)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>Reference</code></strong> (string) - reference genome</li>
+ <li><strong class="pname"><code>ARG</code></strong> (string) - artificial reference genome.</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>list containt 1s, where there is a difference in the genomes and
+ 0s where the nucleotides are equal.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="readSAMline"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">readSAMline</span>(<span class="sig-arg">alignment</span>,
+ <span class="sig-arg">identifier</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readSAMline">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for reading SAM alignment text file (one line)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alignment</code></strong> (string) - SAM alignment</li>
+ <li><strong class="pname"><code>identifier</code></strong> (string) - read id</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list containt 1s, where there is a difference in the genomes and
+ 0s where the nucleotides are equal.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ <dt>Returns: read obj.</dt>
+ <dd>returns a customRead object</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="returnIndex"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">returnIndex</span>(<span class="sig-arg">readdic</span>,
+ <span class="sig-arg">readname</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#returnIndex">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Returns the index of a read. The index is prescribed by the ordering
+ in the sam file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>readname</code></strong> (string) - read id</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.ArtRead</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>index</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="ReadArtificialSAMfileHTSeq"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadArtificialSAMfileHTSeq</span>(<span class="sig-arg">art</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">RefArray</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadArtificialSAMfileHTSeq">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for reading the artificial reference genome using HTSeq.This
+ function is mainly used. Only if no quality string is in the SAM line.
+ The custom SAM reading function is used.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>art</code></strong> (string) - artificial file.</li>
+ <li><strong class="pname"><code>RefArray</code></strong> (array) - Results from reading the reference SAM file.</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list containt 1s, where there is a difference in the genomes and
+ 0s where the nucleotides are equal.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ <dt>Returns: array</dt>
+ <dd>aligned read objects in an array.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="writeToTabArt"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">writeToTabArt</span>(<span class="sig-arg">ReadDic</span>,
+ <span class="sig-arg">outfile</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#writeToTabArt">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Write function for hits ont he reference genome. Only the best
+ alignment (least mismatches) Header : ReadID MatchedReference
+ Substitutions NumberOfMismatches ReadQuality
+ MappingQuality</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>outfile</code></strong> (string) - Path to outfile.</li>
+ <li><strong class="pname"><code>ReadDic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="writeToTabRef"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">writeToTabRef</span>(<span class="sig-arg">RefArray</span>,
+ <span class="sig-arg">outfile</span>,
+ <span class="sig-arg">reverseReadArray</span>,
+ <span class="sig-arg">ReadDic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#writeToTabRef">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Write function for hits ont he reference genome. Only the best
+ alignment (least mismatches)</p>
+ <p>Header : ReadID MatchedReference Substitutions
+ NumberOfMismatches ReadQuality MappingQuality rows in the
+ infile</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>RefArray</code></strong> (string) - path to inputfile.</li>
+ <li><strong class="pname"><code>outfile</code></strong> (int) - rows in the infile</li>
+ <li><strong class="pname"><code>reverseReadArray</code></strong> (dictionary) - Contains reads = values and ranks = keys</li>
+ <li><strong class="pname"><code>ReadDic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="ReadFromTab"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadFromTab</span>(<span class="sig-arg">infile</span>,
+ <span class="sig-arg">arraysize</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadFromTab">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Reads the results from writeToTab in for plotting and analysis</p>
+ <p>Header : ReadID MatchedReference Substitutions
+ NumberOfMismatches ReadQuality MappingQuality</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>infile</code></strong> (string) - path to inputfile.</li>
+ <li><strong class="pname"><code>arraysize</code></strong> (int) - rows in the infile</li>
+ </ul></dd>
+ <dt>Returns: np.array(obj)</dt>
+ <dd>array for unique classified reads.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="readInput"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">readInput</span>(<span class="sig-arg">file</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#readInput">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for reading in the controldictionary from the inputfile.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file</code></strong> (string) - Path to the input file.</li>
+ </ul></dd>
+ <dt>Returns: files</dt>
+ <dd>Controldictionary which is used to regulate the programs
+ workflow.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="initOutFiles"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">initOutFiles</span>(<span class="sig-arg">controlDic</span>,
+ <span class="sig-arg">mapper</span>,
+ <span class="sig-arg">outpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#initOutFiles">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Since we append in the program, we need to make sure no old files
+ remain...</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>controlDic</code></strong> (dictionary) - dictionary containing future filenames.</li>
+ <li><strong class="pname"><code>mapper</code></strong> (string) - current identifier mapper for which the results are written</li>
+ <li><strong class="pname"><code>outpath</code></strong> (string) - existing path, where the outfiles will be written.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.AnalyseMapping-pysrc.html b/doc/core.AnalyseMapping-pysrc.html
new file mode 100644
index 0000000..6c0badf
--- /dev/null
+++ b/doc/core.AnalyseMapping-pysrc.html
@@ -0,0 +1,1302 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.AnalyseMapping</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module AnalyseMapping
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.AnalyseMapping-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.AnalyseMapping-module.html">Module core.AnalyseMapping</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">""" This script is used to evalulate the mapping results """</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">HTSeq</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">cPickle</tt> <tt class="py-keyword">as</tt> <tt class="py-name">pickle</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> <tt class="py-keyword">as</tt> <tt class="py-name">np</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">sys</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">re</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">subprocess</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable core.AnalyseMapping.alngts=core.AnalyseMapping-module.html#alngts"><a title="core.AnalyseMapping.alngts" class="py-name" href="#" onclick="return doclink('link-0', 'alngts', 'link-0');">alngts</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt id="link-1" class="py-name" targets="Variable core.AnalyseMapping.AlignedReadsdic=core.AnalyseMapping-module.html#AlignedReadsdic"><a title="core.AnalyseMapping.AlignedReadsdic" class="py-name" href="#" onclick="return doclink('link-1', 'AlignedReadsdic', 'link-1');">AlignedReadsdic</a></tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt id="link-2" class="py-name" targets="Variable core.AnalyseMapping.algnedToRef=core.AnalyseMapping-module.html#algnedToRef"><a title="core.AnalyseMapping.algnedToRef" class="py-name" href="#" onclick="return doclink('link-2', 'algnedToRef', 'link-2');">algnedToRef</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt id="link-3" class="py-name" targets="Variable core.AnalyseMapping.algnedToArt=core.AnalyseMapping-module.html#algnedToArt"><a title="core.AnalyseMapping.algnedToArt" class="py-name" href="#" onclick="return doclink('link-3', 'algnedToArt', 'link-3');">algnedToArt</a></tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-string">""" Helper debug functions.... """</tt> </tt>
+<a name="savepickle"></a><div id="savepickle-def"><a name="L22"></a><tt class="py-lineno"> 22</tt> <a class="py-toggle" href="#" id="savepickle-toggle" onclick="return toggle('savepickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#savepickle">savepickle</a><tt class="py-op">(</tt><tt class="py-param">dictionaary</tt><tt class="py-op">,</tt> <tt class="py-param">outputname</tt><tt class="py-op">)</tt><tt class= [...]
+</div><div id="savepickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="savepickle-expanded"><a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dump</tt><tt class="py-op">(</tt><tt class="py-name">dictionaary</tt><tt class="py-op">,</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputname</tt> <tt class="py-op">+</tt> <tt class="py- [...]
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Saved .pickle!"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> </tt>
+<a name="loadpickle"></a><div id="loadpickle-def"><a name="L26"></a><tt class="py-lineno"> 26</tt> <a class="py-toggle" href="#" id="loadpickle-toggle" onclick="return toggle('loadpickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#loadpickle">loadpickle</a><tt class="py-op">(</tt><tt class="py-param">inputname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="loadpickle-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="loadpickle-expanded"><a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-name">dictionary</tt> <tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">load</tt><tt class="py-op">(</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">inputname</tt> <tt class="py-op">+</tt> <tt class="py-s [...]
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Loaded "</tt> <tt class="py-op">+</tt> <tt class="py-name">inputname</tt> <tt class="py-op">+</tt> <tt class="py-string">".pickle!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">dictionary</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> </tt>
+<a name="CustomRead"></a><div id="CustomRead-def"><a name="L32"></a><tt class="py-lineno"> 32</tt> <a class="py-toggle" href="#" id="CustomRead-toggle" onclick="return toggle('CustomRead');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a><tt class="py-op">:</tt> </tt>
+</div><div id="CustomRead-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CustomRead-expanded"><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> Class for exhaustive reading of the sam alignments.</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> </tt>
+<a name="CustomRead.__init__"></a><div id="CustomRead.__init__-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="CustomRead.__init__-toggle" onclick="return toggle('CustomRead.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.CustomRead-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">readname</ [...]
+</div><div id="CustomRead.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="CustomRead.__init__-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">readname</tt> <tt class="py-comment"># read identifier </tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">mr</tt><tt class="py-op">]</tt> <tt class="py-comment"># matched reference</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subs</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-name">subs</tt><tt class="py-op">]</tt> <tt class="py-comment"># substitutions in artificial reference genome</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">nm</tt><tt class="py-op">]</tt> <tt class="py-comment"># number of mismatches (according to SAM)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rq</tt> <tt class="py-op">=</tt> <tt class="py-name">score</tt> <tt class="py-comment"># read quality score</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">mq</tt><tt class="py-op">]</tt> <tt class="py-comment"># mapping quality</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">]</tt> <tt class="py-comment"># alignment start</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">end</tt><tt class="py-op">]</tt> <tt class="py-comment"># alignment end</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-comment">#mr,nm,subs,score,mq,start,end</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">gaps</tt><tt class="py-op">]</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">mism</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> </tt>
+<a name="CustomRead.toObjself"></a><div id="CustomRead.toObjself-def"><a name="L51"></a><tt class="py-lineno"> 51</tt> <a class="py-toggle" href="#" id="CustomRead.toObjself-toggle" onclick="return toggle('CustomRead.toObjself');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.CustomRead-class.html#toObjself">toObjself</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">read [...]
+</div><a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">subs</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">subs</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">end</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">end</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> </tt>
+<a name="CustomRead.toStr"></a><div id="CustomRead.toStr-def"><a name="L61"></a><tt class="py-lineno"> 61</tt> <a class="py-toggle" href="#" id="CustomRead.toStr-toggle" onclick="return toggle('CustomRead.toStr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.CustomRead-class.html#toStr">toStr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">readname</tt><tt class="py-o [...]
+</div><a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-docstring">"""Converts the object to a string """</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">read</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-comment">#print read</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">+=</tt> <tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">readname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">,</ [...]
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> </tt>
+<a name="CustomRead.toStrNoMem"></a><div id="CustomRead.toStrNoMem-def"><a name="L70"></a><tt class="py-lineno"> 70</tt> <a class="py-toggle" href="#" id="CustomRead.toStrNoMem-toggle" onclick="return toggle('CustomRead.toStrNoMem');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.CustomRead-class.html#toStrNoMem">toStrNoMem</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param [...]
+</div><a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-docstring">"""Converts the object to a string """</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> </tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">identifier</tt> <tt class="py-op">==</tt> <tt class="py-string">"art"</tt><tt class="py-op">:</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">sub [...]
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">=</tt> <tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">sel [...]
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"> </tt>
+<a name="TPRead"></a><div id="TPRead-def"><a name="L81"></a><tt class="py-lineno"> 81</tt> <a class="py-toggle" href="#" id="TPRead-toggle" onclick="return toggle('TPRead');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="core.AnalyseMapping.TPRead-class.html">TPRead</a><tt class="py-op">:</tt> </tt>
+</div><div id="TPRead-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="TPRead-expanded"><a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-docstring">""" Class for exhaustive reading of the sam alignments. Only for TP """</tt> </tt>
+<a name="TPRead.__init__"></a><div id="TPRead.__init__-def"><a name="L83"></a><tt class="py-lineno"> 83</tt> <a class="py-toggle" href="#" id="TPRead.__init__-toggle" onclick="return toggle('TPRead.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.TPRead-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">nm</tt><tt class="py-op">,</tt [...]
+</div><div id="TPRead.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TPRead.__init__-expanded"><a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">nm</tt><tt class="py-op">]</tt> <tt class="py-comment"># number of mismatches (according to SAM)</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">rq</tt> <tt class="py-op">=</tt> <tt class="py-name">score</tt> <tt class="py-comment"># read quality score</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">mq</tt><tt class="py-op">]</tt> <tt class="py-comment"># mapping quality</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">]</tt> <tt class="py-comment"># alignment start</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">end</tt><tt class="py-op">]</tt> <tt class="py-comment"># alignment end</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">gaps</tt><tt class="py-op">]</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">mism</tt><tt class="py-op">]</tt> </tt>
+</div><a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> </tt>
+<a name="TPRead.toObjself"></a><div id="TPRead.toObjself-def"><a name="L92"></a><tt class="py-lineno"> 92</tt> <a class="py-toggle" href="#" id="TPRead.toObjself-toggle" onclick="return toggle('TPRead.toObjself');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.TPRead-class.html#toObjself">toObjself</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">read</tt><tt class="py-o [...]
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">end</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">end</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> </tt>
+<a name="TPRead.toStr"></a><div id="TPRead.toStr-def"><a name="L100"></a><tt class="py-lineno"> 100</tt> <a class="py-toggle" href="#" id="TPRead.toStr-toggle" onclick="return toggle('TPRead.toStr');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.TPRead-class.html#toStr">toStr</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">readname</tt><tt class="py-op">)</tt><tt class= [...]
+</div><a name="L101"></a><tt class="py-lineno"> 101</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L102"></a><tt class="py-lineno"> 102</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">read</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno"> 103</tt> <tt class="py-line"> <tt class="py-name">str</tt> <tt class="py-op">+=</tt> <tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">readname</tt><tt class="py-op">,</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt [...]
+<a name="L104"></a><tt class="py-lineno"> 104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L105"></a><tt class="py-lineno"> 105</tt> <tt class="py-line"> </tt>
+<a name="L106"></a><tt class="py-lineno"> 106</tt> <tt class="py-line"> <tt class="py-string">""" returns 1 if an equal alignment is contained in the array """</tt> </tt>
+<a name="TPRead.isContained"></a><div id="TPRead.isContained-def"><a name="L107"></a><tt class="py-lineno"> 107</tt> <a class="py-toggle" href="#" id="TPRead.isContained-toggle" onclick="return toggle('TPRead.isContained');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.TPRead-class.html#isContained">isContained</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">read</tt><t [...]
+</div><div id="TPRead.isContained-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="TPRead.isContained-expanded"><a name="L108"></a><tt class="py-lineno"> 108</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">position</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py [...]
+<a name="L109"></a><tt class="py-lineno"> 109</tt> <tt class="py-line"> <tt class="py-comment"># Checks if a given Read (more accurate the alignment) is already in the object. this is used to check against FP</tt> </tt>
+<a name="L110"></a><tt class="py-lineno"> 110</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">position</tt> <tt class="py-op">==</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-keyword">and</tt> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">end</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name" [...]
+<a name="L111"></a><tt class="py-lineno"> 111</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L112"></a><tt class="py-lineno"> 112</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div></div><a name="L113"></a><tt class="py-lineno"> 113</tt> <tt class="py-line"> </tt>
+<a name="L114"></a><tt class="py-lineno"> 114</tt> <tt class="py-line"> </tt>
+<a name="ReadID"></a><div id="ReadID-def"><a name="L115"></a><tt class="py-lineno"> 115</tt> <a class="py-toggle" href="#" id="ReadID-toggle" onclick="return toggle('ReadID');">-</a><tt class="py-line"><tt class="py-keyword">class</tt> <a class="py-def-name" href="core.AnalyseMapping.ReadID-class.html">ReadID</a><tt class="py-op">:</tt> </tt>
+</div><div id="ReadID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ReadID-expanded"><a name="L116"></a><tt class="py-lineno"> 116</tt> <tt class="py-line"> <tt class="py-docstring">""" Class for efficient addressing for np. arrays! """</tt> </tt>
+<a name="ReadID.__init__"></a><div id="ReadID.__init__-def"><a name="L117"></a><tt class="py-lineno"> 117</tt> <a class="py-toggle" href="#" id="ReadID.__init__-toggle" onclick="return toggle('ReadID.__init__');">-</a><tt class="py-line"> <tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping.ReadID-class.html#__init__">__init__</a><tt class="py-op">(</tt><tt class="py-param">self</tt><tt class="py-op">,</tt> <tt class="py-param">internalID</tt><tt class="py- [...]
+</div><div id="ReadID.__init__-collapsed" style="display:none;" pad="++++" indent="++++++++"></div><div id="ReadID.__init__-expanded"><a name="L118"></a><tt class="py-lineno"> 118</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">internalID</tt> <tt class="py-op">=</tt> <tt class="py-name">internalID</tt> </tt>
+<a name="L119"></a><tt class="py-lineno"> 119</tt> <tt class="py-line"> <tt class="py-name">self</tt><tt class="py-op">.</tt><tt class="py-name">quality</tt> <tt class="py-op">=</tt> <tt class="py-name">quality</tt> </tt>
+</div></div><a name="L120"></a><tt class="py-lineno"> 120</tt> <tt class="py-line"> </tt>
+<a name="L121"></a><tt class="py-lineno"> 121</tt> <tt class="py-line"> </tt>
+<a name="L122"></a><tt class="py-lineno"> 122</tt> <tt class="py-line"><tt class="py-comment">############################################# CLASSES END###########################################</tt> </tt>
+<a name="L123"></a><tt class="py-lineno"> 123</tt> <tt class="py-line"> </tt>
+<a name="L124"></a><tt class="py-lineno"> 124</tt> <tt class="py-line"> </tt>
+<a name="getTPRead"></a><div id="getTPRead-def"><a name="L125"></a><tt class="py-lineno"> 125</tt> <a class="py-toggle" href="#" id="getTPRead-toggle" onclick="return toggle('getTPRead');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getTPRead">getTPRead</a><tt class="py-op">(</tt><tt class="py-param">alngt</tt><tt class="py-op">,</tt> <tt class="py-param">compareList</tt><tt class="py-op">,</tt> <tt class="py-param [...]
+</div><div id="getTPRead-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getTPRead-expanded"><a name="L126"></a><tt class="py-lineno"> 126</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L127"></a><tt class="py-lineno"> 127</tt> <tt class="py-line"><tt class="py-docstring"> Funtion which transforms an HTSeq alignment to a TPRead class.</tt> </tt>
+<a name="L128"></a><tt class="py-lineno"> 128</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L129"></a><tt class="py-lineno"> 129</tt> <tt class="py-line"><tt class="py-docstring"> @type alngt: alignment</tt> </tt>
+<a name="L130"></a><tt class="py-lineno"> 130</tt> <tt class="py-line"><tt class="py-docstring"> @param alngt: alignment from the sam file.</tt> </tt>
+<a name="L131"></a><tt class="py-lineno"> 131</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L132"></a><tt class="py-lineno"> 132</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list which indicates differences between reference / artificial</tt> </tt>
+<a name="L133"></a><tt class="py-lineno"> 133</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L134"></a><tt class="py-lineno"> 134</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: Contains ranks and qualities for every entry in the fastq file</tt> </tt>
+<a name="L135"></a><tt class="py-lineno"> 135</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L136"></a><tt class="py-lineno"> 136</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: TPRead</tt> </tt>
+<a name="L137"></a><tt class="py-lineno"> 137</tt> <tt class="py-line"><tt class="py-docstring"> @return: Transformed ReadObject.</tt> </tt>
+<a name="L138"></a><tt class="py-lineno"> 138</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L139"></a><tt class="py-lineno"> 139</tt> <tt class="py-line"> <tt class="py-name">cigar</tt> <tt class="py-op">=</tt> <tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">cigar</tt> </tt>
+<a name="L140"></a><tt class="py-lineno"> 140</tt> <tt class="py-line"> <tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">cigar</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">.</tt><t [...]
+<a name="L141"></a><tt class="py-lineno"> 141</tt> <tt class="py-line"> <tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">cigar</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">.</tt><tt [...]
+<a name="L142"></a><tt class="py-lineno"> 142</tt> <tt class="py-line"> <tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">optional_field</tt><tt class="py-op">(</tt><tt class="py-string">"NM"</tt><tt class="py-op">)</tt> </tt>
+<a name="L143"></a><tt class="py-lineno"> 143</tt> <tt class="py-line"> </tt>
+<a name="L144"></a><tt class="py-lineno"> 144</tt> <tt class="py-line"> <tt class="py-comment">#####->TPRead(nm, score, mq, start, end, gaps, mism, n)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno"> 145</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-4" class="py-name" targets="Class core.AnalyseMapping.TPRead=core.AnalyseMapping.TPRead-class.html"><a title="core.AnalyseMapping.TPRead" class="py-name" href="#" onclick="return doclink('link-4', 'TPRead', 'link-4');">TPRead</a></tt><tt class="py-op">(</tt><tt class="py-name">nm</tt><tt class="py-op">,</tt> <tt class="py-name">readdic</tt><t [...]
+</div><a name="L146"></a><tt class="py-lineno"> 146</tt> <tt class="py-line"> </tt>
+<a name="getCustomRead"></a><div id="getCustomRead-def"><a name="L147"></a><tt class="py-lineno"> 147</tt> <a class="py-toggle" href="#" id="getCustomRead-toggle" onclick="return toggle('getCustomRead');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getCustomRead">getCustomRead</a><tt class="py-op">(</tt><tt class="py-param">alngt</tt><tt class="py-op">,</tt> <tt class="py-param">compareList</tt><tt class="py-op">,< [...]
+</div><div id="getCustomRead-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getCustomRead-expanded"><a name="L148"></a><tt class="py-lineno"> 148</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L149"></a><tt class="py-lineno"> 149</tt> <tt class="py-line"><tt class="py-docstring"> Funtion which transforms an HTSeq alignment to a CustomRead class.</tt> </tt>
+<a name="L150"></a><tt class="py-lineno"> 150</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L151"></a><tt class="py-lineno"> 151</tt> <tt class="py-line"><tt class="py-docstring"> @type alngt: alignment</tt> </tt>
+<a name="L152"></a><tt class="py-lineno"> 152</tt> <tt class="py-line"><tt class="py-docstring"> @param alngt: alignment from the sam file.</tt> </tt>
+<a name="L153"></a><tt class="py-lineno"> 153</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L154"></a><tt class="py-lineno"> 154</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list which indicates differences between reference / artificial</tt> </tt>
+<a name="L155"></a><tt class="py-lineno"> 155</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L156"></a><tt class="py-lineno"> 156</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: Contains ranks and qualities for every entry in the fastq file</tt> </tt>
+<a name="L157"></a><tt class="py-lineno"> 157</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L158"></a><tt class="py-lineno"> 158</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: CustomRead</tt> </tt>
+<a name="L159"></a><tt class="py-lineno"> 159</tt> <tt class="py-line"><tt class="py-docstring"> @return: Transformed ReadObject.</tt> </tt>
+<a name="L160"></a><tt class="py-lineno"> 160</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L161"></a><tt class="py-lineno"> 161</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L162"></a><tt class="py-lineno"> 162</tt> <tt class="py-line"> <tt class="py-name">cigar</tt> <tt class="py-op">=</tt> <tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">cigar</tt> </tt>
+<a name="L163"></a><tt class="py-lineno"> 163</tt> <tt class="py-line"> <tt class="py-comment"># number of gaps is the sum of "I" (insertions) and "D" deletions.</tt> </tt>
+<a name="L164"></a><tt class="py-lineno"> 164</tt> <tt class="py-line"> <tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">cigar</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">.</tt><t [...]
+<a name="L165"></a><tt class="py-lineno"> 165</tt> <tt class="py-line"> </tt>
+<a name="L166"></a><tt class="py-lineno"> 166</tt> <tt class="py-line"> <tt class="py-comment"># mismatches are calculated as cigar XM - MDtag occurrences of numbers</tt> </tt>
+<a name="L167"></a><tt class="py-lineno"> 167</tt> <tt class="py-line"> <tt class="py-comment"># which indicate mismatches</tt> </tt>
+<a name="L168"></a><tt class="py-lineno"> 168</tt> <tt class="py-line"> <tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">.</tt><tt class="py-name">size</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">cigar</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">.</tt><tt [...]
+<a name="L169"></a><tt class="py-lineno"> 169</tt> <tt class="py-line"> </tt>
+<a name="L170"></a><tt class="py-lineno"> 170</tt> <tt class="py-line"> </tt>
+<a name="L171"></a><tt class="py-lineno"> 171</tt> <tt class="py-line"> <tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">optional_field</tt><tt class="py-op">(</tt><tt class="py-string">"NM"</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno"> 172</tt> <tt class="py-line"> </tt>
+<a name="L173"></a><tt class="py-lineno"> 173</tt> <tt class="py-line"> <tt class="py-comment">########</tt> </tt>
+<a name="L174"></a><tt class="py-lineno"> 174</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">qualstr</tt><tt class="py-op">)</tt> <tt class="py-op"><=</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L175"></a><tt class="py-lineno"> 175</tt> <tt class="py-line"> </tt>
+<a name="L176"></a><tt class="py-lineno"> 176</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-6" class="py-name" targets="Class core.AnalyseMapping.CustomRead=core.AnalyseMapping.CustomRead-class.html"><a title="core.AnalyseMapping.CustomRead" class="py-name" href="#" onclick="return doclink('link-6', 'CustomRead', 'link-6');">CustomRead</a></tt><tt class="py-op">(</tt><tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt clas [...]
+<a name="L177"></a><tt class="py-lineno"> 177</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L178"></a><tt class="py-lineno"> 178</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt id="link-8" class="py-name"><a title="core.AnalyseMapping.CustomRead" class="py-name" href="#" onclick="return doclink('link-8', 'CustomRead', 'link-6');">CustomRead</a></tt><tt class="py-op">(</tt><tt class="py-name">alngt</tt><tt class="py-op">.</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-o [...]
+</div><a name="L179"></a><tt class="py-lineno"> 179</tt> <tt class="py-line"> </tt>
+<a name="GetOrderDictionary"></a><div id="GetOrderDictionary-def"><a name="L180"></a><tt class="py-lineno"> 180</tt> <a class="py-toggle" href="#" id="GetOrderDictionary-toggle" onclick="return toggle('GetOrderDictionary');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#GetOrderDictionary">GetOrderDictionary</a><tt class="py-op">(</tt><tt class="py-param">referenceSAM</tt><tt class="py-op">)</tt><tt class="py-op">:</ [...]
+</div><div id="GetOrderDictionary-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="GetOrderDictionary-expanded"><a name="L181"></a><tt class="py-lineno"> 181</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L182"></a><tt class="py-lineno"> 182</tt> <tt class="py-line"><tt class="py-docstring"> Function to get a dictionary containing the rank of a read (given a sorted samfile by readname, samtools).</tt> </tt>
+<a name="L183"></a><tt class="py-lineno"> 183</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L184"></a><tt class="py-lineno"> 184</tt> <tt class="py-line"><tt class="py-docstring"> @type referenceSAM: string</tt> </tt>
+<a name="L185"></a><tt class="py-lineno"> 185</tt> <tt class="py-line"><tt class="py-docstring"> @param referenceSAM: Inputfile name for reference SAM file.</tt> </tt>
+<a name="L186"></a><tt class="py-lineno"> 186</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary</tt> </tt>
+<a name="L187"></a><tt class="py-lineno"> 187</tt> <tt class="py-line"><tt class="py-docstring"> @return: Internalnaming according to the sorting of samtools. Key = ReadID, Value = rank</tt> </tt>
+<a name="L188"></a><tt class="py-lineno"> 188</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L189"></a><tt class="py-lineno"> 189</tt> <tt class="py-line"> <tt class="py-name">internalDic</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L190"></a><tt class="py-lineno"> 190</tt> <tt class="py-line"> </tt>
+<a name="L191"></a><tt class="py-lineno"> 191</tt> <tt class="py-line"> <tt class="py-comment"># use ultrafast awk for getting only readnames from aligned fasta file</tt> </tt>
+<a name="L192"></a><tt class="py-lineno"> 192</tt> <tt class="py-line"> <tt class="py-name">readnames</tt> <tt class="py-op">=</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">subprocess</tt><tt class="py-op">.</tt><tt class="py-name">check_output</tt><tt class="py-op">(</tt><tt class="py-string">"""awk < %s -F "\t" '{print $1 }'"""</tt> <tt class="py-op">%</tt> <tt class="py-name">referenceSAM</tt><tt class="py-op">,</tt> <tt class="py-name">shell</tt [...]
+<a name="L193"></a><tt class="py-lineno"> 193</tt> <tt class="py-line"> </tt>
+<a name="L194"></a><tt class="py-lineno"> 194</tt> <tt class="py-line"> <tt class="py-comment"># make to list</tt> </tt>
+<a name="L195"></a><tt class="py-lineno"> 195</tt> <tt class="py-line"> <tt class="py-name">readnames</tt> <tt class="py-op">=</tt> <tt class="py-name">readnames</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L196"></a><tt class="py-lineno"> 196</tt> <tt class="py-line"> </tt>
+<a name="L197"></a><tt class="py-lineno"> 197</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L198"></a><tt class="py-lineno"> 198</tt> <tt class="py-line"> <tt class="py-comment"># skip header files</tt> </tt>
+<a name="L199"></a><tt class="py-lineno"> 199</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">readnames</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-op">(</tt><tt class="py-string">"@"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno"> 200</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L201"></a><tt class="py-lineno"> 201</tt> <tt class="py-line"> </tt>
+<a name="L202"></a><tt class="py-lineno"> 202</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L203"></a><tt class="py-lineno"> 203</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">readnames</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno"> 204</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">readnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">internalDic</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno"> 205</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L206"></a><tt class="py-lineno"> 206</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L207"></a><tt class="py-lineno"> 207</tt> <tt class="py-line"> <tt class="py-name">internalDic</tt><tt class="py-op">[</tt><tt class="py-name">readnames</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">index</tt> </tt>
+<a name="L208"></a><tt class="py-lineno"> 208</tt> <tt class="py-line"> <tt class="py-comment">#enumeration of the index</tt> </tt>
+<a name="L209"></a><tt class="py-lineno"> 209</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L210"></a><tt class="py-lineno"> 210</tt> <tt class="py-line"> </tt>
+<a name="L211"></a><tt class="py-lineno"> 211</tt> <tt class="py-line"> </tt>
+<a name="L212"></a><tt class="py-lineno"> 212</tt> <tt class="py-line"> </tt>
+<a name="L213"></a><tt class="py-lineno"> 213</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">internalDic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L214"></a><tt class="py-lineno"> 214</tt> <tt class="py-line"> </tt>
+<a name="L215"></a><tt class="py-lineno"> 215</tt> <tt class="py-line"> </tt>
+<a name="getNextLine"></a><div id="getNextLine-def"><a name="L216"></a><tt class="py-lineno"> 216</tt> <a class="py-toggle" href="#" id="getNextLine-toggle" onclick="return toggle('getNextLine');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getNextLine">getNextLine</a><tt class="py-op">(</tt><tt class="py-param">textfile</tt><tt class="py-op">,</tt> <tt class="py-param">compareList</tt><tt class="py-op">,</tt> <tt [...]
+</div><div id="getNextLine-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getNextLine-expanded"><a name="L217"></a><tt class="py-lineno"> 217</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L218"></a><tt class="py-lineno"> 218</tt> <tt class="py-line"><tt class="py-docstring"> Function which returns the next line from a SAMFile.</tt> </tt>
+<a name="L219"></a><tt class="py-lineno"> 219</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L220"></a><tt class="py-lineno"> 220</tt> <tt class="py-line"><tt class="py-docstring"> @type textfile: fileobject stream</tt> </tt>
+<a name="L221"></a><tt class="py-lineno"> 221</tt> <tt class="py-line"><tt class="py-docstring"> @param textfile: SAMfile</tt> </tt>
+<a name="L222"></a><tt class="py-lineno"> 222</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L223"></a><tt class="py-lineno"> 223</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: AA sequence of the reference genome.</tt> </tt>
+<a name="L224"></a><tt class="py-lineno"> 224</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: Dictionary</tt> </tt>
+<a name="L225"></a><tt class="py-lineno"> 225</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: Boolean which decides if unbalanced mutations are allowed (only initial mutation is performed)</tt> </tt>
+<a name="L226"></a><tt class="py-lineno"> 226</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Readobj</tt> </tt>
+<a name="L227"></a><tt class="py-lineno"> 227</tt> <tt class="py-line"><tt class="py-docstring"> @return: Parsed read from text line.</tt> </tt>
+<a name="L228"></a><tt class="py-lineno"> 228</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L229"></a><tt class="py-lineno"> 229</tt> <tt class="py-line"> </tt>
+<a name="L230"></a><tt class="py-lineno"> 230</tt> <tt class="py-line"> <tt class="py-comment"># dummy is needed because nomem and standart reading return "different" values.</tt> </tt>
+<a name="L231"></a><tt class="py-lineno"> 231</tt> <tt class="py-line"> <tt class="py-comment"># dummy, equals readname</tt> </tt>
+<a name="L232"></a><tt class="py-lineno"> 232</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">textfile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno"> 233</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno"> 234</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno"> 235</tt> <tt class="py-line"> <tt class="py-name">CRead</tt><tt class="py-op">,</tt> <tt class="py-name">dummy</tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name" targets="Function core.AnalyseMapping.readSAMline()=core.AnalyseMapping-module.html#readSAMline"><a title="core.AnalyseMapping.readSAMline" class="py-name" href="#" onclick="return doclink('link-10', 'readSAMline', 'link-10');">readSAMline</a></tt><tt class="py-op">(</tt> [...]
+<a name="L236"></a><tt class="py-lineno"> 236</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">CRead</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L237"></a><tt class="py-lineno"> 237</tt> <tt class="py-line"> </tt>
+<a name="L238"></a><tt class="py-lineno"> 238</tt> <tt class="py-line"> </tt>
+<a name="L239"></a><tt class="py-lineno"> 239</tt> <tt class="py-line"> </tt>
+<a name="getMisGap"></a><div id="getMisGap-def"><a name="L240"></a><tt class="py-lineno"> 240</tt> <a class="py-toggle" href="#" id="getMisGap-toggle" onclick="return toggle('getMisGap');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getMisGap">getMisGap</a><tt class="py-op">(</tt><tt class="py-param">mdtag</tt><tt class="py-op">,</tt> <tt class="py-param">cigar</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="getMisGap-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getMisGap-expanded"><a name="L241"></a><tt class="py-lineno"> 241</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L242"></a><tt class="py-lineno"> 242</tt> <tt class="py-line"><tt class="py-docstring"> Reads the alignment tag given, the text and a tag to search for</tt> </tt>
+<a name="L243"></a><tt class="py-lineno"> 243</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L244"></a><tt class="py-lineno"> 244</tt> <tt class="py-line"><tt class="py-docstring"> @type mdtag: string</tt> </tt>
+<a name="L245"></a><tt class="py-lineno"> 245</tt> <tt class="py-line"><tt class="py-docstring"> @param mdtag: MDTag from alignment</tt> </tt>
+<a name="L246"></a><tt class="py-lineno"> 246</tt> <tt class="py-line"><tt class="py-docstring"> @type cigar: string</tt> </tt>
+<a name="L247"></a><tt class="py-lineno"> 247</tt> <tt class="py-line"><tt class="py-docstring"> @param cigar: Cigar from alignment</tt> </tt>
+<a name="L248"></a><tt class="py-lineno"> 248</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: gaps,mismatches</tt> </tt>
+<a name="L249"></a><tt class="py-lineno"> 249</tt> <tt class="py-line"><tt class="py-docstring"> @return: Parsed gaps and mismatches</tt> </tt>
+<a name="L250"></a><tt class="py-lineno"> 250</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L251"></a><tt class="py-lineno"> 251</tt> <tt class="py-line"> <tt class="py-name">deletions</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name"><a title="core.AnalyseMapping.getsum" class="py-name" href="#" onclick="return doclink('link-11', 'getsum', 'link-5');">getsum</a></tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">findall</tt><tt class="py-op">(</tt><tt class="py-string">"(\d+)D"</tt><tt class="py-op">,</t [...]
+<a name="L252"></a><tt class="py-lineno"> 252</tt> <tt class="py-line"> <tt class="py-name">insertions</tt> <tt class="py-op">=</tt> <tt id="link-12" class="py-name"><a title="core.AnalyseMapping.getsum" class="py-name" href="#" onclick="return doclink('link-12', 'getsum', 'link-5');">getsum</a></tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">findall</tt><tt class="py-op">(</tt><tt class="py-string">"(\d+)I"</tt><tt class="py-op">,</ [...]
+<a name="L253"></a><tt class="py-lineno"> 253</tt> <tt class="py-line"> <tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">insertions</tt> <tt class="py-op">+</tt> <tt class="py-name">deletions</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno"> 254</tt> <tt class="py-line"> </tt>
+<a name="L255"></a><tt class="py-lineno"> 255</tt> <tt class="py-line"> <tt class="py-comment"># mismatches are:</tt> </tt>
+<a name="L256"></a><tt class="py-lineno"> 256</tt> <tt class="py-line"> <tt class="py-comment"># ALL Matches from CIGAR - RealMatches from MDTag</tt> </tt>
+<a name="L257"></a><tt class="py-lineno"> 257</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
+<a name="L258"></a><tt class="py-lineno"> 258</tt> <tt class="py-line"> </tt>
+<a name="L259"></a><tt class="py-lineno"> 259</tt> <tt class="py-line"> <tt class="py-name">mismatch</tt> <tt class="py-op">=</tt> <tt id="link-13" class="py-name"><a title="core.AnalyseMapping.getsum" class="py-name" href="#" onclick="return doclink('link-13', 'getsum', 'link-5');">getsum</a></tt><tt class="py-op">(</tt><tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">findall</tt><tt class="py-op">(</tt><tt class="py-string">"(\d+)M"</tt><tt class="py-op">,</tt [...]
+<a name="L260"></a><tt class="py-lineno"> 260</tt> <tt class="py-line"> </tt>
+<a name="L261"></a><tt class="py-lineno"> 261</tt> <tt class="py-line"> </tt>
+<a name="L262"></a><tt class="py-lineno"> 262</tt> <tt class="py-line"> <tt class="py-comment">#print ("%s\t%s\t%s\t%s\t%s\t%s" %(mdtag,cigar,deletions,insertions,mismatch,gaps))</tt> </tt>
+<a name="L263"></a><tt class="py-lineno"> 263</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">gaps</tt><tt class="py-op">,</tt> <tt class="py-name">mismatch</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L264"></a><tt class="py-lineno"> 264</tt> <tt class="py-line"> </tt>
+<a name="getAllID"></a><div id="getAllID-def"><a name="L265"></a><tt class="py-lineno"> 265</tt> <a class="py-toggle" href="#" id="getAllID-toggle" onclick="return toggle('getAllID');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getAllID">getAllID</a><tt class="py-op">(</tt><tt class="py-param">textfile</tt><tt class="py-op">,</tt> <tt class="py-param">read</tt><tt class="py-op">,</tt> <tt class="py-param">compareL [...]
+</div><div id="getAllID-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getAllID-expanded"><a name="L266"></a><tt class="py-lineno"> 266</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L267"></a><tt class="py-lineno"> 267</tt> <tt class="py-line"><tt class="py-docstring"> Reads all alignments for the current read which are in the SAM file (sorted). If a new read ID is scanned the results are returned.</tt> </tt>
+<a name="L268"></a><tt class="py-lineno"> 268</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L269"></a><tt class="py-lineno"> 269</tt> <tt class="py-line"><tt class="py-docstring"> @type textfile: fileobject stream</tt> </tt>
+<a name="L270"></a><tt class="py-lineno"> 270</tt> <tt class="py-line"><tt class="py-docstring"> @param textfile: SAM file for reading.</tt> </tt>
+<a name="L271"></a><tt class="py-lineno"> 271</tt> <tt class="py-line"><tt class="py-docstring"> @type read: read obj</tt> </tt>
+<a name="L272"></a><tt class="py-lineno"> 272</tt> <tt class="py-line"><tt class="py-docstring"> @param read: the last read obj which defines the current read id</tt> </tt>
+<a name="L273"></a><tt class="py-lineno"> 273</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L274"></a><tt class="py-lineno"> 274</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: Look up for quality values.</tt> </tt>
+<a name="L275"></a><tt class="py-lineno"> 275</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: (bool,list,bool)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno"> 276</tt> <tt class="py-line"><tt class="py-docstring"> @return: a "triple", where 2 bools are defined as indicator variables and a list with all alignments for one read.</tt> </tt>
+<a name="L277"></a><tt class="py-lineno"> 277</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L278"></a><tt class="py-lineno"> 278</tt> <tt class="py-line"> <tt class="py-comment"># end of file?</tt> </tt>
+<a name="L279"></a><tt class="py-lineno"> 279</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L280"></a><tt class="py-lineno"> 280</tt> <tt class="py-line"> <tt class="py-comment">#parse last read and return</tt> </tt>
+<a name="L281"></a><tt class="py-lineno"> 281</tt> <tt class="py-line"> <tt class="py-name">CRead</tt> <tt class="py-op">=</tt> <tt id="link-15" class="py-name" targets="Function core.AnalyseMapping.getNextLine()=core.AnalyseMapping-module.html#getNextLine"><a title="core.AnalyseMapping.getNextLine" class="py-name" href="#" onclick="return doclink('link-15', 'getNextLine', 'link-15');">getNextLine</a></tt><tt class="py-op">(</tt><tt class="py-name">textfile</tt><tt class="py-op"> [...]
+<a name="L282"></a><tt class="py-lineno"> 282</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt id="link-16" class="py-name" targets="Function core.AnalyseMapping.getAllID()=core.AnalyseMapping-module.html#getAllID"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-16', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">textfile</tt><tt class="py-op">,</tt> <tt cl [...]
+<a name="L283"></a><tt class="py-lineno"> 283</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L284"></a><tt class="py-lineno"> 284</tt> <tt class="py-line"> <tt class="py-comment"># start ne list and append read which was read with the last run of getALLID</tt> </tt>
+<a name="L285"></a><tt class="py-lineno"> 285</tt> <tt class="py-line"> <tt class="py-name">templist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L286"></a><tt class="py-lineno"> 286</tt> <tt class="py-line"> <tt class="py-name">templist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno"> 287</tt> <tt class="py-line"> <tt class="py-comment"># get all reads with same id as "read" </tt> </tt>
+<a name="L288"></a><tt class="py-lineno"> 288</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L289"></a><tt class="py-lineno"> 289</tt> <tt class="py-line"> <tt class="py-name">line</tt> <tt class="py-op">=</tt> <tt class="py-name">textfile</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno"> 290</tt> <tt class="py-line"> <tt class="py-comment"># no text left infile</tt> </tt>
+<a name="L291"></a><tt class="py-lineno"> 291</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-keyword">not</tt> <tt class="py-name">line</tt><tt class="py-op">:</tt> </tt>
+<a name="L292"></a><tt class="py-lineno"> 292</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">templist</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+<a name="L293"></a><tt class="py-lineno"> 293</tt> <tt class="py-line"> </tt>
+<a name="L294"></a><tt class="py-lineno"> 294</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L295"></a><tt class="py-lineno"> 295</tt> <tt class="py-line"> <tt class="py-name">CRead</tt> <tt class="py-op">=</tt> <tt id="link-17" class="py-name" targets="Function core.AnalyseMapping.getCustomRead()=core.AnalyseMapping-module.html#getCustomRead"><a title="core.AnalyseMapping.getCustomRead" class="py-name" href="#" onclick="return doclink('link-17', 'getCustomRead', 'link-17');">getCustomRead</a></tt><tt class="py-op">(</tt><tt class="py-name">HTSeq</tt><tt clas [...]
+<a name="L296"></a><tt class="py-lineno"> 296</tt> <tt class="py-line"> <tt class="py-comment">#CRead, dummy = readSAMline(line, "noMem", compareList, readdic)</tt> </tt>
+<a name="L297"></a><tt class="py-lineno"> 297</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L298"></a><tt class="py-lineno"> 298</tt> <tt class="py-line"> <tt class="py-name">CRead</tt><tt class="py-op">,</tt> <tt class="py-name">dummy</tt> <tt class="py-op">=</tt> <tt id="link-18" class="py-name"><a title="core.AnalyseMapping.readSAMline" class="py-name" href="#" onclick="return doclink('link-18', 'readSAMline', 'link-10');">readSAMline</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">,</tt> <tt class="py-string">"noMem"</tt>< [...]
+<a name="L299"></a><tt class="py-lineno"> 299</tt> <tt class="py-line"> </tt>
+<a name="L300"></a><tt class="py-lineno"> 300</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">CRead</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L301"></a><tt class="py-lineno"> 301</tt> <tt class="py-line"> <tt class="py-comment">#</tt> </tt>
+<a name="L302"></a><tt class="py-lineno"> 302</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">templist</tt><tt class="py-op">,</tt> <tt class="py-name">CRead</tt><tt class="py-op">)</tt> </tt>
+<a name="L303"></a><tt class="py-lineno"> 303</tt> <tt class="py-line"> <tt class="py-comment"># same read in current line as was in the last line --> continue reading</tt> </tt>
+<a name="L304"></a><tt class="py-lineno"> 304</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">CRead</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-op">==</tt> <tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">:</tt> </tt>
+<a name="L305"></a><tt class="py-lineno"> 305</tt> <tt class="py-line"> <tt class="py-name">templist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">CRead</tt><tt class="py-op">)</tt> </tt>
+<a name="L306"></a><tt class="py-lineno"> 306</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L307"></a><tt class="py-lineno"> 307</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">templist</tt><tt class="py-op">,</tt> <tt class="py-name">CRead</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L308"></a><tt class="py-lineno"> 308</tt> <tt class="py-line"> </tt>
+<a name="L309"></a><tt class="py-lineno"> 309</tt> <tt class="py-line"> </tt>
+<a name="CompareAlignments"></a><div id="CompareAlignments-def"><a name="L310"></a><tt class="py-lineno"> 310</tt> <a class="py-toggle" href="#" id="CompareAlignments-toggle" onclick="return toggle('CompareAlignments');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#CompareAlignments">CompareAlignments</a><tt class="py-op">(</tt><tt class="py-param">reflist</tt><tt class="py-op">,</tt> <tt class="py-param">artlist</t [...]
+</div><div id="CompareAlignments-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CompareAlignments-expanded"><a name="L311"></a><tt class="py-lineno"> 311</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L312"></a><tt class="py-lineno"> 312</tt> <tt class="py-line"><tt class="py-docstring"> Compares alignments for the reference and artificial reference for a specific read id.</tt> </tt>
+<a name="L313"></a><tt class="py-lineno"> 313</tt> <tt class="py-line"><tt class="py-docstring"> The goal is to identify false positives.</tt> </tt>
+<a name="L314"></a><tt class="py-lineno"> 314</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L315"></a><tt class="py-lineno"> 315</tt> <tt class="py-line"><tt class="py-docstring"> @type reflist: read obj list</tt> </tt>
+<a name="L316"></a><tt class="py-lineno"> 316</tt> <tt class="py-line"><tt class="py-docstring"> @param reflist: list containing alignments witht the same ID (reference)</tt> </tt>
+<a name="L317"></a><tt class="py-lineno"> 317</tt> <tt class="py-line"><tt class="py-docstring"> @type artlist: read obj list</tt> </tt>
+<a name="L318"></a><tt class="py-lineno"> 318</tt> <tt class="py-line"><tt class="py-docstring"> @param artlist: list containing alignments witht the same ID (artificial)</tt> </tt>
+<a name="L319"></a><tt class="py-lineno"> 319</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: np.array</tt> </tt>
+<a name="L320"></a><tt class="py-lineno"> 320</tt> <tt class="py-line"><tt class="py-docstring"> @return: indices of unique alignments</tt> </tt>
+<a name="L321"></a><tt class="py-lineno"> 321</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L322"></a><tt class="py-lineno"> 322</tt> <tt class="py-line"> </tt>
+<a name="L323"></a><tt class="py-lineno"> 323</tt> <tt class="py-line"> </tt>
+<a name="L324"></a><tt class="py-lineno"> 324</tt> <tt class="py-line"> <tt class="py-name">artlen</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">artlist</tt><tt class="py-op">)</tt> </tt>
+<a name="L325"></a><tt class="py-lineno"> 325</tt> <tt class="py-line"> <tt class="py-name">reflen</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">reflist</tt><tt class="py-op">)</tt> </tt>
+<a name="L326"></a><tt class="py-lineno"> 326</tt> <tt class="py-line"> </tt>
+<a name="L327"></a><tt class="py-lineno"> 327</tt> <tt class="py-line"> <tt class="py-name">TPcount</tt> <tt class="py-op">=</tt> <tt class="py-name">reflen</tt> </tt>
+<a name="L328"></a><tt class="py-lineno"> 328</tt> <tt class="py-line"> <tt class="py-name">FPcount</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L329"></a><tt class="py-lineno"> 329</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">RefRead</tt> <tt class="py-keyword">in</tt> <tt class="py-name">reflist</tt><tt class="py-op">:</tt> </tt>
+<a name="L330"></a><tt class="py-lineno"> 330</tt> <tt class="py-line"> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">RefRead</tt><tt class="py-op">.</tt><tt id="link-19" class="py-name" targets="Method core.AnalyseMapping.CustomRead.toStrNoMem()=core.AnalyseMapping.CustomRead-class.html#toStrNoMem"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink [...]
+<a name="L331"></a><tt class="py-lineno"> 331</tt> <tt class="py-line"> </tt>
+<a name="L332"></a><tt class="py-lineno"> 332</tt> <tt class="py-line"> <tt class="py-comment"># add 1 for every alignment from the artificial that is found on the reference</tt> </tt>
+<a name="L333"></a><tt class="py-lineno"> 333</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">artlen</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L334"></a><tt class="py-lineno"> 334</tt> <tt class="py-line"> <tt class="py-comment"># bool which decides if artificial in reference hit</tt> </tt>
+<a name="L335"></a><tt class="py-lineno"> 335</tt> <tt class="py-line"> <tt class="py-name">ArtInRef</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L336"></a><tt class="py-lineno"> 336</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">reflen</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L337"></a><tt class="py-lineno"> 337</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">artlist</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-op">==</tt> <tt class="py-name">reflist</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">start</tt> <tt class="py-keyword">and</t [...]
+<a name="L338"></a><tt class="py-lineno"> 338</tt> <tt class="py-line"> <tt class="py-name">ArtInRef</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L339"></a><tt class="py-lineno"> 339</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L340"></a><tt class="py-lineno"> 340</tt> <tt class="py-line"> <tt class="py-comment"># hit on artificial not confirmed on reference --> FP</tt> </tt>
+<a name="L341"></a><tt class="py-lineno"> 341</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">ArtInRef</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L342"></a><tt class="py-lineno"> 342</tt> <tt class="py-line"> <tt class="py-name">FPcount</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L343"></a><tt class="py-lineno"> 343</tt> <tt class="py-line"> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">artlist</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-20" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-20', 'toStrNoMem', 'link-19'); [...]
+<a name="L344"></a><tt class="py-lineno"> 344</tt> <tt class="py-line"> </tt>
+<a name="L345"></a><tt class="py-lineno"> 345</tt> <tt class="py-line"> </tt>
+<a name="L346"></a><tt class="py-lineno"> 346</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">TPcount</tt><tt class="py-op">,</tt><tt class="py-name">FPcount</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L347"></a><tt class="py-lineno"> 347</tt> <tt class="py-line"> </tt>
+<a name="L348"></a><tt class="py-lineno"> 348</tt> <tt class="py-line"><tt class="py-string">"""def WriteToFile(file, list, identifier):</tt> </tt>
+<a name="L349"></a><tt class="py-lineno"> 349</tt> <tt class="py-line"><tt class="py-string"> </tt> </tt>
+<a name="L350"></a><tt class="py-lineno"> 350</tt> <tt class="py-line"><tt class="py-string"> Writes read obj. to a file.</tt> </tt>
+<a name="L351"></a><tt class="py-lineno"> 351</tt> <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L352"></a><tt class="py-lineno"> 352</tt> <tt class="py-line"><tt class="py-string"></tt> </tt>
+<a name="L353"></a><tt class="py-lineno"> 353</tt> <tt class="py-line"><tt class="py-string"> @type file: read obj list</tt> </tt>
+<a name="L354"></a><tt class="py-lineno"> 354</tt> <tt class="py-line"><tt class="py-string"> @param file: list containing alignments witht the same ID (reference)</tt> </tt>
+<a name="L355"></a><tt class="py-lineno"> 355</tt> <tt class="py-line"><tt class="py-string"> @type list: read obj. list</tt> </tt>
+<a name="L356"></a><tt class="py-lineno"> 356</tt> <tt class="py-line"><tt class="py-string"> @param list: list containing alignments witht the same ID (artificial)</tt> </tt>
+<a name="L357"></a><tt class="py-lineno"> 357</tt> <tt class="py-line"><tt class="py-string"> @type identifier: string</tt> </tt>
+<a name="L358"></a><tt class="py-lineno"> 358</tt> <tt class="py-line"><tt class="py-string"> @param identifier: indicator if the results are from the reference or artificial</tt> </tt>
+<a name="L359"></a><tt class="py-lineno"> 359</tt> <tt class="py-line"><tt class="py-string"> </tt> </tt>
+<a name="L360"></a><tt class="py-lineno"> 360</tt> <tt class="py-line"><tt class="py-string"> file.write(getBestAlignment(list).toStrNoMem(identifier))"""</tt> </tt>
+<a name="L361"></a><tt class="py-lineno"> 361</tt> <tt class="py-line"> </tt>
+<a name="SkipHeader"></a><div id="SkipHeader-def"><a name="L362"></a><tt class="py-lineno"> 362</tt> <a class="py-toggle" href="#" id="SkipHeader-toggle" onclick="return toggle('SkipHeader');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#SkipHeader">SkipHeader</a><tt class="py-op">(</tt><tt class="py-param">file</tt><tt class="py-op">,</tt> <tt class="py-param">compareList</tt><tt class="py-op">,</tt> <tt class="py- [...]
+</div><div id="SkipHeader-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="SkipHeader-expanded"><a name="L363"></a><tt class="py-lineno"> 363</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L364"></a><tt class="py-lineno"> 364</tt> <tt class="py-line"><tt class="py-docstring"> Skips the header from a SAM file, but reads the first line of the alignment section.</tt> </tt>
+<a name="L365"></a><tt class="py-lineno"> 365</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L366"></a><tt class="py-lineno"> 366</tt> <tt class="py-line"><tt class="py-docstring"> @type file: read obj list</tt> </tt>
+<a name="L367"></a><tt class="py-lineno"> 367</tt> <tt class="py-line"><tt class="py-docstring"> @param file: list containing alignments witht the same ID (reference)</tt> </tt>
+<a name="L368"></a><tt class="py-lineno"> 368</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L369"></a><tt class="py-lineno"> 369</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list for accumulation of the same read id</tt> </tt>
+<a name="L370"></a><tt class="py-lineno"> 370</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L371"></a><tt class="py-lineno"> 371</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ID - read quality mappings.</tt> </tt>
+<a name="L372"></a><tt class="py-lineno"> 372</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: read obj.</tt> </tt>
+<a name="L373"></a><tt class="py-lineno"> 373</tt> <tt class="py-line"><tt class="py-docstring"> @return: Returns a read obj. from the SAM file.</tt> </tt>
+<a name="L374"></a><tt class="py-lineno"> 374</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L375"></a><tt class="py-lineno"> 375</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L376"></a><tt class="py-lineno"> 376</tt> <tt class="py-line"> <tt class="py-name">temp</tt> <tt class="py-op">=</tt> <tt class="py-name">file</tt><tt class="py-op">.</tt><tt class="py-name">readline</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L377"></a><tt class="py-lineno"> 377</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">temp</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"@"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L378"></a><tt class="py-lineno"> 378</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L379"></a><tt class="py-lineno"> 379</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L380"></a><tt class="py-lineno"> 380</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt id="link-21" class="py-name"><a title="core.AnalyseMapping.readSAMline" class="py-name" href="#" onclick="return doclink('link-21', 'readSAMline', 'link-10');">readSAMline</a></tt><tt class="py-op">(</tt><tt class="py-name">temp</tt><tt class="py-op">,</tt> <tt class="py-string">"noMem"</tt><tt class="py-op">,</tt> <tt class="py-name">compareLi [...]
+<a name="L381"></a><tt class="py-lineno"> 381</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+</div><a name="L382"></a><tt class="py-lineno"> 382</tt> <tt class="py-line"> </tt>
+<a name="L383"></a><tt class="py-lineno"> 383</tt> <tt class="py-line"> </tt>
+<a name="getRanks"></a><div id="getRanks-def"><a name="L384"></a><tt class="py-lineno"> 384</tt> <a class="py-toggle" href="#" id="getRanks-toggle" onclick="return toggle('getRanks');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getRanks">getRanks</a><tt class="py-op">(</tt><tt class="py-param">RefRead</tt><tt class="py-op">,</tt><tt class="py-param">ArtRead</tt><tt class="py-op">,</tt><tt class="py-param">rankdic< [...]
+</div><div id="getRanks-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getRanks-expanded"><a name="L385"></a><tt class="py-lineno"> 385</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L386"></a><tt class="py-lineno"> 386</tt> <tt class="py-line"><tt class="py-docstring"> Function which returns the ranks of 2 given readIDs (read from reference,read from artificial).</tt> </tt>
+<a name="L387"></a><tt class="py-lineno"> 387</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L388"></a><tt class="py-lineno"> 388</tt> <tt class="py-line"><tt class="py-docstring"> @type RefRead: read obj </tt> </tt>
+<a name="L389"></a><tt class="py-lineno"> 389</tt> <tt class="py-line"><tt class="py-docstring"> @param RefRead: read obj (reference)</tt> </tt>
+<a name="L390"></a><tt class="py-lineno"> 390</tt> <tt class="py-line"><tt class="py-docstring"> @type ArtRead: read obj </tt> </tt>
+<a name="L391"></a><tt class="py-lineno"> 391</tt> <tt class="py-line"><tt class="py-docstring"> @param ArtRead: read obj (artificial)</tt> </tt>
+<a name="L392"></a><tt class="py-lineno"> 392</tt> <tt class="py-line"><tt class="py-docstring"> @type rankdic: dictionary</tt> </tt>
+<a name="L393"></a><tt class="py-lineno"> 393</tt> <tt class="py-line"><tt class="py-docstring"> @param rankdic: dictionary containing ranks of the read IDs (according to the sorted SAM files).</tt> </tt>
+<a name="L394"></a><tt class="py-lineno"> 394</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int,int</tt> </tt>
+<a name="L395"></a><tt class="py-lineno"> 395</tt> <tt class="py-line"><tt class="py-docstring"> @return: returns the false positives and true positives for a SAM file pair (reference, artificial)</tt> </tt>
+<a name="L396"></a><tt class="py-lineno"> 396</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L397"></a><tt class="py-lineno"> 397</tt> <tt class="py-line"> <tt class="py-comment"># get the ranks resulting from the sorted samfile.</tt> </tt>
+<a name="L398"></a><tt class="py-lineno"> 398</tt> <tt class="py-line"> <tt class="py-name">RefReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">rankdic</tt><tt class="py-op">[</tt><tt class="py-name">RefRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> </tt>
+<a name="L399"></a><tt class="py-lineno"> 399</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rankdic</tt><tt class="py-op">:</tt> </tt>
+<a name="L400"></a><tt class="py-lineno"> 400</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">rankdic</tt><tt class="py-op">[</tt><tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> </tt>
+<a name="L401"></a><tt class="py-lineno"> 401</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L402"></a><tt class="py-lineno"> 402</tt> <tt class="py-line"> <tt class="py-comment"># if this ReadID is not in the dictionary then it MUST be a FP!</tt> </tt>
+<a name="L403"></a><tt class="py-lineno"> 403</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">RefReadRank</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt> </tt>
+<a name="L404"></a><tt class="py-lineno"> 404</tt> <tt class="py-line"> </tt>
+<a name="L405"></a><tt class="py-lineno"> 405</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt><tt class="py-op">,</tt><tt class="py-name">ArtReadRank</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L406"></a><tt class="py-lineno"> 406</tt> <tt class="py-line"> </tt>
+<a name="L407"></a><tt class="py-lineno"> 407</tt> <tt class="py-line"> </tt>
+<a name="ReadSAMnoMem"></a><div id="ReadSAMnoMem-def"><a name="L408"></a><tt class="py-lineno"> 408</tt> <a class="py-toggle" href="#" id="ReadSAMnoMem-toggle" onclick="return toggle('ReadSAMnoMem');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#ReadSAMnoMem">ReadSAMnoMem</a><tt class="py-op">(</tt><tt class="py-param">ref</tt><tt class="py-op">,</tt> <tt class="py-param">art</tt><tt class="py-op">,</tt> <tt class=" [...]
+</div><div id="ReadSAMnoMem-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ReadSAMnoMem-expanded"><a name="L409"></a><tt class="py-lineno"> 409</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L410"></a><tt class="py-lineno"> 410</tt> <tt class="py-line"><tt class="py-docstring"> Main function for comparing to mappings. This functions takes the complete alignments for artificial and reference genome and goes through them in parallel.</tt> </tt>
+<a name="L411"></a><tt class="py-lineno"> 411</tt> <tt class="py-line"><tt class="py-docstring"> Since the mappings are sorted the function alternates the parsing of the samfiles in such a way that no memory is used for comparing these functions.</tt> </tt>
+<a name="L412"></a><tt class="py-lineno"> 412</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L413"></a><tt class="py-lineno"> 413</tt> <tt class="py-line"><tt class="py-docstring"> @type ref: string</tt> </tt>
+<a name="L414"></a><tt class="py-lineno"> 414</tt> <tt class="py-line"><tt class="py-docstring"> @param ref: path to reference alignments (SAM file)</tt> </tt>
+<a name="L415"></a><tt class="py-lineno"> 415</tt> <tt class="py-line"><tt class="py-docstring"> @type art: string</tt> </tt>
+<a name="L416"></a><tt class="py-lineno"> 416</tt> <tt class="py-line"><tt class="py-docstring"> @param art: path to artificial alignments (SAM file)</tt> </tt>
+<a name="L417"></a><tt class="py-lineno"> 417</tt> <tt class="py-line"><tt class="py-docstring"> @type output: read obj </tt> </tt>
+<a name="L418"></a><tt class="py-lineno"> 418</tt> <tt class="py-line"><tt class="py-docstring"> @param output: read obj (artificial)</tt> </tt>
+<a name="L419"></a><tt class="py-lineno"> 419</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: read obj </tt> </tt>
+<a name="L420"></a><tt class="py-lineno"> 420</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: read obj (artificial)</tt> </tt>
+<a name="L421"></a><tt class="py-lineno"> 421</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L422"></a><tt class="py-lineno"> 422</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ID - read quality mappings.</tt> </tt>
+<a name="L423"></a><tt class="py-lineno"> 423</tt> <tt class="py-line"><tt class="py-docstring"> @type rankdic: dictionary</tt> </tt>
+<a name="L424"></a><tt class="py-lineno"> 424</tt> <tt class="py-line"><tt class="py-docstring"> @param rankdic: dictionary containing ranks of the read IDs (according to the sorted SAM files).</tt> </tt>
+<a name="L425"></a><tt class="py-lineno"> 425</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: ranks</tt> </tt>
+<a name="L426"></a><tt class="py-lineno"> 426</tt> <tt class="py-line"><tt class="py-docstring"> @return: Returns the ranks for the 2 read ids.</tt> </tt>
+<a name="L427"></a><tt class="py-lineno"> 427</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L428"></a><tt class="py-lineno"> 428</tt> <tt class="py-line"> </tt>
+<a name="L429"></a><tt class="py-lineno"> 429</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">output</tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L430"></a><tt class="py-lineno"> 430</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"#ReadID\tMatchedReference\tSubstitutions\tNMtag\tReadQuality\tMappingQuality\tStart\tEnd\tGaps\tMisM\r\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L431"></a><tt class="py-lineno"> 431</tt> <tt class="py-line"> <tt class="py-name">fileref</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">ref</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L432"></a><tt class="py-lineno"> 432</tt> <tt class="py-line"> <tt class="py-name">fileart</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">art</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L433"></a><tt class="py-lineno"> 433</tt> <tt class="py-line"> </tt>
+<a name="L434"></a><tt class="py-lineno"> 434</tt> <tt class="py-line"> <tt class="py-comment"># SKip Header section of SAM file</tt> </tt>
+<a name="L435"></a><tt class="py-lineno"> 435</tt> <tt class="py-line"> <tt class="py-name">CurrentReadRef</tt><tt class="py-op">,</tt> <tt class="py-name">dummy</tt> <tt class="py-op">=</tt> <tt id="link-22" class="py-name" targets="Function core.AnalyseMapping.SkipHeader()=core.AnalyseMapping-module.html#SkipHeader"><a title="core.AnalyseMapping.SkipHeader" class="py-name" href="#" onclick="return doclink('link-22', 'SkipHeader', 'link-22');">SkipHeader</a></tt><tt class="py-op">(< [...]
+<a name="L436"></a><tt class="py-lineno"> 436</tt> <tt class="py-line"> <tt class="py-name">CurrentReadArt</tt><tt class="py-op">,</tt> <tt class="py-name">dummy</tt> <tt class="py-op">=</tt> <tt id="link-23" class="py-name"><a title="core.AnalyseMapping.SkipHeader" class="py-name" href="#" onclick="return doclink('link-23', 'SkipHeader', 'link-22');">SkipHeader</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</tt><tt class="py-op">,</tt> <tt class="py-name">compareList</t [...]
+<a name="L437"></a><tt class="py-lineno"> 437</tt> <tt class="py-line"> </tt>
+<a name="L438"></a><tt class="py-lineno"> 438</tt> <tt class="py-line"> <tt class="py-comment"># get first readIDs for looping </tt> </tt>
+<a name="L439"></a><tt class="py-lineno"> 439</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-24" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-24', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</tt><tt c [...]
+<a name="L440"></a><tt class="py-lineno"> 440</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadRef</tt> <tt class="py-op">=</tt> <tt id="link-25" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-25', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileref</tt><tt c [...]
+<a name="L441"></a><tt class="py-lineno"> 441</tt> <tt class="py-line"> <tt class="py-comment"># variables for counting</tt> </tt>
+<a name="L442"></a><tt class="py-lineno"> 442</tt> <tt class="py-line"> </tt>
+<a name="L443"></a><tt class="py-lineno"> 443</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L444"></a><tt class="py-lineno"> 444</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L445"></a><tt class="py-lineno"> 445</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L446"></a><tt class="py-lineno"> 446</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L447"></a><tt class="py-lineno"> 447</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L448"></a><tt class="py-lineno"> 448</tt> <tt class="py-line"> <tt class="py-comment">#Indicator variables which file is end first</tt> </tt>
+<a name="L449"></a><tt class="py-lineno"> 449</tt> <tt class="py-line"> <tt class="py-name">ArtBool</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L450"></a><tt class="py-lineno"> 450</tt> <tt class="py-line"> <tt class="py-name">RefBool</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L451"></a><tt class="py-lineno"> 451</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L452"></a><tt class="py-lineno"> 452</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L453"></a><tt class="py-lineno"> 453</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt> <tt class="py-op">==</tt> <tt class="py-number">100000</tt><tt class="py-op">:</tt> </tt>
+<a name="L454"></a><tt class="py-lineno"> 454</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"\t\t%f"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L455"></a><tt class="py-lineno"> 455</tt> <tt class="py-line"> </tt>
+<a name="L456"></a><tt class="py-lineno"> 456</tt> <tt class="py-line"> <tt class="py-name">RefReadRank</tt><tt class="py-op">,</tt><tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt id="link-26" class="py-name" targets="Function core.AnalyseMapping.getRanks()=core.AnalyseMapping-module.html#getRanks"><a title="core.AnalyseMapping.getRanks" class="py-name" href="#" onclick="return doclink('link-26', 'getRanks', 'link-26');">getRanks</a></tt><tt class="py-op">(</tt> [...]
+<a name="L457"></a><tt class="py-lineno"> 457</tt> <tt class="py-line"> </tt>
+<a name="L458"></a><tt class="py-lineno"> 458</tt> <tt class="py-line"> <tt class="py-comment">#case 1)</tt> </tt>
+<a name="L459"></a><tt class="py-lineno"> 459</tt> <tt class="py-line"> <tt class="py-comment"># Keep reading lines from artificial if the id is < than the one from the reference</tt> </tt>
+<a name="L460"></a><tt class="py-lineno"> 460</tt> <tt class="py-line"> <tt class="py-comment"># this means unique hits to the artificial!</tt> </tt>
+<a name="L461"></a><tt class="py-lineno"> 461</tt> <tt class="py-line"> <tt class="py-comment">#while (RefRead[0].id > ArtRead[0].id and hasNextLine != 0):</tt> </tt>
+<a name="L462"></a><tt class="py-lineno"> 462</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op">></tt> <tt class="py-name">ArtReadRank</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L463"></a><tt class="py-lineno"> 463</tt> <tt class="py-line"> <tt class="py-comment"># in case of multiple hits, set all mr variables to 0 and get the best alignment</tt> </tt>
+<a name="L464"></a><tt class="py-lineno"> 464</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">ArtRead</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L465"></a><tt class="py-lineno"> 465</tt> <tt class="py-line"> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L466"></a><tt class="py-lineno"> 466</tt> <tt class="py-line"> </tt>
+<a name="L467"></a><tt class="py-lineno"> 467</tt> <tt class="py-line"> <tt class="py-comment"># write FP to file</tt> </tt>
+<a name="L468"></a><tt class="py-lineno"> 468</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L469"></a><tt class="py-lineno"> 469</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-27" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-27', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"art"< [...]
+<a name="L470"></a><tt class="py-lineno"> 470</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L471"></a><tt class="py-lineno"> 471</tt> <tt class="py-line"> </tt>
+<a name="L472"></a><tt class="py-lineno"> 472</tt> <tt class="py-line"> </tt>
+<a name="L473"></a><tt class="py-lineno"> 473</tt> <tt class="py-line"> <tt class="py-comment"># use akku for read lines</tt> </tt>
+<a name="L474"></a><tt class="py-lineno"> 474</tt> <tt class="py-line"> <tt class="py-name">CurrentReadArt</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadArt</tt> </tt>
+<a name="L475"></a><tt class="py-lineno"> 475</tt> <tt class="py-line"> <tt class="py-comment">#get all the reads with the same ID into ArtRead</tt> </tt>
+<a name="L476"></a><tt class="py-lineno"> 476</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-28" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-28', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</ [...]
+<a name="L477"></a><tt class="py-lineno"> 477</tt> <tt class="py-line"> </tt>
+<a name="L478"></a><tt class="py-lineno"> 478</tt> <tt class="py-line"> <tt class="py-comment">#update rank</tt> </tt>
+<a name="L479"></a><tt class="py-lineno"> 479</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">RefReadRank</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <t [...]
+<a name="L480"></a><tt class="py-lineno"> 480</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L481"></a><tt class="py-lineno"> 481</tt> <tt class="py-line"> </tt>
+<a name="L482"></a><tt class="py-lineno"> 482</tt> <tt class="py-line"> <tt class="py-comment">#case 2)</tt> </tt>
+<a name="L483"></a><tt class="py-lineno"> 483</tt> <tt class="py-line"> <tt class="py-comment"># keep reading lines from reference if id is < art.id</tt> </tt>
+<a name="L484"></a><tt class="py-lineno"> 484</tt> <tt class="py-line"> <tt class="py-comment"># all these hits are purely TP</tt> </tt>
+<a name="L485"></a><tt class="py-lineno"> 485</tt> <tt class="py-line"> <tt class="py-comment">#while (RefRead[0].id < ArtRead[0].id and hasNextLine != 0):</tt> </tt>
+<a name="L486"></a><tt class="py-lineno"> 486</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op"><</tt> <tt class="py-name">ArtReadRank</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L487"></a><tt class="py-lineno"> 487</tt> <tt class="py-line"> </tt>
+<a name="L488"></a><tt class="py-lineno"> 488</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">RefRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L489"></a><tt class="py-lineno"> 489</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-29" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-29', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"ref"< [...]
+<a name="L490"></a><tt class="py-lineno"> 490</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L491"></a><tt class="py-lineno"> 491</tt> <tt class="py-line"> </tt>
+<a name="L492"></a><tt class="py-lineno"> 492</tt> <tt class="py-line"> <tt class="py-name">CurrentReadRef</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadRef</tt> </tt>
+<a name="L493"></a><tt class="py-lineno"> 493</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadRef</tt> <tt class="py-op">=</tt> <tt id="link-30" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-30', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileref</ [...]
+<a name="L494"></a><tt class="py-lineno"> 494</tt> <tt class="py-line"> <tt class="py-name">RefReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">rankdic</tt><tt class="py-op">[</tt><tt class="py-name">RefRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> </tt>
+<a name="L495"></a><tt class="py-lineno"> 495</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L496"></a><tt class="py-lineno"> 496</tt> <tt class="py-line"> </tt>
+<a name="L497"></a><tt class="py-lineno"> 497</tt> <tt class="py-line"> </tt>
+<a name="L498"></a><tt class="py-lineno"> 498</tt> <tt class="py-line"> <tt class="py-comment"># case 3)</tt> </tt>
+<a name="L499"></a><tt class="py-lineno"> 499</tt> <tt class="py-line"> <tt class="py-comment">#if (RefRead[0].id == ArtRead[0].id):</tt> </tt>
+<a name="L500"></a><tt class="py-lineno"> 500</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op">==</tt> <tt class="py-name">ArtReadRank</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L501"></a><tt class="py-lineno"> 501</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L502"></a><tt class="py-lineno"> 502</tt> <tt class="py-line"> </tt>
+<a name="L503"></a><tt class="py-lineno"> 503</tt> <tt class="py-line"> <tt class="py-comment">#same read.id --> compare all Alignments for one read id (can be multiple alignments)</tt> </tt>
+<a name="L504"></a><tt class="py-lineno"> 504</tt> <tt class="py-line"> <tt class="py-comment"># return unique hits to artificial genome</tt> </tt>
+<a name="L505"></a><tt class="py-lineno"> 505</tt> <tt class="py-line"> <tt class="py-name">tempTP</tt><tt class="py-op">,</tt><tt class="py-name">tempFP</tt> <tt class="py-op">=</tt> <tt id="link-31" class="py-name" targets="Function core.AnalyseMapping.CompareAlignments()=core.AnalyseMapping-module.html#CompareAlignments"><a title="core.AnalyseMapping.CompareAlignments" class="py-name" href="#" onclick="return doclink('link-31', 'CompareAlignments', 'link-31');">CompareAlig [...]
+<a name="L506"></a><tt class="py-lineno"> 506</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempTP</tt> </tt>
+<a name="L507"></a><tt class="py-lineno"> 507</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempFP</tt> </tt>
+<a name="L508"></a><tt class="py-lineno"> 508</tt> <tt class="py-line"> <tt class="py-comment"># overwrite akku</tt> </tt>
+<a name="L509"></a><tt class="py-lineno"> 509</tt> <tt class="py-line"> <tt class="py-name">CurrentReadRef</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadRef</tt> </tt>
+<a name="L510"></a><tt class="py-lineno"> 510</tt> <tt class="py-line"> <tt class="py-name">CurrentReadArt</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadArt</tt> </tt>
+<a name="L511"></a><tt class="py-lineno"> 511</tt> <tt class="py-line"> </tt>
+<a name="L512"></a><tt class="py-lineno"> 512</tt> <tt class="py-line"> </tt>
+<a name="L513"></a><tt class="py-lineno"> 513</tt> <tt class="py-line"> <tt class="py-comment"># get next Read for next ID and check if file has a next line</tt> </tt>
+<a name="L514"></a><tt class="py-lineno"> 514</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadRef</tt> <tt class="py-op">=</tt> <tt id="link-32" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-32', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileref</ [...]
+<a name="L515"></a><tt class="py-lineno"> 515</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L516"></a><tt class="py-lineno"> 516</tt> <tt class="py-line"> <tt class="py-comment">#print "REFBREAK"</tt> </tt>
+<a name="L517"></a><tt class="py-lineno"> 517</tt> <tt class="py-line"> <tt class="py-name">RefReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">rankdic</tt><tt class="py-op">[</tt><tt class="py-name">RefRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> </tt>
+<a name="L518"></a><tt class="py-lineno"> 518</tt> <tt class="py-line"> <tt class="py-name">RefBool</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L519"></a><tt class="py-lineno"> 519</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L520"></a><tt class="py-lineno"> 520</tt> <tt class="py-line"> </tt>
+<a name="L521"></a><tt class="py-lineno"> 521</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-33" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-33', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</ [...]
+<a name="L522"></a><tt class="py-lineno"> 522</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L523"></a><tt class="py-lineno"> 523</tt> <tt class="py-line"> <tt class="py-comment">#print "ARTBREAK"</tt> </tt>
+<a name="L524"></a><tt class="py-lineno"> 524</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">RefReadRank</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt [...]
+<a name="L525"></a><tt class="py-lineno"> 525</tt> <tt class="py-line"> <tt class="py-name">ArtBool</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L526"></a><tt class="py-lineno"> 526</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L527"></a><tt class="py-lineno"> 527</tt> <tt class="py-line"> </tt>
+<a name="L528"></a><tt class="py-lineno"> 528</tt> <tt class="py-line"> <tt class="py-comment"># if the while loop was broken one read has to be read in the not closed file</tt> </tt>
+<a name="L529"></a><tt class="py-lineno"> 529</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L530"></a><tt class="py-lineno"> 530</tt> <tt class="py-line"> <tt class="py-comment"># the file which has still some lines is now processed linearly...</tt> </tt>
+<a name="L531"></a><tt class="py-lineno"> 531</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">RefBool</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L532"></a><tt class="py-lineno"> 532</tt> <tt class="py-line"> <tt class="py-comment">#print ("REF FILE FINISHED!!!")</tt> </tt>
+<a name="L533"></a><tt class="py-lineno"> 533</tt> <tt class="py-line"> <tt class="py-comment"># reference no lines --> read artificial</tt> </tt>
+<a name="L534"></a><tt class="py-lineno"> 534</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-34" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-34', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</tt>< [...]
+<a name="L535"></a><tt class="py-lineno"> 535</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">RefReadRank</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <tt cl [...]
+<a name="L536"></a><tt class="py-lineno"> 536</tt> <tt class="py-line"> </tt>
+<a name="L537"></a><tt class="py-lineno"> 537</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op">></tt> <tt class="py-name">ArtReadRank</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L538"></a><tt class="py-lineno"> 538</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L539"></a><tt class="py-lineno"> 539</tt> <tt class="py-line"> <tt class="py-comment"># in case of multiple hits, set all mr variables to 0 and get the best alignment</tt> </tt>
+<a name="L540"></a><tt class="py-lineno"> 540</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">ArtRead</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L541"></a><tt class="py-lineno"> 541</tt> <tt class="py-line"> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L542"></a><tt class="py-lineno"> 542</tt> <tt class="py-line"> </tt>
+<a name="L543"></a><tt class="py-lineno"> 543</tt> <tt class="py-line"> <tt class="py-comment"># write current FP to file</tt> </tt>
+<a name="L544"></a><tt class="py-lineno"> 544</tt> <tt class="py-line"> <tt class="py-comment"># write FP to file</tt> </tt>
+<a name="L545"></a><tt class="py-lineno"> 545</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L546"></a><tt class="py-lineno"> 546</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-35" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-35', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"art"< [...]
+<a name="L547"></a><tt class="py-lineno"> 547</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L548"></a><tt class="py-lineno"> 548</tt> <tt class="py-line"> <tt class="py-comment"># use akku for read lines</tt> </tt>
+<a name="L549"></a><tt class="py-lineno"> 549</tt> <tt class="py-line"> <tt class="py-name">CurrentReadArt</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadArt</tt> </tt>
+<a name="L550"></a><tt class="py-lineno"> 550</tt> <tt class="py-line"> <tt class="py-comment">#get all the reads with the same ID into ArtRead</tt> </tt>
+<a name="L551"></a><tt class="py-lineno"> 551</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-36" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-36', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileart</ [...]
+<a name="L552"></a><tt class="py-lineno"> 552</tt> <tt class="py-line"> </tt>
+<a name="L553"></a><tt class="py-lineno"> 553</tt> <tt class="py-line"> <tt class="py-comment">#update rank</tt> </tt>
+<a name="L554"></a><tt class="py-lineno"> 554</tt> <tt class="py-line"> <tt class="py-name">ArtReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">RefReadRank</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> <tt class="py-keyword">if</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">not</tt> <tt class="py-keyword">in</tt> <t [...]
+<a name="L555"></a><tt class="py-lineno"> 555</tt> <tt class="py-line"> </tt>
+<a name="L556"></a><tt class="py-lineno"> 556</tt> <tt class="py-line"> </tt>
+<a name="L557"></a><tt class="py-lineno"> 557</tt> <tt class="py-line"> </tt>
+<a name="L558"></a><tt class="py-lineno"> 558</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op">==</tt> <tt class="py-name">ArtReadRank</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L559"></a><tt class="py-lineno"> 559</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L560"></a><tt class="py-lineno"> 560</tt> <tt class="py-line"> <tt class="py-comment">#same read.id --> compare all Alignments for one read id (can be multiple alignments)</tt> </tt>
+<a name="L561"></a><tt class="py-lineno"> 561</tt> <tt class="py-line"> <tt class="py-comment"># return unique hits to artificial genome</tt> </tt>
+<a name="L562"></a><tt class="py-lineno"> 562</tt> <tt class="py-line"> <tt class="py-name">tempTP</tt><tt class="py-op">,</tt><tt class="py-name">tempFP</tt> <tt class="py-op">=</tt> <tt id="link-37" class="py-name"><a title="core.AnalyseMapping.CompareAlignments" class="py-name" href="#" onclick="return doclink('link-37', 'CompareAlignments', 'link-31');">CompareAlignments</a></tt><tt class="py-op">(</tt><tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py [...]
+<a name="L563"></a><tt class="py-lineno"> 563</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempTP</tt> </tt>
+<a name="L564"></a><tt class="py-lineno"> 564</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempFP</tt> </tt>
+<a name="L565"></a><tt class="py-lineno"> 565</tt> <tt class="py-line"> </tt>
+<a name="L566"></a><tt class="py-lineno"> 566</tt> <tt class="py-line"> </tt>
+<a name="L567"></a><tt class="py-lineno"> 567</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L568"></a><tt class="py-lineno"> 568</tt> <tt class="py-line"> </tt>
+<a name="L569"></a><tt class="py-lineno"> 569</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L570"></a><tt class="py-lineno"> 570</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L571"></a><tt class="py-lineno"> 571</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L572"></a><tt class="py-lineno"> 572</tt> <tt class="py-line"> </tt>
+<a name="L573"></a><tt class="py-lineno"> 573</tt> <tt class="py-line"> <tt class="py-name">CurrentReadArt</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadArt</tt> </tt>
+<a name="L574"></a><tt class="py-lineno"> 574</tt> <tt class="py-line"> <tt class="py-comment"># read next artificial read!</tt> </tt>
+<a name="L575"></a><tt class="py-lineno"> 575</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadArt</tt> <tt class="py-op">=</tt> <tt id="link-38" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-38', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">filea [...]
+<a name="L576"></a><tt class="py-lineno"> 576</tt> <tt class="py-line"> </tt>
+<a name="L577"></a><tt class="py-lineno"> 577</tt> <tt class="py-line"> </tt>
+<a name="L578"></a><tt class="py-lineno"> 578</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L579"></a><tt class="py-lineno"> 579</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-39" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-39', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"art"< [...]
+<a name="L580"></a><tt class="py-lineno"> 580</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L581"></a><tt class="py-lineno"> 581</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L582"></a><tt class="py-lineno"> 582</tt> <tt class="py-line"> </tt>
+<a name="L583"></a><tt class="py-lineno"> 583</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L584"></a><tt class="py-lineno"> 584</tt> <tt class="py-line"> <tt class="py-comment"># read again reference file as long as the final read from he artificial file is reached</tt> </tt>
+<a name="L585"></a><tt class="py-lineno"> 585</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op"><</tt> <tt class="py-name">ArtReadRank</tt> <tt class="py-keyword">and</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L586"></a><tt class="py-lineno"> 586</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L587"></a><tt class="py-lineno"> 587</tt> <tt class="py-line"> </tt>
+<a name="L588"></a><tt class="py-lineno"> 588</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">RefRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L589"></a><tt class="py-lineno"> 589</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-40" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-40', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"ref"< [...]
+<a name="L590"></a><tt class="py-lineno"> 590</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L591"></a><tt class="py-lineno"> 591</tt> <tt class="py-line"> <tt class="py-name">CurrentReadRef</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadRef</tt> </tt>
+<a name="L592"></a><tt class="py-lineno"> 592</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadRef</tt> <tt class="py-op">=</tt> <tt id="link-41" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-41', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">fileref</ [...]
+<a name="L593"></a><tt class="py-lineno"> 593</tt> <tt class="py-line"> <tt class="py-name">RefReadRank</tt> <tt class="py-op">=</tt> <tt class="py-name">rankdic</tt><tt class="py-op">[</tt><tt class="py-name">RefRead</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> </tt>
+<a name="L594"></a><tt class="py-lineno"> 594</tt> <tt class="py-line"> </tt>
+<a name="L595"></a><tt class="py-lineno"> 595</tt> <tt class="py-line"> </tt>
+<a name="L596"></a><tt class="py-lineno"> 596</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">RefReadRank</tt> <tt class="py-op">==</tt> <tt class="py-name">ArtReadRank</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L597"></a><tt class="py-lineno"> 597</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L598"></a><tt class="py-lineno"> 598</tt> <tt class="py-line"> <tt class="py-comment">#same read.id --> compare all Alignments for one read id (can be multiple alignments)</tt> </tt>
+<a name="L599"></a><tt class="py-lineno"> 599</tt> <tt class="py-line"> <tt class="py-comment"># return unique hits to artificial genome</tt> </tt>
+<a name="L600"></a><tt class="py-lineno"> 600</tt> <tt class="py-line"> <tt class="py-name">tempTP</tt><tt class="py-op">,</tt><tt class="py-name">tempFP</tt> <tt class="py-op">=</tt> <tt id="link-42" class="py-name"><a title="core.AnalyseMapping.CompareAlignments" class="py-name" href="#" onclick="return doclink('link-42', 'CompareAlignments', 'link-31');">CompareAlignments</a></tt><tt class="py-op">(</tt><tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py [...]
+<a name="L601"></a><tt class="py-lineno"> 601</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempTP</tt> </tt>
+<a name="L602"></a><tt class="py-lineno"> 602</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt><tt class="py-name">tempFP</tt> </tt>
+<a name="L603"></a><tt class="py-lineno"> 603</tt> <tt class="py-line"> </tt>
+<a name="L604"></a><tt class="py-lineno"> 604</tt> <tt class="py-line"> </tt>
+<a name="L605"></a><tt class="py-lineno"> 605</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L606"></a><tt class="py-lineno"> 606</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L607"></a><tt class="py-lineno"> 607</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ArtRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L608"></a><tt class="py-lineno"> 608</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-43" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-43', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string">"art"< [...]
+<a name="L609"></a><tt class="py-lineno"> 609</tt> <tt class="py-line"> <tt class="py-name">fp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L610"></a><tt class="py-lineno"> 610</tt> <tt class="py-line"> </tt>
+<a name="L611"></a><tt class="py-lineno"> 611</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-number">1</tt><tt class="py-op">:</tt> </tt>
+<a name="L612"></a><tt class="py-lineno"> 612</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">hasNextLine</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L613"></a><tt class="py-lineno"> 613</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L614"></a><tt class="py-lineno"> 614</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">RefRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L615"></a><tt class="py-lineno"> 615</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-44" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-44', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string [...]
+<a name="L616"></a><tt class="py-lineno"> 616</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L617"></a><tt class="py-lineno"> 617</tt> <tt class="py-line"> </tt>
+<a name="L618"></a><tt class="py-lineno"> 618</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L619"></a><tt class="py-lineno"> 619</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L620"></a><tt class="py-lineno"> 620</tt> <tt class="py-line"> <tt class="py-name">CurrentReadRef</tt> <tt class="py-op">=</tt> <tt class="py-name">NextReadRef</tt> </tt>
+<a name="L621"></a><tt class="py-lineno"> 621</tt> <tt class="py-line"> <tt class="py-name">MappedReads</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L622"></a><tt class="py-lineno"> 622</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">hits</tt> <tt class="py-keyword">in</tt> <tt class="py-name">RefRead</tt><tt class="py-op">:</tt> </tt>
+<a name="L623"></a><tt class="py-lineno"> 623</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">hits</tt><tt class="py-op">.</tt><tt id="link-45" class="py-name"><a title="core.AnalyseMapping.CustomRead.toStrNoMem" class="py-name" href="#" onclick="return doclink('link-45', 'toStrNoMem', 'link-19');">toStrNoMem</a></tt><tt class="py-op">(</tt><tt class="py-string [...]
+<a name="L624"></a><tt class="py-lineno"> 624</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L625"></a><tt class="py-lineno"> 625</tt> <tt class="py-line"> <tt class="py-name">hasNextLine</tt><tt class="py-op">,</tt> <tt class="py-name">RefRead</tt><tt class="py-op">,</tt> <tt class="py-name">NextReadRef</tt> <tt class="py-op">=</tt> <tt id="link-46" class="py-name"><a title="core.AnalyseMapping.getAllID" class="py-name" href="#" onclick="return doclink('link-46', 'getAllID', 'link-16');">getAllID</a></tt><tt class="py-op">(</tt><tt class="py-name">filer [...]
+<a name="L626"></a><tt class="py-lineno"> 626</tt> <tt class="py-line"> </tt>
+<a name="L627"></a><tt class="py-lineno"> 627</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L628"></a><tt class="py-lineno"> 628</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"\t\t%f\t\t"</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L629"></a><tt class="py-lineno"> 629</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L630"></a><tt class="py-lineno"> 630</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">tp</tt><tt class="py-op">,</tt> <tt class="py-name">fp</tt><tt class="py-op">,</tt><tt class="py-name">tp</tt><tt class="py-op">+</tt><tt class="py-name">fp</tt><tt class="py-op">,</tt><tt class="py-name">MappedReads</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L631"></a><tt class="py-lineno"> 631</tt> <tt class="py-line"><tt class="py-comment">##################END: FUNCTIONS FOR NO-MEMORY ANALYSIS ####################</tt> </tt>
+<a name="L632"></a><tt class="py-lineno"> 632</tt> <tt class="py-line"> </tt>
+<a name="L633"></a><tt class="py-lineno"> 633</tt> <tt class="py-line"> </tt>
+<a name="getNumberOf"></a><div id="getNumberOf-def"><a name="L634"></a><tt class="py-lineno"> 634</tt> <a class="py-toggle" href="#" id="getNumberOf-toggle" onclick="return toggle('getNumberOf');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getNumberOf">getNumberOf</a><tt class="py-op">(</tt><tt class="py-param">line</tt><tt class="py-op">,</tt> <tt class="py-param">tag</tt><tt class="py-op">)</tt><tt class="py-op" [...]
+</div><div id="getNumberOf-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getNumberOf-expanded"><a name="L635"></a><tt class="py-lineno"> 635</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L636"></a><tt class="py-lineno"> 636</tt> <tt class="py-line"><tt class="py-docstring"> Reads the alignment tag, given the text and a tag to search for.</tt> </tt>
+<a name="L637"></a><tt class="py-lineno"> 637</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L638"></a><tt class="py-lineno"> 638</tt> <tt class="py-line"><tt class="py-docstring"> @type line: string</tt> </tt>
+<a name="L639"></a><tt class="py-lineno"> 639</tt> <tt class="py-line"><tt class="py-docstring"> @param line: SAM line</tt> </tt>
+<a name="L640"></a><tt class="py-lineno"> 640</tt> <tt class="py-line"><tt class="py-docstring"> @type tag: string</tt> </tt>
+<a name="L641"></a><tt class="py-lineno"> 641</tt> <tt class="py-line"><tt class="py-docstring"> @param tag: SAM tag. i.e: NM,MD</tt> </tt>
+<a name="L642"></a><tt class="py-lineno"> 642</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L643"></a><tt class="py-lineno"> 643</tt> <tt class="py-line"><tt class="py-docstring"> @return: number x behind desired tag tag:i:x</tt> </tt>
+<a name="L644"></a><tt class="py-lineno"> 644</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L645"></a><tt class="py-lineno"> 645</tt> <tt class="py-line"> </tt>
+<a name="L646"></a><tt class="py-lineno"> 646</tt> <tt class="py-line"> <tt class="py-comment"># gives the number of XX back</tt> </tt>
+<a name="L647"></a><tt class="py-lineno"> 647</tt> <tt class="py-line"> <tt class="py-comment"># valid tags: X0,XM (number of missmatches</tt> </tt>
+<a name="L648"></a><tt class="py-lineno"> 648</tt> <tt class="py-line"> <tt class="py-name">m</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-name">tag</tt> <tt class="py-op">+</tt> <tt class="py-string">":i:(\d+)"</tt><tt class="py-op">,</tt> <tt class="py-name">line</tt><tt class="py-op">)</tt> </tt>
+<a name="L649"></a><tt class="py-lineno"> 649</tt> <tt class="py-line"> <tt class="py-name">besthits</tt> <tt class="py-op">=</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L650"></a><tt class="py-lineno"> 650</tt> <tt class="py-line"> </tt>
+<a name="L651"></a><tt class="py-lineno"> 651</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">besthits</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L652"></a><tt class="py-lineno"> 652</tt> <tt class="py-line"> </tt>
+<a name="getsum"></a><div id="getsum-def"><a name="L653"></a><tt class="py-lineno"> 653</tt> <a class="py-toggle" href="#" id="getsum-toggle" onclick="return toggle('getsum');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getsum">getsum</a><tt class="py-op">(</tt><tt class="py-param">strlist</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="getsum-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getsum-expanded"><a name="L654"></a><tt class="py-lineno"> 654</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L655"></a><tt class="py-lineno"> 655</tt> <tt class="py-line"><tt class="py-docstring"> Sum of strings (as ints)</tt> </tt>
+<a name="L656"></a><tt class="py-lineno"> 656</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L657"></a><tt class="py-lineno"> 657</tt> <tt class="py-line"><tt class="py-docstring"> @type strlist: list(str)</tt> </tt>
+<a name="L658"></a><tt class="py-lineno"> 658</tt> <tt class="py-line"><tt class="py-docstring"> @param strlist: SAM line</tt> </tt>
+<a name="L659"></a><tt class="py-lineno"> 659</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L660"></a><tt class="py-lineno"> 660</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L661"></a><tt class="py-lineno"> 661</tt> <tt class="py-line"><tt class="py-docstring"> @return: MD tag calculation.</tt> </tt>
+<a name="L662"></a><tt class="py-lineno"> 662</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L663"></a><tt class="py-lineno"> 663</tt> <tt class="py-line"> </tt>
+<a name="L664"></a><tt class="py-lineno"> 664</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">strlist</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class [...]
+</div><a name="L665"></a><tt class="py-lineno"> 665</tt> <tt class="py-line"> </tt>
+<a name="getmean"></a><div id="getmean-def"><a name="L666"></a><tt class="py-lineno"> 666</tt> <a class="py-toggle" href="#" id="getmean-toggle" onclick="return toggle('getmean');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getmean">getmean</a><tt class="py-op">(</tt><tt class="py-param">strlist</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="getmean-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getmean-expanded"><a name="L667"></a><tt class="py-lineno"> 667</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L668"></a><tt class="py-lineno"> 668</tt> <tt class="py-line"><tt class="py-docstring"> Mean of strings.</tt> </tt>
+<a name="L669"></a><tt class="py-lineno"> 669</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L670"></a><tt class="py-lineno"> 670</tt> <tt class="py-line"><tt class="py-docstring"> @type strlist: list(str)</tt> </tt>
+<a name="L671"></a><tt class="py-lineno"> 671</tt> <tt class="py-line"><tt class="py-docstring"> @param strlist: SAM line</tt> </tt>
+<a name="L672"></a><tt class="py-lineno"> 672</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L673"></a><tt class="py-lineno"> 673</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: float</tt> </tt>
+<a name="L674"></a><tt class="py-lineno"> 674</tt> <tt class="py-line"><tt class="py-docstring"> @return: mean</tt> </tt>
+<a name="L675"></a><tt class="py-lineno"> 675</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L676"></a><tt class="py-lineno"> 676</tt> <tt class="py-line"> <tt class="py-name">sum</tt> <tt class="py-op">=</tt> <tt id="link-47" class="py-name"><a title="core.AnalyseMapping.getsum" class="py-name" href="#" onclick="return doclink('link-47', 'getsum', 'link-5');">getsum</a></tt><tt class="py-op">(</tt><tt class="py-name">strlist</tt><tt class="py-op">)</tt> </tt>
+<a name="L677"></a><tt class="py-lineno"> 677</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">sum</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">strlist</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L678"></a><tt class="py-lineno"> 678</tt> <tt class="py-line"> </tt>
+<a name="L679"></a><tt class="py-lineno"> 679</tt> <tt class="py-line"> </tt>
+<a name="ComputeRQScore"></a><div id="ComputeRQScore-def"><a name="L680"></a><tt class="py-lineno"> 680</tt> <a class="py-toggle" href="#" id="ComputeRQScore-toggle" onclick="return toggle('ComputeRQScore');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#ComputeRQScore">ComputeRQScore</a><tt class="py-op">(</tt><tt class="py-param">quality</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="ComputeRQScore-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ComputeRQScore-expanded"><a name="L681"></a><tt class="py-lineno"> 681</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L682"></a><tt class="py-lineno"> 682</tt> <tt class="py-line"><tt class="py-docstring"> Computes the ReadQualityScore given a quality string</tt> </tt>
+<a name="L683"></a><tt class="py-lineno"> 683</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L684"></a><tt class="py-lineno"> 684</tt> <tt class="py-line"><tt class="py-docstring"> @type quality: string</tt> </tt>
+<a name="L685"></a><tt class="py-lineno"> 685</tt> <tt class="py-line"><tt class="py-docstring"> @param quality: quality string of a read.</tt> </tt>
+<a name="L686"></a><tt class="py-lineno"> 686</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L687"></a><tt class="py-lineno"> 687</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: float</tt> </tt>
+<a name="L688"></a><tt class="py-lineno"> 688</tt> <tt class="py-line"><tt class="py-docstring"> @return: ReadQualityScore (RQS)</tt> </tt>
+<a name="L689"></a><tt class="py-lineno"> 689</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L690"></a><tt class="py-lineno"> 690</tt> <tt class="py-line"> <tt class="py-comment"># phred --> -33</tt> </tt>
+<a name="L691"></a><tt class="py-lineno"> 691</tt> <tt class="py-line"> <tt class="py-name">qualarray</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">ord</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">33</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quality</tt><tt class="py-op">]</tt> </tt>
+<a name="L692"></a><tt class="py-lineno"> 692</tt> <tt class="py-line"> <tt class="py-comment"># solexa --> -64</tt> </tt>
+<a name="L693"></a><tt class="py-lineno"> 693</tt> <tt class="py-line"> <tt class="py-name">score</tt> <tt class="py-op">=</tt><tt class="py-op">(</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">qualarray</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">qualarray</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py- [...]
+<a name="L694"></a><tt class="py-lineno"> 694</tt> <tt class="py-line"> </tt>
+<a name="L695"></a><tt class="py-lineno"> 695</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">score</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L696"></a><tt class="py-lineno"> 696</tt> <tt class="py-line"> </tt>
+<a name="L697"></a><tt class="py-lineno"> 697</tt> <tt class="py-line"> </tt>
+<a name="getAlignmentLength"></a><div id="getAlignmentLength-def"><a name="L698"></a><tt class="py-lineno"> 698</tt> <a class="py-toggle" href="#" id="getAlignmentLength-toggle" onclick="return toggle('getAlignmentLength');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getAlignmentLength">getAlignmentLength</a><tt class="py-op">(</tt><tt class="py-param">cigar</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="getAlignmentLength-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getAlignmentLength-expanded"><a name="L699"></a><tt class="py-lineno"> 699</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L700"></a><tt class="py-lineno"> 700</tt> <tt class="py-line"><tt class="py-docstring"> Computes the alignment length given a cigar string. Needed for Start + End calculation.</tt> </tt>
+<a name="L701"></a><tt class="py-lineno"> 701</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L702"></a><tt class="py-lineno"> 702</tt> <tt class="py-line"><tt class="py-docstring"> @type cigar: string</tt> </tt>
+<a name="L703"></a><tt class="py-lineno"> 703</tt> <tt class="py-line"><tt class="py-docstring"> @param cigar: Cigar string (SAM)</tt> </tt>
+<a name="L704"></a><tt class="py-lineno"> 704</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L705"></a><tt class="py-lineno"> 705</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L706"></a><tt class="py-lineno"> 706</tt> <tt class="py-line"><tt class="py-docstring"> @return: alignmentlength</tt> </tt>
+<a name="L707"></a><tt class="py-lineno"> 707</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L708"></a><tt class="py-lineno"> 708</tt> <tt class="py-line"> <tt class="py-comment"># I - insertions do not extend the alignment</tt> </tt>
+<a name="L709"></a><tt class="py-lineno"> 709</tt> <tt class="py-line"> <tt class="py-comment"># S - does not extend...</tt> </tt>
+<a name="L710"></a><tt class="py-lineno"> 710</tt> <tt class="py-line"> <tt class="py-comment"># P - does not extend...</tt> </tt>
+<a name="L711"></a><tt class="py-lineno"> 711</tt> <tt class="py-line"> <tt class="py-comment"># H - does not extend...</tt> </tt>
+<a name="L712"></a><tt class="py-lineno"> 712</tt> <tt class="py-line"> <tt class="py-name">match</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">findall</tt><tt class="py-op">(</tt><tt class="py-string">"(\d+)[MDN]"</tt><tt class="py-op">,</tt> <tt class="py-name">cigar</tt><tt class="py-op">)</tt> </tt>
+<a name="L713"></a><tt class="py-lineno"> 713</tt> <tt class="py-line"> <tt class="py-name">sumOfMatches</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L714"></a><tt class="py-lineno"> 714</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">match</tt><tt class="py-op">:</tt> </tt>
+<a name="L715"></a><tt class="py-lineno"> 715</tt> <tt class="py-line"> <tt class="py-name">sumOfMatches</tt> <tt class="py-op">+=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L716"></a><tt class="py-lineno"> 716</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">sumOfMatches</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L717"></a><tt class="py-lineno"> 717</tt> <tt class="py-line"> </tt>
+<a name="L718"></a><tt class="py-lineno"> 718</tt> <tt class="py-line"> </tt>
+<a name="isSaneAlignment"></a><div id="isSaneAlignment-def"><a name="L719"></a><tt class="py-lineno"> 719</tt> <a class="py-toggle" href="#" id="isSaneAlignment-toggle" onclick="return toggle('isSaneAlignment');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#isSaneAlignment">isSaneAlignment</a><tt class="py-op">(</tt><tt class="py-param">alignment</tt><tt class="py-op">,</tt> <tt class="py-param">identifier</tt><tt c [...]
+</div><div id="isSaneAlignment-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="isSaneAlignment-expanded"><a name="L720"></a><tt class="py-lineno"> 720</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L721"></a><tt class="py-lineno"> 721</tt> <tt class="py-line"><tt class="py-docstring"> Checks alignment line for unnecessary informations to skip </tt> </tt>
+<a name="L722"></a><tt class="py-lineno"> 722</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L723"></a><tt class="py-lineno"> 723</tt> <tt class="py-line"><tt class="py-docstring"> @type alignment: string</tt> </tt>
+<a name="L724"></a><tt class="py-lineno"> 724</tt> <tt class="py-line"><tt class="py-docstring"> @param alignment: Line from SAM</tt> </tt>
+<a name="L725"></a><tt class="py-lineno"> 725</tt> <tt class="py-line"><tt class="py-docstring"> @type identifier: string</tt> </tt>
+<a name="L726"></a><tt class="py-lineno"> 726</tt> <tt class="py-line"><tt class="py-docstring"> @param identifier: read id</tt> </tt>
+<a name="L727"></a><tt class="py-lineno"> 727</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L728"></a><tt class="py-lineno"> 728</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list of alignments with same read id.</tt> </tt>
+<a name="L729"></a><tt class="py-lineno"> 729</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L730"></a><tt class="py-lineno"> 730</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: Dictionary containg a read id; read quality mapping</tt> </tt>
+<a name="L731"></a><tt class="py-lineno"> 731</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: readobj, readname</tt> </tt>
+<a name="L732"></a><tt class="py-lineno"> 732</tt> <tt class="py-line"><tt class="py-docstring"> @return: Returns the read and it's identifier.</tt> </tt>
+<a name="L733"></a><tt class="py-lineno"> 733</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L734"></a><tt class="py-lineno"> 734</tt> <tt class="py-line"> </tt>
+<a name="L735"></a><tt class="py-lineno"> 735</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">alignment</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"@"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L736"></a><tt class="py-lineno"> 736</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L737"></a><tt class="py-lineno"> 737</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L738"></a><tt class="py-lineno"> 738</tt> <tt class="py-line"> <tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt id="link-48" class="py-name"><a title="core.AnalyseMapping.readSAMline" class="py-name" href="#" onclick="return doclink('link-48', 'readSAMline', 'link-10');">readSAMline</a></tt><tt class="py-op">(</tt><tt class="py-name">alignment</tt><tt class="py-op">,</tt> <tt class="py-name">identifier</ [...]
+<a name="L739"></a><tt class="py-lineno"> 739</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L740"></a><tt class="py-lineno"> 740</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L741"></a><tt class="py-lineno"> 741</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L742"></a><tt class="py-lineno"> 742</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L743"></a><tt class="py-lineno"> 743</tt> <tt class="py-line"> </tt>
+<a name="L744"></a><tt class="py-lineno"> 744</tt> <tt class="py-line"> </tt>
+<a name="CheckForSameAlignments"></a><div id="CheckForSameAlignments-def"><a name="L745"></a><tt class="py-lineno"> 745</tt> <a class="py-toggle" href="#" id="CheckForSameAlignments-toggle" onclick="return toggle('CheckForSameAlignments');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#CheckForSameAlignments">CheckForSameAlignments</a><tt class="py-op">(</tt><tt class="py-param">readref</tt><tt class="py-op">,</tt> < [...]
+</div><div id="CheckForSameAlignments-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CheckForSameAlignments-expanded"><a name="L746"></a><tt class="py-lineno"> 746</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L747"></a><tt class="py-lineno"> 747</tt> <tt class="py-line"><tt class="py-docstring"> Function for comparison of artificial alignments and reference alignments. FP are defined such that start and end position must be unique to the artificial reference</tt> </tt>
+<a name="L748"></a><tt class="py-lineno"> 748</tt> <tt class="py-line"><tt class="py-docstring"> returns 0 if no same read is found (FP found)</tt> </tt>
+<a name="L749"></a><tt class="py-lineno"> 749</tt> <tt class="py-line"><tt class="py-docstring"> returns 1 if an equal alignment is found</tt> </tt>
+<a name="L750"></a><tt class="py-lineno"> 750</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L751"></a><tt class="py-lineno"> 751</tt> <tt class="py-line"><tt class="py-docstring"> @type readref: read obj.</tt> </tt>
+<a name="L752"></a><tt class="py-lineno"> 752</tt> <tt class="py-line"><tt class="py-docstring"> @param readref: reference</tt> </tt>
+<a name="L753"></a><tt class="py-lineno"> 753</tt> <tt class="py-line"><tt class="py-docstring"> @type readart: read obj.</tt> </tt>
+<a name="L754"></a><tt class="py-lineno"> 754</tt> <tt class="py-line"><tt class="py-docstring"> @param readart: artificial</tt> </tt>
+<a name="L755"></a><tt class="py-lineno"> 755</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool</tt> </tt>
+<a name="L756"></a><tt class="py-lineno"> 756</tt> <tt class="py-line"><tt class="py-docstring"> @return: Indicator if alignment is the same (start & end equal)</tt> </tt>
+<a name="L757"></a><tt class="py-lineno"> 757</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L758"></a><tt class="py-lineno"> 758</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">readref</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L759"></a><tt class="py-lineno"> 759</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">readref</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-op">==</tt> <tt class="py-name">readart</tt><tt class="py-op">.</tt><tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt cla [...]
+<a name="L760"></a><tt class="py-lineno"> 760</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L761"></a><tt class="py-lineno"> 761</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L762"></a><tt class="py-lineno"> 762</tt> <tt class="py-line"> </tt>
+<a name="L763"></a><tt class="py-lineno"> 763</tt> <tt class="py-line"> </tt>
+<a name="L764"></a><tt class="py-lineno"> 764</tt> <tt class="py-line"> </tt>
+<a name="getHammingdistance"></a><div id="getHammingdistance-def"><a name="L765"></a><tt class="py-lineno"> 765</tt> <a class="py-toggle" href="#" id="getHammingdistance-toggle" onclick="return toggle('getHammingdistance');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#getHammingdistance">getHammingdistance</a><tt class="py-op">(</tt><tt class="py-param">CompareString</tt><tt class="py-op">,</tt> <tt class="py-param [...]
+</div><div id="getHammingdistance-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="getHammingdistance-expanded"><a name="L766"></a><tt class="py-lineno"> 766</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L767"></a><tt class="py-lineno"> 767</tt> <tt class="py-line"><tt class="py-docstring"> Computes the number of subsitutions in the artificial reference using the CompareString.</tt> </tt>
+<a name="L768"></a><tt class="py-lineno"> 768</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L769"></a><tt class="py-lineno"> 769</tt> <tt class="py-line"><tt class="py-docstring"> @type CompareString: string</tt> </tt>
+<a name="L770"></a><tt class="py-lineno"> 770</tt> <tt class="py-line"><tt class="py-docstring"> @param CompareString: string of 0 and 1s. 1 = hamming 1 between reference and artificial.</tt> </tt>
+<a name="L771"></a><tt class="py-lineno"> 771</tt> <tt class="py-line"><tt class="py-docstring"> @type start: int</tt> </tt>
+<a name="L772"></a><tt class="py-lineno"> 772</tt> <tt class="py-line"><tt class="py-docstring"> @param start: start of alignment</tt> </tt>
+<a name="L773"></a><tt class="py-lineno"> 773</tt> <tt class="py-line"><tt class="py-docstring"> @type end: int</tt> </tt>
+<a name="L774"></a><tt class="py-lineno"> 774</tt> <tt class="py-line"><tt class="py-docstring"> @param end: end ofalignment</tt> </tt>
+<a name="L775"></a><tt class="py-lineno"> 775</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L776"></a><tt class="py-lineno"> 776</tt> <tt class="py-line"><tt class="py-docstring"> @return: hamming distance</tt> </tt>
+<a name="L777"></a><tt class="py-lineno"> 777</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L778"></a><tt class="py-lineno"> 778</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">CompareString</tt><tt class="py-op">[</tt><tt class="py-name">start</tt><tt class="py-op">:</tt><tt class="py-name">end</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L779"></a><tt class="py-lineno"> 779</tt> <tt class="py-line"> </tt>
+<a name="L780"></a><tt class="py-lineno"> 780</tt> <tt class="py-line"> </tt>
+<a name="readReadQualities"></a><div id="readReadQualities-def"><a name="L781"></a><tt class="py-lineno"> 781</tt> <a class="py-toggle" href="#" id="readReadQualities-toggle" onclick="return toggle('readReadQualities');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#readReadQualities">readReadQualities</a><tt class="py-op">(</tt><tt class="py-param">fastqfile</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="readReadQualities-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="readReadQualities-expanded"><a name="L782"></a><tt class="py-lineno"> 782</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L783"></a><tt class="py-lineno"> 783</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L784"></a><tt class="py-lineno"> 784</tt> <tt class="py-line"><tt class="py-docstring"> Reads a .fastqfile and calculates a defined readscore </tt> </tt>
+<a name="L785"></a><tt class="py-lineno"> 785</tt> <tt class="py-line"><tt class="py-docstring"> input: fastq file</tt> </tt>
+<a name="L786"></a><tt class="py-lineno"> 786</tt> <tt class="py-line"><tt class="py-docstring"> output: fastq dictionary key = readid; value = qualstr </tt> </tt>
+<a name="L787"></a><tt class="py-lineno"> 787</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L788"></a><tt class="py-lineno"> 788</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L789"></a><tt class="py-lineno"> 789</tt> <tt class="py-line"><tt class="py-docstring"> @type fastqfile: string</tt> </tt>
+<a name="L790"></a><tt class="py-lineno"> 790</tt> <tt class="py-line"><tt class="py-docstring"> @param fastqfile: path to fastq file</tt> </tt>
+<a name="L791"></a><tt class="py-lineno"> 791</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L792"></a><tt class="py-lineno"> 792</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary</tt> </tt>
+<a name="L793"></a><tt class="py-lineno"> 793</tt> <tt class="py-line"><tt class="py-docstring"> @return: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L794"></a><tt class="py-lineno"> 794</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L795"></a><tt class="py-lineno"> 795</tt> <tt class="py-line"> <tt class="py-name">fastq_file</tt> <tt class="py-op">=</tt> <tt class="py-name">HTSeq</tt><tt class="py-op">.</tt><tt class="py-name">FastqReader</tt><tt class="py-op">(</tt><tt class="py-name">fastqfile</tt> <tt class="py-op">,</tt> <tt class="py-string">"phred"</tt><tt class="py-op">)</tt> </tt>
+<a name="L796"></a><tt class="py-lineno"> 796</tt> <tt class="py-line"> <tt class="py-name">readdictionary</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L797"></a><tt class="py-lineno"> 797</tt> <tt class="py-line"> </tt>
+<a name="L798"></a><tt class="py-lineno"> 798</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">read</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fastq_file</tt><tt class="py-op">:</tt> </tt>
+<a name="L799"></a><tt class="py-lineno"> 799</tt> <tt class="py-line"> <tt class="py-name">readdictionary</tt><tt class="py-op">[</tt><tt class="py-name">read</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-49" class="py-name" targets="Function core.AnalyseMapping.ComputeRQScore()=core.AnalyseMapping-module.html#ComputeRQScore"><a title="core.AnalyseMapping.ComputeRQScore" class="py-name" href="#" onclick="r [...]
+<a name="L800"></a><tt class="py-lineno"> 800</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\tReading Fastq file done!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L801"></a><tt class="py-lineno"> 801</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-name">readdictionary</tt> </tt>
+</div><a name="L802"></a><tt class="py-lineno"> 802</tt> <tt class="py-line"> </tt>
+<a name="L803"></a><tt class="py-lineno"> 803</tt> <tt class="py-line"> </tt>
+<a name="L804"></a><tt class="py-lineno"> 804</tt> <tt class="py-line"> </tt>
+<a name="L805"></a><tt class="py-lineno"> 805</tt> <tt class="py-line"> </tt>
+<a name="extendReadDic"></a><div id="extendReadDic-def"><a name="L806"></a><tt class="py-lineno"> 806</tt> <a class="py-toggle" href="#" id="extendReadDic-toggle" onclick="return toggle('extendReadDic');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#extendReadDic">extendReadDic</a><tt class="py-op">(</tt><tt class="py-param">readdic</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="extendReadDic-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="extendReadDic-expanded"><a name="L807"></a><tt class="py-lineno"> 807</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L808"></a><tt class="py-lineno"> 808</tt> <tt class="py-line"><tt class="py-docstring"> Extends a given dictionary with KEY = readid and VALUE = qualstr such that an internal naming is generated which can be used to efficiently create an numpy array</tt> </tt>
+<a name="L809"></a><tt class="py-lineno"> 809</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L810"></a><tt class="py-lineno"> 810</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L811"></a><tt class="py-lineno"> 811</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L812"></a><tt class="py-lineno"> 812</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L813"></a><tt class="py-lineno"> 813</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L814"></a><tt class="py-lineno"> 814</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary</tt> </tt>
+<a name="L815"></a><tt class="py-lineno"> 815</tt> <tt class="py-line"><tt class="py-docstring"> @return: extended readdic with KEY = ID, VALUE = READID object with READID.internalid and READID.qulstr = qualstr</tt> </tt>
+<a name="L816"></a><tt class="py-lineno"> 816</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L817"></a><tt class="py-lineno"> 817</tt> <tt class="py-line"> <tt class="py-name">internalnaming</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L818"></a><tt class="py-lineno"> 818</tt> <tt class="py-line"> <tt class="py-name">reverseReadDic</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">readdic</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-string">'S50'</tt><tt class="py-op">)</tt> </tt>
+<a name="L819"></a><tt class="py-lineno"> 819</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">id</tt> <tt class="py-keyword">in</tt> <tt class="py-name">readdic</tt><tt class="py-op">.</tt><tt class="py-name">iterkeys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L820"></a><tt class="py-lineno"> 820</tt> <tt class="py-line"> <tt class="py-comment"># i</tt> </tt>
+<a name="L821"></a><tt class="py-lineno"> 821</tt> <tt class="py-line"> <tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">id</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-50" class="py-name" targets="Class core.AnalyseMapping.ReadID=core.AnalyseMapping.ReadID-class.html"><a title="core.AnalyseMapping.ReadID" class="py-name" href="#" onclick="return doclink('link-50', 'ReadID', 'link-50');">ReadID</a></tt><tt class="py-op">(</tt><tt c [...]
+<a name="L822"></a><tt class="py-lineno"> 822</tt> <tt class="py-line"> <tt class="py-name">reverseReadDic</tt><tt class="py-op">[</tt><tt class="py-name">internalnaming</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">id</tt> </tt>
+<a name="L823"></a><tt class="py-lineno"> 823</tt> <tt class="py-line"> <tt class="py-name">internalnaming</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L824"></a><tt class="py-lineno"> 824</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">readdic</tt><tt class="py-op">,</tt> <tt class="py-name">reverseReadDic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L825"></a><tt class="py-lineno"> 825</tt> <tt class="py-line"> </tt>
+<a name="L826"></a><tt class="py-lineno"> 826</tt> <tt class="py-line"> </tt>
+<a name="L827"></a><tt class="py-lineno"> 827</tt> <tt class="py-line"> </tt>
+<a name="returnSequence"></a><div id="returnSequence-def"><a name="L828"></a><tt class="py-lineno"> 828</tt> <a class="py-toggle" href="#" id="returnSequence-toggle" onclick="return toggle('returnSequence');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#returnSequence">returnSequence</a><tt class="py-op">(</tt><tt class="py-param">fasta</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="returnSequence-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="returnSequence-expanded"><a name="L829"></a><tt class="py-lineno"> 829</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L830"></a><tt class="py-lineno"> 830</tt> <tt class="py-line"><tt class="py-docstring"> Returns a sequence string from a fasta file.</tt> </tt>
+<a name="L831"></a><tt class="py-lineno"> 831</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L832"></a><tt class="py-lineno"> 832</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L833"></a><tt class="py-lineno"> 833</tt> <tt class="py-line"><tt class="py-docstring"> @type fasta: string</tt> </tt>
+<a name="L834"></a><tt class="py-lineno"> 834</tt> <tt class="py-line"><tt class="py-docstring"> @param fasta: path to fasta file.</tt> </tt>
+<a name="L835"></a><tt class="py-lineno"> 835</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L836"></a><tt class="py-lineno"> 836</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: string</tt> </tt>
+<a name="L837"></a><tt class="py-lineno"> 837</tt> <tt class="py-line"><tt class="py-docstring"> @return: sequence</tt> </tt>
+<a name="L838"></a><tt class="py-lineno"> 838</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L839"></a><tt class="py-lineno"> 839</tt> <tt class="py-line"> <tt class="py-name">fastafile</tt> <tt class="py-op">=</tt> <tt class="py-name">HTSeq</tt><tt class="py-op">.</tt><tt class="py-name">FastaReader</tt><tt class="py-op">(</tt><tt class="py-name">fasta</tt><tt class="py-op">)</tt> </tt>
+<a name="L840"></a><tt class="py-lineno"> 840</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">sequence</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fastafile</tt><tt class="py-op">:</tt> </tt>
+<a name="L841"></a><tt class="py-lineno"> 841</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">sequence</tt><tt class="py-op">.</tt><tt class="py-name">seq</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L842"></a><tt class="py-lineno"> 842</tt> <tt class="py-line"> </tt>
+<a name="L843"></a><tt class="py-lineno"> 843</tt> <tt class="py-line"> </tt>
+<a name="L844"></a><tt class="py-lineno"> 844</tt> <tt class="py-line"> </tt>
+<a name="CreateCompareList"></a><div id="CreateCompareList-def"><a name="L845"></a><tt class="py-lineno"> 845</tt> <a class="py-toggle" href="#" id="CreateCompareList-toggle" onclick="return toggle('CreateCompareList');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#CreateCompareList">CreateCompareList</a><tt class="py-op">(</tt><tt class="py-param">Reference</tt><tt class="py-op">,</tt> <tt class="py-param">ARG</tt> [...]
+</div><div id="CreateCompareList-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="CreateCompareList-expanded"><a name="L846"></a><tt class="py-lineno"> 846</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L847"></a><tt class="py-lineno"> 847</tt> <tt class="py-line"><tt class="py-docstring"> Creates a list which is used for comparisons between aligned reads (exact number of mismatches) </tt> </tt>
+<a name="L848"></a><tt class="py-lineno"> 848</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L849"></a><tt class="py-lineno"> 849</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L850"></a><tt class="py-lineno"> 850</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L851"></a><tt class="py-lineno"> 851</tt> <tt class="py-line"><tt class="py-docstring"> @type Reference: string</tt> </tt>
+<a name="L852"></a><tt class="py-lineno"> 852</tt> <tt class="py-line"><tt class="py-docstring"> @param Reference: reference genome</tt> </tt>
+<a name="L853"></a><tt class="py-lineno"> 853</tt> <tt class="py-line"><tt class="py-docstring"> @type ARG: string</tt> </tt>
+<a name="L854"></a><tt class="py-lineno"> 854</tt> <tt class="py-line"><tt class="py-docstring"> @param ARG: artificial reference genome.</tt> </tt>
+<a name="L855"></a><tt class="py-lineno"> 855</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list</tt> </tt>
+<a name="L856"></a><tt class="py-lineno"> 856</tt> <tt class="py-line"><tt class="py-docstring"> @return: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.</tt> </tt>
+<a name="L857"></a><tt class="py-lineno"> 857</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L858"></a><tt class="py-lineno"> 858</tt> <tt class="py-line"> </tt>
+<a name="L859"></a><tt class="py-lineno"> 859</tt> <tt class="py-line"> <tt class="py-name">reference</tt> <tt class="py-op">=</tt> <tt id="link-51" class="py-name" targets="Function core.AnalyseMapping.returnSequence()=core.AnalyseMapping-module.html#returnSequence"><a title="core.AnalyseMapping.returnSequence" class="py-name" href="#" onclick="return doclink('link-51', 'returnSequence', 'link-51');">returnSequence</a></tt><tt class="py-op">(</tt><tt class="py-name">Reference</tt><t [...]
+<a name="L860"></a><tt class="py-lineno"> 860</tt> <tt class="py-line"> <tt class="py-name">artificialreference</tt> <tt class="py-op">=</tt> <tt id="link-52" class="py-name"><a title="core.AnalyseMapping.returnSequence" class="py-name" href="#" onclick="return doclink('link-52', 'returnSequence', 'link-51');">returnSequence</a></tt><tt class="py-op">(</tt><tt class="py-name">ARG</tt><tt class="py-op">)</tt> </tt>
+<a name="L861"></a><tt class="py-lineno"> 861</tt> <tt class="py-line"> <tt class="py-name">complist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L862"></a><tt class="py-lineno"> 862</tt> <tt class="py-line"> </tt>
+<a name="L863"></a><tt class="py-lineno"> 863</tt> <tt class="py-line"> </tt>
+<a name="L864"></a><tt class="py-lineno"> 864</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">reference</tt><tt class="py-op">)</tt> <tt class="py-op">!=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">artificialreference</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L865"></a><tt class="py-lineno"> 865</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"first 10 letter:\t\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">reference</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">"..."</tt> <tt class="py-op">+</tt> <tt class="py-name">reference</tt><tt class="py-op">[</t [...]
+<a name="L866"></a><tt class="py-lineno"> 866</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"last 10 letter:\t\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">artificialreference</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py-number">10</tt><tt class="py-op">]</tt> <tt class="py-op">+</tt> <tt class="py-string">"..."</tt> <tt class="py-op">+</tt> <tt class="py-name">artificialreference</tt><tt [...]
+<a name="L867"></a><tt class="py-lineno"> 867</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"Error! Two Sequences have different length! Try to add a line break after the last nucleotide."</tt><tt class="py-op">)</tt> </tt>
+<a name="L868"></a><tt class="py-lineno"> 868</tt> <tt class="py-line"> <tt class="py-name">sys</tt><tt class="py-op">.</tt><tt class="py-name">exit</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L869"></a><tt class="py-lineno"> 869</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L870"></a><tt class="py-lineno"> 870</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-op">[</tt> <tt class="py-number">0</tt> <tt class="py-keyword">if</tt> <tt class="py-name">x</tt> <tt class="py-op">==</tt> <tt class="py-name">artificialreference</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-keyword">else</tt> <tt class="py-number">1</tt> <tt class="py-keyword">for</tt> <tt [...]
+</div><a name="L871"></a><tt class="py-lineno"> 871</tt> <tt class="py-line"> </tt>
+<a name="L872"></a><tt class="py-lineno"> 872</tt> <tt class="py-line"> </tt>
+<a name="L873"></a><tt class="py-lineno"> 873</tt> <tt class="py-line"> </tt>
+<a name="readSAMline"></a><div id="readSAMline-def"><a name="L874"></a><tt class="py-lineno"> 874</tt> <a class="py-toggle" href="#" id="readSAMline-toggle" onclick="return toggle('readSAMline');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#readSAMline">readSAMline</a><tt class="py-op">(</tt><tt class="py-param">alignment</tt><tt class="py-op">,</tt> <tt class="py-param">identifier</tt><tt class="py-op">,</tt> <tt [...]
+</div><div id="readSAMline-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="readSAMline-expanded"><a name="L875"></a><tt class="py-lineno"> 875</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L876"></a><tt class="py-lineno"> 876</tt> <tt class="py-line"><tt class="py-docstring"> Function for reading SAM alignment text file (one line)</tt> </tt>
+<a name="L877"></a><tt class="py-lineno"> 877</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L878"></a><tt class="py-lineno"> 878</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L879"></a><tt class="py-lineno"> 879</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L880"></a><tt class="py-lineno"> 880</tt> <tt class="py-line"><tt class="py-docstring"> @type alignment: string</tt> </tt>
+<a name="L881"></a><tt class="py-lineno"> 881</tt> <tt class="py-line"><tt class="py-docstring"> @param alignment: SAM alignment</tt> </tt>
+<a name="L882"></a><tt class="py-lineno"> 882</tt> <tt class="py-line"><tt class="py-docstring"> @type identifier: string</tt> </tt>
+<a name="L883"></a><tt class="py-lineno"> 883</tt> <tt class="py-line"><tt class="py-docstring"> @param identifier: read id</tt> </tt>
+<a name="L884"></a><tt class="py-lineno"> 884</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L885"></a><tt class="py-lineno"> 885</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.</tt> </tt>
+<a name="L886"></a><tt class="py-lineno"> 886</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L887"></a><tt class="py-lineno"> 887</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L888"></a><tt class="py-lineno"> 888</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: read obj.</tt> </tt>
+<a name="L889"></a><tt class="py-lineno"> 889</tt> <tt class="py-line"><tt class="py-docstring"> @return: returns a customRead object</tt> </tt>
+<a name="L890"></a><tt class="py-lineno"> 890</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L891"></a><tt class="py-lineno"> 891</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L892"></a><tt class="py-lineno"> 892</tt> <tt class="py-line"> </tt>
+<a name="L893"></a><tt class="py-lineno"> 893</tt> <tt class="py-line"> <tt class="py-comment"># ignore header</tt> </tt>
+<a name="L894"></a><tt class="py-lineno"> 894</tt> <tt class="py-line"> <tt class="py-name">columns</tt> <tt class="py-op">=</tt> <tt class="py-name">alignment</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\t"</tt><tt class="py-op">)</tt> </tt>
+<a name="L895"></a><tt class="py-lineno"> 895</tt> <tt class="py-line"> <tt class="py-name">flag</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L896"></a><tt class="py-lineno"> 896</tt> <tt class="py-line"> </tt>
+<a name="L897"></a><tt class="py-lineno"> 897</tt> <tt class="py-line"> <tt class="py-comment"># flag 4 = not mapped to any genome</tt> </tt>
+<a name="L898"></a><tt class="py-lineno"> 898</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">flag</tt> <tt class="py-op">==</tt> <tt class="py-number">4</tt><tt class="py-op">:</tt> </tt>
+<a name="L899"></a><tt class="py-lineno"> 899</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-string">""</tt><tt class="py-op">)</tt> </tt>
+<a name="L900"></a><tt class="py-lineno"> 900</tt> <tt class="py-line"> </tt>
+<a name="L901"></a><tt class="py-lineno"> 901</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L902"></a><tt class="py-lineno"> 902</tt> <tt class="py-line"> </tt>
+<a name="L903"></a><tt class="py-lineno"> 903</tt> <tt class="py-line"> </tt>
+<a name="L904"></a><tt class="py-lineno"> 904</tt> <tt class="py-line"> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L905"></a><tt class="py-lineno"> 905</tt> <tt class="py-line"> <tt class="py-name">reference</tt> <tt class="py-op">=</tt> <tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L906"></a><tt class="py-lineno"> 906</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L907"></a><tt class="py-lineno"> 907</tt> <tt class="py-line"> <tt class="py-name">mappingquality</tt> <tt class="py-op">=</tt> <tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L908"></a><tt class="py-lineno"> 908</tt> <tt class="py-line"> <tt class="py-name">cigar</tt> <tt class="py-op">=</tt> <tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L909"></a><tt class="py-lineno"> 909</tt> <tt class="py-line"> <tt class="py-name">qualstr</tt> <tt class="py-op">=</tt> <tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">10</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L910"></a><tt class="py-lineno"> 910</tt> <tt class="py-line"> <tt class="py-name">tags</tt> <tt class="py-op">=</tt> <tt class="py-string">" "</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">columns</tt><tt class="py-op">[</tt><tt class="py-number">11</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L911"></a><tt class="py-lineno"> 911</tt> <tt class="py-line"> </tt>
+<a name="L912"></a><tt class="py-lineno"> 912</tt> <tt class="py-line"> <tt class="py-name">mdtag</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-string">"MD:Z:([^\s]+)"</tt><tt class="py-op">,</tt> <tt class="py-name">tags</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L913"></a><tt class="py-lineno"> 913</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L914"></a><tt class="py-lineno"> 914</tt> <tt class="py-line"> <tt class="py-name">mdtag</tt> <tt class="py-op">=</tt> <tt class="py-name">re</tt><tt class="py-op">.</tt><tt class="py-name">search</tt><tt class="py-op">(</tt><tt class="py-string">"MD:Z:([^\s]+)"</tt><tt class="py-op">,</tt> <tt class="py-name">tags</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">group</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)< [...]
+<a name="L915"></a><tt class="py-lineno"> 915</tt> <tt class="py-line"> <tt class="py-name">gaps</tt><tt class="py-op">,</tt> <tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt id="link-53" class="py-name" targets="Function core.AnalyseMapping.getMisGap()=core.AnalyseMapping-module.html#getMisGap"><a title="core.AnalyseMapping.getMisGap" class="py-name" href="#" onclick="return doclink('link-53', 'getMisGap', 'link-53');">getMisGap</a></tt><tt class="py-op">(</tt><tt [...]
+<a name="L916"></a><tt class="py-lineno"> 916</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L917"></a><tt class="py-lineno"> 917</tt> <tt class="py-line"> <tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L918"></a><tt class="py-lineno"> 918</tt> <tt class="py-line"> <tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L919"></a><tt class="py-lineno"> 919</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"Error Reading MDtag of %s.Setting gaps = 0,mism = 0"</tt> <tt class="py-op">%</tt> <tt class="py-name">readname</tt> </tt>
+<a name="L920"></a><tt class="py-lineno"> 920</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L921"></a><tt class="py-lineno"> 921</tt> <tt class="py-line"> <tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt id="link-54" class="py-name" targets="Function core.AnalyseMapping.getNumberOf()=core.AnalyseMapping-module.html#getNumberOf"><a title="core.AnalyseMapping.getNumberOf" class="py-name" href="#" onclick="return doclink('link-54', 'getNumberOf', 'link-54');">getNumberOf</a></tt><tt class="py-op">(</t [...]
+<a name="L922"></a><tt class="py-lineno"> 922</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L923"></a><tt class="py-lineno"> 923</tt> <tt class="py-line"> <tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L924"></a><tt class="py-lineno"> 924</tt> <tt class="py-line"> </tt>
+<a name="L925"></a><tt class="py-lineno"> 925</tt> <tt class="py-line"> <tt class="py-name">leng</tt> <tt class="py-op">=</tt> <tt id="link-55" class="py-name" targets="Function core.AnalyseMapping.getAlignmentLength()=core.AnalyseMapping-module.html#getAlignmentLength"><a title="core.AnalyseMapping.getAlignmentLength" class="py-name" href="#" onclick="return doclink('link-55', 'getAlignmentLength', 'link-55');">getAlignmentLength</a></tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L926"></a><tt class="py-lineno"> 926</tt> <tt class="py-line"> </tt>
+<a name="L927"></a><tt class="py-lineno"> 927</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">qualstr</tt><tt class="py-op">)</tt> <tt class="py-op">==</tt> <tt class="py-number">1</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">qualstr</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt> [...]
+<a name="L928"></a><tt class="py-lineno"> 928</tt> <tt class="py-line"> <tt class="py-name">score</tt> <tt class="py-op">=</tt> <tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">quality</tt> </tt>
+<a name="L929"></a><tt class="py-lineno"> 929</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L930"></a><tt class="py-lineno"> 930</tt> <tt class="py-line"> <tt class="py-name">score</tt> <tt class="py-op">=</tt> <tt id="link-56" class="py-name"><a title="core.AnalyseMapping.ComputeRQScore" class="py-name" href="#" onclick="return doclink('link-56', 'ComputeRQScore', 'link-49');">ComputeRQScore</a></tt><tt class="py-op">(</tt><tt class="py-name">qualstr</tt><tt class="py-op">)</tt> </tt>
+<a name="L931"></a><tt class="py-lineno"> 931</tt> <tt class="py-line"> </tt>
+<a name="L932"></a><tt class="py-lineno"> 932</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">identifier</tt> <tt class="py-op">==</tt> <tt class="py-string">"art"</tt><tt class="py-op">:</tt> </tt>
+<a name="L933"></a><tt class="py-lineno"> 933</tt> <tt class="py-line"> <tt class="py-comment">#tempobj = CustomRead(0,nm, getHammingdistance(compareList, start, start+leng), score, mappingquality,start,start+leng)</tt> </tt>
+<a name="L934"></a><tt class="py-lineno"> 934</tt> <tt class="py-line"> <tt class="py-name">tempobj</tt> <tt class="py-op">=</tt> <tt id="link-57" class="py-name"><a title="core.AnalyseMapping.CustomRead" class="py-name" href="#" onclick="return doclink('link-57', 'CustomRead', 'link-6');">CustomRead</a></tt><tt class="py-op">(</tt><tt class="py-name">readname</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">nm</tt><tt clas [...]
+<a name="L935"></a><tt class="py-lineno"> 935</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-name">identifier</tt> <tt class="py-op">==</tt> <tt class="py-string">"noMem"</tt><tt class="py-op">:</tt> </tt>
+<a name="L936"></a><tt class="py-lineno"> 936</tt> <tt class="py-line"> <tt class="py-name">tempobj</tt> <tt class="py-op">=</tt> <tt id="link-59" class="py-name"><a title="core.AnalyseMapping.CustomRead" class="py-name" href="#" onclick="return doclink('link-59', 'CustomRead', 'link-6');">CustomRead</a></tt><tt class="py-op">(</tt><tt class="py-name">readname</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-name">nm</tt><tt clas [...]
+<a name="L937"></a><tt class="py-lineno"> 937</tt> <tt class="py-line"> </tt>
+<a name="L938"></a><tt class="py-lineno"> 938</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L939"></a><tt class="py-lineno"> 939</tt> <tt class="py-line"> <tt class="py-comment">##########TPRead(nm, score, mq, start, end, gaps, mism)</tt> </tt>
+<a name="L940"></a><tt class="py-lineno"> 940</tt> <tt class="py-line"> <tt class="py-name">tempobj</tt> <tt class="py-op">=</tt> <tt id="link-61" class="py-name"><a title="core.AnalyseMapping.TPRead" class="py-name" href="#" onclick="return doclink('link-61', 'TPRead', 'link-4');">TPRead</a></tt><tt class="py-op">(</tt><tt class="py-name">nm</tt><tt class="py-op">,</tt> <tt class="py-name">score</tt><tt class="py-op">,</tt> <tt class="py-name">mappingquality</tt><tt class="p [...]
+<a name="L941"></a><tt class="py-lineno"> 941</tt> <tt class="py-line"> </tt>
+<a name="L942"></a><tt class="py-lineno"> 942</tt> <tt class="py-line"> </tt>
+<a name="L943"></a><tt class="py-lineno"> 943</tt> <tt class="py-line"> </tt>
+<a name="L944"></a><tt class="py-lineno"> 944</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">tempobj</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L945"></a><tt class="py-lineno"> 945</tt> <tt class="py-line"> </tt>
+<a name="L946"></a><tt class="py-lineno"> 946</tt> <tt class="py-line"> </tt>
+<a name="L947"></a><tt class="py-lineno"> 947</tt> <tt class="py-line"> </tt>
+<a name="L948"></a><tt class="py-lineno"> 948</tt> <tt class="py-line"> </tt>
+<a name="L949"></a><tt class="py-lineno"> 949</tt> <tt class="py-line"> </tt>
+<a name="returnIndex"></a><div id="returnIndex-def"><a name="L950"></a><tt class="py-lineno"> 950</tt> <a class="py-toggle" href="#" id="returnIndex-toggle" onclick="return toggle('returnIndex');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#returnIndex">returnIndex</a><tt class="py-op">(</tt><tt class="py-param">readdic</tt><tt class="py-op">,</tt> <tt class="py-param">readname</tt><tt class="py-op">)</tt><tt class [...]
+</div><div id="returnIndex-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="returnIndex-expanded"><a name="L951"></a><tt class="py-lineno"> 951</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L952"></a><tt class="py-lineno"> 952</tt> <tt class="py-line"><tt class="py-docstring"> Returns the index of a read. The index is prescribed by the ordering in the sam file.</tt> </tt>
+<a name="L953"></a><tt class="py-lineno"> 953</tt> <tt class="py-line"><tt class="py-docstring"> @type readname: string</tt> </tt>
+<a name="L954"></a><tt class="py-lineno"> 954</tt> <tt class="py-line"><tt class="py-docstring"> @param readname: read id</tt> </tt>
+<a name="L955"></a><tt class="py-lineno"> 955</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L956"></a><tt class="py-lineno"> 956</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.ArtRead</tt> </tt>
+<a name="L957"></a><tt class="py-lineno"> 957</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int</tt> </tt>
+<a name="L958"></a><tt class="py-lineno"> 958</tt> <tt class="py-line"><tt class="py-docstring"> @return: index</tt> </tt>
+<a name="L959"></a><tt class="py-lineno"> 959</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L960"></a><tt class="py-lineno"> 960</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">internalID</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L961"></a><tt class="py-lineno"> 961</tt> <tt class="py-line"> </tt>
+<a name="L962"></a><tt class="py-lineno"> 962</tt> <tt class="py-line"> </tt>
+<a name="ReadArtificialSAMfileHTSeq"></a><div id="ReadArtificialSAMfileHTSeq-def"><a name="L963"></a><tt class="py-lineno"> 963</tt> <a class="py-toggle" href="#" id="ReadArtificialSAMfileHTSeq-toggle" onclick="return toggle('ReadArtificialSAMfileHTSeq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq">ReadArtificialSAMfileHTSeq</a><tt class="py-op">(</tt><tt class="py-param">art</tt><tt cl [...]
+</div><div id="ReadArtificialSAMfileHTSeq-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ReadArtificialSAMfileHTSeq-expanded"><a name="L964"></a><tt class="py-lineno"> 964</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L965"></a><tt class="py-lineno"> 965</tt> <tt class="py-line"><tt class="py-docstring"> Function for reading the artificial reference genome using HTSeq.This function is mainly used. Only if no quality string is in the SAM line. The custom</tt> </tt>
+<a name="L966"></a><tt class="py-lineno"> 966</tt> <tt class="py-line"><tt class="py-docstring"> SAM reading function is used.</tt> </tt>
+<a name="L967"></a><tt class="py-lineno"> 967</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L968"></a><tt class="py-lineno"> 968</tt> <tt class="py-line"><tt class="py-docstring"> @type art: string</tt> </tt>
+<a name="L969"></a><tt class="py-lineno"> 969</tt> <tt class="py-line"><tt class="py-docstring"> @param art: artificial file.</tt> </tt>
+<a name="L970"></a><tt class="py-lineno"> 970</tt> <tt class="py-line"><tt class="py-docstring"> @type RefArray: array</tt> </tt>
+<a name="L971"></a><tt class="py-lineno"> 971</tt> <tt class="py-line"><tt class="py-docstring"> @param RefArray: Results from reading the reference SAM file.</tt> </tt>
+<a name="L972"></a><tt class="py-lineno"> 972</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list</tt> </tt>
+<a name="L973"></a><tt class="py-lineno"> 973</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.</tt> </tt>
+<a name="L974"></a><tt class="py-lineno"> 974</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary</tt> </tt>
+<a name="L975"></a><tt class="py-lineno"> 975</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L976"></a><tt class="py-lineno"> 976</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: array</tt> </tt>
+<a name="L977"></a><tt class="py-lineno"> 977</tt> <tt class="py-line"><tt class="py-docstring"> @return: aligned read objects in an array.</tt> </tt>
+<a name="L978"></a><tt class="py-lineno"> 978</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L979"></a><tt class="py-lineno"> 979</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L980"></a><tt class="py-lineno"> 980</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tARTIFICIAL:")</tt> </tt>
+<a name="L981"></a><tt class="py-lineno"> 981</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">art</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L982"></a><tt class="py-lineno"> 982</tt> <tt class="py-line"> <tt class="py-name">artdic</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L983"></a><tt class="py-lineno"> 983</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L984"></a><tt class="py-lineno"> 984</tt> <tt class="py-line"> </tt>
+<a name="L985"></a><tt class="py-lineno"> 985</tt> <tt class="py-line"> <tt class="py-name">read</tt> <tt class="py-op">=</tt> <tt id="link-62" class="py-name"><a title="core.AnalyseMapping.SkipHeader" class="py-name" href="#" onclick="return doclink('link-62', 'SkipHeader', 'link-22');">SkipHeader</a></tt><tt class="py-op">(</tt><tt class="py-name">fobj</tt><tt class="py-op">,</tt><tt class="py-name">compareList</tt><tt class="py-op">,</tt><tt class="py-name">readdic</tt><tt class=" [...]
+<a name="L986"></a><tt class="py-lineno"> 986</tt> <tt class="py-line"> </tt>
+<a name="L987"></a><tt class="py-lineno"> 987</tt> <tt class="py-line"> </tt>
+<a name="L988"></a><tt class="py-lineno"> 988</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">alignment</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fobj</tt><tt class="py-op">:</tt> </tt>
+<a name="L989"></a><tt class="py-lineno"> 989</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L990"></a><tt class="py-lineno"> 990</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">%</tt> <tt class="py-number">1000000</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L991"></a><tt class="py-lineno"> 991</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"%d.."</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">/</tt><tt class="py-number">1000000</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L992"></a><tt class="py-lineno"> 992</tt> <tt class="py-line"> <tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt id="link-63" class="py-name" targets="Function core.AnalyseMapping.isSaneAlignment()=core.AnalyseMapping-module.html#isSaneAlignment"><a title="core.AnalyseMapping.isSaneAlignment" class="py-name" href="#" onclick="return doclink('link-63', 'isSaneAlignment', 'link-63');">isSaneAlignment</a></t [...]
+<a name="L993"></a><tt class="py-lineno"> 993</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L994"></a><tt class="py-lineno"> 994</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L995"></a><tt class="py-lineno"> 995</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L996"></a><tt class="py-lineno"> 996</tt> <tt class="py-line"> <tt class="py-comment"># Check by internal naming if spot in array is taken (!= 0) by a read</tt> </tt>
+<a name="L997"></a><tt class="py-lineno"> 997</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt id="link-64" class="py-name" targets="Function core.AnalyseMapping.returnIndex()=core.AnalyseMapping-module.html#returnIndex"><a title="core.AnalyseMapping.returnIndex" class="py-name" href="#" onclick="return doclink('link-64', 'returnIndex', 'link-64');">returnIndex</a></tt><tt class="py-op">(</tt><tt class="py-name">readdic</tt><tt class="py-o [...]
+<a name="L998"></a><tt class="py-lineno"> 998</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L999"></a><tt class="py-lineno"> 999</tt> <tt class="py-line"> <tt class="py-comment"># read already in dic? Check if the alignments are the same</tt> </tt>
+<a name="L1000"></a><tt class="py-lineno">1000</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-65" class="py-name" targets="Method core.AnalyseMapping.TPRead.isContained()=core.AnalyseMapping.TPRead-class.html#isContained"><a title="core.AnalyseMapping.TPRead.isContained" class="py-name" href=" [...]
+<a name="L1001"></a><tt class="py-lineno">1001</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">readname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">artdic</tt><tt class="py-op">:</tt> </tt>
+<a name="L1002"></a><tt class="py-lineno">1002</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-66" class="py-name" targets="Method core.AnalyseMapping.CustomRead.toObjself()=core.AnalyseMapping.CustomRead-class.html#toObjself,Method core.AnalyseMapping.TPRead.toObjself()=core.AnalyseMapping.TPRead-class.html#toObjself"><a title="core.Analy [...]
+core.AnalyseMapping.TPRead.toObjself" class="py-name" href="#" onclick="return doclink('link-66', 'toObjself', 'link-66');">toObjself</a></tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">)</tt> </tt>
+<a name="L1003"></a><tt class="py-lineno">1003</tt> <tt class="py-line"> </tt>
+<a name="L1004"></a><tt class="py-lineno">1004</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1005"></a><tt class="py-lineno">1005</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">read</tt> </tt>
+<a name="L1006"></a><tt class="py-lineno">1006</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1007"></a><tt class="py-lineno">1007</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L1008"></a><tt class="py-lineno">1008</tt> <tt class="py-line"> </tt>
+<a name="L1009"></a><tt class="py-lineno">1009</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1010"></a><tt class="py-lineno">1010</tt> <tt class="py-line"> <tt class="py-comment"># new read? Just add it to the dictionary</tt> </tt>
+<a name="L1011"></a><tt class="py-lineno">1011</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">read</tt> </tt>
+<a name="L1012"></a><tt class="py-lineno">1012</tt> <tt class="py-line"> </tt>
+<a name="L1013"></a><tt class="py-lineno">1013</tt> <tt class="py-line"> </tt>
+<a name="L1014"></a><tt class="py-lineno">1014</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1015"></a><tt class="py-lineno">1015</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1016"></a><tt class="py-lineno">1016</tt> <tt class="py-line"> <tt class="py-comment">#print("\r\n")</tt> </tt>
+<a name="L1017"></a><tt class="py-lineno">1017</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"\t %f "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L1018"></a><tt class="py-lineno">1018</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tdone in %d seconds" % (end-start))</tt> </tt>
+<a name="L1019"></a><tt class="py-lineno">1019</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">artdic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1020"></a><tt class="py-lineno">1020</tt> <tt class="py-line"> </tt>
+<a name="L1021"></a><tt class="py-lineno">1021</tt> <tt class="py-line"> </tt>
+<a name="L1022"></a><tt class="py-lineno">1022</tt> <tt class="py-line"> </tt>
+<a name="writeToTabArt"></a><div id="writeToTabArt-def"><a name="L1023"></a><tt class="py-lineno">1023</tt> <a class="py-toggle" href="#" id="writeToTabArt-toggle" onclick="return toggle('writeToTabArt');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#writeToTabArt">writeToTabArt</a><tt class="py-op">(</tt><tt class="py-param">ReadDic</tt><tt class="py-op">,</tt> <tt class="py-param">outfile</tt><tt class="py-op">)</ [...]
+</div><div id="writeToTabArt-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="writeToTabArt-expanded"><a name="L1024"></a><tt class="py-lineno">1024</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1025"></a><tt class="py-lineno">1025</tt> <tt class="py-line"><tt class="py-docstring"> Write function for hits ont he reference genome. Only the best alignment (least mismatches)</tt> </tt>
+<a name="L1026"></a><tt class="py-lineno">1026</tt> <tt class="py-line"><tt class="py-docstring"> Header :</tt> </tt>
+<a name="L1027"></a><tt class="py-lineno">1027</tt> <tt class="py-line"><tt class="py-docstring"> ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality</tt> </tt>
+<a name="L1028"></a><tt class="py-lineno">1028</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1029"></a><tt class="py-lineno">1029</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1030"></a><tt class="py-lineno">1030</tt> <tt class="py-line"><tt class="py-docstring"> @type outfile: string</tt> </tt>
+<a name="L1031"></a><tt class="py-lineno">1031</tt> <tt class="py-line"><tt class="py-docstring"> @param outfile: Path to outfile.</tt> </tt>
+<a name="L1032"></a><tt class="py-lineno">1032</tt> <tt class="py-line"><tt class="py-docstring"> @type ReadDic: dictionary</tt> </tt>
+<a name="L1033"></a><tt class="py-lineno">1033</tt> <tt class="py-line"><tt class="py-docstring"> @param ReadDic: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L1034"></a><tt class="py-lineno">1034</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1035"></a><tt class="py-lineno">1035</tt> <tt class="py-line"> </tt>
+<a name="L1036"></a><tt class="py-lineno">1036</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outfile</tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1037"></a><tt class="py-lineno">1037</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">read</tt> <tt class="py-keyword">in</tt> <tt class="py-name">ReadDic</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1038"></a><tt class="py-lineno">1038</tt> <tt class="py-line"> <tt class="py-name">BestReadIndex</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">ReadDic</tt><tt class="py-op">[</tt><tt class="py-name">read</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">)</tt><tt class="py-op">.</tt><tt class="py-name">argmin</tt><tt [...]
+<a name="L1039"></a><tt class="py-lineno">1039</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">ReadDic</tt><tt class="py-op">[</tt><tt class="py-name">read</tt><tt class="py-op">]</tt><tt class="py-op">.</ [...]
+<a name="L1040"></a><tt class="py-lineno">1040</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1041"></a><tt class="py-lineno">1041</tt> <tt class="py-line"> </tt>
+<a name="L1042"></a><tt class="py-lineno">1042</tt> <tt class="py-line"> </tt>
+<a name="L1043"></a><tt class="py-lineno">1043</tt> <tt class="py-line"> </tt>
+<a name="L1044"></a><tt class="py-lineno">1044</tt> <tt class="py-line"> </tt>
+<a name="writeToTabRef"></a><div id="writeToTabRef-def"><a name="L1045"></a><tt class="py-lineno">1045</tt> <a class="py-toggle" href="#" id="writeToTabRef-toggle" onclick="return toggle('writeToTabRef');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#writeToTabRef">writeToTabRef</a><tt class="py-op">(</tt><tt class="py-param">RefArray</tt><tt class="py-op">,</tt> <tt class="py-param">outfile</tt><tt class="py-op">,< [...]
+</div><div id="writeToTabRef-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="writeToTabRef-expanded"><a name="L1046"></a><tt class="py-lineno">1046</tt> <tt class="py-line"> <tt class="py-docstring">""" </tt> </tt>
+<a name="L1047"></a><tt class="py-lineno">1047</tt> <tt class="py-line"><tt class="py-docstring"> Write function for hits ont he reference genome. Only the best alignment (least mismatches)</tt> </tt>
+<a name="L1048"></a><tt class="py-lineno">1048</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1049"></a><tt class="py-lineno">1049</tt> <tt class="py-line"><tt class="py-docstring"> Header :</tt> </tt>
+<a name="L1050"></a><tt class="py-lineno">1050</tt> <tt class="py-line"><tt class="py-docstring"> ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality</tt> </tt>
+<a name="L1051"></a><tt class="py-lineno">1051</tt> <tt class="py-line"><tt class="py-docstring"> rows in the infile</tt> </tt>
+<a name="L1052"></a><tt class="py-lineno">1052</tt> <tt class="py-line"><tt class="py-docstring"> @type RefArray: string</tt> </tt>
+<a name="L1053"></a><tt class="py-lineno">1053</tt> <tt class="py-line"><tt class="py-docstring"> @param RefArray: path to inputfile.</tt> </tt>
+<a name="L1054"></a><tt class="py-lineno">1054</tt> <tt class="py-line"><tt class="py-docstring"> @type outfile: int</tt> </tt>
+<a name="L1055"></a><tt class="py-lineno">1055</tt> <tt class="py-line"><tt class="py-docstring"> @param outfile: rows in the infile</tt> </tt>
+<a name="L1056"></a><tt class="py-lineno">1056</tt> <tt class="py-line"><tt class="py-docstring"> @type reverseReadArray: dictionary</tt> </tt>
+<a name="L1057"></a><tt class="py-lineno">1057</tt> <tt class="py-line"><tt class="py-docstring"> @param reverseReadArray: Contains reads = values and ranks = keys</tt> </tt>
+<a name="L1058"></a><tt class="py-lineno">1058</tt> <tt class="py-line"><tt class="py-docstring"> @type ReadDic: dictionary</tt> </tt>
+<a name="L1059"></a><tt class="py-lineno">1059</tt> <tt class="py-line"><tt class="py-docstring"> @param ReadDic: dictionary containing read ids and read qualities.</tt> </tt>
+<a name="L1060"></a><tt class="py-lineno">1060</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1061"></a><tt class="py-lineno">1061</tt> <tt class="py-line"> </tt>
+<a name="L1062"></a><tt class="py-lineno">1062</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outfile</tt><tt class="py-op">,</tt> <tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1063"></a><tt class="py-lineno">1063</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">RefArray</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1064"></a><tt class="py-lineno">1064</tt> <tt class="py-line"> <tt class="py-name">read</tt> <tt class="py-op">=</tt> <tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L1065"></a><tt class="py-lineno">1065</tt> <tt class="py-line"> <tt class="py-comment"># check if entry == 0</tt> </tt>
+<a name="L1066"></a><tt class="py-lineno">1066</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L1067"></a><tt class="py-lineno">1067</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1068"></a><tt class="py-lineno">1068</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1069"></a><tt class="py-lineno">1069</tt> <tt class="py-line"> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt class="py-name">reverseReadArray</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L1070"></a><tt class="py-lineno">1070</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt id="link-67" class="py-name"><a title="core.AnalyseMapping.returnIndex" class="py-name" href="#" onclick="return doclink('link-67', 'returnIndex', 'link-64');">returnIndex</a></tt><tt class="py-op">(</tt><tt class="py-name">ReadDic</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt><tt class="py-op">)</tt> </tt>
+<a name="L1071"></a><tt class="py-lineno">1071</tt> <tt class="py-line"> <tt class="py-name">BestReadIndex</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">,</tt><tt class="py-name">dtype</tt><tt class="py-op">=</t [...]
+<a name="L1072"></a><tt class="py-lineno">1072</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\r\n"</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">readname</tt><tt class="py-op">,</tt> <tt class="py-number">1</tt><tt class="py-op">,</tt> <tt class="py-number">0</tt><tt class="py-op">,</tt> <tt class="py-n [...]
+<a name="L1073"></a><tt class="py-lineno">1073</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1074"></a><tt class="py-lineno">1074</tt> <tt class="py-line"> </tt>
+<a name="L1075"></a><tt class="py-lineno">1075</tt> <tt class="py-line"> </tt>
+<a name="L1076"></a><tt class="py-lineno">1076</tt> <tt class="py-line"> </tt>
+<a name="ReadFromTab"></a><div id="ReadFromTab-def"><a name="L1077"></a><tt class="py-lineno">1077</tt> <a class="py-toggle" href="#" id="ReadFromTab-toggle" onclick="return toggle('ReadFromTab');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#ReadFromTab">ReadFromTab</a><tt class="py-op">(</tt><tt class="py-param">infile</tt><tt class="py-op">,</tt> <tt class="py-param">arraysize</tt><tt class="py-op">)</tt><tt clas [...]
+</div><div id="ReadFromTab-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="ReadFromTab-expanded"><a name="L1078"></a><tt class="py-lineno">1078</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1079"></a><tt class="py-lineno">1079</tt> <tt class="py-line"><tt class="py-docstring"> Reads the results from writeToTab in for plotting and analysis</tt> </tt>
+<a name="L1080"></a><tt class="py-lineno">1080</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1081"></a><tt class="py-lineno">1081</tt> <tt class="py-line"><tt class="py-docstring"> Header :</tt> </tt>
+<a name="L1082"></a><tt class="py-lineno">1082</tt> <tt class="py-line"><tt class="py-docstring"> ReadID MatchedReference Substitutions NumberOfMismatches ReadQuality MappingQuality</tt> </tt>
+<a name="L1083"></a><tt class="py-lineno">1083</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1084"></a><tt class="py-lineno">1084</tt> <tt class="py-line"><tt class="py-docstring"> @type infile: string</tt> </tt>
+<a name="L1085"></a><tt class="py-lineno">1085</tt> <tt class="py-line"><tt class="py-docstring"> @param infile: path to inputfile.</tt> </tt>
+<a name="L1086"></a><tt class="py-lineno">1086</tt> <tt class="py-line"><tt class="py-docstring"> @type arraysize: int</tt> </tt>
+<a name="L1087"></a><tt class="py-lineno">1087</tt> <tt class="py-line"><tt class="py-docstring"> @param arraysize: rows in the infile</tt> </tt>
+<a name="L1088"></a><tt class="py-lineno">1088</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1089"></a><tt class="py-lineno">1089</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: np.array(obj)</tt> </tt>
+<a name="L1090"></a><tt class="py-lineno">1090</tt> <tt class="py-line"><tt class="py-docstring"> @return: array for unique classified reads.</tt> </tt>
+<a name="L1091"></a><tt class="py-lineno">1091</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1092"></a><tt class="py-lineno">1092</tt> <tt class="py-line"> </tt>
+<a name="L1093"></a><tt class="py-lineno">1093</tt> <tt class="py-line"> </tt>
+<a name="L1094"></a><tt class="py-lineno">1094</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">infile</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1095"></a><tt class="py-lineno">1095</tt> <tt class="py-line"> <tt class="py-name">dataArray</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-name">arraysize</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">object</tt><tt class="py-op">)</tt> </tt>
+<a name="L1096"></a><tt class="py-lineno">1096</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt><tt class="py-op">,</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">fobj</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1097"></a><tt class="py-lineno">1097</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"#"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1098"></a><tt class="py-lineno">1098</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L1099"></a><tt class="py-lineno">1099</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L1100"></a><tt class="py-lineno">1100</tt> <tt class="py-line"> <tt class="py-name">zeile</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\t"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1101"></a><tt class="py-lineno">1101</tt> <tt class="py-line"> <tt class="py-name">id</tt> <tt class="py-op">=</tt> <tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L1102"></a><tt class="py-lineno">1102</tt> <tt class="py-line"> <tt class="py-name">mr</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1103"></a><tt class="py-lineno">1103</tt> <tt class="py-line"> <tt class="py-name">subs</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1104"></a><tt class="py-lineno">1104</tt> <tt class="py-line"> <tt class="py-name">nm</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1105"></a><tt class="py-lineno">1105</tt> <tt class="py-line"> <tt class="py-name">rq</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">4</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1106"></a><tt class="py-lineno">1106</tt> <tt class="py-line"> <tt class="py-name">mq</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">5</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1107"></a><tt class="py-lineno">1107</tt> <tt class="py-line"> <tt class="py-name">gaps</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">8</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1108"></a><tt class="py-lineno">1108</tt> <tt class="py-line"> <tt class="py-name">mism</tt> <tt class="py-op">=</tt> <tt class="py-name">int</tt><tt class="py-op">(</tt><tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">9</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L1109"></a><tt class="py-lineno">1109</tt> <tt class="py-line"> <tt class="py-comment">#n = int(zeile[10].strip())</tt> </tt>
+<a name="L1110"></a><tt class="py-lineno">1110</tt> <tt class="py-line"> <tt class="py-comment"># id is not needed for the analysis </tt> </tt>
+<a name="L1111"></a><tt class="py-lineno">1111</tt> <tt class="py-line"> <tt class="py-name">dataArray</tt><tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-op">-</tt> <tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-68" class="py-name"><a title="core.AnalyseMapping.CustomRead" class="py-name" href="#" onclick="return doclink('link-68', 'CustomRead', 'link-6');">CustomRead</a></tt><tt class="py-op">(</tt><tt class=" [...]
+<a name="L1112"></a><tt class="py-lineno">1112</tt> <tt class="py-line"> </tt>
+<a name="L1113"></a><tt class="py-lineno">1113</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1114"></a><tt class="py-lineno">1114</tt> <tt class="py-line"> </tt>
+<a name="L1115"></a><tt class="py-lineno">1115</tt> <tt class="py-line"> </tt>
+<a name="L1116"></a><tt class="py-lineno">1116</tt> <tt class="py-line"> </tt>
+<a name="readInput"></a><div id="readInput-def"><a name="L1117"></a><tt class="py-lineno">1117</tt> <a class="py-toggle" href="#" id="readInput-toggle" onclick="return toggle('readInput');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#readInput">readInput</a><tt class="py-op">(</tt><tt class="py-param">file</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="readInput-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="readInput-expanded"><a name="L1118"></a><tt class="py-lineno">1118</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1119"></a><tt class="py-lineno">1119</tt> <tt class="py-line"><tt class="py-docstring"> Function for reading in the controldictionary from the inputfile.</tt> </tt>
+<a name="L1120"></a><tt class="py-lineno">1120</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1121"></a><tt class="py-lineno">1121</tt> <tt class="py-line"><tt class="py-docstring"> @type file: string </tt> </tt>
+<a name="L1122"></a><tt class="py-lineno">1122</tt> <tt class="py-line"><tt class="py-docstring"> @param file: Path to the input file.</tt> </tt>
+<a name="L1123"></a><tt class="py-lineno">1123</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1124"></a><tt class="py-lineno">1124</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: files</tt> </tt>
+<a name="L1125"></a><tt class="py-lineno">1125</tt> <tt class="py-line"><tt class="py-docstring"> @return: Controldictionary which is used to regulate the programs workflow.</tt> </tt>
+<a name="L1126"></a><tt class="py-lineno">1126</tt> <tt class="py-line"><tt class="py-docstring"> </tt> </tt>
+<a name="L1127"></a><tt class="py-lineno">1127</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1128"></a><tt class="py-lineno">1128</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1129"></a><tt class="py-lineno">1129</tt> <tt class="py-line"> <tt class="py-name">files</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1130"></a><tt class="py-lineno">1130</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"mapper"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1131"></a><tt class="py-lineno">1131</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"fasta"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L1132"></a><tt class="py-lineno">1132</tt> <tt class="py-line"> <tt class="py-name">tempref</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1133"></a><tt class="py-lineno">1133</tt> <tt class="py-line"> <tt class="py-name">temparg</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1134"></a><tt class="py-lineno">1134</tt> <tt class="py-line"> <tt class="py-name">reffasta</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L1135"></a><tt class="py-lineno">1135</tt> <tt class="py-line"> <tt class="py-name">artfasta</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1136"></a><tt class="py-lineno">1136</tt> <tt class="py-line"> </tt>
+<a name="L1137"></a><tt class="py-lineno">1137</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fobj</tt><tt class="py-op">:</tt> </tt>
+<a name="L1138"></a><tt class="py-lineno">1138</tt> <tt class="py-line"> <tt class="py-comment"># reference</tt> </tt>
+<a name="L1139"></a><tt class="py-lineno">1139</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"$"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1140"></a><tt class="py-lineno">1140</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"fasta"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">"reffasta"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-69" class="py-name" targets="Function core.AnalyseMapping.GetCompletePath()=core.AnalyseMapping-module.html#GetCompletePath"><a title="core.AnalyseMapping.GetCompletePath" [...]
+<a name="L1141"></a><tt class="py-lineno">1141</tt> <tt class="py-line"> <tt class="py-comment"># artificial</tt> </tt>
+<a name="L1142"></a><tt class="py-lineno">1142</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"#"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1143"></a><tt class="py-lineno">1143</tt> <tt class="py-line"> <tt class="py-name">artfasta</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-70" class="py-name"><a title="core.AnalyseMapping.GetCompletePath" class="py-name" href="#" onclick="return doclink('link-70', 'GetCompletePath', 'link-69');">GetCompletePath</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">sp [...]
+<a name="L1144"></a><tt class="py-lineno">1144</tt> <tt class="py-line"> <tt class="py-comment"># fastq file</tt> </tt>
+<a name="L1145"></a><tt class="py-lineno">1145</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"&"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1146"></a><tt class="py-lineno">1146</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"fastqfile"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt id="link-71" class="py-name"><a title="core.AnalyseMapping.GetCompletePath" class="py-name" href="#" onclick="return doclink('link-71', 'GetCompletePath', 'link-69');">GetCompletePath</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op [...]
+<a name="L1147"></a><tt class="py-lineno">1147</tt> <tt class="py-line"> <tt class="py-comment"># start sequence for mapper section</tt> </tt>
+<a name="L1148"></a><tt class="py-lineno">1148</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"@"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1149"></a><tt class="py-lineno">1149</tt> <tt class="py-line"> <tt class="py-name">zeile</tt> <tt class="py-op">=</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"\t"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1150"></a><tt class="py-lineno">1150</tt> <tt class="py-line"> <tt class="py-name">mapper</tt> <tt class="py-op">=</tt> <tt class="py-name">zeile</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">:</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">strip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1151"></a><tt class="py-lineno">1151</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"fasta"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-string">"artfasta"</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">artfasta</tt> </tt>
+<a name="L1152"></a><tt class="py-lineno">1152</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"ref"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1153"></a><tt class="py-lineno">1153</tt> <tt class="py-line"> <tt class="py-name">tempref</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-72" class="py-name"><a title="core.AnalyseMapping.GetCompletePath" class="py-name" href="#" onclick="return doclink('link-72', 'GetCompletePath', 'link-69');">GetCompletePath</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">spl [...]
+<a name="L1154"></a><tt class="py-lineno">1154</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"art"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1155"></a><tt class="py-lineno">1155</tt> <tt class="py-line"> <tt class="py-name">temparg</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-73" class="py-name"><a title="core.AnalyseMapping.GetCompletePath" class="py-name" href="#" onclick="return doclink('link-73', 'GetCompletePath', 'link-69');">GetCompletePath</a></tt><tt class="py-op">(</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">spl [...]
+<a name="L1156"></a><tt class="py-lineno">1156</tt> <tt class="py-line"> <tt class="py-comment"># end of mapper section</tt> </tt>
+<a name="L1157"></a><tt class="py-lineno">1157</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">startswith</tt><tt class="py-op">(</tt><tt class="py-string">"+"</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L1158"></a><tt class="py-lineno">1158</tt> <tt class="py-line"> <tt class="py-name">files</tt><tt class="py-op">[</tt><tt class="py-string">"mapper"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">mapper</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">tempref</tt><tt class="py-op">,</tt> <tt class="py-name">temparg</tt><tt class="py-op">]</tt> </tt>
+<a name="L1159"></a><tt class="py-lineno">1159</tt> <tt class="py-line"> <tt class="py-name">tempref</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1160"></a><tt class="py-lineno">1160</tt> <tt class="py-line"> <tt class="py-name">temparg</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L1161"></a><tt class="py-lineno">1161</tt> <tt class="py-line"> </tt>
+<a name="L1162"></a><tt class="py-lineno">1162</tt> <tt class="py-line"> </tt>
+<a name="L1163"></a><tt class="py-lineno">1163</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L1164"></a><tt class="py-lineno">1164</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">files</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1165"></a><tt class="py-lineno">1165</tt> <tt class="py-line"> </tt>
+<a name="GetCompletePath"></a><div id="GetCompletePath-def"><a name="L1166"></a><tt class="py-lineno">1166</tt> <a class="py-toggle" href="#" id="GetCompletePath-toggle" onclick="return toggle('GetCompletePath');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#GetCompletePath">GetCompletePath</a><tt class="py-op">(</tt><tt class="py-param">path</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="GetCompletePath-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="GetCompletePath-expanded"><a name="L1167"></a><tt class="py-lineno">1167</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">path</tt><tt class="py-op">.</tt><tt class="py-name">replace</tt><tt class="py-op">(</tt><tt class="py-string">"~"</tt><tt class="py-op">,</tt><tt class="py-name">os</tt><tt class="py-op">.</tt><tt class="py [...]
+</div><a name="L1168"></a><tt class="py-lineno">1168</tt> <tt class="py-line"> </tt>
+<a name="initOutFiles"></a><div id="initOutFiles-def"><a name="L1169"></a><tt class="py-lineno">1169</tt> <a class="py-toggle" href="#" id="initOutFiles-toggle" onclick="return toggle('initOutFiles');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.AnalyseMapping-module.html#initOutFiles">initOutFiles</a><tt class="py-op">(</tt><tt class="py-param">controlDic</tt><tt class="py-op">,</tt> <tt class="py-param">mapper</tt><tt class="py-op">,</tt> [...]
+</div><div id="initOutFiles-collapsed" style="display:none;" pad="++++" indent="++++"></div><div id="initOutFiles-expanded"><a name="L1170"></a><tt class="py-lineno">1170</tt> <tt class="py-line"> <tt class="py-docstring">"""</tt> </tt>
+<a name="L1171"></a><tt class="py-lineno">1171</tt> <tt class="py-line"><tt class="py-docstring"> Since we append in the program, we need to make sure no old files remain... </tt> </tt>
+<a name="L1172"></a><tt class="py-lineno">1172</tt> <tt class="py-line"><tt class="py-docstring"></tt> </tt>
+<a name="L1173"></a><tt class="py-lineno">1173</tt> <tt class="py-line"><tt class="py-docstring"> @type controlDic: dictionary </tt> </tt>
+<a name="L1174"></a><tt class="py-lineno">1174</tt> <tt class="py-line"><tt class="py-docstring"> @param controlDic: dictionary containing future filenames.</tt> </tt>
+<a name="L1175"></a><tt class="py-lineno">1175</tt> <tt class="py-line"><tt class="py-docstring"> @type mapper: string </tt> </tt>
+<a name="L1176"></a><tt class="py-lineno">1176</tt> <tt class="py-line"><tt class="py-docstring"> @param mapper: current identifier mapper for which the results are written</tt> </tt>
+<a name="L1177"></a><tt class="py-lineno">1177</tt> <tt class="py-line"><tt class="py-docstring"> @type outpath: string</tt> </tt>
+<a name="L1178"></a><tt class="py-lineno">1178</tt> <tt class="py-line"><tt class="py-docstring"> @param outpath: existing path, where the outfiles will be written.</tt> </tt>
+<a name="L1179"></a><tt class="py-lineno">1179</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L1180"></a><tt class="py-lineno">1180</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">artificial</tt> <tt class="py-keyword">in</tt> <tt class="py-name">controlDic</tt><tt class="py-op">[</tt><tt class="py-string">"mapper"</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-name">mapper</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L1181"></a><tt class="py-lineno">1181</tt> <tt class="py-line"> <tt class="py-name">filename</tt> <tt class="py-op">=</tt> <tt class="py-name">artificial</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"/"</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> </tt>
+<a name="L1182"></a><tt class="py-lineno">1182</tt> <tt class="py-line"> <tt class="py-name">outfile</tt> <tt class="py-op">=</tt> <tt class="py-name">mapper</tt> <tt class="py-op">+</tt> <tt class="py-string">"_"</tt> <tt class="py-op">+</tt> <tt class="py-name">artificial</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"/"</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number [...]
+<a name="L1183"></a><tt class="py-lineno">1183</tt> <tt class="py-line"> <tt class="py-comment">#easy Sam output </tt> </tt>
+<a name="L1184"></a><tt class="py-lineno">1184</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outpath</tt> <tt class="py-op">+</tt> <tt class="py-name">outfile</tt><tt class="py-op">,</tt> <tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1185"></a><tt class="py-lineno">1185</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"#ReadID\tMatchedReference\tSubstitutions\tNumberOfMismatches\tReadQuality\tMappingQuality\tStart\tEnd\tGaps\tMisM\r\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L1186"></a><tt class="py-lineno">1186</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L1187"></a><tt class="py-lineno">1187</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.AnalyseMapping.CustomRead-class.html b/doc/core.AnalyseMapping.CustomRead-class.html
new file mode 100644
index 0000000..263b78f
--- /dev/null
+++ b/doc/core.AnalyseMapping.CustomRead-class.html
@@ -0,0 +1,208 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.AnalyseMapping.CustomRead</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ <a href="core.AnalyseMapping-module.html">Module AnalyseMapping</a> ::
+ Class CustomRead
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.AnalyseMapping.CustomRead-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class CustomRead</h1><p class="nomargin-top"><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CustomRead">source code</a></span></p>
+<p>Class for exhaustive reading of the sam alignments.</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">readname</span>,
+ <span class="summary-sig-arg">mr</span>,
+ <span class="summary-sig-arg">nm</span>,
+ <span class="summary-sig-arg">subs</span>,
+ <span class="summary-sig-arg">score</span>,
+ <span class="summary-sig-arg">mq</span>,
+ <span class="summary-sig-arg">start</span>,
+ <span class="summary-sig-arg">end</span>,
+ <span class="summary-sig-arg">gaps</span>,
+ <span class="summary-sig-arg">mism</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CustomRead.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="toObjself"></a><span class="summary-sig-name">toObjself</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">read</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CustomRead.toObjself">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="toStr"></a><span class="summary-sig-name">toStr</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">readname</span>)</span><br />
+ Converts the object to a string</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CustomRead.toStr">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="toStrNoMem"></a><span class="summary-sig-name">toStrNoMem</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">identifier</span>)</span><br />
+ Converts the object to a string</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#CustomRead.toStrNoMem">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.AnalyseMapping.ReadID-class.html b/doc/core.AnalyseMapping.ReadID-class.html
new file mode 100644
index 0000000..38b64e8
--- /dev/null
+++ b/doc/core.AnalyseMapping.ReadID-class.html
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.AnalyseMapping.ReadID</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ <a href="core.AnalyseMapping-module.html">Module AnalyseMapping</a> ::
+ Class ReadID
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.AnalyseMapping.ReadID-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class ReadID</h1><p class="nomargin-top"><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadID">source code</a></span></p>
+<p>Class for efficient addressing for np. arrays!</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">internalID</span>,
+ <span class="summary-sig-arg">quality</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#ReadID.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.AnalyseMapping.TPRead-class.html b/doc/core.AnalyseMapping.TPRead-class.html
new file mode 100644
index 0000000..a14769a
--- /dev/null
+++ b/doc/core.AnalyseMapping.TPRead-class.html
@@ -0,0 +1,203 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.AnalyseMapping.TPRead</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ <a href="core.AnalyseMapping-module.html">Module AnalyseMapping</a> ::
+ Class TPRead
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.AnalyseMapping.TPRead-class.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== CLASS DESCRIPTION ==================== -->
+<h1 class="epydoc">Class TPRead</h1><p class="nomargin-top"><span class="codelink"><a href="core.AnalyseMapping-pysrc.html#TPRead">source code</a></span></p>
+<p>Class for exhaustive reading of the sam alignments. Only for TP</p>
+
+<!-- ==================== INSTANCE METHODS ==================== -->
+<a name="section-InstanceMethods"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Instance Methods</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-InstanceMethods"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="__init__"></a><span class="summary-sig-name">__init__</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">nm</span>,
+ <span class="summary-sig-arg">score</span>,
+ <span class="summary-sig-arg">mq</span>,
+ <span class="summary-sig-arg">start</span>,
+ <span class="summary-sig-arg">end</span>,
+ <span class="summary-sig-arg">gaps</span>,
+ <span class="summary-sig-arg">mism</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#TPRead.__init__">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="toObjself"></a><span class="summary-sig-name">toObjself</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">read</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#TPRead.toObjself">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="toStr"></a><span class="summary-sig-name">toStr</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">readname</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#TPRead.toStr">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="isContained"></a><span class="summary-sig-name">isContained</span>(<span class="summary-sig-arg">self</span>,
+ <span class="summary-sig-arg">read</span>)</span></td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.AnalyseMapping-pysrc.html#TPRead.isContained">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.FindOrfs-module.html b/doc/core.FindOrfs-module.html
new file mode 100644
index 0000000..069dffa
--- /dev/null
+++ b/doc/core.FindOrfs-module.html
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.FindOrfs</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module FindOrfs
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.FindOrfs-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module FindOrfs</h1><p class="nomargin-top"><span class="codelink"><a href="core.FindOrfs-pysrc.html">source code</a></span></p>
+<p>FindOrfs, Created 2012</p>
+ <p>Script to detect start and stop codon of open reading frames in a dna
+ sequence. Note that the algorithm is only rudimentary and does not
+ respect intron-exon structures.</p>
+
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.FindOrfs-module.html#build_ORF" class="summary-sig-name">build_ORF</a>(<span class="summary-sig-arg">sequence</span>,
+ <span class="summary-sig-arg">file_ORF</span>,
+ <span class="summary-sig-arg">pdic</span>)</span><br />
+ Get orf positions (forward/backward) and return them in a dictionary</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.FindOrfs-pysrc.html#build_ORF">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.FindOrfs-module.html#findstop_help" class="summary-sig-name">findstop_help</a>(<span class="summary-sig-arg">posLastStop</span>,
+ <span class="summary-sig-arg">sequence</span>,
+ <span class="summary-sig-arg">codon</span>)</span><br />
+ return the index of the first position of codon in the dna sequence</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.FindOrfs-pysrc.html#findstop_help">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.FindOrfs-module.html#find_orfs" class="summary-sig-name">find_orfs</a>(<span class="summary-sig-arg">genomeSequence</span>,
+ <span class="summary-sig-arg">pdic</span>)</span><br />
+ function to identify open reading frames in a dna sequence, careful:
+ intron exon structures are not respected!</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.FindOrfs-pysrc.html#find_orfs">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="build_ORF"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">build_ORF</span>(<span class="sig-arg">sequence</span>,
+ <span class="sig-arg">file_ORF</span>,
+ <span class="sig-arg">pdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.FindOrfs-pysrc.html#build_ORF">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Get orf positions (forward/backward) and return them in a
+ dictionary</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sequence</code></strong> (string) - nucleotide sequence</li>
+ <li><strong class="pname"><code>file_ORF</code></strong> (string) - outputfile</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Used to start start / end positions of ORFs.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Stored start start / end positions of ORFs</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="findstop_help"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">findstop_help</span>(<span class="sig-arg">posLastStop</span>,
+ <span class="sig-arg">sequence</span>,
+ <span class="sig-arg">codon</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.FindOrfs-pysrc.html#findstop_help">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>return the index of the first position of codon in the dna
+ sequence</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>posLastStop</code></strong> (int) - Position of the last found stop codon.</li>
+ <li><strong class="pname"><code>sequence</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>codon</code></strong> (string) - 3-letter DNA code.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>The position of the stop codon in the nucleotide sequence.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="find_orfs"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">find_orfs</span>(<span class="sig-arg">genomeSequence</span>,
+ <span class="sig-arg">pdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.FindOrfs-pysrc.html#find_orfs">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>function to identify open reading frames in a dna sequence, careful:
+ intron exon structures are not respected!</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>genomeSequence</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Used to store start / end positions of ORFs.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Found start / end positions in the sequence consindering only
+ the ORFs.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.FindOrfs-pysrc.html b/doc/core.FindOrfs-pysrc.html
new file mode 100644
index 0000000..3c125c5
--- /dev/null
+++ b/doc/core.FindOrfs-pysrc.html
@@ -0,0 +1,398 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.FindOrfs</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module FindOrfs
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.FindOrfs-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.FindOrfs-module.html">Module core.FindOrfs</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
</tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line">
</tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line">
</tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">"""
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">FindOrfs, Created 2012
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">Script to detect start and stop codon of open reading frames in a dna sequence. Note that the algorithm is only rudimentary and does not respect intron-exon structures.
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line">
</tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line">
</tt>
+<a name="build_ORF"></a><div id="build_ORF-def"><a name="L12"></a><tt class="py-lineno"> 12</tt> <a class="py-toggle" href="#" id="build_ORF-toggle" onclick="return toggle('build_ORF');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.FindOrfs-module.html#build_ORF">build_ORF</a><tt class="py-op">(</tt><tt class="py-param">sequence</tt><tt class="py-op">,</tt><tt class="py-param">file_ORF</tt><tt class="py-op">,</tt><tt class="py-param">pdic</tt [...]
+</div><div id="build_ORF-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="build_ORF-expanded"><a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring"> Get orf positions (forward/backward) and return them in a dictionary
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring"> @type sequence: string
</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-docstring"> @param sequence: nucleotide sequence
</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-docstring"> @type file_ORF: string
</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring"> @param file_ORF: outputfile
</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring"> @type pdic: dictionary
</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring"> @param pdic: Used to start start / end positions of ORFs.
</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary
</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring"> @return: Stored start start / end positions of ORFs
</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line">
</tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line">
</tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-name">START</tt><tt class="py-op">,</tt><tt class="py-name">STOP</tt><tt class="py-op">,</tt><tt class="py-name">STARTrev</tt><tt class="py-op">,</tt><tt class="py-name">STOPrev</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Function core.FindOrfs.find_orfs()=core.FindOrfs-module.html#find_orfs"><a title="core.FindOrfs.find_orfs" class="py-name" href="#" onclick="return doclink [...]
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">=</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_ORF</tt><tt class="py-op">,</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"\t search forward orfs..."</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-name">orf_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-name">orf_name</tt> <tt class="py-op">=</tt> <tt class="py-string">"forw"</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">START</tt><tt class="py-op">:</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">STOP</tt><tt class="py-op">:</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-comment">#3 conditions</tt>
</tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-comment">#first condition: start position needs to be BEFORE the stop position</tt>
</tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-comment">#second condition: our proteins need to be longer than 150 aa AND need to be smaller than the biggest protein we know</tt>
</tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-comment">#third condition: each ORF needs to give a real aa sequence</tt>
</tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op"><</tt><tt class="py-name">j</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">j</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">-</tt><tt class="py-name">i</tt><tt class="py-op">)</tt><tt class="py-op">></tt><tt class="py-number">149</tt> <tt class="py-keyword">and</tt> < [...]
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">orf_counter</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-comment">#if all 3 conditions: write the ORF in a file</tt>
</tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">">"</tt><tt class="py-op">+</tt><tt class="py-name">orf_name</tt><tt class="py-op">+</tt><tt class="py-string">" "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">orf_counter</tt><tt class="py-op">)</tt><tt class="py-op">)< [...]
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">sequence</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">j</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"S"</tt> <tt class="py-comment"># S = START</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"E"</tt> <tt class="py-comment"># E = END</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line">
</tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">temp</tt> <tt class="py-op">=</tt> <tt class="py-name">orf_counter</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line">
</tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">orf_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">orf_name</tt> <tt class="py-op">=</tt> <tt class="py-string">"rev"</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-string">"\t search backward orfs..."</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">STARTrev</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">STOPrev</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-comment">#3 conditions</tt>
</tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment">#if j<i and (j+2-i+1)>150 and (j+2-i+1)<103050 and (j+2-i+1)%3==0: <--alt</tt>
</tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-comment">#first condition: start position needs to be BEFORE the stop position</tt>
</tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment">#second condition: our proteins need to be longer than 150 aa AND need to be smaller than the biggest protein we know</tt>
</tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment">#third condition: each ORF needs to give a real aa sequence</tt>
</tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">j</tt><tt class="py-op"><</tt><tt class="py-name">i</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">-</tt><tt class="py-name">j</tt><tt class="py-op">)</tt><tt class="py-op">></tt><tt class="py-number">150</tt> <tt class="py-keyword">and</tt> < [...]
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment">#if all 3 conditions: write the ORF in a file</tt>
</tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">orf_counter</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">">"</tt><tt class="py-op">+</tt><tt class="py-name">orf_name</tt><tt class="py-op">+</tt><tt class="py-string">" "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">orf_counter</tt><tt class="py-op">)</tt><tt class="py-op">)< [...]
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">sequence</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">:</tt><tt class="py-op">-</ [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"E"</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">j</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"S"</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">temp</tt><tt class="py-op">+</tt><tt class="py-name">orf_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">t</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line">
</tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">pdic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line">
</tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line">
</tt>
+<a name="findstop_help"></a><div id="findstop_help-def"><a name="L75"></a><tt class="py-lineno"> 75</tt> <a class="py-toggle" href="#" id="findstop_help-toggle" onclick="return toggle('findstop_help');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.FindOrfs-module.html#findstop_help">findstop_help</a><tt class="py-op">(</tt><tt class="py-param">posLastStop</tt><tt class="py-op">,</tt><tt class="py-param">sequence</tt><tt class="py-op">,</tt><t [...]
+</div><div id="findstop_help-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="findstop_help-expanded"><a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> return the index of the first position of codon in the dna sequence
</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> @type posLastStop: int
</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> @param posLastStop: Position of the last found stop codon.
</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @type sequence: string
</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @param sequence: Nucleotide sequence.
</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @type codon: string
</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> @param codon: 3-letter DNA code.
</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: int
</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> @return: The position of the stop codon in the nucleotide sequence.
</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">sequence</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-name">codon</tt><tt class="py-op">,</tt><tt class="py-name">posLastStop</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line">
</tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line">
</tt>
+<a name="find_orfs"></a><div id="find_orfs-def"><a name="L94"></a><tt class="py-lineno"> 94</tt> <a class="py-toggle" href="#" id="find_orfs-toggle" onclick="return toggle('find_orfs');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.FindOrfs-module.html#find_orfs">find_orfs</a><tt class="py-op">(</tt><tt class="py-param">genomeSequence</tt><tt class="py-op">,</tt><tt class="py-param">pdic</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="find_orfs-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="find_orfs-expanded"><a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"><tt class="py-docstring"> function to identify open reading frames in a dna sequence, careful: intron exon structures are not respected!
</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"><tt class="py-docstring"> @type genomeSequence: string
</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"><tt class="py-docstring"> @param genomeSequence: Nucleotide sequence.
</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"><tt class="py-docstring"> @type pdic: dictionary
</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> @param pdic: Used to store start / end positions of ORFs.
</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary
</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> @return: Found start / end positions in the sequence consindering only the ORFs.
</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-comment"># got a dictionary and a sequence! lets start!</tt>
</tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-comment"># Startcodon = ATG</tt>
</tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment"># Stopcodon = ["TAA","TGA","TAG"]</tt>
</tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line">
</tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line">
</tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"> <tt class="py-name">stop</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line">
</tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">posLastATG</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-name">posLastStop</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-name">orfList</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line">
</tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-comment"># forward</tt>
</tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\t..find forward orfs"</tt><tt class="py-op">)</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">foundNew</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-comment"># catch error if "ATG" not found!</tt>
</tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line">
</tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">genomeSequence</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">"ATG"</tt><tt class="py-op">,</tt><tt class="py-name">posLastATG</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-comment"># retrieve last element</tt>
</tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">posLastATG</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">foundNew</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line">
</tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-name">stopcodons</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">"TAA"</tt><tt class="py-op">,</tt><tt class="py-string">"TGA"</tt><tt class="py-op">,</tt><tt class="py-string">"TAG"</tt><tt class="py-op">]</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stopcodons</tt><tt class="py-op">:</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-1" class="py-name" targets="Function core.FindOrfs.findstop_help()=core.FindOrfs-module.html#findstop_help"><a title="core.FindOrfs.findstop_help" class="py-name" href="#" onclick="return doclink('link-1', 'findstop_help', 'link-1');">findstop_help</a></tt><tt class="py-op">(</tt><tt [...]
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line">
</tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line">
</tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">stop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">posLastStop</tt> <tt class="py-op">=</tt> <tt class="py-name">stop</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">foundNew</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line">
</tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-name">stop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-name">posLastStop</tt> <tt class="py-op">=</tt> <tt class="py-name">stop</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">foundNew</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">;</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line">
</tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">stop</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">;</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">posLastStop</tt> <tt class="py-op">=</tt> <tt class="py-name">stop</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">foundNew</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt><tt class="py-op">;</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line">
</tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">foundNew</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line">
</tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-comment"># reverse now:</tt>
</tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-comment"># start codon: CAT</tt>
</tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-comment"># stop codons: TTA;TCA;CTA </tt>
</tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line">
</tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">startRev</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">stopRev</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line">
</tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">posLastCAT</tt> <tt class="py-op">=</tt> <tt class="py-number">3</tt> </tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-name">posLastStop_rev</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line">
</tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\t..find reverse orfs"</tt><tt class="py-op">)</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">foundNew_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-comment"># catch error if "CAT" not found!</tt>
</tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-keyword">try</tt><tt class="py-op">:</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line">
</tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">startRev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">genomeSequence</tt><tt class="py-op">.</tt><tt class="py-name">index</tt><tt class="py-op">(</tt><tt class="py-string">"CAT"</tt><tt class="py-op">,</tt><tt class="py-name">posLastCAT</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-comment"># retrieve last element</tt>
</tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">posLastCAT</tt> <tt class="py-op">=</tt> <tt class="py-name">startRev</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">foundNew_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-keyword">except</tt><tt class="py-op">:</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line">
</tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">stopcodons</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-string">"TTA"</tt><tt class="py-op">,</tt><tt class="py-string">"TCA"</tt><tt class="py-op">,</tt><tt class="py-string">"CTA"</tt><tt class="py-op">]</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stopcodons</tt><tt class="py-op">:</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt id="link-2" class="py-name"><a title="core.FindOrfs.findstop_help" class="py-name" href="#" onclick="return doclink('link-2', 'findstop_help', 'link-1');">findstop_help</a></tt><tt class="py-op">(</tt><tt class="py-name">posLastStop_rev</tt><tt class="py-op">,</tt> <tt class="py-name">geno [...]
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line">
</tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-name">stopSub</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line">
</tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">stopRev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">posLastStop_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">stopRev</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">foundNew_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line">
</tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">stopRev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-name">posLastStop_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">stopRev</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">foundNew_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line">
</tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line">
</tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-op">></tt> <tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line"> <tt class="py-name">stopRev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopSub</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-name">posLastStop_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">stopRev</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">foundNew_rev</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line">
</tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line">
</tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">foundNew_rev</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-comment">###test##################</tt>
</tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"START codons : "</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"STOP codons : "</tt> <tt class="py-op">+</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">stop</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"revSTART codons : "</tt> <tt class="py-op">+</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">startRev</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"revSTOP codons : "</tt> <tt class="py-op">+</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">stopRev</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line">
</tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line">
</tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-comment"># FORWARD</tt>
</tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-comment">#vectors are filled, now test if in the same frame</tt>
</tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-comment"># stores start positions without a suitable Stop in frame</tt>
</tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">removeList</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\t..creating forward orfs"</tt><tt class="py-op">)</tt> </tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">stopPos</tt> <tt class="py-keyword">in</tt> <tt class="py-name">stop</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">foundPartner</tt><tt class="py-op">=</tt><tt class="py-name">False</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">startPos</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">startPos</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-comment">#= start[i]</tt>
</tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">while</tt> <tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op"><</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">start</tt><tt class [...]
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">startPos</tt> <tt class="py-op">=</tt> <tt class="py-name">start</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">i</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">stopPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">-</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt><tt class="py-op">%</tt> <tt class="py-number">3</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-comment">#Orf found in frame</tt>
</tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">foundPartner</tt> <tt class="py-op">==</tt> <tt class="py-name">False</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">stopPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-na [...]
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-comment">#found first matching AT (first ORF+ORF is at least 150bp long</tt>
</tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">foundPartner</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">stopPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"E"</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">startPos</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"S"</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">orfList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">orfList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">removeList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">removeList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">removeList</tt><tt class="py-op">:</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-comment"># remove all positions of ATGS leading to "sub-ORFs"</tt>
</tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">removeList</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line">
</tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line">
</tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-comment"># BACKWARD</tt>
</tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\t..creating reverse orfs"</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line"> <tt class="py-name">removeList_rev</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-name">l</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">stopRev</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line">
</tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">r</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">l</tt><tt class="py-op">,</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt><tt class="py-comment">#</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">stopPos</tt> <tt class="py-op">=</tt> <tt class="py-name">stopRev</tt><tt class="py-op">[</tt><tt class="py-name">r</tt><tt class="py-op">]</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">foundPartner</tt><tt class="py-op">=</tt><tt class="py-name">False</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line">
</tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line">
</tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line">
</tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">startRev</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">1</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line">
</tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line">
</tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">while</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">i</tt> <tt class="py-op">>=</tt><tt class="py-number">0</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">startRev</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">></tt><tt class="py-name">stopPos</tt><t [...]
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-name">startPos</tt><tt class="py-op">=</tt><tt class="py-name">startRev</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-name">i</tt> <tt class="py-op">-=</tt><tt class="py-number">1</tt> </tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">-</tt><tt class="py-name">stopPos</tt><tt class="py-op">)</tt><tt class="py-op">%</tt><tt class="py-number">3</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-comment"># found ORF in frame</tt>
</tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">foundPartner</tt> <tt class="py-op">!=</tt> <tt class="py-name">True</tt><tt class="py-op">)</tt> <tt class="py-keyword">and</tt> <tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">-</tt><tt class="py-name">stopPos</tt> <tt class=" [...]
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-comment">#found first matching ATG + ORF is at least 150bp long</tt>
</tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">stopPos</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"S"</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">startPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"E"</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">foundPartner</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">orfList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">orfList</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">stopPos</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">removeList_rev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">removeList_rev</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">startPos</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line">
</tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">removeList_rev</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-comment"># remove all positions of ATGS leading to "sub-ORFs"</tt>
</tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">startRev</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">removeList_rev</tt> <tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line">
</tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">pdic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.InsertMutations-module.html b/doc/core.InsertMutations-module.html
new file mode 100644
index 0000000..02190b7
--- /dev/null
+++ b/doc/core.InsertMutations-module.html
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.InsertMutations</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module InsertMutations
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.InsertMutations-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module InsertMutations</h1><p class="nomargin-top"><span class="codelink"><a href="core.InsertMutations-pysrc.html">source code</a></span></p>
+<p>Created 2012 core Script for the generation of the artificial
+ reference genome</p>
+ <p>The functions purpose is to to go through a list of positions and find
+ balanced mutations which fulfill the demands on the artificial reference
+ genome. Once a initial start positions is randomly selected all possible
+ triplets with hamming distance 1 are generated and looked up in a
+ dictionary which contains all triplet positions in the input genome. If a
+ suitable partner is found for the initial mutation the next start
+ positions is chosen randomly. Else: try all other triplets with hamming
+ distance 1 until no one is left. This process can be accelerated by
+ allowing unbalanced mutations, but this will cause differences in the
+ NUC/AA distribution and the AA neighborhood.</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list,list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.InsertMutations-module.html#getMutation" class="summary-sig-name">getMutation</a>(<span class="summary-sig-arg">AA</span>,
+ <span class="summary-sig-arg">Codon</span>)</span><br />
+ Returns a random mutation for a given AA and its Codon(DNA).</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.InsertMutations-pysrc.html#getMutation">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Char,Char,int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.InsertMutations-module.html#getdifference" class="summary-sig-name">getdifference</a>(<span class="summary-sig-arg">triplet_old</span>,
+ <span class="summary-sig-arg">triplet_new</span>)</span><br />
+ Given two triplets, returns the differences between them plus the
+ position</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.InsertMutations-pysrc.html#getdifference">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.InsertMutations-module.html#isvalidposition" class="summary-sig-name">isvalidposition</a>(<span class="summary-sig-arg">pdic</span>,
+ <span class="summary-sig-arg">iprime</span>,
+ <span class="summary-sig-arg">distance</span>)</span><br />
+ Checks if a position is valid for mutation.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.InsertMutations-pysrc.html#isvalidposition">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.InsertMutations-module.html#mutate_random" class="summary-sig-name">mutate_random</a>(<span class="summary-sig-arg">DNA</span>,
+ <span class="summary-sig-arg">AminoAcid</span>,
+ <span class="summary-sig-arg">distance</span>,
+ <span class="summary-sig-arg">pdic</span>,
+ <span class="summary-sig-arg">rev</span>,
+ <span class="summary-sig-arg">header</span>,
+ <span class="summary-sig-arg">Random</span>,
+ <span class="summary-sig-arg">outputpath</span>)</span><br />
+ Mutates a given DNA(AminoAcid) Genomesequence on several positions
+ (distance based on DISTANCE var.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.InsertMutations-pysrc.html#mutate_random">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="getMutation"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getMutation</span>(<span class="sig-arg">AA</span>,
+ <span class="sig-arg">Codon</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.InsertMutations-pysrc.html#getMutation">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Returns a random mutation for a given AA and its Codon(DNA). The
+ mutation is done in a way which supports the equilibrium of the
+ nucleotide distribution by only regarding hamming distance=1 Codons as
+ possible mutations</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>AA</code></strong> (string) - Single AA.</li>
+ <li><strong class="pname"><code>Codon</code></strong> (string) - 3-letter dna code.</li>
+ </ul></dd>
+ <dt>Returns: list,list</dt>
+ <dd>A list of all valid mutations (triplet) and the coresponding AA.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getdifference"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getdifference</span>(<span class="sig-arg">triplet_old</span>,
+ <span class="sig-arg">triplet_new</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.InsertMutations-pysrc.html#getdifference">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Given two triplets, returns the differences between them plus the
+ position</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>triplet_old</code></strong> (string) - AA triplet.</li>
+ <li><strong class="pname"><code>triplet_new</code></strong> (string) - AA triplet.</li>
+ </ul></dd>
+ <dt>Returns: Char,Char,int</dt>
+ <dd>The new aminoacid, the old aminoacid and the position.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="isvalidposition"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">isvalidposition</span>(<span class="sig-arg">pdic</span>,
+ <span class="sig-arg">iprime</span>,
+ <span class="sig-arg">distance</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.InsertMutations-pysrc.html#isvalidposition">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Checks if a position is valid for mutation. It queries all neighboring
+ positions (iprime +-distance) to check whether there already was a
+ mutation in pdic</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Diciontary containing mutations and start/ stop codons..</li>
+ <li><strong class="pname"><code>iprime</code></strong> (int) - Position of the prospective mutation (DNA level)</li>
+ <li><strong class="pname"><code>distance</code></strong> (int) - User defined parameter which limits the distance between two
+ mutations.</li>
+ </ul></dd>
+ <dt>Returns: Bool</dt>
+ <dd>Boolean which decides if the position is valid (1= yes,0 = no)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mutate_random"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">mutate_random</span>(<span class="sig-arg">DNA</span>,
+ <span class="sig-arg">AminoAcid</span>,
+ <span class="sig-arg">distance</span>,
+ <span class="sig-arg">pdic</span>,
+ <span class="sig-arg">rev</span>,
+ <span class="sig-arg">header</span>,
+ <span class="sig-arg">Random</span>,
+ <span class="sig-arg">outputpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.InsertMutations-pysrc.html#mutate_random">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Mutates a given DNA(AminoAcid) Genomesequence on several positions
+ (distance based on DISTANCE var. If one mutation is done a compareable
+ Triplet is searched to "reverse" the changes made in AA
+ distribution, N distribution, AA neighborhood</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>DNA</code></strong> (list) - DNA sequence of the reference genome.</li>
+ <li><strong class="pname"><code>AminoAcid</code></strong> (list) - AA sequence of the reference genome.</li>
+ <li><strong class="pname"><code>rev</code></strong> (Bool) - Boolean which decides if unbalanced mutations are allowed (only
+ initial mutation is performed)</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Diciontary containing mutations and start/ stop codons..</li>
+ <li><strong class="pname"><code>header</code></strong> (string) - Header for the resulting artificial reference file (fasta
+ format).</li>
+ <li><strong class="pname"><code>Random</code></strong> (Bool) - Boolean for choosing on of the mutation modes (linear = 0,random
+ = 1)</li>
+ <li><strong class="pname"><code>distance</code></strong> (int) - User defined parameter which limits the distance between two
+ mutations.</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>Artificial reference genome sequence.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.InsertMutations-pysrc.html b/doc/core.InsertMutations-pysrc.html
new file mode 100644
index 0000000..b331b2c
--- /dev/null
+++ b/doc/core.InsertMutations-pysrc.html
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.InsertMutations</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module InsertMutations
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.InsertMutations-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.InsertMutations-module.html">Module core.InsertMutations</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
</tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">"""
</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">Created 2012
</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">core Script for the generation of the artificial reference genome
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">The functions purpose is to to go through a list of positions and find balanced mutations
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">which fulfill the demands on the artificial reference genome. Once a initial start positions is
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">randomly selected all possible triplets with hamming distance 1 are generated and looked up
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">in a dictionary which contains all triplet positions in the input genome. If a suitable partner
</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-docstring">is found for the initial mutation the next start positions is chosen randomly. Else: try all other
</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-docstring">triplets with hamming distance 1 until no one is left. This process can be accelerated by allowing
</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-docstring">unbalanced mutations, but this will cause differences in the NUC/AA distribution and the AA neighborhood.
</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring">@author: Sven Giese
</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line">
</tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> <tt class="py-keyword">as</tt> <tt class="py-name">r</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt id="link-0" class="py-name" targets="Module core.Prep=core.Prep-module.html"><a title="core.Prep" class="py-name" href="#" onclick="return doclink('link-0', 'Prep', 'link-0');">Prep</a></tt> <tt class="py-keyword">as</tt> <tt class="py-name">INI</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line">
</tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line">
</tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line">
</tt>
+<a name="getMutation"></a><div id="getMutation-def"><a name="L23"></a><tt class="py-lineno"> 23</tt> <a class="py-toggle" href="#" id="getMutation-toggle" onclick="return toggle('getMutation');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.InsertMutations-module.html#getMutation">getMutation</a><tt class="py-op">(</tt><tt class="py-param">AA</tt><tt class="py-op">,</tt><tt class="py-param">Codon</tt><tt class="py-op">)</tt><tt class="py-op">: [...]
+</div><div id="getMutation-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="getMutation-expanded"><a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-docstring"> Returns a random mutation for a given AA and its Codon(DNA). The mutation is done in a way which supports the equilibrium
</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-docstring"> of the nucleotide distribution by only regarding hamming distance=1 Codons as possible mutations
</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"> @type AA: string
</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> @param AA: Single AA.
</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> @type Codon: string
</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> @param Codon: 3-letter dna code.
</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list,list
</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring"> @return: A list of all valid mutations (triplet) and the coresponding AA.
</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-name">temp_mutationlist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-string">'''create a list of possible triplets within hamming distance 1 '''</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Variable core.Prep.genetic_code=core.Prep-module.html#genetic_code"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-1', 'genetic_code', 'link-1');">genetic_code</a></tt><tt class="py-op">.</t [...]
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">isvalid</tt> <tt class="py-op">=</tt> <tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-2" class="py-name" targets="Function core.Prep.isvalidtriplet()=core.Prep-module.html#isvalidtriplet"><a title="core.Prep.isvalidtriplet" class="py-name" href="#" onclick="return doclink('link-2', 'isvalidtriplet', 'link-2');">isvalidtriplet</a></tt><tt class="py-op">(</tt><tt class="py-nam [...]
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-string">''' Hamming distance 1, AA is not equal to the given AA,forbid mutation to stopcodon '''</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">isvalid</tt> <tt class="py-op">==</tt> <tt class="py-name">True</tt> <tt class="py-keyword">and</tt> <tt class="py-name">AA</tt> <tt class="py-op">!=</tt><tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-3" class="py-name"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-3', 'genetic [...]
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-name">temp_mutationlist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">item</tt><tt class="py-op">)</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line">
</tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line">
</tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">aalist</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-comment"># generate a list of all possible amino acids resulting from the temp_mutationlist </tt>
</tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">temp_mutationlist</tt><tt class="py-op">:</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-5', 'genetic_code', 'link-1');">genetic_code</a></tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"> <tt class="py-name">aalist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-6', 'genetic_code', 'link-1');">genetic_code</a></tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</ [...]
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">aalist</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-string">"n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line">
</tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">temp_mutationlist</tt><tt class="py-op">,</tt><tt class="py-name">aalist</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line">
</tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line">
</tt>
+<a name="getdifference"></a><div id="getdifference-def"><a name="L55"></a><tt class="py-lineno"> 55</tt> <a class="py-toggle" href="#" id="getdifference-toggle" onclick="return toggle('getdifference');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.InsertMutations-module.html#getdifference">getdifference</a><tt class="py-op">(</tt><tt class="py-param">triplet_old</tt><tt class="py-op">,</tt><tt class="py-param">triplet_new</tt><tt class="py-op [...]
+</div><div id="getdifference-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="getdifference-expanded"><a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> Given two triplets, returns the differences between them plus the position
</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"><tt class="py-docstring"> @type triplet_old: string
</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"><tt class="py-docstring"> @param triplet_old: AA triplet.
</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"><tt class="py-docstring"> @type triplet_new: string
</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"><tt class="py-docstring"> @param triplet_new: AA triplet.
</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Char,Char,int
</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"><tt class="py-docstring"> @return: The new aminoacid, the old aminoacid and the position.
</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">triplet_new</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">!=</tt><tt class="py-name">triplet_old</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line">
</tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">triplet_new</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">triplet_old</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line">
</tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line">
</tt>
+<a name="isvalidposition"></a><div id="isvalidposition-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="isvalidposition-toggle" onclick="return toggle('isvalidposition');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.InsertMutations-module.html#isvalidposition">isvalidposition</a><tt class="py-op">(</tt><tt class="py-param">pdic</tt><tt class="py-op">,</tt><tt class="py-param">iprime</tt><tt class="py-op [...]
+</div><div id="isvalidposition-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="isvalidposition-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> Checks if a position is valid for mutation. It queries all neighboring positions (iprime +-distance) to check whether there already was a mutation in pdic
</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> @type pdic: dictionary
</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> @param pdic: Diciontary containing mutations and start/ stop codons..
</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> @type iprime: int
</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> @param iprime: Position of the prospective mutation (DNA level)
</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> @type distance: int
</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @param distance: User defined parameter which limits the distance between two mutations.
</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: Bool
</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @return: Boolean which decides if the position is valid (1= yes,0 = no)
</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line">
</tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-comment"># deal with base shifts </tt>
</tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">distance</tt> <tt class="py-op">=</tt> <tt class="py-name">distance</tt><tt class="py-op">-</tt><tt class="py-number">2</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line">
</tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">istforbidden</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">o</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-op">-</tt><tt class="py-name">distance</tt><tt class="py-op">,</tt><tt class="py-name">distance</tt><tt class="py-op">+</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">o</tt> <tt class="py-keyword">in</tt> <tt class="py-name">pdic</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-comment"># E = end of orf</tt>
</tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-comment"># S = start of orf</tt>
</tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">o</tt><tt class="py-op">]</tt><tt class="py-op">==</tt><tt class="py-string">"E"</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">pdic</tt><tt class= [...]
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">o</tt> <tt class="py-op">></tt><tt class="py-number">3</tt><tt class="py-op">)</tt> <tt class="py-keyword">or</tt> <tt class="py-op">(</tt><tt class="py-name">o</tt> <tt class="py-op"><</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="p [...]
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">istforbidden</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-name">istforbidden</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line">
</tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">istforbidden</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line">
</tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line">
</tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line">
</tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line">
</tt>
+<a name="mutate_random"></a><div id="mutate_random-def"><a name="L111"></a><tt class="py-lineno">111</tt> <a class="py-toggle" href="#" id="mutate_random-toggle" onclick="return toggle('mutate_random');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.InsertMutations-module.html#mutate_random">mutate_random</a><tt class="py-op">(</tt><tt class="py-param">DNA</tt><tt class="py-op">,</tt><tt class="py-param">AminoAcid</tt><tt class="py-op">,</tt>< [...]
+</div><div id="mutate_random-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="mutate_random-expanded"><a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> Mutates a given DNA(AminoAcid) Genomesequence on several positions (distance based on DISTANCE var. If one mutation is done
</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> a compareable Triplet is searched to "reverse" the changes made in AA distribution, N distribution, AA neighborhood
</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> @type DNA: list
</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> @param DNA: DNA sequence of the reference genome.
</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"><tt class="py-docstring"> @type AminoAcid: list
</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"><tt class="py-docstring"> @param AminoAcid: AA sequence of the reference genome.
</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"><tt class="py-docstring"> @type rev: Bool
</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"><tt class="py-docstring"> @param rev: Boolean which decides if unbalanced mutations are allowed (only initial mutation is performed)
</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"><tt class="py-docstring"> @type pdic: dictionary
</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"><tt class="py-docstring"> @param pdic: Diciontary containing mutations and start/ stop codons..
</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"><tt class="py-docstring"> @type header: string
</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"><tt class="py-docstring"> @param header: Header for the resulting artificial reference file (fasta format).
</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"><tt class="py-docstring"> @type Random: Bool
</tt> </tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"><tt class="py-docstring"> @param Random: Boolean for choosing on of the mutation modes (linear = 0,random = 1)
</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"><tt class="py-docstring"> @type distance: int
</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"><tt class="py-docstring"> @param distance: User defined parameter which limits the distance between two mutations.
</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: list
</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"><tt class="py-docstring"> @return: Artificial reference genome sequence.
</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-comment">##debug vals </tt>
</tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># list of start positions of mutations ( start means first mutation in balanced case)</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">both</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> <tt class="py-comment"># start and end position</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputpath</tt><tt class="py-op">+</tt><tt class="py-name">header</tt><tt class="py-op">+</tt><tt class="py-string">"_CompleteLog.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"BalancedMutation"</tt><tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-string">"NewAA"</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class="py-op">+</tt> <tt class="py-string">"OldAA"</tt><tt class="py-op">+</tt><tt cl [...]
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line">
</tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line">
</tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-comment"># generate start positions for mutation (the samplespace)</tt>
</tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"> <tt class="py-name">samplespace</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt> <tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">AminoAcid</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">distance</tt><tt class="py-op">/</tt><tt class="py-number">3</ [...]
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-name">samplespace</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">)</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line">
</tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line">
</tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-comment">##random_modification</tt>
</tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">Random</tt> <tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"> <tt class="py-name">r</tt><tt class="py-op">.</tt><tt class="py-name">shuffle</tt><tt class="py-op">(</tt><tt class="py-name">samplespace</tt><tt class="py-op">)</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line">
</tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"> <tt class="py-name">dna_list</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">AminoAcid_list</tt> <tt class="py-op">=</tt> <tt class="py-name">list</tt><tt class="py-op">(</tt><tt class="py-name">AminoAcid</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line">
</tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-string">'''the lookup dictionary for the aa triplets '''</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">lookup_dic</tt> <tt class="py-op">=</tt> <tt class="py-name">INI</tt><tt class="py-op">.</tt><tt id="link-7" class="py-name" targets="Function core.Prep.createdic()=core.Prep-module.html#createdic"><a title="core.Prep.createdic" class="py-name" href="#" onclick="return doclink('link-7', 'createdic', 'link-7');">createdic</a></tt><tt class="py-op">(</tt><tt class="py-name">AminoAcid</tt><tt [...]
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line">
</tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-comment">#gotit indicator if a possibility was found to revert the initial changes (start of mutation)</tt>
</tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">gotit</tt><tt class="py-op">=</tt><tt class="py-name">False</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-comment"># stat variables</tt>
</tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">succ_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">fail_counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">skip</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line">
</tt>
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line"> <tt class="py-string">''' Main loop over the AminoAcid'''</tt> </tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">samplespace</tt><tt class="py-op">:</tt> </tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-string">''' no triplet left --> break '''</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">2</tt> <tt class="py-op">></tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">AminoAcid</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\t(finished...exceeded length of AA)"</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line">
</tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-string">''' AA which is going to be mutated'''</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">AA</tt> <tt class="py-op">=</tt> <tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line">
</tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-string">'''index for dna : i*3 --> AminoAcid --> DNA
</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-string"> #not i*3+3 because i starts at AA 2 since we need a right and left neighbor'''</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">iprime</tt> <tt class="py-op">=</tt> <tt class="py-name">i</tt><tt class="py-op">*</tt><tt class="py-number">3</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line">
</tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-string">'''AA and corresponding DNA triplet for the middle AA '''</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">AA_triplet</tt><tt class="py-op">=</tt> <tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">Ami [...]
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">DNA_triplet</tt> <tt class="py-op">=</tt> <tt class="py-name">DNA</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">:</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line">
</tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-comment"># get temporary list of all mutations. Iterate over it to find best possible substitution</tt>
</tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">mutationsliste</tt><tt class="py-op">,</tt><tt class="py-name">aaliste</tt> <tt class="py-op">=</tt> <tt id="link-8" class="py-name" targets="Function core.InsertMutations.getMutation()=core.InsertMutations-module.html#getMutation"><a title="core.InsertMutations.getMutation" class="py-name" href="#" onclick="return doclink('link-8', 'getMutation', 'link-8');">getMutation</a></tt><tt cla [...]
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line">
</tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line">
</tt>
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-comment"># isvalidposition returns 1 if the position isforbidden, else 0</tt>
</tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-9" class="py-name" targets="Function core.InsertMutations.isvalidposition()=core.InsertMutations-module.html#isvalidposition"><a title="core.InsertMutations.isvalidposition" class="py-name" href="#" onclick="return doclink('link-9', 'isvalidposition', 'link-9');">isvalidposition</a></tt><tt class="py-op">(</tt><tt class="py-name">pdic</tt>< [...]
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">val</tt> <tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-name">skip</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputpath</tt><tt class="py-op">+</tt><tt class="py-name">header</tt><tt class="py-op">+</tt><tt class="py-string">"_CompleteLog.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-name">new_AA_triplet</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class="py-op" [...]
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line">
</tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line">
</tt>
+<a name="L200"></a><tt class="py-lineno">200</tt> <tt class="py-line">
</tt>
+<a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">q</tt><tt class="py-op">,</tt><tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">enumerate</tt><tt class="py-op">(</tt><tt class="py-name">mutationsliste</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line">
</tt>
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">gotit</tt><tt class="py-op">==</tt><tt class="py-name">True</tt><tt class="py-op">:</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line">
</tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-string">''' old and new variables for before/after the mutation '''</tt> </tt>
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-name">new_triplet</tt> <tt class="py-op">=</tt> <tt class="py-name">mutationsliste</tt><tt class="py-op">[</tt><tt class="py-name">q</tt><tt class="py-op">]</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">new_AA</tt> <tt class="py-op">=</tt> <tt class="py-name">aaliste</tt><tt class="py-op">[</tt><tt class="py-name">q</tt><tt class="py-op">]</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">new_N</tt><tt class="py-op">,</tt><tt class="py-name">old_N</tt><tt class="py-op">,</tt><tt class="py-name">position</tt> <tt class="py-op">=</tt> <tt id="link-10" class="py-name" targets="Function core.InsertMutations.getdifference()=core.InsertMutations-module.html#getdifference"><a title="core.InsertMutations.getdifference" class="py-name" href="#" onclick="return doclink( [...]
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line"> <tt class="py-name">new_AA_triplet</tt> <tt class="py-op">=</tt> <tt class="py-name">AA_triplet</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">new_AA</tt><tt class="py-op">+</tt><tt class="py-name">AA_triplet</tt><tt class="py-op">[</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-name">tempdic</tt> <tt class="py-op">=</tt> <tt class="py-name">pdic</tt> </tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">tempdic</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"M"</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line">
</tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">new_AA_triplet</tt> <tt class="py-keyword">in</tt> <tt class="py-name">lookup_dic</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line"> <tt class="py-string">'''templist--> contains all starting positions of the "new_AA_triplet" which we want to substitute back '''</tt> </tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line"> <tt class="py-name">templist</tt> <tt class="py-op">=</tt> <tt class="py-name">lookup_dic</tt><tt class="py-op">[</tt><tt class="py-name">new_AA_triplet</tt><tt class="py-op">]</tt> </tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line">
</tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line">
</tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-comment"># add potential mutation to dictionary</tt>
</tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">tempposition</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">,</tt><tt class="py-string">"M"</tt><tt class="py-op">]</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">templist</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-name">posi</tt> <tt class="py-op">=</tt> <tt class="py-name">templist</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class="py-op">]</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-comment"># i*3 --> protein nach DNA, +3 betrachten IMMER mittlere AA</tt>
</tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-string">''' suitable dna position found? '''</tt> </tt>
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">new_triplet</tt> <tt class="py-op">==</tt> <tt class="py-name">dna_list</tt><tt class="py-op">[</tt><tt class="py-name">posi</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">dna_list</tt><tt clas [...]
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-name">val</tt> <tt class="py-op">=</tt> <tt id="link-11" class="py-name"><a title="core.InsertMutations.isvalidposition" class="py-name" href="#" onclick="return doclink('link-11', 'isvalidposition', 'link-9');">isvalidposition</a></tt><tt class="py-op">(</tt><tt class="py-name">tempdic</tt><tt class="py-op">,</tt> <tt class="py-name">posi</tt><tt class="py-op">*</tt><tt class [...]
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line">
</tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">val</tt> <tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">skip</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line">
</tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-string">'''back substitution & do subs on 1st position'''</tt> </tt>
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">posi</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"R"</tt> </tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-name">dna_list</tt><tt class="py-op">[</tt><tt class="py-name">posi</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">old_N</tt> </tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line">
</tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"M"</tt> </tt>
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">dna_list</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">new_N</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line">
</tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">new_AA</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">posi</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">AA</tt> </tt>
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line">
</tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">gotit</tt> <tt class="py-op">=</tt> <tt class="py-name">True</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">succ_counter</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-comment">#lookup_dic[new_AA_triplet] = [i for i in lookup_dic[new_AA_triplet] if i!=posi]</tt>
</tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">lookup_dic</tt><tt class="py-op">[</tt><tt class="py-name">new_AA_triplet</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">remove</tt><tt class="py-op">(</tt><tt class="py-name">posi</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line">
</tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line"> <tt class="py-string">'''writing the log file '''</tt> </tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputpath</tt><tt class="py-op">+</tt><tt class="py-name">header</tt><tt class="py-op">+</tt><tt class="py-string">"_CompleteLog.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-name">AA_triplet</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class= [...]
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line">
</tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-comment">## statistics</tt>
</tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">)</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line"> <tt class="py-name">both</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">,</tt><tt class="py-name">posi</tt><tt class="py-op">*</tt><tt class="py-number">3</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op [...]
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line">
</tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-comment"># no possible triplet positions for back substitution in lookup_dic </tt>
</tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line">
</tt>
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-comment"># after loop </tt>
</tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">gotit</tt><tt class="py-op">==</tt><tt class="py-name">False</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputpath</tt><tt class="py-op">+</tt><tt class="py-name">header</tt><tt class="py-op">+</tt><tt class="py-string">"_CompleteLog.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"a"</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-name">new_AA_triplet</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class="py-op" [...]
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line"> <tt class="py-name">fobj2</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">fail_counter</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-comment"># reverse substitutions on? (=1) off (=0). If one dont change first mutation in the first place. Else: just change it.. </tt>
</tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rev</tt><tt class="py-op">==</tt><tt class="py-number">0</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">pdic</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-string">"M"</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">dna_list</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">new_N</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">AminoAcid_list</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">=</tt> <tt class="py-name">new_AA</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">start</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line"> <tt class="py-name">both</tt><tt class="py-op">.</tt><tt class="py-name">extend</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">iprime</tt><tt class="py-op">+</tt><tt class="py-name">position</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-keyword">elif</tt> <tt class="py-op">(</tt><tt class="py-name">gotit</tt><tt class="py-op">==</tt><tt class="py-name">True</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">gotit</tt> <tt class="py-op">=</tt> <tt class="py-name">False</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line">
</tt>
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-comment"># stats (INI.savepickle(pdic,header+"_pdic_e"))</tt>
</tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"\r\n########Some stats:########"</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"DNA length:\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"max substitutions:\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">distance</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"#Balanced Mutations:\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">succ_counter</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line">
</tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line">
</tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">dna_list</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.Mem-module.html b/doc/core.Mem-module.html
new file mode 100644
index 0000000..a3118b8
--- /dev/null
+++ b/doc/core.Mem-module.html
@@ -0,0 +1,285 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.Mem</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module Mem
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.Mem-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module Mem</h1><p class="nomargin-top"><span class="codelink"><a href="core.Mem-pysrc.html">source code</a></span></p>
+<p>Created 2012</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ GieseS
+ <p>Little plotting script which is called in the analysis of
+ different mappings to an artificial reference genome. It produces
+ the following plots:</p>
+ <p>1) ROC Curve 2) Overview histograms for FP / TP.</p>
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">array</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.Mem-module.html#ReadReferenceSAMfile" class="summary-sig-name">ReadReferenceSAMfile</a>(<span class="summary-sig-arg">ref</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">readdic</span>,
+ <span class="summary-sig-arg">entries</span>)</span><br />
+ Function for reading a complete ReferenceFile into Memory.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.Mem-pysrc.html#ReadReferenceSAMfile">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.Mem-module.html#ReadArtificialSAMfile" class="summary-sig-name">ReadArtificialSAMfile</a>(<span class="summary-sig-arg">art</span>,
+ <span class="summary-sig-arg">compareList</span>,
+ <span class="summary-sig-arg">RefArray</span>,
+ <span class="summary-sig-arg">readdic</span>)</span><br />
+ Function for reading a complete ReferenceFile into Memory.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.Mem-pysrc.html#ReadArtificialSAMfile">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="ReadReferenceSAMfile"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadReferenceSAMfile</span>(<span class="sig-arg">ref</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">readdic</span>,
+ <span class="sig-arg">entries</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.Mem-pysrc.html#ReadReferenceSAMfile">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for reading a complete ReferenceFile into Memory.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>ref</code></strong> (string) - reference file.ArtRead</li>
+ <li><strong class="pname"><code>entries</code></strong> (int) - size for np.array</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list containt 1s, where there is a difference in the genomes and
+ 0s where the nucleotides are equal.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ <dt>Returns: array</dt>
+ <dd>aligned read objects in an array.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="ReadArtificialSAMfile"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">ReadArtificialSAMfile</span>(<span class="sig-arg">art</span>,
+ <span class="sig-arg">compareList</span>,
+ <span class="sig-arg">RefArray</span>,
+ <span class="sig-arg">readdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ ><span class="codelink"><a href="core.Mem-pysrc.html#ReadArtificialSAMfile">source code</a></span>
+ </td>
+ </tr></table>
+
+ <p>Function for reading a complete ReferenceFile into Memory.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>art</code></strong> (string) - artificial file.</li>
+ <li><strong class="pname"><code>RefArray</code></strong> (array) - Results from reading the reference SAM file.</li>
+ <li><strong class="pname"><code>compareList</code></strong> (list) - list containt 1s, where there is a difference in the genomes and
+ 0s where the nucleotides are equal.</li>
+ <li><strong class="pname"><code>readdic</code></strong> (dictionary) - dictionary containing read ids and read qualities.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>aligned read objects from the artificial reference, which where
+ uniquely aligned.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 12:39:27 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.Mem-pysrc.html b/doc/core.Mem-pysrc.html
new file mode 100644
index 0000000..bd4bdf5
--- /dev/null
+++ b/doc/core.Mem-pysrc.html
@@ -0,0 +1,244 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.Mem</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module Mem
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.Mem-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.Mem-module.html">Module core.Mem</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-docstring">"""
</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">Created 2012
</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">@author: GieseS
</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">Little plotting script which is called in the analysis of different mappings to an artificial reference genome.
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">It produces the following plots:
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-docstring">1) ROC Curve
</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-docstring">2) Overview histograms for FP / TP.
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring">"""</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line">
</tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line">
</tt>
+<a name="ReadReferenceSAMfile"></a><div id="ReadReferenceSAMfile-def"><a name="L18"></a><tt class="py-lineno"> 18</tt> <a class="py-toggle" href="#" id="ReadReferenceSAMfile-toggle" onclick="return toggle('ReadReferenceSAMfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Mem-module.html#ReadReferenceSAMfile">ReadReferenceSAMfile</a><tt class="py-op">(</tt><tt class="py-param">ref</tt><tt class="py-op">,</tt> <tt class="py-param">compareLi [...]
+</div><div id="ReadReferenceSAMfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ReadReferenceSAMfile-expanded"><a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring"> Function for reading a complete ReferenceFile into Memory.
</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring"> @type ref: string
</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring"> @param ref: reference file.ArtRead
</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring"> @type entries: int
</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"><tt class="py-docstring"> @param entries: size for np.array
</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list
</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.
</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary
</tt> </tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.
</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: array
</tt> </tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"><tt class="py-docstring"> @return: aligned read objects in an array.
</tt> </tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-comment"># create array with max size = |reads|</tt>
</tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-name">AlignedReadRefArray</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">zeros</tt><tt class="py-op">(</tt><tt class="py-name">entries</tt><tt class="py-op">,</tt> <tt class="py-name">dtype</tt><tt class="py-op">=</tt><tt class="py-name">object</tt><tt class="py-op">)</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"> <tt class="py-name">start100k</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tREFERENCE:")</tt>
</tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">ref</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">refdic</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tprocessed alignments in Million:")</tt>
</tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"> <tt class="py-comment">#print("\t\t"),</tt>
</tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">alignment</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fobj</tt><tt class="py-op">:</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">==</tt> <tt class="py-number">100000</tt><tt class="py-op">:</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"> <tt class="py-name">end100k</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"%f.."</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">end100k</tt> <tt class="py-op">-</tt> <tt class="py-name">start100k</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line">
</tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"> <tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Function core.AnalyseMapping.isSaneAlignment()=core.AnalyseMapping-module.html#isSaneAlignment"><a title="core.AnalyseMapping.isSaneAlignment" class="py-name" href="#" onclick="return doclink('link-0', 'isSaneAlignment', 'link-0');">isSaneAlignment</a></tt><tt [...]
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line">
</tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-comment"># Check if entry in AlignedReadRef == 0, 0 means no read with that ID</tt>
</tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">AlignedReadRefArray</tt><tt class="py-op">[</tt><tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">internalID</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-comment"># read already in dic? Add the non-redundant values to the object</tt>
</tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">AlignedReadRefArray</tt><tt class="py-op">[</tt><tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">internalID</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-1" class="py-name" targets="Method core.AnalyseMapping.CustomRead.toObjself()=core.AnalyseMapping.CustomR [...]
+core.AnalyseMapping.TPRead.toObjself" class="py-name" href="#" onclick="return doclink('link-1', 'toObjself', 'link-1');">toObjself</a></tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-comment">#refdic[readname].toObjself(read)</tt>
</tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-comment"># new read? Just add it to the dictionary</tt>
</tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-name">AlignedReadRefArray</tt><tt class="py-op">[</tt><tt class="py-name">readdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">internalID</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">read</tt> </tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">tp</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-comment">#refdic[readname] = read</tt>
</tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line">
</tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-comment">#print("\r\n")</tt>
</tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"\t %f "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">AlignedReadRefArray</tt><tt class="py-op">,</tt> <tt class="py-name">tp</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line">
</tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line">
</tt>
+<a name="ReadArtificialSAMfile"></a><div id="ReadArtificialSAMfile-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="ReadArtificialSAMfile-toggle" onclick="return toggle('ReadArtificialSAMfile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Mem-module.html#ReadArtificialSAMfile">ReadArtificialSAMfile</a><tt class="py-op">(</tt><tt class="py-param">art</tt><tt class="py-op">,</tt> <tt class="py-param">com [...]
+</div><div id="ReadArtificialSAMfile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="ReadArtificialSAMfile-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> Function for reading a complete ReferenceFile into Memory.
</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> @type art: string
</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring"> @param art: artificial file.
</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> @type RefArray: array
</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> @param RefArray: Results from reading the reference SAM file.
</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> @type compareList: list
</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> @param compareList: list containt 1s, where there is a difference in the genomes and 0s where the nucleotides are equal.
</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @type readdic: dictionary
</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @param readdic: dictionary containing read ids and read qualities.
</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary
</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> @return: aligned read objects from the artificial reference, which where uniquely aligned.
</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line">
</tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">start</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tARTIFICIAL:")</tt>
</tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">art</tt><tt class="py-op">,</tt> <tt class="py-string">"r"</tt><tt class="py-op">)</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">artdic</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line">
</tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line"> <tt class="py-name">read</tt> <tt class="py-op">=</tt> <tt id="link-2" class="py-name" targets="Function core.AnalyseMapping.SkipHeader()=core.AnalyseMapping-module.html#SkipHeader"><a title="core.AnalyseMapping.SkipHeader" class="py-name" href="#" onclick="return doclink('link-2', 'SkipHeader', 'link-2');">SkipHeader</a></tt><tt class="py-op">(</tt><tt class="py-name">fobj</tt><tt class="py-op">,</tt><tt class="py [...]
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line">
</tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line">
</tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">alignment</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fobj</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">k</tt> <tt class="py-op">+=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">k</tt> <tt class="py-op">%</tt> <tt class="py-number">1000000</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"%d.."</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">/</tt><tt class="py-number">1000000</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">read</tt><tt class="py-op">,</tt> <tt class="py-name">readname</tt> <tt class="py-op">=</tt> <tt id="link-3" class="py-name"><a title="core.AnalyseMapping.isSaneAlignment" class="py-name" href="#" onclick="return doclink('link-3', 'isSaneAlignment', 'link-0');">isSaneAlignment</a></tt><tt class="py-op">(</tt><tt class="py-name">alignment</tt><tt class="py-op">,</tt> <tt class="py-string">"a [...]
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">read</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-comment"># Check by internal naming if spot in array is taken (!= 0) by a read</tt>
</tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt id="link-4" class="py-name" targets="Function core.AnalyseMapping.returnIndex()=core.AnalyseMapping-module.html#returnIndex"><a title="core.AnalyseMapping.returnIndex" class="py-name" href="#" onclick="return doclink('link-4', 'returnIndex', 'link-4');">returnIndex</a></tt><tt class="py-op">(</tt><tt class="py-name">readdic</tt><tt class="py-op">, [...]
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt> <tt class="py-op">!=</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"> <tt class="py-comment"># read already in dic? Check if the alignments are the same</tt>
</tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">RefArray</tt><tt class="py-op">[</tt><tt class="py-name">index</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-5" class="py-name" targets="Method core.AnalyseMapping.TPRead.isContained()=core.AnalyseMapping.TPRead-class.html#isContained"><a title="core.AnalyseMapping.TPRead.isContained" class="py-name" href="#" [...]
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">readname</tt> <tt class="py-keyword">in</tt> <tt class="py-name">artdic</tt><tt class="py-op">:</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt id="link-6" class="py-name"><a title="core.AnalyseMapping.CustomRead.toObjself
+core.AnalyseMapping.TPRead.toObjself" class="py-name" href="#" onclick="return doclink('link-6', 'toObjself', 'link-1');">toObjself</a></tt><tt class="py-op">(</tt><tt class="py-name">read</tt><tt class="py-op">)</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line">
</tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">read</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">pass</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line">
</tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-comment"># new read? Just add it to the dictionary</tt>
</tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">artdic</tt><tt class="py-op">[</tt><tt class="py-name">readname</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">read</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line">
</tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line">
</tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">end</tt> <tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment">#print("\r\n")</tt>
</tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"\t %f "</tt> <tt class="py-op">%</tt> <tt class="py-op">(</tt><tt class="py-name">end</tt> <tt class="py-op">-</tt> <tt class="py-name">start</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-comment">#print ("\tdone in %d seconds" % (end-start))</tt>
</tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">artdic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 12:39:27 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.PlotData-module.html b/doc/core.PlotData-module.html
new file mode 100644
index 0000000..658f766
--- /dev/null
+++ b/doc/core.PlotData-module.html
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.PlotData</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module PlotData
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.PlotData-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module PlotData</h1><p class="nomargin-top"><span class="codelink"><a href="core.PlotData-pysrc.html">source code</a></span></p>
+<p>Created 2012</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ GieseS
+ <p>Little plotting script which is called in the analysis of
+ different mappings to an artificial reference genome. It produces
+ the following plots:</p>
+ <p>1) ROC Curve 2) Overview histograms for FP / TP.</p>
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="trapezoidal_rule"></a><span class="summary-sig-name">trapezoidal_rule</span>(<span class="summary-sig-arg">x</span>,
+ <span class="summary-sig-arg">y</span>)</span><br />
+ Approximates the integral through the points a,b</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.PlotData-pysrc.html#trapezoidal_rule">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="CalculateRoc2"></a><span class="summary-sig-name">CalculateRoc2</span>(<span class="summary-sig-arg">dataArray</span>,
+ <span class="summary-sig-arg">prefix</span>,
+ <span class="summary-sig-arg">readsize</span>,
+ <span class="summary-sig-arg">uniquehits</span>,
+ <span class="summary-sig-arg">mappedreads</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Calculates the adjusted ROC curve as well as the AUC value derived
+ from the adjusted points and writes the ROC tables to .txt files.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.PlotData-pysrc.html#CalculateRoc2">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="plotOverviewHist"></a><span class="summary-sig-name">plotOverviewHist</span>(<span class="summary-sig-arg">fp</span>,
+ <span class="summary-sig-arg">tp</span>,
+ <span class="summary-sig-arg">label</span>,
+ <span class="summary-sig-arg">prefix</span>,
+ <span class="summary-sig-arg">mappernames</span>)</span><br />
+ Plots true positives and false positives into 2 different histogram
+ subplots.</td>
+ <td align="right" valign="top">
+ <span class="codelink"><a href="core.PlotData-pysrc.html#plotOverviewHist">source code</a></span>
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.PlotData-pysrc.html b/doc/core.PlotData-pysrc.html
new file mode 100644
index 0000000..a806f70
--- /dev/null
+++ b/doc/core.PlotData-pysrc.html
@@ -0,0 +1,406 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.PlotData</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module PlotData
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.PlotData-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.PlotData-module.html">Module core.PlotData</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-docstring">'''
</tt> </tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">Created 2012
</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">@author: GieseS
</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">Little plotting script which is called in the analysis of different mappings to an artificial reference genome.
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">It produces the following plots:
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-docstring">1) ROC Curve
</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-docstring">2) Overview histograms for FP / TP.
</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"><tt class="py-docstring">'''</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line">
</tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">numpy</tt> <tt class="py-keyword">as</tt> <tt class="py-name">np</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">matplotlib</tt><tt class="py-op">.</tt><tt class="py-name">pyplot</tt> <tt class="py-keyword">as</tt> <tt class="py-name">plt</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-keyword">from</tt> <tt class="py-name">mpl_toolkits</tt><tt class="py-op">.</tt><tt class="py-name">mplot3d</tt> <tt class="py-keyword">import</tt> <tt class="py-name">Axes3D</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">time</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">pylab</tt> <tt class="py-keyword">as</tt> <tt class="py-name">p</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line">
</tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"><tt class="py-comment">##### HELP FUNCTIONS ####</tt>
</tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line">
</tt>
+<a name="trapezoidal_rule"></a><div id="trapezoidal_rule-def"><a name="L27"></a><tt class="py-lineno"> 27</tt> <a class="py-toggle" href="#" id="trapezoidal_rule-toggle" onclick="return toggle('trapezoidal_rule');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.PlotData-module.html#trapezoidal_rule">trapezoidal_rule</a><tt class="py-op">(</tt><tt class="py-param">x</tt><tt class="py-op">,</tt> <tt class="py-param">y</tt><tt class="py-op">)</tt> [...]
+</div><div id="trapezoidal_rule-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="trapezoidal_rule-expanded"><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-docstring">"""Approximates the integral through the points a,b"""</tt> </tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-name">index</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class=" [...]
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-name">xdiff</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">-</tt><tt class="py-name">x</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">-</tt><tt class [...]
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-name">ysum</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">y</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">y</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">-</tt><tt class= [...]
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">dot</tt><tt class="py-op">(</tt><tt class="py-name">xdiff</tt><tt class="py-op">,</tt><tt class="py-name">ysum</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line">
</tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line">
</tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-comment">#### HELP FUNCTIONS END ############</tt>
</tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line">
</tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line">
</tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"><tt class="py-string">"""
</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"><tt class="py-string">abbreviations:
</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-string">tp = True positives
</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-string">fp = false positives
</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-string">NM = number of mismtaches
</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-string">mq = mapping quality
</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-string">rq = readquality
</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-string">subs = substitutions in artifical reference genome (ARG)
</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-string">"""</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line">
</tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line">
</tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line">
</tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-comment">############################################################################### </tt>
</tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line">
</tt>
+<a name="CalculateRoc2"></a><div id="CalculateRoc2-def"><a name="L52"></a><tt class="py-lineno"> 52</tt> <a class="py-toggle" href="#" id="CalculateRoc2-toggle" onclick="return toggle('CalculateRoc2');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.PlotData-module.html#CalculateRoc2">CalculateRoc2</a><tt class="py-op">(</tt><tt class="py-param">dataArray</tt><tt class="py-op">,</tt><tt class="py-param">prefix</tt><tt class="py-op">,</tt><tt cl [...]
+</div><div id="CalculateRoc2-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="CalculateRoc2-expanded"><a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> Calculates the adjusted ROC curve as well as the AUC value derived from the adjusted points
</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> and writes the ROC tables to .txt files.
</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">starttime</tt><tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"> <tt class="py-name">uniquehits</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">uniquehits</tt><tt class="py-op">)</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">readsize</tt> <tt class="py-op">=</tt> <tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">readsize</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line">
</tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line">
</tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">entries</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line">
</tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line">
</tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">resultmatrix</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">arange</tt><tt class="py-op">(</tt><tt class="py-name">entries</tt><tt class="py-op">*</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">resultmatrix</tt> <tt class="py-op">=</tt> <tt class="py-name">resultmatrix</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-name">entries</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line">
</tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line"> <tt class="py-name">maxrq</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">rq</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-name">maxnm</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">maxGaps</tt><tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">maxMism</tt><tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line">
</tt>
+<a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line">
</tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"> <tt class="py-name">minrq</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">rq</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"> <tt class="py-name">minnm</tt> <tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">nm</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"> <tt class="py-name">minmq</tt><tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">mq</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"> <tt class="py-name">minGaps</tt><tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-name">minMism</tt><tt class="py-op">=</tt> <tt class="py-name">min</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">mism</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt><tt class="py-op">)</tt> [...]
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line">
</tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line">
</tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"> <tt class="py-comment"># adjust stepsize for rq since the score behaves the other way</tt>
</tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"> <tt class="py-name">quants</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">,</tt><tt class="py-number">4</tt><tt class="py-op">,</tt><tt class="py-number">5</tt><tt class="py-op">]</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"> <tt class="py-name">tempa</tt> <tt class="py-op">=</tt> <tt class="py-name">maxrq</tt><tt class="py-op">-</tt><tt class="py-name">minrq</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"> <tt class="py-name">stepsize</tt> <tt class="py-op">=</tt> <tt class="py-name">tempa</tt><tt class="py-op">/</tt><tt class="py-number">5</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line">
</tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"> <tt class="py-name">rqQuants</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-name">minrq</tt><tt class="py-op">+</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">*</tt><tt class="py-name">stepsize</tt><tt class="py-op">,</tt><tt class="py-number [...]
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">rqQuants</tt><tt class="py-op">.</tt><tt class="py-name">reverse</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line"> <tt class="py-name">rqQuants</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt><tt class="py-number">0</tt> <tt class="py-comment"># last entry is rounded bigger than the smallest in the dataset</tt> </tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line">
</tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">nmQuants</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">*</tt><tt class="py-name">maxnm</tt><tt class="py-op">/</tt><tt class="py-number">5</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">]</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">GapsQuants</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">*</tt><tt class="py-name">maxGaps</tt><tt class="py-op">/</tt><tt class="py-number">5</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">]</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">MismQuants</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">*</tt><tt class="py-name">maxMism</tt><tt class="py-op">/</tt><tt class="py-number">5</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">]</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line">
</tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-name">rocvector</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line">
</tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-comment"># i = NM,l = RQ, k = MQ</tt>
</tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">:</tt> <tt class="py-comment"># RQ</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">:</tt> <tt class="py-comment"># GAPS</tt> </tt>
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">j</tt> <tt class="py-keyword">in</tt> <tt class="py-name">quants</tt><tt class="py-op">:</tt> <tt class="py-comment"># MISMATCH</tt> </tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">temparray</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">m</tt> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">dataArray</tt> <tt class="py-keyword">if</tt> <tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">gaps</tt><tt class="py-op">[</tt><tt class="py-number">0 [...]
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line">
</tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line">
</tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">tempids</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">m</tt><tt class="py-op">.</tt><tt class="py-name">id</tt> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">temparray</tt><tt class="py-op">]</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-name">uniquereads</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">tempids</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"> <tt class="py-name">uniquereads</tt><tt class="py-op">[</tt><tt class="py-name">tempids</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line">
</tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">mappedreads</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">uniquereads</tt><tt class="py-op">)</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line">
</tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line">
</tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line">
</tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">templength</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">temparray</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line">
</tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">templength</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"> <tt class="py-name">tempTP</tt> <tt class="py-op">=</tt> <tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">.</tt><tt class="py-name">mr</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">x</tt> <tt class="py-keyword">in</tt> <tt class="py-name">temparray</tt><t [...]
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">tempFP</tt> <tt class="py-op">=</tt><tt class="py-name">templength</tt><tt class="py-op">-</tt><tt class="py-name">tempTP</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-name">F</tt> <tt class="py-op">=</tt> <tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">mappedreads</tt><tt class="py-op">)</tt><tt class="py-op">/</tt> <tt class="py-name">readsize</tt><tt class="py-op">)</tt> <tt class="py-op">,</tt><tt class="py-number">3</tt><tt class= [...]
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-name">sens</tt> <tt class="py-op">=</tt> <tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">tempTP</tt><tt class="py-op">/</tt> <tt class="py-name">uniquehits</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">F</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">tempFP</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt><tt class="py-op">:</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">spec</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-name">spec</tt> <tt class="py-op">=</tt> <tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">tempFP</tt> <tt class="py-op">/</tt> <tt class="py-name">uniquehits</tt><tt class="py-op">)</tt> <tt class="py-op">*</tt> <tt class="py-name">F</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt> [...]
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line">
</tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-name">rocvector</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">rqQuants</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">GapsQuants</tt><tt class="py-op">[</tt><tt class= [...]
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line">
</tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-comment">#print ("%d\t%d\t%d\t" % (templength,tempTP,tempFP))</tt>
</tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line">
</tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-comment">#0 = NM 4 = TP 7 = sens</tt>
</tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-comment">#1 = RQ 5 = FP 8 = 1-spec</tt>
</tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-comment">#2 = GAPS 6 = P 9 = F</tt>
</tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-comment">#append needed for last entry in AUC calculation</tt>
</tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">rocvector</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number [...]
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line"> <tt class="py-name">nproc</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-name">rocvector</tt><tt class="py-op">)</tt> </tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line">
</tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-comment">#write the sens and specificity values from nproc according to the enumeration in line 149. </tt>
</tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-comment">#specificity is in cell -2</tt>
</tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-comment"># sensitivity is in cell -3</tt>
</tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"> <tt class="py-name">sens</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">nproc</tt><tt class="py-op">]</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-name">spez</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">nproc</tt><tt class="py-op">]</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line">
</tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"> <tt class="py-comment"># adjust ROC curve. It is necessary that it the 1-specificity ends in 1.</tt>
</tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"> <tt class="py-comment"># for the last record copy the predecessor in sens to it</tt>
</tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"> <tt class="py-comment"># and write 1 to specificity </tt>
</tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"> <tt class="py-name">spez</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-number">1</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">sens</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">sens</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">]</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line">
</tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line">
</tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"> <tt class="py-name">rocarray1</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">sens</tt><tt class="py-op">,</tt><tt class="py-name">spez</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-name">rocarray1</tt> <tt class="py-op">=</tt> <tt class="py-name">rocarray1</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">)</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"> <tt class="py-name">rocarray1</tt><tt class="py-op">=</tt> <tt class="py-name">rocarray1</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">spez</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line">
</tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"> <tt class="py-name">rocarray</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">array</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-name">sens</tt><tt class="py-op">,</tt><tt class="py-name">spez</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">rocarray</tt> <tt class="py-op">=</tt> <tt class="py-name">rocarray</tt><tt class="py-op">.</tt><tt class="py-name">flatten</tt><tt class="py-op">(</tt><tt class="py-string">'F'</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-name">rocarray</tt> <tt class="py-op">=</tt> <tt class="py-name">rocarray</tt><tt class="py-op">.</tt><tt class="py-name">reshape</tt><tt class="py-op">(</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">spez</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">rocarray</tt> <tt class="py-op">=</tt> <tt class="py-name">np</tt><tt class="py-op">.</tt><tt class="py-name">sort</tt><tt class="py-op">(</tt><tt class="py-name">rocarray</tt><tt class="py-op">.</tt><tt class="py-name">view</tt><tt class="py-op">(</tt><tt class="py-string">'float,float'</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> <tt class="py-name">order</tt><tt class="py-op">=</tt>< [...]
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line">
</tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-name">rocarrayCorrected</tt> <tt class="py-op">=</tt> <tt class="py-name">rocarray</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line">
</tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-comment">#print rocarrayCorrected</tt>
</tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-comment"># project points where...</tt>
</tt>
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">m</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">rocarrayCorrected</tt><tt class="py-op">)</tt><tt class="py-op">-</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-op">-</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt [...]
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-name">m</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">>=</tt> <tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-name">m</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op [...]
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-name">m</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">]</tt> <tt class="py-op">=</tt> <tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-name">m</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">] [...]
+<a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line">
</tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line">
</tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"> <tt class="py-comment">#print rocarrayCorrected </tt>
</tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">hold</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L170"></a><tt class="py-lineno">170</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">figure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">subplot</tt><tt class="py-op">(</tt><tt class="py-number">111</tt><tt class="py-op">)</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"> <tt class="py-comment">#plt.scatter(spez, sens, c='b', marker='o', facecolor='red')</tt>
</tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"> <tt class="py-comment">#plt.plot(rocarray[:,1], rocarray[:,0]</tt>
</tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">plot</tt><tt class="py-op">(</tt><tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt><tt class="py-name">rocarrayCorrected</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt clas [...]
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">plot</tt><tt class="py-op">(</tt><tt class="py-name">rocarray1</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">]</tt><tt class="py-op">,</tt> <tt class="py-name">rocarray1</tt><tt class="py-op">[</tt><tt class="py-op">:</tt><tt class="py-op">,</tt><tt class="py-number">0 [...]
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">xlabel</tt><tt class="py-op">(</tt><tt class="py-string">'1-specificity'</tt><tt class="py-op">)</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">ylabel</tt><tt class="py-op">(</tt><tt class="py-string">'sensitivity'</tt><tt class="py-op">)</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">title</tt><tt class="py-op">(</tt><tt class="py-string">r'ROC:'</tt><tt class="py-op">+</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">axis</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-op">-</tt><tt class="py-number">0.1</tt><tt class="py-op">,</tt><tt class="py-number">1.1</tt><tt class="py-op">,</tt><tt class="py-op">-</tt><tt class="py-number">0.1</tt><tt class="py-op">,</tt><tt class="py-number">1.1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">grid</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">legend</tt><tt class="py-op">(</tt><tt class="py-name">loc</tt><tt class="py-op">=</tt><tt class="py-string">'lower right'</tt><tt class="py-op">)</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">tight_layout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">savefig</tt><tt class="py-op">(</tt><tt class="py-name">prefix</tt> <tt class="py-op">+</tt> <tt class="py-string">"_ROC.pdf"</tt><tt class="py-op">,</tt><tt class="py-name">format</tt><tt class="py-op">=</tt><tt class="py-string">'pdf'</tt><tt class="py-op">)</tt> </tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">clf</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line">
</tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line">
</tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-name">AUC</tt> <tt class="py-op">=</tt> <tt id="link-0" class="py-name" targets="Function core.PlotData.trapezoidal_rule()=core.PlotData-module.html#trapezoidal_rule"><a title="core.PlotData.trapezoidal_rule" class="py-name" href="#" onclick="return doclink('link-0', 'trapezoidal_rule', 'link-0');">trapezoidal_rule</a></tt><tt class="py-op">(</tt><tt class="py-name">rocarrayCorrected</tt><tt class="p [...]
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line">
</tt>
+<a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">prefix</tt><tt class="py-op">+</tt><tt class="py-string">"_roctable.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L190"></a><tt class="py-lineno">190</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"RQ\tGAPS\tMM\tPTP\tFP\tP\tSn\t1-Sp\tF\r\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L191"></a><tt class="py-lineno">191</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">xrange</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">rocvector</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L192"></a><tt class="py-lineno">192</tt> <tt class="py-line"> <tt class="py-name">temp</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">k</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">rocvector</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">]</tt> </tt>
+<a name="L193"></a><tt class="py-lineno">193</tt> <tt class="py-line"> <tt class="py-name">tempstr</tt> <tt class="py-op">=</tt> <tt class="py-string">"\t"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">temp</tt><tt class="py-op">)</tt> </tt>
+<a name="L194"></a><tt class="py-lineno">194</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">tempstr</tt><tt class="py-op">+</tt><tt class="py-string">"\r\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L195"></a><tt class="py-lineno">195</tt> <tt class="py-line">
</tt>
+<a name="L196"></a><tt class="py-lineno">196</tt> <tt class="py-line"> <tt class="py-name">endtime</tt><tt class="py-op">=</tt> <tt class="py-name">time</tt><tt class="py-op">.</tt><tt class="py-name">time</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L197"></a><tt class="py-lineno">197</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+<a name="L198"></a><tt class="py-lineno">198</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">round</tt><tt class="py-op">(</tt><tt class="py-name">AUC</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L199"></a><tt class="py-lineno">199</tt> <tt class="py-line">
</tt>
+<a name="plotOverviewHist"></a><div id="plotOverviewHist-def"><a name="L200"></a><tt class="py-lineno">200</tt> <a class="py-toggle" href="#" id="plotOverviewHist-toggle" onclick="return toggle('plotOverviewHist');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.PlotData-module.html#plotOverviewHist">plotOverviewHist</a><tt class="py-op">(</tt><tt class="py-param">fp</tt><tt class="py-op">,</tt><tt class="py-param">tp</tt><tt class="py-op">,</t [...]
+</div><div id="plotOverviewHist-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="plotOverviewHist-expanded"><a name="L201"></a><tt class="py-lineno">201</tt> <tt class="py-line"> <tt class="py-docstring">"""Plots true positives and false positives into 2 different histogram subplots. """</tt> </tt>
+<a name="L202"></a><tt class="py-lineno">202</tt> <tt class="py-line"> <tt class="py-name">prefix2</tt> <tt class="py-op">=</tt> <tt class="py-string">"/"</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">prefix</tt><tt class="py-op">.</tt><tt class="py-name">split</tt><tt class="py-op">(</tt><tt class="py-string">"/"</tt><tt class="py-op">)</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">:</tt><tt class="py [...]
+<a name="L203"></a><tt class="py-lineno">203</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">prefix2</tt><tt class="py-op">+</tt><tt class="py-string">"indexMappingTools.txt"</tt><tt class="py-op">,</tt><tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L204"></a><tt class="py-lineno">204</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">label</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L205"></a><tt class="py-lineno">205</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"%s - %s\r\n"</tt> <tt class="py-op">%</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">mappernames</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt c [...]
+<a name="L206"></a><tt class="py-lineno">206</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L207"></a><tt class="py-lineno">207</tt> <tt class="py-line">
</tt>
+<a name="L208"></a><tt class="py-lineno">208</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">)</tt><tt class="py-o [...]
+<a name="L209"></a><tt class="py-lineno">209</tt> <tt class="py-line"> <tt class="py-name">xmax</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">1</tt> </tt>
+<a name="L210"></a><tt class="py-lineno">210</tt> <tt class="py-line"> <tt class="py-name">ymaxTP</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">tp</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">0.1</tt> </tt>
+<a name="L211"></a><tt class="py-lineno">211</tt> <tt class="py-line"> <tt class="py-name">ymaxFP</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">0.1</tt> </tt>
+<a name="L212"></a><tt class="py-lineno">212</tt> <tt class="py-line">
</tt>
+<a name="L213"></a><tt class="py-lineno">213</tt> <tt class="py-line"> <tt class="py-comment">##### SUBPLOT NUMBER OF MISMATCHES ####</tt>
</tt>
+<a name="L214"></a><tt class="py-lineno">214</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-name">tp</tt> </tt>
+<a name="L215"></a><tt class="py-lineno">215</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt><tt class="py-name">x</tt> </tt>
+<a name="L216"></a><tt class="py-lineno">216</tt> <tt class="py-line"> <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt class="py-name">fp</tt> </tt>
+<a name="L217"></a><tt class="py-lineno">217</tt> <tt class="py-line">
</tt>
+<a name="L218"></a><tt class="py-lineno">218</tt> <tt class="py-line">
</tt>
+<a name="L219"></a><tt class="py-lineno">219</tt> <tt class="py-line"> <tt class="py-name">fig</tt> <tt class="py-op">=</tt> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">figure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L220"></a><tt class="py-lineno">220</tt> <tt class="py-line"> <tt class="py-comment"># only plot every 2nd label</tt>
</tt>
+<a name="L221"></a><tt class="py-lineno">221</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">label</tt><tt class="py-op">)</tt> <tt class="py-op"><=</tt> <tt class="py-number">7</tt><tt class="py-op">:</tt> </tt>
+<a name="L222"></a><tt class="py-lineno">222</tt> <tt class="py-line"> <tt class="py-name">widthp</tt> <tt class="py-op">=</tt> <tt class="py-number">0.7</tt> </tt>
+<a name="L223"></a><tt class="py-lineno">223</tt> <tt class="py-line"> <tt class="py-name">ticks</tt> <tt class="py-op">=</tt> <tt class="py-name">label</tt> </tt>
+<a name="L224"></a><tt class="py-lineno">224</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L225"></a><tt class="py-lineno">225</tt> <tt class="py-line"> <tt class="py-name">widthp</tt> <tt class="py-op">=</tt> <tt class="py-number">0.3</tt> </tt>
+<a name="L226"></a><tt class="py-lineno">226</tt> <tt class="py-line"> <tt class="py-name">ticks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">%</tt><tt class="py-number">2</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> <tt class="py-keyword">else</tt> <tt class="py-string">""</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keywo [...]
+<a name="L227"></a><tt class="py-lineno">227</tt> <tt class="py-line"> <tt class="py-comment"># Here we're adding 2 subplots. The grid is set</tt>
</tt>
+<a name="L228"></a><tt class="py-lineno">228</tt> <tt class="py-line"> <tt class="py-comment"># up as one row, two columns.</tt>
</tt>
+<a name="L229"></a><tt class="py-lineno">229</tt> <tt class="py-line"> <tt class="py-name">ax1</tt> <tt class="py-op">=</tt> <tt class="py-name">fig</tt><tt class="py-op">.</tt><tt class="py-name">add_subplot</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L230"></a><tt class="py-lineno">230</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">bar</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">y</tt><tt class="py-op">,</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-name">widthp</tt><tt class="py-op">,</tt> <tt class="py-name">facecolor</tt><tt class="py-op">=</tt><tt class="py-string">'darkgreen'</tt><tt cla [...]
+<a name="L231"></a><tt class="py-lineno">231</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_ylabel</tt><tt class="py-op">(</tt><tt class="py-string">'#TP hits'</tt><tt class="py-op">)</tt> </tt>
+<a name="L232"></a><tt class="py-lineno">232</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_xlabel</tt><tt class="py-op">(</tt><tt class="py-string">'index mapping tool'</tt><tt class="py-op">)</tt> </tt>
+<a name="L233"></a><tt class="py-lineno">233</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_title</tt><tt class="py-op">(</tt><tt class="py-string">"Global comparison #TP hits"</tt><tt class="py-op">)</tt> </tt>
+<a name="L234"></a><tt class="py-lineno">234</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">xticks</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">ticks</tt><tt class="py-op">)</tt> </tt>
+<a name="L235"></a><tt class="py-lineno">235</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">grid</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L236"></a><tt class="py-lineno">236</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">axis</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">xmax</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">ymaxTP</tt><tt class="py-op">+</tt><tt class="py-name">ymaxTP</tt><tt class="py-op">*</tt><tt class="py-number">1 [...]
+<a name="L237"></a><tt class="py-lineno">237</tt> <tt class="py-line">
</tt>
+<a name="L238"></a><tt class="py-lineno">238</tt> <tt class="py-line"> <tt class="py-comment"># on the second axis, make the width smaller (default is 0.8)</tt>
</tt>
+<a name="L239"></a><tt class="py-lineno">239</tt> <tt class="py-line"> <tt class="py-name">ax2</tt> <tt class="py-op">=</tt> <tt class="py-name">fig</tt><tt class="py-op">.</tt><tt class="py-name">add_subplot</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L240"></a><tt class="py-lineno">240</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">bar</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">z</tt><tt class="py-op">,</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-name">widthp</tt><tt class="py-op">,</tt> <tt class="py-name">facecolor</tt><tt class="py-op">=</tt><tt class="py-string">'darkred'</tt><tt class [...]
+<a name="L241"></a><tt class="py-lineno">241</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_ylabel</tt><tt class="py-op">(</tt><tt class="py-string">'#FP hits'</tt><tt class="py-op">)</tt> </tt>
+<a name="L242"></a><tt class="py-lineno">242</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_xlabel</tt><tt class="py-op">(</tt><tt class="py-string">'index mapping tool'</tt><tt class="py-op">)</tt> </tt>
+<a name="L243"></a><tt class="py-lineno">243</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_title</tt><tt class="py-op">(</tt><tt class="py-string">"Global comparison #FP hits"</tt><tt class="py-op">)</tt> </tt>
+<a name="L244"></a><tt class="py-lineno">244</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">axis</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">xmax</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">ymaxFP</tt><tt class="py-op">+</tt><tt class="py-name">ymaxFP</tt><tt class="py-op">*</tt><tt class="py-number">1 [...]
+<a name="L245"></a><tt class="py-lineno">245</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">xticks</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">ticks</tt><tt class="py-op">)</tt> </tt>
+<a name="L246"></a><tt class="py-lineno">246</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">grid</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L247"></a><tt class="py-lineno">247</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">tight_layout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L248"></a><tt class="py-lineno">248</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">savefig</tt><tt class="py-op">(</tt><tt class="py-name">prefix2</tt> <tt class="py-op">+</tt> <tt class="py-string">"Overall_histabs.pdf"</tt><tt class="py-op">,</tt><tt class="py-name">format</tt><tt class="py-op">=</tt><tt class="py-string">'pdf'</tt><tt class="py-op">)</tt> </tt>
+<a name="L249"></a><tt class="py-lineno">249</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">clf</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L250"></a><tt class="py-lineno">250</tt> <tt class="py-line">
</tt>
+<a name="L251"></a><tt class="py-lineno">251</tt> <tt class="py-line">
</tt>
+<a name="L252"></a><tt class="py-lineno">252</tt> <tt class="py-line"> <tt class="py-name">tpsum</tt> <tt class="py-op">=</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">tp</tt><tt class="py-op">)</tt> </tt>
+<a name="L253"></a><tt class="py-lineno">253</tt> <tt class="py-line"> <tt class="py-name">fpsum</tt> <tt class="py-op">=</tt><tt class="py-name">sum</tt><tt class="py-op">(</tt><tt class="py-name">fp</tt><tt class="py-op">)</tt> </tt>
+<a name="L254"></a><tt class="py-lineno">254</tt> <tt class="py-line"> <tt class="py-name">y</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">tpsum</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">tp</tt><tt class="py-op">]</tt> </tt>
+<a name="L255"></a><tt class="py-lineno">255</tt> <tt class="py-line"> <tt class="py-name">x</tt> <tt class="py-op">=</tt><tt class="py-name">x</tt> </tt>
+<a name="L256"></a><tt class="py-lineno">256</tt> <tt class="py-line"> <tt class="py-name">z</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">fpsum</tt><tt class="py-op">)</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">fp</tt><tt class="py-op">]</tt> </tt>
+<a name="L257"></a><tt class="py-lineno">257</tt> <tt class="py-line"> <tt class="py-name">ymax</tt> <tt class="py-op">=</tt> <tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">z</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-name">max</tt><tt class="py-op">(</tt><tt class="py-name">y</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-number">0.2</tt> </tt>
+<a name="L258"></a><tt class="py-lineno">258</tt> <tt class="py-line">
</tt>
+<a name="L259"></a><tt class="py-lineno">259</tt> <tt class="py-line"> <tt class="py-name">fig</tt> <tt class="py-op">=</tt> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">figure</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L260"></a><tt class="py-lineno">260</tt> <tt class="py-line"> <tt class="py-comment"># only plot every 2nd labelare provided</tt>
</tt>
+<a name="L261"></a><tt class="py-lineno">261</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">label</tt><tt class="py-op">)</tt> <tt class="py-op"><=</tt> <tt class="py-number">7</tt><tt class="py-op">:</tt> </tt>
+<a name="L262"></a><tt class="py-lineno">262</tt> <tt class="py-line"> <tt class="py-name">ticks</tt> <tt class="py-op">=</tt> <tt class="py-name">label</tt> </tt>
+<a name="L263"></a><tt class="py-lineno">263</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L264"></a><tt class="py-lineno">264</tt> <tt class="py-line"> <tt class="py-name">ticks</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-name">i</tt> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">%</tt><tt class="py-number">2</tt> <tt class="py-op">==</tt> <tt class="py-number">0</tt> <tt class="py-keyword">else</tt> <tt class="py-string">""</tt> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keywo [...]
+<a name="L265"></a><tt class="py-lineno">265</tt> <tt class="py-line"> <tt class="py-comment"># Here we're adding 2 subplots. The grid is set</tt>
</tt>
+<a name="L266"></a><tt class="py-lineno">266</tt> <tt class="py-line"> <tt class="py-comment"># up as one row, two columns.</tt>
</tt>
+<a name="L267"></a><tt class="py-lineno">267</tt> <tt class="py-line"> <tt class="py-name">ax1</tt> <tt class="py-op">=</tt> <tt class="py-name">fig</tt><tt class="py-op">.</tt><tt class="py-name">add_subplot</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">1</tt><tt class="py-op">)</tt> </tt>
+<a name="L268"></a><tt class="py-lineno">268</tt> <tt class="py-line">
</tt>
+<a name="L269"></a><tt class="py-lineno">269</tt> <tt class="py-line">
</tt>
+<a name="L270"></a><tt class="py-lineno">270</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">bar</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">y</tt><tt class="py-op">,</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-name">widthp</tt><tt class="py-op">,</tt> <tt class="py-name">facecolor</tt><tt class="py-op">=</tt><tt class="py-string">'darkgreen'</tt><tt cla [...]
+<a name="L271"></a><tt class="py-lineno">271</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_ylabel</tt><tt class="py-op">(</tt><tt class="py-string">'%TP hits'</tt><tt class="py-op">)</tt> </tt>
+<a name="L272"></a><tt class="py-lineno">272</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_xlabel</tt><tt class="py-op">(</tt><tt class="py-string">'index mapping tool'</tt><tt class="py-op">)</tt> </tt>
+<a name="L273"></a><tt class="py-lineno">273</tt> <tt class="py-line"> <tt class="py-name">ax1</tt><tt class="py-op">.</tt><tt class="py-name">set_title</tt><tt class="py-op">(</tt><tt class="py-string">"Global comparison %TP hits"</tt><tt class="py-op">)</tt> </tt>
+<a name="L274"></a><tt class="py-lineno">274</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">xticks</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">ticks</tt><tt class="py-op">)</tt> </tt>
+<a name="L275"></a><tt class="py-lineno">275</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">grid</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L276"></a><tt class="py-lineno">276</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">axis</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">xmax</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">1.1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L277"></a><tt class="py-lineno">277</tt> <tt class="py-line">
</tt>
+<a name="L278"></a><tt class="py-lineno">278</tt> <tt class="py-line"> <tt class="py-comment"># on the second axis, make the width smaller (default is 0.8)</tt>
</tt>
+<a name="L279"></a><tt class="py-lineno">279</tt> <tt class="py-line"> <tt class="py-name">ax2</tt> <tt class="py-op">=</tt> <tt class="py-name">fig</tt><tt class="py-op">.</tt><tt class="py-name">add_subplot</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">,</tt><tt class="py-number">2</tt><tt class="py-op">)</tt> </tt>
+<a name="L280"></a><tt class="py-lineno">280</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">bar</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">z</tt><tt class="py-op">,</tt><tt class="py-name">width</tt><tt class="py-op">=</tt><tt class="py-name">widthp</tt><tt class="py-op">,</tt> <tt class="py-name">facecolor</tt><tt class="py-op">=</tt><tt class="py-string">'darkred'</tt><tt class [...]
+<a name="L281"></a><tt class="py-lineno">281</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_ylabel</tt><tt class="py-op">(</tt><tt class="py-string">'%FP hits'</tt><tt class="py-op">)</tt> </tt>
+<a name="L282"></a><tt class="py-lineno">282</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_xlabel</tt><tt class="py-op">(</tt><tt class="py-string">'index mapping tool'</tt><tt class="py-op">)</tt> </tt>
+<a name="L283"></a><tt class="py-lineno">283</tt> <tt class="py-line"> <tt class="py-name">ax2</tt><tt class="py-op">.</tt><tt class="py-name">set_title</tt><tt class="py-op">(</tt><tt class="py-string">"Global comparison %FP hits"</tt><tt class="py-op">)</tt> </tt>
+<a name="L284"></a><tt class="py-lineno">284</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">axis</tt><tt class="py-op">(</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">xmax</tt><tt class="py-op">,</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">1.1</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L285"></a><tt class="py-lineno">285</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">xticks</tt><tt class="py-op">(</tt><tt class="py-name">x</tt><tt class="py-op">,</tt><tt class="py-name">ticks</tt><tt class="py-op">)</tt> </tt>
+<a name="L286"></a><tt class="py-lineno">286</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">grid</tt><tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L287"></a><tt class="py-lineno">287</tt> <tt class="py-line"> <tt class="py-name">plt</tt><tt class="py-op">.</tt><tt class="py-name">tight_layout</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L288"></a><tt class="py-lineno">288</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">savefig</tt><tt class="py-op">(</tt><tt class="py-name">prefix2</tt> <tt class="py-op">+</tt> <tt class="py-string">"Overall_histper.pdf"</tt><tt class="py-op">,</tt><tt class="py-name">format</tt><tt class="py-op">=</tt><tt class="py-string">'pdf'</tt><tt class="py-op">)</tt> </tt>
+<a name="L289"></a><tt class="py-lineno">289</tt> <tt class="py-line"> <tt class="py-name">p</tt><tt class="py-op">.</tt><tt class="py-name">clf</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L290"></a><tt class="py-lineno">290</tt> <tt class="py-line">
</tt>
+<a name="L291"></a><tt class="py-lineno">291</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"X"</tt><tt class="py-op">)</tt><tt class="py-op">,</tt> </tt>
+</div><a name="L292"></a><tt class="py-lineno">292</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.Prep-pysrc.html b/doc/core.Prep-pysrc.html
new file mode 100644
index 0000000..de413f8
--- /dev/null
+++ b/doc/core.Prep-pysrc.html
@@ -0,0 +1,277 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.Prep</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module Prep
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.Prep-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.Prep-module.html">Module core.Prep</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment"># -*- coding: cp1252 -*-</tt>
</tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">'''
</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">Created 2012
</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">Contains various help functions which initialize / translate /preprocess the data
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">@author: Sven Giese'''</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line">
</tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">cPickle</tt> <tt class="py-keyword">as</tt> <tt class="py-name">pickle</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line">
</tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line"><tt class="py-string">''' INIT DICTIONARIES '''</tt> </tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line"><tt id="link-0" class="py-name" targets="Variable core.Prep.genetic_code=core.Prep-module.html#genetic_code"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-0', 'genetic_code', 'link-0');">genetic_code</a></tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">'GCT'</tt><tt class="py-op">:</tt><tt class="py-string">'A'</tt><tt class="py-op">,</tt> <tt class="p [...]
</tt>
+<a name="L15"></a><tt class="py-lineno"> 15</tt> <tt class="py-line"> <tt class="py-string">'CGT'</tt><tt class="py-op">:</tt><tt class="py-string">'R'</tt><tt class="py-op">,</tt> <tt class="py-string">'CGC'</tt><tt class="py-op">:</tt><tt class="py-string">'R'</tt><tt class="py-op">,</tt> <tt class="py-string">'CGA'</tt><tt class="py-op">:</tt><tt class="py-string">'R'</tt><tt class="py-op">,</tt> <tt class="py-string">'CGG'</tt><tt class="py-op">:</tt><tt class="py-strin [...]
</tt>
+<a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"> <tt class="py-string">'AAT'</tt><tt class="py-op">:</tt><tt class="py-string">'N'</tt><tt class="py-op">,</tt> <tt class="py-string">'AAC'</tt><tt class="py-op">:</tt><tt class="py-string">'N'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"> <tt class="py-string">'GAT'</tt><tt class="py-op">:</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt> <tt class="py-string">'GAC'</tt><tt class="py-op">:</tt><tt class="py-string">'D'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"> <tt class="py-string">'TGT'</tt><tt class="py-op">:</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt> <tt class="py-string">'TGC'</tt><tt class="py-op">:</tt><tt class="py-string">'C'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"> <tt class="py-string">'CAA'</tt><tt class="py-op">:</tt><tt class="py-string">'Q'</tt><tt class="py-op">,</tt> <tt class="py-string">'CAG'</tt><tt class="py-op">:</tt><tt class="py-string">'Q'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"> <tt class="py-string">'GAA'</tt><tt class="py-op">:</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt> <tt class="py-string">'GAG'</tt><tt class="py-op">:</tt><tt class="py-string">'E'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"> <tt class="py-string">'GGT'</tt><tt class="py-op">:</tt><tt class="py-string">'G'</tt><tt class="py-op">,</tt> <tt class="py-string">'GGC'</tt><tt class="py-op">:</tt><tt class="py-string">'G'</tt><tt class="py-op">,</tt><tt class="py-string">'GGA'</tt><tt class="py-op">:</tt><tt class="py-string">'G'</tt><tt class="py-op">,</tt> <tt class="py-string">'GGG'</tt><tt class="py-op">:</tt><tt class="py-string [...]
</tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"> <tt class="py-string">'CAT'</tt><tt class="py-op">:</tt><tt class="py-string">'H'</tt><tt class="py-op">,</tt> <tt class="py-string">'CAC'</tt><tt class="py-op">:</tt><tt class="py-string">'H'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"> <tt class="py-string">'ATT'</tt><tt class="py-op">:</tt><tt class="py-string">'I'</tt><tt class="py-op">,</tt> <tt class="py-string">'ATC'</tt><tt class="py-op">:</tt><tt class="py-string">'I'</tt><tt class="py-op">,</tt><tt class="py-string">'ATA'</tt><tt class="py-op">:</tt><tt class="py-string">'I'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-string">'ATG'</tt><tt class="py-op">:</tt><tt class="py-string">'M'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-string">'TTA'</tt><tt class="py-op">:</tt><tt class="py-string">'L'</tt><tt class="py-op">,</tt> <tt class="py-string">'TTG'</tt><tt class="py-op">:</tt><tt class="py-string">'L'</tt><tt class="py-op">,</tt> <tt class="py-string">'CTT'</tt><tt class="py-op">:</tt><tt class="py-string">'L'</tt><tt class="py-op">,</tt> <tt class="py-string">'CTC'</tt><tt class="py-op">:</tt><tt class="py-strin [...]
</tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-string">'AAA'</tt><tt class="py-op">:</tt><tt class="py-string">'K'</tt><tt class="py-op">,</tt> <tt class="py-string">'AAG'</tt><tt class="py-op">:</tt><tt class="py-string">'K'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-string">'TTT'</tt><tt class="py-op">:</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt> <tt class="py-string">'TTC'</tt><tt class="py-op">:</tt><tt class="py-string">'F'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line"> <tt class="py-string">'CCT'</tt><tt class="py-op">:</tt><tt class="py-string">'P'</tt><tt class="py-op">,</tt> <tt class="py-string">'CCC'</tt><tt class="py-op">:</tt><tt class="py-string">'P'</tt><tt class="py-op">,</tt><tt class="py-string">'CCA'</tt><tt class="py-op">:</tt><tt class="py-string">'P'</tt><tt class="py-op">,</tt> <tt class="py-string">'CCG'</tt><tt class="py-op">:</tt><tt class="py-string [...]
</tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line"> <tt class="py-string">'TCT'</tt><tt class="py-op">:</tt><tt class="py-string">'S'</tt><tt class="py-op">,</tt> <tt class="py-string">'TCC'</tt><tt class="py-op">:</tt><tt class="py-string">'S'</tt><tt class="py-op">,</tt> <tt class="py-string">'TCA'</tt><tt class="py-op">:</tt><tt class="py-string">'S'</tt><tt class="py-op">,</tt> <tt class="py-string">'TCG'</tt><tt class="py-op">:</tt><tt class="py-strin [...]
</tt>
+<a name="L30"></a><tt class="py-lineno"> 30</tt> <tt class="py-line"> <tt class="py-string">'ACT'</tt><tt class="py-op">:</tt><tt class="py-string">'T'</tt><tt class="py-op">,</tt> <tt class="py-string">'ACC'</tt><tt class="py-op">:</tt><tt class="py-string">'T'</tt><tt class="py-op">,</tt><tt class="py-string">'ACA'</tt><tt class="py-op">:</tt><tt class="py-string">'T'</tt><tt class="py-op">,</tt> <tt class="py-string">'ACG'</tt><tt class="py-op">:</tt><tt class="py-string [...]
</tt>
+<a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-string">'TGG'</tt><tt class="py-op">:</tt><tt class="py-string">'W'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"> <tt class="py-string">'TAT'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">,</tt> <tt class="py-string">'TAC'</tt><tt class="py-op">:</tt><tt class="py-string">'Y'</tt><tt class="py-op">,</tt>
</tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"> <tt class="py-string">'GTT'</tt><tt class="py-op">:</tt><tt class="py-string">'V'</tt><tt class="py-op">,</tt> <tt class="py-string">'GTC'</tt><tt class="py-op">:</tt><tt class="py-string">'V'</tt><tt class="py-op">,</tt><tt class="py-string">'GTA'</tt><tt class="py-op">:</tt><tt class="py-string">'V'</tt><tt class="py-op">,</tt> <tt class="py-string">'GTG'</tt><tt class="py-op">:</tt><tt class="py-string [...]
</tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"> <tt class="py-string">'TAA'</tt><tt class="py-op">:</tt><tt class="py-string">'*'</tt><tt class="py-op">,</tt> <tt class="py-string">'TGA'</tt><tt class="py-op">:</tt><tt class="py-string">'*'</tt><tt class="py-op">,</tt><tt class="py-string">'TAG'</tt><tt class="py-op">:</tt><tt class="py-string">'*'</tt><tt class="py-op">,</tt><tt class="py-string">'NNN'</tt><tt class="py-op">:</tt><tt class="py-string" [...]
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line">
</tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line">
</tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line">
</tt>
+<a name="createdic"></a><div id="createdic-def"><a name="L38"></a><tt class="py-lineno"> 38</tt> <a class="py-toggle" href="#" id="createdic-toggle" onclick="return toggle('createdic');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Prep-module.html#createdic">createdic</a><tt class="py-op">(</tt><tt class="py-param">AAsequence</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="createdic-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="createdic-expanded"><a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"><tt class="py-docstring"> Creates the dictionary for the AA triplets and searches the starting indices
</tt> </tt>
+<a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line"><tt class="py-docstring"> of the triplets in the given aminoacid sequence.
</tt> </tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L43"></a><tt class="py-lineno"> 43</tt> <tt class="py-line"><tt class="py-docstring"> @type AAsequence: string
</tt> </tt>
+<a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"><tt class="py-docstring"> @param AAsequence: aminoacid sequence
</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary
</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> @return: A dictionary with starting positions of each triplet in the given AA sequence
</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line">
</tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"> <tt class="py-name">liste</tt> <tt class="py-op">=</tt> <tt class="py-op">[</tt><tt class="py-string">"A"</tt><tt class="py-op">,</tt><tt class="py-string">"R"</tt><tt class="py-op">,</tt><tt class="py-string">"N"</tt><tt class="py-op">,</tt><tt class="py-string">"D"</tt><tt class="py-op">,</tt><tt class="py-string">"C"</tt><tt class="py-op">,</tt><tt class="py-string">"E"</tt><tt class="py-op">,</tt><tt class="py- [...]
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"> <tt class="py-name">aa_triplets</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-op">}</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line">
</tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"> <tt class="py-comment"># create all possibilities (triplets)</tt>
</tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">liste</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">k</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">liste</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">l</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">liste</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"> <tt class="py-name">aa_triplets</tt><tt class="py-op">[</tt><tt class="py-name">liste</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">liste</tt><tt class="py-op">[</tt><tt class="py-name">k</tt><tt class="py-op">]</tt><tt class="py-op">+</tt><tt class="py-name">liste</tt><tt class="py-op">[</tt><tt class="py-name">l</tt><tt class= [...]
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line">
</tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-comment"># create lookup dic</tt>
</tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-comment"># key = triplet</tt>
</tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line"> <tt class="py-comment"># value = list of positions </tt>
</tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">1</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">AAsequence</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt> <tt class="py-op">></tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">AAsequence</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">AAsequence</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">aa_triplets</tt><tt class="py-op">:</tt> </tt>
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">aa_triplets</tt><tt class="py-op">[</tt><tt class="py-name">AAsequence</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class= [...]
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">aa_triplets</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line">
</tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line">
</tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line">
</tt>
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line">
</tt>
+<a name="isvalidtriplet"></a><div id="isvalidtriplet-def"><a name="L72"></a><tt class="py-lineno"> 72</tt> <a class="py-toggle" href="#" id="isvalidtriplet-toggle" onclick="return toggle('isvalidtriplet');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Prep-module.html#isvalidtriplet">isvalidtriplet</a><tt class="py-op">(</tt><tt class="py-param">codon</tt><tt class="py-op">,</tt><tt class="py-param">dictentry</tt><tt class="py-op">)</tt><tt c [...]
+</div><div id="isvalidtriplet-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="isvalidtriplet-expanded"><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line"><tt class="py-docstring"> Function which checks if a given triplet has max hamming distance of 1
</tt> </tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line"><tt class="py-docstring"> to a other triplet. Used for generation of possible substitutions triplets
</tt> </tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L77"></a><tt class="py-lineno"> 77</tt> <tt class="py-line"><tt class="py-docstring"> @type codon: string
</tt> </tt>
+<a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"><tt class="py-docstring"> @param codon: nucleotide triplet
</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> @type dictentry: string
</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> @param dictentry: nucleotide triplet
</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: bool
</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @return: Boolean value. True if max hamming distance 1,else False .
</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"> <tt class="py-name">counter</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line">
</tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt> <tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line">
</tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">codon</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">==</tt> <tt class="py-name">dictentry</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">counter</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line">
</tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">counter</tt> <tt class="py-op">==</tt> <tt class="py-number">2</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">True</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">False</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line">
</tt>
+<a name="trans_seq"></a><div id="trans_seq-def"><a name="L99"></a><tt class="py-lineno"> 99</tt> <a class="py-toggle" href="#" id="trans_seq-toggle" onclick="return toggle('trans_seq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Prep-module.html#trans_seq">trans_seq</a><tt class="py-op">(</tt><tt class="py-param">DNA</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="trans_seq-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="trans_seq-expanded"><a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"><tt class="py-docstring"> Funtion which translates DNA to AA
</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"><tt class="py-docstring"> @type DNA: list
</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"><tt class="py-docstring"> @param DNA: nucleotide sequence
</tt> </tt>
+<a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: prot,rest
</tt> </tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line"><tt class="py-docstring"> @return: Translated aminoacid sequence,untranslated nucleotide sequence
</tt> </tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L108"></a><tt class="py-lineno">108</tt> <tt class="py-line"> <tt class="py-name">protein</tt><tt class="py-op">=</tt><tt class="py-op">[</tt><tt class="py-op">]</tt> </tt>
+<a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-name">prot</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"> <tt class="py-name">rest</tt><tt class="py-op">=</tt><tt class="py-string">""</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line">
</tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"> <tt class="py-name">DNA</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt><tt class="py-op">,</tt><tt class="py-number">3</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"> <tt class="py-comment"># Codon exceeds length </tt>
</tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt> <tt class="py-op">></tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">DNA</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"> <tt class="py-name">rest</tt> <tt class="py-op">+=</tt><tt class="py-name">DNA</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line">
</tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-keyword">break</tt> </tt>
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-comment">#' found Ns in nucleotid string</tt>
</tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line"> <tt class="py-keyword">if</tt><tt class="py-op">(</tt><tt class="py-string">"N"</tt> <tt class="py-keyword">in</tt> <tt class="py-name">DNA</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-name">a_a</tt> <tt class="py-op">=</tt> <tt class="py-string">"n"</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-name">protein</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">a_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-comment">#standard triplet translation</tt>
</tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-name">codon</tt><tt class="py-op">=</tt><tt class="py-name">DNA</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">:</tt><tt class="py-name">i</tt><tt class="py-op">+</tt><tt class="py-number">3</tt><tt class="py-op">]</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line"> <tt class="py-comment"># look codon up in translation dic</tt>
</tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line"> <tt class="py-name">a_a</tt><tt class="py-op">=</tt><tt id="link-1" class="py-name"><a title="core.Prep.genetic_code" class="py-name" href="#" onclick="return doclink('link-1', 'genetic_code', 'link-0');">genetic_code</a></tt><tt class="py-op">[</tt><tt class="py-name">codon</tt><tt class="py-op">]</tt> </tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">protein</tt><tt class="py-op">.</tt><tt class="py-name">append</tt><tt class="py-op">(</tt><tt class="py-name">a_a</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line">
</tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-comment"># transform to string</tt>
</tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">prot</tt> <tt class="py-op">=</tt> <tt class="py-string">""</tt><tt class="py-op">.</tt><tt class="py-name">join</tt><tt class="py-op">(</tt><tt class="py-name">protein</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">prot</tt><tt class="py-op">,</tt><tt class="py-name">rest</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line">
</tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"><tt class="py-string">''' DEBUG HELP FUNCTIONS '''</tt> </tt>
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line">
</tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line">
</tt>
+<a name="savepickle"></a><div id="savepickle-def"><a name="L137"></a><tt class="py-lineno">137</tt> <a class="py-toggle" href="#" id="savepickle-toggle" onclick="return toggle('savepickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Prep-module.html#savepickle">savepickle</a><tt class="py-op">(</tt><tt class="py-param">dictionary</tt><tt class="py-op">,</tt><tt class="py-param">outputname</tt><tt class="py-op">)</tt><tt class="py-op">:</t [...]
+</div><div id="savepickle-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="savepickle-expanded"><a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"><tt class="py-docstring"> basic pickle functions. actually for debugging and to speed up multiple simulations ( possible to load orf lists)
</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"><tt class="py-docstring"> @type dictionary: dictionary
</tt> </tt>
+<a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line"><tt class="py-docstring"> @param dictionary: Dictionary containg start and end positions of ORFs.
</tt> </tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-docstring"> @type outputname: string
</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-docstring"> @param outputname: Filename for saving.
</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L146"></a><tt class="py-lineno">146</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">dump</tt><tt class="py-op">(</tt> <tt class="py-name">dictionary</tt><tt class="py-op">,</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">outputname</tt> <tt class="py-op">+</tt><tt class="py-string">".p"</tt><tt class="py-op">,</tt> <tt class="py-string">"wb"</tt> <tt class="py-op">)</tt> <tt class="py-op">)</t [...]
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Saved .pickle to: "</tt> <tt class="py-op">+</tt> <tt class="py-name">outputname</tt> <tt class="py-op">+</tt><tt class="py-string">".p"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line">
</tt>
+<a name="loadpickle"></a><div id="loadpickle-def"><a name="L150"></a><tt class="py-lineno">150</tt> <a class="py-toggle" href="#" id="loadpickle-toggle" onclick="return toggle('loadpickle');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.Prep-module.html#loadpickle">loadpickle</a><tt class="py-op">(</tt><tt class="py-param">inputname</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="loadpickle-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="loadpickle-expanded"><a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> basic pickle functions. actually for debugging and to speed up multiple simulations ( possible to load orf lists)
</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"><tt class="py-docstring"> @type inputname: string
</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"><tt class="py-docstring"> @param inputname: Filename for loading.
</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: dictionary
</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"><tt class="py-docstring"> @return: Dictionary containing start and end positions of ORFs.
</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">dictionary</tt><tt class="py-op">=</tt> <tt class="py-name">pickle</tt><tt class="py-op">.</tt><tt class="py-name">load</tt><tt class="py-op">(</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">inputname</tt> <tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-comment">#+".p" ) )</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"Loaded "</tt><tt class="py-op">+</tt><tt class="py-name">inputname</tt><tt class="py-op">+</tt><tt class="py-string">" pickle!"</tt><tt class="py-op">)</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">dictionary</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.ReadAndWrite-pysrc.html b/doc/core.ReadAndWrite-pysrc.html
new file mode 100644
index 0000000..98580e3
--- /dev/null
+++ b/doc/core.ReadAndWrite-pysrc.html
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.ReadAndWrite</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module ReadAndWrite
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.ReadAndWrite-pysrc.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<h1 class="epydoc">Source Code for <a href="core.ReadAndWrite-module.html">Module core.ReadAndWrite</a></h1>
+<pre class="py-src">
+<a name="L1"></a><tt class="py-lineno"> 1</tt> <tt class="py-line"><tt class="py-comment">#!/usr/bin/env python</tt>
</tt>
+<a name="L2"></a><tt class="py-lineno"> 2</tt> <tt class="py-line"><tt class="py-docstring">'''
</tt> </tt>
+<a name="L3"></a><tt class="py-lineno"> 3</tt> <tt class="py-line"><tt class="py-docstring">Created 2012
</tt> </tt>
+<a name="L4"></a><tt class="py-lineno"> 4</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L5"></a><tt class="py-lineno"> 5</tt> <tt class="py-line"><tt class="py-docstring">Contains various help functions which read or produce an input/ output
</tt> </tt>
+<a name="L6"></a><tt class="py-lineno"> 6</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L7"></a><tt class="py-lineno"> 7</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L8"></a><tt class="py-lineno"> 8</tt> <tt class="py-line"><tt class="py-docstring">@author: Sven Giese
</tt> </tt>
+<a name="L9"></a><tt class="py-lineno"> 9</tt> <tt class="py-line"><tt class="py-docstring">'''</tt> </tt>
+<a name="L10"></a><tt class="py-lineno"> 10</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">os</tt> </tt>
+<a name="L11"></a><tt class="py-lineno"> 11</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">random</tt> </tt>
+<a name="L12"></a><tt class="py-lineno"> 12</tt> <tt class="py-line"><tt class="py-keyword">import</tt> <tt class="py-name">HTSeq</tt> </tt>
+<a name="L13"></a><tt class="py-lineno"> 13</tt> <tt class="py-line">
</tt>
+<a name="L14"></a><tt class="py-lineno"> 14</tt> <tt class="py-line">
</tt>
+<a name="readdna"></a><div id="readdna-def"><a name="L15"></a><tt class="py-lineno"> 15</tt> <a class="py-toggle" href="#" id="readdna-toggle" onclick="return toggle('readdna');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#readdna">readdna</a><tt class="py-op">(</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+</div><div id="readdna-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="readdna-expanded"><a name="L16"></a><tt class="py-lineno"> 16</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L17"></a><tt class="py-lineno"> 17</tt> <tt class="py-line"><tt class="py-docstring"> Reads in the dna sequence of the given fasta
</tt> </tt>
+<a name="L18"></a><tt class="py-lineno"> 18</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L19"></a><tt class="py-lineno"> 19</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: string
</tt> </tt>
+<a name="L20"></a><tt class="py-lineno"> 20</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: Fasta-file used as input.
</tt> </tt>
+<a name="L21"></a><tt class="py-lineno"> 21</tt> <tt class="py-line"><tt class="py-docstring"> @rtype: HTSeq Sequence object
</tt> </tt>
+<a name="L22"></a><tt class="py-lineno"> 22</tt> <tt class="py-line"><tt class="py-docstring"> @return: Reference Fasta.
</tt> </tt>
+<a name="L23"></a><tt class="py-lineno"> 23</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L24"></a><tt class="py-lineno"> 24</tt> <tt class="py-line"> <tt class="py-name">chr</tt> <tt class="py-op">=</tt> <tt class="py-name">HTSeq</tt><tt class="py-op">.</tt><tt class="py-name">FastaReader</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">)</tt> </tt>
+<a name="L25"></a><tt class="py-lineno"> 25</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">fasta</tt> <tt class="py-keyword">in</tt> <tt class="py-name">chr</tt><tt class="py-op">:</tt> </tt>
+<a name="L26"></a><tt class="py-lineno"> 26</tt> <tt class="py-line"> <tt class="py-name">referenz</tt> <tt class="py-op">=</tt> <tt class="py-name">HTSeq</tt><tt class="py-op">.</tt><tt class="py-name">Sequence</tt><tt class="py-op">(</tt><tt class="py-name">fasta</tt><tt class="py-op">.</tt><tt class="py-name">seq</tt><tt class="py-op">,</tt><tt class="py-name">fasta</tt><tt class="py-op">.</tt><tt class="py-name">name</tt><tt class="py-op">)</tt> </tt>
+<a name="L27"></a><tt class="py-lineno"> 27</tt> <tt class="py-line"> <tt class="py-keyword">return</tt><tt class="py-op">(</tt><tt class="py-name">referenz</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L28"></a><tt class="py-lineno"> 28</tt> <tt class="py-line">
</tt>
+<a name="L29"></a><tt class="py-lineno"> 29</tt> <tt class="py-line">
</tt>
+<a name="writefile"></a><div id="writefile-def"><a name="L30"></a><tt class="py-lineno"> 30</tt> <a class="py-toggle" href="#" id="writefile-toggle" onclick="return toggle('writefile');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#writefile">writefile</a><tt class="py-op">(</tt><tt class="py-param">sequenceObject</tt><tt class="py-op">,</tt><tt class="py-param">filename</tt><tt class="py-op">)</tt><tt class="py-op">: [...]
+</div><div id="writefile-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="writefile-expanded"><a name="L31"></a><tt class="py-lineno"> 31</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L32"></a><tt class="py-lineno"> 32</tt> <tt class="py-line"><tt class="py-docstring"> Writes a given sequence object to a fasta file.
</tt> </tt>
+<a name="L33"></a><tt class="py-lineno"> 33</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L34"></a><tt class="py-lineno"> 34</tt> <tt class="py-line"><tt class="py-docstring"> @type sequenceObject: HTSeq Sequence object
</tt> </tt>
+<a name="L35"></a><tt class="py-lineno"> 35</tt> <tt class="py-line"><tt class="py-docstring"> @param sequenceObject: Reference sequence as fasta.
</tt> </tt>
+<a name="L36"></a><tt class="py-lineno"> 36</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L37"></a><tt class="py-lineno"> 37</tt> <tt class="py-line">
</tt>
+<a name="L38"></a><tt class="py-lineno"> 38</tt> <tt class="py-line"> <tt class="py-name">outfasta</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt><tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L39"></a><tt class="py-lineno"> 39</tt> <tt class="py-line"> <tt class="py-name">sequenceObject</tt><tt class="py-op">.</tt><tt class="py-name">write_to_fasta_file</tt><tt class="py-op">(</tt><tt class="py-name">outfasta</tt><tt class="py-op">)</tt> </tt>
+<a name="L40"></a><tt class="py-lineno"> 40</tt> <tt class="py-line"> <tt class="py-name">outfasta</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L41"></a><tt class="py-lineno"> 41</tt> <tt class="py-line">
</tt>
+<a name="L42"></a><tt class="py-lineno"> 42</tt> <tt class="py-line">
</tt>
+<a name="writeoverview"></a><div id="writeoverview-def"><a name="L43"></a><tt class="py-lineno"> 43</tt> <a class="py-toggle" href="#" id="writeoverview-toggle" onclick="return toggle('writeoverview');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#writeoverview">writeoverview</a><tt class="py-op">(</tt><tt class="py-param">Ndic_G</tt><tt class="py-op">,</tt><tt class="py-param">aadic_G</tt><tt class="py-op">,</tt><tt [...]
+</div><div id="writeoverview-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="writeoverview-expanded"><a name="L44"></a><tt class="py-lineno"> 44</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L45"></a><tt class="py-lineno"> 45</tt> <tt class="py-line"><tt class="py-docstring"> Creates the "delta" file for the comparison of the two chromosoms. This file contains the differences in nucleotide distribution between reference and artificial.
</tt> </tt>
+<a name="L46"></a><tt class="py-lineno"> 46</tt> <tt class="py-line"><tt class="py-docstring"> input: nucleotid dictionary genom, aa dictionary genome, nucleotid dictionary artificial chromosom, aa dictionary, filename
</tt> </tt>
+<a name="L47"></a><tt class="py-lineno"> 47</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L48"></a><tt class="py-lineno"> 48</tt> <tt class="py-line"><tt class="py-docstring"> @type Ndic_G: dictionary
</tt> </tt>
+<a name="L49"></a><tt class="py-lineno"> 49</tt> <tt class="py-line"><tt class="py-docstring"> @param Ndic_G: Nucleotid dictionary genom.
</tt> </tt>
+<a name="L50"></a><tt class="py-lineno"> 50</tt> <tt class="py-line"><tt class="py-docstring"> @type aadic_G: dictionary
</tt> </tt>
+<a name="L51"></a><tt class="py-lineno"> 51</tt> <tt class="py-line"><tt class="py-docstring"> @param aadic_G: AA dictionary genome.
</tt> </tt>
+<a name="L52"></a><tt class="py-lineno"> 52</tt> <tt class="py-line"><tt class="py-docstring"> @type Ndic_AR: dictionary
</tt> </tt>
+<a name="L53"></a><tt class="py-lineno"> 53</tt> <tt class="py-line"><tt class="py-docstring"> @param Ndic_AR: Nucleotid dictionary artificial.
</tt> </tt>
+<a name="L54"></a><tt class="py-lineno"> 54</tt> <tt class="py-line"><tt class="py-docstring"> @type aadic_AR: dictionary
</tt> </tt>
+<a name="L55"></a><tt class="py-lineno"> 55</tt> <tt class="py-line"><tt class="py-docstring"> @param aadic_AR: AA dictionary artificial
</tt> </tt>
+<a name="L56"></a><tt class="py-lineno"> 56</tt> <tt class="py-line"><tt class="py-docstring"> @type filename: string
</tt> </tt>
+<a name="L57"></a><tt class="py-lineno"> 57</tt> <tt class="py-line"><tt class="py-docstring"> @param filename: Output filename.
</tt> </tt>
+<a name="L58"></a><tt class="py-lineno"> 58</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L59"></a><tt class="py-lineno"> 59</tt> <tt class="py-line"> <tt class="py-name">fobj</tt> <tt class="py-op">=</tt> <tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">filename</tt><tt class="py-op">,</tt><tt class="py-string">"w"</tt><tt class="py-op">)</tt> </tt>
+<a name="L60"></a><tt class="py-lineno"> 60</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">"NUC /AA \t Genom \t Artificial Reference \t Delta \n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L61"></a><tt class="py-lineno"> 61</tt> <tt class="py-line">
</tt>
+<a name="L62"></a><tt class="py-lineno"> 62</tt> <tt class="py-line"> <tt class="py-name">sum1</tt> <tt class="py-op">=</tt><tt class="py-number">0</tt> </tt>
+<a name="L63"></a><tt class="py-lineno"> 63</tt> <tt class="py-line"> <tt class="py-name">sum2</tt><tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L64"></a><tt class="py-lineno"> 64</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">Ndic_G</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L65"></a><tt class="py-lineno"> 65</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">item</tt> <tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">Ndic_G</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py- [...]
+<a name="L66"></a><tt class="py-lineno"> 66</tt> <tt class="py-line"> <tt class="py-name">sum1</tt> <tt class="py-op">+=</tt><tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">Ndic_G</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">-</tt><tt class="py-name">Ndic_AR</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L67"></a><tt class="py-lineno"> 67</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sum1</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
+<a name="L68"></a><tt class="py-lineno"> 68</tt> <tt class="py-line">
</tt>
+<a name="L69"></a><tt class="py-lineno"> 69</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">aadic_G</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L70"></a><tt class="py-lineno"> 70</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">item</tt> <tt class="py-op">+</tt><tt class="py-string">"\t"</tt><tt class="py-op">+</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">aadic_G</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py [...]
+<a name="L71"></a><tt class="py-lineno"> 71</tt> <tt class="py-line"> <tt class="py-name">sum2</tt> <tt class="py-op">+=</tt><tt class="py-name">abs</tt><tt class="py-op">(</tt><tt class="py-name">aadic_G</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">-</tt><tt class="py-name">aadic_AR</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> </tt>
+<a name="L72"></a><tt class="py-lineno"> 72</tt> <tt class="py-line"> <tt class="py-name">fobj</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">sum2</tt><tt class="py-op">)</tt><tt class="py-op">+</tt><tt class="py-string">"\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L73"></a><tt class="py-lineno"> 73</tt> <tt class="py-line">
</tt>
+<a name="L74"></a><tt class="py-lineno"> 74</tt> <tt class="py-line">
</tt>
+<a name="L75"></a><tt class="py-lineno"> 75</tt> <tt class="py-line">
</tt>
+<a name="L76"></a><tt class="py-lineno"> 76</tt> <tt class="py-line">
</tt>
+<a name="nucleotide_dist_seq"></a><div id="nucleotide_dist_seq-def"><a name="L77"></a><tt class="py-lineno"> 77</tt> <a class="py-toggle" href="#" id="nucleotide_dist_seq-toggle" onclick="return toggle('nucleotide_dist_seq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#nucleotide_dist_seq">nucleotide_dist_seq</a><tt class="py-op">(</tt><tt class="py-param">seq</tt><tt class="py-op">,</tt><tt class="py-param">txt_fil [...]
+</div><div id="nucleotide_dist_seq-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="nucleotide_dist_seq-expanded"><a name="L78"></a><tt class="py-lineno"> 78</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L79"></a><tt class="py-lineno"> 79</tt> <tt class="py-line"><tt class="py-docstring"> Writes the nucleotide distribution in a file and returns the dictionary. adjust s for % results.
</tt> </tt>
+<a name="L80"></a><tt class="py-lineno"> 80</tt> <tt class="py-line"><tt class="py-docstring"> @type seq: string
</tt> </tt>
+<a name="L81"></a><tt class="py-lineno"> 81</tt> <tt class="py-line"><tt class="py-docstring"> @param seq: Nucleotide sequence.
</tt> </tt>
+<a name="L82"></a><tt class="py-lineno"> 82</tt> <tt class="py-line"><tt class="py-docstring"> @type txt_file: string
</tt> </tt>
+<a name="L83"></a><tt class="py-lineno"> 83</tt> <tt class="py-line"><tt class="py-docstring"> @param txt_file: Output compare file.
</tt> </tt>
+<a name="L84"></a><tt class="py-lineno"> 84</tt> <tt class="py-line"><tt class="py-docstring"> @type shallwrite: Bool
</tt> </tt>
+<a name="L85"></a><tt class="py-lineno"> 85</tt> <tt class="py-line"><tt class="py-docstring"> @param shallwrite: Decides if percentages values are written to the output.
</tt> </tt>
+<a name="L86"></a><tt class="py-lineno"> 86</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L87"></a><tt class="py-lineno"> 87</tt> <tt class="py-line"> <tt class="py-name">Nndic</tt><tt class="py-op">=</tt><tt class="py-op">{</tt><tt class="py-string">"A"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-string">"C"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-string">"G"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-string"> [...]
+<a name="L88"></a><tt class="py-lineno"> 88</tt> <tt class="py-line">
</tt>
+<a name="L89"></a><tt class="py-lineno"> 89</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">seq</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L90"></a><tt class="py-lineno"> 90</tt> <tt class="py-line"> <tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">seq</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L91"></a><tt class="py-lineno"> 91</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">seq</tt><tt class="py-op">)</tt> </tt>
+<a name="L92"></a><tt class="py-lineno"> 92</tt> <tt class="py-line"> <tt class="py-name">s</tt><tt class="py-op">=</tt><tt class="py-number">1</tt> </tt>
+<a name="L93"></a><tt class="py-lineno"> 93</tt> <tt class="py-line">
</tt>
+<a name="L94"></a><tt class="py-lineno"> 94</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">shallwrite</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L95"></a><tt class="py-lineno"> 95</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">=</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">txt_file</tt><tt class="py-op">,</tt><tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L96"></a><tt class="py-lineno"> 96</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">Nndic</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L97"></a><tt class="py-lineno"> 97</tt> <tt class="py-line"> <tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L98"></a><tt class="py-lineno"> 98</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">item</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt>< [...]
+<a name="L99"></a><tt class="py-lineno"> 99</tt> <tt class="py-line">
</tt>
+<a name="L100"></a><tt class="py-lineno">100</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L101"></a><tt class="py-lineno">101</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L102"></a><tt class="py-lineno">102</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">Nndic</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L103"></a><tt class="py-lineno">103</tt> <tt class="py-line"> <tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">Nndic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">s</tt><tt class="py-op">)</tt> </tt>
+<a name="L104"></a><tt class="py-lineno">104</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">Nndic</tt><tt class="py-op">)</tt> <tt class="py-comment">#N can be used for checking: should be the same number in real</tt> </tt>
+</div><a name="L105"></a><tt class="py-lineno">105</tt> <tt class="py-line"> <tt class="py-comment"># and artificial chromosome</tt>
</tt>
+<a name="L106"></a><tt class="py-lineno">106</tt> <tt class="py-line">
</tt>
+<a name="L107"></a><tt class="py-lineno">107</tt> <tt class="py-line">
</tt>
+<a name="aa_dist_seq"></a><div id="aa_dist_seq-def"><a name="L108"></a><tt class="py-lineno">108</tt> <a class="py-toggle" href="#" id="aa_dist_seq-toggle" onclick="return toggle('aa_dist_seq');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#aa_dist_seq">aa_dist_seq</a><tt class="py-op">(</tt><tt class="py-param">seq</tt><tt class="py-op">,</tt><tt class="py-param">txt_file</tt><tt class="py-op">,</tt><tt class="py-par [...]
+</div><div id="aa_dist_seq-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="aa_dist_seq-expanded"><a name="L109"></a><tt class="py-lineno">109</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L110"></a><tt class="py-lineno">110</tt> <tt class="py-line"><tt class="py-docstring"> Writes the AA distribution in a file and returns the dictionary. adjust s for % results.
</tt> </tt>
+<a name="L111"></a><tt class="py-lineno">111</tt> <tt class="py-line"><tt class="py-docstring"> @type seq: string
</tt> </tt>
+<a name="L112"></a><tt class="py-lineno">112</tt> <tt class="py-line"><tt class="py-docstring"> @param seq: Nucleotide sequence.
</tt> </tt>
+<a name="L113"></a><tt class="py-lineno">113</tt> <tt class="py-line"><tt class="py-docstring"> @type txt_file: string
</tt> </tt>
+<a name="L114"></a><tt class="py-lineno">114</tt> <tt class="py-line"><tt class="py-docstring"> @param txt_file: Output compare file.
</tt> </tt>
+<a name="L115"></a><tt class="py-lineno">115</tt> <tt class="py-line"><tt class="py-docstring"> @type shallwrite: Bool
</tt> </tt>
+<a name="L116"></a><tt class="py-lineno">116</tt> <tt class="py-line"><tt class="py-docstring"> @param shallwrite: Write output in percentages..
</tt> </tt>
+<a name="L117"></a><tt class="py-lineno">117</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L118"></a><tt class="py-lineno">118</tt> <tt class="py-line"> <tt class="py-name">aadic</tt> <tt class="py-op">=</tt> <tt class="py-op">{</tt><tt class="py-string">"A"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-string">"R"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-string">"N"</tt><tt class="py-op">:</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-strin [...]
+<a name="L119"></a><tt class="py-lineno">119</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">seq</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L120"></a><tt class="py-lineno">120</tt> <tt class="py-line">
</tt>
+<a name="L121"></a><tt class="py-lineno">121</tt> <tt class="py-line"> <tt class="py-string">'''escape 'n' Sequences '''</tt> </tt>
+<a name="L122"></a><tt class="py-lineno">122</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">seq</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt> <tt class="py-keyword">in</tt> <tt class="py-name">aadic</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L123"></a><tt class="py-lineno">123</tt> <tt class="py-line"> <tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">seq</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">]</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L124"></a><tt class="py-lineno">124</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L125"></a><tt class="py-lineno">125</tt> <tt class="py-line"> <tt class="py-keyword">continue</tt> </tt>
+<a name="L126"></a><tt class="py-lineno">126</tt> <tt class="py-line">
</tt>
+<a name="L127"></a><tt class="py-lineno">127</tt> <tt class="py-line">
</tt>
+<a name="L128"></a><tt class="py-lineno">128</tt> <tt class="py-line"> <tt class="py-name">n</tt> <tt class="py-op">=</tt> <tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">seq</tt><tt class="py-op">)</tt> </tt>
+<a name="L129"></a><tt class="py-lineno">129</tt> <tt class="py-line"> <tt class="py-name">n</tt><tt class="py-op">=</tt><tt class="py-number">1</tt> </tt>
+<a name="L130"></a><tt class="py-lineno">130</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">shallwrite</tt><tt class="py-op">==</tt><tt class="py-number">1</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L131"></a><tt class="py-lineno">131</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">=</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">txt_file</tt><tt class="py-op">,</tt><tt class="py-string">'w'</tt><tt class="py-op">)</tt> </tt>
+<a name="L132"></a><tt class="py-lineno">132</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">aadic</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L133"></a><tt class="py-lineno">133</tt> <tt class="py-line"> <tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L134"></a><tt class="py-lineno">134</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">item</tt> <tt class="py-op">+</tt> <tt class="py-string">"\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">)</tt> [...]
+<a name="L135"></a><tt class="py-lineno">135</tt> <tt class="py-line">
</tt>
+<a name="L136"></a><tt class="py-lineno">136</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L137"></a><tt class="py-lineno">137</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L138"></a><tt class="py-lineno">138</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">item</tt> <tt class="py-keyword">in</tt> <tt class="py-name">aadic</tt><tt class="py-op">.</tt><tt class="py-name">keys</tt><tt class="py-op">(</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L139"></a><tt class="py-lineno">139</tt> <tt class="py-line"> <tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">=</tt><tt class="py-name">aadic</tt><tt class="py-op">[</tt><tt class="py-name">item</tt><tt class="py-op">]</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">n</tt><tt class="py-op">)</tt> </tt>
+<a name="L140"></a><tt class="py-lineno">140</tt> <tt class="py-line">
</tt>
+<a name="L141"></a><tt class="py-lineno">141</tt> <tt class="py-line"> <tt class="py-keyword">return</tt> <tt class="py-op">(</tt><tt class="py-name">aadic</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L142"></a><tt class="py-lineno">142</tt> <tt class="py-line">
</tt>
+<a name="L143"></a><tt class="py-lineno">143</tt> <tt class="py-line"><tt class="py-string">'''
</tt> </tt>
+<a name="L144"></a><tt class="py-lineno">144</tt> <tt class="py-line"><tt class="py-string">input: DNA Sequence, outputfilename and 1/0 for writing/not writing outputfile '''</tt> </tt>
+<a name="L145"></a><tt class="py-lineno">145</tt> <tt class="py-line">
</tt>
+<a name="nucleotide_dist_file"></a><div id="nucleotide_dist_file-def"><a name="L146"></a><tt class="py-lineno">146</tt> <a class="py-toggle" href="#" id="nucleotide_dist_file-toggle" onclick="return toggle('nucleotide_dist_file');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#nucleotide_dist_file">nucleotide_dist_file</a><tt class="py-op">(</tt><tt class="py-param">file_fasta</tt><tt class="py-op">,</tt><tt class="py- [...]
+</div><div id="nucleotide_dist_file-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="nucleotide_dist_file-expanded"><a name="L147"></a><tt class="py-lineno">147</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L148"></a><tt class="py-lineno">148</tt> <tt class="py-line"><tt class="py-docstring"> Writes the DNA distribution in a file and returns the dictionary. adjust n for % results
</tt> </tt>
+<a name="L149"></a><tt class="py-lineno">149</tt> <tt class="py-line"><tt class="py-docstring">
</tt> </tt>
+<a name="L150"></a><tt class="py-lineno">150</tt> <tt class="py-line"><tt class="py-docstring"> @type file_fasta: string
</tt> </tt>
+<a name="L151"></a><tt class="py-lineno">151</tt> <tt class="py-line"><tt class="py-docstring"> @param file_fasta: DNA Sequence
</tt> </tt>
+<a name="L152"></a><tt class="py-lineno">152</tt> <tt class="py-line"><tt class="py-docstring"> @type txt_file: string
</tt> </tt>
+<a name="L153"></a><tt class="py-lineno">153</tt> <tt class="py-line"><tt class="py-docstring"> @param txt_file: Filename for output.
</tt> </tt>
+<a name="L154"></a><tt class="py-lineno">154</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L155"></a><tt class="py-lineno">155</tt> <tt class="py-line"> <tt class="py-name">input_file</tt><tt class="py-op">=</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">file_fasta</tt><tt class="py-op">,</tt><tt class="py-string">'r'</tt><tt class="py-op">)</tt> </tt>
+<a name="L156"></a><tt class="py-lineno">156</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">=</tt><tt class="py-name">open</tt><tt class="py-op">(</tt><tt class="py-name">txt_file</tt><tt class="py-op">,</tt><tt class="py-string">'a'</tt><tt class="py-op">)</tt> </tt>
+<a name="L157"></a><tt class="py-lineno">157</tt> <tt class="py-line"> <tt class="py-name">seq</tt><tt class="py-op">=</tt><tt class="py-string">''</tt> </tt>
+<a name="L158"></a><tt class="py-lineno">158</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">line</tt> <tt class="py-keyword">in</tt> <tt class="py-name">input_file</tt><tt class="py-op">:</tt> </tt>
+<a name="L159"></a><tt class="py-lineno">159</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-name">line</tt><tt class="py-op">[</tt><tt class="py-number">0</tt><tt class="py-op">]</tt><tt class="py-op">!=</tt><tt class="py-string">'>'</tt><tt class="py-op">:</tt> </tt>
+<a name="L160"></a><tt class="py-lineno">160</tt> <tt class="py-line"> <tt class="py-name">line</tt><tt class="py-op">=</tt><tt class="py-name">line</tt><tt class="py-op">.</tt><tt class="py-name">rstrip</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L161"></a><tt class="py-lineno">161</tt> <tt class="py-line"> <tt class="py-name">seq</tt><tt class="py-op">+=</tt><tt class="py-name">line</tt> </tt>
+<a name="L162"></a><tt class="py-lineno">162</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-name">str</tt><tt class="py-op">(</tt><tt id="link-0" class="py-name" targets="Function core.ReadAndWrite.nucleotide_dist_seq()=core.ReadAndWrite-module.html#nucleotide_dist_seq"><a title="core.ReadAndWrite.nucleotide_dist_seq" class="py-name" href="#" onclick="return doclink('link-0', 'n [...]
+<a name="L163"></a><tt class="py-lineno">163</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">write</tt><tt class="py-op">(</tt><tt class="py-string">'\n'</tt><tt class="py-op">)</tt> </tt>
+<a name="L164"></a><tt class="py-lineno">164</tt> <tt class="py-line"> <tt class="py-name">output_file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+<a name="L165"></a><tt class="py-lineno">165</tt> <tt class="py-line"> <tt class="py-name">input_file</tt><tt class="py-op">.</tt><tt class="py-name">close</tt><tt class="py-op">(</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L166"></a><tt class="py-lineno">166</tt> <tt class="py-line">
</tt>
+<a name="L167"></a><tt class="py-lineno">167</tt> <tt class="py-line">
</tt>
+<a name="L168"></a><tt class="py-lineno">168</tt> <tt class="py-line"><tt class="py-string">'''gets the number of missmatches between 2 sequences
</tt> </tt>
+<a name="L169"></a><tt class="py-lineno">169</tt> <tt class="py-line"><tt class="py-string">input: orig sequence, decoy sequence '''</tt> </tt>
+<a name="gethammingdistance"></a><div id="gethammingdistance-def"><a name="L170"></a><tt class="py-lineno">170</tt> <a class="py-toggle" href="#" id="gethammingdistance-toggle" onclick="return toggle('gethammingdistance');">-</a><tt class="py-line"><tt class="py-keyword">def</tt> <a class="py-def-name" href="core.ReadAndWrite-module.html#gethammingdistance">gethammingdistance</a><tt class="py-op">(</tt><tt class="py-param">original</tt><tt class="py-op">,</tt><tt class="py-param">artific [...]
+</div><div id="gethammingdistance-collapsed" style="display:none;" pad="+++" indent="++++"></div><div id="gethammingdistance-expanded"><a name="L171"></a><tt class="py-lineno">171</tt> <tt class="py-line"> <tt class="py-docstring">"""
</tt> </tt>
+<a name="L172"></a><tt class="py-lineno">172</tt> <tt class="py-line"><tt class="py-docstring"> Calculates the hamming distances between two sequences.
</tt> </tt>
+<a name="L173"></a><tt class="py-lineno">173</tt> <tt class="py-line"><tt class="py-docstring"> @type original: list
</tt> </tt>
+<a name="L174"></a><tt class="py-lineno">174</tt> <tt class="py-line"><tt class="py-docstring"> @param original: Nucleotide sequence from the reference.
</tt> </tt>
+<a name="L175"></a><tt class="py-lineno">175</tt> <tt class="py-line"><tt class="py-docstring"> @type artificial: list
</tt> </tt>
+<a name="L176"></a><tt class="py-lineno">176</tt> <tt class="py-line"><tt class="py-docstring"> @param artificial: Nucleotide sequence from the artificial reference.
</tt> </tt>
+<a name="L177"></a><tt class="py-lineno">177</tt> <tt class="py-line"><tt class="py-docstring"> """</tt> </tt>
+<a name="L178"></a><tt class="py-lineno">178</tt> <tt class="py-line"> <tt class="py-name">hamming</tt> <tt class="py-op">=</tt> <tt class="py-number">0</tt> </tt>
+<a name="L179"></a><tt class="py-lineno">179</tt> <tt class="py-line"> <tt class="py-name">not_hamming</tt><tt class="py-op">=</tt><tt class="py-number">0</tt> </tt>
+<a name="L180"></a><tt class="py-lineno">180</tt> <tt class="py-line"> <tt class="py-keyword">for</tt> <tt class="py-name">i</tt> <tt class="py-keyword">in</tt> <tt class="py-name">range</tt><tt class="py-op">(</tt><tt class="py-number">0</tt><tt class="py-op">,</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">original</tt><tt class="py-op">)</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L181"></a><tt class="py-lineno">181</tt> <tt class="py-line"> <tt class="py-keyword">if</tt> <tt class="py-op">(</tt><tt class="py-name">original</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">!=</tt><tt class="py-name">artificial</tt><tt class="py-op">[</tt><tt class="py-name">i</tt><tt class="py-op">]</tt><tt class="py-op">)</tt><tt class="py-op">:</tt> </tt>
+<a name="L182"></a><tt class="py-lineno">182</tt> <tt class="py-line"> <tt class="py-name">hamming</tt> <tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L183"></a><tt class="py-lineno">183</tt> <tt class="py-line">
</tt>
+<a name="L184"></a><tt class="py-lineno">184</tt> <tt class="py-line"> <tt class="py-keyword">else</tt><tt class="py-op">:</tt> </tt>
+<a name="L185"></a><tt class="py-lineno">185</tt> <tt class="py-line"> <tt class="py-name">not_hamming</tt><tt class="py-op">+=</tt><tt class="py-number">1</tt> </tt>
+<a name="L186"></a><tt class="py-lineno">186</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"#hamming distance REF-ART\t"</tt><tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">hamming</tt><tt class="py-op">)</tt><tt class="py-op">)</tt> </tt>
+<a name="L187"></a><tt class="py-lineno">187</tt> <tt class="py-line"> <tt class="py-keyword">print</tt> <tt class="py-op">(</tt><tt class="py-string">"avg. distance:\t"</tt> <tt class="py-op">+</tt> <tt class="py-name">str</tt><tt class="py-op">(</tt><tt class="py-name">len</tt><tt class="py-op">(</tt><tt class="py-name">original</tt><tt class="py-op">)</tt><tt class="py-op">/</tt><tt class="py-name">float</tt><tt class="py-op">(</tt><tt class="py-name">hamming</tt><tt class="py-op" [...]
+<a name="L188"></a><tt class="py-lineno">188</tt> <tt class="py-line"> <tt class="py-keyword">print</tt><tt class="py-op">(</tt><tt class="py-string">"###########################\r\n"</tt><tt class="py-op">)</tt> </tt>
+</div><a name="L189"></a><tt class="py-lineno">189</tt> <tt class="py-line"> </tt><script type="text/javascript">
+<!--
+expandto(location.href);
+// -->
+</script>
+</pre>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.insert_mutations-module.html b/doc/core.insert_mutations-module.html
new file mode 100644
index 0000000..5095591
--- /dev/null
+++ b/doc/core.insert_mutations-module.html
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.insert_mutations</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module insert_mutations
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.insert_mutations-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module insert_mutations</h1><p class="nomargin-top"></p>
+<p>Created 2012 core Script for the generation of the artificial
+ reference genome</p>
+ <p>The functions purpose is to to go through a list of positions and find
+ balanced mutations which fulfill the demands on the artificial reference
+ genome. Once a initial start positions is randomly selected all possible
+ triplets with hamming distance 1 are generated and looked up in a
+ dictionary which contains all triplet positions in the input genome. If a
+ suitable partner is found for the initial mutation the next start
+ positions is chosen randomly. Else: try all other triplets with hamming
+ distance 1 until no one is left. This process can be accelerated by
+ allowing unbalanced mutations, but this will cause differences in the
+ NUC/AA distribution and the AA neighborhood.</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list,list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.insert_mutations-module.html#getMutation" class="summary-sig-name">getMutation</a>(<span class="summary-sig-arg">AA</span>,
+ <span class="summary-sig-arg">Codon</span>)</span><br />
+ Returns a random mutation for a given AA and its Codon(DNA).</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Char,Char,int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.insert_mutations-module.html#getdifference" class="summary-sig-name">getdifference</a>(<span class="summary-sig-arg">triplet_old</span>,
+ <span class="summary-sig-arg">triplet_new</span>)</span><br />
+ Given two triplets, returns the differences between them plus the
+ position</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">Bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.insert_mutations-module.html#isvalidposition" class="summary-sig-name">isvalidposition</a>(<span class="summary-sig-arg">pdic</span>,
+ <span class="summary-sig-arg">iprime</span>,
+ <span class="summary-sig-arg">distance</span>)</span><br />
+ Checks if a position is valid for mutation.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">list</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.insert_mutations-module.html#mutate_random" class="summary-sig-name">mutate_random</a>(<span class="summary-sig-arg">DNA</span>,
+ <span class="summary-sig-arg">AminoAcid</span>,
+ <span class="summary-sig-arg">distance</span>,
+ <span class="summary-sig-arg">pdic</span>,
+ <span class="summary-sig-arg">rev</span>,
+ <span class="summary-sig-arg">header</span>,
+ <span class="summary-sig-arg">Random</span>,
+ <span class="summary-sig-arg">outputpath</span>)</span><br />
+ Mutates a given DNA(AminoAcid) Genomesequence on several positions
+ (distance based on DISTANCE var.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="getMutation"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getMutation</span>(<span class="sig-arg">AA</span>,
+ <span class="sig-arg">Codon</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Returns a random mutation for a given AA and its Codon(DNA). The
+ mutation is done in a way which supports the equilibrium of the
+ nucleotide distribution by only regarding hamming distance=1 Codons as
+ possible mutations</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>AA</code></strong> (string) - Single AA.</li>
+ <li><strong class="pname"><code>Codon</code></strong> (string) - 3-letter dna code.</li>
+ </ul></dd>
+ <dt>Returns: list,list</dt>
+ <dd>A list of all valid mutations (triplet) and the coresponding AA.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getdifference"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getdifference</span>(<span class="sig-arg">triplet_old</span>,
+ <span class="sig-arg">triplet_new</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Given two triplets, returns the differences between them plus the
+ position</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>triplet_old</code></strong> (string) - AA triplet.</li>
+ <li><strong class="pname"><code>triplet_new</code></strong> (string) - AA triplet.</li>
+ </ul></dd>
+ <dt>Returns: Char,Char,int</dt>
+ <dd>The new aminoacid, the old aminoacid and the position.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="isvalidposition"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">isvalidposition</span>(<span class="sig-arg">pdic</span>,
+ <span class="sig-arg">iprime</span>,
+ <span class="sig-arg">distance</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Checks if a position is valid for mutation. It queries all neighboring
+ positions (iprime +-distance) to check whether there already was a
+ mutation in pdic</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Diciontary containing mutations and start/ stop codons..</li>
+ <li><strong class="pname"><code>iprime</code></strong> (int) - Position of the prospective mutation (DNA level)</li>
+ <li><strong class="pname"><code>distance</code></strong> (int) - User defined parameter which limits the distance between two
+ mutations.</li>
+ </ul></dd>
+ <dt>Returns: Bool</dt>
+ <dd>Boolean which decides if the position is valid (1= yes,0 = no)</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="mutate_random"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">mutate_random</span>(<span class="sig-arg">DNA</span>,
+ <span class="sig-arg">AminoAcid</span>,
+ <span class="sig-arg">distance</span>,
+ <span class="sig-arg">pdic</span>,
+ <span class="sig-arg">rev</span>,
+ <span class="sig-arg">header</span>,
+ <span class="sig-arg">Random</span>,
+ <span class="sig-arg">outputpath</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Mutates a given DNA(AminoAcid) Genomesequence on several positions
+ (distance based on DISTANCE var. If one mutation is done a compareable
+ Triplet is searched to "reverse" the changes made in AA
+ distribution, N distribution, AA neighborhood</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>DNA</code></strong> (list) - DNA sequence of the reference genome.</li>
+ <li><strong class="pname"><code>AminoAcid</code></strong> (list) - AA sequence of the reference genome.</li>
+ <li><strong class="pname"><code>rev</code></strong> (Bool) - Boolean which decides if unbalanced mutations are allowed (only
+ initial mutation is performed)</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Diciontary containing mutations and start/ stop codons..</li>
+ <li><strong class="pname"><code>header</code></strong> (string) - Header for the resulting artificial reference file (fasta
+ format).</li>
+ <li><strong class="pname"><code>Random</code></strong> (Bool) - Boolean for choosing on of the mutation modes (linear = 0,random
+ = 1)</li>
+ <li><strong class="pname"><code>distance</code></strong> (int) - User defined parameter which limits the distance between two
+ mutations.</li>
+ </ul></dd>
+ <dt>Returns: list</dt>
+ <dd>Artificial reference genome sequence.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 10:43:16 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.orfs-module.html b/doc/core.orfs-module.html
new file mode 100644
index 0000000..2fe48ab
--- /dev/null
+++ b/doc/core.orfs-module.html
@@ -0,0 +1,328 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.orfs</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module orfs
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.orfs-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module orfs</h1><p class="nomargin-top"></p>
+<p>Created 2012</p>
+ <p>Script which contains the functionality to find start and stop codons
+ in all ORFs in the genome. It is very basic and does not consider
+ intro-exon structure. It is possible to generate the start / stop list
+ extern and give it as input to the main program.</p>
+ <p>This script is a python port from a java implementation by Franziska
+ Zickmann.</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.orfs-module.html#build_ORF" class="summary-sig-name">build_ORF</a>(<span class="summary-sig-arg">sequence</span>,
+ <span class="summary-sig-arg">file_ORF</span>,
+ <span class="summary-sig-arg">pdic</span>)</span><br />
+ Get orf positions (forward/backward) and return them in a dictionary</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.orfs-module.html#find_orfs" class="summary-sig-name">find_orfs</a>(<span class="summary-sig-arg">genomeSequence</span>,
+ <span class="summary-sig-arg">pdic</span>)</span><br />
+ function to identify open reading frames in a dna sequence, careful:
+ intron exon structures are not respected!</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">int</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.orfs-module.html#findstop_help" class="summary-sig-name">findstop_help</a>(<span class="summary-sig-arg">posLastStop</span>,
+ <span class="summary-sig-arg">sequence</span>,
+ <span class="summary-sig-arg">codon</span>)</span><br />
+ return the index of the first position of codon in the dna sequence</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="build_ORF"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">build_ORF</span>(<span class="sig-arg">sequence</span>,
+ <span class="sig-arg">file_ORF</span>,
+ <span class="sig-arg">pdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Get orf positions (forward/backward) and return them in a
+ dictionary</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sequence</code></strong> (string) - nucleotide sequence</li>
+ <li><strong class="pname"><code>file_ORF</code></strong> (string) - outputfile</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Used to start start / end positions of ORFs.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Stored start start / end positions of ORFs</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="find_orfs"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">find_orfs</span>(<span class="sig-arg">genomeSequence</span>,
+ <span class="sig-arg">pdic</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>function to identify open reading frames in a dna sequence, careful:
+ intron exon structures are not respected!</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>genomeSequence</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>pdic</code></strong> (dictionary) - Used to store start / end positions of ORFs.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Found start / end positions in the sequence consindering only
+ the ORFs.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="findstop_help"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">findstop_help</span>(<span class="sig-arg">posLastStop</span>,
+ <span class="sig-arg">sequence</span>,
+ <span class="sig-arg">codon</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>return the index of the first position of codon in the dna
+ sequence</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>posLastStop</code></strong> (int) - Position of the last found stop codon.</li>
+ <li><strong class="pname"><code>sequence</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>codon</code></strong> (string) - 3-letter DNA code.</li>
+ </ul></dd>
+ <dt>Returns: int</dt>
+ <dd>The position of the stop codon in the nucleotide sequence.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 10:43:16 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.prep-module.html b/doc/core.prep-module.html
new file mode 100644
index 0000000..10fc3ac
--- /dev/null
+++ b/doc/core.prep-module.html
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.prep</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module prep
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.prep-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module prep</h1><p class="nomargin-top"></p>
+<p>Created on Nov 11, 2011</p>
+ <p>Contains various help functions which initialize / translate
+ /preprocess the data</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.prep-module.html#createdic" class="summary-sig-name">createdic</a>(<span class="summary-sig-arg">AAsequence</span>)</span><br />
+ Creates the dictionary for the AA triplets and searches the starting
+ indices of the triplets in the given aminoacid sequence.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">bool</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.prep-module.html#isvalidtriplet" class="summary-sig-name">isvalidtriplet</a>(<span class="summary-sig-arg">codon</span>,
+ <span class="summary-sig-arg">dictentry</span>)</span><br />
+ Function which checks if a given triplet has max hamming distance of
+ 1 to a other triplet.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">dictionary</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.prep-module.html#loadpickle" class="summary-sig-name">loadpickle</a>(<span class="summary-sig-arg">inputname</span>)</span><br />
+ basic pickle functions.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.prep-module.html#savepickle" class="summary-sig-name">savepickle</a>(<span class="summary-sig-arg">dictionary</span>,
+ <span class="summary-sig-arg">outputname</span>)</span><br />
+ basic pickle functions.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">prot,rest</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.prep-module.html#trans_seq" class="summary-sig-name">trans_seq</a>(<span class="summary-sig-arg">DNA</span>)</span><br />
+ Funtion which translates DNA to AA</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a href="core.prep-module.html#genetic_code" class="summary-name">genetic_code</a> = <code title="{'AAA': 'K',
+ 'AAC': 'N',
+ 'AAG': 'K',
+ 'AAT': 'N',
+ 'ACA': 'T',
+ 'ACC': 'T',
+ 'ACG': 'T',
+ 'ACT': 'T',
+..."><code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">AAA</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">K</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">AAC</code><code class="variable-quote">'</code><code class="variable-op">: </code><code [...]
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="createdic"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">createdic</span>(<span class="sig-arg">AAsequence</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Creates the dictionary for the AA triplets and searches the starting
+ indices of the triplets in the given aminoacid sequence.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>AAsequence</code></strong> (string) - aminoacid sequence</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>A dictionary with starting positions of each triplet in the given
+ AA sequence</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="isvalidtriplet"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">isvalidtriplet</span>(<span class="sig-arg">codon</span>,
+ <span class="sig-arg">dictentry</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Function which checks if a given triplet has max hamming distance of 1
+ to a other triplet. Used for generation of possible substitutions
+ triplets</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>codon</code></strong> (string) - nucleotide triplet</li>
+ <li><strong class="pname"><code>dictentry</code></strong> (string) - nucleotide triplet</li>
+ </ul></dd>
+ <dt>Returns: bool</dt>
+ <dd>Boolean value. True if max hamming distance 1,else False .</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="loadpickle"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">loadpickle</span>(<span class="sig-arg">inputname</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>basic pickle functions. actually for debugging and to speed up
+ multiple simulations ( possible to load orf lists)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>inputname</code></strong> (string) - Filename for loading.</li>
+ </ul></dd>
+ <dt>Returns: dictionary</dt>
+ <dd>Dictionary containing start and end positions of ORFs.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="savepickle"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">savepickle</span>(<span class="sig-arg">dictionary</span>,
+ <span class="sig-arg">outputname</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>basic pickle functions. actually for debugging and to speed up
+ multiple simulations ( possible to load orf lists)</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>dictionary</code></strong> (dictionary) - Dictionary containg start and end positions of ORFs.</li>
+ <li><strong class="pname"><code>outputname</code></strong> (string) - Filename for saving.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="trans_seq"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">trans_seq</span>(<span class="sig-arg">DNA</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Funtion which translates DNA to AA</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>DNA</code></strong> (list) - nucleotide sequence</li>
+ </ul></dd>
+ <dt>Returns: prot,rest</dt>
+ <dd>Translated aminoacid sequence,untranslated nucleotide sequence</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== VARIABLES DETAILS ==================== -->
+<a name="section-VariablesDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-VariablesDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="genetic_code"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <h3 class="epydoc">genetic_code</h3>
+
+ <dl class="fields">
+ </dl>
+ <dl class="fields">
+ <dt>Value:</dt>
+ <dd><table><tr><td><pre class="variable">
+<code class="variable-group">{</code><code class="variable-quote">'</code><code class="variable-string">AAA</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">K</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">AAC</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">N</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">AAG</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">K</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">AAT</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">N</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">ACA</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">T</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">ACC</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">T</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">ACG</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">T</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+ <code class="variable-quote">'</code><code class="variable-string">ACT</code><code class="variable-quote">'</code><code class="variable-op">: </code><code class="variable-quote">'</code><code class="variable-string">T</code><code class="variable-quote">'</code><code class="variable-op">,</code>
+<code class="variable-ellipsis">...</code>
+</pre></td></tr></table>
+</dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 10:43:16 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/core.readandwrite-module.html b/doc/core.readandwrite-module.html
new file mode 100644
index 0000000..34306cf
--- /dev/null
+++ b/doc/core.readandwrite-module.html
@@ -0,0 +1,501 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core.readandwrite</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ <a href="core-module.html">Package core</a> ::
+ Module readandwrite
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="core.readandwrite-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== MODULE DESCRIPTION ==================== -->
+<h1 class="epydoc">Module readandwrite</h1><p class="nomargin-top"></p>
+<p>Created on Nov 11, 2011</p>
+ <p>Contains various help functions which read or produce an input/
+ output</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#aa_dist_seq" class="summary-sig-name">aa_dist_seq</a>(<span class="summary-sig-arg">seq</span>,
+ <span class="summary-sig-arg">txt_file</span>,
+ <span class="summary-sig-arg">shallwrite</span>)</span><br />
+ Writes the AA distribution in a file and returns the dictionary.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#gethammingdistance" class="summary-sig-name">gethammingdistance</a>(<span class="summary-sig-arg">original</span>,
+ <span class="summary-sig-arg">artificial</span>)</span><br />
+ Calculates the hamming distances between two sequences.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#nucleotide_dist_file" class="summary-sig-name">nucleotide_dist_file</a>(<span class="summary-sig-arg">file_fasta</span>,
+ <span class="summary-sig-arg">txt_file</span>)</span><br />
+ Writes the DNA distribution in a file and returns the dictionary.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#nucleotide_dist_seq" class="summary-sig-name">nucleotide_dist_seq</a>(<span class="summary-sig-arg">seq</span>,
+ <span class="summary-sig-arg">txt_file</span>,
+ <span class="summary-sig-arg">shallwrite</span>)</span><br />
+ Writes the nucleotide distribution in a file and returns the
+ dictionary.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type">HTSeq Sequence object</span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#readdna" class="summary-sig-name">readdna</a>(<span class="summary-sig-arg">filename</span>)</span><br />
+ Reads in the dna sequence of the given fasta</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#writefile" class="summary-sig-name">writefile</a>(<span class="summary-sig-arg">sequenceObject</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Writes a given sequence object to a fasta file.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="core.readandwrite-module.html#writeoverview" class="summary-sig-name">writeoverview</a>(<span class="summary-sig-arg">Ndic_G</span>,
+ <span class="summary-sig-arg">aadic_G</span>,
+ <span class="summary-sig-arg">Ndic_AR</span>,
+ <span class="summary-sig-arg">aadic_AR</span>,
+ <span class="summary-sig-arg">filename</span>)</span><br />
+ Creates the "delta" file for the comparison of the two
+ chromosoms.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="'core'"><code class="variable-quote">'</code><code class="variable-string">core</code><code class="variable-quote">'</code></code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="aa_dist_seq"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">aa_dist_seq</span>(<span class="sig-arg">seq</span>,
+ <span class="sig-arg">txt_file</span>,
+ <span class="sig-arg">shallwrite</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Writes the AA distribution in a file and returns the dictionary.
+ adjust s for % results.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>seq</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>txt_file</code></strong> (string) - Output compare file.</li>
+ <li><strong class="pname"><code>shallwrite</code></strong> (Bool) - Write output in percentages..</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="gethammingdistance"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">gethammingdistance</span>(<span class="sig-arg">original</span>,
+ <span class="sig-arg">artificial</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Calculates the hamming distances between two sequences.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>original</code></strong> (list) - Nucleotide sequence from the reference.</li>
+ <li><strong class="pname"><code>artificial</code></strong> (list) - Nucleotide sequence from the artificial reference.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="nucleotide_dist_file"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">nucleotide_dist_file</span>(<span class="sig-arg">file_fasta</span>,
+ <span class="sig-arg">txt_file</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Writes the DNA distribution in a file and returns the dictionary.
+ adjust n for % results</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>file_fasta</code></strong> (string) - DNA Sequence</li>
+ <li><strong class="pname"><code>txt_file</code></strong> (string) - Filename for output.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="nucleotide_dist_seq"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">nucleotide_dist_seq</span>(<span class="sig-arg">seq</span>,
+ <span class="sig-arg">txt_file</span>,
+ <span class="sig-arg">shallwrite</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Writes the nucleotide distribution in a file and returns the
+ dictionary. adjust s for % results.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>seq</code></strong> (string) - Nucleotide sequence.</li>
+ <li><strong class="pname"><code>txt_file</code></strong> (string) - Output compare file.</li>
+ <li><strong class="pname"><code>shallwrite</code></strong> (Bool) - Decides if percentages values are written to the output.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="readdna"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">readdna</span>(<span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Reads in the dna sequence of the given fasta</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>filename</code></strong> (string) - Fasta-file used as input.</li>
+ </ul></dd>
+ <dt>Returns: HTSeq Sequence object</dt>
+ <dd>Reference Fasta.</dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="writefile"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">writefile</span>(<span class="sig-arg">sequenceObject</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Writes a given sequence object to a fasta file.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>sequenceObject</code></strong> (HTSeq Sequence object) - Reference sequence as fasta.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="writeoverview"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">writeoverview</span>(<span class="sig-arg">Ndic_G</span>,
+ <span class="sig-arg">aadic_G</span>,
+ <span class="sig-arg">Ndic_AR</span>,
+ <span class="sig-arg">aadic_AR</span>,
+ <span class="sig-arg">filename</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Creates the "delta" file for the comparison of the two
+ chromosoms. This file contains the differences in nucleotide distribution
+ between reference and artificial. input: nucleotid dictionary genom, aa
+ dictionary genome, nucleotid dictionary artificial chromosom, aa
+ dictionary, filename</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>Ndic_G</code></strong> (dictionary) - Nucleotid dictionary genom.</li>
+ <li><strong class="pname"><code>aadic_G</code></strong> (dictionary) - AA dictionary genome.</li>
+ <li><strong class="pname"><code>Ndic_AR</code></strong> (dictionary) - Nucleotid dictionary artificial.</li>
+ <li><strong class="pname"><code>aadic_AR</code></strong> (dictionary) - AA dictionary artificial</li>
+ <li><strong class="pname"><code>filename</code></strong> (string) - Output filename.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Wed Mar 13 10:43:16 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/crarr.png b/doc/crarr.png
new file mode 100644
index 0000000..26b43c5
Binary files /dev/null and b/doc/crarr.png differ
diff --git a/doc/epydoc.css b/doc/epydoc.css
new file mode 100644
index 0000000..86d4170
--- /dev/null
+++ b/doc/epydoc.css
@@ -0,0 +1,322 @@
+
+
+/* Epydoc CSS Stylesheet
+ *
+ * This stylesheet can be used to customize the appearance of epydoc's
+ * HTML output.
+ *
+ */
+
+/* Default Colors & Styles
+ * - Set the default foreground & background color with 'body'; and
+ * link colors with 'a:link' and 'a:visited'.
+ * - Use bold for decision list terms.
+ * - The heading styles defined here are used for headings *within*
+ * docstring descriptions. All headings used by epydoc itself use
+ * either class='epydoc' or class='toc' (CSS styles for both
+ * defined below).
+ */
+body { background: #ffffff; color: #000000; }
+p { margin-top: 0.5em; margin-bottom: 0.5em; }
+a:link { color: #0000ff; }
+a:visited { color: #204080; }
+dt { font-weight: bold; }
+h1 { font-size: +140%; font-style: italic;
+ font-weight: bold; }
+h2 { font-size: +125%; font-style: italic;
+ font-weight: bold; }
+h3 { font-size: +110%; font-style: italic;
+ font-weight: normal; }
+code { font-size: 100%; }
+/* N.B.: class, not pseudoclass */
+a.link { font-family: monospace; }
+
+/* Page Header & Footer
+ * - The standard page header consists of a navigation bar (with
+ * pointers to standard pages such as 'home' and 'trees'); a
+ * breadcrumbs list, which can be used to navigate to containing
+ * classes or modules; options links, to show/hide private
+ * variables and to show/hide frames; and a page title (using
+ * <h1>). The page title may be followed by a link to the
+ * corresponding source code (using 'span.codelink').
+ * - The footer consists of a navigation bar, a timestamp, and a
+ * pointer to epydoc's homepage.
+ */
+h1.epydoc { margin: 0; font-size: +140%; font-weight: bold; }
+h2.epydoc { font-size: +130%; font-weight: bold; }
+h3.epydoc { font-size: +115%; font-weight: bold;
+ margin-top: 0.2em; }
+td h3.epydoc { font-size: +115%; font-weight: bold;
+ margin-bottom: 0; }
+table.navbar { background: #a0c0ff; color: #000000;
+ border: 2px groove #c0d0d0; }
+table.navbar table { color: #000000; }
+th.navbar-select { background: #70b0ff;
+ color: #000000; }
+table.navbar a { text-decoration: none; }
+table.navbar a:link { color: #0000ff; }
+table.navbar a:visited { color: #204080; }
+span.breadcrumbs { font-size: 85%; font-weight: bold; }
+span.options { font-size: 70%; }
+span.codelink { font-size: 85%; }
+td.footer { font-size: 85%; }
+
+/* Table Headers
+ * - Each summary table and details section begins with a 'header'
+ * row. This row contains a section title (marked by
+ * 'span.table-header') as well as a show/hide private link
+ * (marked by 'span.options', defined above).
+ * - Summary tables that contain user-defined groups mark those
+ * groups using 'group header' rows.
+ */
+td.table-header { background: #70b0ff; color: #000000;
+ border: 1px solid #608090; }
+td.table-header table { color: #000000; }
+td.table-header table a:link { color: #0000ff; }
+td.table-header table a:visited { color: #204080; }
+span.table-header { font-size: 120%; font-weight: bold; }
+th.group-header { background: #c0e0f8; color: #000000;
+ text-align: left; font-style: italic;
+ font-size: 115%;
+ border: 1px solid #608090; }
+
+/* Summary Tables (functions, variables, etc)
+ * - Each object is described by a single row of the table with
+ * two cells. The left cell gives the object's type, and is
+ * marked with 'code.summary-type'. The right cell gives the
+ * object's name and a summary description.
+ * - CSS styles for the table's header and group headers are
+ * defined above, under 'Table Headers'
+ */
+table.summary { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin-bottom: 0.5em; }
+td.summary { border: 1px solid #608090; }
+code.summary-type { font-size: 85%; }
+table.summary a:link { color: #0000ff; }
+table.summary a:visited { color: #204080; }
+
+
+/* Details Tables (functions, variables, etc)
+ * - Each object is described in its own div.
+ * - A single-row summary table w/ table-header is used as
+ * a header for each details section (CSS style for table-header
+ * is defined above, under 'Table Headers').
+ */
+table.details { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin: .2em 0 0 0; }
+table.details table { color: #000000; }
+table.details a:link { color: #0000ff; }
+table.details a:visited { color: #204080; }
+
+/* Fields */
+dl.fields { margin-left: 2em; margin-top: 1em;
+ margin-bottom: 1em; }
+dl.fields dd ul { margin-left: 0em; padding-left: 0em; }
+dl.fields dd ul li ul { margin-left: 2em; padding-left: 0em; }
+div.fields { margin-left: 2em; }
+div.fields p { margin-bottom: 0.5em; }
+
+/* Index tables (identifier index, term index, etc)
+ * - link-index is used for indices containing lists of links
+ * (namely, the identifier index & term index).
+ * - index-where is used in link indices for the text indicating
+ * the container/source for each link.
+ * - metadata-index is used for indices containing metadata
+ * extracted from fields (namely, the bug index & todo index).
+ */
+table.link-index { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090; }
+td.link-index { border-width: 0px; }
+table.link-index a:link { color: #0000ff; }
+table.link-index a:visited { color: #204080; }
+span.index-where { font-size: 70%; }
+table.metadata-index { border-collapse: collapse;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #608090;
+ margin: .2em 0 0 0; }
+td.metadata-index { border-width: 1px; border-style: solid; }
+table.metadata-index a:link { color: #0000ff; }
+table.metadata-index a:visited { color: #204080; }
+
+/* Function signatures
+ * - sig* is used for the signature in the details section.
+ * - .summary-sig* is used for the signature in the summary
+ * table, and when listing property accessor functions.
+ * */
+.sig-name { color: #006080; }
+.sig-arg { color: #008060; }
+.sig-default { color: #602000; }
+.summary-sig { font-family: monospace; }
+.summary-sig-name { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:link
+ { color: #006080; font-weight: bold; }
+table.summary a.summary-sig-name:visited
+ { color: #006080; font-weight: bold; }
+.summary-sig-arg { color: #006040; }
+.summary-sig-default { color: #501800; }
+
+/* Subclass list
+ */
+ul.subclass-list { display: inline; }
+ul.subclass-list li { display: inline; }
+
+/* To render variables, classes etc. like functions */
+table.summary .summary-name { color: #006080; font-weight: bold;
+ font-family: monospace; }
+table.summary
+ a.summary-name:link { color: #006080; font-weight: bold;
+ font-family: monospace; }
+table.summary
+ a.summary-name:visited { color: #006080; font-weight: bold;
+ font-family: monospace; }
+
+/* Variable values
+ * - In the 'variable details' sections, each varaible's value is
+ * listed in a 'pre.variable' box. The width of this box is
+ * restricted to 80 chars; if the value's repr is longer than
+ * this it will be wrapped, using a backslash marked with
+ * class 'variable-linewrap'. If the value's repr is longer
+ * than 3 lines, the rest will be ellided; and an ellipsis
+ * marker ('...' marked with 'variable-ellipsis') will be used.
+ * - If the value is a string, its quote marks will be marked
+ * with 'variable-quote'.
+ * - If the variable is a regexp, it is syntax-highlighted using
+ * the re* CSS classes.
+ */
+pre.variable { padding: .5em; margin: 0;
+ background: #dce4ec; color: #000000;
+ border: 1px solid #708890; }
+.variable-linewrap { color: #604000; font-weight: bold; }
+.variable-ellipsis { color: #604000; font-weight: bold; }
+.variable-quote { color: #604000; font-weight: bold; }
+.variable-group { color: #008000; font-weight: bold; }
+.variable-op { color: #604000; font-weight: bold; }
+.variable-string { color: #006030; }
+.variable-unknown { color: #a00000; font-weight: bold; }
+.re { color: #000000; }
+.re-char { color: #006030; }
+.re-op { color: #600000; }
+.re-group { color: #003060; }
+.re-ref { color: #404040; }
+
+/* Base tree
+ * - Used by class pages to display the base class hierarchy.
+ */
+pre.base-tree { font-size: 80%; margin: 0; }
+
+/* Frames-based table of contents headers
+ * - Consists of two frames: one for selecting modules; and
+ * the other listing the contents of the selected module.
+ * - h1.toc is used for each frame's heading
+ * - h2.toc is used for subheadings within each frame.
+ */
+h1.toc { text-align: center; font-size: 105%;
+ margin: 0; font-weight: bold;
+ padding: 0; }
+h2.toc { font-size: 100%; font-weight: bold;
+ margin: 0.5em 0 0 -0.3em; }
+
+/* Syntax Highlighting for Source Code
+ * - doctest examples are displayed in a 'pre.py-doctest' block.
+ * If the example is in a details table entry, then it will use
+ * the colors specified by the 'table pre.py-doctest' line.
+ * - Source code listings are displayed in a 'pre.py-src' block.
+ * Each line is marked with 'span.py-line' (used to draw a line
+ * down the left margin, separating the code from the line
+ * numbers). Line numbers are displayed with 'span.py-lineno'.
+ * The expand/collapse block toggle button is displayed with
+ * 'a.py-toggle' (Note: the CSS style for 'a.py-toggle' should not
+ * modify the font size of the text.)
+ * - If a source code page is opened with an anchor, then the
+ * corresponding code block will be highlighted. The code
+ * block's header is highlighted with 'py-highlight-hdr'; and
+ * the code block's body is highlighted with 'py-highlight'.
+ * - The remaining py-* classes are used to perform syntax
+ * highlighting (py-string for string literals, py-name for names,
+ * etc.)
+ */
+pre.py-doctest { padding: .5em; margin: 1em;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #708890; }
+table pre.py-doctest { background: #dce4ec;
+ color: #000000; }
+pre.py-src { border: 2px solid #000000;
+ background: #f0f0f0; color: #000000; }
+.py-line { border-left: 2px solid #000000;
+ margin-left: .2em; padding-left: .4em; }
+.py-lineno { font-style: italic; font-size: 90%;
+ padding-left: .5em; }
+a.py-toggle { text-decoration: none; }
+div.py-highlight-hdr { border-top: 2px solid #000000;
+ border-bottom: 2px solid #000000;
+ background: #d8e8e8; }
+div.py-highlight { border-bottom: 2px solid #000000;
+ background: #d0e0e0; }
+.py-prompt { color: #005050; font-weight: bold;}
+.py-more { color: #005050; font-weight: bold;}
+.py-string { color: #006030; }
+.py-comment { color: #003060; }
+.py-keyword { color: #600000; }
+.py-output { color: #404040; }
+.py-name { color: #000050; }
+.py-name:link { color: #000050 !important; }
+.py-name:visited { color: #000050 !important; }
+.py-number { color: #005000; }
+.py-defname { color: #000060; font-weight: bold; }
+.py-def-name { color: #000060; font-weight: bold; }
+.py-base-class { color: #000060; }
+.py-param { color: #000060; }
+.py-docstring { color: #006030; }
+.py-decorator { color: #804020; }
+/* Use this if you don't want links to names underlined: */
+/*a.py-name { text-decoration: none; }*/
+
+/* Graphs & Diagrams
+ * - These CSS styles are used for graphs & diagrams generated using
+ * Graphviz dot. 'img.graph-without-title' is used for bare
+ * diagrams (to remove the border created by making the image
+ * clickable).
+ */
+img.graph-without-title { border: none; }
+img.graph-with-title { border: 1px solid #000000; }
+span.graph-title { font-weight: bold; }
+span.graph-caption { }
+
+/* General-purpose classes
+ * - 'p.indent-wrapped-lines' defines a paragraph whose first line
+ * is not indented, but whose subsequent lines are.
+ * - The 'nomargin-top' class is used to remove the top margin (e.g.
+ * from lists). The 'nomargin' class is used to remove both the
+ * top and bottom margin (but not the left or right margin --
+ * for lists, that would cause the bullets to disappear.)
+ */
+p.indent-wrapped-lines { padding: 0 0 0 7em; text-indent: -7em;
+ margin: 0; }
+.nomargin-top { margin-top: 0; }
+.nomargin { margin-top: 0; margin-bottom: 0; }
+
+/* HTML Log */
+div.log-block { padding: 0; margin: .5em 0 .5em 0;
+ background: #e8f0f8; color: #000000;
+ border: 1px solid #000000; }
+div.log-error { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #ffb0b0; color: #000000;
+ border: 1px solid #000000; }
+div.log-warning { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #ffffb0; color: #000000;
+ border: 1px solid #000000; }
+div.log-info { padding: .1em .3em .1em .3em; margin: 4px;
+ background: #b0ffb0; color: #000000;
+ border: 1px solid #000000; }
+h2.log-hdr { background: #70b0ff; color: #000000;
+ margin: 0; padding: 0em 0.5em 0em 0.5em;
+ border-bottom: 1px solid #000000; font-size: 110%; }
+p.log { font-weight: bold; margin: .5em 0 .5em 0; }
+tr.opt-changed { color: #000000; font-weight: bold; }
+tr.opt-default { color: #606060; }
+pre.log { margin: 0; padding: 0; padding-left: 1em; }
diff --git a/doc/epydoc.js b/doc/epydoc.js
new file mode 100644
index 0000000..e787dbc
--- /dev/null
+++ b/doc/epydoc.js
@@ -0,0 +1,293 @@
+function toggle_private() {
+ // Search for any private/public links on this page. Store
+ // their old text in "cmd," so we will know what action to
+ // take; and change their text to the opposite action.
+ var cmd = "?";
+ var elts = document.getElementsByTagName("a");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "privatelink") {
+ cmd = elts[i].innerHTML;
+ elts[i].innerHTML = ((cmd && cmd.substr(0,4)=="show")?
+ "hide private":"show private");
+ }
+ }
+ // Update all DIVs containing private objects.
+ var elts = document.getElementsByTagName("div");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+ }
+ else if (elts[i].className == "public") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"block":"none");
+ }
+ }
+ // Update all table rows containing private objects. Note, we
+ // use "" instead of "block" becaue IE & firefox disagree on what
+ // this should be (block vs table-row), and "" just gives the
+ // default for both browsers.
+ var elts = document.getElementsByTagName("tr");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"");
+ }
+ }
+ // Update all list items containing private objects.
+ var elts = document.getElementsByTagName("li");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?
+ "none":"");
+ }
+ }
+ // Update all list items containing private objects.
+ var elts = document.getElementsByTagName("ul");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "private") {
+ elts[i].style.display = ((cmd && cmd.substr(0,4)=="hide")?"none":"block");
+ }
+ }
+ // Set a cookie to remember the current option.
+ document.cookie = "EpydocPrivate="+cmd;
+ }
+function show_private() {
+ var elts = document.getElementsByTagName("a");
+ for(var i=0; i<elts.length; i++) {
+ if (elts[i].className == "privatelink") {
+ cmd = elts[i].innerHTML;
+ if (cmd && cmd.substr(0,4)=="show")
+ toggle_private();
+ }
+ }
+ }
+function getCookie(name) {
+ var dc = document.cookie;
+ var prefix = name + "=";
+ var begin = dc.indexOf("; " + prefix);
+ if (begin == -1) {
+ begin = dc.indexOf(prefix);
+ if (begin != 0) return null;
+ } else
+ { begin += 2; }
+ var end = document.cookie.indexOf(";", begin);
+ if (end == -1)
+ { end = dc.length; }
+ return unescape(dc.substring(begin + prefix.length, end));
+ }
+function setFrame(url1, url2) {
+ parent.frames[1].location.href = url1;
+ parent.frames[2].location.href = url2;
+ }
+function checkCookie() {
+ var cmd=getCookie("EpydocPrivate");
+ if (cmd && cmd.substr(0,4)!="show" && location.href.indexOf("#_") < 0)
+ toggle_private();
+ }
+function toggleCallGraph(id) {
+ var elt = document.getElementById(id);
+ if (elt.style.display == "none")
+ elt.style.display = "block";
+ else
+ elt.style.display = "none";
+ }
+function expand(id) {
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.style.display = "block";
+ var elt = document.getElementById(id+"-expanded-linenums");
+ if (elt) elt.style.display = "block";
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+ var elt = document.getElementById(id+"-collapsed-linenums");
+ if (elt) { elt.innerHTML = ""; elt.style.display = "none"; }
+ var elt = document.getElementById(id+"-toggle");
+ if (elt) { elt.innerHTML = "-"; }
+}
+
+function collapse(id) {
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.style.display = "none";
+ var elt = document.getElementById(id+"-expanded-linenums");
+ if (elt) elt.style.display = "none";
+ var elt = document.getElementById(id+"-collapsed-linenums");
+ if (elt) { elt.innerHTML = "<br />"; elt.style.display="block"; }
+ var elt = document.getElementById(id+"-toggle");
+ if (elt) { elt.innerHTML = "+"; }
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) {
+ elt.style.display = "block";
+
+ var indent = elt.getAttribute("indent");
+ var pad = elt.getAttribute("pad");
+ var s = "<tt class='py-lineno'>";
+ for (var i=0; i<pad.length; i++) { s += " " }
+ s += "</tt>";
+ s += " <tt class='py-line'>";
+ for (var i=0; i<indent.length; i++) { s += " " }
+ s += "<a href='#' onclick='expand(\"" + id;
+ s += "\");return false'>...</a></tt><br />";
+ elt.innerHTML = s;
+ }
+}
+
+function toggle(id) {
+ elt = document.getElementById(id+"-toggle");
+ if (elt.innerHTML == "-")
+ collapse(id);
+ else
+ expand(id);
+ return false;
+}
+
+function highlight(id) {
+ var elt = document.getElementById(id+"-def");
+ if (elt) elt.className = "py-highlight-hdr";
+ var elt = document.getElementById(id+"-expanded");
+ if (elt) elt.className = "py-highlight";
+ var elt = document.getElementById(id+"-collapsed");
+ if (elt) elt.className = "py-highlight";
+}
+
+function num_lines(s) {
+ var n = 1;
+ var pos = s.indexOf("\n");
+ while ( pos > 0) {
+ n += 1;
+ pos = s.indexOf("\n", pos+1);
+ }
+ return n;
+}
+
+// Collapse all blocks that mave more than `min_lines` lines.
+function collapse_all(min_lines) {
+ var elts = document.getElementsByTagName("div");
+ for (var i=0; i<elts.length; i++) {
+ var elt = elts[i];
+ var split = elt.id.indexOf("-");
+ if (split > 0)
+ if (elt.id.substring(split, elt.id.length) == "-expanded")
+ if (num_lines(elt.innerHTML) > min_lines)
+ collapse(elt.id.substring(0, split));
+ }
+}
+
+function expandto(href) {
+ var start = href.indexOf("#")+1;
+ if (start != 0 && start != href.length) {
+ if (href.substring(start, href.length) != "-") {
+ collapse_all(4);
+ pos = href.indexOf(".", start);
+ while (pos != -1) {
+ var id = href.substring(start, pos);
+ expand(id);
+ pos = href.indexOf(".", pos+1);
+ }
+ var id = href.substring(start, href.length);
+ expand(id);
+ highlight(id);
+ }
+ }
+}
+
+function kill_doclink(id) {
+ var parent = document.getElementById(id);
+ parent.removeChild(parent.childNodes.item(0));
+}
+function auto_kill_doclink(ev) {
+ if (!ev) var ev = window.event;
+ if (!this.contains(ev.toElement)) {
+ var parent = document.getElementById(this.parentID);
+ parent.removeChild(parent.childNodes.item(0));
+ }
+}
+
+function doclink(id, name, targets_id) {
+ var elt = document.getElementById(id);
+
+ // If we already opened the box, then destroy it.
+ // (This case should never occur, but leave it in just in case.)
+ if (elt.childNodes.length > 1) {
+ elt.removeChild(elt.childNodes.item(0));
+ }
+ else {
+ // The outer box: relative + inline positioning.
+ var box1 = document.createElement("div");
+ box1.style.position = "relative";
+ box1.style.display = "inline";
+ box1.style.top = 0;
+ box1.style.left = 0;
+
+ // A shadow for fun
+ var shadow = document.createElement("div");
+ shadow.style.position = "absolute";
+ shadow.style.left = "-1.3em";
+ shadow.style.top = "-1.3em";
+ shadow.style.background = "#404040";
+
+ // The inner box: absolute positioning.
+ var box2 = document.createElement("div");
+ box2.style.position = "relative";
+ box2.style.border = "1px solid #a0a0a0";
+ box2.style.left = "-.2em";
+ box2.style.top = "-.2em";
+ box2.style.background = "white";
+ box2.style.padding = ".3em .4em .3em .4em";
+ box2.style.fontStyle = "normal";
+ box2.onmouseout=auto_kill_doclink;
+ box2.parentID = id;
+
+ // Get the targets
+ var targets_elt = document.getElementById(targets_id);
+ var targets = targets_elt.getAttribute("targets");
+ var links = "";
+ target_list = targets.split(",");
+ for (var i=0; i<target_list.length; i++) {
+ var target = target_list[i].split("=");
+ links += "<li><a href='" + target[1] +
+ "' style='text-decoration:none'>" +
+ target[0] + "</a></li>";
+ }
+
+ // Put it all together.
+ elt.insertBefore(box1, elt.childNodes.item(0));
+ //box1.appendChild(box2);
+ box1.appendChild(shadow);
+ shadow.appendChild(box2);
+ box2.innerHTML =
+ "Which <b>"+name+"</b> do you want to see documentation for?" +
+ "<ul style='margin-bottom: 0;'>" +
+ links +
+ "<li><a href='#' style='text-decoration:none' " +
+ "onclick='kill_doclink(\""+id+"\");return false;'>"+
+ "<i>None of the above</i></a></li></ul>";
+ }
+ return false;
+}
+
+function get_anchor() {
+ var href = location.href;
+ var start = href.indexOf("#")+1;
+ if ((start != 0) && (start != href.length))
+ return href.substring(start, href.length);
+ }
+function redirect_url(dottedName) {
+ // Scan through each element of the "pages" list, and check
+ // if "name" matches with any of them.
+ for (var i=0; i<pages.length; i++) {
+
+ // Each page has the form "<pagename>-m" or "<pagename>-c";
+ // extract the <pagename> portion & compare it to dottedName.
+ var pagename = pages[i].substring(0, pages[i].length-2);
+ if (pagename == dottedName.substring(0,pagename.length)) {
+
+ // We've found a page that matches `dottedName`;
+ // construct its URL, using leftover `dottedName`
+ // content to form an anchor.
+ var pagetype = pages[i].charAt(pages[i].length-1);
+ var url = pagename + ((pagetype=="m")?"-module.html":
+ "-class.html");
+ if (dottedName.length > pagename.length)
+ url += "#" + dottedName.substring(pagename.length+1,
+ dottedName.length);
+ return url;
+ }
+ }
+ }
diff --git a/doc/frames.html b/doc/frames.html
new file mode 100644
index 0000000..31bae81
--- /dev/null
+++ b/doc/frames.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title> ARDEN </title>
+</head>
+<frameset cols="20%,80%">
+ <frameset rows="30%,70%">
+ <frame src="toc.html" name="moduleListFrame"
+ id="moduleListFrame" />
+ <frame src="toc-everything.html" name="moduleFrame"
+ id="moduleFrame" />
+ </frameset>
+ <frame src="module-tree.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/doc/help.html b/doc/help.html
new file mode 100644
index 0000000..56c1d41
--- /dev/null
+++ b/doc/help.html
@@ -0,0 +1,272 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Help</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Help </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%"> </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="help.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+<h1 class="epydoc"> API Documentation </h1>
+
+<p> This document contains the API (Application Programming Interface)
+documentation for ARDEN. Documentation for the Python
+objects defined by the project is divided into separate pages for each
+package, module, and class. The API documentation also includes two
+pages containing information about the project as a whole: a trees
+page, and an index page. </p>
+
+<h2> Object Documentation </h2>
+
+ <p>Each <strong>Package Documentation</strong> page contains: </p>
+ <ul>
+ <li> A description of the package. </li>
+ <li> A list of the modules and sub-packages contained by the
+ package. </li>
+ <li> A summary of the classes defined by the package. </li>
+ <li> A summary of the functions defined by the package. </li>
+ <li> A summary of the variables defined by the package. </li>
+ <li> A detailed description of each function defined by the
+ package. </li>
+ <li> A detailed description of each variable defined by the
+ package. </li>
+ </ul>
+
+ <p>Each <strong>Module Documentation</strong> page contains:</p>
+ <ul>
+ <li> A description of the module. </li>
+ <li> A summary of the classes defined by the module. </li>
+ <li> A summary of the functions defined by the module. </li>
+ <li> A summary of the variables defined by the module. </li>
+ <li> A detailed description of each function defined by the
+ module. </li>
+ <li> A detailed description of each variable defined by the
+ module. </li>
+ </ul>
+
+ <p>Each <strong>Class Documentation</strong> page contains: </p>
+ <ul>
+ <li> A class inheritance diagram. </li>
+ <li> A list of known subclasses. </li>
+ <li> A description of the class. </li>
+ <li> A summary of the methods defined by the class. </li>
+ <li> A summary of the instance variables defined by the class. </li>
+ <li> A summary of the class (static) variables defined by the
+ class. </li>
+ <li> A detailed description of each method defined by the
+ class. </li>
+ <li> A detailed description of each instance variable defined by the
+ class. </li>
+ <li> A detailed description of each class (static) variable defined
+ by the class. </li>
+ </ul>
+
+<h2> Project Documentation </h2>
+
+ <p> The <strong>Trees</strong> page contains the module and class hierarchies: </p>
+ <ul>
+ <li> The <em>module hierarchy</em> lists every package and module, with
+ modules grouped into packages. At the top level, and within each
+ package, modules and sub-packages are listed alphabetically. </li>
+ <li> The <em>class hierarchy</em> lists every class, grouped by base
+ class. If a class has more than one base class, then it will be
+ listed under each base class. At the top level, and under each base
+ class, classes are listed alphabetically. </li>
+ </ul>
+
+ <p> The <strong>Index</strong> page contains indices of terms and
+ identifiers: </p>
+ <ul>
+ <li> The <em>term index</em> lists every term indexed by any object's
+ documentation. For each term, the index provides links to each
+ place where the term is indexed. </li>
+ <li> The <em>identifier index</em> lists the (short) name of every package,
+ module, class, method, function, variable, and parameter. For each
+ identifier, the index provides a short description, and a link to
+ its documentation. </li>
+ </ul>
+
+<h2> The Table of Contents </h2>
+
+<p> The table of contents occupies the two frames on the left side of
+the window. The upper-left frame displays the <em>project
+contents</em>, and the lower-left frame displays the <em>module
+contents</em>: </p>
+
+<table class="help summary" border="1" cellspacing="0" cellpadding="3">
+ <tr style="height: 30%">
+ <td align="center" style="font-size: small">
+ Project<br />Contents<hr />...</td>
+ <td align="center" style="font-size: small" rowspan="2" width="70%">
+ API<br />Documentation<br />Frame<br /><br /><br />
+ </td>
+ </tr>
+ <tr>
+ <td align="center" style="font-size: small">
+ Module<br />Contents<hr /> <br />...<br />
+ </td>
+ </tr>
+</table><br />
+
+<p> The <strong>project contents frame</strong> contains a list of all packages
+and modules that are defined by the project. Clicking on an entry
+will display its contents in the module contents frame. Clicking on a
+special entry, labeled "Everything," will display the contents of
+the entire project. </p>
+
+<p> The <strong>module contents frame</strong> contains a list of every
+submodule, class, type, exception, function, and variable defined by a
+module or package. Clicking on an entry will display its
+documentation in the API documentation frame. Clicking on the name of
+the module, at the top of the frame, will display the documentation
+for the module itself. </p>
+
+<p> The "<strong>frames</strong>" and "<strong>no frames</strong>" buttons below the top
+navigation bar can be used to control whether the table of contents is
+displayed or not. </p>
+
+<h2> The Navigation Bar </h2>
+
+<p> A navigation bar is located at the top and bottom of every page.
+It indicates what type of page you are currently viewing, and allows
+you to go to related pages. The following table describes the labels
+on the navigation bar. Note that not some labels (such as
+[Parent]) are not displayed on all pages. </p>
+
+<table class="summary" border="1" cellspacing="0" cellpadding="3" width="100%">
+<tr class="summary">
+ <th>Label</th>
+ <th>Highlighted when...</th>
+ <th>Links to...</th>
+</tr>
+ <tr><td valign="top"><strong>[Parent]</strong></td>
+ <td valign="top"><em>(never highlighted)</em></td>
+ <td valign="top"> the parent of the current package </td></tr>
+ <tr><td valign="top"><strong>[Package]</strong></td>
+ <td valign="top">viewing a package</td>
+ <td valign="top">the package containing the current object
+ </td></tr>
+ <tr><td valign="top"><strong>[Module]</strong></td>
+ <td valign="top">viewing a module</td>
+ <td valign="top">the module containing the current object
+ </td></tr>
+ <tr><td valign="top"><strong>[Class]</strong></td>
+ <td valign="top">viewing a class </td>
+ <td valign="top">the class containing the current object</td></tr>
+ <tr><td valign="top"><strong>[Trees]</strong></td>
+ <td valign="top">viewing the trees page</td>
+ <td valign="top"> the trees page </td></tr>
+ <tr><td valign="top"><strong>[Index]</strong></td>
+ <td valign="top">viewing the index page</td>
+ <td valign="top"> the index page </td></tr>
+ <tr><td valign="top"><strong>[Help]</strong></td>
+ <td valign="top">viewing the help page</td>
+ <td valign="top"> the help page </td></tr>
+</table>
+
+<p> The "<strong>show private</strong>" and "<strong>hide private</strong>" buttons below
+the top navigation bar can be used to control whether documentation
+for private objects is displayed. Private objects are usually defined
+as objects whose (short) names begin with a single underscore, but do
+not end with an underscore. For example, "<code>_x</code>",
+"<code>__pprint</code>", and "<code>epydoc.epytext._tokenize</code>"
+are private objects; but "<code>re.sub</code>",
+"<code>__init__</code>", and "<code>type_</code>" are not. However,
+if a module defines the "<code>__all__</code>" variable, then its
+contents are used to decide which objects are private. </p>
+
+<p> A timestamp below the bottom navigation bar indicates when each
+page was last updated. </p>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Help </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:17 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/identifier-index.html b/doc/identifier-index.html
new file mode 100644
index 0000000..0d4f7de
--- /dev/null
+++ b/doc/identifier-index.html
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Identifier Index</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Indices </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%"> </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="identifier-index.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<table border="0" width="100%">
+<tr valign="bottom"><td>
+<h1 class="epydoc">Identifier Index</h1>
+</td><td>
+[
+ <a href="#A">A</a>
+ <a href="#B">B</a>
+ <a href="#C">C</a>
+ D
+ <a href="#E">E</a>
+ <a href="#F">F</a>
+ <a href="#G">G</a>
+ H
+ <a href="#I">I</a>
+ J
+ K
+ <a href="#L">L</a>
+ <a href="#M">M</a>
+ <a href="#N">N</a>
+ O
+ <a href="#P">P</a>
+ Q
+ <a href="#R">R</a>
+ <a href="#S">S</a>
+ <a href="#T">T</a>
+ U
+ V
+ <a href="#W">W</a>
+ X
+ Y
+ Z
+ <a href="#_">_</a>
+]
+</td></table>
+<table border="0" width="100%">
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="A">A</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html#a">a</a><br />
+<span class="index-where">(in <a href="script-arden_create-module.html">script-arden_create</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#algnedToRef">algnedToRef</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html">AnalyseMapping</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#aa_dist_seq">aa_dist_seq()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#AlignedReadsdic">AlignedReadsdic</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#algnedToArt">algnedToArt</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#alngts">alngts</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="B">B</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html#b">b</a><br />
+<span class="index-where">(in <a href="script-arden_create-module.html">script-arden_create</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html#bases">bases</a><br />
+<span class="index-where">(in <a href="script-arden_create-module.html">script-arden_create</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.FindOrfs-module.html#build_ORF">build_ORF()</a><br />
+<span class="index-where">(in <a href="core.FindOrfs-module.html">core.FindOrfs</a>)</span></td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="C">C</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.PlotData-module.html#CalculateRoc2">CalculateRoc2()</a><br />
+<span class="index-where">(in <a href="core.PlotData-module.html">core.PlotData</a>)</span></td>
+<td width="33%" class="link-index"><a href="core-module.html">core</a></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#CreateCompareList">CreateCompareList()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#CheckForSameAlignments">CheckForSameAlignments()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#counter1">counter1</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#createdic">createdic()</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#CompareAlignments">CompareAlignments()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#counter2">counter2</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#ComputeRQScore">ComputeRQScore()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html#Create">Create()</a><br />
+<span class="index-where">(in <a href="script-arden_create-module.html">script-arden_create</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="E">E</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#extendReadDic">extendReadDic()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="F">F</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#filter">filter()</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.FindOrfs-module.html#find_orfs">find_orfs()</a><br />
+<span class="index-where">(in <a href="core.FindOrfs-module.html">core.FindOrfs</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.FindOrfs-module.html#findstop_help">findstop_help()</a><br />
+<span class="index-where">(in <a href="core.FindOrfs-module.html">core.FindOrfs</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#FilterSAM">FilterSAM()</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.FindOrfs-module.html">FindOrfs</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="G">G</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#genetic_code">genetic_code</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getHammingdistance">getHammingdistance()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getNextLine">getNextLine()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getAlignmentLength">getAlignmentLength()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#gethammingdistance">gethammingdistance()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getNumberOf">getNumberOf()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getAllID">getAllID()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getmean">getmean()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#GetOrderDictionary">GetOrderDictionary()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#GetCompletePath">GetCompletePath()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getMisGap">getMisGap()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getRanks">getRanks()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getCustomRead">getCustomRead()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#getMisGapRQ">getMisGapRQ()</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getsum">getsum()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html#getdifference">getdifference()</a><br />
+<span class="index-where">(in <a href="core.InsertMutations-module.html">core.InsertMutations</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html#getMutation">getMutation()</a><br />
+<span class="index-where">(in <a href="core.InsertMutations-module.html">core.InsertMutations</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#getTPRead">getTPRead()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="I">I</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#initOutFiles">initOutFiles()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.TPRead-class.html#isContained">isContained()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.TPRead-class.html">TPRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html#isvalidposition">isvalidposition()</a><br />
+<span class="index-where">(in <a href="core.InsertMutations-module.html">core.InsertMutations</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html">InsertMutations</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#isSaneAlignment">isSaneAlignment()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#isvalidtriplet">isvalidtriplet()</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="L">L</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#loadpickle">loadpickle()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#loadpickle">loadpickle()</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="M">M</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_analyze-module.html#main">main()</a><br />
+<span class="index-where">(in <a href="script-arden_analyze-module.html">script-arden_analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html#mutate_random">mutate_random()</a><br />
+<span class="index-where">(in <a href="core.InsertMutations-module.html">core.InsertMutations</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="N">N</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#nucleotide_dist_file">nucleotide_dist_file()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#nucleotide_dist_seq">nucleotide_dist_seq()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr><td class="link-index"> </td><td class="link-index"> </td><td class="link-index"> </td></tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="P">P</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.PlotData-module.html">PlotData</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html">Prep</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.PlotData-module.html#plotOverviewHist">plotOverviewHist()</a><br />
+<span class="index-where">(in <a href="core.PlotData-module.html">core.PlotData</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html#printExample">printExample()</a><br />
+<span class="index-where">(in <a href="script-arden_create-module.html">script-arden_create</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="R">R</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html">ReadAndWrite</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#readHeader">readHeader()</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#readSAMline">readSAMline()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq">ReadArtificialSAMfileHTSeq()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.ReadID-class.html">ReadID</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#ReadSAMnoMem">ReadSAMnoMem()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#readdna">readdna()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#readInput">readInput()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#returnIndex">returnIndex()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#ReadFromTab">ReadFromTab()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#readReadQualities">readReadQualities()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#returnSequence">returnSequence()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="S">S</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#savepickle">savepickle()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_analyze-module.html">script-arden_analyze</a></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html">script-arden_filter</a></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#savepickle">savepickle()</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_create-module.html">script-arden_create</a></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#SkipHeader">SkipHeader()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="T">T</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_analyze-module.html#TestFiles">TestFiles()</a><br />
+<span class="index-where">(in <a href="script-arden_analyze-module.html">script-arden_analyze</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.CustomRead-class.html#toStr">toStr()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.TPRead-class.html">TPRead</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.CustomRead-class.html#toObjself">toObjself()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.TPRead-class.html#toStr">toStr()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.TPRead-class.html">TPRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#trans_seq">trans_seq()</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.TPRead-class.html#toObjself">toObjself()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.TPRead-class.html">TPRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.CustomRead-class.html#toStrNoMem">toStrNoMem()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.PlotData-module.html#trapezoidal_rule">trapezoidal_rule()</a><br />
+<span class="index-where">(in <a href="core.PlotData-module.html">core.PlotData</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="W">W</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#writefile">writefile()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#writeoverview">writeoverview()</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#writeToTabRef">writeToTabRef()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#writeFilteredReads">writeFilteredReads()</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#writeToTabArt">writeToTabArt()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"> </td>
+</tr>
+</table>
+</td></tr>
+<tr valign="top"><td valign="top" width="1%"><h2 class="epydoc"><a name="_">_</a></h2></td>
+<td valign="top">
+<table class="link-index" width="100%" border="1">
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.CustomRead-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.CustomRead-class.html">CustomRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.FindOrfs-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.FindOrfs-module.html">core.FindOrfs</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.ReadAndWrite-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.ReadID-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.ReadID-class.html">ReadID</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.InsertMutations-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.InsertMutations-module.html">core.InsertMutations</a>)</span></td>
+<td width="33%" class="link-index"><a href="core-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core-module.html">core</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping.TPRead-class.html#__init__">__init__()</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping.TPRead-class.html">TPRead</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.PlotData-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.PlotData-module.html">core.PlotData</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_analyze-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="script-arden_analyze-module.html">script-arden_analyze</a>)</span></td>
+</tr>
+<tr>
+<td width="33%" class="link-index"><a href="core.AnalyseMapping-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a>)</span></td>
+<td width="33%" class="link-index"><a href="core.Prep-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="core.Prep-module.html">core.Prep</a>)</span></td>
+<td width="33%" class="link-index"><a href="script-arden_filter-module.html#__package__">__package__</a><br />
+<span class="index-where">(in <a href="script-arden_filter-module.html">script-arden_filter</a>)</span></td>
+</tr>
+</table>
+</td></tr>
+</table>
+<br /><br /><!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Indices </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:17 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/index.html b/doc/index.html
new file mode 100644
index 0000000..31bae81
--- /dev/null
+++ b/doc/index.html
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
+ "DTD/xhtml1-frameset.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title> ARDEN </title>
+</head>
+<frameset cols="20%,80%">
+ <frameset rows="30%,70%">
+ <frame src="toc.html" name="moduleListFrame"
+ id="moduleListFrame" />
+ <frame src="toc-everything.html" name="moduleFrame"
+ id="moduleFrame" />
+ </frameset>
+ <frame src="module-tree.html" name="mainFrame" id="mainFrame" />
+</frameset>
+</html>
diff --git a/doc/module-tree.html b/doc/module-tree.html
new file mode 100644
index 0000000..2bbb3a0
--- /dev/null
+++ b/doc/module-tree.html
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Module Hierarchy</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Trees </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%"> </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="module-tree.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<center><b>
+ [ <a href="module-tree.html">Module Hierarchy</a>
+ | <a href="class-tree.html">Class Hierarchy</a> ]
+</b></center><br />
+<h1 class="epydoc">Module Hierarchy</h1>
+<ul class="nomargin-top">
+ <li> <strong class="uidlink"><a href="core-module.html">core</a></strong>
+ <ul>
+ <li> <strong class="uidlink"><a href="core.AnalyseMapping-module.html">core.AnalyseMapping</a></strong>: <em class="summary">This script is used to evalulate the mapping results</em> </li>
+ <li> <strong class="uidlink"><a href="core.FindOrfs-module.html">core.FindOrfs</a></strong>: <em class="summary">FindOrfs, Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.InsertMutations-module.html">core.InsertMutations</a></strong>: <em class="summary">Created 2012 core Script for the generation of the artificial
+ reference genome</em> </li>
+ <li> <strong class="uidlink"><a href="core.PlotData-module.html">core.PlotData</a></strong>: <em class="summary">Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.Prep-module.html">core.Prep</a></strong>: <em class="summary">Created 2012</em> </li>
+ <li> <strong class="uidlink"><a href="core.ReadAndWrite-module.html">core.ReadAndWrite</a></strong>: <em class="summary">Created 2012</em> </li>
+ </ul>
+ </li>
+ <li> <strong class="uidlink"><a href="script-arden_analyze-module.html">arden_analyze (script)</a></strong>: <em class="summary">Created on Thu Aug 18 2012</em> </li>
+ <li> <strong class="uidlink"><a href="script-arden_create-module.html">arden_create (script)</a></strong>: <em class="summary">Created 2012 Main script for generating an artificial reference
+ genome.</em> </li>
+ <li> <strong class="uidlink"><a href="script-arden_filter-module.html">arden_filter (script)</a></strong>: <em class="summary">Script for filtering alignments with deficient properties
+ (rqs,gaps, mismatches).</em> </li>
+</ul>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th bgcolor="#70b0f0" class="navbar-select"
+ > Trees </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:17 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/redirect.html b/doc/redirect.html
new file mode 100644
index 0000000..4949263
--- /dev/null
+++ b/doc/redirect.html
@@ -0,0 +1,38 @@
+<html><head><title>Epydoc Redirect Page</title>
+<meta http-equiv="cache-control" content="no-cache" />
+<meta http-equiv="expires" content="0" />
+<meta http-equiv="pragma" content="no-cache" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+<body>
+<script type="text/javascript">
+<!--
+var pages = ["core.AnalyseMapping.CustomRead-c", "core.AnalyseMapping.ReadID-c", "core.AnalyseMapping.TPRead-c", "core.InsertMutations-m", "script-arden_analyze-m", "core.AnalyseMapping-m", "script-arden_create-m", "script-arden_filter-m", "core.ReadAndWrite-m", "core.FindOrfs-m", "core.PlotData-m", "core.Prep-m", "core-m"];
+var dottedName = get_anchor();
+if (dottedName) {
+ var target = redirect_url(dottedName);
+ if (target) window.location.replace(target);
+}
+// -->
+</script>
+
+<h3>Epydoc Auto-redirect page</h3>
+
+<p>When javascript is enabled, this page will redirect URLs of
+the form <tt>redirect.html#<i>dotted.name</i></tt> to the
+documentation for the object with the given fully-qualified
+dotted name.</p>
+<p><a id="message"> </a></p>
+
+<script type="text/javascript">
+<!--
+if (dottedName) {
+ var msg = document.getElementById("message");
+ msg.innerHTML = "No documentation found for <tt>"+
+ dottedName+"</tt>";
+}
+// -->
+</script>
+
+</body>
+</html>
diff --git a/doc/script-arden_analyze-module.html b/doc/script-arden_analyze-module.html
new file mode 100644
index 0000000..c40e1ff
--- /dev/null
+++ b/doc/script-arden_analyze-module.html
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_analyze</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ Script arden_analyze
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="script-arden_analyze-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== SCRIPT DESCRIPTION ==================== -->
+<h1 class="epydoc">Script arden_analyze</h1><p class="nomargin-top"></p>
+<p>Created on Thu Aug 18 2012</p>
+ <p>Script for analyzing mapping results using an artificial reference
+ genome (ART / ARG). An exhaustive comparison is performed between the
+ input files (SAM format). The goal is to calculate a ROC curve and the
+ AUC value to compare different read mapper / different settings on the
+ same read mapper. Therefore FP and TP have to be identified. The TP are
+ from the original reference. The FP are from the ART and are defined as
+ unique mappings in a sense that no FP alignment occurs on the
+ reference.</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="TestFiles"></a><span class="summary-sig-name">TestFiles</span>(<span class="summary-sig-arg">input</span>)</span><br />
+ Function which checks if all required files are correctly specified
+ (existing)</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="main"></a><span class="summary-sig-name">main</span>()</span><br />
+ Control function for arden-analyze</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/script-arden_create-module.html b/doc/script-arden_create-module.html
new file mode 100644
index 0000000..5dc4d91
--- /dev/null
+++ b/doc/script-arden_create-module.html
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_create</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ Script arden_create
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="script-arden_create-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== SCRIPT DESCRIPTION ==================== -->
+<h1 class="epydoc">Script arden_create</h1><p class="nomargin-top"></p>
+<p>Created 2012 Main script for generating an artificial reference
+ genome. It calls various modules from core.</p>
+
+<hr />
+<div class="fields"> <p><strong>Author:</strong>
+ Sven Giese
+ </p>
+</div><!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="printExample"></a><span class="summary-sig-name">printExample</span>()</span><br />
+ Function that prints some usage examples.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="script-arden_create-module.html#Create" class="summary-sig-name">Create</a>()</span><br />
+ Function that controls the generation of an artificial reference
+ genome.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="bases"></a><span class="summary-name">bases</span> = <code title="0">0</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="a"></a><span class="summary-name">a</span> = <code title="time.time()">time.time()</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="b"></a><span class="summary-name">b</span> = <code title="time.time()">time.time()</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="Create"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">Create</span>()</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Function that controls the generation of an artificial reference
+ genome. Subfunction calls, preparation of data structures etc.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/script-arden_filter-module.html b/doc/script-arden_filter-module.html
new file mode 100644
index 0000000..8b220a6
--- /dev/null
+++ b/doc/script-arden_filter-module.html
@@ -0,0 +1,389 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_filter</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table width="100%" cellpadding="0" cellspacing="0">
+ <tr valign="top">
+ <td width="100%">
+ <span class="breadcrumbs">
+ Script arden_filter
+ </span>
+ </td>
+ <td>
+ <table cellpadding="0" cellspacing="0">
+ <!-- hide/show private -->
+ <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span></td></tr>
+ <tr><td align="right"><span class="options"
+ >[<a href="frames.html" target="_top">frames</a
+ >] | <a href="script-arden_filter-module.html"
+ target="_top">no frames</a>]</span></td></tr>
+ </table>
+ </td>
+ </tr>
+</table>
+<!-- ==================== SCRIPT DESCRIPTION ==================== -->
+<h1 class="epydoc">Script arden_filter</h1><p class="nomargin-top"></p>
+<p>Script for filtering alignments with deficient properties (rqs,gaps,
+ mismatches). The script generates a new .SAM file from the input SAM
+ file, where only alignments are contained that fulfill certain quality
+ thresholds. nm = numberOfMisMatches rq = readqualityscore MQ =
+ mappingquality</p>
+
+<!-- ==================== FUNCTIONS ==================== -->
+<a name="section-Functions"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Functions</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Functions"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="script-arden_filter-module.html#writeFilteredReads" class="summary-sig-name">writeFilteredReads</a>(<span class="summary-sig-arg">iddic</span>,
+ <span class="summary-sig-arg">fastqfile</span>,
+ <span class="summary-sig-arg">fastqfileoutput</span>)</span><br />
+ Reads a .fastqfile and filters them for certain quality values.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="script-arden_filter-module.html#getMisGapRQ" class="summary-sig-name">getMisGapRQ</a>(<span class="summary-sig-arg">alngt</span>)</span><br />
+ Calculates the number of gaps / mistmatches from an HTSeq alngt.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="script-arden_filter-module.html#FilterSAM" class="summary-sig-name">FilterSAM</a>(<span class="summary-sig-arg">samfile</span>,
+ <span class="summary-sig-arg">MISM</span>,
+ <span class="summary-sig-arg">GAPS</span>,
+ <span class="summary-sig-arg">RQ</span>,
+ <span class="summary-sig-arg">fsam</span>)</span><br />
+ Calculates the number of gaps / mistmatches from an HTSeq alngt.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a name="readHeader"></a><span class="summary-sig-name">readHeader</span>(<span class="summary-sig-arg">samfile</span>)</span><br />
+ Function to retrieve the header from a SAM file.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr>
+ <td><span class="summary-sig"><a href="script-arden_filter-module.html#filter" class="summary-sig-name">filter</a>()</span><br />
+ Function for filtering a given sam file.</td>
+ <td align="right" valign="top">
+
+
+ </td>
+ </tr>
+ </table>
+
+ </td>
+ </tr>
+</table>
+<!-- ==================== VARIABLES ==================== -->
+<a name="section-Variables"></a>
+<table class="summary" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Variables</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-Variables"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="counter1"></a><span class="summary-name">counter1</span> = <code title="0">0</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="counter2"></a><span class="summary-name">counter2</span> = <code title="0">0</code>
+ </td>
+ </tr>
+<tr>
+ <td width="15%" align="right" valign="top" class="summary">
+ <span class="summary-type"> </span>
+ </td><td class="summary">
+ <a name="__package__"></a><span class="summary-name">__package__</span> = <code title="None">None</code>
+ </td>
+ </tr>
+</table>
+<!-- ==================== FUNCTION DETAILS ==================== -->
+<a name="section-FunctionDetails"></a>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr bgcolor="#70b0f0" class="table-header">
+ <td colspan="2" class="table-header">
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
+ <tr valign="top">
+ <td align="left"><span class="table-header">Function Details</span></td>
+ <td align="right" valign="top"
+ ><span class="options">[<a href="#section-FunctionDetails"
+ class="privatelink" onclick="toggle_private();"
+ >hide private</a>]</span></td>
+ </tr>
+ </table>
+ </td>
+</tr>
+</table>
+<a name="writeFilteredReads"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">writeFilteredReads</span>(<span class="sig-arg">iddic</span>,
+ <span class="sig-arg">fastqfile</span>,
+ <span class="sig-arg">fastqfileoutput</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Reads a .fastqfile and filters them for certain quality values. If an
+ alignment is equally good or better as the threshold it will be written
+ to the filtered .SAM file.</p>
+ <p>input: fastq file output: fastq dictionary key = readid; value =
+ qualstr</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>iddic</code></strong> (dictionary) - dictionary containing read ids.</li>
+ <li><strong class="pname"><code>fastqfile</code></strong> (fastq) - HTSeq readfile object</li>
+ <li><strong class="pname"><code>fastqfileoutput</code></strong> (fastq) - HTSeq readfile object. Alignments that pass the filter are
+ written to this file.</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="getMisGapRQ"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">getMisGapRQ</span>(<span class="sig-arg">alngt</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Calculates the number of gaps / mistmatches from an HTSeq alngt.
+ object.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alngt</code></strong> (HTSeq alignment object) - Initial SAM file for filtering</li>
+ <li><strong class="pname"><code>gaps</code></strong>, <strong class="pname"><code>mism</code></strong> - Number of gaps / mistmatches.</li>
+ <li><strong class="pname"><code>gaps,mism</code></strong> (integer)</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="FilterSAM"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">FilterSAM</span>(<span class="sig-arg">samfile</span>,
+ <span class="sig-arg">MISM</span>,
+ <span class="sig-arg">GAPS</span>,
+ <span class="sig-arg">RQ</span>,
+ <span class="sig-arg">fsam</span>)</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Calculates the number of gaps / mistmatches from an HTSeq alngt.
+ object.</p>
+ <dl class="fields">
+ <dt>Parameters:</dt>
+ <dd><ul class="nomargin-top">
+ <li><strong class="pname"><code>alngt</code></strong> (HTSeq alignment object) - Initial SAM file for filtering</li>
+ <li><strong class="pname"><code>gaps</code></strong>, <strong class="pname"><code>mism</code></strong> - Number of gaps / mistmatches.</li>
+ <li><strong class="pname"><code>gaps,mism</code></strong> (integer)</li>
+ </ul></dd>
+ </dl>
+</td></tr></table>
+</div>
+<a name="filter"></a>
+<div>
+<table class="details" border="1" cellpadding="3"
+ cellspacing="0" width="100%" bgcolor="white">
+<tr><td>
+ <table width="100%" cellpadding="0" cellspacing="0" border="0">
+ <tr valign="top"><td>
+ <h3 class="epydoc"><span class="sig"><span class="sig-name">filter</span>()</span>
+ </h3>
+ </td><td align="right" valign="top"
+ >
+ </td>
+ </tr></table>
+
+ <p>Function for filtering a given sam file. The alignments are evaluated
+ individually in regard to RQS,mismatches and gaps. The input needs to be
+ sorted.</p>
+ <dl class="fields">
+ </dl>
+</td></tr></table>
+</div>
+<br />
+<!-- ==================== NAVIGATION BAR ==================== -->
+<table class="navbar" border="0" width="100%" cellpadding="0"
+ bgcolor="#a0c0ff" cellspacing="0">
+ <tr valign="middle">
+
+ <!-- Tree link -->
+ <th> <a
+ href="module-tree.html">Trees</a> </th>
+
+ <!-- Index link -->
+ <th> <a
+ href="identifier-index.html">Indices</a> </th>
+
+ <!-- Help link -->
+ <th> <a
+ href="help.html">Help</a> </th>
+
+ <!-- Project homepage -->
+ <th class="navbar" align="right" width="100%">
+ <table border="0" cellpadding="0" cellspacing="0">
+ <tr><th class="navbar" align="center"
+ >ARDEN</th>
+ </tr></table></th>
+ </tr>
+</table>
+<table border="0" cellpadding="0" cellspacing="0" width="100%%">
+ <tr>
+ <td align="left" class="footer">
+ Generated by Epydoc 3.0.1 on Fri Mar 15 09:41:18 2013
+ </td>
+ <td align="right" class="footer">
+ <a target="mainFrame" href="http://epydoc.sourceforge.net"
+ >http://epydoc.sourceforge.net</a>
+ </td>
+ </tr>
+</table>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core-module.html b/doc/toc-core-module.html
new file mode 100644
index 0000000..f5df468
--- /dev/null
+++ b/doc/toc-core-module.html
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>core</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module core</h1>
+<hr />
+ <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.AnalyseMapping-module.html b/doc/toc-core.AnalyseMapping-module.html
new file mode 100644
index 0000000..0276dc6
--- /dev/null
+++ b/doc/toc-core.AnalyseMapping-module.html
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>AnalyseMapping</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module AnalyseMapping</h1>
+<hr />
+ <h2 class="toc">Classes</h2>
+ <a target="mainFrame" href="core.AnalyseMapping.CustomRead-class.html"
+ >CustomRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping.ReadID-class.html"
+ >ReadID</a><br /> <a target="mainFrame" href="core.AnalyseMapping.TPRead-class.html"
+ >TPRead</a><br /> <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.AnalyseMapping-module.html#CheckForSameAlignments"
+ >CheckForSameAlignments</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#CompareAlignments"
+ >CompareAlignments</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ComputeRQScore"
+ >ComputeRQScore</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#CreateCompareList"
+ >CreateCompareList</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#GetCompletePath"
+ >GetCompletePath</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#GetOrderDictionary"
+ >GetOrderDictionary</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq"
+ >ReadArtificialSAMfileHTSeq</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadFromTab"
+ >ReadFromTab</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadSAMnoMem"
+ >ReadSAMnoMem</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#SkipHeader"
+ >SkipHeader</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#extendReadDic"
+ >extendReadDic</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getAlignmentLength"
+ >getAlignmentLength</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getAllID"
+ >getAllID</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getCustomRead"
+ >getCustomRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getHammingdistance"
+ >getHammingdistance</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getMisGap"
+ >getMisGap</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getNextLine"
+ >getNextLine</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getNumberOf"
+ >getNumberOf</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getRanks"
+ >getRanks</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getTPRead"
+ >getTPRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getmean"
+ >getmean</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getsum"
+ >getsum</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#initOutFiles"
+ >initOutFiles</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#isSaneAlignment"
+ >isSaneAlignment</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#loadpickle"
+ >loadpickle</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readInput"
+ >readInput</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readReadQualities"
+ >readReadQualities</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readSAMline"
+ >readSAMline</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#returnIndex"
+ >returnIndex</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#returnSequence"
+ >returnSequence</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#savepickle"
+ >savepickle</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#writeToTabArt"
+ >writeToTabArt</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#writeToTabRef"
+ >writeToTabRef</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.AnalyseMapping-module.html#AlignedReadsdic"
+ >AlignedReadsdic</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#algnedToArt"
+ >algnedToArt</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#algnedToRef"
+ >algnedToRef</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#alngts"
+ >alngts</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.FindOrfs-module.html b/doc/toc-core.FindOrfs-module.html
new file mode 100644
index 0000000..13c3697
--- /dev/null
+++ b/doc/toc-core.FindOrfs-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>FindOrfs</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module FindOrfs</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.FindOrfs-module.html#build_ORF"
+ >build_ORF</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#find_orfs"
+ >find_orfs</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#findstop_help"
+ >findstop_help</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.FindOrfs-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.InsertMutations-module.html b/doc/toc-core.InsertMutations-module.html
new file mode 100644
index 0000000..fff5d30
--- /dev/null
+++ b/doc/toc-core.InsertMutations-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>InsertMutations</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module InsertMutations</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.InsertMutations-module.html#getMutation"
+ >getMutation</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#getdifference"
+ >getdifference</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#isvalidposition"
+ >isvalidposition</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#mutate_random"
+ >mutate_random</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.InsertMutations-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.Mem-module.html b/doc/toc-core.Mem-module.html
new file mode 100644
index 0000000..23331c0
--- /dev/null
+++ b/doc/toc-core.Mem-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Mem</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module Mem</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.Mem-module.html#ReadArtificialSAMfile"
+ >ReadArtificialSAMfile</a><br /> <a target="mainFrame" href="core.Mem-module.html#ReadReferenceSAMfile"
+ >ReadReferenceSAMfile</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.Mem-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.PlotData-module.html b/doc/toc-core.PlotData-module.html
new file mode 100644
index 0000000..f37b7ba
--- /dev/null
+++ b/doc/toc-core.PlotData-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>PlotData</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module PlotData</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.PlotData-module.html#CalculateRoc2"
+ >CalculateRoc2</a><br /> <a target="mainFrame" href="core.PlotData-module.html#plotOverviewHist"
+ >plotOverviewHist</a><br /> <a target="mainFrame" href="core.PlotData-module.html#trapezoidal_rule"
+ >trapezoidal_rule</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.PlotData-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.ReadAndWrite-module.html b/doc/toc-core.ReadAndWrite-module.html
new file mode 100644
index 0000000..73701db
--- /dev/null
+++ b/doc/toc-core.ReadAndWrite-module.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>ReadAndWrite</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module ReadAndWrite</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.ReadAndWrite-module.html#aa_dist_seq"
+ >aa_dist_seq</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#gethammingdistance"
+ >gethammingdistance</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#nucleotide_dist_file"
+ >nucleotide_dist_file</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#nucleotide_dist_seq"
+ >nucleotide_dist_seq</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#readdna"
+ >readdna</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#writefile"
+ >writefile</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#writeoverview"
+ >writeoverview</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.ReadAndWrite-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.insert_mutations-module.html b/doc/toc-core.insert_mutations-module.html
new file mode 100644
index 0000000..6b9f64b
--- /dev/null
+++ b/doc/toc-core.insert_mutations-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>insert_mutations</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module insert_mutations</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.insert_mutations-module.html#getMutation"
+ >getMutation</a><br /> <a target="mainFrame" href="core.insert_mutations-module.html#getdifference"
+ >getdifference</a><br /> <a target="mainFrame" href="core.insert_mutations-module.html#isvalidposition"
+ >isvalidposition</a><br /> <a target="mainFrame" href="core.insert_mutations-module.html#mutate_random"
+ >mutate_random</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.insert_mutations-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.orfs-module.html b/doc/toc-core.orfs-module.html
new file mode 100644
index 0000000..8a04074
--- /dev/null
+++ b/doc/toc-core.orfs-module.html
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>orfs</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module orfs</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.orfs-module.html#build_ORF"
+ >build_ORF</a><br /> <a target="mainFrame" href="core.orfs-module.html#find_orfs"
+ >find_orfs</a><br /> <a target="mainFrame" href="core.orfs-module.html#findstop_help"
+ >findstop_help</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.orfs-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-core.prep-module.html b/doc/toc-core.prep-module.html
new file mode 100644
index 0000000..50006f6
--- /dev/null
+++ b/doc/toc-core.prep-module.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>prep</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module prep</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="core.prep-module.html#createdic"
+ >createdic</a><br /> <a target="mainFrame" href="core.prep-module.html#isvalidtriplet"
+ >isvalidtriplet</a><br /> <a target="mainFrame" href="core.prep-module.html#loadpickle"
+ >loadpickle</a><br /> <a target="mainFrame" href="core.prep-module.html#savepickle"
+ >savepickle</a><br /> <a target="mainFrame" href="core.prep-module.html#trans_seq"
+ >trans_seq</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="core.prep-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="core.prep-module.html#genetic_code"
+ >genetic_code</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-everything.html b/doc/toc-everything.html
new file mode 100644
index 0000000..2a3dfd0
--- /dev/null
+++ b/doc/toc-everything.html
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Everything</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Everything</h1>
+<hr />
+ <h2 class="toc">All Classes</h2>
+ <a target="mainFrame" href="core.AnalyseMapping.CustomRead-class.html"
+ >core.AnalyseMapping.CustomRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping.ReadID-class.html"
+ >core.AnalyseMapping.ReadID</a><br /> <a target="mainFrame" href="core.AnalyseMapping.TPRead-class.html"
+ >core.AnalyseMapping.TPRead</a><br /> <h2 class="toc">All Functions</h2>
+ <a target="mainFrame" href="core.AnalyseMapping-module.html#CheckForSameAlignments"
+ >core.AnalyseMapping.CheckForSameAlignments</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#CompareAlignments"
+ >core.AnalyseMapping.CompareAlignments</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ComputeRQScore"
+ >core.AnalyseMapping.ComputeRQScore</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#CreateCompareList"
+ >core.AnalyseMapping.CreateCompareList</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#GetCompletePath"
+ >core.AnalyseMapping.GetCompletePath</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#GetOrderDictionary"
+ >core.AnalyseMapping.GetOrderDictionary</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadArtificialSAMfileHTSeq"
+ >core.AnalyseMapping.ReadArtificialSAMfileHTSeq</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadFromTab"
+ >core.AnalyseMapping.ReadFromTab</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#ReadSAMnoMem"
+ >core.AnalyseMapping.ReadSAMnoMem</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#SkipHeader"
+ >core.AnalyseMapping.SkipHeader</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#extendReadDic"
+ >core.AnalyseMapping.extendReadDic</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getAlignmentLength"
+ >core.AnalyseMapping.getAlignmentLength</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getAllID"
+ >core.AnalyseMapping.getAllID</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getCustomRead"
+ >core.AnalyseMapping.getCustomRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getHammingdistance"
+ >core.AnalyseMapping.getHammingdistance</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getMisGap"
+ >core.AnalyseMapping.getMisGap</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getNextLine"
+ >core.AnalyseMapping.getNextLine</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getNumberOf"
+ >core.AnalyseMapping.getNumberOf</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getRanks"
+ >core.AnalyseMapping.getRanks</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getTPRead"
+ >core.AnalyseMapping.getTPRead</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getmean"
+ >core.AnalyseMapping.getmean</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#getsum"
+ >core.AnalyseMapping.getsum</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#initOutFiles"
+ >core.AnalyseMapping.initOutFiles</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#isSaneAlignment"
+ >core.AnalyseMapping.isSaneAlignment</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#loadpickle"
+ >core.AnalyseMapping.loadpickle</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readInput"
+ >core.AnalyseMapping.readInput</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readReadQualities"
+ >core.AnalyseMapping.readReadQualities</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#readSAMline"
+ >core.AnalyseMapping.readSAMline</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#returnIndex"
+ >core.AnalyseMapping.returnIndex</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#returnSequence"
+ >core.AnalyseMapping.returnSequence</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#savepickle"
+ >core.AnalyseMapping.savepickle</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#writeToTabArt"
+ >core.AnalyseMapping.writeToTabArt</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#writeToTabRef"
+ >core.AnalyseMapping.writeToTabRef</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#build_ORF"
+ >core.FindOrfs.build_ORF</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#find_orfs"
+ >core.FindOrfs.find_orfs</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#findstop_help"
+ >core.FindOrfs.findstop_help</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#getMutation"
+ >core.InsertMutations.getMutation</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#getdifference"
+ >core.InsertMutations.getdifference</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#isvalidposition"
+ >core.InsertMutations.isvalidposition</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#mutate_random"
+ >core.InsertMutations.mutate_random</a><br /> <a target="mainFrame" href="core.PlotData-module.html#CalculateRoc2"
+ >core.PlotData.CalculateRoc2</a><br /> <a target="mainFrame" href="core.PlotData-module.html#plotOverviewHist"
+ >core.PlotData.plotOverviewHist</a><br /> <a target="mainFrame" href="core.PlotData-module.html#trapezoidal_rule"
+ >core.PlotData.trapezoidal_rule</a><br /> <a target="mainFrame" href="core.Prep-module.html#createdic"
+ >core.Prep.createdic</a><br /> <a target="mainFrame" href="core.Prep-module.html#isvalidtriplet"
+ >core.Prep.isvalidtriplet</a><br /> <a target="mainFrame" href="core.Prep-module.html#loadpickle"
+ >core.Prep.loadpickle</a><br /> <a target="mainFrame" href="core.Prep-module.html#savepickle"
+ >core.Prep.savepickle</a><br /> <a target="mainFrame" href="core.Prep-module.html#trans_seq"
+ >core.Prep.trans_seq</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#aa_dist_seq"
+ >core.ReadAndWrite.aa_dist_seq</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#gethammingdistance"
+ >core.ReadAndWrite.gethammingdistance</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#nucleotide_dist_file"
+ >core.ReadAndWrite.nucleotide_dist_file</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#nucleotide_dist_seq"
+ >core.ReadAndWrite.nucleotide_dist_seq</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#readdna"
+ >core.ReadAndWrite.readdna</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#writefile"
+ >core.ReadAndWrite.writefile</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#writeoverview"
+ >core.ReadAndWrite.writeoverview</a><br /> <a target="mainFrame" href="script-arden_analyze-module.html#TestFiles"
+ >script-arden_analyze.TestFiles</a><br /> <a target="mainFrame" href="script-arden_analyze-module.html#main"
+ >script-arden_analyze.main</a><br /> <a target="mainFrame" href="script-arden_create-module.html#Create"
+ >script-arden_create.Create</a><br /> <a target="mainFrame" href="script-arden_create-module.html#printExample"
+ >script-arden_create.printExample</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#FilterSAM"
+ >script-arden_filter.FilterSAM</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#filter"
+ >script-arden_filter.filter</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#getMisGapRQ"
+ >script-arden_filter.getMisGapRQ</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#readHeader"
+ >script-arden_filter.readHeader</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#writeFilteredReads"
+ >script-arden_filter.writeFilteredReads</a><br /> <h2 class="toc">All Variables</h2>
+ <a target="mainFrame" href="core.AnalyseMapping-module.html#AlignedReadsdic"
+ >core.AnalyseMapping.AlignedReadsdic</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#__package__"
+ >core.AnalyseMapping.__package__</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#algnedToArt"
+ >core.AnalyseMapping.algnedToArt</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#algnedToRef"
+ >core.AnalyseMapping.algnedToRef</a><br /> <a target="mainFrame" href="core.AnalyseMapping-module.html#alngts"
+ >core.AnalyseMapping.alngts</a><br /> <a target="mainFrame" href="core.FindOrfs-module.html#__package__"
+ >core.FindOrfs.__package__</a><br /> <a target="mainFrame" href="core.InsertMutations-module.html#__package__"
+ >core.InsertMutations.__package__</a><br /> <a target="mainFrame" href="core.PlotData-module.html#__package__"
+ >core.PlotData.__package__</a><br /> <a target="mainFrame" href="core.Prep-module.html#__package__"
+ >core.Prep.__package__</a><br /> <a target="mainFrame" href="core.Prep-module.html#genetic_code"
+ >core.Prep.genetic_code</a><br /> <a target="mainFrame" href="core.ReadAndWrite-module.html#__package__"
+ >core.ReadAndWrite.__package__</a><br /> <a target="mainFrame" href="core-module.html#__package__"
+ >core.__package__</a><br /> <a target="mainFrame" href="script-arden_analyze-module.html#__package__"
+ >script-arden_analyze.__package__</a><br /> <a target="mainFrame" href="script-arden_create-module.html#a"
+ >script-arden_create.a</a><br /> <a target="mainFrame" href="script-arden_create-module.html#b"
+ >script-arden_create.b</a><br /> <a target="mainFrame" href="script-arden_create-module.html#bases"
+ >script-arden_create.bases</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#__package__"
+ >script-arden_filter.__package__</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#counter1"
+ >script-arden_filter.counter1</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#counter2"
+ >script-arden_filter.counter2</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-script-arden_analyze-module.html b/doc/toc-script-arden_analyze-module.html
new file mode 100644
index 0000000..bbed08c
--- /dev/null
+++ b/doc/toc-script-arden_analyze-module.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_analyze</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module script-arden_analyze</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="script-arden_analyze-module.html#TestFiles"
+ >TestFiles</a><br /> <a target="mainFrame" href="script-arden_analyze-module.html#main"
+ >main</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="script-arden_analyze-module.html#__package__"
+ >__package__</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-script-arden_create-module.html b/doc/toc-script-arden_create-module.html
new file mode 100644
index 0000000..2ab2fa1
--- /dev/null
+++ b/doc/toc-script-arden_create-module.html
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_create</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module script-arden_create</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="script-arden_create-module.html#Create"
+ >Create</a><br /> <a target="mainFrame" href="script-arden_create-module.html#printExample"
+ >printExample</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="script-arden_create-module.html#a"
+ >a</a><br /> <a target="mainFrame" href="script-arden_create-module.html#b"
+ >b</a><br /> <a target="mainFrame" href="script-arden_create-module.html#bases"
+ >bases</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc-script-arden_filter-module.html b/doc/toc-script-arden_filter-module.html
new file mode 100644
index 0000000..aae4732
--- /dev/null
+++ b/doc/toc-script-arden_filter-module.html
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>script-arden_filter</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Module script-arden_filter</h1>
+<hr />
+ <h2 class="toc">Functions</h2>
+ <a target="mainFrame" href="script-arden_filter-module.html#FilterSAM"
+ >FilterSAM</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#filter"
+ >filter</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#getMisGapRQ"
+ >getMisGapRQ</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#readHeader"
+ >readHeader</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#writeFilteredReads"
+ >writeFilteredReads</a><br /> <h2 class="toc">Variables</h2>
+ <a target="mainFrame" href="script-arden_filter-module.html#__package__"
+ >__package__</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#counter1"
+ >counter1</a><br /> <a target="mainFrame" href="script-arden_filter-module.html#counter2"
+ >counter2</a><br /><hr />
+<span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
diff --git a/doc/toc.html b/doc/toc.html
new file mode 100644
index 0000000..9afa3cd
--- /dev/null
+++ b/doc/toc.html
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="ascii"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <title>Table of Contents</title>
+ <link rel="stylesheet" href="epydoc.css" type="text/css" />
+ <script type="text/javascript" src="epydoc.js"></script>
+</head>
+
+<body bgcolor="white" text="black" link="blue" vlink="#204080"
+ alink="#204080">
+<h1 class="toc">Table of Contents</h1>
+<hr />
+ <a target="moduleFrame" href="toc-everything.html">Everything</a>
+ <br />
+ <h2 class="toc">Modules</h2>
+ <a target="moduleFrame" href="toc-core-module.html"
+ onclick="setFrame('toc-core-module.html','core-module.html');" >core</a><br /> <a target="moduleFrame" href="toc-core.AnalyseMapping-module.html"
+ onclick="setFrame('toc-core.AnalyseMapping-module.html','core.AnalyseMapping-module.html');" >core.AnalyseMapping</a><br /> <a target="moduleFrame" href="toc-core.FindOrfs-module.html"
+ onclick="setFrame('toc-core.FindOrfs-module.html','core.FindOrfs-module.html');" >core.FindOrfs</a><br /> <a target="moduleFrame" href="toc-core.InsertMutations-module.html"
+ onclick="setFrame('toc-core.InsertMutations-module.html','core.InsertMutations-module.html');" >core.InsertMutations</a><br /> <a target="moduleFrame" href="toc-core.PlotData-module.html"
+ onclick="setFrame('toc-core.PlotData-module.html','core.PlotData-module.html');" >core.PlotData</a><br /> <a target="moduleFrame" href="toc-core.Prep-module.html"
+ onclick="setFrame('toc-core.Prep-module.html','core.Prep-module.html');" >core.Prep</a><br /> <a target="moduleFrame" href="toc-core.ReadAndWrite-module.html"
+ onclick="setFrame('toc-core.ReadAndWrite-module.html','core.ReadAndWrite-module.html');" >core.ReadAndWrite</a><br /> <a target="moduleFrame" href="toc-script-arden_analyze-module.html"
+ onclick="setFrame('toc-script-arden_analyze-module.html','script-arden_analyze-module.html');" >script-arden_analyze</a><br /> <a target="moduleFrame" href="toc-script-arden_create-module.html"
+ onclick="setFrame('toc-script-arden_create-module.html','script-arden_create-module.html');" >script-arden_create</a><br /> <a target="moduleFrame" href="toc-script-arden_filter-module.html"
+ onclick="setFrame('toc-script-arden_filter-module.html','script-arden_filter-module.html');" >script-arden_filter</a><br /><hr />
+ <span class="options">[<a href="javascript:void(0);" class="privatelink"
+ onclick="toggle_private();">hide private</a>]</span>
+
+<script type="text/javascript">
+ <!--
+ // Private objects are initially displayed (because if
+ // javascript is turned off then we want them to be
+ // visible); but by default, we want to hide them. So hide
+ // them unless we have a cookie that says to show them.
+ checkCookie();
+ // -->
+</script>
+</body>
+</html>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/arden.git
More information about the debian-med-commit
mailing list