February 12th, 2008

Мои свободно раздаваемые программы

Переход по щелчкуВ верхнее тематическое оглавление
 Переход по щелчку Тематическое оглавление (Учебно-методическое (что там у компьютера внутри и как с ним бороться))
 Переход по щелчку предыдущее по теме…………………………………  Переход по щелчку следующее по теме
 Переход по щелчку предыдущее по другим темам……………  Переход по щелчку следующее по другим темам


Данный пост имеет статус постоянно обновляемого.


Этот пост предназначен для описания тех моих программ, которые я (в дальнейшем именуемый «аффтар») свободно раздаю. Тем, кто ими пользуется, имеет смысл сюда периодически заглядывать, так как здесь будет выкладываться также информация о найденных и исправленных ошибках и новые версии.

Все эти программы защищены копилевтом. Это означает, что их можно свободно скачивать, устанавливать, использовать в некоммерческих и коммерческих целях без дополнительного разрешения или уведомления аффтара. Единственное, против чего аффтар категорически возражает – против того, чтобы кто-то к имеющимся у аффтара ошибкам добавлял свои и сваливал это на аффтара. Поэтому программы распространяются в виде готовых дистрибутивов без исходного кода.

С другой стороны, никаких гарантий правильности расчетов аффтар не дает. При этом аффтар гарантирует, что:
а) специально никаких ошибок он не вносит;
б) в случае обнаружения ляпов аффтар обязуется и торжественно клянется исправить их и выложить правленые версии сразу, как только у него до этого дойдут руки.

Пока предполагается выложить несколько программок статистического анализа (те небольшие куски, которые неудобно делать в стандартных программах статобработки или широко распространенными средствами типа Excel, например, расчет доверительных границ для наблюдаемых частот) и автоматизированной обработки изображений.

В самой первой версии поста никаких программ нет не из-за зловредности аффтара, а просто из-за того, что в распространяемые дистрибутивы желательно вставить ссылку на адрес этого поста.

Добавление. Программа картографирования: http://uborshizzza.livejournal.com/872659.html


1. ПРОГРАММА ПОЛУАВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ МЕДИЦИНСКИХ ИЗОБРАЖЕНИЙ.

НАЗНАЧЕНИЕ. В современной медицине, равно как и в многих областях, достаточно интенсивно работают с оцифрованными изображениями объектов, срезов и т.д., которые далее используют для статистической обработки.
Предлагаемая программа позволяет:
А) на взятом изображении отметить некоторые характерные точки (или пары точек) и сохранить их в файле в формате, позволяющем легко использовать их для дальнейшей стат. обработки;
Б) провести статобработку отмеченных объектов (точек и пар точек) с выявлением их геометрических характеристик. При этом рассчитываются показатели, которые в стандартных стат. пакетах отсутствуют.

ГДЕ СКАЧАТЬ И КАК ПОСТАВИТЬ. Зараренный дистрибутив находится по адресу http://med-informatika.narod.ru/setupraz.rar . После скачивания архива его следует разархивировать, а потом из получившегося набора файлов запустить setup.exe. Выбор директории для установки программы несущественен. После установки в меню кнопки «ПУСК» в группе «Все программы» должна появиться строка RazmPro. Щелчок мышью по ней запускает программу.

ИСХОДНЫЕ ДАННЫЕ. Программа работает с однотонными изображениями (оттенки серого). В том случае, если исходное изображение цветное, нужно его перевести в серое.
Самый простой способ сделать это – открыть файл с исходным изображением в стандартной программе Paint и сохранить его под другим именем в формате «bmp – оттенки серого». Более культурный способ преобразования – делать это в Фотошопе или другом продвинутом редакторе. В этом случае будет возможность выбрать один из трех базовых цветов (красного, синего или зеленого) или задать нужную их пропорцию. Позволяет обрабатывать прямоугольные изображения размером до 706 на 516 точек – фрагменты большего размера обрезаются справа и снизу.

Более точно. Данная программа, в отличие от следующих более интеллектуальных программ, малочувствительна к цвету изображений. Все, что может быть при работе с цветными изображениями – некорректное определение размера размещенного фрагмента.

СИСТЕМНЫЕ ТРЕБОВАНИЯ. Дистрибутив – около полутора мегабайт, при установке занимает еще примерно столько же. Работает под актуальными версиями Windows. Рассчитана на монитор с разрешением 800 на 600 точек, при большем разрешении часть лишняя экрана использоваться не будет.

РАБОТА С ПРОГРАММОЙ. Сеанс работы состоит из 3 частей: загрузка фрагмента, разметка фрагмента и обработка отмеченных опорных точек.

