Saturday, October 29, 2011

Git on amazon ec2

Very quick solution, if you have a your_amazon_key.pem:
ssh-add /path/to/your_amazon_key.pem
After this git push proceeds successfully.

And a longer way.

Friday, September 16, 2011

Количество генов в клетке

Рассмотрим организм, обладающий одним из наименьших известных геномов - Mycoplasma genitalium.


Этот организм живет паразитом в млекопитающих, беря из них уже готовые маленькие молекулы. При этом он производит самостоятельно большие молекулы - ДНК, РНК, протеины - необходимые для базовых процессов наследования.
В его геноме, состоящем из 580070 нуктеотидных пар, насчитывается  477 генов, которые представлены 145018 байтами информации. 37 из этих генов кодируют трансферные, рибосомные и другие non-messenger  РНК. 297 генов кодируют протеины, из них 153 задействованы в репликации, транскрипции, трансляции и других подобных процессах с ДНК, РНК и протеинами; 29 - мембрана и поверхность клетки; 33 - транспортировка питательных веществ и других молекул сквозь мембрану; 71 - преобразование энергии, а также синтез и деградация маленьких молекул; 11 - регулировка деления клетки и другие процессы.

Минимальное число генов в жизнеспособной клетке на сегодняшний день составляет не менее 200-300 генов, среди которых около 60 генов являются core set  для всех живых видов без исключений.

Плазменная мембрана клетки

Еще одна универсальна фича клеток - они все окружены плазменной мембраной. Этот своеобразный барьер пропускает питательные вещества, сохраняет продукты синтеза клетки, и выводит наружу продукты распада. Не имея плазменной мембраны, клетка не смогла бы поддерживать свою целостность, оставаясь упорядоченной химической сиситемой.
Мембрана состоит из амфифильных молекул, которые, попадая в воду, спонтанно группируются в двухслойные сущности, пряча от воды свои гидрофобные части, и образуя таким образом маленькие закрытые полости, внутренее водяное содержание которых изолировано от внешней среды.
Гидрофобные части преобладающего большинства молекул мембраны являются гидрокарбоновыми полимерами (-CH2-CH2-CH2-), и их спонтанная агрегация в двухслойную полость явлется одним из многих примеров важного принципа: клетки производят молекулы, чьи химические свойства провоцируют их само-образование именно в те структуры, которые нужны клетке.
Граница клетки не может быть абсолютно непроницаемой. Поскольку клетка растет и размножается, ее мембрана должна пропускать внутрь сырье (raw materials) и выводить наружу отходы. Поэтому, во всех клетках есть специальные протеины, встроенные в мембрану, которые транспортируют определенные молекулы с одной стороны на другую.


Транспортные протеины в мембране определяют какие молекулы проходят внутрь клетки, а каталитические протеины внутри клетки определяют реакции, в которых участвуют эти молекулы.
Таким образом, путем определения протеинов, производимых в клетке, записанная в ДНК генетическая информация диктует ход протекания всех химических процессов в клетке.

Tuesday, September 6, 2011

Create GIT remote repository

# On local machine

cd foo_project
git init
git add *
git commit -m "My initial commit message"

# On remote machine (Git remote repository)

cd /var/git/
mkdir foo.git
cd foo.git
git --bare init

# On local machine

git remote add origin ssh://agolovatuk@example.com/var/git/foo.git
git push origin master
git checkout origin/master
git branch -f master origin/master
git checkout master

Some useful GIT tips

revert the last commit as it never was
# git reset --hard HEAD^

delete remote git branch
# git push origin :branchName

sync remote branches (removes tracking branch if remote branch was deleted)
# git remote prune origin

delete local branch links if they were deleted on origin
# git remote prune origin

create branch with a link to remote repository
# git checkout --track -b deployCandidate origin/deployCandidate

git config list
# git config -l

git show repository changes history
# git reflog
(to get to the some state run from reflog)
# git reset --hard HEAD@{0}

git show diff between what is commited (but not pushed) and the repository
# git diff HEAD^

colors in git put this to .git/config:
[color]
  branch = auto
  diff = auto
  status = auto
[color "branch"]
  current = yellow reverse
  local = yellow
  remote = green
[color "diff"]
  meta = yellow bold
  frag = magenta bold
  old = red bold
  new = green bold
[color "status"]
  added = yellow
  changed = green
  untracked = cyan

Setup mongodb replica sets

Here is a sample how to setup and run mongodb replica sets with 3 members (2 for data and 1 arbiter). We'll run on localhost on ports 27017, 27018 and arbiter on 27019.

# download mongodb here
# create data and log directories for all replica members

