-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrfinder.bat
133 lines (110 loc) · 3.86 KB
/
rfinder.bat
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
@echo off
:: repeat_finder starten mit Angabe der Xmere und der FASTA-Sequenz
:: Syntax: rfinder.bat [FASTA-Datei] [Zahl(Min-Xmer)] [Zahl(Max-Xmer)] [Treffer] [Sortiern, w=Wahrscheinlichkeit, a=Anzahl)]
title Repeat-finder Batch
echo.
echo *** Repeat-finder Batch ***
echo.
::Variablen setzen
set _arbeitsweg_=c:\Dienst\bin
set wprompt=%_arbeitsweg_%\wprompt.exe
set winput=%_arbeitsweg_%\winput.exe
set msgbox=%_arbeitsweg_%\msgbox.exe
::set rfinder=D:\Data\Perl\NRC_Institute_for_Biological_Sciences\repeat_finder\repeat_finder.pl
set rfinder=C:\Dienst\perl\repeat_finder\repeat_finder.pl
set editor="C:\Program Files (x86)\EditPad\EditPad.exe"
:: Abbruch ohne Eingabedatei
if "x%1"=="x" goto datei-fehlt
:: auf richtige Dateiendung testen
echo Dateiendung: %~x1
::pause
if "%~x1"==".fasta" goto :clean_fasta
if "%~x1"==".fas" goto :clean_fasta
if "%~x1"==".nt" goto :clean_fasta
goto :kein-fasta
:clean_fasta
%wprompt% "Warning" "The FASTA sequence file must be clean!" Ok 1:3
if %errorlevel% == 2 goto :Ende
set datei=%1
set vorname=%~n1
set weg=%~dp1
:min
set min=%2
if "%min%"=="" call :min-eingabe
if "%min%"=="" goto :min
:max
set max=%3
if "%max%"=="" call :max-eingabe
if %max% GEQ %min% (
goto nach-max
) else (
%wprompt% "Error" "The max value is to low, must be bigger than or equal to %min%!" Ok x & goto :max
)
:nach-max
:treffer
set treffer=%4
if "%4"=="" call :treffer-eingabe
if "%treffer%"=="" goto :treffer
:sortierung
set sort=
set sortierung=over-represented
:: Sort by number of hits = -S
if "%5"=="h" set sort=-S
if "%5"=="" call :sort-eingabe
if "%sort%"=="-S" set sortierung=hits
:: Ausgabe der Eingabeparameter
echo Weg: %weg%
echo FASTA-Eingabedatei: %datei%
echo Ausgabedatei: %~n1%.rfXmer
echo Min-Xmer: %min%
echo Max-Xmer: %max%
echo Hits: %treffer%
echo Sort: %sortierung%
%wprompt% "Ausgabe" "Min=%min% bp^Max=%max% bp^Hits=%treffer%^Sort=%sortierung%^Repeats in der Datei %datei%" Ok 1:4
:: Program auf rufen x mal von min bis max
echo --- Zyklus ---
echo --------------------------------------------------
:: Variablen 1 2 3 4 5
for /L %%x in (%min%,+1,%max%) do call :rf-start %%x %datei% %weg%%~n1.rfXmer %treffer% %sort%
:: Ergebnissdatei mit Editor öffnen
start "Editor" /b %editor% "%weg%\%~n1%.rfXmer"
goto Ende
:Ende
goto :eof
:: **********************************************************************************
:: Unterprogramme
:rf-start
echo.
echo Piped sequence file: %2
echo Ausgabedatei: %3%
echo %1-mer:
C:\Perl64\bin\perl.exe %rfinder% %5 -n%1 -r%4 %2 >> %3%
echo --------------------------------------------------
goto :eof
:min-eingabe
%winput% "set min=$input" "Minimale Repeatlaenge (bp)" /num > %tmp%\rfindertemp.bat
if not errorlevel 1 call %tmp%\rfindertemp.bat
if "%min%"=="" goto :min-eingabe
goto :eof
:max-eingabe
%winput% "set max=$input" "Maximale Repeatlaenge (bp)" /num > %tmp%\rfindertemp.bat
if not errorlevel 1 call %tmp%\rfindertemp.bat
if "%max%"=="" goto :max-eingabe
goto :eof
:treffer-eingabe
%winput% "set treffer=$input" "Maximale Treffermenge (Anzahl)" /num > %tmp%\rfindertemp.bat
if not errorlevel 1 call %tmp%\rfindertemp.bat
goto:eof
:sort-eingabe
%wprompt% "Ausgabeformat" "Ausgabe nach Trefferanzahl sortieren?^(Ansonsten wird sortiert nach 'over-representation')" YesNo 2 ?
if not errorlevel 2 set sort=-S
goto:eof
:datei-fehlt
echo Dateiname fehlt!
echo Syntax: rfinder.bat [FASTA-Datei] [Zahl(Min-Xmer)] [Zahl(Max-Xmer)] [Zahl(Anzahl Treffer)]
start "MsbBox" /b %msgbox% "Syntax: rfinder.bat [FASTA-Datei] [Zahl(Min-Xmer)] [Zahl(Max-Xmer) [Zahl(Anzahl Treffer)]" "Dateiname fehlt" 2 1
goto Ende
:kein-fasta
echo Die Datei hat keine FASTA-Dateiendung!
%msgbox% "Die Datei hat keine FASTA-Dateiendung!" "Warning" 2 1 5
goto Ende