Для загрузки фрагмента нужно в любом графическом редакторе открыть подготовленное изображение, выделить на нем прямоугольный фрагмент и скопировать его в буфер обмена. Потом переключиться в мою программу и нажать кнопку «ПОЛОЖИТЬ ФРАГМЕНТ»

В режиме ручной разметки изображения нужно щелчком кнопкой мыши по изображению отметить нужные точки. Программа работает в одном из двух режимов:
- выбор единичных точек;
- выбор упорядоченных пар точек.
Если точка или пара точек были выбраны правильно, то нужно нажать кнопку «Взять последнюю точку или пару точек в обработку», и их координаты будут запомнены (но не сохранены). Если Вы неправильно отметили объект, то просто пропустите этот этап и отметьте точку (пару) еще раз.

Выбранные точки обводятся в кружки, запомненные объекты – порядковыми номерами. Если разметка мешает дальнейшей работе, то можно положить фрагмент еще раз – при этом изображение очистится, но запомненные объекты не сбросятся.

Переключение режима работы из одной точки в пару точек производится щелчком по соответствующей радиокнопке. ВНИМАНИЕ! Переключение режима работы одна/две точки сбрасывает все несохраненные данные.

Координаты измеряются в точках экрана (началом координат считается верхний левый угол фрагмента). При движении по изображению текущие координаты курсора мыши показываются в нижней части формы.

По окончании разметки нужно нажать кнопку «Обработай и сохрани в файле». Информация будет добавлена в текстовый файл dump(1).txt (если такой файл не найден, то он будет создан). Файл будет создаваться в той директории, которая на момент запуска считается рабочей. Так как тут возможны варианты, то поищите файл с таким названием стандартными средствами операционной системы.


При обработке результатов в варианте работы с одной точкой в нижней части экрана высвечивается столбиковая диаграмма частотного распределения расстояния между точками, а также ожидаемая диаграмма – какой она была бы при случайном независимом равномерном распределении точек. По ним можно определить, группируются ли точки в некоторые конгломераты или, наоборот «отталкиваются» друг от друга.

При обработке результатов в варианте работы с двумя точками (т.е. отрезками прямых) в нижней части диаграммы высвечивается график средней разности углов отмеченных отрезков в зависимости от расстояния между их серединами. Желтая линия показывает, какова ожидаемая разность в случае случайного независимого равномерного распределения. Например, если весь график дает небольшие значения, то это означает, что все отрезки избирательно ориентированы в одну сторону. Если это снижение более характерно для малых расстояний, то это означает, что совместная ориентация характерна для близкорасположенных объектов.

Все рассчитанные величины, использующиеся при построении таких диаграмм, дописываются в файл dump(1).txt . Туда же дописываются и исходные результаты измерения. Для одноточечных объектов это: номер по порядку, X и Y-координаты точки. Для двухточечных объектов это: номер по порядку, координаты X и Y точек начала и конца, координаты середины отрезка, длина отрезка и направление отрезка в градусах.

Все таблицы такого рода дописываются в файл в виде последовательности чисел с разделителем «точка с запятой». Для их деления по колонкам можно, например, выделить строки и скопировать их в буфер обмена, потом переключиться в Excel, вставить из буфера обмена и, не снимая выделения, дать команду: «Данные/Текст по столбцам». Потом выбрать вариант «с разделителем», нажать на кнопку «далее >», в появившемся списке разделителей добавить «точка с запятой» и нажать кнопку «Готово».

Реальный пример файла протокола:

Начало нового сеанса: 13.02.2008 16:51:38
Начало нового сеанса: 13.02.2008 16:51:55
размер фрагмента в точках: 256 298
ВАРИАНТ ВЫБОРА ОДНОЙ ТОЧКИ: количество точек 12
Выводимые числа - номер по порядку, координата X, координата Y
(точка с нулевыми координатами - в верхнем левом углу)
1 ; 69 ; 67
2 ; 116 ; 44
3 ; 54 ; 120
4 ; 107 ; 95
5 ; 150 ; 67
6 ; 176 ; 31
7 ; 66 ; 151
8 ; 40 ; 87
9 ; 137 ; 158
10 ; 175 ; 131
11 ; 95 ; 205
12 ; 44 ; 165
===========================================================