touch /var/log/mongodb/mongo1.log
touch /var/log/mongodb/mongo2.log
touch /var/log/mongodb/mongo3.log


mkdir /var/lib/mongodb/data1/db
mkdir /var/lib/mongodb/data2/db
mkdir /var/lib/mongodb/data3/db

# create configuration files for members

/etc/mongo1.conf:

dbpath = /var/lib/mongodb/data1/db
bind_ip = 127.0.0.1
noauth = true
verbose = true
port=27017
logpath=/var/log/mongodb/mongo1.log
logappend=true
replSet=mySetName

/etc/mongo2.conf:

dbpath = /var/lib/mongodb/data2/db
bind_ip = 127.0.0.1
noauth = true
verbose = true
port=27018
logpath=/var/log/mongodb/mongo2.log
logappend=true
replSet=mySetName

/etc/mongo3.conf:

dbpath = /var/lib/mongodb/data3/db
bind_ip = 127.0.0.1
noauth = true
verbose = true
port=27019
logpath=/var/log/mongodb/mongo3.log
logappend=true
replSet=mySetName

# run all members (use --rest if you want to use web admin UI, http://localhost:28017)

mongod --rest --config /etc/mongo1.conf &
mongod --rest --config /etc/mongo2.conf &
mongod --rest --config /etc/mongo3.conf &

# init replica sets in mongo shell

$ mongo
> cfg = {_id:"mySetName", members:[
{_id:0,host:"127.0.0.1:27017"},
{_id:1,host:"127.0.0.1:27018"},
{_id:2,host:"127.0.0.1:27019",arbiterOnly:true}
]}
> rs.initiate(cfg);
> rs.status()

Sunday, August 28, 2011

Репликация ДНК: шаблонная полимеризация

Каждый мономерчик в спирали ДНК - нуклеотид - состоит из 2х частей: сахара с приаттаченой к нему фосфатной группой, и базы (A или T или C или G). Сахары, связанные фосфатными группами, образуют полимерную цепь повторяющихся оснований с "торчащими" из них базами.


Полимер ДНК растет путем добавления мономеров в один его конец. В принципе, для отдельно взятой спирали, мономеры могут добавляться в любом порядке, потому что каждый из них связан с последующим по заданному шаблону. В живой клетке новая спираль ДНК синетзируется по шаблону уже существующей - базы спиралей связываются согласно строгому правилу - A только с T, C только с G.


Связи пар баз - слабы по сравнению с сахаро-фосфатными связями. Благодаря этому 2 связанные спирали молекулы ДНК разрываются, не нарушая своих основ (сахар-фосфат). В последствии, каждая спираль может точно так же служить шаблом для создания новой.
В разных типах клеткок процесс репликации ДНК проходит с разной скоростью, управляется разными айтемами, а так же использует различные вспомогательные молекулы. Но в целом, принцип один и тот же: ДНК - это хранилище информации, а шаблонная полимеризация - способ копирования этой информации.


Вся наследственная информация клетки хранится в ДНК

На Земле существует более 10 млн, а может и все 100, видов живых существ. И каждый вид, производя потомство, создает точную копию себя. Феномен наследственности - ключевая особенность жизненного процесса - это и отличает жизнь от других процессов, таких как рост кристаллов или формирования волн на поверхности воды.
Большинство живых организмов - одноклеточные. Другие, типа людей, - состоят из огромного количества групп клеток, выполняющих свои специфические функции, и связанных сложными системами коммуникаций.
В независимости от того, является ли организм бактерией или человеком,состоящим из более,чем 10^13 клеток, все начинается с деления одной клетки.


 Клетка, в свою очередь, является транспортировщиком наследственной информации вида. И, в соответствии с этой информацией, каждая клетка включает в себя механизм сбора из окружающей среды "комплектующих" и, собственно, самого создания новой клетки по своему образу и подобию, и, конечно же, передавая потомку эту же информацию.  Клетка - наименьшая часть организма, обладающая этим функционалом.

Все живые клетки на Земле, без известных исключений, хранят наследственную информацию в молекулах ДНК (дезоксирибонуклеиновая кислота). Двойная спираль молекулы ДНК - пара длинных полимерных цепочек, сформированных всегда только из 4х одинаковых типов мономеров - A(adenine), T(thymine), C(cytosine), G(guanine). (Как байткод, состоящий из 0 и 1). Последовательность этих мономеров и определяет генетическую информацию. Можно взять кусочек ДНК клетки бактерии, и заинсертить в клетку человека - и эта информация будет успешно прочитана, интерпретирована, и скопирована.
На сегодняшний день можно прочитать целиком последовательность любой молекулы ДНК.