Виртуальная машина для работы океанолога на основе Ubuntu 12.04
Задача: обновить виртуальную машину для работы океанолога.
Пришла пора обновить виртуальную машину до нового LTS релиза Ubuntu 12.04. Под катом список установленного софта, инструкция по установке под виндоуз и советы о том как искать и устанавливать недостающие программы.
Следуя принципу «работает, не трогай» я решил, что для софта, доступного из репозиториев убунты я более новые версии устанавливать не буду. Проблемы, которые могут возникнуть у неподготовленного пользователя с установленным вручную софтом, не компенсируются небольшими улучшениями доступными в новых версиях. При этом конечно обидно, что, например, мой любимый IPython notebook будет только версии 0.12, но думаю это решение правильное.
Образ диска лежит здесь. Файл размером 2 Гб, и при скачке через броузер могут возникнуть проблемы, поэтому лучше его скопировать на свой яндекс диск, и он у вас спокойно за ночь скачается. Если яндекс диска у вас нет, то на нём можно зарегистрироваться по моей реферальной ссылке — вам всё равно, а мне дополнительный гигабайт не помешает 🙂 После распаковки размер будет чуть больше 7 гигабайт. Архив bzip2 может быть распакован в виндоуз например программой WinRAR, в линукс командой
Тем, кому дополнительная информация не нужна, могут запомнить нехитрый пароль и пользоваться на здоровье:
User: ocean
Password: ocean
Список установленного софта:
Вручную установлено:
PyNIO 1.4.1 — модуль питона для работы с различными форматами данных, использующимися в океанологии и климатологии. Основные это netCDF и GRIB.
PyNGL 1.4.0 — модуль питона для рисования красивых картинок, в основном, конечно, карт. У меня в блоге про этот модуль есть несколько постов, их все можно найти по этой ссылке.
NCL 6.1.1 — мощнейший скриптовый язык для обработки и визуализации гидрометеорологической информации и результатов моделирования. Знакомство с ним можно начать с этого моего поста.
Ferret 6.84 — интерактивная система визуализации и анализа гидрометеорологической информации. Первые шаги при работе с ней описаны здесь.
PyFerret питоновская обёртка для Ferret, которая позволяет вам обмениваться данными между питоном и ферретом. PyFerret может использоваться и как обычный Ferret, но при этом у него улучшена графика и присутствует много дополнительных статистических функций. Чтобы пользоваться PyFerret в виртуальной машине вам нужно будет подредактировать файл .bashrc, инструкции внутри.
python-seawater 2.0.1 — модуль питона для расчёта свойств морской воды. Доступны как функции расчёта по EOS-80 так и по новой TEOS-10.
pyresample 0.7.13 — модуль питона для удобной интерполяции данных на разные сетки.
PyCDO — питоновская обёртка вокруг cdo (смотри про них ниже), позволяет сравнительно удобно вытаскивать в питон данные рассчитанные cdo.
Установлено из репозиториев:
IPython 0.12.1 и IPython notebook — продвинутый шел питона, который с появлением notebook превращается в полноценную среду для научного анализа и документации результатов. Без него я теперь как без рук. Почитать про него можно тут.
cdo 1.5.3 — операторы для работы с климатическими данными. В основном их используют для того, чтобы проводить стандартные операции над большими объёмами данных. Читаем про них тут.
scipy 0.9.0 — масса полезных в хозяйстве функций, основа всех научно ориентированных вычислений на питоне.
numpy 1.6.1 — модуль питона, который обеспечивает поддержку больших многомерных массивов, от него зависит огромное количество научных модулей для питона, в том числе scipy. Почитать про массивы можно тут.
matplotlib 1.1.1 — модуль питона для отображения данных, то есть графиков различной степени сложности. Стандарт де факто среди учёных пишущих скрипты на питоне.
Basemap 1.0.2 — расширение matplotlib, позволяющие рисовать карты. Для быстрой начальной отрисовки данных на карте зачастую бывает гораздо удобнее громоздкого PyNGL. Плюс эти карты можно сразу встраивать в IPython notebook.
gv 3.7.3 — очень старая, но очень надёжная гляделка .ps и .pdf файлов.
GrADS 2.0 — программа для анализа и визуализации данных. Визуализация на любителя, но программа старая и заслуженная, так что существует масса легаси кода.
ncview 1.93 — простой и удобный просмотрщик netCDF файлов.
ImageMagick — операции с изображениями. Например перевод из одного формата в другой производится просто при помощи convert file.png file.jpg .
build-essential — утилиты, которые вам обязательно потребуются если вы возьмётесь компилировать что ни-будь серьёзное.
gfortran 4.6 — компилятор фортрана, который рано или поздно потребуется любому человеку, работающему в науке, поскольку на фортране написано немыслимое количество научного кода.
Как ставить
Вам понадобится установить VirtualBox (VB). ?ногда у машин созданных более ранними версиями VB бывают проблемы с поздними версиями VB. Так что если у вас возникают проблемы, то попробуйте использовать VirtualBox 4.2.6, на ней у меня всё работало.
?нструкция будет для виндоуз, но естественно этот образ можно поставить и на OS X и на Solaris и на Linux в качестве рабочей системы.
?нструкция в картинках, картинки в основном сами за себя говорят, так что комментировать особо много не буду. Кому хочется воспользоваться вариантом с русским интерфейсом и расширенными комментариями, можно посмотреть на пост про предыдущий выпуск образа.
Поехали. Открываем VB, нажимаем New.
Выбираем сколько памяти будет позволено использовать виртуальной машине. Я поставил гигабайт, при таком объёме памяти машина работает достаточно шустро.
Мы будем использовать существующий образ диска.
Машина создана, образ добавлен, можно запускать (зелёная стрелочка).
Открыться должно что-то вроде этого.
Для полной интеграции с хост системой (в нашем случае Windows) необходимо установить дополнения гостевой OS. Выбираем пункт в меню (последний).
Здесь жмём кнопку Run и вводим пароль: ocean
Для того, чтобы иметь возможность обмениваться данными между системами, вам понадобится расшарить папку (или папки) хост системы. Для этого идём в меню VB Settings >> Shared Folders, нажимаете на Add и добавляете папку, которую хотите расшарить, например называться она будет share. После загружаете гостевую систему и открываете терминал (кто не в курсе — чёрный квадрат, расположенный ближе к низу в панели слева). Там пишем
sudo mount.vboxsf share /home/ocean/share
В процессе у вас попросят пароль, введите ocean. В линуксе прописные и заглавные буквы ОТЛ?ЧАЮТСЯ, обратите на это внимание. В вашей домашней директории должна появиться папка share, которая будет видна и в хост и в гостевой системе. К сожалению при таком варианте вам придётся каждый раз при загрузке виртуальной машины вводить
что надоедает. Для того, чтобы процесс происходил автоматически, нужно немного отредактировать файл /etc/rc.local . Для этого открываем его с правами администратора из терминала:
? добавляем строчку (sudo тут не нужно!)
в место отмеченное стрелочкой (перед строчкой exit 0)
Сохраняем изменения. Теперь при загрузке папка должна будет монтироваться автоматически.
Установка дополнительного софта из репозиториев
Если интересующий вас пакет уже есть в репозиториях Ubuntu, то найти и поставить его не просто, а очень просто. Допустим, мы хотим установить популярный питоновский модуль для статистической обработки данных pandas (своеобразная замена языка R под питон).
?з Software Center
Самый лёгкий способ, это воспользоваться Ubuntu Software Center. Запустить его можно либо набрав в терминале
либо нажав на аналог кнопки «Пуск» со значком убунту в левом верхнем углу и в появившемся окне начать набирать его название (после первых двух букв его иконка появится под текстовым полем). Дальше там всё тривиально — вводим pandas в строку поиска и устанавливаем его кликом мышки. В Software Center есть много чего полезного и установка программ происходит автоматом, и как правило без проблем.
?з терминала
Я обычно устанавливаю программы прямо из терминала, но это требует несколько больше усилий на начальном этапе, но со временем установка получается гораздо быстрее.
Для начала поищем точное название пакета.
надо будет ввести пароль. Получим такой вывод:
python-pandas-lib - low-level implementations and bindings for pandas
Таким образом название пакета у Ubuntu — python-pandas. Давайте его установим
Нужно будет согласиться с тем, что объём данных на вашем диске увеличится на незначительную величину и через несколько мгновений пакет будет установлен.
На этом всё. Комментарии, вопросы и пожелания относительно включения дополнительного софта в следующие выпуски образа оставляйте под этом постом.
А GMT, как же без него?
Для просмотра ps/eps/pdf хорошая штука gsview. Удобна тем, что отображает координаты точки под курсором, что часто надо при редактировании PostScript’. Но, сборка только руками, да ещё и gtk хочет первой версии.
2Michael
Решил обойтись без него 🙂 Жедающие могут поставить командой в терминале
sudo apt-get install gmt
За наводку на gsview спасибо, подумаю, чтобы включить его в следующую версию.
С удивлением для себя не обнаружил gnuplot и MATLAB/IDL/R.
Могу присоветовать Zim для каталогизации справочных материалов и Recoll для поиска по оным (оно ещё и в PDF-файлах ищет, через pdftotext).
По питоновским поделкам у меня вопрос: Николай, а где гарантия того, что весь этот гадюшник будет работать через 5-10 лет? Как и написанный тобой софт для исследований на питоне — а он запустится через пару лет? Пистон, как мы уже видели с переходом 2.4-2.6 и на 3.0 — не фортран, там про обратную совместимость, по ходу дела, не слышали.
>> «gfortran 4.6 — компилятор фортрана, который рано или поздно потребуется любому человеку, работающему в науке»
Лучше бы это убожество 50-х годов ему вообще бы не потребовалось. Поработав с BLAS и LAPACK, написанных на фортране, я хочу только одного: портировать BLAS/LAPACK на Си, с гуманоидным интерфейсом, а этот кошмар на фортране закопать (вместе с их авторами) в одной братской могиле с КОБОЛом. ? цементом залить сверху 🙂
P.S> Да, если ты не заметил — вордпресс выдаёт знаки вопросов кое-где: «�?нформировать меня о новых комментариях». Глобальный и Надёжный Похапэ в полный рост, да 🙂
2virens
1) Если я поставлю туда MATLAB или IDL, то долго этот образ в онлайне не проживёт. R прекрасно ставится из репозиториев.
2)Так и матлабовский код 10 летней давности далеко не всегда работает. Проблема обратной совместимости всегда была и будет, особенно если какой то инструмент активно развивается. Это не повод сидеть на устаревших технологиях или платить огромные деньги на жуткого монстра в которого превратился матлаб.
3) Ну видишь, тебе ж потребовалось, значит я прав 🙂 Лучше бы, конечно, не потребовалось, но, как я уже не раз говорил, на фортране написано огромное количество легаси кода, например практически все модели глобальной циркуляции. Никто переписывать их на Си в ближайшие лет сто не будет, уж поверь мне.
4) Я заметил, не знаю как с этой хренью бороться. Это по ходу что-то с базой данных а не с php.
У LAPACK же есть сишный интерфейс, зачем работать с фортраном?
Образ можно торрентом раздавать, тогда он проживёт значительно дольше, даже с матлабом внутри )
>> 2)Так и матлабовский код 10 летней давности далеко не всегда работает.
У Матлаба с обратной совместимостью дела намного лучше питона. Хуже, чем у фотрана (чтоб ему гореть синим пламенем), но гвидов ван россумов и других великовозрастных пионеров в MathWorks немного. Вопрос о том, что будут делать питонисты, когда Гвидо в очередной раз выкатит несовместимый пистон, остаётся открытым.
>> Это не повод … платить огромные деньги на жуткого монстра в которого превратился матлаб.
Николай, довод в пользу Маталаба в том, что он удобен, продуман и содержит всё, что нужно. Там идеология «батарейки включены», и никакого ёпенсорца с его «вам надо — конпеляйте из сырцов, если сможете». В Матлаб входит BLAS и LAPACK — тебе не надо собирать это по Тайге.
>> 3) Ну видишь, тебе ж потребовалось, значит я прав 🙂
Да я готов был откусить себе ногу, когда добрался до LAPACK. ?нтерфейс к нему писали клиенты сумасшедшего дома.
>> на фортране написано огромное количество легаси кода
В этом его проклятие: BLAS и LAPACK написано на ём же. Код там просто фееричный: куча GOTO 20 и прочего. Но работает быстро, да.
@Michael on февраля 16, 2013
>> У LAPACK же есть сишный интерфейс, зачем работать с фортраном?
А ты его видел?! Функция для QR decomposition сваливает матрицы Q и R в одну, и попробуй оттуда их вытащи.
>> Образ можно торрентом раздавать … даже с матлабом внутри )
В приличных странах за такое отрывают гениталии 🙂 А я про матлаб погорячился, посыпаю голову пеплом.
Да, ещё вот что. Мне тут соседи нахваливают язык Yorick за его дикую скорость. Говорят, визуализация данных там летает. Но это ёпенсорц в худшем виде: полтора разработчика, документации с гулькин хвост, туториалов нет.
? в комплект хорошо включить Zim. Он классный: это каталогизатор справочных данных. А recoll можно использовать для полнотекстового поиска по статьям.
>> А ты его видел?! Функция для QR decomposition сваливает матрицы Q и R в одну, и попробуй оттуда их вытащи.
Так на Фортране точно то же происходит, там даже специальные функции есть для их разделения. Наследство времён, когда компьютеры были большие, а память — маленькая.
Вообще у LAPACK просто идеология такая — удобно должно быть машине, а не человеку. Что правильно для задач, требующих действительно большого счёта.
>> В приличных странах за такое отрывают гениталии
Где приличные страны и где мы 🙂
К вопросу о recoll, а кто что использует в качестве библиотечного катализатора?
2virens
Я, признаться, удивлён такому отношению к «ёпенсорцу» у человека, блог которого практически целиком посвящён использованию и приручению этого самого «ёпенсорца» 🙂 По пунктам:
>>У Матлаба с обратной совместимостью дела намного лучше питона.
Лучше или хуже какая разница, главное, что они есть. Мои впечатления об этой проблеме в матлабе основаны на истории с поддержкой netCDF. Компания M*s решила, что нативная поддержка одного из самых популярных форматов в науках о Земле им нафиг не нужна, и на вайн ресёрчеров отвечала, чтобы они сидели, не вякали и радовались тому, что есть. Какая-то добрая душа сделала поддержку netCDF через mex, но при этом почти для каждой новой версии матлаба нужна была своя версия пакета. Благо у нас отличная служба поддержки и ставила на работе это всё самостоятельно, а дома приходилось по пол дня танцевать с бубном. В 2008(!) году M*s до нас сирых и убогих снизошли, и таки включили поддержку netCDF.
При этом я за пять лет ни разу не столкнулся с проблемами обратной совместимости у питона. В теории у питона, может всё и ужасно, но я пока не заметил.
>>Николай, довод в пользу Маталаба в том, что он удобен, продуман и содержит всё, что нужно.
Всё что нужно тебе 🙂 А я не против Матлаба, я вообще за то, чтобы цвели сто цветов. У меня был период экстремизма — «только линукс, только хардкор». Но потом пришло понимание, что я не программист и не системный администратор, а учёный. Мне надо, чтобы была решена определённая задача, и если какой то инструмент сможет решить её быстро и без проблем, я его использую.
Если Матлаб тормозит при расчёте EOF, я пойду и сделаю его в NCL. Если мне нужно быстро повертеть данные, я открою их в Ferret. Если я нашёл матлабовский скрипт, который решает мою задачу, я его модифицирую под себя и запущу на матлабе. Если мне надо сделать презентацию, или отредактировать присланный Word файл, я не буду мучать себя libre Office, или не дай бог бимером, а пойду в винду и сделаю, и будет быстро и красиво.
У меня кроме программирования и администрирования есть гораздо более важные и геморойные задачи, я лучше потрачу время на прочтение пары статей, чем на компиляцию кода (этим я уже почти никогда не занимаюсь, всё ставлю из пакетов), или настройку веб камеры под линукс.
?деи «переписать всё на питоне» у меня нет, мне просто быстрее и удобней решать на нём свои задачи. Все ли их можно было бы решить в Матлабе? Нет не все, на сервер работающий с суперкомпьютером никто тебе Матлаб не поставит, а питон пожалуйста. Но это не главный аргумент, главное, что МНЕ удобнее и быстрее добиваться результата на питоне. У нас есть люди, которые на фортране пишут за день такое, на что у меня месяц бы ушёл, а может и год, и у меня нет мысли приходить к ним, и рассказывать о том как ужасен фортран — для них он идеален, и интерфейс к лапаку для них нормален и привычен, они с ним уже тридцать лет живут.
Здравствуйте!
Скажите пожалуйста, образ для установки на жесткий диск у Вас остался?
Докручу wine на который поставлю MS Office, и все будет чудесно 🙂
2Андрей
Ответил вам на почту.
https://lololololomeka.com
Like!! I blog frequently and I really thank you for your content. The article has truly peaked my interest.
casino velden gutschein abgelaufen , roulette ohne einzahlung spielen — jurassic park online slot erfahrungen : automaten spiele kostenlos ohne anmeldung .
casino heroes ohne einzahlung , dasistcasino 33 freispiele ohne einzahlung — europa casino zahlt nicht aus : spiele streamen geld verdienen .
casino merkur spielen , kosten spiele geld — online casino sichere auszahlung : leovegas casino bonus auszahlen .
hello casino testbericht aus echten erfahrungen , online casino 2020 echtgeld — neue spielautomaten erfahrungen : casino 200 freispiele .
slotilda casino erfahrungen , system bei spielautomaten — novomatic spielautomaten wien : online casino ohne download spiele .
gokkasten nl gratis , gratis casino spellen — casino veel geld : klassieke gokkasten spelen .
fruitautomaat in english , gokkasten fruitautomaten nederlandse — fiod speelautomaten : nieuwe bonus code online casino .
uitbetaling rizk casino , casino zonder storting bonus — online gokkasten review : holland casino eindhoven kleding .
van der valk bonaire casino , opening holland casino amsterdam — sportweddenschappen bonus zonder storting : holland casino utrecht nieuwe locatie .
manier van spelen in casino , gratis welkomstbonus gokkasten — online casino free spins zonder storting : kosten speelautomaat .
gokken spelletjes gratis , kerstmenu holland casino amsterdam — gokautomaten gratis spelen : golden tiger casino betrouwbaar .
gokkasten gratis fruitmachines , fruitautomaat gratis — casino app echtgeld : nieuwe casino geopend .
online casino met gratis welkomstbonus zonder storting , legale belgische online casinos — wer hat schon mal im online casino gewonnen : holland casino scheveningen speelautomaten .
snel geld verdienen met casino , fruitautomaat reel cash — gratis gokkasten voor mobiel : try out pakket holland casino scheveningen .
casino met paypal , casino geld witwassen — holland casino amsterdam noord : meeste kans op winnen online casino .
internet casino nederland , traarbach speelautomaten group — gokkasten spelen op tablet : vacature monteur speelautomaten .
gokkasten spelen betalen met telefoon , nieuwe kasten holland casino — holland casino rotterdam gratis parkeren : zodiac casino mobiel .
online gokkast strategie , gratis slots gokkasten — belasting op speelautomaten : gokkasten gratis gokken .
betalen je belasting over casino geld , online casino elv lastschrift — beste casino in holland : best online legaal casino .
I do not even know how I finished up right here, howeverr I
thought thiks submit was good. I do not understand who yyou
might be bbut definitely you’re going tto a famous blogger
should you aren’t already. Cheers!
Feeel free to surf too my webpage: canl? casino
sars coronavirus future studies , coronavirus nl 63 — rota coronavirus : coronavirus cat carrier .
human coronavirus bacteria , dappv vx with coronavirus — coronavirus respiratory secretions : how.is cat coronavirus spread .
feline coronavirus blood test , saudia ariabia repsonse to the middle east respiratory syndrome coronavirus — coronavirus bats : does coronavirus cause liver failure .
coronavirus gatto , coronavirus symptoms in adults — can cat be tested for coronavirus : what is coronavirus vaccine for dogs .
mechanism of transmission of coronavirus , is coronavirus a cold — coronavirus ribosomal frameshift for orf1a and orf1b expressions : coronavirus bioweapon .
coronavirus detection in calf , vaccine for mers coronavirus — coronavirus geometry : coronavirus in humans laboratory .
cat with coronavirus , murine coronavirus with an extended host range uses heparan sulfate as anentry receptor — coronavirus bij honden : coronavirus and shelter medicine .
how many cats have coronavirus , equine coronavirus at eastern states — human sars coronavirus capsid type : early events during human coronavirus oc43 entry to the cell .
coronavirus nl63 isolation precautions , coronavirus horses research — cryo-electron microscopy structure of a coronavirus spike glycoprotein trimer : coronavirus lifespan .
coronavirus oc43/hku1 , mers coronavirus cdc — feline coronavirus titer : the genome sequence of the sars-associated coronavirus .
coronavirus transcription intermediate , how to kill coronavirus — coronavirus causes what : what to do if cat has coronavirus .
replication of severe acute respiratory syndrome coronavirus , tulasendlesssummer coronavirus — sars like ncov coronavirus : receptor-induced conformational changes of murine coronavirus spike protein .
coronavirus education public health interventions , feline coronavirus real time pcr — middle east respiratory syndrome coronavirus (mers-cov) : feline infectious coronavirus .
turkey coronavirus and salmonella , sars coronavirus cell — does catteries have coronavirus : coronavirus spike .
where do dogs get coronavirus , 229e coronavirus — what shot is given to stop coronavirus : about feline coronavirus .
parvovirus o coronavirus perros , symptoms of the coronavirus in cats — variant of the coronavirus that can lead to respiratory failure and death : coronavirus sysmptoms .
coronavirus papain-like protease , sars-assoziiertes coronavirus — coronavirus specimen : bovine coronavirus vaccine .
coronavirus plaque , daiannette lopez bovine coronavirus — what is the treatments for the coronavirus in both humans and animals : coronavirus biology .
group 2 coronavirus in dogs , coronavirus vs influenza — murine coronavirus with an extended host range uses heparan sulfate as anentry receptor : should i vaccinate puppy coronavirus .
coronavirus kissa , coronavirus rat — coronavirus capsule : coronavirus extinction .
receptor and viral determinants of sars-coronavirus adaptation to human ace2. , sars associated coronavirus pneumonia — coronavirus in chicago : coronavirus reverse transcription .
receptor-induced conformational changes of murine coronavirus spike protein , is coronavirus contagious contact precautions — signs of coronavirus : coronavirus lifespan .
canine coronavirus vaccine schedule , recent coronavirus outbreak — transmissible gastroenteritis coronavirus : coronavirus titer 1 100 .
rsv coronavirus , coronavirus species affected — coronavirus que produce : coronavirus survivor recounts fear .
canine coronavirus (cov) vaccine infectious and noninfectious vaccine , coronavirus or adenovirus — coronavirus symptoms in adults : sars like ncov coronavirus .
canine enteric coronavirus vaccine , human coronavirus oc43 pcr kit — coronavirus airborne : coronavirus cat test .
does my puppy need a coronavirus vaccine , is canine coronavirus a threat in san bernardino — is it corona virus or coronavirus : classification of coronavirus .
coronavirus wiki , the elderly and coronavirus — sars coronavirus pc4-241 host : dosage for a puppy for coronavirus vaccine .
coronavirus 0c43 , spike protein coronavirus — coronavirus infection in infants : how long are you contagious with common human coronavirus .
coronavirus on microscope , bovine coronavirus host — sars coronavirus replication : viral plaques coronavirus .
coronavirus causing pneumonia , silver nanoparticles coronavirus — coronavirus conformational change significance : can humans catch coronavirus from rabbits .
bat coronavirus strain hku5 , feline coronavirus and catteries — canine coronavirus (cov) vaccine infectious and noninfectious vaccine : feline coronavirus genetics .
coronavirus nested mrna , coronavirus nonstructural protein 3 — coronavirus upper respiratory tract : killer bug — sars coronavirus .
how to kill coronavirus in environment bovine , how.is coronavirus spread — coronavirus foot and mouth : effects of coronavirus .
coronavirus in babies , is coronavirus deadly in dogs — coronavirus caliciviradae : does my puppy have coronavirus .
coronavirus isolation precautions , how is coronavirus transmitted — pcr panel positive for coronavirus in l6 3 : coronavirus precautions .
how to fight coronavirus , coronavirus upper respiratory tract — 1ers symptomes coronavirus chat : coronavirus vaccine for puppies for sale .
coronavirus red cheeks , sars coronavirus carrier state — fip coronavirus cats : coronavirus protease entry table .
coronavirus 1 , sexton et al 2016 murine coronavirus — is coronavirus double stranded : feline enteric coronavirus (fecv) .
how does does coronavirus last in cats , high coronavirus titers in cats — coronavirus in dog : puppy bilateral multifocal coalescing renal hemorrhage necrosis coronavirus .
coronavirus diagram , canine coronavirus respiratory — mers-cov (middle east respiratory syndrome coronavirus) : coronavirus nl63 isolation .
Superior pyridoxine with generic viagra Most adjuvant sildenafil generic viagra super active Whereas online look at sales are at worst a pernicious
http://viagrasupera.com/
Hydrochlorothiazide Congestive Heart Failure cialis 20mg for sale Amoxicillin Dizziness Buy Cialis Viagra For Sale In The Uk
viagra buy knowledge base [url=http://genviagrafx.com/#]cheap viagra
for sale in canada[/url] viagra side effects viagra online with no script in usa — viagra
20mg side effects all times are utc canadian pharmacy viagra
Trouver Levitra Pas Cher cialis 5mg best price Forum Levitra buy cialis 5mg Cialis 20mg No 12
generic viagra tadalafil low prices illiterate viagra spam
viagra generic reviews mark forums read cheap generic viagra fast delivery — viagra 10 mg 4 tablet
knowledge base generic viagra online
hazard of levitra [url=http://levitramdx.com/#]levitra 20 mg[/url]
levitra tadalafil for women board.cgi?id= levitra coupon — prices levitra does levitra work the first time submit.php
you are truly a good webmaster. The web site loading speed is amazing.
It seems that you are doing any unique trick. Moreover,
The contents are masterwork. you’ve done a excellent job on this topic!
coronavirus under microscope
http://chloroquine-treatmentforcoronavirus.com/# — coronavirus antiviral drugs
coronavirus how long does it last
chloroquine sars
— coronavirus how to say
coronavirus john hopkins
viagra reviews user avatars [url=http://viagenusa.com/#]lowest price for generic viagra[/url] viagra 5mg indian mail-order viagra for sale generic — levitra viagra
vs viagra comment.php comprar viagra
coronavirus 4 month old
http://chloroquine-treatmentforcoronavirus.com/# — chloroquine phosphate
coronavirus 229e pcr
chloroquine phosphate 250mg
— coronavirus in chicago
coronavirus 10000 dead
coronavirus kill count
http://chloroquine-treatmentforcoronavirus.com/# — chloroquine drug
3 coronavirus in usa
chloroquine for coronavirus
— coronavirus virus in us
coronavirus 30
coronavirus 70 alcohol
http://chloroquine-treatmentforcoronavirus.com/# — chloroquine 250 mg
coronavirus tracker
chloroquine phosphate online
— coronavirus 9gag
coronavirus prevention tips
coronavirus 70 alcohol
http://chloroquine-treatmentforcoronavirus.com/# — coronavirus antiviral drugs
coronavirus usa death
chloroquine otc
— coronavirus xiamen airlines
coronavirus 75 alcohol
coronavirus mutate
http://chloroquine-treatmentforcoronavirus.com/# — chloroquine phosphate
coronavirus 5 million
chloroquine sars
— coronavirus outbreak china
coronavirus germany
coronavirus 3 year old
http://chloroquine-treatmentforcoronavirus.com/# — remdesivir and chloroquine
coronavirus bat
chloroquine phosphate 250mg online
— coronavirus found in us
coronavirus 2019
coronavirus vaccine dog
http://chloroquine-treatmentforcoronavirus.com/# — chloroquine for covid-19
coronavirus prevention tips
chloroquine phosphate 250 mg
— coronavirus kern county
coronavirus outbreak china
coronavirus predictions
http://chloroquine-phosphate-250mg.com/# — chloroquine phosphate 250mg online
coronavirus washington
chloroquine 250mg
— coronavirus pathophysiology
coronavirus 90k infected
coronavirus 6 months
http://chloroquine-phosphate-250mg.com/# — chloroquine covid-19
coronavirus la
chloroquine for coronavirus
— a coronavirus tunetei
coronavirus where
coronavirus how long does it last
http://chloroquine-phosphate-250mg.com/# — remdesivir and chloroquine
coronavirus how to say
chloroquine
— coronavirus year
coronavirus what we know
coronavirus queens ny
http://chloroquine-phosphate-250mg.com/# — buy chloroquine
coronavirus 56 million
chloroquine phosphate 250 mg
— coronavirus 83
coronavirus mask n95
coronavirus 6 day hospital
http://chloroquine-phosphate-250mg.com/# — chloroquine aralen
coronavirus quarantine period
chloroquine
— coronavirus n95
nj coronavirus case
2 coronavirus cases in chicago
http://chloroquine-phosphate-250mg.com/# — buy chloroquine phosphate
coronavirus 3rd case us
chloroquine otc
— coronavirus yale new haven
coronavirus enveloped
I was wondering if you ever thought of changing the structure of your website?
Its very well written; I love what youve got to say.
But maybe you could a little more in the way of content so people could connect with it
better. Youve got an awful lot of text for only having 1 or two
pictures. Maybe you could space it out better?
n coronavirus symptoms
http://chloroquine-phosphate-250mg.com/# — chloroquine phosphate 250 mg
coronavirus 4 year old
chloroquine sars
— coronavirus 2019
coronavirus 3 cases
coronavirus jinping
http://chloroquine-phosphate-250mg.com/# — chloroquine 250 mg
coronavirus 7800
buy chloroquine phosphate online
— coronavirus 5 million
coronavirus zicam
online apotheke cialis erfahrung cialis from canada mezza pasticca cialis
A big thank you for your article.
Thanks so much for the blog post.