ДАЛЕЕ РАССЧИТЫВАЕТСЯ ЧАСТОТА РАСПРЕДЕЛЕНИЯ РАССТОЯНИЙ МЕЖДУ ТОЧКАМИ
для нее выводится заготовка для построения гистограммы частот
с шагом гистограммирования в 10
первая колонка таблицы - растояние между отмеченными точками (в пикселях),
округленное до 10
вторая колонка - количество пар, попавших в этот интервал
третья колонка - ожидаемое количество пар при условии равномерного
и независимого распределения
0 ; 0 ; 0,238377932100001
10 ; 0 ; 0,733387955586004
20 ; 0 ; 1,18221392361601
30 ; 2 ; 1,58416854261601
40 ; 4 ; 1,93852279130401
50 ; 6 ; 2,25285963282601
60 ; 6 ; 2,51788808205001
70 ; 6 ; 2,74906941586201
80 ; 4 ; 2,93211225813001
90 ; 7 ; 3,08510599082401
100 ; 3 ; 3,19100916004201
110 ; 8 ; 3,27066671223601
120 ; 6 ; 3,30731239152601
130 ; 2 ; 3,31641799011601
140 ; 5 ; 3,29041302658201
150 ; 3 ; 3,23468682886801
160 ; 2 ; 3,14952274177201
170 ; 0 ; 3,036909704004
180 ; 0 ; 2,898247041162
190 ; 2 ; 2,733237174162
200 ; 0 ; 2,546060649792
210 ; 0 ; 2,334755685306
220 ; 0 ; 2,10264289936799
230 ; 0 ; 1,85285522287799
240 ; 0 ; 1,58104509479399
250 ; 0 ; 1,29808058575798
260 ; 0 ; 1,04101630551598
270 ; 0 ; 0,825030082403981
280 ; 0 ; 0,623622398915981
290 ; 0 ; 0,433778931893979
300 ; 0 ; 0,280329920705987
310 ; 0 ; 0,183687257357991
320 ; 0 ; 0,116704548971994
330 ; 0 ; 7,02101777519957E-02
340 ; 0 ; 3,89469189119971E-02
350 ; 0 ; 1,90803769859982E-02
360 ; 0 ; 7,64831033999903E-03
370 ; 0 ; 2,12452646999959E-03
380 ; 0 ; 2,49814619999906E-04
390 ; 0 ; 9,95873999998467E-07
400 ; 0 ; 0
===========================================================
размер фрагмента в точках: 256 298
ВАРИАНТ ВЫБОРА ДВУХ ТОЧЕК: количество точек 0
размер фрагмента в точках: 256 298
ВАРИАНТ ВЫБОРА ДВУХ ТОЧЕК: количество точек 10
Выводимые числа - номер по порядку, координата X, координата Y
первой точки, координаты X и Y второй точки,
координаты середины отрезка, длина отрезка, угол в градусах
в пределах от -90 до +90 градусов (отмеченные отрезки
считаются ненаправленными, при замене начальной и конечной точки
друг на друга направеление не меняется
нулевой угол у вертикальных линий,
у линий из нижнего левого угла в верхний правый угол положительный,
у линий из вернего левого угла в нижий правый - отрицательный
1 ; 43 ; 73 ; 88 ; 78 ; 66 ; 76 ; 45 ; -84
2 ; 135 ; 42 ; 154 ; 75 ; 144 ; 58 ; 38 ; -30
3 ; 63 ; 108 ; 119 ; 109 ; 91 ; 108 ; 56 ; -89
4 ; 74 ; 175 ; 84 ; 134 ; 79 ; 154 ; 42 ; 14
5 ; 124 ; 200 ; 163 ; 131 ; 144 ; 166 ; 79 ; 29
6 ; 75 ; 227 ; 110 ; 229 ; 92 ; 228 ; 35 ; -87
7 ; 95 ; 41 ; 128 ; 68 ; 112 ; 54 ; 43 ; -51
8 ; 179 ; 167 ; 196 ; 221 ; 188 ; 194 ; 57 ; -17
9 ; 29 ; 153 ; 88 ; 121 ; 58 ; 137 ; 67 ; 62
10 ; 91 ; 187 ; 163 ; 120 ; 127 ; 154 ; 98 ; 47
===========================================================

ДАЛЕЕ РАССЧИТЫВАЕТСЯ СВЯЗЬ РАССТОЯНИЙ МЕЖДУ ЦЕНТРАМИ ЛИНИЙ
И РАЗНОСТЬЮ В ИХ НАПРАВЛЕНИИ
для нее выводится заготовка для построения гистограммы частот
с шагом гистограммирования в 10
первая колонка таблицы - растояние между центрами линий (в пикселях),
округленное до 10
вторая колонка - количество пар, попавших в этот интервал
третья колонка - среднеквадратичное отклонение разницы углов их направлений
0 ; 0 ; 0
10 ; 0 ; 0
20 ; 1 ; 18
30 ; 2 ; 37,0472671056854
40 ; 2 ; 20,8086520466848
50 ; 4 ; 50,55442611681
60 ; 3 ; 38,8844441904472
70 ; 4 ; 44,7967632759332
80 ; 6 ; 65,7482572646099
90 ; 1 ; 33
100 ; 6 ; 65,0691939399898
110 ; 2 ; 62,072538211354
120 ; 6 ; 59,9082632030006
130 ; 1 ; 72
140 ; 2 ; 56,6127194188726
150 ; 1 ; 3
160 ; 1 ; 34
170 ; 1 ; 67
180 ; 2 ; 47,6707457462121
190 ; 0 ; 0
200 ; 0 ; 0
210 ; 0 ; 0
220 ; 0 ; 0
230 ; 0 ; 0
240 ; 0 ; 0
250 ; 0 ; 0
260 ; 0 ; 0
270 ; 0 ; 0
280 ; 0 ; 0
290 ; 0 ; 0
300 ; 0 ; 0
310 ; 0 ; 0
320 ; 0 ; 0
330 ; 0 ; 0
340 ; 0 ; 0
350 ; 0 ; 0
360 ; 0 ; 0
370 ; 0 ; 0
380 ; 0 ; 0
390 ; 0 ; 0
400 ; 0 ; 0
===========================================================



2. ПРОГРАММА РАСЧЕТА ДОВЕРИТЕЛЬНЫХ ГРАНИЦ К ВЫБОРОЧНОЙ ЧАСТОТЕ.

НАЗНАЧЕНИЕ. Если мы фиксируем какие-то события, происходящие с некоторой вероятностью Р, то в процессе наблюдения мы получаем частоту Q. Естественно, за счет случайных флюктуаций вероятность P и частота Q могут несколько различаться. Более точно – с большой вероятностью они будут различаться не слишком сильно, а вероятность их значительного расхождения будет мала. Возьмем некоторую малую вероятность p и посчитаем, в каких пределах могут различаться частота и вероятность, так, что вероятность еще больших различий будет равна p. Полученные оценки различия вероятности и наблюдаемой частоты позволяют сказать, в каких пределах должна быть вероятность.

Еще раз для тех, кто не понял. Нам нужно знать вероятность (истинную частоту) события, а наблюдаем мы только частоту события. С использованием всяких математических фокусов, в частности, биномиального распределения, можно посчитать вероятность отклонения частоты от вероятности и решить задачу.

Пусть, например, у вас из 150 испытуемых умерло 20, то есть летальность составила 13,3%. Тогда для того, чтобы сравнить это с аналогичным показателем из другого источника (то есть выяснить, удается ли Вам более успешно отправить больных на тот свет), нужно взять какую-нибудь маленькую вероятность p (в медицине стандартно берется p=0,05. Как это сложилось и почему этого на самом деле нельзя делать написано в моей книжке. Здесь про это написать не могу – много букав) и посчитать, в каких пределах с этой вероятностью они могут различаться.

К сожалению, в Excel эта процедура не затабулирована, а книжки с таблицами под рукой может не оказаться. Тогда запускаем программку, в окошко «число наблюдений» пишем 150, в окошко «число успехов» пишем 20 и нажимаем (мышкой щелкаем) кнопку «посчитать доверительные границы к частоте». В данном случае получили, что с р=0,05 летальность находится в пределах от 5,71% до 15,96% (окошки с надписями «верхняя граница доверительного интервала к вероятности» и «нижняя…»). Иногда, например, для построения графиков с отложенными погрешностями, желательно знать не границы, а разность между границами и частотой. Чтобы не надрываться, программа считает и это – Окошки «Погрешность +» и «Погрешность -». В данном случае получаем 13,33%+5,97%(-4,29%).

Ответ на вопрос о том, почему в данном случае погрешности + и – получаются разные, тоже достаточно длинен. Но это ПРАВИЛЬНО!

Полученные числа не обязательно переписывать руками. Их (в этих окошках) можно выделить мышкой и скопировать в буфер обмена.

Иногда желательно, чтобы полученные числа писались через десятичную точку, иногда – через десятичную запятую. Чтобы не напрягаться, меняя один символ на другой, программа выдает оба варианта.

Часто получаемые числе выдаются в экспоненциальной форме. Например, 3,14159Е-4 означает 0,000314159.

Величина p по умолчанию равна 0,05. Ее можно менять на другую, только значение в окошке нужно писать через точку.

Для очень больших размеров групп (тысячи и более) программа может ломаться и сообщать о переполнении. Для моей целевой аудитории большие размеры групп не нужны. Если Вам нужно – напишите, и я скажу, что нужно делать (для больших групп можно пользоваться приближенными формулами).

Заархивированный дистрибутив: http://med-informatika.narod.ru/setupbin.zip
Нужно скачать, разархивировать и запустить setup. В процессе установки соглашаться на все


3. ПРОГРАММА РАСЧЕТА ДОВЕРИТЕЛЬНЫХ ГРАНИЦ К ОТНОСИТЕЛЬНОМУ РИСКУ И ОПРЕДЕЛЕНИЯ ДОСТОВЕРНОСТИ РАЗЛИЧИЙ ПРИ ПОМОЩИ КРИТЕРИЯ «ХИ-КВАДРАТ».

Это программа – не моя, зато легально разрешенная и рекомендованная ВОЗ для свободного распространения и использования.

Так как это – не мое, то морального обязательства писать подробную инструкцию у меня нет. Те, кто занимался на аспирантских циклах, с ней разобрался.

Заархивированный дистрибутив: http://med-informatika.narod.ru/statcalc.rar
Нужно скачать и разархивировать в нужную директорию. Программа DOS-овская, инсталляции не требует.



Buy for 60 tokens
Buy promo for minimal price.

Текущая политика (вести из дурдома и российско-украинская дружба)

Переход по щелчкуВ верхнее тематическое оглавление
 Переход по щелчку Тематическое оглавление (Политика)
 Переход по щелчку предыдущее по теме…………………………………  Переход по щелчку следующее по теме
 Переход по щелчку предыдущее по другим темам……………  Переход по щелчку следующее по другим темам

Текущая политика
Вести из дурдома
Российско-украинская дружба: дружеская пикировка с ядерными ракетами и соревнование в маразме


Значительная часть нашей жизни, которая уже вроде бы примелькалась, не может рассматриваться иначе как проявление тяжелого маразма. Однако и на этом привычном фоне бывает, что концентрация идиотизма превышает привычную, и становится невмоготу…

Из вечернего просмотра зомбоящика:
- Украинская Рада – оппозиционные депутаты вторую неделю стоят вокруг трибуны и некого на нее не пускают. Для надежности они испортили систему подсчета результатов голосования, а также надули и запустили в зал заседаний массу воздушных шариков;


Кстати, в Израиле на экскурсии вместе с нами была семья живущих на Украине бойцов идеологического фронта экскурсоводов родом из Сибири. Они очень убежденно рассказывали, что главное и нерушимое достижение суверенной Украины – демократия, и это несравненно более важно всяких пошлых и провокационных вопросов о том, стало ли от разделения страны людям жить лучше. А проявляется эта демократия в свободе, например, в том, что один замминистра (или мер Киева? находятся все варианты) дал министру по носу в прямом эфире.

- Один из депутатов Верховной рады укусил одного из министров за руку. В связи с этим министр заперся в своем кабинете. К нему, правда, для интервью водят журналистов, но, на всякий случай, только по одному;

Боюсь, что тут окружающие просто не поняли всей серьезности происходящего. Похоже, что оппозиционный депутат просто был вурдалаком. Теперь министр требует себе журналистов по одному и, в своем кабинете в отсутствии свидетелей, тоже их кусает.


- на совместной российско-украинской конференции Путин при обсуждении возможного размещения НАТОвских объектов на территории Украины высказался, что ему очень неприятно думать о том, что в ответ на это Россия должна будет увеличить свой ракетно-ядерный потенциал, а также нацелить часть ракет на Украину;

В свете вышеупомянутого нужно добавить, что разрабатываемое новое оружие – баллистические ракеты средней дальности, снабженные разделяющимися боеголовками с осиновыми колами, и направлены они будут исключительно на Раду и другие рассадники вампиризма. Ничего, братья-украинцы, мы не бросим вас один на один в борьбе с нежитью!


- В рамках предвыборных дебатов Жириновский обещал, что если он станет президентом, то всем простит все долги. В том числе и за кредиты, и алиментщикам;

Господа! у кого можно срочно занять максимально крупную сумму до середины весны?

- В рамках тех же дебатов кандидат в президенты России Богданов заявил, что России нужно срочно вступить в НАТО, но только перед этим оттуда нужно исключить США.

В рамках сегодняшнего маразмообзора господин Богданов получает первую премию!



Картинки не мои