FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
pythonPrograms/compareDoc.py at master · marcsze/pythonPrograms · GitHub
marcsze
/
pythonPrograms
Public
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Issues
0
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
pythonPrograms
/
compareDoc.py
Copy path
More file actions
More file actions
Latest commit
History
History
History
83 lines (70 loc) · 2.75 KB
Breadcrumbs
pythonPrograms
/
compareDoc.py
Copy path
File metadata and controls
83 lines (70 loc) · 2.75 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#! python
# New program to compare or find samples from two different files and output a
# 3 columns of information on the data of samples that are in both files. Uses
# certain convertToList.py programs to edit the existing text file to make it more
# amenable for downstream use. The three columnas that are outputed are as follows
# sequencingID, GroupID, file found in.
# An example of how to use this program is below:
## python compareDoc.py samplesToMatch.txt "FD" sample.txt -t output.txt
## samplesToMatch.txt is the file containing samples you want to check
## "FD" can be any term but this is the pattern you are selecting out for in samplesToMatch.txt
## sample.txt is the file you are searching for samples in
## -t moniker "t" if this is the first file you have searched
## output.txt is the name of the ouput file
# Read in necessary programs and functions
import
sys
from
convertToList
import
readData
,
identifySamples
# Read in a Command arguments for the program
# Input other instructions from here
def
commandLine
():
commands
=
sys
.
argv
textToConvert
=
commands
[
1
]
pattern
=
commands
[
2
]
mappingFile
=
commands
[
3
]
start
=
commands
[
4
]
outputfile
=
commands
[
5
]
return
textToConvert
,
pattern
,
mappingFile
,
start
,
outputfile
# Read in test data as a dictionary to modify file as needed
def
readTestFile
(
mappingFile
,
pattern
):
data
=
open
(
mappingFile
,
'r'
)
testDict
=
{}
x
=
0
for
line
in
data
:
if
x
!=
0
:
sampleID
,
barcode
,
linker
,
group
=
line
.
split
(
"
\t
"
)
if
pattern
in
group
:
testDict
[
group
.
strip
(
'
\n
'
)]
=
sampleID
x
=
x
+
1
return
testDict
# Make the comparison between the data and test data
def
compareData
(
dataList
,
testDict
):
noMatchList
=
[]
YESMatchDict
=
{}
for
i
,
group
in
enumerate
(
dataList
):
try
:
sample
=
testDict
[
group
]
YESMatchDict
[
group
]
=
sample
except
KeyError
:
noMatchList
.
append
(
group
)
return
YESMatchDict
,
noMatchList
# This function will output a tab-delimited text file of the samples
def
saveFindings
(
YESMatchDict
,
mappingFile
,
start
,
outputfile
):
#change to 'a' for appending to file rather than write (w)
outfile
=
open
(
outputfile
,
'a'
)
if
"t"
in
start
:
print
(
"{0}
\t
{1}
\t
{2}"
.
format
(
"SequencingID"
,
"SampleID"
,
"MapFile"
),
end
=
'
\n
'
,
file
=
outfile
)
for
i
in
YESMatchDict
:
sample
=
YESMatchDict
[
i
]
print
(
"{0}
\t
{1}
\t
{2}"
.
format
(
sample
,
i
,
mappingFile
),
end
=
'
\n
'
,
file
=
outfile
)
outfile
.
close
()
# Run the overall program
def
main
():
textToConvert
,
pattern
,
mappingFile
,
start
,
outputfile
=
commandLine
()
dataList
=
readData
(
textToConvert
)
goodData
=
identifySamples
(
dataList
,
pattern
)
testDict
=
readTestFile
(
mappingFile
,
pattern
)
YESMatchDict
,
noMatchList
=
compareData
(
dataList
,
testDict
)
saveFindings
(
YESMatchDict
,
mappingFile
,
start
,
outputfile
)
if
__name__
==
'__main__'
:
main
()
Back
|
FazBrowse Home
|
New Git URL