comparison Tryp_T.py @ 7:25226d33642e draft

Uploaded
author johnheap
date Mon, 03 Jun 2019 14:06:47 -0400
parents 8f6469ffef85
children 5e346d75ccf3
comparison
equal deleted inserted replaced
6:e91e41380946 7:25226d33642e
1 """ 1
2 * Copyright 2018 University of Liverpool 2
3 * Author: John Heap, Computational Biology Facility, UoL 3
4 * Based on original scripts of Sara Silva Pereira, Institute of Infection and Global Health, UoL 4
5 * 5
6 * Licensed under the Apache License, Version 2.0 (the "License"); 6
7 * you may not use this file except in compliance with the License. 7 <!DOCTYPE html>
8 * You may obtain a copy of the License at 8 <html lang="en">
9 * 9 <head>
10 * http://www.apache.org/licenses/LICENSE-2.0 10 <meta charset="utf-8">
11 * 11 <link rel="dns-prefetch" href="https://github.githubassets.com">
12 * Unless required by applicable law or agreed to in writing, software 12 <link rel="dns-prefetch" href="https://avatars0.githubusercontent.com">
13 * distributed under the License is distributed on an "AS IS" BASIS, 13 <link rel="dns-prefetch" href="https://avatars1.githubusercontent.com">
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 <link rel="dns-prefetch" href="https://avatars2.githubusercontent.com">
15 * See the License for the specific language governing permissions and 15 <link rel="dns-prefetch" href="https://avatars3.githubusercontent.com">
16 * limitations under the License. 16 <link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com">
17 * 17 <link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
18 """ 18
19 19
20 20
21 import subprocess 21 <link crossorigin="anonymous" media="all" integrity="sha512-3+HOqCwtQal5hOJQ+mdxiq5zmGOTjF6RhjDsPLxbKDYgGlLFeCwzoIanb7j5IiCuXKUqyC2q8FdkC4nmx2P2rA==" rel="stylesheet" href="https://github.githubassets.com/assets/frameworks-a2fba223d5af91496cac70d4ec3624df.css" />
22 import pandas as pd 22 <link crossorigin="anonymous" media="all" integrity="sha512-MRlTIqIyb8caK5+o8llXVntXovciHyAM4qE3kWU2S7SIjAPDxYp4mE0jQp4kP5UYegy+lG9y1I6VlsdzEjb5Qw==" rel="stylesheet" href="https://github.githubassets.com/assets/site-294181adec18ed639e160b96b45d17ac.css" />
23 import re 23 <link crossorigin="anonymous" media="all" integrity="sha512-XjvAy/mMWN5aOA+pyb/FgAgcVgJkPkwTCwvFK07Ez/H44lvl55ZLGwtpyL4MaMrwDE8QYO+1VYljKFjqr4/iJA==" rel="stylesheet" href="https://github.githubassets.com/assets/github-5b066aa36cc405c9cbcbadf1bde399ed.css" />
24 import os 24
25 import sys 25
26 import matplotlib as mpl 26
27 mpl.use('Agg') 27
28 import matplotlib.pyplot as plt 28
29 29 <meta name="viewport" content="width=device-width">
30 pList = ['P1', 'P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'P11', 'P12', 'P13', 'P14', 'P15'] 30
31 quietString = "" #"">> Vap_log.txt 2>&1" 31 <title>VAPPER-Galaxy/Tryp_T.py at master · johnheap/VAPPER-Galaxy · GitHub</title>
32 def transcriptMapping(inputname, strain, forwardFN,reverseFN): 32 <meta name="description" content="Contribute to johnheap/VAPPER-Galaxy development by creating an account on GitHub.">
33 #where is our Reference data - 33 <link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="GitHub">
34 dir_path = os.path.dirname(os.path.realpath(__file__)) 34 <link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
35 refName = dir_path+"/data/Reference/Tc148" #default 35 <meta property="fb:app_id" content="1401488693436528">
36 if strain == "Tc148": 36
37 refName = dir_path+"/data/Reference/Tc148" 37 <meta name="twitter:image:src" content="https://avatars0.githubusercontent.com/u/24318980?s=400&amp;v=4" /><meta name="twitter:site" content="@github" /><meta name="twitter:card" content="summary" /><meta name="twitter:title" content="johnheap/VAPPER-Galaxy" /><meta name="twitter:description" content="Contribute to johnheap/VAPPER-Galaxy development by creating an account on GitHub." />
38 if strain == "IL3000": 38 <meta property="og:image" content="https://avatars0.githubusercontent.com/u/24318980?s=400&amp;v=4" /><meta property="og:site_name" content="GitHub" /><meta property="og:type" content="object" /><meta property="og:title" content="johnheap/VAPPER-Galaxy" /><meta property="og:url" content="https://github.com/johnheap/VAPPER-Galaxy" /><meta property="og:description" content="Contribute to johnheap/VAPPER-Galaxy development by creating an account on GitHub." />
39 refName = dir_path+"/data/Reference/IL3000" 39
40 #argString = "bowtie2 -x Refe4rence/IL3000 -1 data/"+forwardFN+" -2 data/"+reverseFN+" -S "+inputname+".sam" #>log.txt 40 <link rel="assets" href="https://github.githubassets.com/">
41 #argString = "bowtie2 -x Reference/Tc148 -1 data/"+forwardFN+" -2 data/"+reverseFN+" -S "+inputname+".sam" #>log.txt 41
42 argString = "bowtie2 -x "+refName+" -1 "+forwardFN+" -2 "+reverseFN+" -S "+inputname+".sam"+quietString #>log.txt 42 <meta name="pjax-timeout" content="1000">
43 #print(argString) 43
44 returncode = subprocess.call(argString, shell=True) 44 <meta name="request-id" content="A68B:03C7:99543:10DBF9:5CF561B6" data-pjax-transient>
45 45
46 def processSamFiles(inputname): 46
47 #debug use a mapping sam file we have already found 47
48 #dir_path = os.path.dirname(os.path.realpath(__file__)) 48
49 #bugName = dir_path+"/data/T_Test" #defasult 49 <meta name="selected-link" value="repo_source" data-pjax-transient>
50 50
51 cur_path = os.getcwd() 51 <meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
52 samName = cur_path+"/"+inputname 52 <meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
53 53 <meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
54 #argString = "samtools view -bS "+bugName+" > "+inputname+".bam" 54
55 argString = "samtools view -bS "+inputname+".sam > "+samName+".bam"+quietString 55 <meta name="octolytics-host" content="collector.githubapp.com" /><meta name="octolytics-app-id" content="github" /><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event" /><meta name="octolytics-dimension-request_id" content="A68B:03C7:99543:10DBF9:5CF561B6" /><meta name="octolytics-dimension-region_edge" content="iad" /><meta name="octolytics-dimension-region_render" content="iad" />
56 #print(argString) 56 <meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/blob/show" data-pjax-transient="true" />
57 returncode = subprocess.call(argString, shell=True) 57
58 58
59 59
60 #argString = "samtools sort "+bugName+" -o "+inputname+".sorted" 60 <meta name="google-analytics" content="UA-3769691-2">
61 argString = "samtools sort "+samName+".bam -o "+samName+".sorted"+quietString 61
62 #print("argstring = "+argString) 62
63 returncode = subprocess.call(argString, shell=True) 63 <meta class="js-ga-set" name="dimension1" content="Logged Out">
64 64
65 #argString = "samtools index "+bugName+".sorted "+inputname+".sorted.bai" 65
66 argString = "samtools index "+samName+".sorted "+samName+".sorted.bai"+quietString 66
67 #print("argstring = " + argString) 67
68 returncode = subprocess.call(argString, shell=True) 68
69 69 <meta name="hostname" content="github.com">
70 70 <meta name="user-login" content="">
71 71
72 72 <meta name="expected-hostname" content="github.com">
73 def transcriptAbundance(inputname, strain): 73 <meta name="js-proxy-site-detection-payload" content="MzM5YjY3ZjNjYzY5Y2RhNDI5MDYxM2MzZTc0ZGExYzUxM2I3NjhiNTdmNGE2NjMwYWVjMzFhMGIzNWY0MDU3OHx7InJlbW90ZV9hZGRyZXNzIjoiMTI4LjExOC4yNTAuNSIsInJlcXVlc3RfaWQiOiJBNjhCOjAzQzc6OTk1NDM6MTBEQkY5OjVDRjU2MUI2IiwidGltZXN0YW1wIjoxNTU5NTg1MjA3LCJob3N0IjoiZ2l0aHViLmNvbSJ9">
74 dir_path = os.path.dirname(os.path.realpath(__file__)) 74
75 refName = dir_path + "/data/Reference/ORFAnnotation.gtf" # defasult 75 <meta name="enabled-features" content="UNIVERSE_BANNER,MARKETPLACE_INVOICED_BILLING,MARKETPLACE_SOCIAL_PROOF_CUSTOMERS,MARKETPLACE_TRENDING_SOCIAL_PROOF,MARKETPLACE_RECOMMENDATIONS">
76 if strain == "Tc148": 76
77 refName = dir_path + "/data/Reference/ORFAnnotation.gtf" 77 <meta name="html-safe-nonce" content="632a90d8ff46863b6a26a12d9d6ed92a6679abbf">
78 if strain == "IL3000": 78
79 refName = dir_path + "/data/Reference/IL3000.gtf" 79 <meta http-equiv="x-pjax-version" content="af1499c2254d0582d0a98af1dfd7f11b">
80 #argString = "cufflinks -G Reference/IL3000.gtf -o "+inputname+".cuff -u -p 8 "+inputname+".sorted" 80
81 #argString = "cufflinks -G Reference/ORFAnnotation.gtf -o "+inputname+".cuff -u -p 8 "+inputname+".sorted" 81
82 argString = "cufflinks -q -G "+refName+" -o "+inputname+".cuff -u -p 8 "+inputname+".sorted"+quietString 82 <link href="https://github.com/johnheap/VAPPER-Galaxy/commits/master.atom" rel="alternate" title="Recent Commits to VAPPER-Galaxy:master" type="application/atom+xml">
83 returncode = subprocess.call(argString, shell = True) 83
84 84 <meta name="go-import" content="github.com/johnheap/VAPPER-Galaxy git https://github.com/johnheap/VAPPER-Galaxy.git">
85 85
86 def convertToFasta(inputName, strain): #equivalent to Sara's awk scripte 86 <meta name="octolytics-dimension-user_id" content="24318980" /><meta name="octolytics-dimension-user_login" content="johnheap" /><meta name="octolytics-dimension-repository_id" content="139730674" /><meta name="octolytics-dimension-repository_nwo" content="johnheap/VAPPER-Galaxy" /><meta name="octolytics-dimension-repository_public" content="true" /><meta name="octolytics-dimension-repository_is_fork" content="false" /><meta name="octolytics-dimension-repository_network_root_id" content="139730674" /><meta name="octolytics-dimension-repository_network_root_nwo" content="johnheap/VAPPER-Galaxy" /><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false" />
87 dir_path = os.path.dirname(os.path.realpath(__file__)) 87
88 refName = dir_path + "/data/Reference/ORFAnnotation.gtf" # default 88
89 if strain == "Tc148": 89 <link rel="canonical" href="https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py" data-pjax-transient>
90 refName = dir_path + "/data/Reference/148_prot.fasta" 90
91 if strain == "IL3000": 91
92 refName = dir_path + "/data/Reference/IL3000_prot.fasta" 92 <meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
93 93
94 cuff_df = pd.read_csv(inputName+".cuff/genes.fpkm_tracking", sep='\t') 94 <meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
95 cuff_df = cuff_df[(cuff_df['FPKM'] > 0)] 95
96 cuff_df.to_csv("cuffTest.csv") 96 <link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
97 gene_id_List = cuff_df['gene_id'].tolist() 97 <link rel="icon" type="image/x-icon" class="js-site-favicon" href="https://github.githubassets.com/favicon.ico">
98 98
99 #print(gene_id_List) 99 <meta name="theme-color" content="#1e2327">
100 #print ("Found from 8880="+str(found)) 100
101 101
102 # need to load in IL3000_prot.fasta 102
103 # for each line with >TcIL3000_1_1940 103
104 # search within cuff_df[gene_id] for match 104
105 # add it to the outfile. (need to save it as used by hmmer later 105 <link rel="manifest" href="/manifest.json" crossOrigin="use-credentials">
106 number = 0 106
107 all = 0 107 </head>
108 with open(inputName+"_6frame.fas", 'w') as outfile: 108
109 ref = open(refName,'r') 109 <body class="logged-out env-production page-responsive page-blob">
110 #ref = open(r"Reference/IL3000_prot.fasta",'r') 110
111 n = 0 111
112 line = ref.readline() 112 <div class="position-relative js-header-wrapper ">
113 while line: 113 <a href="#start-of-content" tabindex="1" class="px-2 py-4 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
114 if line[0] == '>': 114 <div id="js-pjax-loader-bar" class="pjax-loader-bar"><div class="progress"></div></div>
115 all = all+1 115
116 ln = line[1:] #remove > 116
117 ln = ln.rstrip() #remove /n /r etc 117
118 #print (ln) 118
119 if ln in gene_id_List: 119
120 number = number+1 120
121 outfile.write(line) 121 <header class="Header-old header-logged-out js-details-container Details position-relative f4 py-2" role="banner">
122 line = ref.readline() 122 <div class="container-lg d-lg-flex flex-items-center p-responsive">
123 if line: 123 <div class="d-flex flex-justify-between flex-items-center">
124 while line[0] != '>': 124 <a class="mr-4" href="https://github.com/" aria-label="Homepage" data-ga-click="(Logged out) Header, go to homepage, icon:logo-wordmark">
125 outfile.write(line) 125 <svg height="32" class="octicon octicon-mark-github text-white" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
126 line=ref.readline() 126 </a>
127 if not line: 127
128 break; 128 <div class="d-lg-none css-truncate css-truncate-target width-fit p-2">
129 else: 129
130 line = ref.readline() 130 <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
131 else: 131 <a class="Header-link" href="/johnheap">johnheap</a>
132 line =ref.readline() 132 /
133 ref.close() 133 <a class="Header-link" href="/johnheap/VAPPER-Galaxy">VAPPER-Galaxy</a>
134 print(str(len(gene_id_List))+":"+str(number)+" from "+str(all)) 134
135 return cuff_df 135
136 136 </div>
137 def HMMerMotifSearch(name, strain, cuff_df): 137
138 motifs = ['1', '2a', '2b', '3', '4a', '4b', '4c', '5', '6', '7', '8a', '8b', '9a', '9b', 138 <div class="d-flex flex-items-center">
139 '9c', '10a', '10b', '11a', '11b', '12', '13a', '13b', '13c', '13d', '14', '15a', '15b', '15c'] 139 <a class="d-inline-block d-lg-none f5 text-white no-underline border border-gray-dark rounded-2 px-2 py-1 mr-3 mr-sm-5" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="2815673fe800ea60b3399372453cd6ad235f12180cead78fa9534b2f8d8e77a5" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up" href="/join?source=header-repo">
140 dir_path = os.path.dirname(os.path.realpath(__file__)) 140 Sign&nbsp;up
141 phylopath = dir_path + "/data/Motifs/Phylotype" 141 </a>
142 lineCounts = [] 142 <button class="btn-link d-lg-none mt-1 js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
143 compoundList = [] 143 <svg height="24" class="octicon octicon-three-bars text-white" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M11.41 9H.59C0 9 0 8.59 0 8c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zm0-4H.59C0 5 0 4.59 0 4c0-.59 0-1 .59-1H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1h.01zM.59 11H11.4c.59 0 .59.41.59 1 0 .59 0 1-.59 1H.59C0 13 0 12.59 0 12c0-.59 0-1 .59-1z"/></svg>
144 for m in motifs: 144 </button>
145 argString = "hmmsearch "+phylopath + m + ".hmm " + name + "_6frame.fas > Phy" + m + ".out" 145 </div>
146 print(argString) 146 </div>
147 subprocess.call(argString, shell=True) 147
148 hmmResult = open("Phy" + m + ".out", 'r') 148 <div class="HeaderMenu HeaderMenu--logged-out position-fixed top-0 right-0 bottom-0 height-fit position-lg-relative d-lg-flex flex-justify-between flex-items-center flex-auto">
149 regex = r"Tc148[0-9]{1,8}" 149 <div class="d-flex d-lg-none flex-justify-end border-bottom bg-gray-light p-3">
150 if strain == "Tc148": 150 <button class="btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
151 regex = r"Tc148[0-9]{1,8}" 151 <svg height="24" class="octicon octicon-x text-gray" viewBox="0 0 12 16" version="1.1" width="18" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
152 if strain == "IL3000": 152 </button>
153 regex = r"TcIL3000_[0-9]{1,4}_[0-9]{1,5}" 153 </div>
154 n = 0 154
155 outList = [] 155 <nav class="mt-0 px-3 px-lg-0 mb-5 mb-lg-0" aria-label="Global">
156 for line in hmmResult: 156 <ul class="d-lg-flex list-style-none">
157 m = re.search(regex, line) 157 <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
158 if m: 158 <details class="HeaderMenu-details details-overlay details-reset width-full">
159 outList.append(""+m.group()) 159 <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
160 n += 1 160 Why GitHub?
161 if re.search(r"inclusion", line): 161 <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
162 print("inclusion threshold reached") 162 <path d="M1,1l6.2,6L13,1"></path>
163 break 163 </svg>
164 compoundList.append(outList) 164 </summary>
165 lineCounts.append(n) 165 <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
166 hmmResult.close() 166 <a href="/features" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Features">Features <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
167 #print(lineCounts) 167 <ul class="list-style-none f5 pb-3">
168 168 <li class="edge-item-fix"><a href="/features/code-review/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code review">Code review</a></li>
169 #print(cuff_df) 169 <li class="edge-item-fix"><a href="/features/project-management/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Project management">Project management</a></li>
170 concatGroups = [1, 2, 1, 3, 1, 1, 1, 2, 3, 2, 2, 1, 4, 1, 3] 170 <li class="edge-item-fix"><a href="/features/integrations" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Integrations">Integrations</a></li>
171 countList = [] 171 <li class="edge-item-fix"><a href="/features/actions" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Actions">Actions</a>
172 weightList = [] 172 <li class="edge-item-fix"><a href="/features/package-registry" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Package Registry">Package registry</a>
173 countIndex = 0 173 <li class="edge-item-fix"><a href="/features#team-management" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Team management">Team management</a></li>
174 totalCount = 0 174 <li class="edge-item-fix"><a href="/features#social-coding" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Social coding">Social coding</a></li>
175 totalWeigth = 0 175 <li class="edge-item-fix"><a href="/features#documentation" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Documentation">Documentation</a></li>
176 for c in concatGroups: 176 <li class="edge-item-fix"><a href="/features#code-hosting" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Code hosting">Code hosting</a></li>
177 a = [] 177 </ul>
178 weight = [] 178
179 for n in range(0, c): 179 <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
180 a = a + compoundList.pop(0) 180 <li class="edge-item-fix"><a href="/customer-stories" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Customer stories">Customer stories <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
181 t = set(a) 181 <li class="edge-item-fix"><a href="/security" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Security">Security <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
182 countList.append(len(t)) 182 </ul>
183 wa = 0 183 </div>
184 for w in t: 184 </details>
185 wt = cuff_df.loc[cuff_df['gene_id'] == w, 'FPKM'].iloc[0] 185 </li>
186 #print(w) 186 <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
187 #print(wt) 187 <a href="/enterprise" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Enterprise">Enterprise</a>
188 wa = wa+wt 188 </li>
189 weightList.append(wa) 189
190 totalWeigth+=wa 190 <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
191 totalCount += len(t) 191 <details class="HeaderMenu-details details-overlay details-reset width-full">
192 countList.append(totalCount) 192 <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
193 weightList.append(totalWeigth) 193 Explore
194 #print(countList) 194 <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
195 #print("--------") 195 <path d="M1,1l6.2,6L13,1"></path>
196 #print(weightList) 196 </svg>
197 #print("--------") 197 </summary>
198 return countList,weightList 198
199 199 <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-0 mt-0 pb-4 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
200 def relativeFrequencyTable(countList, name, htmlresource): 200 <ul class="list-style-none mb-3">
201 relFreqList = [] 201 <li class="edge-item-fix"><a href="/explore" class="py-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Explore">Explore GitHub <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
202 c = float(countList[15]) 202 </ul>
203 for i in range(0, 15): 203
204 relFreqList.append(countList[i] / c) 204 <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Learn &amp; contribute</h4>
205 205 <ul class="list-style-none mb-3">
206 data = {'Phylotype': pList, 'Relative Frequency': relFreqList} 206 <li class="edge-item-fix"><a href="/topics" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Topics">Topics</a></li>
207 relFreq_df = pd.DataFrame(data) 207 <li class="edge-item-fix"><a href="/collections" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Collections">Collections</a></li>
208 j_fname = htmlresource+ "/" + name + "_t_relative_frequency.csv" 208 <li class="edge-item-fix"><a href="/trending" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Trending">Trending</a></li>
209 relFreq_df.to_csv(j_fname) 209 <li class="edge-item-fix"><a href="https://lab.github.com/" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Learning lab">Learning Lab</a></li>
210 return relFreqList # 0-14 = p1-p15 counts [15] = total counts 210 <li class="edge-item-fix"><a href="https://opensource.guide" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Open source guides">Open source guides</a></li>
211 211 </ul>
212 212
213 def weightedFrequencyTable(countList, name, htmlresource): 213 <h4 class="text-gray-light text-normal text-mono f5 mb-2 border-lg-top pt-lg-3">Connect with others</h4>
214 relFreqList = [] 214 <ul class="list-style-none mb-0">
215 c = float(countList[15]) 215 <li class="edge-item-fix"><a href="https://github.com/events" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Events">Events</a></li>
216 for i in range(0, 15): 216 <li class="edge-item-fix"><a href="https://github.community" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Community forum">Community forum</a></li>
217 relFreqList.append(countList[i] / c) 217 <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to GitHub Education">GitHub Education</a></li>
218 218 </ul>
219 data = {'Phylotype': pList, 'Weighted Frequency': relFreqList} 219 </div>
220 relFreq_df = pd.DataFrame(data) 220 </details>
221 j_fname = htmlresource+ "/" + name + "_t_weighted_frequency.csv" 221 </li>
222 relFreq_df.to_csv(j_fname) 222
223 return relFreqList # 0-14 = p1-p15 counts [15] = total counts 223 <li class="border-bottom border-lg-bottom-0 mr-0 mr-lg-3">
224 224 <a href="/marketplace" class="HeaderMenu-link no-underline py-3 d-block d-lg-inline-block" data-ga-click="(Logged out) Header, go to Marketplace">Marketplace</a>
225 225 </li>
226 226
227 def createStackedBar(name,freqList,strain,pdf,html_resource): 227 <li class="d-block d-lg-flex flex-lg-nowrap flex-lg-items-center border-bottom border-lg-bottom-0 mr-0 mr-lg-3 edge-item-fix position-relative flex-wrap flex-justify-between d-flex flex-items-center ">
228 palette = ["#0000ff", "#6495ed", "#00ffff", "#caff70", 228 <details class="HeaderMenu-details details-overlay details-reset width-full">
229 "#228b22", "#528b8b", "#00ff00", "#a52a2a", 229 <summary class="HeaderMenu-summary HeaderMenu-link px-0 py-3 border-0 no-wrap d-block d-lg-inline-block">
230 "#ff0000", "#ffff00", "#ffa500", "#ff1493", 230 Pricing
231 "#9400d3", "#bebebe", "#000000", "#ff00ff"] 231 <svg x="0px" y="0px" viewBox="0 0 14 8" xml:space="preserve" fill="none" class="icon-chevon-down-mktg position-absolute position-lg-relative">
232 232 <path d="M1,1l6.2,6L13,1"></path>
233 VAP_148 = [0.072, 0.032, 0.032, 0.004, 0.007, 233 </svg>
234 0.005, 0.202, 0.004, 0.006, 0.014, 234 </summary>
235 0.130, 0.133, 0.054, 0.039, 0.265] 235
236 236 <div class="dropdown-menu flex-auto rounded-1 bg-white px-0 pt-2 pb-4 mt-0 p-lg-4 position-relative position-lg-absolute left-0 left-lg-n4">
237 VAP_IL3000 = [0.073, 0.040, 0.049, 0.018, 0.060, 237 <a href="/pricing" class="pb-2 lh-condensed-ultra d-block link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Pricing">Plans <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a>
238 0.055, 0.054, 0.025, 0.012, 0.060, 238
239 0.142, 0.100, 0.061, 0.078, 0.172] 239 <ul class="list-style-none mb-3">
240 cmap = plt.cm.get_cmap('tab20') 240 <li class="edge-item-fix"><a href="/pricing#feature-comparison" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Compare plans">Compare plans</a></li>
241 palette = [cmap(i) for i in range(cmap.N)] 241 <li class="edge-item-fix"><a href="https://enterprise.github.com/contact" class="py-2 lh-condensed-ultra d-block link-gray no-underline f5" data-ga-click="(Logged out) Header, go to Contact Sales">Contact Sales</a></li>
242 242 </ul>
243 if strain == "Tc148": 243
244 VAPtable = VAP_148 244 <ul class="list-style-none mb-0 border-lg-top pt-lg-3">
245 VAPname='Tc148\nGenome VAP' 245 <li class="edge-item-fix"><a href="/nonprofit" class="py-2 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Nonprofits">Nonprofit <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
246 if strain == "IL3000": 246 <li class="edge-item-fix"><a href="https://education.github.com" class="py-2 pb-0 lh-condensed-ultra d-block no-underline link-gray-dark no-underline h5 Bump-link--hover" data-ga-click="(Logged out) Header, go to Education">Education <span class="Bump-link-symbol float-right text-normal text-gray-light">&rarr;</span></a></li>
247 VAPtable = VAP_IL3000 247 </ul>
248 VAPname= 'IL3000\nGenome VAP' 248 </div>
249 width = 0.35 # the width of the bars: can also be len(x) sequence 249 </details>
250 plots = [] 250 </li>
251 fpos = 0 251 </ul>
252 vpos = 0 252 </nav>
253 for p in range(0, 15): 253
254 tp = plt.bar(0, freqList[p], width, color= palette[p], bottom = fpos) 254 <div class="d-lg-flex flex-items-center px-3 px-lg-0 text-center text-lg-left">
255 fpos +=freqList[p] 255 <div class="d-lg-flex mb-3 mb-lg-0">
256 256 <div class="header-search flex-self-stretch flex-lg-self-auto mr-0 mr-lg-3 mb-3 mb-lg-0 scoped-search site-scoped-search js-site-search position-relative js-jump-to"
257 tp = plt.bar(1, VAPtable[p], width, color= palette[p], bottom = vpos) 257 role="combobox"
258 vpos +=VAPtable[p] 258 aria-owns="jump-to-results"
259 259 aria-label="Search or jump to"
260 plots.append(tp) 260 aria-haspopup="listbox"
261 plt.xticks([0,1],[name,VAPname]) 261 aria-expanded="false"
262 plt.legend(plots[::-1],['p15','p14','p13','p12','p11','p10','p9','p8','p7','p6','p5','p4','p3','p2','p1']) 262 >
263 title = "Figure Legend: The transcriptomic Variant Antigen Profile of $\itTrypanosoma$ $\itcongolense$ estimated as phylotype " \ 263 <div class="position-relative">
264 "proportion adjusted for transcript abundance and the reference genomic Variant Antigen Profile. " \ 264 <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="139730674" data-scoped-search-url="/johnheap/VAPPER-Galaxy/search" data-unscoped-search-url="/search" action="/johnheap/VAPPER-Galaxy/search" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
265 "\nData was produced with the 'Variant Antigen Profiler' (Silva Pereira and Jackson, 2018)." 265 <label class="form-control input-sm header-search-wrapper p-0 header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center js-chromeless-input-container">
266 #plt.title(title, wrap="True") 266 <input type="text"
267 #plt.text(-0.2, -0.05, title, va="top", transform=ax.transAxes, wrap="True") 267 class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable"
268 plt.text(-0.3, -0.15, title, va="top", wrap="True") 268 data-hotkey="s,/"
269 plt.tight_layout(pad=1.5) 269 name="q"
270 plt.subplots_adjust(bottom = 0.3,top=0.99,left=0.125,right=0.9,hspace=0.2,wspace=0.2) 270 value=""
271 271 placeholder="Search"
272 plt.savefig(html_resource + "/stackedbar.png") 272 data-unscoped-placeholder="Search GitHub"
273 if pdf == 'PDF_Yes': 273 data-scoped-placeholder="Search"
274 plt.savefig(html_resource + "/stackedbar.pdf") 274 autocapitalize="off"
275 #plt.show() 275 aria-autocomplete="list"
276 276 aria-controls="jump-to-results"
277 277 aria-label="Search"
278 def createHTML(name,htmlfn,htmlresource,freqList,weightList): 278 data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations#csrf-token=aIF6VlsMjmBGKiH9gFW0N7Dd6tKGBfaVG4YIMScDT9WHVDbYUTh6gnqmb9yMT8saP+1TzsRaVWx++i39m514Bw=="
279 #assumes imgs are heatmap.png, dheatmap.png, vapPCA.png and already in htmlresource 279 spellcheck="false"
280 htmlString = r"<html><title>T.congolense VAP</title><body><div style='text-align:center'><h2><i>Trypanosoma congolense</i> Variant Antigen Profile</h2><h3>" 280 autocomplete="off"
281 htmlString += name 281 >
282 htmlString += r"<br>Transcriptomic Analysis</h3></p>" 282 <input type="hidden" class="js-site-search-type-field" name="type" >
283 htmlString += "<p style = 'margin-left:20%; margin-right:20%'>Table Legend: Variant Antigen Profiles of a transcriptome of <i>Trypanosoma congolense</i> estimated as phylotype proportion. " \ 283 <img src="https://github.githubassets.com/images/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
284 "Weighted frequency refers to the phylotype proportion based transcript abundance. " \ 284
285 "Data was produced with the 'Variant Antigen Profiler' (Silva Pereira and Jackson, 2018).</p> " 285 <div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
286 htmlString += r"<style> table, th, tr, td {border: 1px solid black; border-collapse: collapse;}</style>" 286
287 287 <ul class="d-none js-jump-to-suggestions-template-container">
288 htmlString += r"<table style='width:50%;margin-left:25%;text-align:center'><tr><th>Phylotype</th><th>Relative Frequency</th><th>Weighted Frequency</th></tr>" 288
289 tabString = "" 289
290 # flush out table with correct values 290 <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
291 for i in range(0, 15): 291 <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
292 f = format(freqList[i], '.4f') 292 <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
293 w = format(weightList[i], '.4f') 293 <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
294 tabString += "<tr><td>phy" + str(i + 1) + "</td><td>" + f + "</td><td>" + w + "</td></tr>" 294 <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
295 htmlString += tabString + "</table><br><br><br><br><br>" 295 <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
296 htmlString += r"<p> <h3>Stacked Bar chart of Phylotype Frequency</h3> The 'weighted' relative frequency of each phylotype alongside the VAP of selected strain.</p>" 296 </div>
297 imgString = r"<img src = 'stackedbar.png' alt='Stacked bar chart of phylotype variation' style='max-width:100%'><br><br>" 297
298 htmlString += imgString 298 <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
299 299
300 # htmlString += r"<p><h3>The Deviation Heat Map and Dendogram</h3>The phylotype variation expressed as the deviation from your sample mean compared to the model dataset</p>" 300 <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
301 # imgString = r"<img src = 'dheatmap.png' alt='Deviation Heatmap' style='max-width:100%'><br><br>" 301 </div>
302 # htmlString += imgString 302
303 303 <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
304 # htmlString += r"<p><h3>The Variation PCA plot</h3>PCA analysis corresponding to absolute variation. Colour coded according to location</p>" 304 <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
305 # imgString = r"<img src = 'vapPCA.png' alt='PCA Analysis' style='max-width:100%'><br><br>" 305 In this repository
306 # htmlString += imgString + r"</div></body></html>" 306 </span>
307 307 <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
308 with open(htmlfn, "w") as htmlfile: 308 All GitHub
309 htmlfile.write(htmlString) 309 </span>
310 310 <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
311 #argdict = {'name':2, 'pdfexport': 3, 'strain': 4, 'forward': 5, 'reverse': 6, 'html_file': 7, 'html_resource': 8} 311 </div>
312 def transcriptomicProcess(args,dict): 312
313 transcriptMapping(args[dict['name']], args[dict['strain']], args[dict['forward']], args[dict['reverse']]) #uses bowtie 313 <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
314 processSamFiles(args[dict['name']]) #uses samtools 314 Jump to
315 transcriptAbundance(args[dict['name']],args[dict['strain']]) #uses cufflinks -> ?.cuff/*.* 315 <span class="d-inline-block ml-1 v-align-middle">↵</span>
316 cuff_df = convertToFasta(args[dict['name']],args[dict['strain']]) 316 </div>
317 countList, weightList = HMMerMotifSearch(args[dict['name']],args[dict['strain']], cuff_df) 317 </a>
318 relFreqList = relativeFrequencyTable(countList,args[dict['name']],args[dict['html_resource']]) 318 </li>
319 relWeightList = weightedFrequencyTable(weightList,args[dict['name']],args[dict['html_resource']]) 319
320 createStackedBar(args[dict['name']],relWeightList, args[dict['strain']],args[dict['pdfexport']],args[dict['html_resource']]) 320 </ul>
321 createHTML(args[dict['name']],args[dict['html_file']],args[dict['html_resource']], relFreqList, relWeightList) 321
322 322 <ul class="d-none js-jump-to-no-results-template-container">
323 if __name__ == "__main__": 323 <li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
324 #print("Commencing Transcript Mapping") 324 <span class="text-gray">No suggested jump to results</span>
325 #transcriptMapping("T_Test", "Transcripts.1","Transcripts.2") 325 </li>
326 #print("Processimg Sam Files") 326 </ul>
327 #processSamFiles("T_Test") 327
328 #print("Assessing Transcript Abundance") 328 <ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
329 #transcriptAbundance("T_Test") 329
330 #print ("Converting to Fasta Subset") 330
331 #cuff_df = convertToFasta("T_Test") 331 <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
332 #print("Commencing HMMer search") 332 <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
333 #countList, weightList = HMMerMotifSearch("T_Test",cuff_df) 333 <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
334 #relativeFrequencyTable(countList,'T_Test') 334 <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
335 #weightedFrequencyTable(weightList,'T_Test') 335 <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
336 relFreqList = [0.111842105,0.059210526,0.026315789,0.013157895, 336 <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
337 0.006578947,0.013157895,0.032894737,0.019736842, 337 </div>
338 0.039473684,0.046052632,0.217105263,0.065789474, 338
339 0.151315789,0.059210526,0.138157895] 339 <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
340 340
341 relWeightList = [0.07532571,0.05900545,0.009601452,0.042357532,0.01236219,0.001675663,0.04109726, 341 <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
342 0.097464248,0.057491666,0.05826875,0.279457473,0.070004772,0.065329007,0.085361298,0.045197529] 342 </div>
343 343
344 createStackedBar('T_Test',relWeightList, 'Tc148','PDF_Yes','results') 344 <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
345 createHTML("t_test","results/t_test.html","results",relFreqList,relWeightList) 345 <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
346 In this repository
347 </span>
348 <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
349 All GitHub
350 </span>
351 <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
352 </div>
353
354 <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
355 Jump to
356 <span class="d-inline-block ml-1 v-align-middle">↵</span>
357 </div>
358 </a>
359 </li>
360
361
362
363 <li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
364 <a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="">
365 <div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
366 <svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 12 16" version="1.1" role="img"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
367 <svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 15 16" version="1.1" role="img"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
368 <svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M15.7 13.3l-3.81-3.83A5.93 5.93 0 0 0 13 6c0-3.31-2.69-6-6-6S1 2.69 1 6s2.69 6 6 6c1.3 0 2.48-.41 3.47-1.11l3.83 3.81c.19.2.45.3.7.3.25 0 .52-.09.7-.3a.996.996 0 0 0 0-1.41v.01zM7 10.7c-2.59 0-4.7-2.11-4.7-4.7 0-2.59 2.11-4.7 4.7-4.7 2.59 0 4.7 2.11 4.7 4.7 0 2.59-2.11 4.7-4.7 4.7z"/></svg>
369 </div>
370
371 <img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
372
373 <div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
374 </div>
375
376 <div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
377 <span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
378 In this repository
379 </span>
380 <span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
381 All GitHub
382 </span>
383 <span aria-hidden="true" class="d-inline-block ml-1 v-align-middle">↵</span>
384 </div>
385
386 <div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
387 Jump to
388 <span class="d-inline-block ml-1 v-align-middle">↵</span>
389 </div>
390 </a>
391 </li>
392
393
394 </ul>
395
396 </div>
397 </label>
398 </form> </div>
399 </div>
400
401 </div>
402
403 <a class="HeaderMenu-link no-underline mr-3" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ee13ebea83318ac27e6a65b780a208b4ce93890e3887689f786a3a86a3aa41cb" data-ga-click="(Logged out) Header, clicked Sign in, text:sign-in" href="/login?return_to=%2Fjohnheap%2FVAPPER-Galaxy%2Fblob%2Fmaster%2FTryp_T.py">
404 Sign&nbsp;in
405 </a> <a class="HeaderMenu-link d-inline-block no-underline border border-gray-dark rounded-1 px-2 py-1" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;site header menu&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="ff072ec41895d40692c4e40554c544f4e6d3a197b0aa2bc35ed34ef5987a3ec2" data-ga-click="(Logged out) Header, clicked Sign up, text:sign-up" href="/join?source=header-repo">
406 Sign&nbsp;up
407 </a> </div>
408 </div>
409 </div>
410 </header>
411
412 </div>
413
414 <div id="start-of-content" class="show-on-focus"></div>
415
416
417 <div id="js-flash-container">
418
419 </div>
420
421
422
423 <div class="application-main " data-commit-hovercards-enabled>
424 <div itemscope itemtype="http://schema.org/SoftwareSourceCode" class="">
425 <main >
426
427
428
429
430
431
432
433
434
435
436 <div class="pagehead repohead instapaper_ignore readability-menu experiment-repo-nav pt-0 pt-lg-4 ">
437 <div class="repohead-details-container clearfix container-lg p-responsive d-none d-lg-block">
438
439 <ul class="pagehead-actions">
440
441
442
443
444 <li>
445
446 <a class="tooltipped tooltipped-s btn btn-sm btn-with-count" aria-label="You must be signed in to watch a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;notification subscription menu watch&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="303fe83d7f28189cc1006654f2b9fbccd2c8838444327b8f33c609f157702b21" href="/login?return_to=%2Fjohnheap%2FVAPPER-Galaxy">
447 <svg class="octicon octicon-eye v-align-text-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.06 2C3 2 0 8 0 8s3 6 8.06 6C13 14 16 8 16 8s-3-6-7.94-6zM8 12c-2.2 0-4-1.78-4-4 0-2.2 1.8-4 4-4 2.22 0 4 1.8 4 4 0 2.22-1.78 4-4 4zm2-4c0 1.11-.89 2-2 2-1.11 0-2-.89-2-2 0-1.11.89-2 2-2 1.11 0 2 .89 2 2z"/></svg>
448 Watch
449 </a> <a class="social-count" href="/johnheap/VAPPER-Galaxy/watchers"
450 aria-label="0 users are watching this repository">
451 0
452 </a>
453
454 </li>
455
456 <li>
457 <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to star a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;star button&quot;,&quot;repository_id&quot;:139730674,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="0b7f28f0aecc977595e6f55f43272a0e1be4f4f7700f4f26ab93eae1b5fa8ee1" href="/login?return_to=%2Fjohnheap%2FVAPPER-Galaxy">
458 <svg class="octicon octicon-star v-align-text-bottom" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14 6l-4.9-.64L7 1 4.9 5.36 0 6l3.6 3.26L2.67 14 7 11.67 11.33 14l-.93-4.74L14 6z"/></svg>
459 Star
460 </a>
461 <a class="social-count js-social-count" href="/johnheap/VAPPER-Galaxy/stargazers"
462 aria-label="0 users starred this repository">
463 0
464 </a>
465
466 </li>
467
468 <li>
469 <a class="btn btn-sm btn-with-count tooltipped tooltipped-s" aria-label="You must be signed in to fork a repository" rel="nofollow" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;repo details fork button&quot;,&quot;repository_id&quot;:139730674,&quot;auth_type&quot;:&quot;LOG_IN&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="cb93cd40277ba7752d7d1cb24a212cbd8c94065f1bb5f20aa10db6bb11698ef0" href="/login?return_to=%2Fjohnheap%2FVAPPER-Galaxy">
470 <svg class="octicon octicon-repo-forked v-align-text-bottom" viewBox="0 0 10 16" version="1.1" width="10" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
471 Fork
472 </a>
473 <a href="/johnheap/VAPPER-Galaxy/network/members" class="social-count"
474 aria-label="0 users forked this repository">
475 0
476 </a>
477 </li>
478 </ul>
479
480 <h1 class="public ">
481 <svg class="octicon octicon-repo" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 9H3V8h1v1zm0-3H3v1h1V6zm0-2H3v1h1V4zm0-2H3v1h1V2zm8-1v12c0 .55-.45 1-1 1H6v2l-1.5-1.5L3 16v-2H1c-.55 0-1-.45-1-1V1c0-.55.45-1 1-1h10c.55 0 1 .45 1 1zm-1 10H1v2h2v-1h3v1h5v-2zm0-10H2v9h9V1z"/></svg>
482 <span class="author" itemprop="author"><a class="url fn" rel="author" data-hovercard-type="user" data-hovercard-url="/hovercards?user_id=24318980" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="/johnheap">johnheap</a></span><!--
483 --><span class="path-divider">/</span><!--
484 --><strong itemprop="name"><a data-pjax="#js-repo-pjax-container" href="/johnheap/VAPPER-Galaxy">VAPPER-Galaxy</a></strong>
485
486
487 </h1>
488
489 </div>
490
491 <nav class="hx_reponav reponav js-repo-nav js-sidenav-container-pjax container-lg p-responsive d-none d-lg-block"
492 itemscope
493 itemtype="http://schema.org/BreadcrumbList"
494 aria-label="Repository"
495 data-pjax="#js-repo-pjax-container">
496
497 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
498 <a class="js-selected-navigation-item selected reponav-item" itemprop="url" data-hotkey="g c" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /johnheap/VAPPER-Galaxy" href="/johnheap/VAPPER-Galaxy">
499 <svg class="octicon octicon-code" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M9.5 3L8 4.5 11.5 8 8 11.5 9.5 13 14 8 9.5 3zm-5 0L0 8l4.5 5L6 11.5 2.5 8 6 4.5 4.5 3z"/></svg>
500 <span itemprop="name">Code</span>
501 <meta itemprop="position" content="1">
502 </a> </span>
503
504 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
505 <a itemprop="url" data-hotkey="g i" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /johnheap/VAPPER-Galaxy/issues" href="/johnheap/VAPPER-Galaxy/issues">
506 <svg class="octicon octicon-issue-opened" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg>
507 <span itemprop="name">Issues</span>
508 <span class="Counter">0</span>
509 <meta itemprop="position" content="2">
510 </a> </span>
511
512 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
513 <a data-hotkey="g p" itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /johnheap/VAPPER-Galaxy/pulls" href="/johnheap/VAPPER-Galaxy/pulls">
514 <svg class="octicon octicon-git-pull-request" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 11.28V5c-.03-.78-.34-1.47-.94-2.06C9.46 2.35 8.78 2.03 8 2H7V0L4 3l3 3V4h1c.27.02.48.11.69.31.21.2.3.42.31.69v6.28A1.993 1.993 0 0 0 10 15a1.993 1.993 0 0 0 1-3.72zm-1 2.92c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zM4 3c0-1.11-.89-2-2-2a1.993 1.993 0 0 0-1 3.72v6.56A1.993 1.993 0 0 0 2 15a1.993 1.993 0 0 0 1-3.72V4.72c.59-.34 1-.98 1-1.72zm-.8 10c0 .66-.55 1.2-1.2 1.2-.65 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z"/></svg>
515 <span itemprop="name">Pull requests</span>
516 <span class="Counter">0</span>
517 <meta itemprop="position" content="3">
518 </a> </span>
519
520
521 <a data-hotkey="g b" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /johnheap/VAPPER-Galaxy/projects" href="/johnheap/VAPPER-Galaxy/projects">
522 <svg class="octicon octicon-project" viewBox="0 0 15 16" version="1.1" width="15" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M10 12h3V2h-3v10zm-4-2h3V2H6v8zm-4 4h3V2H2v12zm-1 1h13V1H1v14zM14 0H1a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1h13a1 1 0 0 0 1-1V1a1 1 0 0 0-1-1z"/></svg>
523 Projects
524 <span class="Counter" >0</span>
525 </a>
526
527
528 <a data-skip-pjax="true" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy /johnheap/VAPPER-Galaxy/security/advisories" href="/johnheap/VAPPER-Galaxy/security/advisories">
529 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="octicon" height="16px" width="16px">
530 <path fill-rule="evenodd" clip-rule="evenodd" d="M1 2l7-2 7 2v6.02C15 12.69 9.69 16 8 16c-1.69 0-7-3.31-7-7.98V2zm1 .75L8 1l6 1.75v5.268C14 12.104 9.45 15 8 15c-1.45 0-6-2.896-6-6.982V2.75z"></path>
531 <path d="M3 3.5L8 2v12c-1.207 0-5-2.482-5-5.985V3.5z"></path>
532 </svg>
533
534 Security
535 </a>
536 <a class="js-selected-navigation-item reponav-item" data-selected-links="repo_graphs repo_contributors dependency_graph pulse people /johnheap/VAPPER-Galaxy/pulse" href="/johnheap/VAPPER-Galaxy/pulse">
537 <svg class="octicon octicon-graph" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 14v1H0V0h1v14h15zM5 13H3V8h2v5zm4 0H7V3h2v10zm4 0h-2V6h2v7z"/></svg>
538 Insights
539 </a>
540
541 </nav>
542
543 <div class="reponav-wrapper reponav-small d-lg-none">
544 <nav class="reponav js-reponav text-center no-wrap"
545 itemscope
546 itemtype="http://schema.org/BreadcrumbList">
547
548 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
549 <a class="js-selected-navigation-item selected reponav-item" itemprop="url" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages /johnheap/VAPPER-Galaxy" href="/johnheap/VAPPER-Galaxy">
550 <span itemprop="name">Code</span>
551 <meta itemprop="position" content="1">
552 </a> </span>
553
554 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
555 <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_issues repo_labels repo_milestones /johnheap/VAPPER-Galaxy/issues" href="/johnheap/VAPPER-Galaxy/issues">
556 <span itemprop="name">Issues</span>
557 <span class="Counter">0</span>
558 <meta itemprop="position" content="2">
559 </a> </span>
560
561 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
562 <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_pulls checks /johnheap/VAPPER-Galaxy/pulls" href="/johnheap/VAPPER-Galaxy/pulls">
563 <span itemprop="name">Pull requests</span>
564 <span class="Counter">0</span>
565 <meta itemprop="position" content="3">
566 </a> </span>
567
568 <span itemscope itemtype="http://schema.org/ListItem" itemprop="itemListElement">
569 <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="repo_projects new_repo_project repo_project /johnheap/VAPPER-Galaxy/projects" href="/johnheap/VAPPER-Galaxy/projects">
570 <span itemprop="name">Projects</span>
571 <span class="Counter">0</span>
572 <meta itemprop="position" content="4">
573 </a> </span>
574
575
576 <a itemprop="url" class="js-selected-navigation-item reponav-item" data-selected-links="security alerts policy /johnheap/VAPPER-Galaxy/security/advisories" href="/johnheap/VAPPER-Galaxy/security/advisories">
577 <span itemprop="name">Security</span>
578 <meta itemprop="position" content="6">
579 </a>
580 <a class="js-selected-navigation-item reponav-item" data-selected-links="pulse /johnheap/VAPPER-Galaxy/pulse" href="/johnheap/VAPPER-Galaxy/pulse">
581 Pulse
582 </a>
583
584 </nav>
585 </div>
586
587
588 </div>
589 <div class="container-lg new-discussion-timeline experiment-repo-nav p-responsive">
590 <div class="repository-content ">
591
592
593
594
595
596
597
598 <a class="d-none js-permalink-shortcut" data-hotkey="y" href="/johnheap/VAPPER-Galaxy/blob/a4e16d71fe985f389930c02f94354b87d3aabadb/Tryp_T.py">Permalink</a>
599
600 <!-- blob contrib key: blob_contributors:v21:cfb7f203d6f9590e297b1306cb3efb36 -->
601 <div class="signup-prompt-bg rounded-1">
602 <div class="signup-prompt p-4 text-center mb-4 rounded-1">
603 <div class="position-relative">
604 <!-- '"` --><!-- </textarea></xmp> --></option></form><form action="/prompt_dismissals/signup" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="authenticity_token" value="jido5q7n2qX47et/wJYl8Tck7nSgtT9Iozz1zfwv5KasGkBWRnM0o/aO61NVISvGavRjkcTX2SsXt5o/bnBMOQ==" />
605 <button type="submit" class="position-absolute top-0 right-0 btn-link link-gray" data-ga-click="(Logged out) Sign up prompt, clicked Dismiss, text:dismiss">
606 Dismiss
607 </button>
608 </form> <h3 class="pt-2">Join GitHub today</h3>
609 <p class="col-6 mx-auto">GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.</p>
610 <a class="btn btn-primary" data-hydro-click="{&quot;event_type&quot;:&quot;authentication.click&quot;,&quot;payload&quot;:{&quot;location_in_page&quot;:&quot;files signup prompt&quot;,&quot;repository_id&quot;:null,&quot;auth_type&quot;:&quot;SIGN_UP&quot;,&quot;client_id&quot;:null,&quot;originating_request_id&quot;:&quot;A68B:03C7:99543:10DBF9:5CF561B6&quot;,&quot;originating_url&quot;:&quot;https://github.com/johnheap/VAPPER-Galaxy/blob/master/Tryp_T.py&quot;,&quot;referrer&quot;:null,&quot;user_id&quot;:null}}" data-hydro-click-hmac="6ec2cc7ac2b87377225eea25726552c78329d919f6896791bf857db840dded2e" data-ga-click="(Logged out) Sign up prompt, clicked Sign up, text:sign-up" href="/join?source=prompt-blob-show">Sign up</a>
611 </div>
612 </div>
613 </div>
614
615
616 <div class="d-flex flex-items-start flex-shrink-0 mb-2 flex-column flex-md-row">
617 <span class="d-flex flex-justify-between width-full width-md-auto">
618
619 <details class="details-reset details-overlay select-menu branch-select-menu hx_rsm" id="branch-select-menu">
620 <summary class="btn btn-sm select-menu-button css-truncate"
621 data-hotkey="w"
622
623 title="Switch branches or tags">
624 <i>Branch:</i>
625 <span class="css-truncate-target">master</span>
626 </summary>
627
628 <details-menu class="select-menu-modal hx_rsm-modal position-absolute" style="z-index: 99;" src="/johnheap/VAPPER-Galaxy/ref-list/master/Tryp_T.py?source_action=show&amp;source_controller=blob" preload>
629 <include-fragment class="select-menu-loading-overlay anim-pulse">
630 <svg height="32" class="octicon octicon-octoface" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M14.7 5.34c.13-.32.55-1.59-.13-3.31 0 0-1.05-.33-3.44 1.3-1-.28-2.07-.32-3.13-.32s-2.13.04-3.13.32c-2.39-1.64-3.44-1.3-3.44-1.3-.68 1.72-.26 2.99-.13 3.31C.49 6.21 0 7.33 0 8.69 0 13.84 3.33 15 7.98 15S16 13.84 16 8.69c0-1.36-.49-2.48-1.3-3.35zM8 14.02c-3.3 0-5.98-.15-5.98-3.35 0-.76.38-1.48 1.02-2.07 1.07-.98 2.9-.46 4.96-.46 2.07 0 3.88-.52 4.96.46.65.59 1.02 1.3 1.02 2.07 0 3.19-2.68 3.35-5.98 3.35zM5.49 9.01c-.66 0-1.2.8-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.54-1.78-1.2-1.78zm5.02 0c-.66 0-1.2.79-1.2 1.78s.54 1.79 1.2 1.79c.66 0 1.2-.8 1.2-1.79s-.53-1.78-1.2-1.78z"/></svg>
631 </include-fragment>
632 </details-menu>
633 </details>
634
635 <div class="BtnGroup flex-shrink-0 d-md-none">
636 <a href="/johnheap/VAPPER-Galaxy/find/master"
637 class="js-pjax-capture-input btn btn-sm BtnGroup-item"
638 data-pjax
639 data-hotkey="t">
640 Find file
641 </a>
642 <clipboard-copy value="Tryp_T.py" class="btn btn-sm BtnGroup-item">
643 Copy path
644 </clipboard-copy>
645 </div>
646 </span>
647 <h2 id="blob-path" class="breadcrumb flex-auto min-width-0 text-normal flex-md-self-center ml-md-2 mr-md-3 my-2 my-md-0">
648 <span class="js-repo-root text-bold"><span class="js-path-segment"><a data-pjax="true" href="/johnheap/VAPPER-Galaxy"><span>VAPPER-Galaxy</span></a></span></span><span class="separator">/</span><strong class="final-path">Tryp_T.py</strong>
649 </h2>
650
651 <div class="BtnGroup flex-shrink-0 d-none d-md-inline-block">
652 <a href="/johnheap/VAPPER-Galaxy/find/master"
653 class="js-pjax-capture-input btn btn-sm BtnGroup-item"
654 data-pjax
655 data-hotkey="t">
656 Find file
657 </a>
658 <clipboard-copy value="Tryp_T.py" class="btn btn-sm BtnGroup-item">
659 Copy path
660 </clipboard-copy>
661 </div>
662 </div>
663
664
665
666 <include-fragment src="/johnheap/VAPPER-Galaxy/contributors/master/Tryp_T.py" class="Box Box--condensed commit-loader">
667 <div class="Box-body bg-blue-light f6">
668 Fetching contributors&hellip;
669 </div>
670
671 <div class="Box-body d-flex flex-items-center" >
672 <img alt="" class="loader-loading mr-2" src="https://github.githubassets.com/images/spinners/octocat-spinner-32-EAF2F5.gif" width="16" height="16" />
673 <span class="text-red h6 loader-error">Cannot retrieve contributors at this time</span>
674 </div>
675 </include-fragment>
676
677
678
679
680
681 <div class="Box mt-3 position-relative">
682
683 <div class="Box-header py-2 d-flex flex-column flex-shrink-0 flex-md-row flex-md-items-center">
684
685 <div class="text-mono f6 flex-auto pr-3 flex-order-2 flex-md-order-1 mt-2 mt-md-0">
686 346 lines (301 sloc)
687 <span class="file-info-divider"></span>
688 15 KB
689 </div>
690
691 <div class="d-flex py-1 py-md-0 flex-auto flex-order-1 flex-md-order-2 flex-sm-grow-0 flex-justify-between">
692
693 <div class="BtnGroup">
694 <a id="raw-url" class="btn btn-sm BtnGroup-item" href="/johnheap/VAPPER-Galaxy/raw/master/Tryp_T.py">Raw</a>
695 <a class="btn btn-sm js-update-url-with-hash BtnGroup-item" data-hotkey="b" href="/johnheap/VAPPER-Galaxy/blame/master/Tryp_T.py">Blame</a>
696 <a rel="nofollow" class="btn btn-sm BtnGroup-item" href="/johnheap/VAPPER-Galaxy/commits/master/Tryp_T.py">History</a>
697 </div>
698
699
700 <div>
701
702 <button type="button" class="btn-octicon disabled tooltipped tooltipped-nw"
703 aria-label="You must be signed in to make or propose changes">
704 <svg class="octicon octicon-pencil" viewBox="0 0 14 16" version="1.1" width="14" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M0 12v3h3l8-8-3-3-8 8zm3 2H1v-2h1v1h1v1zm10.3-9.3L12 6 9 3l1.3-1.3a.996.996 0 0 1 1.41 0l1.59 1.59c.39.39.39 1.02 0 1.41z"/></svg>
705 </button>
706 <button type="button" class="btn-octicon btn-octicon-danger disabled tooltipped tooltipped-nw"
707 aria-label="You must be signed in to make or propose changes">
708 <svg class="octicon octicon-trashcan" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11 2H9c0-.55-.45-1-1-1H5c-.55 0-1 .45-1 1H2c-.55 0-1 .45-1 1v1c0 .55.45 1 1 1v9c0 .55.45 1 1 1h7c.55 0 1-.45 1-1V5c.55 0 1-.45 1-1V3c0-.55-.45-1-1-1zm-1 12H3V5h1v8h1V5h1v8h1V5h1v8h1V5h1v9zm1-10H2V3h9v1z"/></svg>
709 </button>
710 </div>
711 </div>
712 </div>
713
714
715
716 <div itemprop="text" class="Box-body p-0 blob-wrapper data type-python ">
717
718 <table class="highlight tab-size js-file-line-container" data-tab-size="8">
719 <tr>
720 <td id="L1" class="blob-num js-line-number" data-line-number="1"></td>
721 <td id="LC1" class="blob-code blob-code-inner js-file-line"><span class="pl-s"><span class="pl-pds">&quot;&quot;&quot;</span></span></td>
722 </tr>
723 <tr>
724 <td id="L2" class="blob-num js-line-number" data-line-number="2"></td>
725 <td id="LC2" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * Copyright 2018 University of Liverpool</span></td>
726 </tr>
727 <tr>
728 <td id="L3" class="blob-num js-line-number" data-line-number="3"></td>
729 <td id="LC3" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * Author: John Heap, Computational Biology Facility, UoL</span></td>
730 </tr>
731 <tr>
732 <td id="L4" class="blob-num js-line-number" data-line-number="4"></td>
733 <td id="LC4" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * Based on original scripts of Sara Silva Pereira, Institute of Infection and Global Health, UoL</span></td>
734 </tr>
735 <tr>
736 <td id="L5" class="blob-num js-line-number" data-line-number="5"></td>
737 <td id="LC5" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> *</span></td>
738 </tr>
739 <tr>
740 <td id="L6" class="blob-num js-line-number" data-line-number="6"></td>
741 <td id="LC6" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);</span></td>
742 </tr>
743 <tr>
744 <td id="L7" class="blob-num js-line-number" data-line-number="7"></td>
745 <td id="LC7" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * you may not use this file except in compliance with the License.</span></td>
746 </tr>
747 <tr>
748 <td id="L8" class="blob-num js-line-number" data-line-number="8"></td>
749 <td id="LC8" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * You may obtain a copy of the License at</span></td>
750 </tr>
751 <tr>
752 <td id="L9" class="blob-num js-line-number" data-line-number="9"></td>
753 <td id="LC9" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> *</span></td>
754 </tr>
755 <tr>
756 <td id="L10" class="blob-num js-line-number" data-line-number="10"></td>
757 <td id="LC10" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * http://www.apache.org/licenses/LICENSE-2.0</span></td>
758 </tr>
759 <tr>
760 <td id="L11" class="blob-num js-line-number" data-line-number="11"></td>
761 <td id="LC11" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> *</span></td>
762 </tr>
763 <tr>
764 <td id="L12" class="blob-num js-line-number" data-line-number="12"></td>
765 <td id="LC12" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * Unless required by applicable law or agreed to in writing, software</span></td>
766 </tr>
767 <tr>
768 <td id="L13" class="blob-num js-line-number" data-line-number="13"></td>
769 <td id="LC13" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></td>
770 </tr>
771 <tr>
772 <td id="L14" class="blob-num js-line-number" data-line-number="14"></td>
773 <td id="LC14" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></td>
774 </tr>
775 <tr>
776 <td id="L15" class="blob-num js-line-number" data-line-number="15"></td>
777 <td id="LC15" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * See the License for the specific language governing permissions and</span></td>
778 </tr>
779 <tr>
780 <td id="L16" class="blob-num js-line-number" data-line-number="16"></td>
781 <td id="LC16" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> * limitations under the License.</span></td>
782 </tr>
783 <tr>
784 <td id="L17" class="blob-num js-line-number" data-line-number="17"></td>
785 <td id="LC17" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> *</span></td>
786 </tr>
787 <tr>
788 <td id="L18" class="blob-num js-line-number" data-line-number="18"></td>
789 <td id="LC18" class="blob-code blob-code-inner js-file-line"><span class="pl-s"> <span class="pl-pds">&quot;&quot;&quot;</span></span></td>
790 </tr>
791 <tr>
792 <td id="L19" class="blob-num js-line-number" data-line-number="19"></td>
793 <td id="LC19" class="blob-code blob-code-inner js-file-line">
794 </td>
795 </tr>
796 <tr>
797 <td id="L20" class="blob-num js-line-number" data-line-number="20"></td>
798 <td id="LC20" class="blob-code blob-code-inner js-file-line">
799 </td>
800 </tr>
801 <tr>
802 <td id="L21" class="blob-num js-line-number" data-line-number="21"></td>
803 <td id="LC21" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> subprocess</td>
804 </tr>
805 <tr>
806 <td id="L22" class="blob-num js-line-number" data-line-number="22"></td>
807 <td id="LC22" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> pandas <span class="pl-k">as</span> pd</td>
808 </tr>
809 <tr>
810 <td id="L23" class="blob-num js-line-number" data-line-number="23"></td>
811 <td id="LC23" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> re</td>
812 </tr>
813 <tr>
814 <td id="L24" class="blob-num js-line-number" data-line-number="24"></td>
815 <td id="LC24" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> os</td>
816 </tr>
817 <tr>
818 <td id="L25" class="blob-num js-line-number" data-line-number="25"></td>
819 <td id="LC25" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> sys</td>
820 </tr>
821 <tr>
822 <td id="L26" class="blob-num js-line-number" data-line-number="26"></td>
823 <td id="LC26" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> matplotlib <span class="pl-k">as</span> mpl</td>
824 </tr>
825 <tr>
826 <td id="L27" class="blob-num js-line-number" data-line-number="27"></td>
827 <td id="LC27" class="blob-code blob-code-inner js-file-line">mpl.use(<span class="pl-s"><span class="pl-pds">&#39;</span>Agg<span class="pl-pds">&#39;</span></span>)</td>
828 </tr>
829 <tr>
830 <td id="L28" class="blob-num js-line-number" data-line-number="28"></td>
831 <td id="LC28" class="blob-code blob-code-inner js-file-line"><span class="pl-k">import</span> matplotlib.pyplot <span class="pl-k">as</span> plt</td>
832 </tr>
833 <tr>
834 <td id="L29" class="blob-num js-line-number" data-line-number="29"></td>
835 <td id="LC29" class="blob-code blob-code-inner js-file-line">
836 </td>
837 </tr>
838 <tr>
839 <td id="L30" class="blob-num js-line-number" data-line-number="30"></td>
840 <td id="LC30" class="blob-code blob-code-inner js-file-line">pList <span class="pl-k">=</span> [<span class="pl-s"><span class="pl-pds">&#39;</span>P1<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P2<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P3<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P4<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P5<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P6<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P7<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P8<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P9<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P10<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P11<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P12<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P13<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P14<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>P15<span class="pl-pds">&#39;</span></span>]</td>
841 </tr>
842 <tr>
843 <td id="L31" class="blob-num js-line-number" data-line-number="31"></td>
844 <td id="LC31" class="blob-code blob-code-inner js-file-line">quietString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-pds">&quot;</span></span> <span class="pl-c"><span class="pl-c">#</span>&quot;&quot;&gt;&gt; Vap_log.txt 2&gt;&amp;1&quot;</span></td>
845 </tr>
846 <tr>
847 <td id="L32" class="blob-num js-line-number" data-line-number="32"></td>
848 <td id="LC32" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">transcriptMapping</span>(<span class="pl-smi">inputname</span>, <span class="pl-smi">strain</span>, <span class="pl-smi">forwardFN</span>,<span class="pl-smi">reverseFN</span>):</td>
849 </tr>
850 <tr>
851 <td id="L33" class="blob-num js-line-number" data-line-number="33"></td>
852 <td id="LC33" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>where is our Reference data -</span></td>
853 </tr>
854 <tr>
855 <td id="L34" class="blob-num js-line-number" data-line-number="34"></td>
856 <td id="LC34" class="blob-code blob-code-inner js-file-line"> dir_path <span class="pl-k">=</span> os.path.dirname(os.path.realpath(<span class="pl-c1">__file__</span>))</td>
857 </tr>
858 <tr>
859 <td id="L35" class="blob-num js-line-number" data-line-number="35"></td>
860 <td id="LC35" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/Tc148<span class="pl-pds">&quot;</span></span> <span class="pl-c"><span class="pl-c">#</span>default</span></td>
861 </tr>
862 <tr>
863 <td id="L36" class="blob-num js-line-number" data-line-number="36"></td>
864 <td id="LC36" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Tc148<span class="pl-pds">&quot;</span></span>:</td>
865 </tr>
866 <tr>
867 <td id="L37" class="blob-num js-line-number" data-line-number="37"></td>
868 <td id="LC37" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/Tc148<span class="pl-pds">&quot;</span></span></td>
869 </tr>
870 <tr>
871 <td id="L38" class="blob-num js-line-number" data-line-number="38"></td>
872 <td id="LC38" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>IL3000<span class="pl-pds">&quot;</span></span>:</td>
873 </tr>
874 <tr>
875 <td id="L39" class="blob-num js-line-number" data-line-number="39"></td>
876 <td id="LC39" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/IL3000<span class="pl-pds">&quot;</span></span></td>
877 </tr>
878 <tr>
879 <td id="L40" class="blob-num js-line-number" data-line-number="40"></td>
880 <td id="LC40" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;bowtie2 -x Refe4rence/IL3000 -1 data/&quot;+forwardFN+&quot; -2 data/&quot;+reverseFN+&quot; -S &quot;+inputname+&quot;.sam&quot; #&gt;log.txt</span></td>
881 </tr>
882 <tr>
883 <td id="L41" class="blob-num js-line-number" data-line-number="41"></td>
884 <td id="LC41" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;bowtie2 -x Reference/Tc148 -1 data/&quot;+forwardFN+&quot; -2 data/&quot;+reverseFN+&quot; -S &quot;+inputname+&quot;.sam&quot; #&gt;log.txt</span></td>
885 </tr>
886 <tr>
887 <td id="L42" class="blob-num js-line-number" data-line-number="42"></td>
888 <td id="LC42" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>bowtie2 -x <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>refName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span> -1 <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>forwardFN<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span> -2 <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>reverseFN<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span> -S <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>inputname<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sam<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>quietString <span class="pl-c"><span class="pl-c">#</span>&gt;log.txt</span></td>
889 </tr>
890 <tr>
891 <td id="L43" class="blob-num js-line-number" data-line-number="43"></td>
892 <td id="LC43" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(argString)</span></td>
893 </tr>
894 <tr>
895 <td id="L44" class="blob-num js-line-number" data-line-number="44"></td>
896 <td id="LC44" class="blob-code blob-code-inner js-file-line"> returncode <span class="pl-k">=</span> subprocess.call(argString, <span class="pl-v">shell</span><span class="pl-k">=</span><span class="pl-c1">True</span>)</td>
897 </tr>
898 <tr>
899 <td id="L45" class="blob-num js-line-number" data-line-number="45"></td>
900 <td id="LC45" class="blob-code blob-code-inner js-file-line">
901 </td>
902 </tr>
903 <tr>
904 <td id="L46" class="blob-num js-line-number" data-line-number="46"></td>
905 <td id="LC46" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">processSamFiles</span>(<span class="pl-smi">inputname</span>):</td>
906 </tr>
907 <tr>
908 <td id="L47" class="blob-num js-line-number" data-line-number="47"></td>
909 <td id="LC47" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>debug use a mapping sam file we have already found</span></td>
910 </tr>
911 <tr>
912 <td id="L48" class="blob-num js-line-number" data-line-number="48"></td>
913 <td id="LC48" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>dir_path = os.path.dirname(os.path.realpath(__file__))</span></td>
914 </tr>
915 <tr>
916 <td id="L49" class="blob-num js-line-number" data-line-number="49"></td>
917 <td id="LC49" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>bugName = dir_path+&quot;/data/T_Test&quot; #defasult</span></td>
918 </tr>
919 <tr>
920 <td id="L50" class="blob-num js-line-number" data-line-number="50"></td>
921 <td id="LC50" class="blob-code blob-code-inner js-file-line">
922 </td>
923 </tr>
924 <tr>
925 <td id="L51" class="blob-num js-line-number" data-line-number="51"></td>
926 <td id="LC51" class="blob-code blob-code-inner js-file-line"> cur_path <span class="pl-k">=</span> os.getcwd()</td>
927 </tr>
928 <tr>
929 <td id="L52" class="blob-num js-line-number" data-line-number="52"></td>
930 <td id="LC52" class="blob-code blob-code-inner js-file-line"> samName <span class="pl-k">=</span> cur_path<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>/<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>inputname</td>
931 </tr>
932 <tr>
933 <td id="L53" class="blob-num js-line-number" data-line-number="53"></td>
934 <td id="LC53" class="blob-code blob-code-inner js-file-line">
935 </td>
936 </tr>
937 <tr>
938 <td id="L54" class="blob-num js-line-number" data-line-number="54"></td>
939 <td id="LC54" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;samtools view -bS &quot;+bugName+&quot; &gt; &quot;+inputname+&quot;.bam&quot;</span></td>
940 </tr>
941 <tr>
942 <td id="L55" class="blob-num js-line-number" data-line-number="55"></td>
943 <td id="LC55" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>samtools view -bS <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>inputname<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sam &gt; <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>samName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.bam<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>quietString</td>
944 </tr>
945 <tr>
946 <td id="L56" class="blob-num js-line-number" data-line-number="56"></td>
947 <td id="LC56" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(argString)</span></td>
948 </tr>
949 <tr>
950 <td id="L57" class="blob-num js-line-number" data-line-number="57"></td>
951 <td id="LC57" class="blob-code blob-code-inner js-file-line"> returncode <span class="pl-k">=</span> subprocess.call(argString, <span class="pl-v">shell</span><span class="pl-k">=</span><span class="pl-c1">True</span>)</td>
952 </tr>
953 <tr>
954 <td id="L58" class="blob-num js-line-number" data-line-number="58"></td>
955 <td id="LC58" class="blob-code blob-code-inner js-file-line">
956 </td>
957 </tr>
958 <tr>
959 <td id="L59" class="blob-num js-line-number" data-line-number="59"></td>
960 <td id="LC59" class="blob-code blob-code-inner js-file-line">
961 </td>
962 </tr>
963 <tr>
964 <td id="L60" class="blob-num js-line-number" data-line-number="60"></td>
965 <td id="LC60" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;samtools sort &quot;+bugName+&quot; -o &quot;+inputname+&quot;.sorted&quot;</span></td>
966 </tr>
967 <tr>
968 <td id="L61" class="blob-num js-line-number" data-line-number="61"></td>
969 <td id="LC61" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>samtools sort <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>samName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.bam -o <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>samName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sorted<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>quietString</td>
970 </tr>
971 <tr>
972 <td id="L62" class="blob-num js-line-number" data-line-number="62"></td>
973 <td id="LC62" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;argstring = &quot;+argString)</span></td>
974 </tr>
975 <tr>
976 <td id="L63" class="blob-num js-line-number" data-line-number="63"></td>
977 <td id="LC63" class="blob-code blob-code-inner js-file-line"> returncode <span class="pl-k">=</span> subprocess.call(argString, <span class="pl-v">shell</span><span class="pl-k">=</span><span class="pl-c1">True</span>)</td>
978 </tr>
979 <tr>
980 <td id="L64" class="blob-num js-line-number" data-line-number="64"></td>
981 <td id="LC64" class="blob-code blob-code-inner js-file-line">
982 </td>
983 </tr>
984 <tr>
985 <td id="L65" class="blob-num js-line-number" data-line-number="65"></td>
986 <td id="LC65" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;samtools index &quot;+bugName+&quot;.sorted &quot;+inputname+&quot;.sorted.bai&quot;</span></td>
987 </tr>
988 <tr>
989 <td id="L66" class="blob-num js-line-number" data-line-number="66"></td>
990 <td id="LC66" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>samtools index <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>samName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sorted <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>samName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sorted.bai<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>quietString</td>
991 </tr>
992 <tr>
993 <td id="L67" class="blob-num js-line-number" data-line-number="67"></td>
994 <td id="LC67" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;argstring = &quot; + argString)</span></td>
995 </tr>
996 <tr>
997 <td id="L68" class="blob-num js-line-number" data-line-number="68"></td>
998 <td id="LC68" class="blob-code blob-code-inner js-file-line"> returncode <span class="pl-k">=</span> subprocess.call(argString, <span class="pl-v">shell</span><span class="pl-k">=</span><span class="pl-c1">True</span>)</td>
999 </tr>
1000 <tr>
1001 <td id="L69" class="blob-num js-line-number" data-line-number="69"></td>
1002 <td id="LC69" class="blob-code blob-code-inner js-file-line">
1003 </td>
1004 </tr>
1005 <tr>
1006 <td id="L70" class="blob-num js-line-number" data-line-number="70"></td>
1007 <td id="LC70" class="blob-code blob-code-inner js-file-line">
1008 </td>
1009 </tr>
1010 <tr>
1011 <td id="L71" class="blob-num js-line-number" data-line-number="71"></td>
1012 <td id="LC71" class="blob-code blob-code-inner js-file-line">
1013 </td>
1014 </tr>
1015 <tr>
1016 <td id="L72" class="blob-num js-line-number" data-line-number="72"></td>
1017 <td id="LC72" class="blob-code blob-code-inner js-file-line">
1018 </td>
1019 </tr>
1020 <tr>
1021 <td id="L73" class="blob-num js-line-number" data-line-number="73"></td>
1022 <td id="LC73" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">transcriptAbundance</span>(<span class="pl-smi">inputname</span>, <span class="pl-smi">strain</span>):</td>
1023 </tr>
1024 <tr>
1025 <td id="L74" class="blob-num js-line-number" data-line-number="74"></td>
1026 <td id="LC74" class="blob-code blob-code-inner js-file-line"> dir_path <span class="pl-k">=</span> os.path.dirname(os.path.realpath(<span class="pl-c1">__file__</span>))</td>
1027 </tr>
1028 <tr>
1029 <td id="L75" class="blob-num js-line-number" data-line-number="75"></td>
1030 <td id="LC75" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/ORFAnnotation.gtf<span class="pl-pds">&quot;</span></span> <span class="pl-c"><span class="pl-c">#</span> defasult</span></td>
1031 </tr>
1032 <tr>
1033 <td id="L76" class="blob-num js-line-number" data-line-number="76"></td>
1034 <td id="LC76" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Tc148<span class="pl-pds">&quot;</span></span>:</td>
1035 </tr>
1036 <tr>
1037 <td id="L77" class="blob-num js-line-number" data-line-number="77"></td>
1038 <td id="LC77" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/ORFAnnotation.gtf<span class="pl-pds">&quot;</span></span></td>
1039 </tr>
1040 <tr>
1041 <td id="L78" class="blob-num js-line-number" data-line-number="78"></td>
1042 <td id="LC78" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>IL3000<span class="pl-pds">&quot;</span></span>:</td>
1043 </tr>
1044 <tr>
1045 <td id="L79" class="blob-num js-line-number" data-line-number="79"></td>
1046 <td id="LC79" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/IL3000.gtf<span class="pl-pds">&quot;</span></span></td>
1047 </tr>
1048 <tr>
1049 <td id="L80" class="blob-num js-line-number" data-line-number="80"></td>
1050 <td id="LC80" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;cufflinks -G Reference/IL3000.gtf -o &quot;+inputname+&quot;.cuff -u -p 8 &quot;+inputname+&quot;.sorted&quot;</span></td>
1051 </tr>
1052 <tr>
1053 <td id="L81" class="blob-num js-line-number" data-line-number="81"></td>
1054 <td id="LC81" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>argString = &quot;cufflinks -G Reference/ORFAnnotation.gtf -o &quot;+inputname+&quot;.cuff -u -p 8 &quot;+inputname+&quot;.sorted&quot;</span></td>
1055 </tr>
1056 <tr>
1057 <td id="L82" class="blob-num js-line-number" data-line-number="82"></td>
1058 <td id="LC82" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>cufflinks -q -G <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>refName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span> -o <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>inputname<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.cuff -u -p 8 <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>inputname<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.sorted<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>quietString</td>
1059 </tr>
1060 <tr>
1061 <td id="L83" class="blob-num js-line-number" data-line-number="83"></td>
1062 <td id="LC83" class="blob-code blob-code-inner js-file-line"> returncode <span class="pl-k">=</span> subprocess.call(argString, <span class="pl-v">shell</span> <span class="pl-k">=</span> <span class="pl-c1">True</span>)</td>
1063 </tr>
1064 <tr>
1065 <td id="L84" class="blob-num js-line-number" data-line-number="84"></td>
1066 <td id="LC84" class="blob-code blob-code-inner js-file-line">
1067 </td>
1068 </tr>
1069 <tr>
1070 <td id="L85" class="blob-num js-line-number" data-line-number="85"></td>
1071 <td id="LC85" class="blob-code blob-code-inner js-file-line">
1072 </td>
1073 </tr>
1074 <tr>
1075 <td id="L86" class="blob-num js-line-number" data-line-number="86"></td>
1076 <td id="LC86" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">convertToFasta</span>(<span class="pl-smi">inputName</span>, <span class="pl-smi">strain</span>): <span class="pl-c"><span class="pl-c">#</span>equivalent to Sara&#39;s awk scripte</span></td>
1077 </tr>
1078 <tr>
1079 <td id="L87" class="blob-num js-line-number" data-line-number="87"></td>
1080 <td id="LC87" class="blob-code blob-code-inner js-file-line"> dir_path <span class="pl-k">=</span> os.path.dirname(os.path.realpath(<span class="pl-c1">__file__</span>))</td>
1081 </tr>
1082 <tr>
1083 <td id="L88" class="blob-num js-line-number" data-line-number="88"></td>
1084 <td id="LC88" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/ORFAnnotation.gtf<span class="pl-pds">&quot;</span></span> <span class="pl-c"><span class="pl-c">#</span> default</span></td>
1085 </tr>
1086 <tr>
1087 <td id="L89" class="blob-num js-line-number" data-line-number="89"></td>
1088 <td id="LC89" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Tc148<span class="pl-pds">&quot;</span></span>:</td>
1089 </tr>
1090 <tr>
1091 <td id="L90" class="blob-num js-line-number" data-line-number="90"></td>
1092 <td id="LC90" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/148_prot.fasta<span class="pl-pds">&quot;</span></span></td>
1093 </tr>
1094 <tr>
1095 <td id="L91" class="blob-num js-line-number" data-line-number="91"></td>
1096 <td id="LC91" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>IL3000<span class="pl-pds">&quot;</span></span>:</td>
1097 </tr>
1098 <tr>
1099 <td id="L92" class="blob-num js-line-number" data-line-number="92"></td>
1100 <td id="LC92" class="blob-code blob-code-inner js-file-line"> refName <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Reference/IL3000_prot.fasta<span class="pl-pds">&quot;</span></span></td>
1101 </tr>
1102 <tr>
1103 <td id="L93" class="blob-num js-line-number" data-line-number="93"></td>
1104 <td id="LC93" class="blob-code blob-code-inner js-file-line">
1105 </td>
1106 </tr>
1107 <tr>
1108 <td id="L94" class="blob-num js-line-number" data-line-number="94"></td>
1109 <td id="LC94" class="blob-code blob-code-inner js-file-line"> cuff_df <span class="pl-k">=</span> pd.read_csv(inputName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>.cuff/genes.fpkm_tracking<span class="pl-pds">&quot;</span></span>, <span class="pl-v">sep</span><span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">&#39;</span><span class="pl-cce">\t</span><span class="pl-pds">&#39;</span></span>)</td>
1110 </tr>
1111 <tr>
1112 <td id="L95" class="blob-num js-line-number" data-line-number="95"></td>
1113 <td id="LC95" class="blob-code blob-code-inner js-file-line"> cuff_df <span class="pl-k">=</span> cuff_df[(cuff_df[<span class="pl-s"><span class="pl-pds">&#39;</span>FPKM<span class="pl-pds">&#39;</span></span>] <span class="pl-k">&gt;</span> <span class="pl-c1">0</span>)]</td>
1114 </tr>
1115 <tr>
1116 <td id="L96" class="blob-num js-line-number" data-line-number="96"></td>
1117 <td id="LC96" class="blob-code blob-code-inner js-file-line"> cuff_df.to_csv(<span class="pl-s"><span class="pl-pds">&quot;</span>cuffTest.csv<span class="pl-pds">&quot;</span></span>)</td>
1118 </tr>
1119 <tr>
1120 <td id="L97" class="blob-num js-line-number" data-line-number="97"></td>
1121 <td id="LC97" class="blob-code blob-code-inner js-file-line"> gene_id_List <span class="pl-k">=</span> cuff_df[<span class="pl-s"><span class="pl-pds">&#39;</span>gene_id<span class="pl-pds">&#39;</span></span>].tolist()</td>
1122 </tr>
1123 <tr>
1124 <td id="L98" class="blob-num js-line-number" data-line-number="98"></td>
1125 <td id="LC98" class="blob-code blob-code-inner js-file-line">
1126 </td>
1127 </tr>
1128 <tr>
1129 <td id="L99" class="blob-num js-line-number" data-line-number="99"></td>
1130 <td id="LC99" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(gene_id_List)</span></td>
1131 </tr>
1132 <tr>
1133 <td id="L100" class="blob-num js-line-number" data-line-number="100"></td>
1134 <td id="LC100" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print (&quot;Found from 8880=&quot;+str(found))</span></td>
1135 </tr>
1136 <tr>
1137 <td id="L101" class="blob-num js-line-number" data-line-number="101"></td>
1138 <td id="LC101" class="blob-code blob-code-inner js-file-line">
1139 </td>
1140 </tr>
1141 <tr>
1142 <td id="L102" class="blob-num js-line-number" data-line-number="102"></td>
1143 <td id="LC102" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span> need to load in IL3000_prot.fasta</span></td>
1144 </tr>
1145 <tr>
1146 <td id="L103" class="blob-num js-line-number" data-line-number="103"></td>
1147 <td id="LC103" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span> for each line with &gt;TcIL3000_1_1940</span></td>
1148 </tr>
1149 <tr>
1150 <td id="L104" class="blob-num js-line-number" data-line-number="104"></td>
1151 <td id="LC104" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span> search within cuff_df[gene_id] for match</span></td>
1152 </tr>
1153 <tr>
1154 <td id="L105" class="blob-num js-line-number" data-line-number="105"></td>
1155 <td id="LC105" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span> add it to the outfile. (need to save it as used by hmmer later</span></td>
1156 </tr>
1157 <tr>
1158 <td id="L106" class="blob-num js-line-number" data-line-number="106"></td>
1159 <td id="LC106" class="blob-code blob-code-inner js-file-line"> number <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1160 </tr>
1161 <tr>
1162 <td id="L107" class="blob-num js-line-number" data-line-number="107"></td>
1163 <td id="LC107" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">all</span> <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1164 </tr>
1165 <tr>
1166 <td id="L108" class="blob-num js-line-number" data-line-number="108"></td>
1167 <td id="LC108" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">with</span> <span class="pl-c1">open</span>(inputName<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>_6frame.fas<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>w<span class="pl-pds">&#39;</span></span>) <span class="pl-k">as</span> outfile:</td>
1168 </tr>
1169 <tr>
1170 <td id="L109" class="blob-num js-line-number" data-line-number="109"></td>
1171 <td id="LC109" class="blob-code blob-code-inner js-file-line"> ref <span class="pl-k">=</span> <span class="pl-c1">open</span>(refName,<span class="pl-s"><span class="pl-pds">&#39;</span>r<span class="pl-pds">&#39;</span></span>)</td>
1172 </tr>
1173 <tr>
1174 <td id="L110" class="blob-num js-line-number" data-line-number="110"></td>
1175 <td id="LC110" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>ref = open(r&quot;Reference/IL3000_prot.fasta&quot;,&#39;r&#39;)</span></td>
1176 </tr>
1177 <tr>
1178 <td id="L111" class="blob-num js-line-number" data-line-number="111"></td>
1179 <td id="LC111" class="blob-code blob-code-inner js-file-line"> n <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1180 </tr>
1181 <tr>
1182 <td id="L112" class="blob-num js-line-number" data-line-number="112"></td>
1183 <td id="LC112" class="blob-code blob-code-inner js-file-line"> line <span class="pl-k">=</span> ref.readline()</td>
1184 </tr>
1185 <tr>
1186 <td id="L113" class="blob-num js-line-number" data-line-number="113"></td>
1187 <td id="LC113" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">while</span> line:</td>
1188 </tr>
1189 <tr>
1190 <td id="L114" class="blob-num js-line-number" data-line-number="114"></td>
1191 <td id="LC114" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> line[<span class="pl-c1">0</span>] <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&#39;</span>&gt;<span class="pl-pds">&#39;</span></span>:</td>
1192 </tr>
1193 <tr>
1194 <td id="L115" class="blob-num js-line-number" data-line-number="115"></td>
1195 <td id="LC115" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">all</span> <span class="pl-k">=</span> <span class="pl-c1">all</span><span class="pl-k">+</span><span class="pl-c1">1</span></td>
1196 </tr>
1197 <tr>
1198 <td id="L116" class="blob-num js-line-number" data-line-number="116"></td>
1199 <td id="LC116" class="blob-code blob-code-inner js-file-line"> ln <span class="pl-k">=</span> line[<span class="pl-c1">1</span>:] <span class="pl-c"><span class="pl-c">#</span>remove &gt;</span></td>
1200 </tr>
1201 <tr>
1202 <td id="L117" class="blob-num js-line-number" data-line-number="117"></td>
1203 <td id="LC117" class="blob-code blob-code-inner js-file-line"> ln <span class="pl-k">=</span> ln.rstrip() <span class="pl-c"><span class="pl-c">#</span>remove /n /r etc</span></td>
1204 </tr>
1205 <tr>
1206 <td id="L118" class="blob-num js-line-number" data-line-number="118"></td>
1207 <td id="LC118" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print (ln)</span></td>
1208 </tr>
1209 <tr>
1210 <td id="L119" class="blob-num js-line-number" data-line-number="119"></td>
1211 <td id="LC119" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> ln <span class="pl-k">in</span> gene_id_List:</td>
1212 </tr>
1213 <tr>
1214 <td id="L120" class="blob-num js-line-number" data-line-number="120"></td>
1215 <td id="LC120" class="blob-code blob-code-inner js-file-line"> number <span class="pl-k">=</span> number<span class="pl-k">+</span><span class="pl-c1">1</span></td>
1216 </tr>
1217 <tr>
1218 <td id="L121" class="blob-num js-line-number" data-line-number="121"></td>
1219 <td id="LC121" class="blob-code blob-code-inner js-file-line"> outfile.write(line)</td>
1220 </tr>
1221 <tr>
1222 <td id="L122" class="blob-num js-line-number" data-line-number="122"></td>
1223 <td id="LC122" class="blob-code blob-code-inner js-file-line"> line <span class="pl-k">=</span> ref.readline()</td>
1224 </tr>
1225 <tr>
1226 <td id="L123" class="blob-num js-line-number" data-line-number="123"></td>
1227 <td id="LC123" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> line:</td>
1228 </tr>
1229 <tr>
1230 <td id="L124" class="blob-num js-line-number" data-line-number="124"></td>
1231 <td id="LC124" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">while</span> line[<span class="pl-c1">0</span>] <span class="pl-k">!=</span> <span class="pl-s"><span class="pl-pds">&#39;</span>&gt;<span class="pl-pds">&#39;</span></span>:</td>
1232 </tr>
1233 <tr>
1234 <td id="L125" class="blob-num js-line-number" data-line-number="125"></td>
1235 <td id="LC125" class="blob-code blob-code-inner js-file-line"> outfile.write(line)</td>
1236 </tr>
1237 <tr>
1238 <td id="L126" class="blob-num js-line-number" data-line-number="126"></td>
1239 <td id="LC126" class="blob-code blob-code-inner js-file-line"> line<span class="pl-k">=</span>ref.readline()</td>
1240 </tr>
1241 <tr>
1242 <td id="L127" class="blob-num js-line-number" data-line-number="127"></td>
1243 <td id="LC127" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> <span class="pl-k">not</span> line:</td>
1244 </tr>
1245 <tr>
1246 <td id="L128" class="blob-num js-line-number" data-line-number="128"></td>
1247 <td id="LC128" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">break</span><span class="pl-bu">;</span></td>
1248 </tr>
1249 <tr>
1250 <td id="L129" class="blob-num js-line-number" data-line-number="129"></td>
1251 <td id="LC129" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">else</span>:</td>
1252 </tr>
1253 <tr>
1254 <td id="L130" class="blob-num js-line-number" data-line-number="130"></td>
1255 <td id="LC130" class="blob-code blob-code-inner js-file-line"> line <span class="pl-k">=</span> ref.readline()</td>
1256 </tr>
1257 <tr>
1258 <td id="L131" class="blob-num js-line-number" data-line-number="131"></td>
1259 <td id="LC131" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">else</span>:</td>
1260 </tr>
1261 <tr>
1262 <td id="L132" class="blob-num js-line-number" data-line-number="132"></td>
1263 <td id="LC132" class="blob-code blob-code-inner js-file-line"> line <span class="pl-k">=</span>ref.readline()</td>
1264 </tr>
1265 <tr>
1266 <td id="L133" class="blob-num js-line-number" data-line-number="133"></td>
1267 <td id="LC133" class="blob-code blob-code-inner js-file-line"> ref.close()</td>
1268 </tr>
1269 <tr>
1270 <td id="L134" class="blob-num js-line-number" data-line-number="134"></td>
1271 <td id="LC134" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">print</span>(<span class="pl-c1">str</span>(<span class="pl-c1">len</span>(gene_id_List))<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span>:<span class="pl-pds">&quot;</span></span><span class="pl-k">+</span><span class="pl-c1">str</span>(number)<span class="pl-k">+</span><span class="pl-s"><span class="pl-pds">&quot;</span> from <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span><span class="pl-c1">str</span>(<span class="pl-c1">all</span>))</td>
1272 </tr>
1273 <tr>
1274 <td id="L135" class="blob-num js-line-number" data-line-number="135"></td>
1275 <td id="LC135" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">return</span> cuff_df</td>
1276 </tr>
1277 <tr>
1278 <td id="L136" class="blob-num js-line-number" data-line-number="136"></td>
1279 <td id="LC136" class="blob-code blob-code-inner js-file-line">
1280 </td>
1281 </tr>
1282 <tr>
1283 <td id="L137" class="blob-num js-line-number" data-line-number="137"></td>
1284 <td id="LC137" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">HMMerMotifSearch</span>(<span class="pl-smi">name</span>, <span class="pl-smi">strain</span>, <span class="pl-smi">cuff_df</span>):</td>
1285 </tr>
1286 <tr>
1287 <td id="L138" class="blob-num js-line-number" data-line-number="138"></td>
1288 <td id="LC138" class="blob-code blob-code-inner js-file-line"> motifs <span class="pl-k">=</span> [<span class="pl-s"><span class="pl-pds">&#39;</span>1<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>2a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>2b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>3<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>4a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>4b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>4c<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>5<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>6<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>7<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>8a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>8b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>9a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>9b<span class="pl-pds">&#39;</span></span>,</td>
1289 </tr>
1290 <tr>
1291 <td id="L139" class="blob-num js-line-number" data-line-number="139"></td>
1292 <td id="LC139" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&#39;</span>9c<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>10a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>10b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>11a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>11b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>12<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>13a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>13b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>13c<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>13d<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>14<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>15a<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>15b<span class="pl-pds">&#39;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>15c<span class="pl-pds">&#39;</span></span>]</td>
1293 </tr>
1294 <tr>
1295 <td id="L140" class="blob-num js-line-number" data-line-number="140"></td>
1296 <td id="LC140" class="blob-code blob-code-inner js-file-line"> dir_path <span class="pl-k">=</span> os.path.dirname(os.path.realpath(<span class="pl-c1">__file__</span>))</td>
1297 </tr>
1298 <tr>
1299 <td id="L141" class="blob-num js-line-number" data-line-number="141"></td>
1300 <td id="LC141" class="blob-code blob-code-inner js-file-line"> phylopath <span class="pl-k">=</span> dir_path <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/data/Motifs/Phylotype<span class="pl-pds">&quot;</span></span></td>
1301 </tr>
1302 <tr>
1303 <td id="L142" class="blob-num js-line-number" data-line-number="142"></td>
1304 <td id="LC142" class="blob-code blob-code-inner js-file-line"> lineCounts <span class="pl-k">=</span> []</td>
1305 </tr>
1306 <tr>
1307 <td id="L143" class="blob-num js-line-number" data-line-number="143"></td>
1308 <td id="LC143" class="blob-code blob-code-inner js-file-line"> compoundList <span class="pl-k">=</span> []</td>
1309 </tr>
1310 <tr>
1311 <td id="L144" class="blob-num js-line-number" data-line-number="144"></td>
1312 <td id="LC144" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> m <span class="pl-k">in</span> motifs:</td>
1313 </tr>
1314 <tr>
1315 <td id="L145" class="blob-num js-line-number" data-line-number="145"></td>
1316 <td id="LC145" class="blob-code blob-code-inner js-file-line"> argString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>hmmsearch <span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>phylopath <span class="pl-k">+</span> m <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>.hmm <span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> name <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>_6frame.fas &gt; Phy<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> m <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>.out<span class="pl-pds">&quot;</span></span></td>
1317 </tr>
1318 <tr>
1319 <td id="L146" class="blob-num js-line-number" data-line-number="146"></td>
1320 <td id="LC146" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">print</span>(argString)</td>
1321 </tr>
1322 <tr>
1323 <td id="L147" class="blob-num js-line-number" data-line-number="147"></td>
1324 <td id="LC147" class="blob-code blob-code-inner js-file-line"> subprocess.call(argString, <span class="pl-v">shell</span><span class="pl-k">=</span><span class="pl-c1">True</span>)</td>
1325 </tr>
1326 <tr>
1327 <td id="L148" class="blob-num js-line-number" data-line-number="148"></td>
1328 <td id="LC148" class="blob-code blob-code-inner js-file-line"> hmmResult <span class="pl-k">=</span> <span class="pl-c1">open</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>Phy<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> m <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>.out<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&#39;</span>r<span class="pl-pds">&#39;</span></span>)</td>
1329 </tr>
1330 <tr>
1331 <td id="L149" class="blob-num js-line-number" data-line-number="149"></td>
1332 <td id="LC149" class="blob-code blob-code-inner js-file-line"> regex <span class="pl-k">=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>Tc148[<span class="pl-c1">0-9</span>]<span class="pl-k">{1,8}</span><span class="pl-pds">&quot;</span></span></td>
1333 </tr>
1334 <tr>
1335 <td id="L150" class="blob-num js-line-number" data-line-number="150"></td>
1336 <td id="LC150" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Tc148<span class="pl-pds">&quot;</span></span>:</td>
1337 </tr>
1338 <tr>
1339 <td id="L151" class="blob-num js-line-number" data-line-number="151"></td>
1340 <td id="LC151" class="blob-code blob-code-inner js-file-line"> regex <span class="pl-k">=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>Tc148[<span class="pl-c1">0-9</span>]<span class="pl-k">{1,8}</span><span class="pl-pds">&quot;</span></span></td>
1341 </tr>
1342 <tr>
1343 <td id="L152" class="blob-num js-line-number" data-line-number="152"></td>
1344 <td id="LC152" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>IL3000<span class="pl-pds">&quot;</span></span>:</td>
1345 </tr>
1346 <tr>
1347 <td id="L153" class="blob-num js-line-number" data-line-number="153"></td>
1348 <td id="LC153" class="blob-code blob-code-inner js-file-line"> regex <span class="pl-k">=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>TcIL3000_[<span class="pl-c1">0-9</span>]<span class="pl-k">{1,4}</span>_[<span class="pl-c1">0-9</span>]<span class="pl-k">{1,5}</span><span class="pl-pds">&quot;</span></span></td>
1349 </tr>
1350 <tr>
1351 <td id="L154" class="blob-num js-line-number" data-line-number="154"></td>
1352 <td id="LC154" class="blob-code blob-code-inner js-file-line"> n <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1353 </tr>
1354 <tr>
1355 <td id="L155" class="blob-num js-line-number" data-line-number="155"></td>
1356 <td id="LC155" class="blob-code blob-code-inner js-file-line"> outList <span class="pl-k">=</span> []</td>
1357 </tr>
1358 <tr>
1359 <td id="L156" class="blob-num js-line-number" data-line-number="156"></td>
1360 <td id="LC156" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> line <span class="pl-k">in</span> hmmResult:</td>
1361 </tr>
1362 <tr>
1363 <td id="L157" class="blob-num js-line-number" data-line-number="157"></td>
1364 <td id="LC157" class="blob-code blob-code-inner js-file-line"> m <span class="pl-k">=</span> re.search(regex, line)</td>
1365 </tr>
1366 <tr>
1367 <td id="L158" class="blob-num js-line-number" data-line-number="158"></td>
1368 <td id="LC158" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> m:</td>
1369 </tr>
1370 <tr>
1371 <td id="L159" class="blob-num js-line-number" data-line-number="159"></td>
1372 <td id="LC159" class="blob-code blob-code-inner js-file-line"> outList.append(<span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-pds">&quot;</span></span><span class="pl-k">+</span>m.group())</td>
1373 </tr>
1374 <tr>
1375 <td id="L160" class="blob-num js-line-number" data-line-number="160"></td>
1376 <td id="LC160" class="blob-code blob-code-inner js-file-line"> n <span class="pl-k">+=</span> <span class="pl-c1">1</span></td>
1377 </tr>
1378 <tr>
1379 <td id="L161" class="blob-num js-line-number" data-line-number="161"></td>
1380 <td id="LC161" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> re.search(<span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>inclusion<span class="pl-pds">&quot;</span></span>, line):</td>
1381 </tr>
1382 <tr>
1383 <td id="L162" class="blob-num js-line-number" data-line-number="162"></td>
1384 <td id="LC162" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">print</span>(<span class="pl-s"><span class="pl-pds">&quot;</span>inclusion threshold reached<span class="pl-pds">&quot;</span></span>)</td>
1385 </tr>
1386 <tr>
1387 <td id="L163" class="blob-num js-line-number" data-line-number="163"></td>
1388 <td id="LC163" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">break</span></td>
1389 </tr>
1390 <tr>
1391 <td id="L164" class="blob-num js-line-number" data-line-number="164"></td>
1392 <td id="LC164" class="blob-code blob-code-inner js-file-line"> compoundList.append(outList)</td>
1393 </tr>
1394 <tr>
1395 <td id="L165" class="blob-num js-line-number" data-line-number="165"></td>
1396 <td id="LC165" class="blob-code blob-code-inner js-file-line"> lineCounts.append(n)</td>
1397 </tr>
1398 <tr>
1399 <td id="L166" class="blob-num js-line-number" data-line-number="166"></td>
1400 <td id="LC166" class="blob-code blob-code-inner js-file-line"> hmmResult.close()</td>
1401 </tr>
1402 <tr>
1403 <td id="L167" class="blob-num js-line-number" data-line-number="167"></td>
1404 <td id="LC167" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(lineCounts)</span></td>
1405 </tr>
1406 <tr>
1407 <td id="L168" class="blob-num js-line-number" data-line-number="168"></td>
1408 <td id="LC168" class="blob-code blob-code-inner js-file-line">
1409 </td>
1410 </tr>
1411 <tr>
1412 <td id="L169" class="blob-num js-line-number" data-line-number="169"></td>
1413 <td id="LC169" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(cuff_df)</span></td>
1414 </tr>
1415 <tr>
1416 <td id="L170" class="blob-num js-line-number" data-line-number="170"></td>
1417 <td id="LC170" class="blob-code blob-code-inner js-file-line"> concatGroups <span class="pl-k">=</span> [<span class="pl-c1">1</span>, <span class="pl-c1">2</span>, <span class="pl-c1">1</span>, <span class="pl-c1">3</span>, <span class="pl-c1">1</span>, <span class="pl-c1">1</span>, <span class="pl-c1">1</span>, <span class="pl-c1">2</span>, <span class="pl-c1">3</span>, <span class="pl-c1">2</span>, <span class="pl-c1">2</span>, <span class="pl-c1">1</span>, <span class="pl-c1">4</span>, <span class="pl-c1">1</span>, <span class="pl-c1">3</span>]</td>
1418 </tr>
1419 <tr>
1420 <td id="L171" class="blob-num js-line-number" data-line-number="171"></td>
1421 <td id="LC171" class="blob-code blob-code-inner js-file-line"> countList <span class="pl-k">=</span> []</td>
1422 </tr>
1423 <tr>
1424 <td id="L172" class="blob-num js-line-number" data-line-number="172"></td>
1425 <td id="LC172" class="blob-code blob-code-inner js-file-line"> weightList <span class="pl-k">=</span> []</td>
1426 </tr>
1427 <tr>
1428 <td id="L173" class="blob-num js-line-number" data-line-number="173"></td>
1429 <td id="LC173" class="blob-code blob-code-inner js-file-line"> countIndex <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1430 </tr>
1431 <tr>
1432 <td id="L174" class="blob-num js-line-number" data-line-number="174"></td>
1433 <td id="LC174" class="blob-code blob-code-inner js-file-line"> totalCount <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1434 </tr>
1435 <tr>
1436 <td id="L175" class="blob-num js-line-number" data-line-number="175"></td>
1437 <td id="LC175" class="blob-code blob-code-inner js-file-line"> totalWeigth <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1438 </tr>
1439 <tr>
1440 <td id="L176" class="blob-num js-line-number" data-line-number="176"></td>
1441 <td id="LC176" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> c <span class="pl-k">in</span> concatGroups:</td>
1442 </tr>
1443 <tr>
1444 <td id="L177" class="blob-num js-line-number" data-line-number="177"></td>
1445 <td id="LC177" class="blob-code blob-code-inner js-file-line"> a <span class="pl-k">=</span> []</td>
1446 </tr>
1447 <tr>
1448 <td id="L178" class="blob-num js-line-number" data-line-number="178"></td>
1449 <td id="LC178" class="blob-code blob-code-inner js-file-line"> weight <span class="pl-k">=</span> []</td>
1450 </tr>
1451 <tr>
1452 <td id="L179" class="blob-num js-line-number" data-line-number="179"></td>
1453 <td id="LC179" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> n <span class="pl-k">in</span> <span class="pl-c1">range</span>(<span class="pl-c1">0</span>, c):</td>
1454 </tr>
1455 <tr>
1456 <td id="L180" class="blob-num js-line-number" data-line-number="180"></td>
1457 <td id="LC180" class="blob-code blob-code-inner js-file-line"> a <span class="pl-k">=</span> a <span class="pl-k">+</span> compoundList.pop(<span class="pl-c1">0</span>)</td>
1458 </tr>
1459 <tr>
1460 <td id="L181" class="blob-num js-line-number" data-line-number="181"></td>
1461 <td id="LC181" class="blob-code blob-code-inner js-file-line"> t <span class="pl-k">=</span> <span class="pl-c1">set</span>(a)</td>
1462 </tr>
1463 <tr>
1464 <td id="L182" class="blob-num js-line-number" data-line-number="182"></td>
1465 <td id="LC182" class="blob-code blob-code-inner js-file-line"> countList.append(<span class="pl-c1">len</span>(t))</td>
1466 </tr>
1467 <tr>
1468 <td id="L183" class="blob-num js-line-number" data-line-number="183"></td>
1469 <td id="LC183" class="blob-code blob-code-inner js-file-line"> wa <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1470 </tr>
1471 <tr>
1472 <td id="L184" class="blob-num js-line-number" data-line-number="184"></td>
1473 <td id="LC184" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> w <span class="pl-k">in</span> t:</td>
1474 </tr>
1475 <tr>
1476 <td id="L185" class="blob-num js-line-number" data-line-number="185"></td>
1477 <td id="LC185" class="blob-code blob-code-inner js-file-line"> wt <span class="pl-k">=</span> cuff_df.loc[cuff_df[<span class="pl-s"><span class="pl-pds">&#39;</span>gene_id<span class="pl-pds">&#39;</span></span>] <span class="pl-k">==</span> w, <span class="pl-s"><span class="pl-pds">&#39;</span>FPKM<span class="pl-pds">&#39;</span></span>].iloc[<span class="pl-c1">0</span>]</td>
1478 </tr>
1479 <tr>
1480 <td id="L186" class="blob-num js-line-number" data-line-number="186"></td>
1481 <td id="LC186" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(w)</span></td>
1482 </tr>
1483 <tr>
1484 <td id="L187" class="blob-num js-line-number" data-line-number="187"></td>
1485 <td id="LC187" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(wt)</span></td>
1486 </tr>
1487 <tr>
1488 <td id="L188" class="blob-num js-line-number" data-line-number="188"></td>
1489 <td id="LC188" class="blob-code blob-code-inner js-file-line"> wa <span class="pl-k">=</span> wa<span class="pl-k">+</span>wt</td>
1490 </tr>
1491 <tr>
1492 <td id="L189" class="blob-num js-line-number" data-line-number="189"></td>
1493 <td id="LC189" class="blob-code blob-code-inner js-file-line"> weightList.append(wa)</td>
1494 </tr>
1495 <tr>
1496 <td id="L190" class="blob-num js-line-number" data-line-number="190"></td>
1497 <td id="LC190" class="blob-code blob-code-inner js-file-line"> totalWeigth<span class="pl-k">+=</span>wa</td>
1498 </tr>
1499 <tr>
1500 <td id="L191" class="blob-num js-line-number" data-line-number="191"></td>
1501 <td id="LC191" class="blob-code blob-code-inner js-file-line"> totalCount <span class="pl-k">+=</span> <span class="pl-c1">len</span>(t)</td>
1502 </tr>
1503 <tr>
1504 <td id="L192" class="blob-num js-line-number" data-line-number="192"></td>
1505 <td id="LC192" class="blob-code blob-code-inner js-file-line"> countList.append(totalCount)</td>
1506 </tr>
1507 <tr>
1508 <td id="L193" class="blob-num js-line-number" data-line-number="193"></td>
1509 <td id="LC193" class="blob-code blob-code-inner js-file-line"> weightList.append(totalWeigth)</td>
1510 </tr>
1511 <tr>
1512 <td id="L194" class="blob-num js-line-number" data-line-number="194"></td>
1513 <td id="LC194" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(countList)</span></td>
1514 </tr>
1515 <tr>
1516 <td id="L195" class="blob-num js-line-number" data-line-number="195"></td>
1517 <td id="LC195" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;--------&quot;)</span></td>
1518 </tr>
1519 <tr>
1520 <td id="L196" class="blob-num js-line-number" data-line-number="196"></td>
1521 <td id="LC196" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(weightList)</span></td>
1522 </tr>
1523 <tr>
1524 <td id="L197" class="blob-num js-line-number" data-line-number="197"></td>
1525 <td id="LC197" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;--------&quot;)</span></td>
1526 </tr>
1527 <tr>
1528 <td id="L198" class="blob-num js-line-number" data-line-number="198"></td>
1529 <td id="LC198" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">return</span> countList,weightList</td>
1530 </tr>
1531 <tr>
1532 <td id="L199" class="blob-num js-line-number" data-line-number="199"></td>
1533 <td id="LC199" class="blob-code blob-code-inner js-file-line">
1534 </td>
1535 </tr>
1536 <tr>
1537 <td id="L200" class="blob-num js-line-number" data-line-number="200"></td>
1538 <td id="LC200" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">relativeFrequencyTable</span>(<span class="pl-smi">countList</span>, <span class="pl-smi">name</span>, <span class="pl-smi">htmlresource</span>):</td>
1539 </tr>
1540 <tr>
1541 <td id="L201" class="blob-num js-line-number" data-line-number="201"></td>
1542 <td id="LC201" class="blob-code blob-code-inner js-file-line"> relFreqList <span class="pl-k">=</span> []</td>
1543 </tr>
1544 <tr>
1545 <td id="L202" class="blob-num js-line-number" data-line-number="202"></td>
1546 <td id="LC202" class="blob-code blob-code-inner js-file-line"> c <span class="pl-k">=</span> <span class="pl-c1">float</span>(countList[<span class="pl-c1">15</span>])</td>
1547 </tr>
1548 <tr>
1549 <td id="L203" class="blob-num js-line-number" data-line-number="203"></td>
1550 <td id="LC203" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> i <span class="pl-k">in</span> <span class="pl-c1">range</span>(<span class="pl-c1">0</span>, <span class="pl-c1">15</span>):</td>
1551 </tr>
1552 <tr>
1553 <td id="L204" class="blob-num js-line-number" data-line-number="204"></td>
1554 <td id="LC204" class="blob-code blob-code-inner js-file-line"> relFreqList.append(countList[i] <span class="pl-k">/</span> c)</td>
1555 </tr>
1556 <tr>
1557 <td id="L205" class="blob-num js-line-number" data-line-number="205"></td>
1558 <td id="LC205" class="blob-code blob-code-inner js-file-line">
1559 </td>
1560 </tr>
1561 <tr>
1562 <td id="L206" class="blob-num js-line-number" data-line-number="206"></td>
1563 <td id="LC206" class="blob-code blob-code-inner js-file-line"> data <span class="pl-k">=</span> {<span class="pl-s"><span class="pl-pds">&#39;</span>Phylotype<span class="pl-pds">&#39;</span></span>: pList, <span class="pl-s"><span class="pl-pds">&#39;</span>Relative Frequency<span class="pl-pds">&#39;</span></span>: relFreqList}</td>
1564 </tr>
1565 <tr>
1566 <td id="L207" class="blob-num js-line-number" data-line-number="207"></td>
1567 <td id="LC207" class="blob-code blob-code-inner js-file-line"> relFreq_df <span class="pl-k">=</span> pd.DataFrame(data)</td>
1568 </tr>
1569 <tr>
1570 <td id="L208" class="blob-num js-line-number" data-line-number="208"></td>
1571 <td id="LC208" class="blob-code blob-code-inner js-file-line"> j_fname <span class="pl-k">=</span> htmlresource<span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> name <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>_t_relative_frequency.csv<span class="pl-pds">&quot;</span></span></td>
1572 </tr>
1573 <tr>
1574 <td id="L209" class="blob-num js-line-number" data-line-number="209"></td>
1575 <td id="LC209" class="blob-code blob-code-inner js-file-line"> relFreq_df.to_csv(j_fname)</td>
1576 </tr>
1577 <tr>
1578 <td id="L210" class="blob-num js-line-number" data-line-number="210"></td>
1579 <td id="LC210" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">return</span> relFreqList <span class="pl-c"><span class="pl-c">#</span> 0-14 = p1-p15 counts [15] = total counts</span></td>
1580 </tr>
1581 <tr>
1582 <td id="L211" class="blob-num js-line-number" data-line-number="211"></td>
1583 <td id="LC211" class="blob-code blob-code-inner js-file-line">
1584 </td>
1585 </tr>
1586 <tr>
1587 <td id="L212" class="blob-num js-line-number" data-line-number="212"></td>
1588 <td id="LC212" class="blob-code blob-code-inner js-file-line">
1589 </td>
1590 </tr>
1591 <tr>
1592 <td id="L213" class="blob-num js-line-number" data-line-number="213"></td>
1593 <td id="LC213" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">weightedFrequencyTable</span>(<span class="pl-smi">countList</span>, <span class="pl-smi">name</span>, <span class="pl-smi">htmlresource</span>):</td>
1594 </tr>
1595 <tr>
1596 <td id="L214" class="blob-num js-line-number" data-line-number="214"></td>
1597 <td id="LC214" class="blob-code blob-code-inner js-file-line"> relFreqList <span class="pl-k">=</span> []</td>
1598 </tr>
1599 <tr>
1600 <td id="L215" class="blob-num js-line-number" data-line-number="215"></td>
1601 <td id="LC215" class="blob-code blob-code-inner js-file-line"> c <span class="pl-k">=</span> <span class="pl-c1">float</span>(countList[<span class="pl-c1">15</span>])</td>
1602 </tr>
1603 <tr>
1604 <td id="L216" class="blob-num js-line-number" data-line-number="216"></td>
1605 <td id="LC216" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> i <span class="pl-k">in</span> <span class="pl-c1">range</span>(<span class="pl-c1">0</span>, <span class="pl-c1">15</span>):</td>
1606 </tr>
1607 <tr>
1608 <td id="L217" class="blob-num js-line-number" data-line-number="217"></td>
1609 <td id="LC217" class="blob-code blob-code-inner js-file-line"> relFreqList.append(countList[i] <span class="pl-k">/</span> c)</td>
1610 </tr>
1611 <tr>
1612 <td id="L218" class="blob-num js-line-number" data-line-number="218"></td>
1613 <td id="LC218" class="blob-code blob-code-inner js-file-line">
1614 </td>
1615 </tr>
1616 <tr>
1617 <td id="L219" class="blob-num js-line-number" data-line-number="219"></td>
1618 <td id="LC219" class="blob-code blob-code-inner js-file-line"> data <span class="pl-k">=</span> {<span class="pl-s"><span class="pl-pds">&#39;</span>Phylotype<span class="pl-pds">&#39;</span></span>: pList, <span class="pl-s"><span class="pl-pds">&#39;</span>Weighted Frequency<span class="pl-pds">&#39;</span></span>: relFreqList}</td>
1619 </tr>
1620 <tr>
1621 <td id="L220" class="blob-num js-line-number" data-line-number="220"></td>
1622 <td id="LC220" class="blob-code blob-code-inner js-file-line"> relFreq_df <span class="pl-k">=</span> pd.DataFrame(data)</td>
1623 </tr>
1624 <tr>
1625 <td id="L221" class="blob-num js-line-number" data-line-number="221"></td>
1626 <td id="LC221" class="blob-code blob-code-inner js-file-line"> j_fname <span class="pl-k">=</span> htmlresource<span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> name <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>_t_weighted_frequency.csv<span class="pl-pds">&quot;</span></span></td>
1627 </tr>
1628 <tr>
1629 <td id="L222" class="blob-num js-line-number" data-line-number="222"></td>
1630 <td id="LC222" class="blob-code blob-code-inner js-file-line"> relFreq_df.to_csv(j_fname)</td>
1631 </tr>
1632 <tr>
1633 <td id="L223" class="blob-num js-line-number" data-line-number="223"></td>
1634 <td id="LC223" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">return</span> relFreqList <span class="pl-c"><span class="pl-c">#</span> 0-14 = p1-p15 counts [15] = total counts</span></td>
1635 </tr>
1636 <tr>
1637 <td id="L224" class="blob-num js-line-number" data-line-number="224"></td>
1638 <td id="LC224" class="blob-code blob-code-inner js-file-line">
1639 </td>
1640 </tr>
1641 <tr>
1642 <td id="L225" class="blob-num js-line-number" data-line-number="225"></td>
1643 <td id="LC225" class="blob-code blob-code-inner js-file-line">
1644 </td>
1645 </tr>
1646 <tr>
1647 <td id="L226" class="blob-num js-line-number" data-line-number="226"></td>
1648 <td id="LC226" class="blob-code blob-code-inner js-file-line">
1649 </td>
1650 </tr>
1651 <tr>
1652 <td id="L227" class="blob-num js-line-number" data-line-number="227"></td>
1653 <td id="LC227" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">createStackedBar</span>(<span class="pl-smi">name</span>,<span class="pl-smi">freqList</span>,<span class="pl-smi">strain</span>,<span class="pl-smi">pdf</span>,<span class="pl-smi">html_resource</span>):</td>
1654 </tr>
1655 <tr>
1656 <td id="L228" class="blob-num js-line-number" data-line-number="228"></td>
1657 <td id="LC228" class="blob-code blob-code-inner js-file-line"> palette <span class="pl-k">=</span> [<span class="pl-s"><span class="pl-pds">&quot;</span>#0000ff<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#6495ed<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#00ffff<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#caff70<span class="pl-pds">&quot;</span></span>,</td>
1658 </tr>
1659 <tr>
1660 <td id="L229" class="blob-num js-line-number" data-line-number="229"></td>
1661 <td id="LC229" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>#228b22<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#528b8b<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#00ff00<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#a52a2a<span class="pl-pds">&quot;</span></span>,</td>
1662 </tr>
1663 <tr>
1664 <td id="L230" class="blob-num js-line-number" data-line-number="230"></td>
1665 <td id="LC230" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>#ff0000<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#ffff00<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#ffa500<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#ff1493<span class="pl-pds">&quot;</span></span>,</td>
1666 </tr>
1667 <tr>
1668 <td id="L231" class="blob-num js-line-number" data-line-number="231"></td>
1669 <td id="LC231" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>#9400d3<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#bebebe<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#000000<span class="pl-pds">&quot;</span></span>, <span class="pl-s"><span class="pl-pds">&quot;</span>#ff00ff<span class="pl-pds">&quot;</span></span>]</td>
1670 </tr>
1671 <tr>
1672 <td id="L232" class="blob-num js-line-number" data-line-number="232"></td>
1673 <td id="LC232" class="blob-code blob-code-inner js-file-line">
1674 </td>
1675 </tr>
1676 <tr>
1677 <td id="L233" class="blob-num js-line-number" data-line-number="233"></td>
1678 <td id="LC233" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">VAP_148</span> <span class="pl-k">=</span> [<span class="pl-c1">0.072</span>, <span class="pl-c1">0.032</span>, <span class="pl-c1">0.032</span>, <span class="pl-c1">0.004</span>, <span class="pl-c1">0.007</span>,</td>
1679 </tr>
1680 <tr>
1681 <td id="L234" class="blob-num js-line-number" data-line-number="234"></td>
1682 <td id="LC234" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.005</span>, <span class="pl-c1">0.202</span>, <span class="pl-c1">0.004</span>, <span class="pl-c1">0.006</span>, <span class="pl-c1">0.014</span>,</td>
1683 </tr>
1684 <tr>
1685 <td id="L235" class="blob-num js-line-number" data-line-number="235"></td>
1686 <td id="LC235" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.130</span>, <span class="pl-c1">0.133</span>, <span class="pl-c1">0.054</span>, <span class="pl-c1">0.039</span>, <span class="pl-c1">0.265</span>]</td>
1687 </tr>
1688 <tr>
1689 <td id="L236" class="blob-num js-line-number" data-line-number="236"></td>
1690 <td id="LC236" class="blob-code blob-code-inner js-file-line">
1691 </td>
1692 </tr>
1693 <tr>
1694 <td id="L237" class="blob-num js-line-number" data-line-number="237"></td>
1695 <td id="LC237" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">VAP_IL3000</span> <span class="pl-k">=</span> [<span class="pl-c1">0.073</span>, <span class="pl-c1">0.040</span>, <span class="pl-c1">0.049</span>, <span class="pl-c1">0.018</span>, <span class="pl-c1">0.060</span>,</td>
1696 </tr>
1697 <tr>
1698 <td id="L238" class="blob-num js-line-number" data-line-number="238"></td>
1699 <td id="LC238" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.055</span>, <span class="pl-c1">0.054</span>, <span class="pl-c1">0.025</span>, <span class="pl-c1">0.012</span>, <span class="pl-c1">0.060</span>,</td>
1700 </tr>
1701 <tr>
1702 <td id="L239" class="blob-num js-line-number" data-line-number="239"></td>
1703 <td id="LC239" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.142</span>, <span class="pl-c1">0.100</span>, <span class="pl-c1">0.061</span>, <span class="pl-c1">0.078</span>, <span class="pl-c1">0.172</span>]</td>
1704 </tr>
1705 <tr>
1706 <td id="L240" class="blob-num js-line-number" data-line-number="240"></td>
1707 <td id="LC240" class="blob-code blob-code-inner js-file-line"> cmap <span class="pl-k">=</span> plt.cm.get_cmap(<span class="pl-s"><span class="pl-pds">&#39;</span>tab20<span class="pl-pds">&#39;</span></span>)</td>
1708 </tr>
1709 <tr>
1710 <td id="L241" class="blob-num js-line-number" data-line-number="241"></td>
1711 <td id="LC241" class="blob-code blob-code-inner js-file-line"> palette <span class="pl-k">=</span> [cmap(i) <span class="pl-k">for</span> i <span class="pl-k">in</span> <span class="pl-c1">range</span>(cmap.N)]</td>
1712 </tr>
1713 <tr>
1714 <td id="L242" class="blob-num js-line-number" data-line-number="242"></td>
1715 <td id="LC242" class="blob-code blob-code-inner js-file-line">
1716 </td>
1717 </tr>
1718 <tr>
1719 <td id="L243" class="blob-num js-line-number" data-line-number="243"></td>
1720 <td id="LC243" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Tc148<span class="pl-pds">&quot;</span></span>:</td>
1721 </tr>
1722 <tr>
1723 <td id="L244" class="blob-num js-line-number" data-line-number="244"></td>
1724 <td id="LC244" class="blob-code blob-code-inner js-file-line"> VAPtable <span class="pl-k">=</span> <span class="pl-c1">VAP_148</span></td>
1725 </tr>
1726 <tr>
1727 <td id="L245" class="blob-num js-line-number" data-line-number="245"></td>
1728 <td id="LC245" class="blob-code blob-code-inner js-file-line"> VAPname<span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">&#39;</span>Tc148<span class="pl-cce">\n</span>Genome VAP<span class="pl-pds">&#39;</span></span></td>
1729 </tr>
1730 <tr>
1731 <td id="L246" class="blob-num js-line-number" data-line-number="246"></td>
1732 <td id="LC246" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> strain <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>IL3000<span class="pl-pds">&quot;</span></span>:</td>
1733 </tr>
1734 <tr>
1735 <td id="L247" class="blob-num js-line-number" data-line-number="247"></td>
1736 <td id="LC247" class="blob-code blob-code-inner js-file-line"> VAPtable <span class="pl-k">=</span> <span class="pl-c1">VAP_IL3000</span></td>
1737 </tr>
1738 <tr>
1739 <td id="L248" class="blob-num js-line-number" data-line-number="248"></td>
1740 <td id="LC248" class="blob-code blob-code-inner js-file-line"> VAPname<span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&#39;</span>IL3000<span class="pl-cce">\n</span>Genome VAP<span class="pl-pds">&#39;</span></span></td>
1741 </tr>
1742 <tr>
1743 <td id="L249" class="blob-num js-line-number" data-line-number="249"></td>
1744 <td id="LC249" class="blob-code blob-code-inner js-file-line"> width <span class="pl-k">=</span> <span class="pl-c1">0.35</span> <span class="pl-c"><span class="pl-c">#</span> the width of the bars: can also be len(x) sequence</span></td>
1745 </tr>
1746 <tr>
1747 <td id="L250" class="blob-num js-line-number" data-line-number="250"></td>
1748 <td id="LC250" class="blob-code blob-code-inner js-file-line"> plots <span class="pl-k">=</span> []</td>
1749 </tr>
1750 <tr>
1751 <td id="L251" class="blob-num js-line-number" data-line-number="251"></td>
1752 <td id="LC251" class="blob-code blob-code-inner js-file-line"> fpos <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1753 </tr>
1754 <tr>
1755 <td id="L252" class="blob-num js-line-number" data-line-number="252"></td>
1756 <td id="LC252" class="blob-code blob-code-inner js-file-line"> vpos <span class="pl-k">=</span> <span class="pl-c1">0</span></td>
1757 </tr>
1758 <tr>
1759 <td id="L253" class="blob-num js-line-number" data-line-number="253"></td>
1760 <td id="LC253" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> p <span class="pl-k">in</span> <span class="pl-c1">range</span>(<span class="pl-c1">0</span>, <span class="pl-c1">15</span>):</td>
1761 </tr>
1762 <tr>
1763 <td id="L254" class="blob-num js-line-number" data-line-number="254"></td>
1764 <td id="LC254" class="blob-code blob-code-inner js-file-line"> tp <span class="pl-k">=</span> plt.bar(<span class="pl-c1">0</span>, freqList[p], width, <span class="pl-v">color</span><span class="pl-k">=</span> palette[p], <span class="pl-v">bottom</span> <span class="pl-k">=</span> fpos)</td>
1765 </tr>
1766 <tr>
1767 <td id="L255" class="blob-num js-line-number" data-line-number="255"></td>
1768 <td id="LC255" class="blob-code blob-code-inner js-file-line"> fpos <span class="pl-k">+=</span>freqList[p]</td>
1769 </tr>
1770 <tr>
1771 <td id="L256" class="blob-num js-line-number" data-line-number="256"></td>
1772 <td id="LC256" class="blob-code blob-code-inner js-file-line">
1773 </td>
1774 </tr>
1775 <tr>
1776 <td id="L257" class="blob-num js-line-number" data-line-number="257"></td>
1777 <td id="LC257" class="blob-code blob-code-inner js-file-line"> tp <span class="pl-k">=</span> plt.bar(<span class="pl-c1">1</span>, VAPtable[p], width, <span class="pl-v">color</span><span class="pl-k">=</span> palette[p], <span class="pl-v">bottom</span> <span class="pl-k">=</span> vpos)</td>
1778 </tr>
1779 <tr>
1780 <td id="L258" class="blob-num js-line-number" data-line-number="258"></td>
1781 <td id="LC258" class="blob-code blob-code-inner js-file-line"> vpos <span class="pl-k">+=</span>VAPtable[p]</td>
1782 </tr>
1783 <tr>
1784 <td id="L259" class="blob-num js-line-number" data-line-number="259"></td>
1785 <td id="LC259" class="blob-code blob-code-inner js-file-line">
1786 </td>
1787 </tr>
1788 <tr>
1789 <td id="L260" class="blob-num js-line-number" data-line-number="260"></td>
1790 <td id="LC260" class="blob-code blob-code-inner js-file-line"> plots.append(tp)</td>
1791 </tr>
1792 <tr>
1793 <td id="L261" class="blob-num js-line-number" data-line-number="261"></td>
1794 <td id="LC261" class="blob-code blob-code-inner js-file-line"> plt.xticks([<span class="pl-c1">0</span>,<span class="pl-c1">1</span>],[name,VAPname])</td>
1795 </tr>
1796 <tr>
1797 <td id="L262" class="blob-num js-line-number" data-line-number="262"></td>
1798 <td id="LC262" class="blob-code blob-code-inner js-file-line"> plt.legend(plots[::<span class="pl-k">-</span><span class="pl-c1">1</span>],[<span class="pl-s"><span class="pl-pds">&#39;</span>p15<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p14<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p13<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p12<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p11<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p10<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p9<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p8<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p7<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p6<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p5<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p4<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p3<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p2<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>p1<span class="pl-pds">&#39;</span></span>])</td>
1799 </tr>
1800 <tr>
1801 <td id="L263" class="blob-num js-line-number" data-line-number="263"></td>
1802 <td id="LC263" class="blob-code blob-code-inner js-file-line"> title <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>Figure Legend: The transcriptomic Variant Antigen Profile of $\itTrypanosoma$ $\itcongolense$ estimated as phylotype <span class="pl-pds">&quot;</span></span> \</td>
1803 </tr>
1804 <tr>
1805 <td id="L264" class="blob-num js-line-number" data-line-number="264"></td>
1806 <td id="LC264" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>proportion adjusted for transcript abundance and the reference genomic Variant Antigen Profile. <span class="pl-pds">&quot;</span></span> \</td>
1807 </tr>
1808 <tr>
1809 <td id="L265" class="blob-num js-line-number" data-line-number="265"></td>
1810 <td id="LC265" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-cce">\n</span>Data was produced with the &#39;Variant Antigen Profiler&#39; (Silva Pereira et al., 2019).<span class="pl-pds">&quot;</span></span></td>
1811 </tr>
1812 <tr>
1813 <td id="L266" class="blob-num js-line-number" data-line-number="266"></td>
1814 <td id="LC266" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>plt.title(title, wrap=&quot;True&quot;)</span></td>
1815 </tr>
1816 <tr>
1817 <td id="L267" class="blob-num js-line-number" data-line-number="267"></td>
1818 <td id="LC267" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>plt.text(-0.2, -0.05, title, va=&quot;top&quot;, transform=ax.transAxes, wrap=&quot;True&quot;)</span></td>
1819 </tr>
1820 <tr>
1821 <td id="L268" class="blob-num js-line-number" data-line-number="268"></td>
1822 <td id="LC268" class="blob-code blob-code-inner js-file-line"> plt.text(<span class="pl-k">-</span><span class="pl-c1">0.3</span>, <span class="pl-k">-</span><span class="pl-c1">0.15</span>, title, <span class="pl-v">va</span><span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">&quot;</span>top<span class="pl-pds">&quot;</span></span>, <span class="pl-v">wrap</span><span class="pl-k">=</span><span class="pl-s"><span class="pl-pds">&quot;</span>True<span class="pl-pds">&quot;</span></span>)</td>
1823 </tr>
1824 <tr>
1825 <td id="L269" class="blob-num js-line-number" data-line-number="269"></td>
1826 <td id="LC269" class="blob-code blob-code-inner js-file-line"> plt.tight_layout(<span class="pl-v">pad</span><span class="pl-k">=</span><span class="pl-c1">1.5</span>)</td>
1827 </tr>
1828 <tr>
1829 <td id="L270" class="blob-num js-line-number" data-line-number="270"></td>
1830 <td id="LC270" class="blob-code blob-code-inner js-file-line"> plt.subplots_adjust(<span class="pl-v">bottom</span> <span class="pl-k">=</span> <span class="pl-c1">0.3</span>,<span class="pl-v">top</span><span class="pl-k">=</span><span class="pl-c1">0.99</span>,<span class="pl-v">left</span><span class="pl-k">=</span><span class="pl-c1">0.125</span>,<span class="pl-v">right</span><span class="pl-k">=</span><span class="pl-c1">0.9</span>,<span class="pl-v">hspace</span><span class="pl-k">=</span><span class="pl-c1">0.2</span>,<span class="pl-v">wspace</span><span class="pl-k">=</span><span class="pl-c1">0.2</span>)</td>
1831 </tr>
1832 <tr>
1833 <td id="L271" class="blob-num js-line-number" data-line-number="271"></td>
1834 <td id="LC271" class="blob-code blob-code-inner js-file-line">
1835 </td>
1836 </tr>
1837 <tr>
1838 <td id="L272" class="blob-num js-line-number" data-line-number="272"></td>
1839 <td id="LC272" class="blob-code blob-code-inner js-file-line"> plt.savefig(html_resource <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/stackedbar.png<span class="pl-pds">&quot;</span></span>)</td>
1840 </tr>
1841 <tr>
1842 <td id="L273" class="blob-num js-line-number" data-line-number="273"></td>
1843 <td id="LC273" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">if</span> pdf <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&#39;</span>PDF_Yes<span class="pl-pds">&#39;</span></span>:</td>
1844 </tr>
1845 <tr>
1846 <td id="L274" class="blob-num js-line-number" data-line-number="274"></td>
1847 <td id="LC274" class="blob-code blob-code-inner js-file-line"> plt.savefig(html_resource <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>/stackedbar.pdf<span class="pl-pds">&quot;</span></span>)</td>
1848 </tr>
1849 <tr>
1850 <td id="L275" class="blob-num js-line-number" data-line-number="275"></td>
1851 <td id="LC275" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>plt.show()</span></td>
1852 </tr>
1853 <tr>
1854 <td id="L276" class="blob-num js-line-number" data-line-number="276"></td>
1855 <td id="LC276" class="blob-code blob-code-inner js-file-line">
1856 </td>
1857 </tr>
1858 <tr>
1859 <td id="L277" class="blob-num js-line-number" data-line-number="277"></td>
1860 <td id="LC277" class="blob-code blob-code-inner js-file-line">
1861 </td>
1862 </tr>
1863 <tr>
1864 <td id="L278" class="blob-num js-line-number" data-line-number="278"></td>
1865 <td id="LC278" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">createHTML</span>(<span class="pl-smi">name</span>,<span class="pl-smi">htmlfn</span>,<span class="pl-smi">htmlresource</span>,<span class="pl-smi">freqList</span>,<span class="pl-smi">weightList</span>):</td>
1866 </tr>
1867 <tr>
1868 <td id="L279" class="blob-num js-line-number" data-line-number="279"></td>
1869 <td id="LC279" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>assumes imgs are heatmap.png, dheatmap.png, vapPCA.png and already in htmlresource</span></td>
1870 </tr>
1871 <tr>
1872 <td id="L280" class="blob-num js-line-number" data-line-number="280"></td>
1873 <td id="LC280" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;html&gt;&lt;title&gt;T<span class="pl-c1">.</span>congolense VAP&lt;/title&gt;&lt;body&gt;&lt;div style=&#39;text-align:center&#39;&gt;&lt;h2&gt;&lt;i&gt;Trypanosoma congolense&lt;/i&gt; Variant Antigen Profile&lt;/h2&gt;&lt;h3&gt;<span class="pl-pds">&quot;</span></span></td>
1874 </tr>
1875 <tr>
1876 <td id="L281" class="blob-num js-line-number" data-line-number="281"></td>
1877 <td id="LC281" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> name</td>
1878 </tr>
1879 <tr>
1880 <td id="L282" class="blob-num js-line-number" data-line-number="282"></td>
1881 <td id="LC282" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;br&gt;Transcriptomic Analysis&lt;/h3&gt;&lt;/p&gt;<span class="pl-pds">&quot;</span></span></td>
1882 </tr>
1883 <tr>
1884 <td id="L283" class="blob-num js-line-number" data-line-number="283"></td>
1885 <td id="LC283" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;p style = &#39;margin-left:20%; margin-right:20%&#39;&gt;Table Legend: Variant Antigen Profiles of a transcriptome of &lt;i&gt;Trypanosoma congolense&lt;/i&gt; estimated as phylotype proportion. <span class="pl-pds">&quot;</span></span> \</td>
1886 </tr>
1887 <tr>
1888 <td id="L284" class="blob-num js-line-number" data-line-number="284"></td>
1889 <td id="LC284" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>Weighted frequency refers to the phylotype proportion based transcript abundance. <span class="pl-pds">&quot;</span></span> \</td>
1890 </tr>
1891 <tr>
1892 <td id="L285" class="blob-num js-line-number" data-line-number="285"></td>
1893 <td id="LC285" class="blob-code blob-code-inner js-file-line"> <span class="pl-s"><span class="pl-pds">&quot;</span>Data was produced with the &#39;Variant Antigen Profiler&#39; (Silva Pereira et al., 2019).&lt;/p&gt; <span class="pl-pds">&quot;</span></span></td>
1894 </tr>
1895 <tr>
1896 <td id="L286" class="blob-num js-line-number" data-line-number="286"></td>
1897 <td id="LC286" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;style&gt; table, th, tr, td {border: 1px solid black; border-collapse: collapse;}&lt;/style&gt;<span class="pl-pds">&quot;</span></span></td>
1898 </tr>
1899 <tr>
1900 <td id="L287" class="blob-num js-line-number" data-line-number="287"></td>
1901 <td id="LC287" class="blob-code blob-code-inner js-file-line">
1902 </td>
1903 </tr>
1904 <tr>
1905 <td id="L288" class="blob-num js-line-number" data-line-number="288"></td>
1906 <td id="LC288" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;table style=&#39;width:50%;margin-left:25%;text-align:center&#39;&gt;&lt;tr&gt;&lt;th&gt;Phylotype&lt;/th&gt;&lt;th&gt;Relative Frequency&lt;/th&gt;&lt;th&gt;Weighted Frequency&lt;/th&gt;&lt;/tr&gt;<span class="pl-pds">&quot;</span></span></td>
1907 </tr>
1908 <tr>
1909 <td id="L289" class="blob-num js-line-number" data-line-number="289"></td>
1910 <td id="LC289" class="blob-code blob-code-inner js-file-line"> tabString <span class="pl-k">=</span> <span class="pl-s"><span class="pl-pds">&quot;</span><span class="pl-pds">&quot;</span></span></td>
1911 </tr>
1912 <tr>
1913 <td id="L290" class="blob-num js-line-number" data-line-number="290"></td>
1914 <td id="LC290" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span> flush out table with correct values</span></td>
1915 </tr>
1916 <tr>
1917 <td id="L291" class="blob-num js-line-number" data-line-number="291"></td>
1918 <td id="LC291" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">for</span> i <span class="pl-k">in</span> <span class="pl-c1">range</span>(<span class="pl-c1">0</span>, <span class="pl-c1">15</span>):</td>
1919 </tr>
1920 <tr>
1921 <td id="L292" class="blob-num js-line-number" data-line-number="292"></td>
1922 <td id="LC292" class="blob-code blob-code-inner js-file-line"> f <span class="pl-k">=</span> <span class="pl-c1">format</span>(freqList[i], <span class="pl-s"><span class="pl-pds">&#39;</span>.4f<span class="pl-pds">&#39;</span></span>)</td>
1923 </tr>
1924 <tr>
1925 <td id="L293" class="blob-num js-line-number" data-line-number="293"></td>
1926 <td id="LC293" class="blob-code blob-code-inner js-file-line"> w <span class="pl-k">=</span> <span class="pl-c1">format</span>(weightList[i], <span class="pl-s"><span class="pl-pds">&#39;</span>.4f<span class="pl-pds">&#39;</span></span>)</td>
1927 </tr>
1928 <tr>
1929 <td id="L294" class="blob-num js-line-number" data-line-number="294"></td>
1930 <td id="LC294" class="blob-code blob-code-inner js-file-line"> tabString <span class="pl-k">+=</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;tr&gt;&lt;td&gt;phy<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> <span class="pl-c1">str</span>(i <span class="pl-k">+</span> <span class="pl-c1">1</span>) <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;/td&gt;&lt;td&gt;<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> f <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;/td&gt;&lt;td&gt;<span class="pl-pds">&quot;</span></span> <span class="pl-k">+</span> w <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;/td&gt;&lt;/tr&gt;<span class="pl-pds">&quot;</span></span></td>
1931 </tr>
1932 <tr>
1933 <td id="L295" class="blob-num js-line-number" data-line-number="295"></td>
1934 <td id="LC295" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> tabString <span class="pl-k">+</span> <span class="pl-s"><span class="pl-pds">&quot;</span>&lt;/table&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;<span class="pl-pds">&quot;</span></span></td>
1935 </tr>
1936 <tr>
1937 <td id="L296" class="blob-num js-line-number" data-line-number="296"></td>
1938 <td id="LC296" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;p&gt; &lt;h3&gt;Stacked Bar chart of Phylotype Frequency&lt;/h3&gt; The &#39;weighted&#39; relative frequency of each phylotype alongside the VAP of selected strain<span class="pl-c1">.</span>&lt;/p&gt;<span class="pl-pds">&quot;</span></span></td>
1939 </tr>
1940 <tr>
1941 <td id="L297" class="blob-num js-line-number" data-line-number="297"></td>
1942 <td id="LC297" class="blob-code blob-code-inner js-file-line"> imgString <span class="pl-k">=</span> <span class="pl-sr"><span class="pl-k">r</span><span class="pl-pds">&quot;</span>&lt;img src = &#39;stackedbar<span class="pl-c1">.</span>png&#39; alt=&#39;Stacked bar chart of phylotype variation&#39; style=&#39;max-width:100%&#39;&gt;&lt;br&gt;&lt;br&gt;<span class="pl-pds">&quot;</span></span></td>
1943 </tr>
1944 <tr>
1945 <td id="L298" class="blob-num js-line-number" data-line-number="298"></td>
1946 <td id="LC298" class="blob-code blob-code-inner js-file-line"> htmlString <span class="pl-k">+=</span> imgString</td>
1947 </tr>
1948 <tr>
1949 <td id="L299" class="blob-num js-line-number" data-line-number="299"></td>
1950 <td id="LC299" class="blob-code blob-code-inner js-file-line">
1951 </td>
1952 </tr>
1953 <tr>
1954 <td id="L300" class="blob-num js-line-number" data-line-number="300"></td>
1955 <td id="LC300" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> htmlString += r&quot;&lt;p&gt;&lt;h3&gt;The Deviation Heat Map and Dendogram&lt;/h3&gt;The phylotype variation expressed as the deviation from your sample mean compared to the model dataset&lt;/p&gt;&quot;</span></td>
1956 </tr>
1957 <tr>
1958 <td id="L301" class="blob-num js-line-number" data-line-number="301"></td>
1959 <td id="LC301" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> imgString = r&quot;&lt;img src = &#39;dheatmap.png&#39; alt=&#39;Deviation Heatmap&#39; style=&#39;max-width:100%&#39;&gt;&lt;br&gt;&lt;br&gt;&quot;</span></td>
1960 </tr>
1961 <tr>
1962 <td id="L302" class="blob-num js-line-number" data-line-number="302"></td>
1963 <td id="LC302" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> htmlString += imgString</span></td>
1964 </tr>
1965 <tr>
1966 <td id="L303" class="blob-num js-line-number" data-line-number="303"></td>
1967 <td id="LC303" class="blob-code blob-code-inner js-file-line">
1968 </td>
1969 </tr>
1970 <tr>
1971 <td id="L304" class="blob-num js-line-number" data-line-number="304"></td>
1972 <td id="LC304" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> htmlString += r&quot;&lt;p&gt;&lt;h3&gt;The Variation PCA plot&lt;/h3&gt;PCA analysis corresponding to absolute variation. Colour coded according to location&lt;/p&gt;&quot;</span></td>
1973 </tr>
1974 <tr>
1975 <td id="L305" class="blob-num js-line-number" data-line-number="305"></td>
1976 <td id="LC305" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> imgString = r&quot;&lt;img src = &#39;vapPCA.png&#39; alt=&#39;PCA Analysis&#39; style=&#39;max-width:100%&#39;&gt;&lt;br&gt;&lt;br&gt;&quot;</span></td>
1977 </tr>
1978 <tr>
1979 <td id="L306" class="blob-num js-line-number" data-line-number="306"></td>
1980 <td id="LC306" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span> htmlString += imgString + r&quot;&lt;/div&gt;&lt;/body&gt;&lt;/html&gt;&quot;</span></td>
1981 </tr>
1982 <tr>
1983 <td id="L307" class="blob-num js-line-number" data-line-number="307"></td>
1984 <td id="LC307" class="blob-code blob-code-inner js-file-line">
1985 </td>
1986 </tr>
1987 <tr>
1988 <td id="L308" class="blob-num js-line-number" data-line-number="308"></td>
1989 <td id="LC308" class="blob-code blob-code-inner js-file-line"> <span class="pl-k">with</span> <span class="pl-c1">open</span>(htmlfn, <span class="pl-s"><span class="pl-pds">&quot;</span>w<span class="pl-pds">&quot;</span></span>) <span class="pl-k">as</span> htmlfile:</td>
1990 </tr>
1991 <tr>
1992 <td id="L309" class="blob-num js-line-number" data-line-number="309"></td>
1993 <td id="LC309" class="blob-code blob-code-inner js-file-line"> htmlfile.write(htmlString)</td>
1994 </tr>
1995 <tr>
1996 <td id="L310" class="blob-num js-line-number" data-line-number="310"></td>
1997 <td id="LC310" class="blob-code blob-code-inner js-file-line">
1998 </td>
1999 </tr>
2000 <tr>
2001 <td id="L311" class="blob-num js-line-number" data-line-number="311"></td>
2002 <td id="LC311" class="blob-code blob-code-inner js-file-line"><span class="pl-c"><span class="pl-c">#</span>argdict = {&#39;name&#39;:2, &#39;pdfexport&#39;: 3, &#39;strain&#39;: 4, &#39;forward&#39;: 5, &#39;reverse&#39;: 6, &#39;html_file&#39;: 7, &#39;html_resource&#39;: 8}</span></td>
2003 </tr>
2004 <tr>
2005 <td id="L312" class="blob-num js-line-number" data-line-number="312"></td>
2006 <td id="LC312" class="blob-code blob-code-inner js-file-line"><span class="pl-k">def</span> <span class="pl-en">transcriptomicProcess</span>(<span class="pl-smi">args</span>,<span class="pl-smi">dict</span>):</td>
2007 </tr>
2008 <tr>
2009 <td id="L313" class="blob-num js-line-number" data-line-number="313"></td>
2010 <td id="LC313" class="blob-code blob-code-inner js-file-line"> transcriptMapping(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]], args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>strain<span class="pl-pds">&#39;</span></span>]], args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>forward<span class="pl-pds">&#39;</span></span>]], args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>reverse<span class="pl-pds">&#39;</span></span>]]) <span class="pl-c"><span class="pl-c">#</span>uses bowtie</span></td>
2011 </tr>
2012 <tr>
2013 <td id="L314" class="blob-num js-line-number" data-line-number="314"></td>
2014 <td id="LC314" class="blob-code blob-code-inner js-file-line"> processSamFiles(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]]) <span class="pl-c"><span class="pl-c">#</span>uses samtools</span></td>
2015 </tr>
2016 <tr>
2017 <td id="L315" class="blob-num js-line-number" data-line-number="315"></td>
2018 <td id="LC315" class="blob-code blob-code-inner js-file-line"> transcriptAbundance(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>strain<span class="pl-pds">&#39;</span></span>]]) <span class="pl-c"><span class="pl-c">#</span>uses cufflinks -&gt; ?.cuff/*.*</span></td>
2019 </tr>
2020 <tr>
2021 <td id="L316" class="blob-num js-line-number" data-line-number="316"></td>
2022 <td id="LC316" class="blob-code blob-code-inner js-file-line"> cuff_df <span class="pl-k">=</span> convertToFasta(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>strain<span class="pl-pds">&#39;</span></span>]])</td>
2023 </tr>
2024 <tr>
2025 <td id="L317" class="blob-num js-line-number" data-line-number="317"></td>
2026 <td id="LC317" class="blob-code blob-code-inner js-file-line"> countList, weightList <span class="pl-k">=</span> HMMerMotifSearch(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>strain<span class="pl-pds">&#39;</span></span>]], cuff_df)</td>
2027 </tr>
2028 <tr>
2029 <td id="L318" class="blob-num js-line-number" data-line-number="318"></td>
2030 <td id="LC318" class="blob-code blob-code-inner js-file-line"> relFreqList <span class="pl-k">=</span> relativeFrequencyTable(countList,args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>html_resource<span class="pl-pds">&#39;</span></span>]])</td>
2031 </tr>
2032 <tr>
2033 <td id="L319" class="blob-num js-line-number" data-line-number="319"></td>
2034 <td id="LC319" class="blob-code blob-code-inner js-file-line"> relWeightList <span class="pl-k">=</span> weightedFrequencyTable(weightList,args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>html_resource<span class="pl-pds">&#39;</span></span>]])</td>
2035 </tr>
2036 <tr>
2037 <td id="L320" class="blob-num js-line-number" data-line-number="320"></td>
2038 <td id="LC320" class="blob-code blob-code-inner js-file-line"> createStackedBar(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],relWeightList, args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>strain<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>pdfexport<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>html_resource<span class="pl-pds">&#39;</span></span>]])</td>
2039 </tr>
2040 <tr>
2041 <td id="L321" class="blob-num js-line-number" data-line-number="321"></td>
2042 <td id="LC321" class="blob-code blob-code-inner js-file-line"> createHTML(args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>name<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>html_file<span class="pl-pds">&#39;</span></span>]],args[dict[<span class="pl-s"><span class="pl-pds">&#39;</span>html_resource<span class="pl-pds">&#39;</span></span>]], relFreqList, relWeightList)</td>
2043 </tr>
2044 <tr>
2045 <td id="L322" class="blob-num js-line-number" data-line-number="322"></td>
2046 <td id="LC322" class="blob-code blob-code-inner js-file-line">
2047 </td>
2048 </tr>
2049 <tr>
2050 <td id="L323" class="blob-num js-line-number" data-line-number="323"></td>
2051 <td id="LC323" class="blob-code blob-code-inner js-file-line"><span class="pl-k">if</span> <span class="pl-c1">__name__</span> <span class="pl-k">==</span> <span class="pl-s"><span class="pl-pds">&quot;</span>__main__<span class="pl-pds">&quot;</span></span>:</td>
2052 </tr>
2053 <tr>
2054 <td id="L324" class="blob-num js-line-number" data-line-number="324"></td>
2055 <td id="LC324" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;Commencing Transcript Mapping&quot;)</span></td>
2056 </tr>
2057 <tr>
2058 <td id="L325" class="blob-num js-line-number" data-line-number="325"></td>
2059 <td id="LC325" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>transcriptMapping(&quot;T_Test&quot;, &quot;Transcripts.1&quot;,&quot;Transcripts.2&quot;)</span></td>
2060 </tr>
2061 <tr>
2062 <td id="L326" class="blob-num js-line-number" data-line-number="326"></td>
2063 <td id="LC326" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;Processimg Sam Files&quot;)</span></td>
2064 </tr>
2065 <tr>
2066 <td id="L327" class="blob-num js-line-number" data-line-number="327"></td>
2067 <td id="LC327" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>processSamFiles(&quot;T_Test&quot;)</span></td>
2068 </tr>
2069 <tr>
2070 <td id="L328" class="blob-num js-line-number" data-line-number="328"></td>
2071 <td id="LC328" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;Assessing Transcript Abundance&quot;)</span></td>
2072 </tr>
2073 <tr>
2074 <td id="L329" class="blob-num js-line-number" data-line-number="329"></td>
2075 <td id="LC329" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>transcriptAbundance(&quot;T_Test&quot;)</span></td>
2076 </tr>
2077 <tr>
2078 <td id="L330" class="blob-num js-line-number" data-line-number="330"></td>
2079 <td id="LC330" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print (&quot;Converting to Fasta Subset&quot;)</span></td>
2080 </tr>
2081 <tr>
2082 <td id="L331" class="blob-num js-line-number" data-line-number="331"></td>
2083 <td id="LC331" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>cuff_df = convertToFasta(&quot;T_Test&quot;)</span></td>
2084 </tr>
2085 <tr>
2086 <td id="L332" class="blob-num js-line-number" data-line-number="332"></td>
2087 <td id="LC332" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>print(&quot;Commencing HMMer search&quot;)</span></td>
2088 </tr>
2089 <tr>
2090 <td id="L333" class="blob-num js-line-number" data-line-number="333"></td>
2091 <td id="LC333" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>countList, weightList = HMMerMotifSearch(&quot;T_Test&quot;,cuff_df)</span></td>
2092 </tr>
2093 <tr>
2094 <td id="L334" class="blob-num js-line-number" data-line-number="334"></td>
2095 <td id="LC334" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>relativeFrequencyTable(countList,&#39;T_Test&#39;)</span></td>
2096 </tr>
2097 <tr>
2098 <td id="L335" class="blob-num js-line-number" data-line-number="335"></td>
2099 <td id="LC335" class="blob-code blob-code-inner js-file-line"> <span class="pl-c"><span class="pl-c">#</span>weightedFrequencyTable(weightList,&#39;T_Test&#39;)</span></td>
2100 </tr>
2101 <tr>
2102 <td id="L336" class="blob-num js-line-number" data-line-number="336"></td>
2103 <td id="LC336" class="blob-code blob-code-inner js-file-line"> relFreqList <span class="pl-k">=</span> [<span class="pl-c1">0.111842105</span>,<span class="pl-c1">0.059210526</span>,<span class="pl-c1">0.026315789</span>,<span class="pl-c1">0.013157895</span>,</td>
2104 </tr>
2105 <tr>
2106 <td id="L337" class="blob-num js-line-number" data-line-number="337"></td>
2107 <td id="LC337" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.006578947</span>,<span class="pl-c1">0.013157895</span>,<span class="pl-c1">0.032894737</span>,<span class="pl-c1">0.019736842</span>,</td>
2108 </tr>
2109 <tr>
2110 <td id="L338" class="blob-num js-line-number" data-line-number="338"></td>
2111 <td id="LC338" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.039473684</span>,<span class="pl-c1">0.046052632</span>,<span class="pl-c1">0.217105263</span>,<span class="pl-c1">0.065789474</span>,</td>
2112 </tr>
2113 <tr>
2114 <td id="L339" class="blob-num js-line-number" data-line-number="339"></td>
2115 <td id="LC339" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.151315789</span>,<span class="pl-c1">0.059210526</span>,<span class="pl-c1">0.138157895</span>]</td>
2116 </tr>
2117 <tr>
2118 <td id="L340" class="blob-num js-line-number" data-line-number="340"></td>
2119 <td id="LC340" class="blob-code blob-code-inner js-file-line">
2120 </td>
2121 </tr>
2122 <tr>
2123 <td id="L341" class="blob-num js-line-number" data-line-number="341"></td>
2124 <td id="LC341" class="blob-code blob-code-inner js-file-line"> relWeightList <span class="pl-k">=</span> [<span class="pl-c1">0.07532571</span>,<span class="pl-c1">0.05900545</span>,<span class="pl-c1">0.009601452</span>,<span class="pl-c1">0.042357532</span>,<span class="pl-c1">0.01236219</span>,<span class="pl-c1">0.001675663</span>,<span class="pl-c1">0.04109726</span>,</td>
2125 </tr>
2126 <tr>
2127 <td id="L342" class="blob-num js-line-number" data-line-number="342"></td>
2128 <td id="LC342" class="blob-code blob-code-inner js-file-line"> <span class="pl-c1">0.097464248</span>,<span class="pl-c1">0.057491666</span>,<span class="pl-c1">0.05826875</span>,<span class="pl-c1">0.279457473</span>,<span class="pl-c1">0.070004772</span>,<span class="pl-c1">0.065329007</span>,<span class="pl-c1">0.085361298</span>,<span class="pl-c1">0.045197529</span>]</td>
2129 </tr>
2130 <tr>
2131 <td id="L343" class="blob-num js-line-number" data-line-number="343"></td>
2132 <td id="LC343" class="blob-code blob-code-inner js-file-line">
2133 </td>
2134 </tr>
2135 <tr>
2136 <td id="L344" class="blob-num js-line-number" data-line-number="344"></td>
2137 <td id="LC344" class="blob-code blob-code-inner js-file-line"> createStackedBar(<span class="pl-s"><span class="pl-pds">&#39;</span>T_Test<span class="pl-pds">&#39;</span></span>,relWeightList, <span class="pl-s"><span class="pl-pds">&#39;</span>Tc148<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>PDF_Yes<span class="pl-pds">&#39;</span></span>,<span class="pl-s"><span class="pl-pds">&#39;</span>results<span class="pl-pds">&#39;</span></span>)</td>
2138 </tr>
2139 <tr>
2140 <td id="L345" class="blob-num js-line-number" data-line-number="345"></td>
2141 <td id="LC345" class="blob-code blob-code-inner js-file-line"> createHTML(<span class="pl-s"><span class="pl-pds">&quot;</span>t_test<span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span>results/t_test.html<span class="pl-pds">&quot;</span></span>,<span class="pl-s"><span class="pl-pds">&quot;</span>results<span class="pl-pds">&quot;</span></span>,relFreqList,relWeightList)</td>
2142 </tr>
2143 </table>
2144
2145 <details class="details-reset details-overlay BlobToolbar position-absolute js-file-line-actions dropdown d-none" aria-hidden="true">
2146 <summary class="btn-octicon ml-0 px-2 p-0 bg-white border border-gray-dark rounded-1" aria-label="Inline file action toolbar">
2147 <svg class="octicon octicon-kebab-horizontal" viewBox="0 0 13 16" version="1.1" width="13" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm5 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM13 7.5a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0z"/></svg>
2148 </summary>
2149 <details-menu>
2150 <ul class="BlobToolbar-dropdown dropdown-menu dropdown-menu-se mt-2" style="width:185px">
2151 <li><clipboard-copy role="menuitem" class="dropdown-item" id="js-copy-lines" style="cursor:pointer;" data-original-text="Copy lines">Copy lines</clipboard-copy></li>
2152 <li><clipboard-copy role="menuitem" class="dropdown-item" id="js-copy-permalink" style="cursor:pointer;" data-original-text="Copy permalink">Copy permalink</clipboard-copy></li>
2153 <li><a class="dropdown-item js-update-url-with-hash" id="js-view-git-blame" role="menuitem" href="/johnheap/VAPPER-Galaxy/blame/a4e16d71fe985f389930c02f94354b87d3aabadb/Tryp_T.py">View git blame</a></li>
2154 <li><a class="dropdown-item" id="js-new-issue" role="menuitem" href="/johnheap/VAPPER-Galaxy/issues/new">Reference in new issue</a></li>
2155 </ul>
2156 </details-menu>
2157 </details>
2158
2159 </div>
2160
2161 </div>
2162
2163
2164
2165 <details class="details-reset details-overlay details-overlay-dark">
2166 <summary data-hotkey="l" aria-label="Jump to line"></summary>
2167 <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast linejump" aria-label="Jump to line">
2168 <!-- '"` --><!-- </textarea></xmp> --></option></form><form class="js-jump-to-line-form Box-body d-flex" action="" accept-charset="UTF-8" method="get"><input name="utf8" type="hidden" value="&#x2713;" />
2169 <input class="form-control flex-auto mr-3 linejump-input js-jump-to-line-field" type="text" placeholder="Jump to line&hellip;" aria-label="Jump to line" autofocus>
2170 <button type="submit" class="btn" data-close-dialog>Go</button>
2171 </form> </details-dialog>
2172 </details>
2173
2174
2175
2176 </div>
2177 <div class="modal-backdrop js-touch-events"></div>
2178 </div>
2179
2180 </main>
2181 </div>
2182
2183
2184 </div>
2185
2186
2187 <div class="footer container-lg width-full p-responsive" role="contentinfo">
2188 <div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
2189 <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
2190 <li class="mr-3 mr-lg-0">&copy; 2019 <span title="0.38259s from unicorn-7478f9985c-skxnd">GitHub</span>, Inc.</li>
2191 <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
2192 <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
2193 <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
2194 <li class="mr-3 mr-lg-0"><a href="https://githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
2195 <li><a data-ga-click="Footer, go to help, text:help" href="https://help.github.com">Help</a></li>
2196 </ul>
2197
2198 <a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com">
2199 <svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg>
2200 </a>
2201 <ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
2202 <li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
2203 <li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
2204 <li class="mr-3 mr-lg-0"><a href="https://developer.github.com" data-ga-click="Footer, go to api, text:api">API</a></li>
2205 <li class="mr-3 mr-lg-0"><a href="https://training.github.com" data-ga-click="Footer, go to training, text:training">Training</a></li>
2206 <li class="mr-3 mr-lg-0"><a href="https://github.blog" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
2207 <li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
2208
2209 </ul>
2210 </div>
2211 <div class="d-flex flex-justify-center pb-6">
2212 <span class="f6 text-gray-light"></span>
2213 </div>
2214 </div>
2215
2216
2217
2218 <div id="ajax-error-message" class="ajax-error-message flash flash-error">
2219 <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
2220 <button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
2221 <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
2222 </button>
2223 You can’t perform that action at this time.
2224 </div>
2225
2226
2227 <script crossorigin="anonymous" integrity="sha512-EPrD+nddbyhpiLL8l3M8VfJpZr4J2EWQLaPXZ+6A3VDJKzS5HeZ3dkMVieHSdvIPHsMbWPyVlY42SWKoS4XTfA==" type="application/javascript" src="https://github.githubassets.com/assets/compat-bootstrap-831f12d4.js"></script>
2228 <script crossorigin="anonymous" integrity="sha512-oFBEYscCdWEyvUQehaYyaCSiKtIN4UvpfFHNpIXLUTSQ35JcacPNj86R8fgJfI1e7BOjbLZPTv1nJg3TECiMLw==" type="application/javascript" src="https://github.githubassets.com/assets/frameworks-7af24171.js"></script>
2229
2230 <script crossorigin="anonymous" async="async" integrity="sha512-b9BDH7EZq1yaR2fUH08I378zVkToScLiQ//L0gdyPviliuwpWiVFkB8uW0K8zZszdeLeBpib7wGBLkPiIFgyHg==" type="application/javascript" src="https://github.githubassets.com/assets/github-bootstrap-2a8c2b54.js"></script>
2231
2232
2233
2234 <div class="js-stale-session-flash stale-session-flash flash flash-warn flash-banner" hidden
2235 >
2236 <svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"/></svg>
2237 <span class="signed-in-tab-flash">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
2238 <span class="signed-out-tab-flash">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
2239 </div>
2240 <template id="site-details-dialog">
2241 <details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open>
2242 <summary role="button" aria-label="Close dialog"></summary>
2243 <details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
2244 <button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog>
2245 <svg class="octicon octicon-x" viewBox="0 0 12 16" version="1.1" width="12" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.48 8l3.75 3.75-1.48 1.48L6 9.48l-3.75 3.75-1.48-1.48L4.52 8 .77 4.25l1.48-1.48L6 6.52l3.75-3.75 1.48 1.48L7.48 8z"/></svg>
2246 </button>
2247 <div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
2248 </details-dialog>
2249 </details>
2250 </template>
2251
2252 <div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
2253 <div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
2254 </div>
2255 </div>
2256
2257 <div aria-live="polite" class="js-global-screen-reader-notice sr-only"></div>
2258
2259 </body>
2260 </html>
2261